| name | bio-methylation-calling |
| description | Extract methylation calls from Bismark BAM files using bismark_methylation_extractor. Generates per-cytosine reports for CpG, CHG, and CHH contexts. Use when extracting methylation levels from aligned bisulfite sequencing data for downstream analysis. |
| tool_type | cli |
| primary_tool | bismark |
Version Compatibility
Reference examples tested with: pandas 2.2+
Before using code patterns, verify installed versions match. If versions differ:
- Python:
pip show <package> then help(module.function) to check signatures
- CLI:
<tool> --version then <tool> --help to confirm flags
If code throws ImportError, AttributeError, or TypeError, introspect the installed
package and adapt the example to match the actual API rather than retrying.
Methylation Calling
"Extract methylation calls from my Bismark BAM" → Generate per-cytosine methylation reports (CpG, CHG, CHH contexts) from aligned bisulfite sequencing data.
- CLI:
bismark_methylation_extractor --bedGraph --cytosine_report sample.bam
Basic Extraction
bismark_methylation_extractor --gzip --bedGraph \
sample_bismark_bt2.bam
Paired-End Extraction
bismark_methylation_extractor --paired-end --gzip --bedGraph \
sample_bismark_bt2_pe.bam
Common Options
bismark_methylation_extractor \
--paired-end \
--gzip \
--bedGraph \
--cytosine_report \
--genome_folder /path/to/genome/ \
--buffer_size 10G \
--parallel 4 \
-o output_dir/ \
sample.bam
CpG Context Only
bismark_methylation_extractor \
--paired-end \
--no_overlap \
--gzip \
--bedGraph \
--CX \
sample.bam
Genome-Wide Cytosine Report
bismark_methylation_extractor \
--paired-end \
--gzip \
--bedGraph \
--cytosine_report \
--genome_folder /path/to/genome/ \
sample.bam
Strand-Specific Output
bismark_methylation_extractor --merge_non_CpG --gzip sample.bam
Avoid Double-Counting Overlapping Reads
bismark_methylation_extractor \
--paired-end \
--no_overlap \
--gzip \
sample_pe.bam
Generate Coverage File
bismark_methylation_extractor --bedGraph --gzip sample.bam
bismark2bedGraph -o sample CpG_context_sample.txt.gz
Convert to BigWig for Visualization
bedGraphToBigWig sample.bedGraph.gz chrom.sizes sample.bw
M-Bias Plot
bismark_methylation_extractor --paired-end \
--mbias_only \
sample.bam
Ignore End Bias
bismark_methylation_extractor \
--paired-end \
--ignore 2 \
--ignore_r2 2 \
--ignore_3prime 2 \
--ignore_3prime_r2 2 \
sample.bam
Output Files
Parse Output in Python
import pandas as pd
cov = pd.read_csv('sample.bismark.cov.gz', sep='\t', header=None,
names=['chr', 'start', 'end', 'meth_pct', 'count_meth', 'count_unmeth'])
cov['coverage'] = cov['count_meth'] + cov['count_unmeth']
cov_filtered = cov[cov['coverage'] >= 10]
Key Parameters
| Parameter | Description |
|---|
| --paired-end | Paired-end mode |
| --gzip | Compress output |
| --bedGraph | Generate bedGraph |
| --cytosine_report | Full genome cytosine report |
| --genome_folder | Path to genome (for cytosine_report) |
| --CX | Report CHG/CHH contexts |
| --no_overlap | Avoid counting overlapping reads twice |
| --parallel | Parallel extraction threads |
| --mbias_only | Only M-bias analysis |
| --ignore N | Ignore first N bp of read 1 |
| --ignore_r2 N | Ignore first N bp of read 2 |
Output Formats
| Format | Description | Use Case |
|---|
| CpG_context | Per-read methylation calls | Detailed analysis |
| .bismark.cov | Per-CpG coverage summary | methylKit input |
| .bedGraph | Methylation track | Genome browser |
| .CpG_report | All genome CpGs | Comprehensive analysis |
Related Skills
- bismark-alignment - Generate input BAM files
- methylkit-analysis - Import coverage files to R
- dmr-detection - Find differentially methylated regions