Chromosome-Level Genome Assembly: Hi-C, Omni-C

Chromosome-Level Genome Assembly: Hi-C, Omni-C | BIOEDUC
🧬 Genome Assembly & Synteny

Chromosome-Level Genome Assembly: Hi-C, Omni-C

By Abdelmalek | Updated on

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

FeatureWhat it isWhy it matters for assembly
CentromereRegion where spindle fibres attach; often made of long satellite repeatsVery repetitive, so it is often a gap or a collapsed region unless ultra-long or T2T methods are used
TelomereRepeat 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 heterochromatinGene-rich open regions and repeat-rich condensed regionsRepeat-rich heterochromatin is hard to assemble
Repeats and transposable elementsOften more than half of the genomeThe main cause of assembly breaks
PloidyNumber of chromosome sets (haploid, diploid, polyploid)Determines how many haplotypes must be separated
Sex chromosomesX, Y, Z, WDifferent coverage and repeat content, often hard to assemble
Holocentric chromosomesCentromere activity along the whole chromosome (some insects, nematodes, plants)Hi-C patterns and centromere logic differ
KaryotypeNumber and shape of chromosomes of a speciesA 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.

LevelDescription
ReadsRaw sequences from the instrument (150 bp to over 100 kb)
ContigsContinuous sequences assembled from overlapping reads, without gaps
ScaffoldsContigs 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

TechnologyRead length and accuracyRole in chromosome-level assemblyLimits
Illumina short reads150 bp, very high accuracyGenome survey (k-mers), polishing, Hi-C reads, error checksCannot resolve repeats; not used alone for chromosome assembly
PacBio HiFi (circular consensus)10 to 25 kb, accuracy above 99.9 percentBackbone of most modern assemblies; resolves most repeats and separates haplotypesNeeds high-molecular-weight DNA and cost; very long repeats remain
Oxford Nanopore (standard)10 to 100 kb, accuracy lower than HiFi but improving rapidlyLong contiguity, low cost, portable; used alone or with HiFiSystematic errors in homopolymers; may need polishing
Oxford Nanopore ultra-longAbove 100 kb, up to megabasesSpans large repeats and centromeres; scaffolding of contigsNeeds very intact DNA; lower yield
Hi-C (restriction enzyme based)Paired short reads of ligated fragmentsScaffolding to chromosomes, haplotype phasing, misassembly detectionDepends on restriction sites; uneven coverage
Omni-C (MNase based, Dovetail)Paired short readsSame use as Hi-C, with sequence-independent digestion and more uniform coverageProtocol and kit dependent; needs good quality tissue or cells
Optical mapping (Bionano)Labelled molecules of hundreds of kbValidates and links scaffoldsSpecialized instrument; less used now
Genetic linkage mapMarkers (RAD-seq, SNP arrays) from a crossIndependent chromosome assignmentNeeds family or cross; low resolution
Strand-seq, trio binningSingle-strand or parental readsPhasing and chromosome-scale assembly in special designsNeeds 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?

chr1chr2chr3chr4chr5
Simulated Hi-C contact map: strong signal along the diagonal and square blocks for each chromosome (illustrative simulation, not real data).
  1. Crosslink cells with formaldehyde, which freezes DNA segments that are close together in the nucleus.
  2. Fragment the chromatin with a restriction enzyme (classic Hi-C) or MNase (Omni-C).
  3. 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.
  4. Reverse crosslinks, purify DNA and sequence with paired-end Illumina reads.
  5. 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

AspectHi-C (restriction enzymes)Omni-C (MNase)
DigestionDpnII, HindIII, Arima enzyme mixMicrococcal nuclease, sequence independent
Coverage biasDepends on the number of cut sites; poor in sites-poor regionsMore uniform
ResolutionLimited by fragment sizeFine, down to the nucleosome level
Data formatPaired-end readsPaired-end reads (same downstream processing)
Typical vendorsArima, Phase Genomics, DovetailDovetail 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)

DataTypical target
PacBio HiFi25 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-COften 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.

