GRCh37 and GRCh38 are two versions of the human reference genome. GRCh37 (called hg19 at UCSC) was released in February 2009, and GRCh38 (hg38) in December 2013. They number positions differently, so a variant at one coordinate in GRCh37 usually sits at a different coordinate in GRCh38.
Your file declares its build in the header, and the contig lengths give it away. If a tool and a file disagree, results can be silently wrong, so check before you upload or compare anything.
What a reference build is
Sequencing produces millions of short reads, and software places each one against a reference assembly maintained by the Genome Reference Consortium. Every variant in your VCF is reported as a position on that assembly. Change the assembly and the positions change, even though your DNA does not. Our piece on the T2T reference genome explains why the reference keeps being improved.
The two builds side by side
| GRCh37 | GRCh38 | |
|---|---|---|
| UCSC name | hg19 | hg38 |
| Released | February 2009 | December 2013 |
| Length of chromosome 1 | 249,250,621 bases | 248,956,422 bases |
| Status | Older, still common in legacy data and tools | Current major release, with minor patches |
GRCh38 has had later patch releases, the most recent being GRCh38.p14 in February 2022. Patches add corrections and alternate sequences but, according to the Genome Reference Consortium, they do not change the chromosome coordinates, so a patch does not make a file incompatible with its major build.
Why a mismatch breaks things
- Annotation lands in the wrong place. A tool that looks up "chr7:117,000,000" in the wrong build is describing a different stretch of DNA, so it can report the wrong gene or no gene at all.
- Databases are tied to a build. Variant catalogs, population frequencies and gene models are published per build. Compare across builds and the same rs number may sit at two coordinates.
- Merging files misaligns variants. Combining your VCF with a relative's, or with a reference panel, only works if both use the same build.
- Target lists and regions are build-specific. Exon lists, gene panels and coordinates in a paper or spreadsheet are written for one build, so copying them into a tool for another build selects the wrong stretches of DNA.
- It fails quietly. Some tools error out, but many just return fewer matches or nonsense, which looks like a finding.
If you only read the PDF report from your provider, the provider already matched the build for you. The problem appears when you take the files to another tool, a relative's data or a research dataset. A newer gap-free reference, T2T-CHM13, also exists with its own coordinates, so a third build can turn up in some research tools.
How to check which build your file uses
- Read the header. VCF headers often carry a
##reference=line and##contiglines. The VCF specification recommends the reference line but does not require a particular format, so it may be missing or vague. - Look at chromosome 1's length. If a
##contig=<ID=chr1,length=...>line says 249250621, the file is on the GRCh37 family. If it says 248956422, it is GRCh38. - Ask the provider. Their documentation or support team should state the build used for alignment and variant calling.
Do not rely on the "chr" prefix. UCSC-style files use names like chr1, while NCBI and Ensembl-style files use 1. That is a naming convention, not a build indicator. UCSC's hg19 mitochondrial sequence also differs from the one in NCBI's GRCh37, which can trip up tools that treat the two as identical.
Here is what the header evidence looks like. A file aligned to GRCh38 will typically contain a contig line like this (shown as an illustration):
##contig=<ID=chr1,length=248956422>
The same line with a length of 249250621 would mean GRCh37. Most people only meet this problem when they upload a file to a third-party tool, so it is worth five minutes of checking before you pay for or wait on an analysis.
What to do if the builds do not match
Option 1: find a tool or database for your build. Many services accept both builds and ask you to choose one. Pick the one that matches your header.
Option 2: convert the coordinates ("lift over"). Utilities such as UCSC's liftOver translate positions from one build to another using chain files. Conversion is not perfect: regions that were rearranged between builds may map ambiguously or not at all, and each failed variant needs a check.
Option 3: realign from the raw reads. If you kept your FASTQ or BAM files, you can realign to the build you want and call variants again. It takes more computing time but avoids conversion artifacts. Our guide to analyzing raw genome data mentions the usual tools, and storing your files properly is what keeps this option open.
Ask before you buy
If you plan to run your own analysis, build compatibility is a fair question for any sequencing provider: which build do you align to, and can I get files for another? We include it in questions to ask before buying whole genome sequencing. For background on the file types themselves, see opening your VCF.
Bottom line
A variant coordinate means nothing without its build. Read the header, confirm the chromosome 1 length, and match your tools to it. Converting is possible, but the safest route is to use files and tools that already agree.
Common questions
Is hg19 the same as GRCh37?
They are the same assembly under two naming schemes, but not identical in every detail. UCSC's original hg19 mitochondrial sequence differs from the mitochondrial sequence in NCBI's GRCh37, which can matter for tools that assume they match.
Is hg38 the same as GRCh38?
Yes, hg38 is UCSC's name for GRCh38. Naming conventions for contigs can still differ between UCSC and other providers, so check your file rather than assuming.
Which build is better?
GRCh38 is the current major release and is generally preferred for new work, but GRCh37 remains common in older datasets and tools. The better choice is the one that matches your data and the tools you plan to use.
Can I convert a GRCh37 VCF to GRCh38?
Yes, with a liftover tool and the right chain file. Some variants will fail to convert or land ambiguously, so review the unconverted records instead of discarding them silently.
How do I know which build my provider used?
Check the VCF header for a reference line and for the length of chromosome 1, then confirm with the provider's documentation or support team.
Sources and verification
- Genome Reference Consortium: human genome overview (GRCh38.p14, February 2022; patches do not change coordinates)
- UCSC Genome Browser: assembly release dates, hg19 versus GRCh37 mitochondrial note, chromosome naming
- NCBI GRC data page: GRCh37 chromosome 1 length
- Contigs annotated in GRCh38: chromosome 1 length
- VCF 4.3 specification: reference and contig header lines
Release dates, chromosome lengths and the patch statement were checked against the pages above in October 2026. Tool behavior varies, so test conversions on a few known variants.
Medical disclaimer. GenomeTesting.org publishes educational content about genetics and consumer genomic testing. Nothing here is medical advice, a diagnosis, or a substitute for care from a qualified clinician or genetic counsellor. Decisions about testing, treatment, or interpreting your own results should be made with a healthcare professional who can see your full history.