FiberHMM¶
FiberHMM calls chromatin footprints on single DNA molecules. From the
modification marks of a Fiber-seq (m6A) or DAF-seq (deamination) read it finds
the protected stretches (nucleosomes, and transcription-factor or Pol II
footprints) and the accessible stretches between them (methylase-sensitive
patches, MSPs). Its calls are written back into the BAM as standard tags that
fibertools, FIRE and
FiberBrowser, the companion browser (install with pip install fiberbrowser),
read.
Across many molecules, FiberHMM also finds recurrent footprint classes at a locus and measures how often each molecule carries each one.
FiberHMM 3.0
3.0 is the third generation of the FiberHMM family and is released together
with FiberBrowser 3.0. The emission tables have been updated, so re-run
calls made with earlier versions. fiberhmm-check <your outputs> lists
which files need re-running. See Upgrading from 2.x.
What's new in 3.0¶
- DddA nucleosomes follow the helical phase. DddA (SsDddA, scDAF-seq)
also deaminates inside nucleosomes, in step with the ~10-bp helical phase
of the wrapped DNA.
fiberhmm-call --enzyme dddanow places nucleosomes with a phase-aware rotational model, so internal deaminations no longer break nucleosomes into pieces. - scDAF duplexes.
fiberhmm-pairfinds the two strands (CT and GA reads) of one DddA molecule and calls footprints on both strands jointly. The DddA TF emission table is recalibrated in chromatin on physical scDAF duplexes. - CpG-island methylation from deamination.
fiberhmm-tag-m5ccalls each molecule's CpG islands as methylated or unmethylated, andfiberhmm-call-m5ccalls methylated and unmethylated domains across molecules. For DddA, CpGs are masked by default outside confidently unmethylated islands, in the first-pass HMM and in footprint recall (--use-m5c,--cpg-mask-policy). - Cleaner DAF input. Adjacent CC/GG targets are thinned to one (keep-one, on for DddA), strand-swap chimeras are filtered, and PCR duplicates are marked by deamination pattern.
fiberhmm-pipelinegoes from reads and a reference (FASTA or plasmid map) to a called BAM ready for FiberBrowser in one command.fiberhmm-checkreads your existing outputs and lists which ones need re-running, with the command to use.- Updated emission tables. The Nanopore Hia5 table is rebuilt from matched controls and DddB has a new in-vivo table.
- Footprint classes.
fiberhmm-consensusfinds recurrent footprint classes across molecules and measures them per molecule, andfiberhmm-transfermeasures frozen classes in new data. - Python 3.10 to 3.14.
What it does¶
| Stage | Command | Page |
|---|---|---|
| Call nucleosomes, MSPs and TF footprints on every read | fiberhmm-call |
Calling footprints |
| Re-call TFs or nucleosomes on an already called BAM | fiberhmm-recall-tfs, fiberhmm-recall-nucs |
Re-calling |
| DAF-seq extras: duplicates, SNPs, R/Y encoding, CpG-island methylation | fiberhmm-dedup, -daf-snps, -daf-encode, -tag-m5c, -call-m5c |
DAF-seq |
| Pair the two strands of one scDAF molecule and call them jointly | fiberhmm-pair |
Duplex |
| Check a run against reference data sets | fiberhmm-qc (also automatic after fiberhmm-call) |
Quality control |
| Export calls as BED12 / bigBed tracks | fiberhmm-extract |
Extracting tracks |
| Find footprint classes across molecules and measure them per molecule | fiberhmm-consensus |
Footprint classes |
| Measure frozen classes in new data or at other loci | fiberhmm-transfer |
Transferring classes |
| Rescue footprints missed on one strand, using the other strand | fiberhmm-strand-rescue |
Strand rescue |
| Footprint population model from per-read TF calls | fiberhmm-footprint-model |
Footprint population model |
| Per-position HMM posteriors | fiberhmm-posteriors |
Posteriors |
| Build a model for a new chemistry or condition | fiberhmm-probs, fiberhmm-train, fiberhmm-utils |
Training a model |
Supported data¶
| Chemistry | Platform | fiberhmm-call preset |
|---|---|---|
| Hia5 Fiber-seq (m6A) | PacBio | --enzyme hia5 --seq pacbio |
| Hia5 Fiber-seq (m6A) | Oxford Nanopore | --enzyme hia5 --seq nanopore |
| DddB DAF-seq (deamination) | any (usually Nanopore) | --enzyme dddb |
| DddA DAF-seq (deamination) | any (usually PacBio) | --enzyme ddda |
Models for these four are bundled. Other chemistries (EcoGII, GpC/CpG methyltransferases) are development-only; see Chemistries and platforms.
Where to start¶
- A quick DAF-seq run (a Plasmidsaurus FASTQ and a plasmid map or genome): From a Plasmidsaurus run to footprints in minutes, one command from reads to a BAM ready for FiberBrowser.
- New to FiberHMM: Installation, then the Quick start, which runs every chemistry on a small synthetic data set.
- Not sure which
--enzyme/--seqto use: Choosing the chemistry. - Reading FiberHMM output in your own code: BAM tags and Python API.
- Every option of every command: Command-line reference.
- Something failed: Troubleshooting.