deeptools

NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.

By k-dense-ai · 1,420 installs

npx skills add k-dense-ai/scientific-agent-skills --skill deeptools

Source repository · Upstream listing

deepTools: NGS Data Analysis Toolkit Overview deepTools is a comprehensive suite of Python command line tools designed for processing and analyzing high throughput sequencing data. Use deepTools to perform quality control, normalize data, compare samples, and generate publication quality visualizations for ChIP seq, RNA seq, ATAC seq, MNase seq, and other NGS experiments. Core capabilities: Convert BAM alignments to normalized coverage tracks (bigWig/bedGraph) Quality control assessment (fingerprint, correlation, coverage) Sample comparison and correlation analysis Heatmap and profile plot generation around genomic features Enrichment analysis and peak region visualization When to Use This Skill This skill should be used when: File conversion : "Convert BAM to bigWig", "generate coverage tracks", "normalize ChIP seq data" Quality control : "check ChIP quality", "compare replicates", "assess sequencing depth", "QC analysis" Visualization : "create heatmap around TSS", "plot ChIP signal", "visualize enrichment", "generate profile plot" Sample comparison : "compare treatment vs control", "correlate samples", "PCA analysis" Analysis workflows : "analyze ChIP seq data", "RNA seq coverage", "ATAC seq analysis", "complete workflow" Working with specific file types : BAM files, bigWig files, BED region files in genomics context Quick Start For users new to deepTools, start with file validation and common workflows: 1. Validate Input Files Before running any analysis, validate BAM, bigWig, and BED files using the validation script: This checks local files, readable BAM/BAI/CSI structure and coordinate order, bigWig headers, and every BED row. It does not establish assembly identity or biological suitability. 2. Generate Workflow Template For standard analyses, use the workflow generator to create customized scripts: 3. Most Common Operations See assets/quick reference.md for frequently used commands and parameters. Installation Upstream recommends conda/bioconda for full dependency resolution, especially on shared HPC systems: The 4.0.0 PyPI release includes native macOS Intel/Apple Silicon and Linux wheels. Conda availability varies by platform; the PyPI workflow above was exercised on macOS. 4.0 migration: The five rewritten commands use Rust. bamCoverage , bamCompare , and multiBamSummary no longer accept ignoreDuplicates ; use samFlagExclude 1024 only after duplicate marking. bamCompare no longer accepts SES. Its released Rust backend accepts RPGC despite a contradictory rolling doc note; several advertised operations are incorrect (see review). exactScaling is removed from the rewritten coverage commands because scaling now uses all reads. See [references/review.md](references/review.md) for verified contracts and remaining limits. Core Workflows and Tool Categories Complete command sequences for ChIP seq QC, full ChIP seq analysis, RNA seq coverage, and ATAC seq analysis — plus the BAM/bigWig processing, quality control, and visualization tool categories — are in [references/core workflows.md](references/core workflows.md) and [references/workflows.md](references/workflows.md). Per tool options are in [references/tools reference.md](references/tools reference.md). Normalization Methods Choosing the correct normalization is critical for valid comparisons. Consult references/normalization methods.md for comprehensive guidance. Quick selection guide: ChIP seq coverage : Use RPGC or CPM ChIP seq comparison : Use bamCompare with log2 and readCount RNA seq bins : Use CPM RNA seq genes : Quantify with an annotation aware gene/transcript workflow; bamCoverage RPKM scales genomic bins, not genes ATAC seq : Use CPM for the shifted alignment template; RPGC without extension failed on shifted BAMs in 4.0.0 Normalization methods: RPGC : 1× genome coverage (requires effectiveGenomeSize) CPM : Counts per million mapped reads RPKM : Reads per kb per million (per bin length and library size scaling) BPM : The released 4.0.0 Rust implementation reduces to CPM; do not interpret it as gene TPM None : Raw counts (not recommended for comparisons) Full explanation: references/normalization methods.md Effective Genome Sizes RPGC normalization requires effective genome size. Examples from the 4.0.0 tagged source , not universal assembly constants (the rolling documentation differs): Organism Assembly Size Usage Human GRCh38/hg38 2,913,022,398 effectiveGenomeSize 2913022398 Human T2T/CHM13CAT v2 3,117,292,070 effectiveGenomeSize 3117292070 Mouse GRCm39/mm39 2,654,621,783 effectiveGenomeSize 2654621783 Mouse GRCm38/mm10 2,652,783,500 effectiveGenomeSize 2652783500 Zebrafish GRCz11 1,368,780,147 effectiveGenomeSize 1368780147 Drosophila dm6 142,573,017 effectiveGenomeSize 142573017 C. elegans WBcel235/ce11 100,286,401 effectiveGenomeSize 100286401 Verify the exact FASTA, contig set, and mapping/filter policy before choosing a value. Details: references/effective genome sizes.md Common Parameters Across Tools Many deepTools commands share these options: Performance: numberOfProcessors, p : Use the CPU allocation allowed by your scheduler max / max/2 : Supported values for numberOfProcessors ; useful under schedulers because recent deepTools releases detect CPU affinity more carefully region : Process specific regions for testing (e.g., chr1:1:1000000 ) Read Filtering: samFlagExclude 1024 : Exclude alignments already marked duplicate (0x400); does not identify duplicates minMappingQuality : Filter by alignment quality (e.g., minMappingQuality 10 ) minFragmentLength / maxFragmentLength : Fragment length bounds samFlagInclude / samFlagExclude : SAM flag filtering Read Processing: extendReads : Extend to fragment length (ChIP seq: YES, RNA seq: NO) centerReads : Center at fragment midpoint for sharper signals Best Practices File Validation Always validate files first using scripts/validate files.py to check: File existence and readability BAM opens with pysam, coordinate order and every alignment decode, readable BAI/CSI index All BED rows: nonnegative, nonempty, zero based half open intervals; BED6 strand bigWig opens with pyBigWig and contains indexed signal Analysis Strategy 1. Start with QC : Run correlation, coverage, and fingerprint analysis before proceeding 2. Test on small regions : Use region chr1:1:10000000 for parameter testing 3. Document commands : Save full command lines for reproducibility 4. Use consistent normalization : Apply same method across samples in comparisons 5. Verify genome assembly : Ensure BAM and BED files use matching genome builds ChIP seq Specific Choose fragment handling for ChIP seq: use paired end fragment lengths or a measured single end extension; 200 bp is an illustrative fallback Duplicate policy : mark duplicates upstream, then use samFlagExclude 1024 when the assay warrants removal; coordinate duplication alone does not prove PCR duplication Check enrichment first : Run plotFingerprint before detailed analysis GC correction : Only apply if significant bias detected; never use samFlagExclude 1024 after GC correction RNA seq Specific Never extend reads for RNA seq (would span splice junctions) Strand specific : Use filterRNAstrand forward/reverse for common dUTP style stranded libraries; confirm library orientation before interpreting strand labels Normalization : CPM or per bin RPKM for coverage tracks; these are not annotation aware gene expression estimates ATAC seq Specific Choose the signal first : use alignmentSieve ATACshift once for shifted alignments; this alone does not create an insertion site track Use only proper pairs for shifting : ATACshift is equivalent to shift 4 5 5 4 and filters to properly paired fragments Fragment filtering : Set appropriate min/max fragment lengths Check nucleosome pattern : inspect the unshifted library; periodicity and relative modes depend on assay/preparation, with no universal pass threshold Performance Optimization 1. Use multiple processors : numberOfProcessors 8 (or available cores) 2. Increase bin size for faster processing and smaller files 3. Process chromosomes separately for memory limited systems 4. Pre filter BAM files using alignmentSieve to create reusable filtered files 5. Use bigWig over bedGraph : Compressed and faster to process Troubleshooting Common Issues BAM index missing: Out of memory: Process chromosomes individually using region : Slow processing: Increase numberOfProcessors and/or increase binSize bigWig files too large: Increase bin size: binSize 50 or larger Validation Errors Run validation script to identify issues: Common errors and solutions explained in script output. Reference Documentation This skill includes comprehensive reference documentation: references/tools reference.md Reference for the main deepTools commands organized by category: BAM and bigWig processing Quality control Visualization Matrix operations and filtering estimates Each tool includes: Purpose and overview Key parameters with explanations Usage examples Important notes and best practices Use this reference when: Users ask about specific tools, parameters, or detailed usage. references/workflows.md Complete workflow examples for common analyses: ChIP seq quality control workflow ChIP seq complete analysis workflow RNA seq coverage workflow ATAC seq analysis workflow Multi sample comparison workflow Peak region analysis workflow Troubleshooting and performance tips Use this reference when: Users need complete analysis pipelines or workflow examples. references/normalization methods.md Comprehensive guide to normalization methods: Detailed explanation of each method (RPGC, CPM, RPKM, BPM, etc.) When to use each method Formulas and interpretation Selection guide by experiment type Common pitfalls and solutions Quick reference table Use this reference when: Users ask about normalization, comparing samples, or which method to use. references/effective genome sizes.md Effective genome size values and usage: Common organism values (human, mouse, fly, worm, zebrafish) Read length specific values Calculation methods When and how to use in commands Custom genome calculation instructions Use this reference when: Users need genome size for RPGC normalization or GC bias correction. Helper Scripts scripts/validate files.py Validates BAM, bigWig, and BED files for deepTools analysis. Checks file existence, indices, and format. Usage: When to use: Before starting any analysis, or when troubleshooting errors. scripts/workflow generator.py Generates bash templates for deepTools 4.0.0. Templates assume coordinate sorted, indexed, duplicate marked BAMs; QC fragment size analysis requires paired end data, RNA strand labels assume dUTP libraries, and TSS plots require strand aware BED6/GTF. Review the generated script before running. RPGC workflows require an explicit genome size . Available workflows: chipseq qc : ChIP seq quality control chipseq analysis : Complete ChIP seq analysis rnaseq coverage : Strand specific RNA seq coverage atacseq : ATAC seq with Tn5 correction Usage: When to use: Users request standard workflows or need template scripts to customize. Assets assets/quick reference.md Quick reference card with most common commands, effective genome sizes, and typical workflow pattern. When to use: Users need quick command examples without detailed documentation. Handling User Requests For New Users 1. Start with installation verification 2. Validate input