Map bisulfite-treated reads to your reference genome and call cytosine methylation in CpG, CHG and CHH context. One command, one pass, byte-stable output.
What is Bismark
Bisulfite sequencing turns the methylation state of every cytosine into a base change: unmethylated C reads as T, methylated C stays C. That conversion breaks ordinary aligners.
Bismark handles both halves at once. It maps bisulfite-treated reads to your reference, then reads methylation calls straight off the alignments, keeping CpG, CHG and CHH context separate. No second caller, no glue scripts.
It is a command-line tool, written in Perl, used across whole-genome (WGBS), reduced-representation (RRBS) and PBAT libraries. A Rust rewrite is underway for faster runs with byte-identical results.
Lollipop notation
What you get
Everything a bisulfite workflow needs, exposed as flags you can read.
From genome to methylation calls
Install, prep a genome, align, deduplicate, extract. Copy each block as you go.
Install
Via Bioconda, or grab a release from GitHub.
conda install -c bioconda bismarkPrepare the genome
Build the bisulfite-converted indices once per reference.
bismark_genome_preparation /ref/GRCh38/
Align reads
Paired-end here; pass a single -1 for single-end.
bismark --genome /ref/GRCh38/ -1 R1.fq.gz -2 R2.fq.gz
Deduplicate
Remove PCR duplicates (skip for RRBS libraries).
deduplicate_bismark --bam R1_bismark_bt2_pe.bam
Extract methylation
Write per-cytosine calls and a bedGraph, then build the reports.
bismark_methylation_extractor --gzip --bedGraph sample.bam