PyDESeq2 Differential Expression
davila7/claude-code-templates
Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.
Load when annotating putative doublets in single-cell RNA-seq using Scrublet, DoubletDetection, DoubletFinder, scDblFinder, or scds.
$ npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TianGzlab/OmicsClaw sc-doublet-detection --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/singlecell/scrna/sc-doublet-detection .claude/skills/sc-doublet-detection && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sc-doublet-detection" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/singlecell/scrna/sc-doublet-detection into .claude/skills/sc-doublet-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-doublet-detection", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TianGzlab/OmicsClaw/tree/main/skills/singlecell/scrna/sc-doublet-detectionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TianGzlab/OmicsClaw sc-doublet-detection --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/singlecell/scrna/sc-doublet-detection .agents/skills/sc-doublet-detection && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sc-doublet-detection" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/singlecell/scrna/sc-doublet-detection into .agents/skills/sc-doublet-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-doublet-detection", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TianGzlab/OmicsClaw sc-doublet-detection --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/singlecell/scrna/sc-doublet-detection .cursor/skills/sc-doublet-detection && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sc-doublet-detection" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/singlecell/scrna/sc-doublet-detection into .cursor/skills/sc-doublet-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-doublet-detection", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TianGzlab/OmicsClaw.git --path skills/singlecell/scrna/sc-doublet-detection--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TianGzlab/OmicsClaw sc-doublet-detection --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/singlecell/scrna/sc-doublet-detection .gemini/skills/sc-doublet-detection && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sc-doublet-detection" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/singlecell/scrna/sc-doublet-detection into .gemini/skills/sc-doublet-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-doublet-detection", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TianGzlab/OmicsClaw sc-doublet-detectionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/singlecell/scrna/sc-doublet-detection .github/skills/sc-doublet-detection && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sc-doublet-detection" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/singlecell/scrna/sc-doublet-detection into .github/skills/sc-doublet-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-doublet-detection", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TianGzlab/OmicsClaw sc-doublet-detection --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TianGzlab/OmicsClaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/singlecell/scrna/sc-doublet-detection .opencode/skills/sc-doublet-detection && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sc-doublet-detection" agent skill from https://github.com/TianGzlab/OmicsClaw/tree/main/skills/singlecell/scrna/sc-doublet-detection into .opencode/skills/sc-doublet-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-doublet-detection", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sc-doublet-detectionLoad when annotating putative doublets in single-cell RNA-seq using Scrublet, DoubletDetection, DoubletFinder, scDblFinder, or scds.
Sc Doublet Detection is an agent skill from TianGzlab/OmicsClaw. Load when annotating putative doublets in single-cell RNA-seq using Scrublet, DoubletDetection, DoubletFinder, scDblFinder, or scds. Skip when ambient RNA is the contamination problem (use sc-ambient-removal); before counts exist (use sc-fastq-qc).
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including reference files (for example `_api.py`, `examples/example_step.py` and `references/methodology.md`).
It sits in Research & Science, covering Bioinformatics. It works with Python and AnnData. The repository describes itself as: Conversational & memory-enabled AI research partner for multi-omics analysis. CLI + Desktop App (installers in Releases). From biological idea to full research paper. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 90a3bec. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sc Doublet Detection loads about 2.2k tokens when it runs, and up to ~3.7k if it reads all its reference files. Until then it costs about 67 tokens; SKILL.md has 870 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TianGzlab/OmicsClaw at commit 90a3bec, republished under its Apache-2.0 licence (© TianGzlab). 870 words, ~2,163 tokens.
.claude/skills/sc-doublet-detection/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.The user has filtered (or at least QC'd) single-cell counts and wants
to flag putative doublet barcodes before clustering / annotation.
Five backends share one CLI: scrublet (default, Python), doubletdetection
(Python), doubletfinder (R), scdblfinder (R), scds (R). Per-cell
scores + binary calls land in obs; this skill annotates, it does not
remove cells (filter downstream with obs["predicted_doublet"]).
doublets = load_skill("sc-doublet-detection")
adata = doublets.detect_doublets(read_input("filtered.h5ad"), random_state=0)
write_output(doublets.doublet_calls_table(adata), "tables/doublet_calls.csv")
write_output(doublets.doublet_score_figure(adata), "figures/doublet_scores.png")
write_output(adata, "intermediate/adata_doublets.h5ad")Detection annotates the input in place; it never removes cells. To remove
the calls, pass the result to sc-filter. See examples/example_step.py.
<!-- api:begin generated from _api.py; regenerate with run.py api <skill dir> --write -->
detect_doublets(adata, *, method: str='scrublet', expected_doublet_rate: float=0.06, threshold: float | None=None, batch_key: str | None=None, n_iters: int=10, standard_scaling: bool=False, scds_mode: str='cxds', random_state: int=0)Annotate doublets in place using counts from layers['counts'], raw or X.
No observations or features are removed. Pass the result to sc-filter when doublets should be removed. A DoubletFinder failure may fall back to scDblFinder; a failed scds mode may fall back to cxds. run_info records both.
:param adata: AnnData containing a count-like matrix. :param method: scrublet, doubletdetection, doubletfinder, scdblfinder or scds. :param expected_doublet_rate: Expected doublet fraction; default 0.06. :param threshold: Scrublet score cutoff; None keeps its automatic calls. :param batch_key: Scrublet batches in obs; None analyzes all cells together. :param n_iters: DoubletDetection iterations; default 10. :param standard_scaling: DoubletDetection standard scaling; default False. :param scds_mode: cxds, bcds or hybrid; default cxds. :param random_state: Seed passed to the selected backend; default 0. :returns: The same AnnData with doublet_score, predicted_doublet and doublet_classification in obs, plus JSON diagnostics in uns. :raises ValueError: A method, rate, threshold or batch column is invalid. :raises ImportError: A Python backend is missing; use install_skill_deps. :raises RuntimeError: An R method and any documented fallback fail.
run_info(adata, *, keep: bool=True) -> dictRead doublet method diagnostics from adata.uns.
:param adata: AnnData annotated by detect_doublets. :param keep: False removes the JSON diagnostics after reading; default True. :returns: Method, counts, matrix source and any fallback details.
doublet_calls_table(adata, *, groupby: str | None=None) -> pd.DataFrameReturn per-cell scores and calls in observation order.
:param adata: AnnData annotated by detect_doublets. :param groupby: Optional obs column to include in the table. :returns: A DataFrame with cell_id, scores, calls and classification.
doublet_summary(adata) -> pd.DataFrameReturn singlet and doublet counts and percentages from obs calls.
:param adata: AnnData with predicted_doublet in obs. :returns: A DataFrame with one row per classification.
group_summary_table(adata, *, groupby: str) -> pd.DataFrameSummarize doublet counts and scores for an obs grouping column.
:param adata: AnnData annotated by detect_doublets. :param groupby: Existing obs column defining the groups. :returns: A DataFrame with counts, median and mean scores, and rates. :raises ValueError: The grouping column is missing.
doublet_score_figure(adata)Plot the doublet score distribution and return the Figure.
:param adata: AnnData with doublet_score in obs. :returns: A matplotlib Figure; the caller saves it with write_output.
<!-- api:end -->
method="scrublet" and expected_doublet_rate=0.06 retain the CLI defaults.
Set the rate from loading density and the experimental design.threshold=None retains Scrublet's automatic calls; a numeric threshold
applies only to Scrublet. batch_key runs Scrublet by that obs column;
it does not make the other backends batch-aware.n_iters=10 and standard_scaling=False.Rscript and temporary gene-by-cell MTX plus CSV metadata;
they do not need a Python environment inside R. DoubletFinder requires
Seurat, DoubletFinder and Matrix; scDblFinder/scds require their matching
package, SingleCellExperiment and Matrix.random_state=0 now reaches every backend, including Scrublet and R.
Previously the CLI ignored this parameter for Scrublet; scDblFinder used
a fixed R seed of 42. Missing Python packages raise an import error.Inputs
.h5adOutputs
tables/doublet_calls.csvtables/summary.csvtables/group_summary.csv when a comparison group is availablefigures/doublet_score_distribution.png; embedding plots when an embedding is availablefigure_data/ and its manifest, for the generated plotsfigures/r_enhanced/ only for successful --r-enhanced rendersprocessed.h5adreport.mdresult.jsonsaves_h5ad) — adds obs: doublet_score, predicted_doublet, doublet_classification--method against the METHOD_REGISTRY.--threshold (or method default) to score → call.obs["predicted_doublet"] + obs["doublet_score"]; emit tables and the score-distribution figure.processed.h5ad + report.md + result.json.run_info(adata)["executed_method"], fallback_reason and, for scds,
executed_scds_mode. The CLI mirrors these diagnostics in result.json["summary"].obs["predicted_doublet"] is the user's responsibility. If sc-filter was already run, doublets re-introduce themselves to the cluster graph if not filtered after this step.tables/group_summary.csv requires a comparison column: --batch-key
takes precedence over an available annotation or cluster column.sc_doublet.py logs "Preview embedding computation failed" and continues; the score-distribution figure still renders without the embedding overlay. When the figure looks sparse vs documented examples, check the warning log before assuming a bug.sc_doublet.py raises ValueError("Unsupported method: ...") for typos like --method scrubblet.# Demo (Scrublet)
python skills/singlecell/scrna/sc-doublet-detection/sc_doublet.py --demo --output /tmp/sc_doublet_demo
# Default Scrublet, with batch-aware grouping
python skills/singlecell/scrna/sc-doublet-detection/sc_doublet.py \
--input filtered.h5ad --output results/ --batch-key sample_id
# scDblFinder with a custom expected rate
python skills/singlecell/scrna/sc-doublet-detection/sc_doublet.py \
--input filtered.h5ad --output results/ \
--method scdblfinder --expected-doublet-rate 0.1 --random-state 0references/parameters.md — every CLI flag and per-method tuning hintreferences/methodology.md — when each backend wins, R vs Python tradeoffsreferences/output_contract.md — obs keys added + table schemassc-ambient-removal (parallel — fixes ambient RNA, complementary to doublet removal), sc-filter (upstream — typically run before this), sc-clustering (downstream — filter doublets out before clustering)Python packages this skill's script needs. They are not installed for you — check before a long run.
anndata, doubletdetection, matplotlib, numpy, pandas, scanpy, scipy, scrublet, seaborn
© TianGzlab, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (references) in skills/singlecell/scrna/sc-doublet-detection of TianGzlab/OmicsClaw.
Open the folder on GitHubat commit 90a3bec
Sc Doublet Detection next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sc Doublet Detection this skillTianGzlab/OmicsClaw | 161 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| PyDESeq2 Differential Expressiondavila7/claude-code-templates | 32k | 11 repos | ~4k | Automated safety check: Pass | MIT | |
| Anndatadavila7/claude-code-templates | 32k | 11 repos | ~2.5k | Automated safety check: Pass | MIT | |
| ScanpyK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~5.1k | Automated safety check: Pass | BSD-3-Clause | |
| GenimlK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~4k | Automated safety check: Notes | MIT | |
| AnndataK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~3.9k | Automated safety check: Notes | BSD-3-Clause |
davila7/claude-code-templates
Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.
davila7/claude-code-templates
This skill should be used when working with annotated data matrices in Python, particularly for single-cell genomics analysis, managing experimental measurements with metadata, or handling…
K-Dense-AI/scientific-agent-skills
Performs Scanpy single-cell RNA-seq QC, normalization, HVG selection, PCA/UMAP/t-SNE, clustering, exploratory marker ranking, pseudobulk preparation, visualization, and Seurat or…
K-Dense-AI/scientific-agent-skills
Supports audited local Geniml genomic-interval workflows: validate BED and universe contracts, plan Region2Vec or scEmbed runs, inspect model/tokenizer compatibility, and assess consensus universes.
K-Dense-AI/scientific-agent-skills
Handles annotated matrices in single-cell analysis, .h5ad and Zarr files, and integration with the scverse ecosystem.
FreedomIntelligence/OpenClaw-Medical-Skills
Read, write, and create single-cell data objects using Seurat (R) and Scanpy (Python).
TianGzlab/OmicsClaw
Load when the user needs Deterministic fixed-period 24-hour single-component cosinor OLS rhythm analysis for a bulk RNA time-course CSV.
TianGzlab/OmicsClaw
Load when correcting batch effects in bulk expression using R sva ComBat or the legacy Python parametric approximation.
TianGzlab/OmicsClaw
Load when discovering bulk gene co-expression modules and hub genes with R WGCNA.
TianGzlab/OmicsClaw
Load when comparing gene expression between two conditions in bulk RNA-seq count data.
TianGzlab/OmicsClaw
Load when estimating cell-type proportions in bulk RNA-seq samples from a single-cell or signature-matrix reference.
TianGzlab/OmicsClaw
Load when running pathway / GO term enrichment on a bulk RNA-seq DE result list.
Categories
Load when annotating putative doublets in single-cell RNA-seq using Scrublet, DoubletDetection, DoubletFinder, scDblFinder, or scds. Sc Doublet Detection is an agent skill from TianGzlab/OmicsClaw. Load when annotating putative doublets in single-cell RNA-seq using Scrublet, DoubletDetection, DoubletFinder, scDblFinder, or scds.
Sc Doublet Detection fits situations like: tasks that involve Bioinformatics.
Run `npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a claude-code`. Or copy the skill folder (skills/singlecell/scrna/sc-doublet-detection in TianGzlab/OmicsClaw) into .claude/skills/sc-doublet-detection in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a codex`. Or copy the skill folder (skills/singlecell/scrna/sc-doublet-detection in TianGzlab/OmicsClaw) into .agents/skills/sc-doublet-detection in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TianGzlab/OmicsClaw --skill sc-doublet-detection -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sc-doublet-detection, .gemini/skills/sc-doublet-detection, .github/skills/sc-doublet-detection and .opencode/skills/sc-doublet-detection in your project.
Going by SKILL.md and its folder, Sc Doublet Detection needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sc Doublet Detection is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sc Doublet Detection: PyDESeq2 Differential Expression (davila7/claude-code-templates, 32k stars), Anndata (davila7/claude-code-templates, 32k stars), Scanpy (K-Dense-AI/scientific-agent-skills, 48k stars) and Geniml (K-Dense-AI/scientific-agent-skills, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TianGzlab (a GitHub organization) maintains it in TianGzlab/OmicsClaw, which has 161 GitHub stars. The repository holds 88 skills in this directory. The repository was last updated on October 7, 2026.
Source: TianGzlab/OmicsClaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.