HMW DNA+ Hi-C tissueHiFi readshifiasmPurgepurge_dupsScaffoldYaHSCurate + QCJuicebox, BUSCO
Typical workflow from sample to chromosome-level assembly (schematic made for Bioeduc).

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:

OptionUse
-tNumber of threads
--h1, --h2Hi-C paired reads for phasing
--ulAdd ultra-long Nanopore reads
-lPurging level for duplicates (0 off, 1 light, 2, 3 aggressive; default depends on version)
--hom-covSet homozygous coverage peak if it is detected wrongly
-sSimilarity threshold for duplicate haplotigs; lower for very heterozygous genomes
--primaryOutput 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:

  • -5 reports the 5-prime end of chimeric reads as primary (important for ligation junctions).
  • -S and -P skip mate rescue and pairing, because the two reads of a Hi-C pair are not expected to be close.
  • -F 3340 removes 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:

ToolNotes
YaHSFast, accurate, current default for many projects
3D-DNA (with Juicer)Widely used pipeline with automatic correction; heavier
SALSA2Uses assembly graph information; accepts BAM or BED
ALLHiCDesigned for polyploid and highly heterozygous genomes
LACHESISOlder clustering approach, historical
haphic, pin_hicNewer 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 mapMeaningAction
Strong diagonal, with square blocksChromosomes correctly assembledDefine chromosome boundaries from block edges
Off-diagonal signal near a block corner, with perpendicular stripesInversion or contig in wrong orientationInvert the contig
Bright signal between blocks of different chromosomesMisjoin between chromosomes, or real fusionBreak the scaffold if it looks artificial; check with synteny
Gap or break in the diagonal, with signal skipping a regionContig in the wrong placeMove the contig to its correct position
Weak, scattered signal for a small contigShort or repetitive contig that cannot be placedLeave unplaced
Bowtie-shaped pattern across the diagonalInversionCheck orientation and invert if needed
Strong signal between distant chromosome ends or centromeresRabl configuration or real biologyDo not "fix" real features without other evidence
Many small unplaced scaffoldsHaplotigs, contaminants, repeats, organellesIdentify 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_1 and 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

MetricHealthy libraryWarning sign
Mapped read fractionHigh, above about 80 percentLow mapping: wrong genome, contamination, adapters
Duplicate fractionLow to moderateVery high: low complexity, over-amplification
Cis (same contig) versus trans (different contig) contactsMostly cis in a good assembly; trans reflects the number of unscaffolded contigsVery high trans in a contiguous assembly: noisy ligation
Long-range cis (above 20 kb) fractionHigh (often above 30 to 40 percent for good libraries)Low: poor proximity ligation
Read-pair orientation and distance distributionSmooth decay with distanceSharp 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

CheckToolWhat to look for
ContiguityQUAST, assembly-statsContig and scaffold N50, number of sequences
Gene completenessBUSCO or compleasmHigh complete single-copy (above about 95 percent in most animals), low duplicated
k-mer completeness and QVMerqury (with meryl)Completeness above 95 to 99 percent, QV above 40
PhasingMerqury (hap-mers)Low switch error, haplotype separation
Hi-C mapPretextView, JuiceboxClean diagonal and chromosome blocks, no misjoins
Read mappingminimap2 and samtoolsEven coverage, no collapsed regions (use mosdepth)
ContaminationBlobToolKit, FCS-GX, Kraken2Remove bacterial, viral, human and other foreign contigs
Repeats and intergenic completenessLAI (LTR Assembly Index)See the Bioeduc article on repeat annotation
Telomeres and centromerestidk, TRASHTelomere repeats at scaffold ends
Structural checkInspector, CRAQDetects misassemblies from read evidence
Chromosome numberKaryotype dataNumber 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.

TermMeaning
Collinear blockA series of homologous gene pairs in the same order and orientation
OrthologsGenes in different species derived from a speciation event
ParalogsGenes derived from duplication within a species
WGD (whole genome duplication)Duplication of all chromosomes, followed by loss of many genes
Tandem and proximal duplicatesDuplicates next to or near each other
RearrangementInversion, 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

