Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

dichromat

DOI

dichromat is a general, containerized pipeline for conversion sequencing of RNA modifications (e.g., eTAM-seq, CAM-seq, GLORI, BS-seq). It handles everything from competitive mapping to site-calling and aggregated reporting.

πŸ“‹ Requirements

To run this pipeline, you need the following installed on your host system:

  • Apptainer (or Singularity)
  • Snakemake (>= 8.0 recommended, optional)

πŸš€ Quick Start

1. Get the Container

Tip

Option 1 β€” Build from GHCR:

apptainer build dichromat.sif docker://ghcr.io/y9c/dichromat:latest

Option 2 β€” Download the nightly SIF:

wget https://github.com/y9c/dichromat/releases/download/nightly-build/dichromat.sif

Option 3 β€” Zenodo mirror (China-friendly):

wget -O dichromat.sif "https://zenodo.org/api/records/18859539/files/dichromat.sif/content"

Of the two wget options:

  • Option 2 (GitHub nightly-build) reflects every push to main. Always the freshest development build.
  • Option 3 (Zenodo) is updated only when a release tag (v*) is pushed, and each tag creates a new Zenodo version (v1, v2, ...). It is the stable-release source; use Option 2 for the latest development build.

Then run with any SIF:

apptainer run -B /data dichromat.sif -c config.yaml -j 48

(Option 1, GHCR latest, reflects the most recent build pushed to the registry, typically the latest main push.)

2. Configure Your Run

Create a config.yaml with your references and samples. If using Method A below, include the container path to your SIF:

β–Ό Click to see the example configuration
# Container image path
container: "./dichromat.sif"
# Reference files
reference:
 contamination: # E.coli, etc. (optional)
 - ~/ref/contamination.fa
 genes: # rRNA, tRNA, spike-ins for masking (optional)
 - ~/ref/rRNA_tRNA.fa
 genome:
 fa: ~/ref/GRCh38.fa
 gtf: ~/ref/GRCh38.gtf
 hisat3n: ~/ref/GRCh38_hisat3n_index
# Samples: paired-end (R1+R2) or single-end (R1 only)
samples:
 sample1:
 data:
 - R1: ~/data/sample1_R1.fq.gz
 R2: ~/data/sample1_R2.fq.gz
# Options
is_etam: true # eTAM analysis mode
adapter: "AGATCGGA..." # Custom adapter OR use libtype: "TAKARAV3"
base_change: "A,G" # m6A/GLORI: A,G | BS-seq: C,T

See default.yaml for all available options.

3. Run the Pipeline

There are two primary ways to execute the pipeline, depending on your environment:

Method A: Host-Controlled (Recommended for HPC)

In this mode, Snakemake runs on your host and manages the container execution for each rule.

  • Pros: Full flexibility for cluster integration (Slurm, LSF, etc.) and better resource management.
  • Command:
    # Using the default config.yaml in the project directory:
    ./dichromat.sh --batch your_batch_name
    # Or with a custom config:
    ./dichromat.sh --batch your_batch_name --config /path/to/config.yaml

Method B: Container-Controlled (Zero Setup)

In this mode, you run the container directly, which internally executes Snakemake.

  • Pros: Portable and requires zero host-side configuration (except Apptainer).
  • Command:
    apptainer run -B /data dichromat.sif -c config.yaml -j 48
    (Note: Ensure you bind-mount your data folders using the -B flag as shown.)

πŸ“Š Key Features

  • Competitive Mapping: Simultaneously align to transcriptome and masking references (rRNA, spike-ins).
  • Fast Mutation Counting: Uses countmut for ultra-fast, strand-aware processing.

πŸ“ Output Structure

  • report_reads/: Mapping statistics and read-level QC dashboards.
  • report_sites/: Site-level analysis and motif dashboards. Output is sites.tsv.gz (or filtered.tsv for eTAM mode).
  • internal_files/: Intermediate alignments and statistical summaries.

For detailed build and publishing instructions, see DEVELOP.md.

Developed by Ye Chang (yech1990@gmail.com)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /