LaminDB Biological Data Management
davila7/claude-code-templates
Manages biological datasets with LaminDB: versioned artifacts, run lineage, ontology-based annotation, schema validation and links to workflow managers and ML tools.
Authors reproducible bioinformatics pipelines with Snakemake - rules wired by output-file pattern, wildcards and expand() for sample fan-out, checkpoints for runtime-unknown outputs, resource/retry…
$ npx skills add GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GPTomics/bioSkills bio-workflow-management-snakemake-workflows --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/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/workflow-management/snakemake-workflows .claude/skills/bio-workflow-management-snakemake-workflows && 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 "bio-workflow-management-snakemake-workflows" agent skill from https://github.com/GPTomics/bioSkills/tree/main/workflow-management/snakemake-workflows into .claude/skills/bio-workflow-management-snakemake-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-workflow-management-snakemake-workflows", 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/GPTomics/bioSkills/tree/main/workflow-management/snakemake-workflowsType 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 GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GPTomics/bioSkills bio-workflow-management-snakemake-workflows --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/workflow-management/snakemake-workflows .agents/skills/bio-workflow-management-snakemake-workflows && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bio-workflow-management-snakemake-workflows" agent skill from https://github.com/GPTomics/bioSkills/tree/main/workflow-management/snakemake-workflows into .agents/skills/bio-workflow-management-snakemake-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-workflow-management-snakemake-workflows", 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 GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GPTomics/bioSkills bio-workflow-management-snakemake-workflows --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/workflow-management/snakemake-workflows .cursor/skills/bio-workflow-management-snakemake-workflows && 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 "bio-workflow-management-snakemake-workflows" agent skill from https://github.com/GPTomics/bioSkills/tree/main/workflow-management/snakemake-workflows into .cursor/skills/bio-workflow-management-snakemake-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-workflow-management-snakemake-workflows", 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/GPTomics/bioSkills.git --path workflow-management/snakemake-workflows--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 GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GPTomics/bioSkills bio-workflow-management-snakemake-workflows --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/workflow-management/snakemake-workflows .gemini/skills/bio-workflow-management-snakemake-workflows && 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 "bio-workflow-management-snakemake-workflows" agent skill from https://github.com/GPTomics/bioSkills/tree/main/workflow-management/snakemake-workflows into .gemini/skills/bio-workflow-management-snakemake-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-workflow-management-snakemake-workflows", 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 GPTomics/bioSkills bio-workflow-management-snakemake-workflowsInstalls 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 GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .github/skills && cp -r skills-src/workflow-management/snakemake-workflows .github/skills/bio-workflow-management-snakemake-workflows && 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 "bio-workflow-management-snakemake-workflows" agent skill from https://github.com/GPTomics/bioSkills/tree/main/workflow-management/snakemake-workflows into .github/skills/bio-workflow-management-snakemake-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-workflow-management-snakemake-workflows", 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 GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GPTomics/bioSkills bio-workflow-management-snakemake-workflows --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/workflow-management/snakemake-workflows .opencode/skills/bio-workflow-management-snakemake-workflows && 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 "bio-workflow-management-snakemake-workflows" agent skill from https://github.com/GPTomics/bioSkills/tree/main/workflow-management/snakemake-workflows into .opencode/skills/bio-workflow-management-snakemake-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-workflow-management-snakemake-workflows", 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.
bio-workflow-management-snakemake-workflowsAuthors reproducible bioinformatics pipelines with Snakemake - rules wired by output-file pattern, wildcards and expand() for sample fan-out, checkpoints for runtime-unknown outputs, resource/retry…
Bio Workflow Management Snakemake Workflows is an agent skill from GPTomics/bioSkills. Authors reproducible bioinformatics pipelines with Snakemake - rules wired by output-file pattern, wildcards and expand() for sample fan-out, checkpoints for runtime-unknown outputs, resource/retry escalation, and conda/container software deployment on HPC and cloud. Use when deciding rule-based (Snakemake) vs channel/dataflow (Nextflow) authoring; wiring rules by OUTPUT-file pattern rather than imperative order; using wildcards + expand() for sample fan-out and constraining them to stop silent mis-routing…
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `usage-guide.md`).
It sits in Research & Science, covering Reproducible research. It works with Nextflow and Python. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.
Read from SKILL.md and the folder at commit d91ed3d. 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 (R), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
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.
Bio Workflow Management Snakemake Workflows loads about 4.9k tokens when it runs. Until then it costs about 243 tokens; SKILL.md has 1,959 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 GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 1,959 words, ~4,930 tokens.
.claude/skills/bio-workflow-management-snakemake-workflows/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Reference examples tested with: Snakemake 8.0+, Python 3.11+
Before using code patterns, verify installed versions match. If versions differ:
pip show <package> then help(module.function) to check signatures<tool> --version then <tool> --help to confirm flagsIf code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
Note: Snakemake 8 (Jan 2024) removed --cluster, --drmaa, and the *RemoteProvider classes from core and moved them to pip-installable EXECUTOR plugins (--executor slurm, package snakemake-executor-plugin-slurm) and STORAGE plugins (storage.s3(...), snakemake-storage-plugin-s3). --use-conda/--use-singularity became --software-deployment-method / --sdm conda apptainer. A Snakemake 7 command line does not run unchanged on 8/9. Run snakemake --version FIRST and branch all execution guidance on 7 vs 8/9.
"Build a reproducible bioinformatics pipeline with Snakemake" -> Declare each step as a rule that says "a file matching THIS output pattern is produced FROM those inputs", let the engine resolve the DAG backward from requested targets, fan out over samples with wildcards, and pin the software environment so the result reproduces next year.
rule/checkpoint blocks with expand(), wildcards, config, resources, and conda:/container: (Snakemake)Snakemake is a pull, make-like engine. An author does NOT describe a forward flow of data. Each rule is a pattern-matched recipe ("a file that looks like THIS can be produced FROM that"), and the engine takes the requested target files and works BACKWARD, unifying wildcards by string-matching output filename patterns, until it reaches files already on disk. The whole plan - a static DAG - is computed at parse time, before a single job runs (Köster & Rahmann 2012 Bioinformatics 28:2520-2522). Almost every Snakemake bug a biologist hits is a downstream consequence of this one model:
snakemake -n (dry run), --dag, and --report are first-class. This is the payoff of the static model. Nextflow's reactive-dataflow model (processes connected by asynchronous channels, DAG emerges at runtime) has no true dry-run - hold both models in mind and most "why did/didn't it run" questions answer themselves.run: block.conda:/container: runs against whatever is on $PATH; "reproducible" is unearned until the software environment is pinned (Grüning et al. 2018 Cell Syst 6:631-635). Pin containers by DIGEST and conda by LOCKFILE - see Software Deployment below.| Dimension | Snakemake | Nextflow | Best when |
|---|---|---|---|
| Model | pull/make, static DAG at parse time | push/reactive dataflow, dynamic DAG | Snakemake: the plan must be visible before committing an allocation |
| Language | Python DSL (real Python + pandas in the Snakefile) | Groovy DSL | Snakemake: Python-native lab, file-pattern logic |
| Dry run / DAG viz | first-class (-n, --dag, --report) | no true dry-run (-stub/-preview check wiring only) | Snakemake: HPC where a bad plan is expensive |
| Data-dependent branching | needs checkpoints (escape hatch) | native (channels) | Nextflow: shape depends on runtime data |
| Community pipelines | Workflow Catalog / wrappers (smaller) | nf-core (large, curated) | Nextflow: run a maintained pipeline as-is |
| Sweet spot | single-lab reproducible research, HPC, tight Python integration | cloud/production, multi-institution, nf-core stacks | choose by the ecosystem to integrate with |
Reuse before authoring: for a mainstream analysis (RNA-seq, variant calling, ATAC-seq), a curated community pipeline already encodes years of QC and edge cases. Adopting one means RUNNING it (e.g. nf-core/rnaseq via workflow-management/nf-core-pipelines), not authoring Groovy - so a Python-shop preference for Snakemake only decides the authoring case, not whether to build at all. Author from scratch only for a novel method or an unsupported combination of steps.
Since Snakemake 7.8 the default is NOT pure mtime. A rerun fires on a SET of triggers: {mtime, params, input, code, software-env} (Mölder et al. 2021 F1000Research 10:33). This surprises everyone upgrading from old Snakemake.
| Want | Use |
|---|---|
| classic Make behavior, minimize surprise reruns | --rerun-triggers mtime |
| max reproducibility (default) | all five triggers |
| ignore a stable reference's timestamp | ancient("ref.fa") on that input |
| mark results current without recompute | --touch |
| force specific rules | --forcerun rule / -R |
| see what WOULD rerun and why | snakemake -n -R / --list-changes code |
The code trigger catches shell/script/run body changes - reformatting whitespace or editing a comment counts as a code change and reruns the job. On very large DAGs or multi-TB inputs the provenance triggers add a hashing/stat storm; --rerun-triggers mtime skips it.
| Situation | Pick | Why |
|---|---|---|
| call a CLI tool (samtools, bwa) | shell: | subprocess, conda/container-isolated |
| reusable Python/R analysis needing isolation | script: | separate process, snakemake object injected |
| standard tool, do not want to write shell | wrapper: (PINNED tag) | maintained, ships its own env |
| exploratory, want a re-runnable notebook | notebook: | params injected, --edit-notebook |
| trivial in-Snakefile glue only | run: | NEVER heavy work |
run: executes IN the main Snakemake process - it shares the interpreter and GIL, cannot be conda/container-isolated (the conda: directive is disallowed with run:), blocks the scheduler, and an OOM in it takes down the whole workflow. Move anything beyond trivial glue to script:.
| Target | Command |
|---|---|
| laptop/workstation | snakemake --cores N --sdm conda |
| SLURM (native) | pip install snakemake-executor-plugin-slurm then --executor slurm --jobs N --default-resources |
| SLURM (legacy sbatch string) | pip install snakemake-executor-plugin-cluster-generic then --executor cluster-generic --cluster-generic-submit-cmd "sbatch ..." |
| S3/GCS I/O | pip install snakemake-storage-plugin-s3 then --default-storage-provider s3 --default-storage-prefix s3://.../ |
| thousands of tiny jobs | add group: / --group-components to collapse scheduler overhead |
Porting a v7 --cluster "sbatch --account=X --partition=Y --mem=Z --time=T" command: for the native slurm executor, map those sbatch flags to resource keys (slurm_account, slurm_partition, mem_mb, runtime in minutes) set per-rule in resources: or globally via --default-resources; for a drop-in port keep the old string under cluster-generic (its own plugin, above). --cores = local cores; --jobs/-j = number of concurrent cluster/cloud jobs (in v8 these are separate). Profiles are versioned: the file is config/config.v8+.yaml, every long option becomes a YAML key.
expand() returns a LIST of strings by combinatorial substitution - it does NOT touch the filesystem. Use it to enumerate targets in rule all.
configfile: 'config/config.yaml'
SAMPLES = config['samples']
rule all: # the requested targets; the DAG is built backward from here
input:
expand('results/{sample}.bam', sample=SAMPLES)
rule align:
input:
r1 = 'data/{sample}_R1.fq.gz',
r2 = 'data/{sample}_R2.fq.gz',
index = 'ref/genome.fa'
output:
bam = 'aligned/{sample}.bam' # this OUTPUT PATTERN, matched against the target, wires the rule in
threads: 8
log:
'logs/align/{sample}.log'
shell:
'bwa mem -t {threads} {input.index} {input.r1} {input.r2} | '
'samtools sort -@ {threads} -o {output.bam} 2> {log}'Wildcards are greedy regex string-unification ({sample} compiles to .+), not typed parameters. An unconstrained wildcard swallows path separators and adjacent tokens: data/{sample}.txt matches data/a/b.txt as sample=a/b, and {a}.{b}.txt on 101.B.normal.txt has no unique parse. The failure is silent mis-routing, not an error. Constrain whenever a value can contain /, ., or _, or a filename has multiple variable tokens.
wildcard_constraints:
sample = '[^/]+', # no path separators
chrom = r'\d+|X|Y|MT' # only real chromosome tokens
# two rules whose output patterns can both produce a requested file raise AmbiguousRuleException;
# prefer non-overlapping constraints to disambiguate, and fall back to `ruleorder: a > b` only if needed.Goal: produce downstream jobs for a set of files whose number and identity are unknown until a step runs (split a FASTA into one file per detected cluster; scatter over an assembler's contigs).
Approach: declare the producing step a checkpoint with a directory() output; in an input function on the AGGREGATING rule, call checkpoints.<name>.get(**wildcards) FIRST - its exception is what forces the engine to run the checkpoint and RE-EVALUATE the DAG - then glob_wildcards the checkpoint's declared output dir and expand() the real targets.
checkpoint split_fasta:
input:
'data/all.fasta'
output:
directory('split/{sample}') # directory() because the file set is unknowable at parse time
shell:
'split_by_cluster.py {input} split/{wildcards.sample}'
def gather_clusters(wildcards):
# .get() RAISES until the checkpoint has run; that exception drives DAG re-evaluation.
# Omitting it globs at parse time (empty), so the aggregation silently gets zero inputs - the classic bug.
ckpt_dir = checkpoints.split_fasta.get(**wildcards).output[0]
ids = glob_wildcards(f'{ckpt_dir}/{{id}}.fasta').id
return expand('processed/{sample}/{id}.done', sample=wildcards.sample, id=ids)
rule aggregate: # the input function MUST be attached to the rule that consumes the set
input:
gather_clusters
output:
'results/{sample}_summary.txt'
shell:
'cat {input} > {output}'Point glob_wildcards at the checkpoint's declared directory() output (a fresh dir) so stale files do not leak into the glob. Prefer one scatter->gather to chains of nested checkpoints.
Resource callables differ by directive: resources is callable(wildcards [, input] [, threads] [, attempt]); threads is callable(wildcards [, input]) only; getting the signature wrong is a top error source. runtime is in MINUTES. attempt starts at 1 and increments per retry - the canonical fix for OOM-killed jobs.
rule call_variants:
input:
bam = 'aligned/{sample}.bam'
output:
'results/{sample}.vcf'
threads: 4
retries: 3 # or global --retries 3
resources:
mem_mb = lambda wildcards, attempt: 8000 * attempt, # 8 GB, doubling to 16/24 on OOM restart
runtime = 240 # MINUTES, not seconds; SLURM wall-time
log:
'logs/call/{sample}.log'
shell:
'variant_caller --threads {threads} {input.bam} > {output} 2> {log}'For thousands of tiny jobs on HPC, per-job scheduler latency dominates: assign rules a group: (or --group-components rule=N) so they submit as one job. temp('x.bam') deletes an intermediate once all consumers are done (huge for disk); ancient('ref.fa') excludes an input from mtime-based rerun decisions.
A clean DAG over unpinned tools is not reproducible. The engine gives layer 1 (logic); the author must pin the software environment. Declare conda: (a pinnable file) or container: per rule, and activate deployment at run time.
rule fastqc:
input:
'data/{sample}.fq.gz'
output:
'qc/{sample}_fastqc.html'
conda:
'envs/qc.yaml' # a FILE (pinnable), not a bare named env
container:
# PIN BY DIGEST, never a mutable tag - :latest or a re-pushed :0.7.17 silently changes the tool and busts the cache
'docker://quay.io/biocontainers/fastqc@sha256:<digest>'
shell:
'fastqc {input} -o qc/'snakemake --sdm conda --cores 8 # build per-rule conda envs (was --use-conda in v7)
snakemake --sdm apptainer --cores 8 # run each rule in its container (was --use-singularity)
snakemake --sdm conda apptainer --cores 8 # containerized conda: build the env INSIDE the pinned imageA bare environment.yml with samtools (no version) resolves differently over time; pin exact builds with a lockfile (conda-lock) for bit-reproducibility. --containerize auto-generates a Dockerfile baking all conda envs into one image. Between-workflow caching (cache: True + SNAKEMAKE_OUTPUT_CACHE) reuses results across workflows but ONLY for deterministic rules - a nondeterministic tool poisons the shared cache with wrong results silently.
include: 'rules/x.smk' is textual inclusion sharing one namespace. For genuine composition of published workflows, use the module system (module other: snakefile: '...'; use rule * from other as other_*), which can import, prefix, and override rules. wrapper: 'v5.0.2/bio/bwa/mem' pulls a maintained, conda-shipping wrapper - PIN the leading version tag; an unpinned wrapper drifts silently.
include: 'rules/qc.smk'
include: 'rules/align.smk'
rule all:
input:
rules.qc_all.input,
rules.call_all.input| Symptom | Cause | Fix |
|---|---|---|
| A rule silently never runs | its output pattern does not match any requested target (typo/path); the DAG dropped it | trace backward from rule all; run snakemake -n and inspect the DAG; fix the output path |
| Wildcard captures too much / wrong sample | unconstrained greedy .+ swallowed a delimiter or path separator | add wildcard_constraints (e.g. sample='[^/]+') |
| Aggregation after a split has zero inputs | forgot checkpoints.X.get(), or globbed at parse time, or input function on the wrong rule | call .get(**wildcards) first, glob the checkpoint's directory() output, attach the function to the consumer |
| Everything reruns after a cosmetic edit | the code trigger - editing the shell/script body (even whitespace) counts | expected under provenance triggers; use --rerun-triggers mtime to opt out |
| Expected a rerun, got none | old mtime mental model, or output is newer than input | check triggers; --forcerun rule / -R |
--cluster/S3RemoteProvider errors on v8 | removed from core in Snakemake 8 | install the executor/storage plugin; use --executor slurm and storage.s3(...) |
| OOM-killed job (exit 137) | static mem_mb too low for the largest sample | retries + mem_mb=lambda wildcards, attempt: base*attempt |
| Per-job scheduler meltdown on HPC | thousands of tiny jobs, submission overhead dominates | group: / --group-components to batch into one submission |
MissingOutputException on NFS/Lustre | networked filesystem lags after a job finishes | raise --latency-wait |
| Workflow refuses to continue after a killed job ("Incomplete files") | a job died mid-write (SLURM kill, node crash), so its outputs are flagged incomplete | re-run with --rerun-incomplete (--ri); this is Snakemake's crash-resume, distinct from the rerun triggers |
Heavy run: block hangs the workflow | runs in the main process, shares the GIL, no isolation | move to script: |
| "Reproducible" but results differ on a colleague's cluster | no --sdm, or a mutable :latest container tag | declare conda:/container:, pin by digest + conda lockfile |
shell: rule© GPTomics, MIT. 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 3 other files in workflow-management/snakemake-workflows of GPTomics/bioSkills.
Open the folder on GitHubat commit d91ed3d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.
Bio Workflow Management Snakemake Workflows 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 |
|---|---|---|---|---|---|---|
| Bio Workflow Management Snakemake Workflows this skillGPTomics/bioSkills | 1.2k | 1 repos | ~4.9k | Automated safety check: Pass | MIT | |
| LaminDB Biological Data Managementdavila7/claude-code-templates | 32k | 12 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Latchbio Integrationdavila7/claude-code-templates | 32k | 11 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Latchbio IntegrationK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.5k | Automated safety check: Notes | MIT | |
| Add Bactopia Toolbactopia/bactopia | 522 | — | ~4.1k | Automated safety check: Pass | MIT | |
| Modeling Code and Result Contractsyushui2022/MathModel-Skill | 453 | — | ~1.4k | Automated safety check: Pass | MIT |
davila7/claude-code-templates
Manages biological datasets with LaminDB: versioned artifacts, run lineage, ontology-based annotation, schema validation and links to workflow managers and ML tools.
davila7/claude-code-templates
Latch platform for bioinformatics workflows. An agent skill from davila7/claude-code-templates.
K-Dense-AI/scientific-agent-skills
Builds, registers, debugs, and operates bioinformatics workflows on Latch using the Python SDK, CLI, Latch Data and Registry, Nextflow, Snakemake, programmatic execution, and Latch MCP.
bactopia/bactopia
Scaffold a complete Bactopia Tool across all three tiers -- module, subworkflow, and workflow entry point under workflows/bactopia-tools/.
yushui2022/MathModel-Skill
Generates result-evidence contracts, tables and runnable q1 to q3 modeling code scaffolds for a math modeling paper from a model route, a data plan and cleaned data.
K-Dense-AI/scientific-agent-skills
Plans and audits runs of the HypoGeniC and HypoRefine packages, which propose hypotheses from labeled text datasets, with local checks before any model call.
GPTomics/bioSkills
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.
GPTomics/bioSkills
Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.
GPTomics/bioSkills
Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.
GPTomics/bioSkills
Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.
GPTomics/bioSkills
Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.
GPTomics/bioSkills
Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.
Categories
Authors reproducible bioinformatics pipelines with Snakemake - rules wired by output-file pattern, wildcards and expand() for sample fan-out, checkpoints for runtime-unknown outputs, resource/retry…. Bio Workflow Management Snakemake Workflows is an agent skill from GPTomics/bioSkills. Authors reproducible bioinformatics pipelines with Snakemake - rules wired by output-file pattern, wildcards and expand() for sample fan-out, checkpoints for runtime-unknown outputs, resource/retry escalation, and conda/container software deployment on HPC and cloud.
Bio Workflow Management Snakemake Workflows fits situations like: deciding rule-based (Snakemake) vs channel/dataflow (Nextflow) authoring; wiring rules by OUTPUT-file pattern rather than imperative order; using wildcards + expand() for sample fan-out and constraining them to stop silent mis-routing; adding checkpoints when the set of outputs is unknown until a step runs (dynamic DAG).
Run `npx skills add GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a claude-code`. Or copy the skill folder (workflow-management/snakemake-workflows in GPTomics/bioSkills) into .claude/skills/bio-workflow-management-snakemake-workflows in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a codex`. Or copy the skill folder (workflow-management/snakemake-workflows in GPTomics/bioSkills) into .agents/skills/bio-workflow-management-snakemake-workflows 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 GPTomics/bioSkills --skill bio-workflow-management-snakemake-workflows -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-workflow-management-snakemake-workflows, .gemini/skills/bio-workflow-management-snakemake-workflows, .github/skills/bio-workflow-management-snakemake-workflows and .opencode/skills/bio-workflow-management-snakemake-workflows in your project.
Going by SKILL.md and its folder, Bio Workflow Management Snakemake Workflows needs R for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. 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.
Bio Workflow Management Snakemake Workflows is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Bio Workflow Management Snakemake Workflows: LaminDB Biological Data Management (davila7/claude-code-templates, 32k stars), Latchbio Integration (davila7/claude-code-templates, 32k stars), Latchbio Integration (K-Dense-AI/scientific-agent-skills, 48k stars) and Add Bactopia Tool (bactopia/bactopia, 522 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,217 GitHub stars. The repository holds 559 skills in this directory. The repository was last updated on August 15, 2026.
Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.