Chromosome-Level Genome Assembly: Hi-C, Omni-C
A chromosome-level assembly is a genome in which most of the sequence is organized into the real chromosomes of the species, in the correct order and orientation. It is the reference that makes comparative genomics, gene annotation, population genetics and structural variant analysis reliable. This guide explains what chromosomes and assemblies are, how long-read sequencing, Hi-C, Omni-C and other technologies work together, gives a tutorial with the main tools for each step (k-mer profiling, hifiasm, purge_dups, YaHS, Juicebox, quality control), and finishes with synteny analysis using MCScanX to name chromosomes and compare genomes.
1. What are chromosomes?
A chromosome is a long molecule of DNA packaged with proteins (histones) into chromatin. In eukaryotes, the genome is divided into a species-specific number of linear chromosomes inside the nucleus. Bacteria usually have one circular chromosome (and sometimes plasmids), and organelles (mitochondria, chloroplasts) carry their own small genomes.
Structural features that matter for assembly
| Feature | What it is | Why it matters for assembly |
|---|---|---|
| Centromere | Region where spindle fibres attach; often made of long satellite repeats | Very repetitive, so it is often a gap or a collapsed region unless ultra-long or T2T methods are used |
| Telomere | Repeat sequence at the chromosome ends (for example TTAGGG in vertebrates, TTAGG in many insects) | Telomere repeats at both ends are a sign that a scaffold is a complete chromosome |
| Euchromatin and heterochromatin | Gene-rich open regions and repeat-rich condensed regions | Repeat-rich heterochromatin is hard to assemble |
| Repeats and transposable elements | Often more than half of the genome | The main cause of assembly breaks |
| Ploidy | Number of chromosome sets (haploid, diploid, polyploid) | Determines how many haplotypes must be separated |
| Sex chromosomes | X, Y, Z, W | Different coverage and repeat content, often hard to assemble |
| Holocentric chromosomes | Centromere activity along the whole chromosome (some insects, nematodes, plants) | Hi-C patterns and centromere logic differ |
| Karyotype | Number and shape of chromosomes of a species | A target for your assembly: the final number of chromosomes should match the known karyotype |
Practical point: knowing the expected chromosome number (from cytogenetics, a related species or a genetic map) is the best sanity check for your final assembly.
2. What is genome assembly?
Sequencers read short fragments of DNA. Assembly is the computational process of joining these reads into longer sequences.
| Level | Description |
|---|---|
| Reads | Raw sequences from the instrument (150 bp to over 100 kb) |
| Contigs | Continuous sequences assembled from overlapping reads, without gaps |
| Scaffolds | Contigs ordered, oriented and separated by gaps (N characters) using extra linking information |
| Chromosome-level (pseudomolecules) | Scaffolds that correspond to whole chromosomes, typically most of the genome (90 percent or more) placed into chromosome-scale sequences |
| Telomere-to-telomere (T2T) | Gapless chromosomes from end to end, including centromeres |
Key quality terms
- N50: the length such that 50 percent of the assembly is in sequences of that length or longer. Contig N50 measures contiguity before scaffolding, scaffold N50 after.
- Completeness: how much of the expected gene and k-mer content is present (BUSCO, Merqury).
- Accuracy: base-level correctness, expressed as QV (Phred-like quality value; QV40 means about one error per 10,000 bases).
- Phasing: whether the two (or more) haplotypes are separated or collapsed.
- Correctness: absence of misjoins, inversions and translocation errors.
The Earth BioGenome Project proposed reference standards of roughly 1 Mb contig N50, 10 Mb scaffold N50, QV40 and more than 90 percent of the sequence in chromosomal units (written 6.7.Q40.C90). Check the current standard (Lawniczak et al., 2022) if you aim for a specific target.
3. Why do we need more than long reads?
Even with 20 kb HiFi reads, a genome assembly breaks at long repeats and at regions with very low heterozygosity. The result is tens to thousands of contigs, not chromosomes. To order and orient them you need long-range information that spans millions of bases:
- Hi-C and Omni-C (proximity ligation): DNA that is close in the nucleus is crosslinked and ligated, so sequences from the same chromosome contact each other far more often than sequences from different chromosomes.
- Optical mapping (Bionano): imaging of labelled very long molecules.
- Genetic linkage maps: recombination frequencies between markers.
- Ultra-long Nanopore reads: reads of hundreds of kilobases to megabases that span repeats.
- Synteny to a related reference: ordering contigs by conservation of gene order.
4. Sequencing technologies compared
| Technology | Read length and accuracy | Role in chromosome-level assembly | Limits |
|---|---|---|---|
| Illumina short reads | 150 bp, very high accuracy | Genome survey (k-mers), polishing, Hi-C reads, error checks | Cannot resolve repeats; not used alone for chromosome assembly |
| PacBio HiFi (circular consensus) | 10 to 25 kb, accuracy above 99.9 percent | Backbone of most modern assemblies; resolves most repeats and separates haplotypes | Needs high-molecular-weight DNA and cost; very long repeats remain |
| Oxford Nanopore (standard) | 10 to 100 kb, accuracy lower than HiFi but improving rapidly | Long contiguity, low cost, portable; used alone or with HiFi | Systematic errors in homopolymers; may need polishing |
| Oxford Nanopore ultra-long | Above 100 kb, up to megabases | Spans large repeats and centromeres; scaffolding of contigs | Needs very intact DNA; lower yield |
| Hi-C (restriction enzyme based) | Paired short reads of ligated fragments | Scaffolding to chromosomes, haplotype phasing, misassembly detection | Depends on restriction sites; uneven coverage |
| Omni-C (MNase based, Dovetail) | Paired short reads | Same use as Hi-C, with sequence-independent digestion and more uniform coverage | Protocol and kit dependent; needs good quality tissue or cells |
| Optical mapping (Bionano) | Labelled molecules of hundreds of kb | Validates and links scaffolds | Specialized instrument; less used now |
| Genetic linkage map | Markers (RAD-seq, SNP arrays) from a cross | Independent chromosome assignment | Needs family or cross; low resolution |
| Strand-seq, trio binning | Single-strand or parental reads | Phasing and chromosome-scale assembly in special designs | Needs special libraries or parental samples |
Typical modern recipe: PacBio HiFi (about 30x or more per haplotype), plus Hi-C or Omni-C (a few tens of x), optionally Nanopore ultra-long reads (about 30x) for the most complex genomes.
5. What is Hi-C and how does it work?
- Crosslink cells with formaldehyde, which freezes DNA segments that are close together in the nucleus.
- Fragment the chromatin with a restriction enzyme (classic Hi-C) or MNase (Omni-C).
- Mark and ligate the ends so that fragments that were close in space are joined into chimeric molecules. Biotin is used to pull down the junctions.
- Reverse crosslinks, purify DNA and sequence with paired-end Illumina reads.
- Map each read of a pair separately to the assembly. The two ends of a pair can fall on different contigs: that is the linking information.
Principles used for scaffolding
- Contact frequency between two loci on the same chromosome decays with linear distance. Therefore adjacent contigs show high contact at their facing ends.
- Contacts within a chromosome are much more frequent than between chromosomes (chromosome territories). This allows contigs to be clustered into groups, one per chromosome.
- The pattern lets software decide order and orientation inside each cluster.
Omni-C versus Hi-C
| Aspect | Hi-C (restriction enzymes) | Omni-C (MNase) |
|---|---|---|
| Digestion | DpnII, HindIII, Arima enzyme mix | Micrococcal nuclease, sequence independent |
| Coverage bias | Depends on the number of cut sites; poor in sites-poor regions | More uniform |
| Resolution | Limited by fragment size | Fine, down to the nucleosome level |
| Data format | Paired-end reads | Paired-end reads (same downstream processing) |
| Typical vendors | Arima, Phase Genomics, Dovetail | Dovetail Omni-C |
For assembly, both produce data processed with the same tools; the difference is mostly in library quality and the uniformity of coverage.
6. Planning a chromosome-level project
1. Sample and DNA
- Choose one individual if possible, preferably a haploid or inbred one, to reduce heterozygosity. For small organisms (many snails, insects), a single individual may not provide enough DNA, so pooling or whole-body extraction from a small, inbred line may be necessary.
- Freshly collected, flash-frozen tissue (liquid nitrogen, -80 °C) preserves high-molecular-weight DNA. Avoid ethanol-stored, formalin-fixed or heavily degraded samples for long reads.
- Extract high-molecular-weight (HMW) DNA with gentle methods (for example magnetic-disk or Nanobind-based kits, or CTAB-based protocols with careful pipetting), and check size with pulsed-field or Femto Pulse analysis.
- Separate Hi-C or Omni-C tissue (fresh or frozen, with crosslinking) from the HMW DNA sample, because the Hi-C protocol needs intact nuclei.
- Check for contamination (symbionts, gut content, parasites, bacteria); consider cleaning the tissue and removing the gut where relevant.
- Beware of secondary metabolites and mucopolysaccharides that inhibit extraction in molluscs, plants and some insects.
2. Estimate genome size, heterozygosity and ploidy
From a modest amount of Illumina or HiFi data, count k-mers and fit a model.
# Count 21-mers with KMC or Jellyfish, then profile with GenomeScope2
mkdir -p kmc_tmp
kmc -k21 -t16 -m64 -ci1 -cs10000 @reads.list reads_k21 kmc_tmp
kmc_tools transform reads_k21 histogram reads_k21.hist -cx10000
Rscript genomescope.R -i reads_k21.hist -o genomescope_out -k 21 -p 2
GenomeScope2 reports genome size, heterozygosity, repeat fraction and model fit. Smudgeplot helps to confirm ploidy. These numbers decide the sequencing depth you need and whether the genome is hard (high heterozygosity or repeats).
3. Sequencing depth (guidelines)
| Data | Typical target |
|---|---|
| PacBio HiFi | 25 to 40x of the haploid genome per haplotype (for example 30x or more) |
| Nanopore ultra-long (optional) | 20 to 30x with reads longer than 100 kb where possible |
| Hi-C or Omni-C | Often about 50 to 100x of the genome, or as recommended by your kit and facility |
| Illumina (optional) | 30 to 60x for k-mer based quality checks and polishing |
Ask your sequencing facility for the recommended output of the kit and genome size.
7. Tutorial 1: Contig assembly from long reads
HiFi assembly with hifiasm
hifiasm is the standard assembler for HiFi data. It produces a haplotype-resolved assembly graph and can use Hi-C reads for phasing.
# HiFi only: primary and alternate contigs
hifiasm -o sample -t 32 hifi_reads.fastq.gz
# Convert the GFA graphs to FASTA
awk '/^S/{print ">"$2"\n"$3}' sample.bp.p_ctg.gfa > sample.p_ctg.fa # primary contigs
awk '/^S/{print ">"$2"\n"$3}' sample.bp.a_ctg.gfa > sample.a_ctg.fa # alternate contigs
# HiFi plus Hi-C for a haplotype-resolved assembly (hap1 and hap2)
hifiasm -o sample -t 32 --h1 hic_R1.fastq.gz --h2 hic_R2.fastq.gz hifi_reads.fastq.gz
awk '/^S/{print ">"$2"\n"$3}' sample.hic.hap1.p_ctg.gfa > sample.hap1.fa
awk '/^S/{print ">"$2"\n"$3}' sample.hic.hap2.p_ctg.gfa > sample.hap2.fa
Important options:
| Option | Use |
|---|---|
-t | Number of threads |
--h1, --h2 | Hi-C paired reads for phasing |
--ul | Add ultra-long Nanopore reads |
-l | Purging level for duplicates (0 off, 1 light, 2, 3 aggressive; default depends on version) |
--hom-cov | Set homozygous coverage peak if it is detected wrongly |
-s | Similarity threshold for duplicate haplotigs; lower for very heterozygous genomes |
--primary | Output primary and alternate assembly for non-phased (non-trio, non-Hi-C) mode |
Check the manual of your version, since options and output names change.
Nanopore assembly
# Flye for Nanopore reads
flye --nano-hq reads.fastq.gz --out-dir flye_out --threads 32 --genome-size 600m
# hifiasm with ultra-long reads
hifiasm -o sample -t 48 --ul ont_ul.fastq.gz hifi_reads.fastq.gz
# Verkko: HiFi plus ultra-long for near T2T assemblies
verkko -d verkko_out --hifi hifi_reads.fastq.gz --nano ont_ul.fastq.gz
Other assemblers: NextDenovo and Shasta for Nanopore, Canu for older long reads, and Hifiasm (UL) and Verkko for T2T-oriented projects.
Remove duplicated haplotigs with purge_dups
In a diploid genome, heterozygous regions can be assembled twice (as primary and haplotig), inflating the assembly size and breaking Hi-C scaffolding. purge_dups uses read depth and self-alignment to remove duplicated contigs.
minimap2 -x map-hifi -t 32 sample.p_ctg.fa hifi_reads.fastq.gz | gzip > hifi.paf.gz
pbcstat hifi.paf.gz # coverage statistics
calcuts PB.stat > cutoffs 2> calcuts.log
split_fa sample.p_ctg.fa > asm.split
minimap2 -xasm5 -DP -t 32 asm.split asm.split | gzip > asm.self.paf.gz
purge_dups -2 -T cutoffs -c PB.base.cov asm.self.paf.gz > dups.bed
get_seqs dups.bed sample.p_ctg.fa # outputs purged.fa and hap.fa
Check the coverage histogram and cutoffs before accepting the result.
Assess the contig assembly
quast.py -t 16 purged.fa -o quast_out --large
compleasm run -a purged.fa -o compleasm_out -l metazoa_odb10 -t 16 # BUSCO-like completeness
At this stage you expect the contig N50 of the order of megabases for HiFi data. If the assembly size is much larger than the GenomeScope2 estimate, duplicated haplotigs probably remain.
8. Tutorial 2: Hi-C and Omni-C scaffolding
Step 1: Map the Hi-C reads
Align the two reads of each pair independently (not as a normal paired-end alignment), keeping the 5-prime end, with BWA-MEM using the -5SP options, then mark duplicates and filter.
bwa index purged.fa
samtools faidx purged.fa
bwa mem -5SP -t 32 purged.fa hic_R1.fastq.gz hic_R2.fastq.gz \
| samblaster \
| samtools view -@ 8 -S -h -b -F 3340 -o hic.bam -
Meaning of the options:
-5reports the 5-prime end of chimeric reads as primary (important for ligation junctions).-Sand-Pskip mate rescue and pairing, because the two reads of a Hi-C pair are not expected to be close.-F 3340removes unmapped, secondary, supplementary and duplicate alignments flagged by samblaster, leaving valid read pairs.
Step 2: Scaffold with YaHS
YaHS (Yet another Hi-C Scaffolder) is a fast and accurate scaffolder that performs error correction of contigs and builds scaffolds from contact frequencies.
yahs purged.fa hic.bam -o yahs_out
# Main outputs:
# yahs_out_scaffolds_final.fa scaffolded assembly
# yahs_out_scaffolds_final.agp AGP file describing the layout
# yahs_out.bin binary contacts used for manual curation
Options to know: -e to specify restriction enzyme motifs (for Hi-C), -r to set resolutions, -q minimum mapping quality, and --no-contig-ec to skip contig error correction if you do not want contigs to be broken.
For Omni-C, enzyme motifs are not used, so run YaHS without -e.
Alternatives:
| Tool | Notes |
|---|---|
| YaHS | Fast, accurate, current default for many projects |
| 3D-DNA (with Juicer) | Widely used pipeline with automatic correction; heavier |
| SALSA2 | Uses assembly graph information; accepts BAM or BED |
| ALLHiC | Designed for polyploid and highly heterozygous genomes |
| LACHESIS | Older clustering approach, historical |
| haphic, pin_hic | Newer scaffolders; useful for comparison |
Step 3: Prepare a contact map for visualization and manual curation
Automatic scaffolding is not perfect. Always inspect the contact map. Two common tools are Juicebox (with JBAT files) and PretextView (fast, popular with Darwin Tree of Life).
#### Juicebox route
# Create the files for Juicebox Assembly Tools (JBAT)
juicer pre -a -o yahs_out_JBAT yahs_out.bin yahs_out_scaffolds_final.agp purged.fa.fai > yahs_out_JBAT.log 2>&1
# Get the chromosome sizes from the log and build the .hic file
grep PRE_C_SIZE yahs_out_JBAT.log | cut -d' ' -f2- > scaffolds_final.chrom.sizes
java -Xmx64G -jar juicer_tools.jar pre yahs_out_JBAT.txt yahs_out_JBAT.hic.part scaffolds_final.chrom.sizes
mv yahs_out_JBAT.hic.part yahs_out_JBAT.hic
Open yahs_out_JBAT.hic and yahs_out_JBAT.assembly in Juicebox with Assembly Tools enabled, fix the errors (see below), export the reviewed assembly file, then apply the edits:
juicer post -o yahs_curated yahs_out_JBAT.review.assembly yahs_out_JBAT.liftover.agp purged.fa
# produces yahs_curated.FINAL.fa
#### PretextView route
samtools view -h hic.bam | PretextMap -o map.pretext --sortby length --mapq 10
# Open map.pretext in PretextView, edit, then export the curated assembly with the Pretext tools
Step 4: How to read a Hi-C contact map
| Pattern in the map | Meaning | Action |
|---|---|---|
| Strong diagonal, with square blocks | Chromosomes correctly assembled | Define chromosome boundaries from block edges |
| Off-diagonal signal near a block corner, with perpendicular stripes | Inversion or contig in wrong orientation | Invert the contig |
| Bright signal between blocks of different chromosomes | Misjoin between chromosomes, or real fusion | Break the scaffold if it looks artificial; check with synteny |
| Gap or break in the diagonal, with signal skipping a region | Contig in the wrong place | Move the contig to its correct position |
| Weak, scattered signal for a small contig | Short or repetitive contig that cannot be placed | Leave unplaced |
| Bowtie-shaped pattern across the diagonal | Inversion | Check orientation and invert if needed |
| Strong signal between distant chromosome ends or centromeres | Rabl configuration or real biology | Do not "fix" real features without other evidence |
| Many small unplaced scaffolds | Haplotigs, contaminants, repeats, organelles | Identify and remove or keep as unplaced |
Keep a log of every manual edit and, ideally, support each with independent evidence (HiFi read mapping, synteny, genetic map).
Step 5: Finalize chromosome names and orientation
- Rename scaffolds as chromosomes (chr1, chr2, ...) in order of size, and keep unplaced sequences as
unplaced_1and so on (or follow the naming convention of your database). - Orient chromosomes consistently with a related species when possible (see synteny below).
- Identify and annotate the mitochondrial genome separately (MitoHiFi) and remove it from nuclear scaffolds.
- Check the telomeres at the chromosome ends:
tidk explore --minimum 5 --maximum 12 purged.fa # find the likely telomere repeat unit
tidk search --string TTAGG --output tidk --dir tidk_out --extension tsv yahs_curated.FINAL.fa
9. Tutorial 3: Omni-C data in detail
Omni-C reads are processed in the same way as Hi-C, but pipelines often use pairtools to generate a clean list of valid contact pairs and quality statistics.
# genome file: tab-separated sequence names and lengths
samtools faidx purged.fa
cut -f1,2 purged.fa.fai > purged.genome
bwa mem -5SP -T0 -t 32 purged.fa omni_R1.fastq.gz omni_R2.fastq.gz \
| pairtools parse --min-mapq 40 --walks-policy 5unique \
--max-inter-align-gap 30 --nproc-in 8 --nproc-out 8 --chroms-path purged.genome \
| pairtools sort --tmpdir tmp --nproc 16 \
| pairtools dedup --nproc-in 8 --nproc-out 8 --mark-dups --output-stats omni_stats.txt \
| pairtools split --nproc-in 8 --nproc-out 8 --output-pairs omni.pairs.gz --output-sam - \
| samtools view -bS -@ 16 \
| samtools sort -@ 16 -o omni.PT.bam
samtools index omni.PT.bam
The resulting omni.PT.bam can be used with YaHS, Juicer-based tools or PretextMap, and omni.pairs.gz can be converted to contact matrices with cooler.
Quality metrics for a Hi-C or Omni-C library
| Metric | Healthy library | Warning sign |
|---|---|---|
| Mapped read fraction | High, above about 80 percent | Low mapping: wrong genome, contamination, adapters |
| Duplicate fraction | Low to moderate | Very high: low complexity, over-amplification |
| Cis (same contig) versus trans (different contig) contacts | Mostly cis in a good assembly; trans reflects the number of unscaffolded contigs | Very high trans in a contiguous assembly: noisy ligation |
| Long-range cis (above 20 kb) fraction | High (often above 30 to 40 percent for good libraries) | Low: poor proximity ligation |
| Read-pair orientation and distance distribution | Smooth decay with distance | Sharp artefacts or no decay |
Check vendor and tool guidelines for current thresholds, because they depend on the species and the protocol.
Hi-C matrices for analysis
cooler cload pairs -c1 2 -p1 3 -c2 4 -p2 5 purged.genome:10000 omni.pairs.gz omni.10kb.cool
cooler zoomify omni.10kb.cool -o omni.mcool -r 10000,50000,100000,500000
View .mcool files in HiGlass or analyze with cooltools (compartments, TADs, loops) once the assembly is final.
10. Tutorial 4: Other scaffolding and improvement technologies
Ultra-long Nanopore reads
Use the reads in the assembler (hifiasm --ul, Verkko) so that long repeats are resolved at the contig stage. Reads can also be aligned to contigs to fill gaps and to check scaffolds.
# Gap closing with long reads
TGS-GapCloser.sh --scaff scaffolds.fa --reads ont_ul.fasta --output gapfilled --thread 32 --ne
Optical maps (Bionano)
Bionano Solve hybrid scaffold aligns sequence assemblies to optical maps, producing scaffolds validated by independent molecules. It is less common today but useful for validating large structural features.
Linked reads and genetic maps
- Linked-read data (10x Genomics, no longer sold) can be used with ARKS and LINKS for older datasets.
- A linkage map from a cross or a population can be used to anchor contigs with ALLMAPS or Lep-Anchor, giving evidence independent of Hi-C.
# Example: Lep-MAP3 to build the map, then Lep-Anchor to place contigs (outline)
# 1) call SNPs in the cross with bcftools, 2) build the map with Lep-MAP3, 3) anchor contigs with Lep-Anchor
Polishing
- HiFi assemblies are usually accurate enough (above QV 50) and may not need polishing.
- For Nanopore-only assemblies, polish with Medaka and then with Illumina reads (NextPolish, Pilon, or Polypolish).
- Always compare QV before and after polishing with Merqury.
11. Tutorial 5: Quality control and validation
| Check | Tool | What to look for |
|---|---|---|
| Contiguity | QUAST, assembly-stats | Contig and scaffold N50, number of sequences |
| Gene completeness | BUSCO or compleasm | High complete single-copy (above about 95 percent in most animals), low duplicated |
| k-mer completeness and QV | Merqury (with meryl) | Completeness above 95 to 99 percent, QV above 40 |
| Phasing | Merqury (hap-mers) | Low switch error, haplotype separation |
| Hi-C map | PretextView, Juicebox | Clean diagonal and chromosome blocks, no misjoins |
| Read mapping | minimap2 and samtools | Even coverage, no collapsed regions (use mosdepth) |
| Contamination | BlobToolKit, FCS-GX, Kraken2 | Remove bacterial, viral, human and other foreign contigs |
| Repeats and intergenic completeness | LAI (LTR Assembly Index) | See the Bioeduc article on repeat annotation |
| Telomeres and centromeres | tidk, TRASH | Telomere repeats at scaffold ends |
| Structural check | Inspector, CRAQ | Detects misassemblies from read evidence |
| Chromosome number | Karyotype data | Number of large scaffolds equals the expected number |
# BUSCO-like completeness, k-mer completeness and QV
meryl count k=21 threads=32 output reads.meryl hifi_reads.fastq.gz
merqury.sh reads.meryl yahs_curated.FINAL.fa merqury_out
# Contamination
blobtools create -i yahs_curated.FINAL.fa -b mapping.bam -t blast.out --db blobdb
12. Synteny: comparing chromosomes between genomes
What is synteny?
Synteny means that genes are located on the same chromosome. In genomics it usually refers to conserved gene order between species (collinearity): a block of genes in species A appears in the same order in species B because they descend from the same ancestral chromosome region.
| Term | Meaning |
|---|---|
| Collinear block | A series of homologous gene pairs in the same order and orientation |
| Orthologs | Genes in different species derived from a speciation event |
| Paralogs | Genes derived from duplication within a species |
| WGD (whole genome duplication) | Duplication of all chromosomes, followed by loss of many genes |
| Tandem and proximal duplicates | Duplicates next to or near each other |
| Rearrangement | Inversion, translocation, fusion or fission that breaks synteny |
Why synteny matters for a chromosome-level assembly
- Naming and orienting chromosomes consistently with a reference species.
- Validating the assembly: large-scale conserved order supports correct scaffolding; unexpected breaks may be misjoins or true rearrangements.
- Detecting chromosome fusion, fission and WGD in evolution.
- Transferring annotation and studying gene family expansion, sex chromosome evolution and the origin of resistance or immune gene clusters.
Tools for synteny
| Tool | Level | Notes |
|---|---|---|
| MCScanX | Gene-based collinearity | Classic and fast; needs BLASTP hits and gene positions; includes classifiers and plotting programs |
| JCVI (MCScan Python) | Gene-based | Python implementation, easy plots (dot plots, macro and micro synteny) |
| GENESPACE | Gene-based | R package that combines OrthoFinder and MCScanX; riparian plots |
| SyRI with minimap2 | Whole-genome alignment | Finds inversions, translocations, duplications and SNPs between two assemblies |
| MUMmer (nucmer, dnadiff) | Whole-genome alignment | Dot plots and alignments for closely related genomes |
| NGenomeSyn, SynVisio, TBtools | Visualization | Publication-ready synteny figures |
| SatsumaSynteny, Cactus | Whole-genome alignment | For many genomes and deep comparisons |
Use gene-based synteny (MCScanX) for moderately to distantly related species, and whole-genome alignment (SyRI, MUMmer) for closely related genomes or two assemblies of the same species.
13. Tutorial 6: Synteny with MCScanX
Step 1: Prepare the input files
MCScanX needs two files with the same prefix, for example sp1_sp2:
- **
sp1_sp2.blast**: all-versus-all BLASTP of the proteins of both species (tabular format 6, each species compared to itself and to the other). - **
sp1_sp2.gff**: gene positions, tab-separated, with four columns: chromosome (with a two-letter species code), gene ID, start, end.
# Protein databases, one per species (longest isoform per gene only)
cat sp1.pep.fa sp2.pep.fa > both.pep.fa
makeblastdb -in both.pep.fa -dbtype prot -out both_db
# BLASTP all against all; keep a small number of hits and a stringent e-value
blastp -query both.pep.fa -db both_db -evalue 1e-10 -max_target_seqs 5 \
-outfmt 6 -num_threads 32 -out sp1_sp2.blast
The GFF-like file (four columns) looks like this:
sp1Chr1 sp1g00001 10234 12890
sp1Chr1 sp1g00002 15520 18003
sp2Chr1 sp2g00001 5340 8102
Convert from a standard annotation with a short script, for example from a GFF3 file:
awk -F'\t' '$3=="mRNA"{split($9,a,";"); id=a[1]; sub("ID=","",id); print "sp1"$1"\t"id"\t"$4"\t"$5}' sp1.gff3 > sp1.gff
cat sp1.gff sp2.gff > sp1_sp2.gff
Rules to avoid problems: use one transcript per gene, keep chromosome names short and consistent with a species prefix, and make sure the IDs in the BLAST file are identical to the IDs in the GFF file.
Step 2: Run MCScanX
# Install
git clone https://github.com/wyp1125/MCScanX.git
cd MCScanX && make
# Run on the prefix (files sp1_sp2.blast and sp1_sp2.gff must be in the same folder)
MCScanX sp1_sp2
Main options:
| Option | Meaning | Default |
|---|---|---|
-k | Match score | 50 |
-g | Gap penalty | -1 |
-s | Minimum number of genes per collinear block | 5 |
-e | E-value threshold for BLAST hits | 1e-5 |
-m | Maximum gaps (genes) allowed in a block | 25 |
-w | Overlap window for collapsing multiple hits | 5 |
-a | Report multiple alignments by pairwise comparisons | off |
-b | Patterns: 0 intra- and inter-species, 1 intra-species only, 2 inter-species only | 0 |
-c | Number of species to expect in the blocks | depends |
Run MCScanX without arguments to see the options for your version. Use -b 2 when you only care about relationships between the two species.
Step 3: Read the outputs
- **
sp1_sp2.collinearity**: the main result. Each collinear block has a header with its score, e-value, number of gene pairs and orientation (plus or minus), followed by the list of homologous gene pairs. - **
sp1_sp2.html**: a folder with HTML files that display blocks per chromosome. - Summary numbers: how many genes are in collinear blocks, and how many blocks connect each chromosome pair.
Step 4: Visualize and classify with the included programs
# Dot plot (java programs are in MCScanX/downstream_analyses)
java dot_plotter -g sp1_sp2.gff -s sp1_sp2.collinearity -c dotplot.ctl -o dotplot.png
# Circle plot, dual synteny and bar plots
java circle_plotter -g sp1_sp2.gff -s sp1_sp2.collinearity -c circle.ctl -o circle.png
java dual_synteny_plotter -g sp1_sp2.gff -s sp1_sp2.collinearity -c dual_synteny.ctl -o dual.png
# Classify genes as singleton, dispersed, proximal, tandem or WGD/segmental
duplicate_gene_classifier sp1_sp2
# Add Ka and Ks to collinear pairs (needs a Ka/Ks calculator and CDS alignments)
add_ka_and_ks_to_collinearity.pl -i sp1_sp2.collinearity -d cds_pairs.fa -o sp1_sp2.ks.collinearity
Control files (.ctl) list the chromosomes to plot, their order, and the image size; examples are provided in the MCScanX download.
Step 5: Interpret synteny for chromosome assembly
| Pattern | Interpretation |
|---|---|
| A chromosome of species 1 maps to one chromosome of species 2 | Conserved chromosome (one-to-one) |
| One chromosome maps to two chromosomes of another species | Fission in one lineage or fusion in the other |
| Diagonal blocks with reversed slope | Inversion |
| Two parallel diagonals within a genome | Whole-genome or large segmental duplication |
| Fragmented, short blocks | Distant species, or an assembly or annotation problem |
| A block of scaffold from chromosome A inside chromosome B | Candidate misjoin: check with Hi-C and read coverage |
Never "correct" a scaffold only because synteny disagrees: species do rearrange chromosomes. Look for independent evidence (Hi-C signal, read support, repeated in other species).
Alternative: JCVI quick example
python -m jcvi.formats.gff bed --type=mRNA --key=ID sp1.gff3 -o sp1.bed
python -m jcvi.formats.gff bed --type=mRNA --key=ID sp2.gff3 -o sp2.bed
python -m jcvi.compara.catalog ortholog sp1 sp2 --cscore=.99 --no_strip_names
python -m jcvi.graphics.dotplot sp1.sp2.anchors
python -m jcvi.compara.synteny screen --minspan=30 --simple sp1.sp2.anchors sp1.sp2.anchors.new
python -m jcvi.graphics.karyotype seqids layout
14. Troubleshooting: symptoms, causes and fixes
| Symptom | Likely cause | What to do |
|---|---|---|
| Assembly size much larger than expected | Uncollapsed haplotigs (high heterozygosity), contamination | Run purge_dups, check coverage peaks, screen for contamination |
| Assembly size much smaller than expected | Collapsed repeats, low coverage, wrong estimate | Check k-mer profile, add ultra-long reads, verify genome size estimate |
| Many contigs, low N50 | Short or fragmented reads, low coverage, contamination | Use HiFi or ultra-long reads, increase depth, improve DNA quality |
| Scaffolds do not group into the expected number of chromosomes | Hi-C library poor, too few contacts, wrong -e motifs, karyotype differs | Check library QC, rerun with correct parameters, compare with cytogenetic number |
| Hi-C reads map poorly | Wrong reference, adapters, low quality | Trim adapters, check species and contamination, map to the final contig assembly |
| Very high trans contacts | Poor ligation, random ligation noise, many unplaced contigs | Check Hi-C QC; filter low MAPQ reads; improve the contig assembly |
| Contact map shows many small blocks | Misjoined or fragmented contigs, haplotigs | Purge duplicates, break contigs where needed and rescaffold |
| Chromosomes joined by a bright off-diagonal square | Misjoin, or a real fusion | Inspect read support and synteny with relatives |
| Hi-C scaffolding creates false inversions | Repeats and low mappability | Use higher MAPQ, manual curation |
| Telomere repeats in the middle of scaffolds | Misjoin or an ancient fusion | Check in the contact map and with long reads |
| Two haplotypes interleaved in one assembly | Phasing not used or ineffective | Use Hi-C phasing in hifiasm or trio data |
| BUSCO duplicated score high | Remaining haplotigs | Run purge_dups, check hap-mer duplication in Merqury |
| Mitochondrial or plastid sequences in the chromosomes | Organelle contigs not removed | Identify with MitoHiFi or BLAST and remove |
| MCScanX finds no collinear blocks | Mismatched IDs between BLAST and GFF, too strict parameters | Check IDs and species prefixes, relax -s and -e |
| MCScanX blocks are too many or too small | Too low match size, too many BLAST hits | Increase -s (minimum genes) and reduce -max_target_seqs to about 5 |
| Chromosome names are lost or ambiguous | Different naming between FASTA and GFF | Keep one naming table and use it throughout |
| Juicebox crashes or is slow | Large file, memory | Use lower resolution, more Java memory, or PretextView |
15. Best practices checklist
- Plan the sample first: fresh or flash-frozen tissue, one individual, HMW DNA, and separate Hi-C or Omni-C material.
- Estimate genome size, heterozygosity and ploidy by k-mers before choosing the strategy.
- Use HiFi (or HiFi plus ultra-long) for contigs, then Hi-C or Omni-C for chromosome-scale scaffolds.
- Purge haplotigs and screen for contamination before scaffolding.
- Always inspect and curate the contact map, and log every edit.
- Validate with BUSCO, Merqury, read mapping, telomeres and the expected karyotype.
- Use synteny with a related species to name, orient and cross-check chromosomes, without over-interpreting differences.
- Record all software versions, parameters and the exact data used, and deposit raw reads and the assembly in public databases.
16. Frequently asked questions
Do I need both Hi-C and long reads? For a chromosome-level assembly of most eukaryotes, yes: long reads give accurate, contiguous contigs and Hi-C places them on chromosomes.
Hi-C or Omni-C? Both work for scaffolding. Omni-C gives more uniform coverage in some genomes, and Hi-C kits with several enzymes (such as Arima) are widely used. Choose according to tissue, availability and facility experience.
Can I make a chromosome-level assembly without Hi-C? Possible with very long reads, a genetic map or synteny to a close reference, but results are less reliable and need additional validation.
How many chromosomes should I get? The number of large scaffolds should match the known karyotype. If you do not know it, use related species and the Hi-C map blocks.
What if my genome is highly heterozygous or polyploid? Use haplotype-aware assembly (hifiasm with Hi-C), consider inbreeding, a haploid individual or trio design, and polyploid-aware scaffolding tools such as ALLHiC.
Is MCScanX still relevant? Yes. It is a simple and widely used method for gene-based collinearity, and newer tools (GENESPACE, JCVI) use similar concepts.
Do I still need to polish a HiFi assembly? Usually little or no polishing is required, but check QV with Merqury.
17. References
- Rhie A et al. (2021). Towards complete and error-free genome assemblies of all vertebrate species. Nature 592:737-746.
- Lawniczak MKN et al. (2022). Standards recommendations for the Earth BioGenome Project. Proceedings of the National Academy of Sciences 119:e2115639118.
- Cheng H et al. (2021). Haplotype-resolved de novo assembly using phased assembly graphs with hifiasm. Nature Methods 18:170-175.
- Cheng H et al. (2022). Haplotype-resolved assembly of diploid genomes without parental data. Nature Biotechnology 40:1332-1335.
- Rautiainen M et al. (2023). Telomere-to-telomere assembly of diploid chromosomes with Verkko. Nature Biotechnology 41:1474-1482.
- Kolmogorov M et al. (2019). Assembly of long, error-prone reads using repeat graphs. Nature Biotechnology 37:540-546.
- Guan D et al. (2020). Identifying and removing haplotypic duplication in primary genome assemblies. Bioinformatics 36:2896-2898.
- Zhou C, McCarthy SA, Durbin R (2023). YaHS: yet another Hi-C scaffolding tool. Bioinformatics 39:btac808.
- Dudchenko O et al. (2017). De novo assembly of the Aedes aegypti genome using Hi-C yields chromosome-length scaffolds. Science 356:92-95.
- Ghurye J et al. (2019). Integrating Hi-C links with assembly graphs for chromosome-scale assembly. PLoS Computational Biology 15:e1007273.
- Zhang X et al. (2019). Chromosome-level assembly of the allotetraploid sugarcane using ALLHiC. Nature Plants 5:833-845.
- Lieberman-Aiden E et al. (2009). Comprehensive mapping of long-range interactions reveals folding principles of the human genome. Science 326:289-293.
- Durand NC et al. (2016). Juicebox provides a visualization system for Hi-C contact maps with unlimited zoom. Cell Systems 3:99-101.
- Open2C et al. (2024). Pairtools: from sequencing data to chromosome contacts. PLoS Computational Biology 20:e1012164.
- Abdennur N, Mirny LA (2020). Cooler: scalable storage for Hi-C data and other genomically labeled arrays. Bioinformatics 36:311-316.
- Ranallo-Benavidez TR, Jaron KS, Schatz MC (2020). GenomeScope 2.0 and Smudgeplot for reference-free profiling of polyploid genomes. Nature Communications 11:1432.
- Manni M et al. (2021). BUSCO update: novel and streamlined workflows along with broader and deeper phylogenetic coverage. Molecular Biology and Evolution 38:4647-4654.
- Rhie A et al. (2020). Merqury: reference-free quality, completeness, and phasing assessment for genome assemblies. Genome Biology 21:245.
- Huang N, Li H (2023). compleasm: a faster and more accurate reimplementation of BUSCO. Bioinformatics 39:btad595.
- Challis R et al. (2020). BlobToolKit: interactive quality assessment of genome assemblies. G3 10:1361-1374.
- Brown M et al. (2025). tidk: a toolkit to rapidly identify telomeric repeats from genomic datasets. Bioinformatics 41:btaf049.
- Wang Y et al. (2012). MCScanX: a toolkit for detection and evolutionary analysis of gene synteny and collinearity. Nucleic Acids Research 40:e49.
- Tang H et al. (2008). Synteny and collinearity in plant genomes. Science 320:486-488.
- Lovell JT et al. (2022). GENESPACE tracks regions of interest and gene copy number variation across multiple genomes. eLife 11:e78526.
- Goel M et al. (2019). SyRI: finding genomic rearrangements and local sequence differences from whole-genome assemblies. Genome Biology 20:277.
- Marcais G et al. (2018). MUMmer4: a fast and versatile genome alignment system. PLoS Computational Biology 14:e1005944.
- Ou S, Jiang N (2018). LTR_retriever: a highly accurate and sensitive program for identification of long terminal repeat retrotransposons. Plant Physiology 176:1410-1422.
- Nurk S et al. (2022). The complete sequence of a human genome. Science 376:44-53.
💬 Commentaires