Direct comparison
hg19 vs hg38: What Changed, When to Migrate
hg19 (GRCh37) vs hg38 (GRCh38): what changed in the assembly, why coordinates need liftover between builds, and when migrating a pipeline is worth it.
Written and maintained by CASRAI Editorial Board
Last updated
Ask CASRAI · included with Regulatory Radar
Ask about hg19 vs hg38: What Changed, When to Migrate
Ask CASRAI answers research-administration questions and cites the passages behind every claim — and says so when the corpus does not cover something, instead of guessing. It comes with a Regulatory Radar subscription at $29 a month, alongside the daily digest of regulatory changes and the dashboard of what changed.
150 questions a day, on this site, over the API, or inside your own tools through the CASRAI MCP server.
Everything CASRAI publishes — this page, the dictionary, the guides and the news — stays free to read, with no account and no card.
How do hg19 (GRCh37), hg38 (GRCh38) compare side by side?
The table below compares hg19 (GRCh37), hg38 (GRCh38) across 11 procurement-relevant dimensions, from grc build name through recommended for new projects.
Side-by-side comparison
| Dimension | hg19 (GRCh37) | hg38 (GRCh38) |
|---|---|---|
| GRC build name | GRCh37 | GRCh38 |
| First released | February 2009 | December 2013 |
| Final/current patch | GRCh37.p13 (2013) — final, no further patches | Ongoing patch releases (e.g. GRCh38.p14) |
| Alternate-locus (ALT) contigs | ~9 alternate scaffolds | 260+ ALT contigs, covering complex loci like MHC and KIR |
| Centromere representation | Large unresolved gap regions | Modeled synthetic centromeric sequence |
| Known GRCh37 misassemblies | Present (uncorrected) | Corrected |
| Gene annotation maintenance | Legacy/reduced ongoing updates | Actively maintained (RefSeq, GENCODE/Ensembl) |
| Chromosome naming (UCSC convention) | chr-prefixed (chr1, chrX, chrM) | chr-prefixed (chr1, chrX, chrM) |
| Coordinate-equivalent GRC/b37-style naming | GRCh37/"b37" distributions typically drop the chr prefix (1, X, MT) — same coordinates as hg19, different naming | GRCh38 distributions follow the same chr-prefix convention split as hg19/GRCh37 |
| Standard coordinate conversion | liftOver / LiftoverVcf / CrossMap chain file to hg38 | liftOver / LiftoverVcf / CrossMap chain file to hg19 (less common direction) |
| Recommended for new projects | No — legacy default only | Yes — current standard reference |
Common questions
Common questions about hg19 (GRCh37) vs hg38 (GRCh38)
Do hg19 and hg38 use the same genomic coordinates?
+
No. Because GRCh38 corrected misassembled sequence and reordered/resolved regions present in GRCh37, the same genomic position number can point to different underlying sequence in the two builds. A coordinate must be explicitly converted (lifted over) between builds before it can be compared or merged.
What is liftover and do I need it?
+
Liftover is the standard process for converting genomic coordinates between reference-genome builds, typically using a chain file with a tool like UCSC's liftOver, Picard's LiftoverVcf, or CrossMap. You need it any time you're comparing, merging, or annotating data called against different builds — for example, an hg19-called variant against an hg38-based population database.
Is liftover a perfect conversion?
+
No. Most regions convert cleanly, but liftover can fail to map, map ambiguously, or land in a flagged-unreliable region — this is concentrated in structurally rearranged or newly-resolved regions, which are often the regions most relevant to a study. A pipeline using liftover should report its failure/ambiguous rate, not silently drop or accept those calls.
Should a new sequencing project start on hg19 or hg38?
+
hg38 (GRCh38). It's the more accurate, actively maintained assembly with broader structural and annotation support. hg19 is still encountered because of the large volume of legacy data and tools built against it, not because it's the better current choice for a new project.
Should I migrate an ongoing project that already has hg19-called data?
+
It depends on the cost/accuracy tradeoff. Re-calling variants from raw reads against hg38 is more accurate but requires reprocessing. Lifting over the existing hg19 VCF to hg38 coordinates is cheaper but introduces its own mapping uncertainty, concentrated in complex regions. Many projects deliberately stay on one build for the life of the study rather than switching mid-stream, to avoid reintroducing the same direct-comparability problem migration is meant to solve.
Going deeper








