bioinformatics-installer
Install bioinformatics tools for ENCODE data analysis. Covers CLI tools (BWA, STAR, samtools, MACS2), R/Bioconductor packages (DESeq2, Seurat, ChIPseeker), Python packages (Scanpy, deeptools), and Nextflow pipeline infrastructure. Generates conda environments, R install scripts,
Install
npx skills add https://github.com/ammawla/encode-toolkit/tree/main/plugin/skills/bioinformatics-installer
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install ammawla-encode-toolkit@llmmart
git clone https://github.com/ammawla/encode-toolkit.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole ammawla/encode-toolkit collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Bioinformatics Installer for ENCODE Data Analysis
Install all bioinformatics tools needed for ENCODE data analysis, organized by assay type.
This skill provides ready-to-use conda environment definitions, R/Bioconductor install scripts,
Python package lists, and Nextflow pipeline infrastructure setup. Every primary tool is
version-pinned for reproducibility; a few utility packages (bedops, ucsc-bedgraphtobigwig,
pigz, openjdk, r-base) float so the solver can satisfy the pinned tools around them.
When to Use
- User wants to install bioinformatics tools needed for ENCODE data analysis
- User asks about "install tools", "conda environment", "setup bioinformatics", or "install HOMER/MACS2/deeptools"
- User needs pre-configured conda environments for specific assay pipelines (ChIP-seq, ATAC-seq, RNA-seq, etc.)
- User wants to install R/Bioconductor packages (DESeq2, Seurat, ChIPseeker) or Python packages (Scanpy, pysam)
- Example queries: "install tools for ChIP-seq analysis", "set up a conda environment for ATAC-seq", "install deeptools and bedtools"
Overview
ENCODE data analysis requires a broad ecosystem of tools spanning command-line aligners, peak callers, signal processors, statistical analysis frameworks in R, Python visualization and single-cell packages, and workflow engines. Setting up these tools correctly — with compatible versions, proper channel priorities, and no dependency conflicts — is a significant barrier for new users and a reproducibility concern for experienced analysts.
This skill solves that by providing:
- 7 assay-specific conda environments with pinned tool versions matching ENCODE pipeline standards
- R/Bioconductor install script covering 47 packages across 8 categories
- Python install script for single-cell, Hi-C, and genomics packages, locked by
scripts/constraints.txt - Nextflow install script + container checks for pipeline execution on local, HPC, and cloud platforms
The environment files, scripts/requirements.in and scripts/install-r-packages.R are the
authoritative package lists; the tables below summarise them.
All environments use the same channel priority (conda-forge > bioconda). Every file is dry-run solved for Linux x86_64 in CI, so the pinned versions exist and install together. Several tools have no macOS arm64 build on bioconda; on Apple Silicon use the pipeline Docker images instead.
For every tool that an environment and the matching pipeline-* Docker image both install, the
two pin the same version, and CI fails if they drift. Some tools exist on only one side — for
example phantompeakqualtools, salmon, subread and the Hi-C bedtools are conda-only,
while juicer_tools, SEACR, Hotspot2 and modwt are image-only because they are not conda
packages. Those are noted in the sections below.
Quick Start
Install a complete environment for any assay type with a single command:
# ChIP-seq (histone or TF)
conda env create -f skills/bioinformatics-installer/environments/chipseq-env.yml
# ATAC-seq
conda env create -f skills/bioinformatics-installer/environments/atacseq-env.yml
# RNA-seq
conda env create -f skills/bioinformatics-installer/environments/rnaseq-env.yml
# Hi-C
conda env create -f skills/bioinformatics-installer/environments/hic-env.yml
# Whole-Genome Bisulfite Sequencing (WGBS)
conda env create -f skills/bioinformatics-installer/environments/wgbs-env.yml
# DNase-seq
conda env create -f skills/bioinformatics-installer/environments/dnaseseq-env.yml
# CUT&RUN / CUT&Tag
conda env create -f skills/bioinformatics-installer/environments/cutandrun-env.yml
Using mamba for faster solves (recommended):
mamba env create -f skills/bioinformatics-installer/environments/chipseq-env.yml
Install R and Python packages:
# All R/Bioconductor packages
Rscript skills/bioinformatics-installer/scripts/install-r-packages.R --all
# All Python packages
bash skills/bioinformatics-installer/scripts/install-python-packages.sh --all
# Install the pinned Nextflow release and check for a Docker runtime
bash skills/bioinformatics-installer/scripts/install-nextflow.sh --docker
Per-Assay Environments
ChIP-seq Environment (encode-chipseq)
For histone modification and transcription factor ChIP-seq processing following ENCODE uniform pipeline standards (Landt et al. 2012, ENCODE Consortium 2020).
| Tool | Version | Purpose |
|---|---|---|
| BWA-MEM | 0.7.18 | Read alignment to reference genome (Li & Durbin 2009) |
| samtools | 1.19 | BAM manipulation, sorting, indexing, flagstat (Li et al. 2009) |
| MACS2 | 2.2.9.1 | Peak calling for narrow (TF) and broad (histone) marks (Zhang et al. 2008) |
| Picard | 3.1.1 | Duplicate marking and library complexity metrics (Broad Institute) |
| phantompeakqualtools | 1.2.2 | Strand cross-correlation (NSC/RSC) quality metrics (Kharchenko et al. 2008) |
| IDR | 2.0.4.2 | Irreproducible Discovery Rate for replicate consistency (Li et al. 2011) |
| deeptools | 3.5.5 | Signal normalization (bamCoverage), fingerprint, correlation (Ramirez et al. 2016) |
| bedtools | 2.31.0 | Interval operations, blacklist filtering (Quinlan & Hall 2010) |
| FastQC | 0.12.1 | Raw read quality assessment (Andrews 2010) |
| Trim Galore | 0.6.10 | Adapter and quality trimming via Cutadapt (Krueger 2012) |
| MultiQC | 1.21 | Aggregate QC report across all pipeline stages (Ewels et al. 2016) |
| bedGraphToBigWig | — | Convert bedGraph signal to bigWig for genome browser viewing (Kent et al. 2010) |
Memory: BWA index for GRCh38 requires ~5.5 GB RAM. Peak calling with MACS2 typically requires 4-8 GB. phantompeakqualtools loads full BAM into memory.
Environment file: environments/chipseq-env.yml
ATAC-seq Environment (encode-atacseq)
For chromatin accessibility profiling via ATAC-seq following ENCODE standards (Buenrostro et al. 2013, Corces et al. 2017).
| Tool | Version | Purpose |
|---|---|---|
| Bowtie2 | 2.5.4 | Alignment (preferred over BWA for ATAC-seq short fragments) (Langmead & Salzberg 2012) |
| MACS2 | 2.2.9.1 | Peak calling (pipeline-atacseq calls it with -f BAMPE on Tn5-shifted reads) (Zhang et al. 2008) |
| IDR | 2.0.4.2 | Irreproducible Discovery Rate for replicate consistency (Li et al. 2011) |
| samtools | 1.19 | BAM manipulation, mitochondrial read filtering |
| Picard | 3.1.1 | Duplicate marking, insert size metrics |
| deeptools | 3.5.5 | alignmentSieve (Tn5 offset), bamCoverage (signal tracks), plotFingerprint |
| bedtools | 2.31.0 | Blacklist filtering, interval operations |
| FastQC | 0.12.1 | Raw read quality and adapter content assessment |
| Trim Galore | 0.6.10 | Adapter trimming (Nextera adapters for ATAC-seq) |
| MultiQC | 1.21 | Aggregate QC reporting |
Key ATAC-seq parameters: Tn5 transposase introduces a +4/-5 bp offset that must be corrected. Fragment size distribution should show nucleosomal ladder (sub-nucleosomal, mono-, di-, tri-). TSS enrichment score should be >= 5 (GRCh38), >= 6 (hg19), or >= 10 (mm10) for high-quality data (ENCODE data standards).
Environment file: environments/atacseq-env.yml
RNA-seq Environment (encode-rnaseq)
For gene expression quantification following ENCODE RNA-seq standards (Conesa et al. 2016, ENCODE Consortium 2020).
| Tool | Version | Purpose |
|---|---|---|
| STAR | 2.7.11b | Splice-aware alignment with 2-pass mapping (Dobin et al. 2013) |
| RSEM | 1.3.3 | Gene/transcript quantification with expectation-maximization (Li & Dewey 2011) |
| Kallisto | 0.50.1 | Pseudoalignment-based transcript quantification (Bray et al. 2016) |
| Salmon | 1.10.3 | Quasi-mapping transcript quantification with GC bias correction (Patro et al. 2017) |
| featureCounts (subread) | 2.0.6 | Gene-level read counting for count-based DE methods (Liao et al. 2014) |
| samtools | 1.19 | BAM handling, flagstat, idxstats |
| FastQC | 0.12.1 | Read quality assessment |
| Trim Galore | 0.6.10 | Adapter and quality trimming |
| MultiQC | 1.21 | Aggregate QC report |
| RSeQC | 5.0.3 | RNA-seq-specific QC: gene body coverage, read distribution, inner distance (Wang et al. 2012) |
Memory: STAR genome generation requires 32+ GB RAM for human genome. STAR alignment requires ~30 GB RAM. Kallisto and Salmon are memory-efficient alternatives (~4 GB).
Environment file: environments/rnaseq-env.yml
Hi-C Environment (encode-hic)
For chromatin conformation capture processing following ENCODE Hi-C standards (Yardimci et al. 2019, Rao et al. 2014).
| Tool | Version | Purpose |
|---|---|---|
| BWA-MEM | 0.7.18 | Chimeric read alignment (each mate aligned independently) |
| pairtools | 1.1.2 | Parse, sort, deduplicate, filter contact pairs (Open2C) |
| cooler | 0.9.3 | Multi-resolution contact matrix storage and balancing (Abdennur & Mirny 2020) |
| openjdk | >=11 | Java runtime for Juicer Tools (the jar itself is installed separately, see below) |
| samtools | 1.19 | BAM handling for chimeric alignment parsing |
| bedtools | 2.31.0 | Restriction fragment and TAD boundary operations |
| FastQC | 0.12.1 | Read quality assessment |
| Trim Galore | 0.6.10 | Adapter trimming |
| MultiQC | 1.21 | Aggregate QC reporting |
Key Hi-C parameters: Cis/trans ratio > 60%, long-range cis contacts (> 20 kb) > 40%. Resolution depends on sequencing depth: ~1 billion valid pairs for 5 kb resolution on human.
Juicer Tools is not in this environment. The YAML installs only the Java runtime it needs.
Download juicer_tools.2.20.00.jar from the aidenlab/Juicebox GitHub releases and invoke it
with java -jar. The Hi-C pipeline image (pipeline-hic/scripts/Dockerfile) already contains it.
The environment also installs cooltools, hic-straw and pyGenomeTracks from PyPI (unpinned).
Environment file: environments/hic-env.yml
WGBS Environment (encode-wgbs)
For whole-genome bisulfite sequencing (DNA methylation) following ENCODE standards (Foox et al. 2021, Schultz et al. 2015).
| Tool | Version | Purpose |
|---|---|---|
| Bismark | 0.24.2 | Bisulfite-aware alignment and methylation extraction (Krueger & Andrews 2011) |
| MethylDackel | 0.6.1 | Fast methylation extraction from bisulfite BAMs (Ryan 2023) |
| samtools | 1.19 | BAM manipulation, merge, index |
| bedtools | 2.31.0 | Interval operations for DMR analysis |
| FastQC | 0.12.1 | Read quality assessment (note: bisulfite libraries have biased base composition) |
| Trim Galore | 0.6.10 | Adapter trimming with --rrbs or default mode |
| MultiQC | 1.21 | Aggregate QC reporting with Bismark module |
| htslib | 1.19 | Provides tabix and bgzip for indexed, block-gzipped methylation BED files |
| Bowtie2 | 2.5.4 | Backend aligner required by Bismark |
Key WGBS parameters: Bisulfite conversion rate ≥ 98% (check unmethylated spike-in lambda DNA). CpG coverage >= 10x for reliable DMR calling. M-bias plots should be checked for end-repair artifacts.
Environment file: environments/wgbs-env.yml
DNase-seq Environment (encode-dnaseseq)
For DNase I hypersensitive site mapping following ENCODE standards (Thurman et al. 2012, ENCODE Consortium 2020).
| Tool | Version | Purpose |
|---|---|---|
| BWA-MEM | 0.7.18 | Read alignment to reference genome |
| Picard | 3.1.1 | Duplicate marking and library complexity metrics |
| BEDOPS | unpinned | sort-bed and unstarch for the Hotspot2 .starch archives (Neph et al. 2012) |
| HINT (RGT) | 1.0.2 | TF footprinting from DNase-seq data (Li et al. 2019); installed from PyPI |
| F-Seq2 | 2.0.3 | Feature density estimation for peak calling (Boyle et al. 2008, Zhao et al. 2020); installed from PyPI |
| samtools | 1.19 | BAM handling and filtering |
| bedtools | 2.31.0 | Interval operations, blacklist filtering |
| FastQC | 0.12.1 | Read quality assessment |
| Trim Galore | 0.6.10 | Adapter trimming |
| MultiQC | 1.21 | Aggregate QC reporting |
| bedGraphToBigWig | unpinned | Convert bedGraph signal to bigWig |
Hotspot2 2.1.2 and its modwt dependency are not in this environment — neither is packaged
for conda. Build both from source (pipeline-dnaseseq/scripts/Dockerfile shows the exact steps)
or run the pipeline through that image, which is what pipeline-dnaseseq does.
Environment file: environments/dnaseseq-env.yml
CUT&RUN / CUT&Tag Environment (encode-cutandrun)
For antibody-targeted chromatin profiling via CUT&RUN (Skene & Henikoff 2017) and CUT&Tag (Kaya-Okur et al. 2019).
| Tool | Version | Purpose |
|---|---|---|
| Bowtie2 | 2.5.4 | Alignment (recommended for shorter CUT&RUN/Tag fragments) |
| r-base | >=4.3 | R runtime that the SEACR shell script calls (SEACR itself is installed separately, see below) |
| MACS2 | 2.2.9.1 | Alternative peak calling with adjusted parameters |
| samtools | 1.19 | BAM handling, spike-in alignment filtering |
| Picard | 3.1.1 | Duplicate marking (low duplication expected for CUT&RUN/Tag) |
| deeptools | 3.5.5 | Signal tracks, heatmaps, spike-in normalization |
| bedtools | 2.31.0 | Interval operations, suspect list filtering |
| FastQC | 0.12.1 | Read quality assessment |
| Trim Galore | 0.6.10 | Adapter trimming |
| MultiQC | 1.21 | Aggregate QC reporting |
SEACR 1.3 is not in this environment. It is a shell script plus an R script; download the
v1.3 tarball from FredHutch/SEACR and put both SEACR_1.3.sh and SEACR_1.3.R on the PATH,
alongside the r-base this environment installs. The CUT&RUN pipeline image
(pipeline-cutandrun/scripts/Dockerfile) already contains it.
Key CUT&RUN/Tag notes: These assays have inherently lower background than ChIP-seq. Do NOT apply ChIP-seq quality thresholds — use CUT&RUN-specific metrics (Nordin et al. 2023). Apply the CUT&RUN suspect list instead of the standard ENCODE blacklist. Spike-in normalization (E. coli DNA for CUT&RUN, carry-over for CUT&Tag) is strongly recommended for quantitative comparisons.
Environment file: environments/cutandrun-env.yml
R/Bioconductor Packages
Install all R packages needed for ENCODE downstream analysis. The install script at
scripts/install-r-packages.R handles BiocManager setup, version locking, and
category-based installation.
Core Genomic Infrastructure
These packages provide the foundation for all genomic data manipulation in R:
| Package | Purpose |
|---|---|
| GenomicRanges | Interval arithmetic on genomic coordinates (Lawrence et al. 2013) |
| GenomicFeatures | Gene model and transcript annotation handling |
| rtracklayer | Import/export BED, bigWig, GFF, narrowPeak, broadPeak |
| IRanges | Integer range operations (underlying GenomicRanges) |
| GenomeInfoDb | Chromosome naming conventions (UCSC vs Ensembl vs NCBI) |
| BiocGenerics | Common S4 generics across Bioconductor |
| S4Vectors | S4 class infrastructure for Bioconductor objects |
| AnnotationDbi | Unified interface to annotation databases |
| biomaRt | Ensembl BioMart query interface for gene annotation (Durinck et al. 2009) |
Differential Analysis
| Package | Purpose |
|---|---|
| DESeq2 | Differential gene expression with shrinkage estimators (Love et al. 2014) |
| edgeR | Differential expression using empirical Bayes (Robinson et al. 2010) |
| limma | Linear models for microarray and RNA-seq data (Ritchie et al. 2015) |
| DiffBind | Differential binding analysis for ChIP-seq/ATAC-seq peaks (Stark & Brown 2011) |
| ChIPQC | ChIP-seq quality control in R (Carroll et al. 2014) |
| chromVAR | Chromatin accessibility variation across single cells (Schep et al. 2017) |
Annotation and Pathway Analysis
| Package | Purpose |
|---|---|
| ChIPseeker | Peak annotation and visualization (Yu et al. 2015) |
| annotatr | Annotate genomic regions with CpG islands, genes, enhancers (Cavalcante & Sartor 2017) |
| clusterProfiler | Gene ontology and KEGG pathway enrichment (Yu et al. 2012) |
| org.Hs.eg.db | Human gene annotation database |
| org.Mm.eg.db | Mouse gene annotation database |
| TxDb.Hsapiens.UCSC.hg38.knownGene | Human transcript models (GRCh38) |
| TxDb.Mmusculus.UCSC.mm10.knownGene | Mouse transcript models (mm10) |
Single-Cell Analysis
| Package | Purpose |
|---|---|
| Seurat | Comprehensive single-cell RNA-seq analysis (Hao et al. 2021) |
| Signac | Single-cell chromatin accessibility (ATAC-seq) analysis (Stuart et al. 2021) |
| SingleCellExperiment | Core Bioconductor container for single-cell data |
| scater | Single-cell QC, normalization, visualization (McCarthy et al. 2017) |
| scran | Single-cell normalization and feature selection (Lun et al. 2016) |
Bulk-to-Single-Cell Deconvolution
| Package | Purpose |
|---|---|
| BisqueRNA | Reference-based and marker-based deconvolution (Jew et al. 2020) |
| DWLS | Dampened Weighted Least Squares deconvolution (Tsoucas et al. 2019) |
| BayesPrism | Bayesian deconvolution with scRNA-seq reference (Chu et al. 2022). GitHub only — the script prints the devtools::install_github() line, it does not install it |
| InstaPrism | Fast approximation of BayesPrism for large datasets (Wang et al. 2024). GitHub only, same as BayesPrism |
DNA Methylation Analysis
| Package | Purpose |
|---|---|
| DMRcate | Differentially methylated region detection (Peters et al. 2021) |
| bsseq | Bisulfite sequencing data handling and smoothing (Hansen et al. 2012) |
| methylKit | Methylation analysis from bisulfite sequencing (Akalin et al. 2012) |
Visualization
| Package | Purpose |
|---|---|
| ComplexHeatmap | Publication-quality heatmaps with annotations (Gu et al. 2016) |
| EnhancedVolcano | Volcano plots for differential expression (Blighe et al. 2018) |
| Gviz | Genome browser-style track visualization (Hahne & Ivanek 2016) |
| ggplot2 | Grammar of graphics for all custom plots (Wickham 2016) |
Statistics and Batch Correction
| Package | Purpose |
|---|---|
| sva (ComBat) | Surrogate variable analysis and batch correction (Leek et al. 2012) |
| WGCNA | Weighted Gene Co-expression Network Analysis (Langfelder & Horvath 2008) |
| ReactomePA | Reactome pathway analysis (Yu & He 2016) |
Install script: scripts/install-r-packages.R
# Install all categories
Rscript scripts/install-r-packages.R --all
# Install only specific categories
Rscript scripts/install-r-packages.R --chipseq # DiffBind, ChIPQC, ChIPseeker
Rscript scripts/install-r-packages.R --rnaseq # DESeq2, edgeR, limma
Rscript scripts/install-r-packages.R --singlecell # Seurat, Signac, scater, scran
Rscript scripts/install-r-packages.R --methylation # DMRcate, bsseq, methylKit
Rscript scripts/install-r-packages.R --deconvolution # BisqueRNA, DWLS (+ GitHub lines for BayesPrism, InstaPrism)
Rscript scripts/install-r-packages.R --visualization # ComplexHeatmap, EnhancedVolcano, Gviz, ggplot2
Rscript scripts/install-r-packages.R --stats # sva, WGCNA, ReactomePA
The tables above list the main packages per category. scripts/install-r-packages.R holds the
complete, authoritative lists (47 packages across 8 categories), including supporting packages
such as TFBSTools, motifmatchr, tximport, tximeta, celda, pheatmap, RColorBrewer
and viridis.
Python Packages
Install Python packages for single-cell analysis, Hi-C processing, signal visualization, and genomic data manipulation.
Core Single-Cell Stack
| Package | Purpose |
|---|---|
| scanpy | Single-cell RNA-seq analysis framework (Wolf et al. 2018) |
| anndata | Annotated data matrix for single-cell (Virshup et al. 2021) |
| scvi-tools | Deep generative models for single-cell (Gayoso et al. 2022) |
| numpy | Numerical computing |
| pandas | Data manipulation and tabular operations |
| scipy | Scientific computing (sparse matrices, statistics) |
| matplotlib | Plotting foundation |
| seaborn | Statistical visualization |
Genomics and Signal Processing
| Package | Purpose |
|---|---|
| deeptools | Signal tracks, heatmaps, correlation (also CLI; Ramirez et al. 2016) |
| pyBigWig | Read/write bigWig signal files (Ryan 2023) |
| pysam | Python interface to samtools/htslib (Li et al. 2009) |
| pybedtools | Python interface to bedtools (Dale et al. 2011) |
Hi-C Analysis
| Package | Purpose |
|---|---|
| cooler | Multi-resolution contact matrices (Abdennur & Mirny 2020) |
| cooltools | Analysis toolkit for cooler data: TADs, compartments, insulation |
| hic-straw | Read .hic files from Juicer/Juicebox (Durand et al. 2016) |
| pyGenomeTracks | Genome browser visualization including Hi-C tracks |
Single-Cell QC and Integration
| Package | Purpose |
|---|---|
| scrublet | Doublet detection for scRNA-seq (Wolock et al. 2019) |
| harmony-pytorch | Batch integration via Harmony in PyTorch (Korsunsky et al. 2019) |
| scanorama | Panoramic stitching of scRNA-seq datasets (Hie et al. 2019) |
| bbknn | Batch-balanced KNN graph construction (Polanski et al. 2020) |
CellBender (ambient RNA removal, Fleming et al. 2023) is not installed by the script — it is
GPU-oriented and is left to a manual pip install cellbender, which the script prints as a note.
Install script: scripts/install-python-packages.sh
# Install all Python packages
bash scripts/install-python-packages.sh --all
# Install only specific categories
bash scripts/install-python-packages.sh --genomics # numpy, pandas, scipy, matplotlib, seaborn
bash scripts/install-python-packages.sh --singlecell # scanpy, scvi-tools, harmony-pytorch
bash scripts/install-python-packages.sh --hic # cooler, cooltools, hic-straw, bioframe
bash scripts/install-python-packages.sh --deeptools # deeptools, pyBigWig, pysam, pybedtools
Every category except --genomics also installs the core genomics packages first. The complete,
authoritative list of direct dependencies is scripts/requirements.in; exact versions for the
whole dependency tree are locked in scripts/constraints.txt, which every install is constrained
by.
Nextflow and Container Setup
ENCODE pipeline execution requires Nextflow DSL2 and a container runtime (Docker or Singularity).
Nextflow Installation
# Install the pinned Nextflow release (requires Java 17+) and check for Docker.
# Use --singularity for HPC, or --both.
bash scripts/install-nextflow.sh --docker
# Verify
nextflow -version
What the script does:
- Downloads the pinned, self-contained Nextflow release the pipelines are validated against
(the version and its SHA-256 are at the top of
scripts/install-nextflow.sh), verifies the checksum, and only then installs it to/usr/local/binor~/.local/bin. - An existing Nextflow is accepted only if it is exactly that pinned release. Any other
version is left untouched; the pinned release is installed next to it and the script tells you
to put its directory first on
PATH. - Docker and Singularity are checked, not installed: the script reports what it finds and prints the install commands for your platform. Run those yourself.
Docker (recommended for local/cloud)
# macOS
brew install --cask docker
# Linux (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# Add current user to docker group (Linux)
sudo usermod -aG docker $USER
Singularity (for HPC clusters)
# Most HPC clusters have Singularity pre-installed
# Check with: module load singularity && singularity version
# If not available, install via conda:
conda install -c conda-forge singularity
Nextflow Configuration Profiles
The pipeline skills (pipeline-chipseq, pipeline-atacseq, etc.) include nextflow.config files
with profiles for local, SLURM, GCP, and AWS execution. Select the appropriate profile:
# Local with Docker
nextflow run main.nf -profile local
# HPC with Singularity
nextflow run main.nf -profile slurm
# Google Cloud
nextflow run main.nf -profile gcp
# AWS Batch
nextflow run main.nf -profile aws
Install script: scripts/install-nextflow.sh
Motif Analysis Tools
For transcription factor binding motif discovery and scanning.
| Tool | Version | Type | Purpose |
|---|---|---|---|
| HOMER | 4.11 | CLI | De novo and known motif discovery, annotation (Heinz et al. 2010) |
| MEME Suite | 5.5.5 | CLI | MEME, DREME, STREME de novo discovery; FIMO scanning; AME enrichment (Bailey et al. 2015) |
| FIMO | 5.5.5 | CLI (part of MEME Suite) | Motif occurrence scanning across sequences |
| TFBSTools | R | R/Bioconductor | JASPAR motif handling, PFM/PWM conversion, motif scanning in R (Tan & Lenhard 2016) |
HOMER Installation
# Download and configure HOMER
mkdir -p ~/software/homer
cd ~/software/homer
wget http://homer.ucsd.edu/homer/configureHomer.pl
perl configureHomer.pl -install homer
perl configureHomer.pl -install hg38 # Human genome
perl configureHomer.pl -install mm10 # Mouse genome
# Add to PATH
export PATH=$PATH:~/software/homer/bin
MEME Suite Installation
# Via conda (recommended)
conda install -c bioconda meme
# Or from source
wget https://meme-suite.org/meme/meme-software/5.5.5/meme-5.5.5.tar.gz
tar xzf meme-5.5.5.tar.gz
cd meme-5.5.5
./configure --prefix=$HOME/software/meme --enable-build-libxml2 --enable-build-libxslt
make && make install
Walkthrough: Setting Up a Complete ENCODE Analysis Environment
Goal: Install all bioinformatics tools needed to process ENCODE data, from raw FASTQ files through peak calling, annotation, and visualization, using Conda environments. Context: ENCODE analysis requires dozens of specialized tools. This skill automates installation with pre-configured Conda environments for each pipeline stage.
Step 1: Determine required tools by experiment type
encode_get_experiment(accession="ENCSR000AKA")
Expected output:
{
"accession": "ENCSR000AKA",
"assay_title": "Histone ChIP-seq",
"target": "H3K27ac"
}
Interpretation: Histone ChIP-seq requires: BWA-MEM (alignment), SAMtools (BAM processing), MACS2 (peak calling), IDR (reproducibility), bedtools (interval operations), deepTools (signal visualization).
Step 2: Install the ChIP-seq Conda environment
# Using the pre-configured environment YAML
conda env create -f skills/bioinformatics-installer/environments/chipseq-env.yml
conda activate encode-chipseq
environments/chipseq-env.yml is the authoritative list of what that environment installs —
read it rather than retyping the versions. It covers alignment (BWA), BAM processing (samtools,
Picard), peak calling (MACS2), replicate consistency (IDR), cross-correlation metrics
(phantompeakqualtools), signal processing (deeptools), interval operations (bedtools), and
QC/trimming (FastQC, Trim Galore, MultiQC). See the ChIP-seq table above for the pinned versions.
Step 3: Install additional tools for downstream analysis
For peak annotation and motif analysis:
conda create -n encode-annotation -c conda-forge -c bioconda \
homer bedtools bioconductor-chipseeker bioconductor-clusterprofiler bioconductor-rgreat
conda activate encode-annotation
# Includes: HOMER, bedtools, R/Bioconductor (ChIPseeker, clusterProfiler, rGREAT for GREAT queries)
Step 4: Verify installation
# Quick verification of key tools
bwa 2>&1 | head -3
samtools --version | head -1
macs2 --version
bedtools --version
Step 5: Download reference data for ENCODE analysis
encode_download_files(file_accessions=["ENCFF001ABC"], download_dir="/data/references")
Reference files needed:
- GRCh38 genome FASTA
- ENCODE blacklist v2 (Amemiya et al. 2019)
- Gene annotation GTF (GENCODE v36)
Integration with downstream skills
- Installed tools are used by → pipeline-chipseq through pipeline-cutandrun for processing
- Reference data feeds into → download-encode for FASTQ retrieval
- Environment setup enables → quality-assessment tool execution
- Installed annotation tools support → peak-annotation and motif-analysis
Code Examples
1. Find experiments to identify required tools
encode_search_experiments(
assay_title="ATAC-seq",
organ="pancreas"
)
Expected output:
{
"results": [
{
"accession": "ENCSR799GHJ",
"assay_title": "ATAC-seq",
"biosample_summary": "pancreatic islet tissue male adult (44 years)",
"organ": "pancreas",
"status": "released"
}
],
"total": 8,
"limit": 25,
"offset": 0,
"has_more": false,
"next_offset": null
}
Install decision: ATAC-seq requires the atacseq-env.yml conda environment (Bowtie2 + MACS2 + deeptools + samtools + bedtools).
2. Get file info to understand format requirements
encode_get_file_info(accession="ENCFF001ABC")
Expected output:
{
"accession": "ENCFF001ABC",
"file_format": "fastq",
"file_type": "fastq",
"output_type": "reads",
"file_size_human": "4.4 GB",
"experiment_assay": "ATAC-seq",
"biological_replicates": [1],
"status": "released"
}
Install decision: raw ATAC-seq reads need Bowtie2 (not BWA), Picard for duplicate marking, and samtools for BAM processing — the atacseq-env.yml environment. Whether the FASTQ is one mate of a pair is on the file's page on encodeproject.org (paired_end, paired_with), not in this response.
Pitfalls & Edge Cases
- Conda solver conflicts: Large conda environments with many packages can take hours to solve. Use mamba instead of conda for faster dependency resolution, or install in smaller focused environments.
- R/Bioconductor version mismatch: R packages from CRAN and Bioconductor must match the R version. Installing Bioconductor 3.18 packages with R 4.4 will fail silently or produce errors. Use BiocManager::install() to ensure version compatibility.
- Python 2 vs Python 3: Some legacy bioinformatics tools (MACS 1.x, old HOMER) require Python 2. Never install Python 2 tools in the same environment as Python 3 tools — use separate conda environments.
- ARM Mac (M1/M2/M3) compatibility: Many bioinformatics tools lack native ARM builds. Use
CONDA_SUBDIR=osx-64or Rosetta 2 emulation for x86_64 packages. Some tools (samtools, BWA) have ARM-native builds. - Nextflow requires Java 17+: check
java -versionbefore running pipelines. Install Nextflow withscripts/install-nextflow.sh, which pins the release the pipelines are validated against and verifies its checksum; avoid piping a remote installer straight into a shell. - Docker vs Singularity on HPC: Most HPC clusters do not allow Docker (requires root). Use Singularity instead. The pipeline skills express this through the execution profile, not a runtime profile:
-profile localenables Docker,-profile slurmenables Singularity. There is nodockerorsingularityprofile. With-profile slurm, convert the image once and pass the file:singularity build pipeline-chipseq.sif docker-daemon://encode-toolkit/pipeline-chipseq:1.0.0, then--container /path/to/pipeline-chipseq.sif.
Literature Foundation
| # | Reference | Key Contribution |
|---|---|---|
| 1 | Li & Durbin 2009, Bioinformatics, DOI:10.1093/bioinformatics/btp324 (~30,000 cit) | BWA aligner |
| 2 | Langmead & Salzberg 2012, Nat Methods, DOI:10.1038/nmeth.1923 (~25,000 cit) | Bowtie2 aligner |
| 3 | Li et al. 2009, Bioinformatics, DOI:10.1093/bioinformatics/btp352 (~20,000 cit) | SAMtools/BAM format |
| 4 | Zhang et al. 2008, Genome Biol, DOI:10.1186/gb-2008-9-9-r137 (~7,000 cit) | MACS2 peak caller |
| 5 | Dobin et al. 2013, Bioinformatics, DOI:10.1093/bioinformatics/bts635 (~15,000 cit) | STAR RNA-seq aligner |
| 6 | Love et al. 2014, Genome Biol, DOI:10.1186/s13059-014-0550-8 (~30,000 cit) | DESeq2 |
| 7 | Ramirez et al. 2016, Nucleic Acids Res, DOI:10.1093/nar/gkw257 (~3,000 cit) | deeptools |
| 8 | Wolf et al. 2018, Genome Biol, DOI:10.1186/s13059-017-1382-0 (~5,000 cit) | Scanpy |
| 9 | Hao et al. 2021, Cell, DOI:10.1016/j.cell.2021.04.048 (~8,000 cit) | Seurat v4 |
| 10 | Quinlan & Hall 2010, Bioinformatics, DOI:10.1093/bioinformatics/btq033 (~10,000 cit) | bedtools |
| 11 | Ewels et al. 2016, Bioinformatics, DOI:10.1093/bioinformatics/btw354 (~3,000 cit) | MultiQC |
| 12 | Krueger & Andrews 2011, Bioinformatics, DOI:10.1093/bioinformatics/btr167 (~5,000 cit) | Bismark |
| 13 | Heinz et al. 2010, Molecular Cell, DOI:10.1016/j.molcel.2010.05.004 (~7,000 cit) | HOMER motif analysis |
| 14 | Bailey et al. 2015, Nucleic Acids Res, DOI:10.1093/nar/gkv416 (~3,000 cit) | MEME Suite |
| 15 | Meers et al. 2019, Epigenetics Chromatin, DOI:10.1186/s13072-019-0287-4 (~800 cit) | SEACR for CUT&RUN |
| 16 | Di Tommaso et al. 2017, Nat Biotechnol, DOI:10.1038/nbt.3820 (~2,500 cit) | Nextflow |
| 17 | Landt et al. 2012, Genome Res, DOI:10.1101/gr.136184.111 (~4,000 cit) | ENCODE ChIP-seq standards |
| 18 | ENCODE Consortium 2020, Nature, DOI:10.1038/s41586-020-2493-4 (~1,656 cit) | ENCODE Phase 3 |
| 19 | Amemiya et al. 2019, Sci Rep, DOI:10.1038/s41598-019-45839-z (~1,372 cit) | ENCODE Blacklist v2 |
Integration
| This skill produces... | Feed into... | Purpose |
|---|---|---|
| Conda environments | pipeline-chipseq through pipeline-cutandrun | Provide tool dependencies for all pipeline stages |
| Installed reference data | download-encode | Reference genomes and annotations for alignment |
| Tool version inventory | data-provenance | Record exact tool versions for reproducibility |
| QC tool installations | quality-assessment | Enable FastQC, MultiQC, and ENCODE QC metric tools |
| Annotation tool setup | peak-annotation | HOMER, ChIPseeker for peak-to-gene assignment |
| Motif scanning tools | jaspar-motifs | MEME Suite for motif scanning against JASPAR |
| Visualization tools | visualization-workflow | deepTools, IGV, R/ggplot2 for data visualization |
| Liftover utilities | liftover-coordinates | UCSC liftOver binary for assembly conversion |
Related Skills
- pipeline-guide: Parent skill for all pipeline execution; provides overview of available pipelines and tool selection guidance
- pipeline-chipseq: Uses the ChIP-seq conda environment tools for FASTQ-to-peaks processing
- pipeline-atacseq: Uses the ATAC-seq conda environment tools for accessibility analysis
- pipeline-rnaseq: Uses the RNA-seq conda environment for expression quantification
- pipeline-wgbs: Uses the WGBS conda environment for methylation analysis
- pipeline-hic: Uses the Hi-C conda environment for contact matrix generation
- pipeline-dnaseseq: Uses the DNase-seq conda environment for hotspot detection
- pipeline-cutandrun: Uses the CUT&RUN conda environment for CUT&RUN/CUT&Tag processing
- quality-assessment: Quality metrics require properly installed tools to compute
- setup: Initial ENCODE Toolkit server setup (MCP connection, not bioinformatics tools)
- motif-analysis: Requires HOMER and MEME Suite from this installer
- visualization-workflow: Uses deeptools, pyGenomeTracks, and R visualization packages from this installer
- single-cell-encode: Uses Seurat, Signac, Scanpy from this installer
- publication-trust: Assess scientific integrity of publications before relying on their methods or findings
Presenting Results
- Present installed tools as a checklist table: tool | version | status (installed/failed/skipped). Group by assay environment. Suggest: "Would you like to verify the installation by running a quick test on sample ENCODE data?"
- If any installation fails, provide the exact error and a targeted fix. Common fixes: update conda, set channel priority, install system dependencies.
For the request: "$ARGUMENTS"
Files (encode-toolkit)
-
environments
-
atacseq-env.yml 974 B
# ENCODE ATAC-seq Analysis Environment # Covers: chromatin accessibility profiling # Standards: Buenrostro et al. 2013, Corces et al. 2017 # Usage: conda env create -f atacseq-env.yml name: encode-atacseq channels: - conda-forge - bioconda dependencies: # IDR 2.0.4.2 is built for Python 3.10 and older on bioconda - python=3.10 # Alignment - bowtie2==2.5.4 # BAM processing - samtools==1.19 - picard==3.1.1 # Peak calling - macs2==2.2.9.1 # Replicate consistency - idr==2.0.4.2 # Signal processing (alignmentSieve for Tn5 offset, bamCoverage for tracks) - deeptools==3.5.5 # Interval operations - bedtools==2.31.0 # QC and trimming - fastqc==0.12.1 - trim-galore==0.6.10 - cutadapt==4.6 # run by Trim Galore; pinned to the version in the image - openjdk=17 # FastQC (and Picard, Juicer tools) run on Java; the image has OpenJDK 17 - multiqc==1.21 # Signal format conversion - ucsc-bedgraphtobigwig # Utilities - pigz -
chipseq-env.yml 996 B
# ENCODE ChIP-seq Analysis Environment # Covers: histone modification and transcription factor ChIP-seq # Standards: Landt et al. 2012, ENCODE Consortium 2020 # Usage: conda env create -f chipseq-env.yml name: encode-chipseq channels: - conda-forge - bioconda dependencies: # IDR 2.0.4.2 is built for Python 3.10 and older on bioconda - python=3.10 # Alignment - bwa==0.7.18 # BAM processing - samtools==1.19 - picard==3.1.1 # Peak calling - macs2==2.2.9.1 # Replicate consistency - idr==2.0.4.2 # Quality metrics - phantompeakqualtools==1.2.2 # Signal processing - deeptools==3.5.5 # Interval operations - bedtools==2.31.0 # QC and trimming - fastqc==0.12.1 - trim-galore==0.6.10 - cutadapt==4.6 # run by Trim Galore; pinned to the version in the image - openjdk=17 # FastQC (and Picard, Juicer tools) run on Java; the image has OpenJDK 17 - multiqc==1.21 # Signal format conversion - ucsc-bedgraphtobigwig # Utilities - pigz - gzip -
cutandrun-env.yml 979 B
# ENCODE CUT&RUN / CUT&Tag Analysis Environment # Covers: antibody-targeted chromatin profiling # Standards: Skene & Henikoff 2017 (CUT&RUN), Kaya-Okur et al. 2019 (CUT&Tag) # Usage: conda env create -f cutandrun-env.yml name: encode-cutandrun channels: - conda-forge - bioconda dependencies: - python=3.10 # Alignment - bowtie2==2.5.4 # BAM processing - samtools==1.19 - picard==3.1.1 # Peak calling - macs2==2.2.9.1 # SEACR peak calling (shell script + R) - r-base>=4.3 # Signal processing and spike-in normalization - deeptools==3.5.5 # Interval operations (suspect list filtering) - bedtools==2.31.0 # QC and trimming - fastqc==0.12.1 - trim-galore==0.6.10 - cutadapt==4.6 # run by Trim Galore; pinned to the version in the image - openjdk=17 # FastQC (and Picard, Juicer tools) run on Java; the image has OpenJDK 17 - multiqc==1.21 # Signal format conversion - ucsc-bedgraphtobigwig # Utilities - pigz - wget - curl -
dnaseseq-env.yml 1.1 KB
# ENCODE DNase-seq Analysis Environment # Covers: DNase I hypersensitive site mapping # Standards: Thurman et al. 2012, ENCODE Consortium 2020 # Usage: conda env create -f dnaseseq-env.yml name: encode-dnaseseq channels: - conda-forge - bioconda dependencies: - python=3.10 # Alignment - bwa==0.7.18 # BAM processing - samtools==1.19 - picard==3.1.1 # Hotspot detection: Hotspot2 and its modwt dependency are not packaged for conda. # Build them from source (see pipeline-dnaseseq/scripts/Dockerfile) or use that image. - bedops # Interval operations - bedtools==2.31.0 # QC and trimming - fastqc==0.12.1 - trim-galore==0.6.10 - cutadapt==4.6 # run by Trim Galore; pinned to the version in the image - openjdk=17 # FastQC (and Picard, Juicer tools) run on Java; the image has OpenJDK 17 - multiqc==1.21 # Signal format conversion - ucsc-bedgraphtobigwig # Utilities - pigz - pip # bioconda only builds RGT for Python 3.7 and does not package F-Seq2, so both come from PyPI - pip: # Footprinting (HINT is part of RGT) - RGT==1.0.2 # Feature density peak calling - fseq2==2.0.3 -
hic-env.yml 856 B
# ENCODE Hi-C Analysis Environment # Covers: chromatin conformation capture and 3D genome organization # Standards: Yardimci et al. 2019, Rao et al. 2014 # Usage: conda env create -f hic-env.yml name: encode-hic channels: - conda-forge - bioconda dependencies: - python=3.10 # Alignment (chimeric read handling) - bwa==0.7.18 # Contact pair processing - pairtools==1.1.2 # Contact matrix storage and balancing - cooler==0.9.3 # BAM processing - samtools==1.19 # Interval operations - bedtools==2.31.0 # QC and trimming - fastqc==0.12.1 - trim-galore==0.6.10 - cutadapt==4.6 # run by Trim Galore; pinned to the version in the image - multiqc==1.21 # Java runtime for Juicer - openjdk=17 # Python Hi-C packages - pip - pip: - cooltools - hic-straw - pyGenomeTracks # Utilities - pigz - pbgzip -
rnaseq-env.yml 808 B
# ENCODE RNA-seq Analysis Environment # Covers: gene expression quantification (total RNA-seq, mRNA-seq) # Standards: Conesa et al. 2016, ENCODE Consortium 2020 # Usage: conda env create -f rnaseq-env.yml name: encode-rnaseq channels: - conda-forge - bioconda dependencies: - python=3.10 # Splice-aware alignment - star==2.7.11b # Transcript quantification - rsem==1.3.3 - kallisto==0.50.1 - salmon==1.10.3 # Gene-level counting - subread==2.0.6 # BAM processing - samtools==1.19 # RNA-seq QC - rseqc==5.0.3 # QC and trimming - fastqc==0.12.1 - trim-galore==0.6.10 - cutadapt==4.6 # run by Trim Galore; pinned to the version in the image - openjdk=17 # FastQC (and Picard, Juicer tools) run on Java; the image has OpenJDK 17 - multiqc==1.21 # Utilities - pigz -
wgbs-env.yml 917 B
# ENCODE WGBS (Whole-Genome Bisulfite Sequencing) Analysis Environment # Covers: DNA methylation profiling # Standards: Foox et al. 2021, Schultz et al. 2015 # Usage: conda env create -f wgbs-env.yml name: encode-wgbs channels: - conda-forge - bioconda dependencies: - python=3.10 # Bisulfite-aware alignment and methylation extraction - bismark==0.24.2 # Fast methylation extraction - methyldackel==0.6.1 # BAM processing - samtools==1.19 # Interval operations - bedtools==2.31.0 # Indexing and compression for methylation BED files - htslib==1.19 # QC and trimming - fastqc==0.12.1 - trim-galore==0.6.10 - cutadapt==4.6 # run by Trim Galore; pinned to the version in the image - openjdk=17 # FastQC (and Picard, Juicer tools) run on Java; the image has OpenJDK 17 - multiqc==1.21 # Bowtie2 (required by Bismark as backend aligner) - bowtie2==2.5.4 # Utilities - pigz
-
-
references
-
literature.md 8.8 KB
# Bioinformatics Installer — Literature References **Last updated:** 2026-03-07 **Purpose:** Reference catalog for the bioinformatics-installer skill — papers on reproducible software environments, package management for bioinformatics, and the key tool ecosystem publications that define version requirements. --- ## Reproducible Environments --- ### Grüning et al. 2018 — Bioconda: sustainable bioinformatics software - **Citation:** Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nature Methods, 15(7):475-476, 2018. - **DOI:** [10.1038/s41592-018-0046-7](https://doi.org/10.1038/s41592-018-0046-7) - **PMID:** 29967506 - **Citations:** ~1,200 - **Key findings:** Introduced the Bioconda channel, a sustainable and community-driven distribution of bioinformatics software for the conda package manager. Provides >7,000 bioinformatics packages with dependency resolution, version pinning, and automated builds for Linux and macOS. Bioconda is the primary package source for all conda environments in this skill (channel priority: conda-forge > bioconda > defaults). The Bioconda model of community-maintained recipes ensures that tools are installable with consistent, tested dependency trees. --- ### Merkel 2014 — Docker: lightweight Linux containers - **Citation:** Merkel D. Docker: lightweight Linux containers for consistent development and deployment. Linux Journal, 239(2), 2014. - **Citations:** ~5,000 - **Key findings:** Docker containers provide OS-level virtualization ensuring that bioinformatics tools run identically regardless of the host system. The ENCODE consortium distributes Docker images for several of its WDL pipelines (encodedcc/*); the Nextflow pipeline skills in this toolkit build their own images instead, and this skill's Nextflow setup guide configures Docker as the default container runtime. Docker is essential for ENCODE pipeline reproducibility because tool behavior can depend on system libraries, compiler versions, and kernel features. --- ### Kurtzer et al. 2017 — Singularity: containers for scientific computing - **Citation:** Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS ONE, 12(5):e0177459, 2017. - **DOI:** [10.1371/journal.pone.0177459](https://doi.org/10.1371/journal.pone.0177459) - **PMID:** 28494014 | **PMC:** PMC5426675 - **Citations:** ~2,000 - **Key findings:** Introduced Singularity (now Apptainer), a container platform designed for HPC environments where Docker's root-level daemon model is not permitted. Singularity can convert Docker images and run them without root privileges, making it the standard container runtime on academic HPC clusters. This skill's install-nextflow.sh script detects the compute environment and configures either Docker (local/cloud) or Singularity (HPC/SLURM) accordingly. --- ### Di Tommaso et al. 2017 — Nextflow: scalable reproducible pipelines - **Citation:** Di Tommaso P, Chatzou M, Floden EW, Barja PP, Palumbo E, Notredame C. Nextflow enables reproducible computational workflows. Nature Biotechnology, 35(4):316-319, 2017. - **DOI:** [10.1038/nbt.3820](https://doi.org/10.1038/nbt.3820) - **PMID:** 28398311 - **Citations:** ~2,500 - **Key findings:** Introduced Nextflow, a reactive workflow framework that enables writing complex pipelines with simple DSL syntax and running them across local, HPC, and cloud environments. Nextflow handles job scheduling, retry logic, caching (-resume), and container orchestration. The ENCODE Toolkit's 7 pipeline skills are all implemented as Nextflow DSL2 workflows, and this skill's install-nextflow.sh script installs Nextflow along with the appropriate container runtime. --- ### Ewels et al. 2020 — nf-core: community curated bioinformatics pipelines - **Citation:** Ewels PA, Peltzer A, Fillinger S, Patel H, Alneberg J, Wilm A, Garcia MU, Di Tommaso P, Nahnsen S. The nf-core framework for community-curated bioinformatics pipelines. Nature Biotechnology, 38(3):276-278, 2020. - **DOI:** [10.1038/s41587-020-0439-x](https://doi.org/10.1038/s41587-020-0439-x) - **PMID:** 32055031 - **Citations:** ~1,500 - **Key findings:** Established nf-core as a community framework for curated Nextflow pipelines with standardized design patterns, CI testing, and documentation. nf-core pipelines (nf-core/chipseq, nf-core/atacseq, nf-core/rnaseq, nf-core/methylseq, nf-core/hic) represent an alternative implementation of the same processing steps defined in ENCODE pipelines. This skill provides environments compatible with both ENCODE-native and nf-core pipeline implementations. --- ## R/Bioconductor Ecosystem --- ### Huber et al. 2015 — Orchestrating high-throughput genomic analysis with Bioconductor - **Citation:** Huber W, Carey VJ, Gentleman R, Anders S, Brainard M, Davis S, Dudoit S, Ellis B, Gatto L, Girke T, Gottardo R, Hahne F, Hansen KD, Irizarry RA, Lawrence M, Love MI, MacDonald J, Obenchain V, Oleś AK, Pagès H, Reyes A, Shannon P, Smyth GK, Tenenbaum D, Waldron L, Morgan M. Orchestrating high-throughput genomic analysis with Bioconductor. Nature Methods, 12(2):115-121, 2015. - **DOI:** [10.1038/nmeth.3252](https://doi.org/10.1038/nmeth.3252) - **PMID:** 25633503 | **PMC:** PMC4509590 - **Citations:** ~3,500 - **Key findings:** Established Bioconductor as the standard R package ecosystem for genomic data analysis. Bioconductor provides >2,000 packages organized around core data structures (GenomicRanges, SummarizedExperiment, SingleCellExperiment). This skill's install-r-packages.R script installs packages from 8 Bioconductor categories: differential expression (DESeq2, edgeR, limma), single-cell (Seurat, monocle3), ChIP-seq/ATAC-seq (ChIPseeker, DiffBind), genomic ranges (GenomicRanges, rtracklayer), annotation (biomaRt, clusterProfiler), visualization (ComplexHeatmap, EnhancedVolcano), deconvolution (BayesPrism, MuSiC), and methylation (DMRcate, bsseq). --- ## Python Scientific Ecosystem --- ### Wolf et al. 2018 — Scanpy: large-scale single-cell analysis - **Citation:** Wolf FA, Angerer P, Theis FJ. SCANPY: large-scale single-cell gene expression data analysis. Genome Biology, 19:15, 2018. - **DOI:** [10.1186/s13059-017-1382-0](https://doi.org/10.1186/s13059-017-1382-0) - **PMID:** 29409532 | **PMC:** PMC5802054 - **Citations:** ~4,000 - **Key findings:** Introduced Scanpy, the dominant Python framework for single-cell analysis. Built on anndata for efficient data representation and providing preprocessing, clustering, trajectory inference, and visualization functions. This skill installs Scanpy and its ecosystem (anndata, scvi-tools, bbknn) via the Python install script for users processing ENCODE single-cell RNA-seq or ATAC-seq data. --- ## Key Tool Publications The following publications establish the tools installed by this skill. See the individual pipeline skill literature.md files for detailed descriptions: --- ### Alignment Tools - **BWA-MEM** (Li & Durbin 2009): DOI 10.1093/bioinformatics/btp324 — Used in ChIP-seq, DNase-seq, Hi-C pipelines - **Bowtie2** (Langmead & Salzberg 2012): DOI 10.1038/nmeth.1923 — Used in ATAC-seq, CUT&RUN pipelines - **STAR** (Dobin et al. 2013): DOI 10.1093/bioinformatics/bts635 — Used in RNA-seq pipeline - **Bismark** (Krueger & Andrews 2011): DOI 10.1093/bioinformatics/btr167 — Used in WGBS pipeline ### Peak Callers - **MACS2** (Zhang et al. 2008): DOI 10.1186/gb-2008-9-9-r137 — ChIP-seq, ATAC-seq - **SEACR** (Meers et al. 2019): DOI 10.1186/s13072-019-0287-4 — CUT&RUN/CUT&Tag - **Hotspot2** (John et al. 2011): DOI 10.1038/ng.759 — DNase-seq ### Quantification - **RSEM** (Li & Dewey 2011): DOI 10.1186/1471-2105-12-323 — RNA-seq gene/transcript quantification - **Kallisto** (Bray et al. 2016): DOI 10.1038/nbt.3519 — Fast pseudoalignment ### QC & Utilities - **SAMtools** (Li et al. 2009): DOI 10.1093/bioinformatics/btp352 — Universal BAM operations - **BEDTools** (Quinlan & Hall 2010): DOI 10.1093/bioinformatics/btq033 — Genomic arithmetic - **deepTools** (Ramírez et al. 2016): DOI 10.1093/nar/gkw257 — Signal tracks, heatmaps - **MultiQC** (Ewels et al. 2016): DOI 10.1093/bioinformatics/btw354 — QC report aggregation - **FastQC** (Andrews 2010): URL https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ - **Picard** (Broad Institute): URL https://broadinstitute.github.io/picard/ ### Hi-C Specific - **pairtools** (Open2C 2024): DOI 10.1371/journal.pcbi.1012164 — Pair-level processing - **cooler** (Abdennur & Mirny 2020): DOI 10.1093/bioinformatics/btz540 — Contact matrix storage - **Juicer tools** (Durand et al. 2016): DOI 10.1016/j.cels.2016.07.002 — .hic generation + HiCCUPS ### Methylation Specific - **MethylDackel** (Ryan): URL https://github.com/dpryan79/MethylDackel — Methylation extraction
-
-
scripts
-
constraints.txt 23.3 KB
# This file was autogenerated by uv via the following command: # uv pip compile --universal --python-version 3.10 requirements.in -o constraints.txt absl-py==2.5.0 # via # ml-collections # optax # orbax-checkpoint # tensorboard aiofiles==25.1.0 ; python_full_version < '3.11' # via orbax-checkpoint aiohappyeyeballs==2.7.1 # via aiohttp aiohttp==3.14.3 # via fsspec aiosignal==1.4.0 # via aiohttp alabaster==1.0.0 ; python_full_version < '3.12' # via sphinx anndata==0.11.4 ; python_full_version < '3.11' # via # -r requirements.in # mudata # scanpy # scvi-tools anndata==0.12.19 ; python_full_version == '3.11.*' # via # -r requirements.in # mudata # scanpy # scvi-tools anndata==0.13.4 ; python_full_version >= '3.12' # via # -r requirements.in # mudata # scanpy # scvi-tools annotated-types==0.8.0 # via pydantic annoy==1.17.3 # via # bbknn # scanorama # scrublet anyio==4.15.1 ; python_full_version >= '3.11' # via httpx argcomplete==3.7.2 # via gffutils argh==0.31.3 # via gffutils array-api-compat==1.15.0 # via # anndata # fast-array-utils asciitree==0.3.3 # via cooler async-timeout==5.0.1 ; python_full_version < '3.11' # via aiohttp attrs==26.1.0 # via aiohttp babel==2.18.0 ; python_full_version < '3.12' # via sphinx bbknn==1.6.0 # via -r requirements.in bioframe==0.8.0 # via # -r requirements.in # cooltools blosc2==4.3.3 ; python_full_version < '3.11' # via tables blosc2==4.13.1 ; python_full_version >= '3.11' # via tables certifi==2026.7.22 # via # httpcore # httpx # requests # scanpy charset-normalizer==3.5.1 # via requests click==8.5.0 # via # cooler # cooltools # loompy cloudpickle==3.1.2 # via joblib colorama==0.4.6 ; sys_platform == 'win32' # via # pytest # sphinx # tqdm contourpy==1.3.2 ; python_full_version < '3.11' # via matplotlib contourpy==1.3.3 ; python_full_version == '3.11.*' # via matplotlib contourpy==1.4.0 ; python_full_version >= '3.12' # via matplotlib cooler==0.10.4 # via # -r requirements.in # cooltools # hicmatrix cooltools==0.7.1 # via -r requirements.in cuda-bindings==13.4.2 ; python_full_version < '3.15' and sys_platform == 'linux' # via torch cuda-pathfinder==1.8.2 ; python_full_version < '3.15' and sys_platform == 'linux' # via cuda-bindings cuda-toolkit==13.0.3.0 ; sys_platform == 'linux' # via torch cycler==0.12.1 # via matplotlib cython==3.3.0 # via # bbknn # cooltools # scrublet cytoolz==1.1.0 # via cooler deeptools==3.5.6 ; python_full_version < '3.12' # via -r requirements.in deeptools==4.0.0 ; python_full_version >= '3.12' # via -r requirements.in deeptoolsintervals==0.1.9 # via deeptools dill==0.4.1 # via multiprocess docrep==0.3.2 # via scvi-tools docutils==0.21.2 ; python_full_version < '3.11' # via sphinx docutils==0.22.4 ; python_full_version == '3.11.*' # via sphinx donfig==0.8.1.post1 ; python_full_version >= '3.11' # via zarr etils==1.13.0 ; python_full_version < '3.11' # via orbax-checkpoint exceptiongroup==1.3.1 ; python_full_version < '3.11' # via # anndata # pytest fast-array-utils==1.5.1 ; python_full_version >= '3.12' # via scanpy fbpca==1.0 # via # geosketch # scanorama filelock==4.0.1 # via torch flax==0.10.7 ; python_full_version < '3.11' # via scvi-tools fonttools==4.65.0 # via matplotlib formulaic==1.2.2 # via statsmodels frozenlist==1.8.0 # via # aiohttp # aiosignal fsspec==2026.9.0 # via # etils # lightning # pytorch-lightning # torch future==1.0.0 # via pygenometracks geosketch==1.3 # via scanorama gffutils==0.14 # via pygenometracks google-crc32c==1.8.0 ; python_full_version >= '3.11' # via zarr grpcio==1.84.0 # via tensorboard h11==0.16.0 ; python_full_version >= '3.11' # via httpcore h2==4.4.1 ; python_full_version >= '3.11' # via httpx h5py==3.16.0 # via # -r requirements.in # anndata # cooler # loompy # mudata # scanpy harmony-pytorch==0.1.8 # via -r requirements.in hic-straw==1.3.1 # via -r requirements.in hicmatrix==17.2 # via pygenometracks hpack==4.2.0 ; python_full_version >= '3.11' # via h2 httpcore==1.0.9 ; python_full_version >= '3.11' # via httpx httpx==0.28.1 ; python_full_version >= '3.11' # via blosc2 humanize==4.16.0 ; python_full_version < '3.11' # via orbax-checkpoint hyperframe==6.1.0 ; python_full_version >= '3.11' # via h2 idna==3.20 # via # anyio # httpx # requests # yarl igraph==1.0.0 # via # leidenalg # louvain imageio==2.37.4 # via scikit-image imagesize==2.0.1 ; python_full_version < '3.12' # via sphinx importlib-resources==7.1.0 ; python_full_version < '3.11' # via etils iniconfig==2.3.0 # via pytest interface-meta==2.0.1 # via formulaic intervaltree==3.2.1 # via # hicmatrix # pygenometracks # scanorama jax==0.6.2 ; python_full_version < '3.11' # via # flax # numpyro # optax # orbax-checkpoint # scvi-tools jaxlib==0.6.2 ; python_full_version < '3.11' # via # jax # numpyro # optax # scvi-tools jinja2==3.1.6 # via # sphinx # torch joblib==1.6.0 # via # cooltools # pynndescent # scanpy # scikit-learn # scvi-tools kiwisolver==1.5.1 # via matplotlib lazy-loader==0.5 # via scikit-image legacy-api-wrap==1.5 # via # anndata # scanpy leidenalg==0.12.0 # via -r requirements.in lightning==2.6.6 # via scvi-tools lightning-utilities==0.15.3 # via # lightning # pytorch-lightning # torchmetrics llvmlite==0.49.0 # via # numba # pynndescent loompy==3.0.8 # via -r requirements.in louvain==0.7.1 # via -r requirements.in markdown==3.10.3 # via tensorboard markdown-it-py==4.2.0 # via rich markupsafe==3.0.3 # via # jinja2 # werkzeug matplotlib==3.10.9 ; python_full_version < '3.11' # via # -r requirements.in # bioframe # cooltools # deeptools # pygenometracks # scanorama # scanpy # scrublet # seaborn matplotlib==3.11.2 ; python_full_version >= '3.11' # via # -r requirements.in # bioframe # cooltools # deeptools # pygenometracks # scanorama # scanpy # scrublet # seaborn maturin==1.15.0 ; python_full_version >= '3.12' # via deeptools mdurl==0.1.2 # via markdown-it-py ml-collections==1.1.0 # via scvi-tools ml-dtypes==0.6.0 ; python_full_version < '3.11' # via # jax # jaxlib # tensorstore mpmath==1.3.0 # via sympy msgpack==1.2.2 # via # blosc2 # flax # orbax-checkpoint msgspec==0.21.1 ; python_full_version >= '3.12' # via zarr mudata==0.3.10 ; python_full_version < '3.12' # via scvi-tools mudata==0.4.1 ; python_full_version >= '3.12' # via scvi-tools multidict==6.9.0 # via # aiohttp # yarl multipledispatch==1.0.0 ; python_full_version < '3.11' # via numpyro multiprocess==0.70.19 # via # cooler # cooltools narwhals==2.26.0 # via # formulaic # plotly # scikit-learn natsort==8.4.0 # via # anndata # scanpy ndindex==1.10.1 # via blosc2 nest-asyncio==1.6.0 ; python_full_version < '3.11' and sys_platform == 'win32' # via orbax-checkpoint networkx==3.4.2 ; python_full_version < '3.11' # via # scanpy # scikit-image # torch networkx==3.6.1 ; python_full_version >= '3.11' # via # scanpy # scikit-image # torch numba==0.67.0 # via # cooltools # fast-array-utils # loompy # pynndescent # scanpy # scrublet # scvi-tools # sparse # umap-learn numcodecs==0.16.5 ; python_full_version == '3.11.*' # via zarr numcodecs==0.17.0 ; python_full_version >= '3.12' # via zarr numexpr==2.14.1 ; python_full_version < '3.11' # via # blosc2 # tables numexpr==2.14.2 ; python_full_version >= '3.11' # via # blosc2 # tables numpy==2.2.6 ; python_full_version < '3.11' # via # -r requirements.in # anndata # bbknn # bioframe # blosc2 # contourpy # cooler # cooltools # deeptools # formulaic # geosketch # h5py # harmony-pytorch # hicmatrix # imageio # jax # jaxlib # loompy # matplotlib # ml-dtypes # mudata # numba # numexpr # numpy-groupies # numpyro # optax # orbax-checkpoint # pandas # patsy # pybedtools # pygenometracks # pyro-ppl # scanorama # scanpy # scikit-image # scikit-learn # scipy # scrublet # scvi-tools # seaborn # sparse # statsmodels # tables # tensorboard # tensorstore # tifffile # torchmetrics # treescope # umap-learn # xarray numpy==2.4.6 ; python_full_version == '3.11.*' # via # -r requirements.in # anndata # bbknn # bioframe # blosc2 # contourpy # cooler # cooltools # deeptools # formulaic # geosketch # h5py # harmony-pytorch # hicmatrix # imageio # loompy # matplotlib # mudata # numba # numcodecs # numexpr # numpy-groupies # pandas # patsy # pybedtools # pygenometracks # pyro-ppl # scanorama # scanpy # scikit-image # scikit-learn # scikit-misc # scipy # scrublet # scvi-tools # seaborn # sparse # statsmodels # tables # tensorboard # tifffile # torchmetrics # umap-learn # xarray # zarr numpy==2.5.3 ; python_full_version >= '3.12' # via # -r requirements.in # anndata # bbknn # bioframe # blosc2 # contourpy # cooler # cooltools # deeptools # fast-array-utils # formulaic # geosketch # h5py # harmony-pytorch # hicmatrix # imageio # loompy # matplotlib # mudata # numba # numcodecs # numexpr # numpy-groupies # pandas # patsy # pybedtools # pygenometracks # pyro-ppl # scanorama # scanpy # scikit-image # scikit-learn # scikit-misc # scipy # scrublet # scvi-tools # seaborn # sparse # statsmodels # tables # tensorboard # tifffile # torchmetrics # umap-learn # xarray # zarr numpy-groupies==0.11.3 # via loompy numpydoc==1.11.0 ; python_full_version < '3.12' # via deeptools numpyro==0.19.0 ; python_full_version < '3.11' # via scvi-tools nvidia-cublas==13.1.1.3 ; sys_platform == 'linux' # via # cuda-toolkit # nvidia-cudnn-cu13 # nvidia-cusolver nvidia-cuda-cupti==13.0.85 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via cuda-toolkit nvidia-cuda-nvrtc==13.0.88 ; sys_platform == 'linux' # via # cuda-toolkit # nvidia-cublas nvidia-cuda-runtime==13.0.96 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via cuda-toolkit nvidia-cudnn-cu13==9.24.0.43 ; sys_platform == 'linux' # via torch nvidia-cufft==12.0.0.61 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via cuda-toolkit nvidia-cufile==1.15.1.6 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via cuda-toolkit nvidia-curand==10.4.0.35 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via cuda-toolkit nvidia-cusolver==12.0.4.66 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via cuda-toolkit nvidia-cusparse==12.6.3.3 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via # cuda-toolkit # nvidia-cusolver nvidia-cusparselt-cu13==0.8.1 ; sys_platform == 'linux' # via torch nvidia-nccl-cu13==2.30.7 ; sys_platform == 'linux' # via torch nvidia-nvjitlink==13.4.92 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via # cuda-toolkit # nvidia-cufft # nvidia-cusolver # nvidia-cusparse nvidia-nvshmem-cu13==3.4.5 ; sys_platform == 'linux' # via torch nvidia-nvtx==13.0.85 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') # via cuda-toolkit opt-einsum==3.4.0 # via # jax # pyro-ppl optax==0.2.8 ; python_full_version < '3.11' # via # flax # scvi-tools orbax-checkpoint==0.11.39 ; python_full_version < '3.11' # via flax packaging==26.3 # via # anndata # lazy-loader # lightning # lightning-utilities # matplotlib # patsy # plotly # pyfaidx # pytest # pytorch-lightning # scanpy # scikit-image # sphinx # statsmodels # tables # tensorboard # torchmetrics # xarray # zarr pandas==2.3.3 ; python_full_version < '3.12' # via # -r requirements.in # anndata # bbknn # bioframe # cooler # cooltools # formulaic # harmony-pytorch # hicmatrix # mudata # pybedtools # scanpy # scrublet # scvi-tools # seaborn # statsmodels # xarray pandas==3.0.6 ; python_full_version >= '3.12' # via # -r requirements.in # anndata # bbknn # bioframe # cooler # cooltools # formulaic # harmony-pytorch # hicmatrix # mudata # pybedtools # scanpy # scrublet # scvi-tools # seaborn # statsmodels # xarray patsy==1.0.3 # via # scanpy # statsmodels pillow==12.3.0 # via # imageio # matplotlib # scikit-image # tensorboard plotly==7.1.0 ; python_full_version < '3.12' # via deeptools pluggy==1.6.0 # via pytest propcache==0.5.4 # via # aiohttp # yarl protobuf==7.36.2 # via # orbax-checkpoint # tensorboard psutil==7.2.2 # via # harmony-pytorch # orbax-checkpoint py-cpuinfo==9.0.0 # via tables py2bit==1.0.1 # via deeptools pybedtools==0.12.1 # via -r requirements.in pybigwig==0.3.26 # via # -r requirements.in # deeptools # pygenometracks pybind11==3.1.0 # via hic-straw pydantic==2.13.5 # via # blosc2 # pydantic-settings pydantic-core==2.46.5 # via pydantic pydantic-settings==2.15.0 ; python_full_version >= '3.12' # via scverse-misc pyfaidx==0.9.0.4 # via # cooler # gffutils pygenometracks==3.1.2 # via -r requirements.in pygments==2.21.0 # via # pytest # rich # sphinx pynndescent==0.6.0 # via # bbknn # scanpy # umap-learn pyparsing==3.3.2 # via matplotlib pyro-api==0.1.2 # via pyro-ppl pyro-ppl==1.9.1 # via scvi-tools pysam==0.24.1 # via # -r requirements.in # deeptools # pybedtools # pygenometracks pytest==9.1.1 # via pygenometracks python-dateutil==2.9.0.post0 # via # matplotlib # pandas python-dotenv==1.2.3 ; python_full_version >= '3.12' # via # pydantic-settings # scverse-misc pytorch-lightning==2.6.6 # via lightning pytz==2026.3.post1 ; python_full_version < '3.12' # via pandas pyyaml==6.0.3 # via # bioframe # cooler # donfig # flax # lightning # ml-collections # orbax-checkpoint # pytorch-lightning requests==2.34.2 # via # bioframe # blosc2 # sphinx rich==15.0.0 # via # blosc2 # flax # scvi-tools roman-numerals==4.1.0 ; python_full_version == '3.11.*' # via sphinx scanorama==1.7.4 # via -r requirements.in scanpy==1.11.5 ; python_full_version < '3.12' # via # -r requirements.in # scvi-tools scanpy==1.12.4 ; python_full_version >= '3.12' # via # -r requirements.in # scvi-tools scikit-image==0.25.2 ; python_full_version < '3.11' # via # cooltools # scrublet scikit-image==0.26.0 ; python_full_version >= '3.11' # via # cooltools # scrublet scikit-learn==1.7.2 ; python_full_version < '3.11' # via # -r requirements.in # bbknn # cooltools # geosketch # harmony-pytorch # pynndescent # scanorama # scanpy # scrublet # scvi-tools # umap-learn scikit-learn==1.9.1 ; python_full_version >= '3.11' # via # -r requirements.in # bbknn # cooltools # geosketch # harmony-pytorch # pynndescent # scanorama # scanpy # scrublet # scvi-tools # umap-learn scikit-misc==0.5.2 ; python_full_version >= '3.11' # via scanpy scipy==1.15.3 ; python_full_version < '3.11' # via # -r requirements.in # anndata # bbknn # cooler # cooltools # deeptools # formulaic # hicmatrix # jax # jaxlib # loompy # mudata # pynndescent # scanorama # scanpy # scikit-image # scikit-learn # scrublet # scvi-tools # statsmodels # umap-learn scipy==1.17.1 ; python_full_version == '3.11.*' # via # -r requirements.in # anndata # bbknn # cooler # cooltools # deeptools # formulaic # hicmatrix # loompy # mudata # pynndescent # scanorama # scanpy # scikit-image # scikit-learn # scrublet # scvi-tools # statsmodels # umap-learn scipy==1.18.1 ; python_full_version >= '3.12' # via # -r requirements.in # anndata # bbknn # cooler # cooltools # deeptools # fast-array-utils # formulaic # hicmatrix # loompy # mudata # pynndescent # scanorama # scanpy # scikit-image # scikit-learn # scrublet # scvi-tools # statsmodels # umap-learn scrublet==0.2.3 # via -r requirements.in scverse-misc==0.0.3 ; python_full_version < '3.12' # via # anndata # mudata scverse-misc==0.1.6 ; python_full_version >= '3.12' # via # anndata # mudata # scanpy scvi-tools==1.3.3 ; python_full_version < '3.11' # via -r requirements.in scvi-tools==1.4.2 ; python_full_version == '3.11.*' # via -r requirements.in scvi-tools==1.5.1 ; python_full_version >= '3.12' # via -r requirements.in seaborn==0.13.2 # via # -r requirements.in # scanpy session-info2==0.4.1 ; python_full_version < '3.12' # via # mudata # scanpy # scverse-misc session-info2==0.4.2 ; python_full_version >= '3.12' # via # mudata # scanpy # scverse-misc setuptools==84.0.0 # via # loompy # tensorboard # torch simplejson==4.1.2 # via # cooler # gffutils # orbax-checkpoint six==1.17.0 # via # docrep # python-dateutil snowballstemmer==3.1.1 ; python_full_version < '3.12' # via sphinx sortedcontainers==2.4.0 # via intervaltree sparse==0.17.0 ; python_full_version < '3.11' # via scvi-tools sparse==0.19.2 ; python_full_version >= '3.11' # via scvi-tools sphinx==8.1.3 ; python_full_version < '3.11' # via numpydoc sphinx==9.0.4 ; python_full_version == '3.11.*' # via numpydoc sphinxcontrib-applehelp==2.0.0 ; python_full_version < '3.12' # via sphinx sphinxcontrib-devhelp==2.0.0 ; python_full_version < '3.12' # via sphinx sphinxcontrib-htmlhelp==2.1.0 ; python_full_version < '3.12' # via sphinx sphinxcontrib-jsmath==1.0.1 ; python_full_version < '3.12' # via sphinx sphinxcontrib-qthelp==2.0.0 ; python_full_version < '3.12' # via sphinx sphinxcontrib-serializinghtml==2.0.0 ; python_full_version < '3.12' # via sphinx statsmodels==0.15.0 # via # -r requirements.in # scanpy sympy==1.14.0 # via torch tables==3.10.1 ; python_full_version < '3.11' # via hicmatrix tables==3.11.1 ; python_full_version >= '3.11' # via hicmatrix tensorboard==2.21.0 # via scvi-tools tensorboard-data-server==0.7.2 # via tensorboard tensorstore==0.1.78 ; python_full_version < '3.11' # via # flax # orbax-checkpoint texttable==1.7.0 # via igraph threadpoolctl==3.7.0 # via # blosc2 # harmony-pytorch # scikit-learn tifffile==2025.5.10 ; python_full_version < '3.11' # via scikit-image tifffile==2026.3.3 ; python_full_version == '3.11.*' # via scikit-image tifffile==2026.9.15 ; python_full_version >= '3.12' # via scikit-image tomli==2.4.1 ; python_full_version < '3.11' # via # numpydoc # pytest # sphinx toolz==1.1.0 # via cytoolz torch==2.14.0 # via # harmony-pytorch # lightning # pyro-ppl # pytorch-lightning # scvi-tools # torchmetrics torchmetrics==1.9.0 # via # lightning # pytorch-lightning # scvi-tools tqdm==4.70.1 # via # lightning # numpyro # pyro-ppl # pytorch-lightning # scanpy # scvi-tools # umap-learn treescope==0.1.10 ; python_full_version < '3.11' # via flax triton==3.8.0 ; python_full_version < '3.15' and sys_platform == 'linux' # via torch typing-extensions==4.16.0 # via # aiohttp # aiosignal # anndata # anyio # etils # exceptiongroup # flax # formulaic # grpcio # lightning # lightning-utilities # multidict # numcodecs # orbax-checkpoint # pydantic # pydantic-core # pytorch-lightning # scanpy # scverse-misc # tables # torch # typing-inspection # zarr typing-inspection==0.4.4 # via # pydantic # pydantic-settings tzdata==2026.4 ; python_full_version < '3.12' or sys_platform == 'emscripten' or sys_platform == 'win32' # via pandas umap-learn==0.5.12 # via # -r requirements.in # bbknn # scanpy # scrublet urllib3==2.8.0 # via requests uvloop==0.22.1 ; python_full_version < '3.11' and sys_platform != 'win32' # via orbax-checkpoint werkzeug==3.1.8 # via tensorboard wrapt==2.4.1 # via formulaic xarray==2025.6.1 ; python_full_version < '3.11' # via scvi-tools xarray==2026.7.0 ; python_full_version >= '3.11' # via scvi-tools yarl==1.25.1 # via aiohttp zarr==3.1.6 ; python_full_version == '3.11.*' # via anndata zarr==3.4.0 ; python_full_version >= '3.12' # via anndata zipp==4.1.0 ; python_full_version < '3.11' # via etils -
install-nextflow.sh 7 KB
#!/usr/bin/env bash # Install the pinned Nextflow release and check for a container runtime. # Docker and Singularity are only checked: when one is missing, the script prints how to get it. # Usage: bash install-nextflow.sh [--docker | --singularity | --both] # # Options: # --docker Nextflow, then check for Docker (default, for local/cloud) # --singularity Nextflow, then check for Singularity/Apptainer (for HPC clusters) # --both Nextflow, then check for both set -euo pipefail # Pinned Nextflow release. The ENCODE Toolkit pipelines are validated against this version # with `nextflow lint` and `nextflow run -preview`. To move to another release, change the # version and replace the checksum with the sha256 published for the # `nextflow-<version>-dist` asset on https://github.com/nextflow-io/nextflow/releases NEXTFLOW_VERSION="26.04.6" NEXTFLOW_SHA256="182a63c74074e2dc7956ffa3c8cd59de952ed2c44394e21faf5e1736b945444c" NEXTFLOW_URL="https://github.com/nextflow-io/nextflow/releases/download/v${NEXTFLOW_VERSION}/nextflow-${NEXTFLOW_VERSION}-dist" sha256_of() { if command -v sha256sum &> /dev/null; then sha256sum "$1" | awk '{print $1}' else shasum -a 256 "$1" | awk '{print $1}' fi } echo "============================================" echo "ENCODE Nextflow Pipeline Infrastructure Setup" echo "============================================" echo "" MODE="${1:---docker}" # --- Install Nextflow --- install_nextflow() { echo "--- Installing Nextflow ---" # Only an existing install of exactly the pinned release is accepted. Otherwise the pinned, # checksum-verified release is installed; a launcher it would overwrite is kept as a backup. local existing_version="" if command -v nextflow &> /dev/null; then # A launcher that cannot start (no Java, broken install) counts as "no usable version" existing_version="$(nextflow -version 2>&1 | awk '$1 == "version" {print $2; exit}' || true)" fi if [ "$existing_version" = "$NEXTFLOW_VERSION" ]; then echo "Nextflow ${NEXTFLOW_VERSION} already installed: $(command -v nextflow)" else if [ -n "$existing_version" ]; then echo "Found Nextflow ${existing_version} at $(command -v nextflow); the pipelines are validated against ${NEXTFLOW_VERSION}." fi # Check Java if ! command -v java &> /dev/null; then echo "ERROR: Java 17+ is required for Nextflow." echo "Install Java first:" echo " macOS: brew install openjdk@17" echo " Ubuntu: sudo apt-get install -y openjdk-17-jdk" echo " conda: conda install -c conda-forge 'openjdk>=17'" exit 1 fi JAVA_VER=$(java -version 2>&1 | head -1 | awk -F '"' '{print $2}' | awk -F '.' '{print $1}') if [ "$JAVA_VER" -lt 17 ] 2>/dev/null; then echo "WARNING: Java $JAVA_VER detected. Nextflow ${NEXTFLOW_VERSION} requires Java 17+." fi # Download the pinned, self-contained release and verify it before it is ever executed local tmp_file tmp_file="$(mktemp)" echo "Downloading Nextflow ${NEXTFLOW_VERSION}..." curl -fsSL "$NEXTFLOW_URL" -o "$tmp_file" local actual_sha actual_sha="$(sha256_of "$tmp_file")" if [ "$actual_sha" != "$NEXTFLOW_SHA256" ]; then echo "ERROR: checksum mismatch for Nextflow ${NEXTFLOW_VERSION}; refusing to install." echo " expected: $NEXTFLOW_SHA256" echo " actual: $actual_sha" rm -f "$tmp_file" exit 1 fi echo "Checksum verified." # Install into a directory on PATH when possible, otherwise into ~/.local/bin local install_dir if [ -w /usr/local/bin ]; then install_dir="/usr/local/bin" else install_dir="$HOME/.local/bin" mkdir -p "$install_dir" fi local nextflow_bin="$install_dir/nextflow" if [ -e "$nextflow_bin" ]; then mv "$nextflow_bin" "$nextflow_bin.previous" echo "Kept the launcher that was there as $nextflow_bin.previous" fi mv "$tmp_file" "$nextflow_bin" chmod 755 "$nextflow_bin" echo "Nextflow installed to $nextflow_bin" # Put the pinned release ahead of any other Nextflow on PATH if [ "$(command -v nextflow || true)" != "$nextflow_bin" ]; then echo "Put it first on your PATH: export PATH=\"$install_dir:\$PATH\"" fi # Call the installed file directly: it may not be on PATH yet in this shell "$nextflow_bin" -version fi echo "" } # --- Install Docker --- install_docker() { echo "--- Checking Docker ---" if command -v docker &> /dev/null; then echo "Docker already installed: $(docker --version)" else OS="$(uname -s)" case "$OS" in Darwin) echo "macOS detected. Install Docker Desktop:" echo " brew install --cask docker" echo " OR download from https://www.docker.com/products/docker-desktop/" ;; Linux) echo "Linux detected. Install Docker Engine:" echo " curl -fsSL https://get.docker.com | sh" echo " sudo usermod -aG docker \$USER" echo " newgrp docker" ;; *) echo "Unsupported OS: $OS" echo "See https://docs.docker.com/get-docker/" ;; esac fi echo "" } # --- Install Singularity --- install_singularity() { echo "--- Checking Singularity ---" if command -v singularity &> /dev/null; then echo "Singularity already installed: $(singularity --version)" elif command -v apptainer &> /dev/null; then echo "Apptainer (Singularity successor) already installed: $(apptainer --version)" else echo "Singularity/Apptainer not found." echo "For HPC clusters, check: module avail singularity" echo "" echo "Install options:" echo " conda: conda install -c conda-forge singularity" echo " Linux: See https://apptainer.org/docs/admin/main/installation.html" echo "" echo "NOTE: Singularity requires Linux. On macOS, use Docker or a Linux VM." fi echo "" } # --- Execute --- install_nextflow case "$MODE" in --docker) install_docker ;; --singularity) install_singularity ;; --both) install_docker install_singularity ;; *) echo "Unknown mode: $MODE" echo "Usage: bash install-nextflow.sh [--docker | --singularity | --both]" exit 1 ;; esac echo "============================================" echo "Pipeline infrastructure setup complete." echo "" echo "Test with:" echo " nextflow run hello" echo "" echo "Run ENCODE pipelines with:" echo " nextflow run main.nf -profile local # Docker" echo " nextflow run main.nf -profile slurm # Singularity + SLURM" echo "============================================" -
install-python-packages.sh 3.2 KB
#!/usr/bin/env bash # Install Python packages for ENCODE data analysis # Usage: bash install-python-packages.sh [--all | --singlecell | --hic | --deeptools | --genomics] # # Categories: # --all Install all packages (default if no argument) # --singlecell scanpy, scvi-tools, harmony-pytorch, scrublet, scanorama, bbknn # --hic cooler, cooltools, hic-straw, pyGenomeTracks # --deeptools deeptools, pyBigWig, pysam, pybedtools # --genomics Core genomics (numpy, pandas, scipy, matplotlib, seaborn) # # Every install is constrained by constraints.txt, a lock file with exact versions for the # full dependency tree (Python 3.10+), so the same command gives the same environment. # The direct dependencies live in requirements.in. To refresh the lock: # uv pip compile --universal --python-version 3.10 requirements.in -o constraints.txt set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CONSTRAINTS="$SCRIPT_DIR/constraints.txt" if [ ! -f "$CONSTRAINTS" ]; then echo "ERROR: $CONSTRAINTS not found. It must sit next to this script." exit 1 fi pip_install() { pip3 install --constraint "$CONSTRAINTS" "$@" } echo "============================================" echo "ENCODE Bioinformatics Python Package Installer" echo "============================================" echo "" echo "Python: $(python3 --version 2>&1)" echo "pip: $(pip3 --version 2>&1 | head -1)" echo "" CATEGORY="${1:---all}" install_genomics() { echo "--- Installing Core Genomics packages ---" pip_install \ numpy \ pandas \ scipy \ matplotlib \ seaborn \ scikit-learn \ statsmodels \ h5py \ loompy } install_singlecell() { echo "--- Installing Single-Cell packages ---" pip_install \ scanpy \ anndata \ scvi-tools \ scrublet \ scanorama \ bbknn \ harmony-pytorch \ leidenalg \ louvain \ umap-learn echo "" echo "NOTE: CellBender requires separate install (GPU recommended):" echo " pip install cellbender" } install_hic() { echo "--- Installing Hi-C Analysis packages ---" pip_install \ cooler \ cooltools \ hic-straw \ pyGenomeTracks \ bioframe } install_deeptools() { echo "--- Installing Genomics / Signal Processing packages ---" pip_install \ deeptools \ pyBigWig \ pysam \ pybedtools } case "$CATEGORY" in --all) install_genomics install_singlecell install_hic install_deeptools ;; --singlecell) install_genomics install_singlecell ;; --hic) install_genomics install_hic ;; --deeptools) install_genomics install_deeptools ;; --genomics) install_genomics ;; *) echo "Unknown category: $CATEGORY" echo "Usage: bash install-python-packages.sh [--all | --singlecell | --hic | --deeptools | --genomics]" exit 1 ;; esac echo "" echo "============================================" echo "Python package installation complete." echo "============================================" -
install-r-packages.R 5.2 KB · in bundle
-
requirements.in 512 B · in bundle
-
-
SKILL.md 35.8 KB
--- name: bioinformatics-installer description: "Install bioinformatics tools for ENCODE data analysis. Covers CLI tools (BWA, STAR, samtools, MACS2), R/Bioconductor packages (DESeq2, Seurat, ChIPseeker), Python packages (Scanpy, deeptools), and Nextflow pipeline infrastructure. Generates conda environments, R install scripts, and Python requirements. Use when the user needs to set up a bioinformatics workstation, install tools for a specific assay, create reproducible environments, or troubleshoot dependency issues. Trigger on: install tools, set up environment, conda create, bioinformatics setup, install R packages, install Bioconductor, install pipeline tools." --- # Bioinformatics Installer for ENCODE Data Analysis Install all bioinformatics tools needed for ENCODE data analysis, organized by assay type. This skill provides ready-to-use conda environment definitions, R/Bioconductor install scripts, Python package lists, and Nextflow pipeline infrastructure setup. Every primary tool is version-pinned for reproducibility; a few utility packages (`bedops`, `ucsc-bedgraphtobigwig`, `pigz`, `openjdk`, `r-base`) float so the solver can satisfy the pinned tools around them. ## When to Use - User wants to install bioinformatics tools needed for ENCODE data analysis - User asks about "install tools", "conda environment", "setup bioinformatics", or "install HOMER/MACS2/deeptools" - User needs pre-configured conda environments for specific assay pipelines (ChIP-seq, ATAC-seq, RNA-seq, etc.) - User wants to install R/Bioconductor packages (DESeq2, Seurat, ChIPseeker) or Python packages (Scanpy, pysam) - Example queries: "install tools for ChIP-seq analysis", "set up a conda environment for ATAC-seq", "install deeptools and bedtools" ## Overview ENCODE data analysis requires a broad ecosystem of tools spanning command-line aligners, peak callers, signal processors, statistical analysis frameworks in R, Python visualization and single-cell packages, and workflow engines. Setting up these tools correctly — with compatible versions, proper channel priorities, and no dependency conflicts — is a significant barrier for new users and a reproducibility concern for experienced analysts. This skill solves that by providing: - **7 assay-specific conda environments** with pinned tool versions matching ENCODE pipeline standards - **R/Bioconductor install script** covering 47 packages across 8 categories - **Python install script** for single-cell, Hi-C, and genomics packages, locked by `scripts/constraints.txt` - **Nextflow install script + container checks** for pipeline execution on local, HPC, and cloud platforms The environment files, `scripts/requirements.in` and `scripts/install-r-packages.R` are the authoritative package lists; the tables below summarise them. All environments use the same channel priority (conda-forge > bioconda). Every file is dry-run solved for Linux x86_64 in CI, so the pinned versions exist and install together. Several tools have no macOS arm64 build on bioconda; on Apple Silicon use the pipeline Docker images instead. For every tool that an environment and the matching `pipeline-*` Docker image both install, the two pin the same version, and CI fails if they drift. Some tools exist on only one side — for example `phantompeakqualtools`, `salmon`, `subread` and the Hi-C `bedtools` are conda-only, while juicer_tools, SEACR, Hotspot2 and `modwt` are image-only because they are not conda packages. Those are noted in the sections below. ## Quick Start Install a complete environment for any assay type with a single command: ```bash # ChIP-seq (histone or TF) conda env create -f skills/bioinformatics-installer/environments/chipseq-env.yml # ATAC-seq conda env create -f skills/bioinformatics-installer/environments/atacseq-env.yml # RNA-seq conda env create -f skills/bioinformatics-installer/environments/rnaseq-env.yml # Hi-C conda env create -f skills/bioinformatics-installer/environments/hic-env.yml # Whole-Genome Bisulfite Sequencing (WGBS) conda env create -f skills/bioinformatics-installer/environments/wgbs-env.yml # DNase-seq conda env create -f skills/bioinformatics-installer/environments/dnaseseq-env.yml # CUT&RUN / CUT&Tag conda env create -f skills/bioinformatics-installer/environments/cutandrun-env.yml ``` Using mamba for faster solves (recommended): ```bash mamba env create -f skills/bioinformatics-installer/environments/chipseq-env.yml ``` Install R and Python packages: ```bash # All R/Bioconductor packages Rscript skills/bioinformatics-installer/scripts/install-r-packages.R --all # All Python packages bash skills/bioinformatics-installer/scripts/install-python-packages.sh --all # Install the pinned Nextflow release and check for a Docker runtime bash skills/bioinformatics-installer/scripts/install-nextflow.sh --docker ``` ## Per-Assay Environments ### ChIP-seq Environment (`encode-chipseq`) For histone modification and transcription factor ChIP-seq processing following ENCODE uniform pipeline standards (Landt et al. 2012, ENCODE Consortium 2020). | Tool | Version | Purpose | |------|---------|---------| | BWA-MEM | 0.7.18 | Read alignment to reference genome (Li & Durbin 2009) | | samtools | 1.19 | BAM manipulation, sorting, indexing, flagstat (Li et al. 2009) | | MACS2 | 2.2.9.1 | Peak calling for narrow (TF) and broad (histone) marks (Zhang et al. 2008) | | Picard | 3.1.1 | Duplicate marking and library complexity metrics (Broad Institute) | | phantompeakqualtools | 1.2.2 | Strand cross-correlation (NSC/RSC) quality metrics (Kharchenko et al. 2008) | | IDR | 2.0.4.2 | Irreproducible Discovery Rate for replicate consistency (Li et al. 2011) | | deeptools | 3.5.5 | Signal normalization (bamCoverage), fingerprint, correlation (Ramirez et al. 2016) | | bedtools | 2.31.0 | Interval operations, blacklist filtering (Quinlan & Hall 2010) | | FastQC | 0.12.1 | Raw read quality assessment (Andrews 2010) | | Trim Galore | 0.6.10 | Adapter and quality trimming via Cutadapt (Krueger 2012) | | MultiQC | 1.21 | Aggregate QC report across all pipeline stages (Ewels et al. 2016) | | bedGraphToBigWig | — | Convert bedGraph signal to bigWig for genome browser viewing (Kent et al. 2010) | **Memory**: BWA index for GRCh38 requires ~5.5 GB RAM. Peak calling with MACS2 typically requires 4-8 GB. phantompeakqualtools loads full BAM into memory. **Environment file**: `environments/chipseq-env.yml` --- ### ATAC-seq Environment (`encode-atacseq`) For chromatin accessibility profiling via ATAC-seq following ENCODE standards (Buenrostro et al. 2013, Corces et al. 2017). | Tool | Version | Purpose | |------|---------|---------| | Bowtie2 | 2.5.4 | Alignment (preferred over BWA for ATAC-seq short fragments) (Langmead & Salzberg 2012) | | MACS2 | 2.2.9.1 | Peak calling (`pipeline-atacseq` calls it with `-f BAMPE` on Tn5-shifted reads) (Zhang et al. 2008) | | IDR | 2.0.4.2 | Irreproducible Discovery Rate for replicate consistency (Li et al. 2011) | | samtools | 1.19 | BAM manipulation, mitochondrial read filtering | | Picard | 3.1.1 | Duplicate marking, insert size metrics | | deeptools | 3.5.5 | alignmentSieve (Tn5 offset), bamCoverage (signal tracks), plotFingerprint | | bedtools | 2.31.0 | Blacklist filtering, interval operations | | FastQC | 0.12.1 | Raw read quality and adapter content assessment | | Trim Galore | 0.6.10 | Adapter trimming (Nextera adapters for ATAC-seq) | | MultiQC | 1.21 | Aggregate QC reporting | **Key ATAC-seq parameters**: Tn5 transposase introduces a +4/-5 bp offset that must be corrected. Fragment size distribution should show nucleosomal ladder (sub-nucleosomal, mono-, di-, tri-). TSS enrichment score should be >= 5 (GRCh38), >= 6 (hg19), or >= 10 (mm10) for high-quality data (ENCODE data standards). **Environment file**: `environments/atacseq-env.yml` --- ### RNA-seq Environment (`encode-rnaseq`) For gene expression quantification following ENCODE RNA-seq standards (Conesa et al. 2016, ENCODE Consortium 2020). | Tool | Version | Purpose | |------|---------|---------| | STAR | 2.7.11b | Splice-aware alignment with 2-pass mapping (Dobin et al. 2013) | | RSEM | 1.3.3 | Gene/transcript quantification with expectation-maximization (Li & Dewey 2011) | | Kallisto | 0.50.1 | Pseudoalignment-based transcript quantification (Bray et al. 2016) | | Salmon | 1.10.3 | Quasi-mapping transcript quantification with GC bias correction (Patro et al. 2017) | | featureCounts (subread) | 2.0.6 | Gene-level read counting for count-based DE methods (Liao et al. 2014) | | samtools | 1.19 | BAM handling, flagstat, idxstats | | FastQC | 0.12.1 | Read quality assessment | | Trim Galore | 0.6.10 | Adapter and quality trimming | | MultiQC | 1.21 | Aggregate QC report | | RSeQC | 5.0.3 | RNA-seq-specific QC: gene body coverage, read distribution, inner distance (Wang et al. 2012) | **Memory**: STAR genome generation requires 32+ GB RAM for human genome. STAR alignment requires ~30 GB RAM. Kallisto and Salmon are memory-efficient alternatives (~4 GB). **Environment file**: `environments/rnaseq-env.yml` --- ### Hi-C Environment (`encode-hic`) For chromatin conformation capture processing following ENCODE Hi-C standards (Yardimci et al. 2019, Rao et al. 2014). | Tool | Version | Purpose | |------|---------|---------| | BWA-MEM | 0.7.18 | Chimeric read alignment (each mate aligned independently) | | pairtools | 1.1.2 | Parse, sort, deduplicate, filter contact pairs (Open2C) | | cooler | 0.9.3 | Multi-resolution contact matrix storage and balancing (Abdennur & Mirny 2020) | | openjdk | >=11 | Java runtime for Juicer Tools (the jar itself is installed separately, see below) | | samtools | 1.19 | BAM handling for chimeric alignment parsing | | bedtools | 2.31.0 | Restriction fragment and TAD boundary operations | | FastQC | 0.12.1 | Read quality assessment | | Trim Galore | 0.6.10 | Adapter trimming | | MultiQC | 1.21 | Aggregate QC reporting | **Key Hi-C parameters**: Cis/trans ratio > 60%, long-range cis contacts (> 20 kb) > 40%. Resolution depends on sequencing depth: ~1 billion valid pairs for 5 kb resolution on human. **Juicer Tools is not in this environment.** The YAML installs only the Java runtime it needs. Download `juicer_tools.2.20.00.jar` from the `aidenlab/Juicebox` GitHub releases and invoke it with `java -jar`. The Hi-C pipeline image (`pipeline-hic/scripts/Dockerfile`) already contains it. The environment also installs `cooltools`, `hic-straw` and `pyGenomeTracks` from PyPI (unpinned). **Environment file**: `environments/hic-env.yml` --- ### WGBS Environment (`encode-wgbs`) For whole-genome bisulfite sequencing (DNA methylation) following ENCODE standards (Foox et al. 2021, Schultz et al. 2015). | Tool | Version | Purpose | |------|---------|---------| | Bismark | 0.24.2 | Bisulfite-aware alignment and methylation extraction (Krueger & Andrews 2011) | | MethylDackel | 0.6.1 | Fast methylation extraction from bisulfite BAMs (Ryan 2023) | | samtools | 1.19 | BAM manipulation, merge, index | | bedtools | 2.31.0 | Interval operations for DMR analysis | | FastQC | 0.12.1 | Read quality assessment (note: bisulfite libraries have biased base composition) | | Trim Galore | 0.6.10 | Adapter trimming with --rrbs or default mode | | MultiQC | 1.21 | Aggregate QC reporting with Bismark module | | htslib | 1.19 | Provides `tabix` and `bgzip` for indexed, block-gzipped methylation BED files | | Bowtie2 | 2.5.4 | Backend aligner required by Bismark | **Key WGBS parameters**: Bisulfite conversion rate ≥ 98% (check unmethylated spike-in lambda DNA). CpG coverage >= 10x for reliable DMR calling. M-bias plots should be checked for end-repair artifacts. **Environment file**: `environments/wgbs-env.yml` --- ### DNase-seq Environment (`encode-dnaseseq`) For DNase I hypersensitive site mapping following ENCODE standards (Thurman et al. 2012, ENCODE Consortium 2020). | Tool | Version | Purpose | |------|---------|---------| | BWA-MEM | 0.7.18 | Read alignment to reference genome | | Picard | 3.1.1 | Duplicate marking and library complexity metrics | | BEDOPS | unpinned | `sort-bed` and `unstarch` for the Hotspot2 `.starch` archives (Neph et al. 2012) | | HINT (RGT) | 1.0.2 | TF footprinting from DNase-seq data (Li et al. 2019); installed from PyPI | | F-Seq2 | 2.0.3 | Feature density estimation for peak calling (Boyle et al. 2008, Zhao et al. 2020); installed from PyPI | | samtools | 1.19 | BAM handling and filtering | | bedtools | 2.31.0 | Interval operations, blacklist filtering | | FastQC | 0.12.1 | Read quality assessment | | Trim Galore | 0.6.10 | Adapter trimming | | MultiQC | 1.21 | Aggregate QC reporting | | bedGraphToBigWig | unpinned | Convert bedGraph signal to bigWig | **Hotspot2 2.1.2 and its `modwt` dependency are not in this environment** — neither is packaged for conda. Build both from source (`pipeline-dnaseseq/scripts/Dockerfile` shows the exact steps) or run the pipeline through that image, which is what `pipeline-dnaseseq` does. **Environment file**: `environments/dnaseseq-env.yml` --- ### CUT&RUN / CUT&Tag Environment (`encode-cutandrun`) For antibody-targeted chromatin profiling via CUT&RUN (Skene & Henikoff 2017) and CUT&Tag (Kaya-Okur et al. 2019). | Tool | Version | Purpose | |------|---------|---------| | Bowtie2 | 2.5.4 | Alignment (recommended for shorter CUT&RUN/Tag fragments) | | r-base | >=4.3 | R runtime that the SEACR shell script calls (SEACR itself is installed separately, see below) | | MACS2 | 2.2.9.1 | Alternative peak calling with adjusted parameters | | samtools | 1.19 | BAM handling, spike-in alignment filtering | | Picard | 3.1.1 | Duplicate marking (low duplication expected for CUT&RUN/Tag) | | deeptools | 3.5.5 | Signal tracks, heatmaps, spike-in normalization | | bedtools | 2.31.0 | Interval operations, suspect list filtering | | FastQC | 0.12.1 | Read quality assessment | | Trim Galore | 0.6.10 | Adapter trimming | | MultiQC | 1.21 | Aggregate QC reporting | **SEACR 1.3 is not in this environment.** It is a shell script plus an R script; download the `v1.3` tarball from `FredHutch/SEACR` and put both `SEACR_1.3.sh` and `SEACR_1.3.R` on the PATH, alongside the `r-base` this environment installs. The CUT&RUN pipeline image (`pipeline-cutandrun/scripts/Dockerfile`) already contains it. **Key CUT&RUN/Tag notes**: These assays have inherently lower background than ChIP-seq. Do NOT apply ChIP-seq quality thresholds — use CUT&RUN-specific metrics (Nordin et al. 2023). Apply the CUT&RUN suspect list instead of the standard ENCODE blacklist. Spike-in normalization (E. coli DNA for CUT&RUN, carry-over for CUT&Tag) is strongly recommended for quantitative comparisons. **Environment file**: `environments/cutandrun-env.yml` ## R/Bioconductor Packages Install all R packages needed for ENCODE downstream analysis. The install script at `scripts/install-r-packages.R` handles BiocManager setup, version locking, and category-based installation. ### Core Genomic Infrastructure These packages provide the foundation for all genomic data manipulation in R: | Package | Purpose | |---------|---------| | GenomicRanges | Interval arithmetic on genomic coordinates (Lawrence et al. 2013) | | GenomicFeatures | Gene model and transcript annotation handling | | rtracklayer | Import/export BED, bigWig, GFF, narrowPeak, broadPeak | | IRanges | Integer range operations (underlying GenomicRanges) | | GenomeInfoDb | Chromosome naming conventions (UCSC vs Ensembl vs NCBI) | | BiocGenerics | Common S4 generics across Bioconductor | | S4Vectors | S4 class infrastructure for Bioconductor objects | | AnnotationDbi | Unified interface to annotation databases | | biomaRt | Ensembl BioMart query interface for gene annotation (Durinck et al. 2009) | ### Differential Analysis | Package | Purpose | |---------|---------| | DESeq2 | Differential gene expression with shrinkage estimators (Love et al. 2014) | | edgeR | Differential expression using empirical Bayes (Robinson et al. 2010) | | limma | Linear models for microarray and RNA-seq data (Ritchie et al. 2015) | | DiffBind | Differential binding analysis for ChIP-seq/ATAC-seq peaks (Stark & Brown 2011) | | ChIPQC | ChIP-seq quality control in R (Carroll et al. 2014) | | chromVAR | Chromatin accessibility variation across single cells (Schep et al. 2017) | ### Annotation and Pathway Analysis | Package | Purpose | |---------|---------| | ChIPseeker | Peak annotation and visualization (Yu et al. 2015) | | annotatr | Annotate genomic regions with CpG islands, genes, enhancers (Cavalcante & Sartor 2017) | | clusterProfiler | Gene ontology and KEGG pathway enrichment (Yu et al. 2012) | | org.Hs.eg.db | Human gene annotation database | | org.Mm.eg.db | Mouse gene annotation database | | TxDb.Hsapiens.UCSC.hg38.knownGene | Human transcript models (GRCh38) | | TxDb.Mmusculus.UCSC.mm10.knownGene | Mouse transcript models (mm10) | ### Single-Cell Analysis | Package | Purpose | |---------|---------| | Seurat | Comprehensive single-cell RNA-seq analysis (Hao et al. 2021) | | Signac | Single-cell chromatin accessibility (ATAC-seq) analysis (Stuart et al. 2021) | | SingleCellExperiment | Core Bioconductor container for single-cell data | | scater | Single-cell QC, normalization, visualization (McCarthy et al. 2017) | | scran | Single-cell normalization and feature selection (Lun et al. 2016) | ### Bulk-to-Single-Cell Deconvolution | Package | Purpose | |---------|---------| | BisqueRNA | Reference-based and marker-based deconvolution (Jew et al. 2020) | | DWLS | Dampened Weighted Least Squares deconvolution (Tsoucas et al. 2019) | | BayesPrism | Bayesian deconvolution with scRNA-seq reference (Chu et al. 2022). **GitHub only** — the script prints the `devtools::install_github()` line, it does not install it | | InstaPrism | Fast approximation of BayesPrism for large datasets (Wang et al. 2024). **GitHub only**, same as BayesPrism | ### DNA Methylation Analysis | Package | Purpose | |---------|---------| | DMRcate | Differentially methylated region detection (Peters et al. 2021) | | bsseq | Bisulfite sequencing data handling and smoothing (Hansen et al. 2012) | | methylKit | Methylation analysis from bisulfite sequencing (Akalin et al. 2012) | ### Visualization | Package | Purpose | |---------|---------| | ComplexHeatmap | Publication-quality heatmaps with annotations (Gu et al. 2016) | | EnhancedVolcano | Volcano plots for differential expression (Blighe et al. 2018) | | Gviz | Genome browser-style track visualization (Hahne & Ivanek 2016) | | ggplot2 | Grammar of graphics for all custom plots (Wickham 2016) | ### Statistics and Batch Correction | Package | Purpose | |---------|---------| | sva (ComBat) | Surrogate variable analysis and batch correction (Leek et al. 2012) | | WGCNA | Weighted Gene Co-expression Network Analysis (Langfelder & Horvath 2008) | | ReactomePA | Reactome pathway analysis (Yu & He 2016) | **Install script**: `scripts/install-r-packages.R` ```bash # Install all categories Rscript scripts/install-r-packages.R --all # Install only specific categories Rscript scripts/install-r-packages.R --chipseq # DiffBind, ChIPQC, ChIPseeker Rscript scripts/install-r-packages.R --rnaseq # DESeq2, edgeR, limma Rscript scripts/install-r-packages.R --singlecell # Seurat, Signac, scater, scran Rscript scripts/install-r-packages.R --methylation # DMRcate, bsseq, methylKit Rscript scripts/install-r-packages.R --deconvolution # BisqueRNA, DWLS (+ GitHub lines for BayesPrism, InstaPrism) Rscript scripts/install-r-packages.R --visualization # ComplexHeatmap, EnhancedVolcano, Gviz, ggplot2 Rscript scripts/install-r-packages.R --stats # sva, WGCNA, ReactomePA ``` The tables above list the main packages per category. `scripts/install-r-packages.R` holds the complete, authoritative lists (47 packages across 8 categories), including supporting packages such as `TFBSTools`, `motifmatchr`, `tximport`, `tximeta`, `celda`, `pheatmap`, `RColorBrewer` and `viridis`. ## Python Packages Install Python packages for single-cell analysis, Hi-C processing, signal visualization, and genomic data manipulation. ### Core Single-Cell Stack | Package | Purpose | |---------|---------| | scanpy | Single-cell RNA-seq analysis framework (Wolf et al. 2018) | | anndata | Annotated data matrix for single-cell (Virshup et al. 2021) | | scvi-tools | Deep generative models for single-cell (Gayoso et al. 2022) | | numpy | Numerical computing | | pandas | Data manipulation and tabular operations | | scipy | Scientific computing (sparse matrices, statistics) | | matplotlib | Plotting foundation | | seaborn | Statistical visualization | ### Genomics and Signal Processing | Package | Purpose | |---------|---------| | deeptools | Signal tracks, heatmaps, correlation (also CLI; Ramirez et al. 2016) | | pyBigWig | Read/write bigWig signal files (Ryan 2023) | | pysam | Python interface to samtools/htslib (Li et al. 2009) | | pybedtools | Python interface to bedtools (Dale et al. 2011) | ### Hi-C Analysis | Package | Purpose | |---------|---------| | cooler | Multi-resolution contact matrices (Abdennur & Mirny 2020) | | cooltools | Analysis toolkit for cooler data: TADs, compartments, insulation | | hic-straw | Read .hic files from Juicer/Juicebox (Durand et al. 2016) | | pyGenomeTracks | Genome browser visualization including Hi-C tracks | ### Single-Cell QC and Integration | Package | Purpose | |---------|---------| | scrublet | Doublet detection for scRNA-seq (Wolock et al. 2019) | | harmony-pytorch | Batch integration via Harmony in PyTorch (Korsunsky et al. 2019) | | scanorama | Panoramic stitching of scRNA-seq datasets (Hie et al. 2019) | | bbknn | Batch-balanced KNN graph construction (Polanski et al. 2020) | CellBender (ambient RNA removal, Fleming et al. 2023) is **not** installed by the script — it is GPU-oriented and is left to a manual `pip install cellbender`, which the script prints as a note. **Install script**: `scripts/install-python-packages.sh` ```bash # Install all Python packages bash scripts/install-python-packages.sh --all # Install only specific categories bash scripts/install-python-packages.sh --genomics # numpy, pandas, scipy, matplotlib, seaborn bash scripts/install-python-packages.sh --singlecell # scanpy, scvi-tools, harmony-pytorch bash scripts/install-python-packages.sh --hic # cooler, cooltools, hic-straw, bioframe bash scripts/install-python-packages.sh --deeptools # deeptools, pyBigWig, pysam, pybedtools ``` Every category except `--genomics` also installs the core genomics packages first. The complete, authoritative list of direct dependencies is `scripts/requirements.in`; exact versions for the whole dependency tree are locked in `scripts/constraints.txt`, which every install is constrained by. ## Nextflow and Container Setup ENCODE pipeline execution requires Nextflow DSL2 and a container runtime (Docker or Singularity). ### Nextflow Installation ```bash # Install the pinned Nextflow release (requires Java 17+) and check for Docker. # Use --singularity for HPC, or --both. bash scripts/install-nextflow.sh --docker # Verify nextflow -version ``` What the script does: - Downloads the pinned, self-contained Nextflow release the pipelines are validated against (the version and its SHA-256 are at the top of `scripts/install-nextflow.sh`), verifies the checksum, and only then installs it to `/usr/local/bin` or `~/.local/bin`. - An existing Nextflow is accepted only if it is **exactly** that pinned release. Any other version is left untouched; the pinned release is installed next to it and the script tells you to put its directory first on `PATH`. - Docker and Singularity are **checked, not installed**: the script reports what it finds and prints the install commands for your platform. Run those yourself. ### Docker (recommended for local/cloud) ```bash # macOS brew install --cask docker # Linux (Ubuntu/Debian) sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io # Add current user to docker group (Linux) sudo usermod -aG docker $USER ``` ### Singularity (for HPC clusters) ```bash # Most HPC clusters have Singularity pre-installed # Check with: module load singularity && singularity version # If not available, install via conda: conda install -c conda-forge singularity ``` ### Nextflow Configuration Profiles The pipeline skills (pipeline-chipseq, pipeline-atacseq, etc.) include `nextflow.config` files with profiles for local, SLURM, GCP, and AWS execution. Select the appropriate profile: ```bash # Local with Docker nextflow run main.nf -profile local # HPC with Singularity nextflow run main.nf -profile slurm # Google Cloud nextflow run main.nf -profile gcp # AWS Batch nextflow run main.nf -profile aws ``` **Install script**: `scripts/install-nextflow.sh` ## Motif Analysis Tools For transcription factor binding motif discovery and scanning. | Tool | Version | Type | Purpose | |------|---------|------|---------| | HOMER | 4.11 | CLI | De novo and known motif discovery, annotation (Heinz et al. 2010) | | MEME Suite | 5.5.5 | CLI | MEME, DREME, STREME de novo discovery; FIMO scanning; AME enrichment (Bailey et al. 2015) | | FIMO | 5.5.5 | CLI (part of MEME Suite) | Motif occurrence scanning across sequences | | TFBSTools | R | R/Bioconductor | JASPAR motif handling, PFM/PWM conversion, motif scanning in R (Tan & Lenhard 2016) | ### HOMER Installation ```bash # Download and configure HOMER mkdir -p ~/software/homer cd ~/software/homer wget http://homer.ucsd.edu/homer/configureHomer.pl perl configureHomer.pl -install homer perl configureHomer.pl -install hg38 # Human genome perl configureHomer.pl -install mm10 # Mouse genome # Add to PATH export PATH=$PATH:~/software/homer/bin ``` ### MEME Suite Installation ```bash # Via conda (recommended) conda install -c bioconda meme # Or from source wget https://meme-suite.org/meme/meme-software/5.5.5/meme-5.5.5.tar.gz tar xzf meme-5.5.5.tar.gz cd meme-5.5.5 ./configure --prefix=$HOME/software/meme --enable-build-libxml2 --enable-build-libxslt make && make install ``` ## Walkthrough: Setting Up a Complete ENCODE Analysis Environment **Goal**: Install all bioinformatics tools needed to process ENCODE data, from raw FASTQ files through peak calling, annotation, and visualization, using Conda environments. **Context**: ENCODE analysis requires dozens of specialized tools. This skill automates installation with pre-configured Conda environments for each pipeline stage. ### Step 1: Determine required tools by experiment type ``` encode_get_experiment(accession="ENCSR000AKA") ``` Expected output: ```json { "accession": "ENCSR000AKA", "assay_title": "Histone ChIP-seq", "target": "H3K27ac" } ``` **Interpretation**: Histone ChIP-seq requires: BWA-MEM (alignment), SAMtools (BAM processing), MACS2 (peak calling), IDR (reproducibility), bedtools (interval operations), deepTools (signal visualization). ### Step 2: Install the ChIP-seq Conda environment ```bash # Using the pre-configured environment YAML conda env create -f skills/bioinformatics-installer/environments/chipseq-env.yml conda activate encode-chipseq ``` `environments/chipseq-env.yml` is the authoritative list of what that environment installs — read it rather than retyping the versions. It covers alignment (BWA), BAM processing (samtools, Picard), peak calling (MACS2), replicate consistency (IDR), cross-correlation metrics (phantompeakqualtools), signal processing (deeptools), interval operations (bedtools), and QC/trimming (FastQC, Trim Galore, MultiQC). See the ChIP-seq table above for the pinned versions. ### Step 3: Install additional tools for downstream analysis For peak annotation and motif analysis: ```bash conda create -n encode-annotation -c conda-forge -c bioconda \ homer bedtools bioconductor-chipseeker bioconductor-clusterprofiler bioconductor-rgreat conda activate encode-annotation # Includes: HOMER, bedtools, R/Bioconductor (ChIPseeker, clusterProfiler, rGREAT for GREAT queries) ``` ### Step 4: Verify installation ```bash # Quick verification of key tools bwa 2>&1 | head -3 samtools --version | head -1 macs2 --version bedtools --version ``` ### Step 5: Download reference data for ENCODE analysis ``` encode_download_files(file_accessions=["ENCFF001ABC"], download_dir="/data/references") ``` Reference files needed: - GRCh38 genome FASTA - ENCODE blacklist v2 (Amemiya et al. 2019) - Gene annotation GTF (GENCODE v36) ### Integration with downstream skills - Installed tools are used by → **pipeline-chipseq** through **pipeline-cutandrun** for processing - Reference data feeds into → **download-encode** for FASTQ retrieval - Environment setup enables → **quality-assessment** tool execution - Installed annotation tools support → **peak-annotation** and **motif-analysis** ## Code Examples ### 1. Find experiments to identify required tools ``` encode_search_experiments( assay_title="ATAC-seq", organ="pancreas" ) ``` Expected output: ```json { "results": [ { "accession": "ENCSR799GHJ", "assay_title": "ATAC-seq", "biosample_summary": "pancreatic islet tissue male adult (44 years)", "organ": "pancreas", "status": "released" } ], "total": 8, "limit": 25, "offset": 0, "has_more": false, "next_offset": null } ``` **Install decision**: ATAC-seq requires the `atacseq-env.yml` conda environment (Bowtie2 + MACS2 + deeptools + samtools + bedtools). ### 2. Get file info to understand format requirements ``` encode_get_file_info(accession="ENCFF001ABC") ``` Expected output: ```json { "accession": "ENCFF001ABC", "file_format": "fastq", "file_type": "fastq", "output_type": "reads", "file_size_human": "4.4 GB", "experiment_assay": "ATAC-seq", "biological_replicates": [1], "status": "released" } ``` **Install decision**: raw ATAC-seq reads need Bowtie2 (not BWA), Picard for duplicate marking, and samtools for BAM processing — the `atacseq-env.yml` environment. Whether the FASTQ is one mate of a pair is on the file's page on encodeproject.org (`paired_end`, `paired_with`), not in this response. ## Pitfalls & Edge Cases - **Conda solver conflicts**: Large conda environments with many packages can take hours to solve. Use mamba instead of conda for faster dependency resolution, or install in smaller focused environments. - **R/Bioconductor version mismatch**: R packages from CRAN and Bioconductor must match the R version. Installing Bioconductor 3.18 packages with R 4.4 will fail silently or produce errors. Use BiocManager::install() to ensure version compatibility. - **Python 2 vs Python 3**: Some legacy bioinformatics tools (MACS 1.x, old HOMER) require Python 2. Never install Python 2 tools in the same environment as Python 3 tools — use separate conda environments. - **ARM Mac (M1/M2/M3) compatibility**: Many bioinformatics tools lack native ARM builds. Use `CONDA_SUBDIR=osx-64` or Rosetta 2 emulation for x86_64 packages. Some tools (samtools, BWA) have ARM-native builds. - **Nextflow requires Java 17+**: check `java -version` before running pipelines. Install Nextflow with `scripts/install-nextflow.sh`, which pins the release the pipelines are validated against and verifies its checksum; avoid piping a remote installer straight into a shell. - **Docker vs Singularity on HPC**: Most HPC clusters do not allow Docker (requires root). Use Singularity instead. The pipeline skills express this through the execution profile, not a runtime profile: `-profile local` enables Docker, `-profile slurm` enables Singularity. There is no `docker` or `singularity` profile. With `-profile slurm`, convert the image once and pass the file: `singularity build pipeline-chipseq.sif docker-daemon://encode-toolkit/pipeline-chipseq:1.0.0`, then `--container /path/to/pipeline-chipseq.sif`. ## Literature Foundation | # | Reference | Key Contribution | |---|-----------|-----------------| | 1 | Li & Durbin 2009, Bioinformatics, DOI:10.1093/bioinformatics/btp324 (~30,000 cit) | BWA aligner | | 2 | Langmead & Salzberg 2012, Nat Methods, DOI:10.1038/nmeth.1923 (~25,000 cit) | Bowtie2 aligner | | 3 | Li et al. 2009, Bioinformatics, DOI:10.1093/bioinformatics/btp352 (~20,000 cit) | SAMtools/BAM format | | 4 | Zhang et al. 2008, Genome Biol, DOI:10.1186/gb-2008-9-9-r137 (~7,000 cit) | MACS2 peak caller | | 5 | Dobin et al. 2013, Bioinformatics, DOI:10.1093/bioinformatics/bts635 (~15,000 cit) | STAR RNA-seq aligner | | 6 | Love et al. 2014, Genome Biol, DOI:10.1186/s13059-014-0550-8 (~30,000 cit) | DESeq2 | | 7 | Ramirez et al. 2016, Nucleic Acids Res, DOI:10.1093/nar/gkw257 (~3,000 cit) | deeptools | | 8 | Wolf et al. 2018, Genome Biol, DOI:10.1186/s13059-017-1382-0 (~5,000 cit) | Scanpy | | 9 | Hao et al. 2021, Cell, DOI:10.1016/j.cell.2021.04.048 (~8,000 cit) | Seurat v4 | | 10 | Quinlan & Hall 2010, Bioinformatics, DOI:10.1093/bioinformatics/btq033 (~10,000 cit) | bedtools | | 11 | Ewels et al. 2016, Bioinformatics, DOI:10.1093/bioinformatics/btw354 (~3,000 cit) | MultiQC | | 12 | Krueger & Andrews 2011, Bioinformatics, DOI:10.1093/bioinformatics/btr167 (~5,000 cit) | Bismark | | 13 | Heinz et al. 2010, Molecular Cell, DOI:10.1016/j.molcel.2010.05.004 (~7,000 cit) | HOMER motif analysis | | 14 | Bailey et al. 2015, Nucleic Acids Res, DOI:10.1093/nar/gkv416 (~3,000 cit) | MEME Suite | | 15 | Meers et al. 2019, Epigenetics Chromatin, DOI:10.1186/s13072-019-0287-4 (~800 cit) | SEACR for CUT&RUN | | 16 | Di Tommaso et al. 2017, Nat Biotechnol, DOI:10.1038/nbt.3820 (~2,500 cit) | Nextflow | | 17 | Landt et al. 2012, Genome Res, DOI:10.1101/gr.136184.111 (~4,000 cit) | ENCODE ChIP-seq standards | | 18 | ENCODE Consortium 2020, Nature, DOI:10.1038/s41586-020-2493-4 (~1,656 cit) | ENCODE Phase 3 | | 19 | Amemiya et al. 2019, Sci Rep, DOI:10.1038/s41598-019-45839-z (~1,372 cit) | ENCODE Blacklist v2 | ## Integration | This skill produces... | Feed into... | Purpose | |---|---|---| | Conda environments | **pipeline-chipseq** through **pipeline-cutandrun** | Provide tool dependencies for all pipeline stages | | Installed reference data | **download-encode** | Reference genomes and annotations for alignment | | Tool version inventory | **data-provenance** | Record exact tool versions for reproducibility | | QC tool installations | **quality-assessment** | Enable FastQC, MultiQC, and ENCODE QC metric tools | | Annotation tool setup | **peak-annotation** | HOMER, ChIPseeker for peak-to-gene assignment | | Motif scanning tools | **jaspar-motifs** | MEME Suite for motif scanning against JASPAR | | Visualization tools | **visualization-workflow** | deepTools, IGV, R/ggplot2 for data visualization | | Liftover utilities | **liftover-coordinates** | UCSC liftOver binary for assembly conversion | ## Related Skills - **pipeline-guide**: Parent skill for all pipeline execution; provides overview of available pipelines and tool selection guidance - **pipeline-chipseq**: Uses the ChIP-seq conda environment tools for FASTQ-to-peaks processing - **pipeline-atacseq**: Uses the ATAC-seq conda environment tools for accessibility analysis - **pipeline-rnaseq**: Uses the RNA-seq conda environment for expression quantification - **pipeline-wgbs**: Uses the WGBS conda environment for methylation analysis - **pipeline-hic**: Uses the Hi-C conda environment for contact matrix generation - **pipeline-dnaseseq**: Uses the DNase-seq conda environment for hotspot detection - **pipeline-cutandrun**: Uses the CUT&RUN conda environment for CUT&RUN/CUT&Tag processing - **quality-assessment**: Quality metrics require properly installed tools to compute - **setup**: Initial ENCODE Toolkit server setup (MCP connection, not bioinformatics tools) - **motif-analysis**: Requires HOMER and MEME Suite from this installer - **visualization-workflow**: Uses deeptools, pyGenomeTracks, and R visualization packages from this installer - **single-cell-encode**: Uses Seurat, Signac, Scanpy from this installer - **publication-trust**: Assess scientific integrity of publications before relying on their methods or findings ## Presenting Results - Present installed tools as a checklist table: tool | version | status (installed/failed/skipped). Group by assay environment. Suggest: "Would you like to verify the installation by running a quick test on sample ENCODE data?" - If any installation fails, provide the exact error and a targeted fix. Common fixes: update conda, set channel priority, install system dependencies. ## For the request: "$ARGUMENTS"
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.