ToolLevelNotes
MCScanXGene-based collinearityClassic and fast; needs BLASTP hits and gene positions; includes classifiers and plotting programs
JCVI (MCScan Python)Gene-basedPython implementation, easy plots (dot plots, macro and micro synteny)
GENESPACEGene-basedR package that combines OrthoFinder and MCScanX; riparian plots
SyRI with minimap2Whole-genome alignmentFinds inversions, translocations, duplications and SNPs between two assemblies
MUMmer (nucmer, dnadiff)Whole-genome alignmentDot plots and alignments for closely related genomes
NGenomeSyn, SynVisio, TBtoolsVisualizationPublication-ready synteny figures
SatsumaSynteny, CactusWhole-genome alignmentFor 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:

  1. **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).
  2. **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:

OptionMeaningDefault
-kMatch score50
-gGap penalty-1
-sMinimum number of genes per collinear block5
-eE-value threshold for BLAST hits1e-5
-mMaximum gaps (genes) allowed in a block25
-wOverlap window for collapsing multiple hits5
-aReport multiple alignments by pairwise comparisonsoff
-bPatterns: 0 intra- and inter-species, 1 intra-species only, 2 inter-species only0
-cNumber of species to expect in the blocksdepends

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

PatternInterpretation
A chromosome of species 1 maps to one chromosome of species 2Conserved chromosome (one-to-one)
One chromosome maps to two chromosomes of another speciesFission in one lineage or fusion in the other
Diagonal blocks with reversed slopeInversion
Two parallel diagonals within a genomeWhole-genome or large segmental duplication
Fragmented, short blocksDistant species, or an assembly or annotation problem
A block of scaffold from chromosome A inside chromosome BCandidate 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

SymptomLikely causeWhat to do
Assembly size much larger than expectedUncollapsed haplotigs (high heterozygosity), contaminationRun purge_dups, check coverage peaks, screen for contamination
Assembly size much smaller than expectedCollapsed repeats, low coverage, wrong estimateCheck k-mer profile, add ultra-long reads, verify genome size estimate
Many contigs, low N50Short or fragmented reads, low coverage, contaminationUse HiFi or ultra-long reads, increase depth, improve DNA quality
Scaffolds do not group into the expected number of chromosomesHi-C library poor, too few contacts, wrong -e motifs, karyotype differsCheck library QC, rerun with correct parameters, compare with cytogenetic number
Hi-C reads map poorlyWrong reference, adapters, low qualityTrim adapters, check species and contamination, map to the final contig assembly
Very high trans contactsPoor ligation, random ligation noise, many unplaced contigsCheck Hi-C QC; filter low MAPQ reads; improve the contig assembly
Contact map shows many small blocksMisjoined or fragmented contigs, haplotigsPurge duplicates, break contigs where needed and rescaffold
Chromosomes joined by a bright off-diagonal squareMisjoin, or a real fusionInspect read support and synteny with relatives
Hi-C scaffolding creates false inversionsRepeats and low mappabilityUse higher MAPQ, manual curation
Telomere repeats in the middle of scaffoldsMisjoin or an ancient fusionCheck in the contact map and with long reads
Two haplotypes interleaved in one assemblyPhasing not used or ineffectiveUse Hi-C phasing in hifiasm or trio data
BUSCO duplicated score highRemaining haplotigsRun purge_dups, check hap-mer duplication in Merqury
Mitochondrial or plastid sequences in the chromosomesOrganelle contigs not removedIdentify with MitoHiFi or BLAST and remove
MCScanX finds no collinear blocksMismatched IDs between BLAST and GFF, too strict parametersCheck IDs and species prefixes, relax -s and -e
MCScanX blocks are too many or too smallToo low match size, too many BLAST hitsIncrease -s (minimum genes) and reduce -max_target_seqs to about 5
Chromosome names are lost or ambiguousDifferent naming between FASTA and GFFKeep one naming table and use it throughout
Juicebox crashes or is slowLarge file, memoryUse 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.
📝 Quiz: Chromosome-Level Genome Assembly
📚 BIOEDUC · Author: Abdelmalek · Figures are original schematics created for BIOEDUC; simulated data are labelled as illustrative.