How chhylp123/hifiasm works
Hifiasm is a command-line, haplotype-resolved de novo genome assembler. Its principal workflow accepts sequencing reads and options, prepares/corrects reads and overlaps, builds and refines assembly graphs, then emits contigs; optional modes add trio binning, Hi-C phasing, ONT, or ultra-long-read integration. The source index supports the main entry point and several core calls, while some README-described capabilities are represented at their documented subsystem level. Edges without sampled call-site evidence are omitted; README-backed mode links are marked with README evidence.
Main entry points: Assembly.cpp Assembly orchestration · CommandLines.cpp Options and input parsing · Trio.cpp Trio binning · main.cpp Program entry
Components 19
Inputs and preparation
- Options and input parsing
CommandLines.cpp - Read preparation
Process_Read.cpp - Trio binning
Trio.cpp
Assembly construction
- Program entry
main.cpp - Assembly orchestration
Assembly.cpp - K-mer indexing
htab.cpp - Overlap discovery
ecovlp.cpp - Overlap and assembly graphs
Overlaps.h - Read correction
Correct.h - Ultra-long integration
tovlp.cpp
Phasing and refinement
- Hi-C phasing
horder.cpp - Haplotig purging
Purge_Dups.cpp - Graph refinement
rcut.cpp
Assembly results
- Contig and graph output
Output.cpp - GFA assemblies
Other components
- Sequencing user
- Sequencing reads
- Yak k-mer files
- Hi-C reads
Connections 19
- Sequencing user → Options and input parsing: sets options
- Sequencing reads → Options and input parsing: provides reads
- Options and input parsing → Program entry: configures
main.cpp - Program entry → Assembly orchestration: starts
main.cpp - Assembly orchestration → Read preparation: uses
Assembly.cpp - Assembly orchestration → Read correction: uses
Assembly.cpp - Assembly orchestration → K-mer indexing: uses
Assembly.cpp - Assembly orchestration → Overlap discovery: uses
Assembly.cpp - Assembly orchestration → Overlap and assembly graphs: uses
Assembly.cpp - Yak k-mer files → Trio binning: supplies k-mers
- Trio binning → Assembly orchestration: enables binning
- Hi-C reads → Hi-C phasing: supplies pairs
- Assembly orchestration → Hi-C phasing: supports Hi-C mode
- Sequencing reads → Ultra-long integration: supplies ultra-long reads
- Assembly orchestration → Ultra-long integration: supports ultra-long mode
- Assembly orchestration → Haplotig purging: supports purging
- Assembly orchestration → Graph refinement: uses
Assembly.cpp - Assembly orchestration → Contig and graph output: emits assemblies
- Contig and graph output → GFA assemblies: writes