MCPcopy Index your code
hub / github.com/FelixKrueger/Bismark

github.com/FelixKrueger/Bismark @bismark-rust-v2.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release bismark-rust-v2.0.0 ↗ · + Follow
3,814 symbols 13,081 edges 243 files 966 documented · 25% updated 1d agobismark-rust-v2.0.0 · 2026-07-06★ 4527 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Bismark

install with bioconda

[!IMPORTANT] The Perl version of Bismark is in maintenance freeze. Bismark v0.25.x (this codebase) now receives critical correctness and security fixes only — no new features or performance changes. It is being succeeded by the Bismark Rust suite, which is byte-identical to v0.25.1 on the faithful default path, faster, lower-memory, and actively developed (currently in beta); the Perl code will be archived as tagged legacy at the Rust general release. New contributions, including performance work, should target the Rust suite — please read CONTRIBUTING.md before opening a pull request. Thank you!

See the documentation: https://felixkrueger.github.io/Bismark

Bismark is a program to map bisulfite treated sequencing reads to a genome of interest and perform methylation calls in a single step. The output can be easily imported into a genome viewer, such as SeqMonk, and enables a researcher to analyse the methylation levels of their samples straight away. Its main features are:

  • Bisulfite mapping and methylation calling in one single step
  • Supports single-end and paired-end read alignments
  • Supports ungapped, gapped or spliced alignments
  • Alignment seed length, number of mismatches etc. are adjustable
  • Output discriminates between cytosine methylation in CpG, CHG and CHH context

Rust rewrite in progress: Bismark's post-alignment tools are being ported from Perl to Rust — faster, with byte-identical output. See rust/ for the workspace and a per-tool status table, and Installing to get the Rust suite (prebuilt binaries, container, or cargo install).

Documentation

The Bismark documentation can be found with the code in the docs subfolder and can also be read online: https://felixkrueger.github.io/Bismark/

There is also an overview of the alignment modes that are currently supported by Bismark: Bismark alignment modes (pdf).

Installation

Bismark is written in Perl and is executed from the command line. To install Bismark simply download the latest release of the code from the Releases page and extract the files into a Bismark installation folder.

Bismark needs the following tools to be installed and ideally available in the PATH environment:

Links

  • Bismark Publication: http://www.ncbi.nlm.nih.gov/pubmed/21493656
  • Our review about primary data analysis in BS-Seq: http://www.ncbi.nlm.nih.gov/pubmed/22290186

Credits

Bismark was written by Felix Krueger, part of the Babraham Bioinformatics group.

Licences

Bismark itself is free software, bismark2report and bismark2summary produce HTML graphs powered by Plot.ly which are also free to use and look at!

Extension points exported contracts — how you extend this code

SamStream (Interface)
The peek/advance interface the Phase-4 merge drives. Implemented by [`AlignerStream`] (a real Bowtie 2 subprocess) and b [6 …
rust/bismark-aligner/src/align.rs
WriteBismark (Interface)
Internal trait abstracting "write one BismarkRecord" across the single-threaded [`AnyWriter`] and the v1.1 threaded [`bi [2 …
rust/bismark-dedup/src/pipeline.rs
CigarExt (Interface)
Extension methods on [`noodles_sam::alignment::record_buf::Cigar`]. Bring into scope with `use bismark_io::CigarExt;`. [1 …
rust/bismark-io/src/cigar.rs
PairedSamStream (Interface)
The paired peek/advance interface the Phase-7 merge drives. Implemented by [`PairedAlignerStream`] (a real Bowtie 2 `-1/ [5 …
rust/bismark-aligner/src/align.rs
InputDecoder (Interface)
#1025 Phase 1: resolve unaligned-BAM (uBAM) read inputs into temp FASTQ files. For each **single-end** read input that [2 …
rust/bismark-aligner/src/lib.rs

Core symbols most depended-on inside this repo

write_all
called by 168
rust/bismark-coverage2cytosine/src/report.rs
write
called by 165
rust/bismark-aligner/src/parallel.rs
len
called by 165
rust/bismark-io/src/genome.rs
as_bytes
called by 146
rust/bismark-coverage2cytosine/src/report.rs
write
called by 118
rust/bismark-io/src/genome.rs
inner
called by 103
rust/bismark-io/src/record.rs
len
called by 101
rust/bismark-aligner/src/five_base_duplex.rs
records
called by 93
rust/bismark-io/src/read.rs

Shape

Function 3,365
Method 238
Class 141
Enum 65
Interface 5

Languages

Rust100%
Python1%
TypeScript1%

Modules by API surface

rust/bismark-aligner/tests/cli.rs176 symbols
rust/bismark-aligner/src/lib.rs135 symbols
rust/bismark-aligner/src/combined.rs132 symbols
rust/bismark-aligner/src/convert.rs79 symbols
rust/bismark-aligner/src/align.rs77 symbols
rust/bismark-io/src/read.rs74 symbols
rust/bismark-dedup/tests/integration_dedup.rs70 symbols
rust/bismark-aligner/src/config.rs69 symbols
rust/bismark-aligner/src/output.rs63 symbols
rust/bismark-aligner/src/merge.rs63 symbols
rust/bismark-extractor/tests/se_phase_b.rs57 symbols
rust/bismark-coverage2cytosine/src/report.rs56 symbols

For agents

$ claude mcp add Bismark \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page