Install
$ agentstack add skill-fmschulz-omics-skills-bio-reads-qc-mapping ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Bio Reads QC Mapping
Ingest, QC, and map reads with reproducible outputs. Use for raw read processing and coverage stats.
Instructions
- Parse sample sheet and validate inputs.
- For short reads: run QC and adapter/quality trimming with
bbdukorfastpv1.3.3+. - For long reads: use current basecaller-aware QC first. For ONT, prefer Dorado summaries/trimming during basecalling or demultiplexing when starting from signal/BAM; for FASTQ-only filtering use
chopperfor quality/length/end trimming orfiltlongv0.2.1 when selecting reads for assembly. UsePychopperfor full-length cDNA. TreatPorechop_ABIas a targeted legacy/fallback adapter-discovery tool, and record why it is needed.
- For very large ONT FASTQ inputs, do not burn the first full read pass on raw
gzip -tor rawseqkit statspreflight unless the user explicitly asks for it. Record rawstatmetadata and, if needed, a small sampled sanity check; let the first full pass be the actual filtering/orientation step, then runseqkit statson produced outputs. - For ONT cDNA with
Pychopper, write outputs with plain.fastqsuffixes unless you explicitly pipe/compress them yourself.Pychoppercan write plain FASTQ even when the output path ends in.gz; avoidgzip -tonPychopperoutputs unless magic bytes confirm gzip. If legacy outputs have.fastq.gznames but plain FASTQ content, rename them to.fastqbefore resuming. Pychopperreport plotting can fail after the reads are already processed, for example from a pandas/statistics type-conversion error. On that failure, inspect whether the classified/unclassified/rescued/read-stats outputs exist and are non-empty. If they do, resume downstream from those outputs rather than rerunning the fullPychopperpass.
- Map reads and produce coverage tables:
- Short reads, CPU:
bbmaporbwa-mem2v2.2.1+. Short reads, GPU node available: NVIDIA Parabricksfq2bam(wrapsbwa-mem2+ GATK markdup; typically 3–4× faster thanbwa-mem2on 8 cores and up to ~80× over a 96-core CPU pipeline). - Long reads, CPU:
minimap2v2.30+. AVX-512 hardware:mm2-fastas a drop-in replacement (~1.8× speedup). GPU node available:mm2-gbormm2-axfor CUDA-accelerated long-read alignment.
- Record the tool, version, and any GPU device used in the run log.
Quick Reference
| Task | Action | |------|--------| | Run workflow | Follow the steps in this skill and capture outputs. | | Validate inputs | Confirm required inputs and reference data exist. | | Review outputs | Inspect reports and QC gates before proceeding. | | Tool docs | See docs/README.md. |
Input Requirements
Prerequisites:
- Tools available in the active environment (Pixi/conda/system). See
docs/README.mdfor expected tools. - Sample sheet and reads are available.
Inputs:
- sample_sheet.tsv
- reads/*.fastq.gz
- reference.fasta (optional)
Output
- results/bio-reads-qc-mapping/trimmed_reads/
- results/bio-reads-qc-mapping/qc_reports/
- results/bio-reads-qc-mapping/mapping_stats.tsv
- results/bio-reads-qc-mapping/coverage.tsv
- results/bio-reads-qc-mapping/logs/
Quality Gates
- [ ] Post-QC read count sanity checks pass.
- [ ] Mapping rate meets project thresholds.
- [ ] On failure: retry with alternative parameters; if still failing, record in report and exit non-zero.
- [ ] Validate sample sheet schema and FASTQ integrity.
- [ ] For long-read QC, record whether trimming happened in the basecaller/demultiplexer,
chopper,filtlong,Pychopper, or a documented Porechop_ABI fallback. - [ ] For huge ONT inputs, avoid redundant full-file raw preflights; document raw file size/mtime and make the first full pass productive.
- [ ] For
Pychopperoutputs, verify actual file type by content, not suffix. Plain FASTQ with a.gzsuffix must be renamed or explicitly compressed before downstream tools that expect gzip. - [ ] Resume guards should skip expensive completed steps only after confirming the expected output exists, is non-empty, and passes a lightweight content sanity check (
seqkit stats, FASTQ header sniff, or gzip magic as appropriate).
Examples
Example 1: Expected input layout
sample_sheet.tsv
reads/*.fastq.gz
reference.fasta (optional)
Troubleshooting
Issue: Missing inputs or reference databases Solution: Verify paths and permissions before running the workflow.
Issue: Low-quality results or failed QC gates Solution: Review reports, adjust parameters, and re-run the affected step.
Issue: Pychopper failed during report/stat plotting but output FASTQs exist Solution: Treat this as a recoverable post-processing failure. Confirm the classified FASTQ is non-empty and readable, fix any misleading .gz suffix, run seqkit stats, and resume downstream steps from the existing Pychopper outputs.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: fmschulz
- Source: fmschulz/omics-skills
- License: MIT
- Homepage: https://fmschulz.github.io/omics-skills/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.