Reading the Handover: Why a VCF Is a Conclusion and a BAM Is an Asset
Reading the Report
Reading the Handover: Why a VCF Is a Conclusion and a BAM Is an Asset
A sequencing project ends with files rather than findings. Which files you receive determines which questions you are still allowed to ask three years from now.
The analysis finishes, the invoice clears, and a folder arrives — or a link to one. Inside is a report, a spreadsheet of variants, and a VCF. Everyone signs off. The engagement is closed.
What has just happened is that a decision was made about your future options, and it was made by whoever decided what to put in the folder. The report is the deliverable people negotiated over. The contents of the folder are the deliverable that matters in three years, and they are almost never specified in the statement of work.
Each file is a claim at a different depth
A sequencing pipeline is a sequence of compressions, and each step discards what the next step does not need. FASTQ holds the observations: the reads, and a quality score for every base. BAM and CRAM hold those same reads placed against a reference genome — an interpretation already, but a reversible one. A VCF holds the conclusions: the positions at which the pipeline decided the sample differed from the reference, under one caller, one filter set and one set of thresholds.
The compression is severe. The conclusions occupy roughly a thousandth of the space of the evidence they were drawn from, which is exactly why the conclusions are what gets delivered and the evidence is what gets deleted.
A VCF is a difference, and a difference needs something to differ from
A VCF does not describe a genome. It describes how one sample departed from one particular assembly, as judged by one particular aligner. This is why a VCF cannot simply be moved to a newer reference build when the field moves — and the field has moved twice in most people's careers.
Liftover looks like it solves this and mostly does not. Evaluated against ClinVar, the common tools convert well over 99% of variants successfully, with failures concentrated in indels and duplications1. The concerning finding in the same evaluation is not the failures. It is that variants which were present in the GRCh37 call set and absent from the GRCh38 call set — that is, calls the newer assembly had corrected away — were converted happily by all three tools. Liftover translates coordinates. It does not re-examine evidence, so it cannot remove a call that the new reference would never have produced.
The scale of what changes between assemblies is not trivial either: in a systematic comparison of exome calls across builds, 64% of the genes enriched for discordant variants were discordant because of multi-mapped reads — reads whose correct placement depends on which sequences exist in the reference at all2. Resolving that requires the reads. A VCF does not contain reads.
The most expensive thing a VCF omits is the difference between “no” and “we didn't look”
A VCF records positions where something was found. It has no representation for a position where nothing was found, and therefore no way to distinguish two very different situations: the sample matched the reference there, or the region was never covered well enough to say3. Both appear on the page as silence.
This is what a gVCF exists to fix — it emits reference blocks with their confidence, so absence becomes readable — and it is the single most common omission in a delivery. Without it, a negative result is uninterpretable at exactly the moment someone asks the obvious follow-up question: was that gene actually sequenced?
| The question | VCF only | + CRAM/BAM | + FASTQ |
|---|---|---|---|
| Re-annotate against current gene–disease knowledge | Yes | Yes | Yes |
| Re-call with a different or newer caller | No | Yes | Yes |
| Look for a variant class the original run never called | No | Yes | Yes |
| Establish whether a locus was covered at all | No* | Yes | Yes |
| Realign to a different reference assembly | No | Sometimes | Yes |
| Reproduce the delivered result end to end | No | Partly | Yes† |
* Unless a gVCF or a per-base coverage file was delivered alongside. † Only with the pipeline manifest — tool versions, container digests, parameters and reference accession.
Two rows deserve a note. Sometimes for realignment is not hedging: reverting an alignment to raw reads works only if the alignment retained everything, including unmapped reads and unrecalibrated base qualities. Pipelines that discard unmapped reads, or that were given permission to quantise quality scores for compression, have made that decision irreversibly on your behalf. And partly for reproduction reflects that reproducing a result requires knowing what produced it — which is a documentation deliverable, not a data one4.
The reference is part of the data, not context for it
One operational fact is worth more than any argument here. CRAM achieves its compression by storing only the differences between each read and the reference sequence. The format specification is explicit that CRAM has strict rules about references: the MD5 checksum of each reference sequence is required in the header, and a URI for the reference file is strongly advised5. Without the exact FASTA the file was compressed against — not “GRCh38”, but that specific file, checksum-identical — a CRAM cannot be decoded at all.
A team that archives its CRAMs and lets the reference wander off its file share has not archived anything. It has kept an encrypted file and thrown away the key.
The retention floor expires before the reanalysis window opens
Clinically, the minimum is short. Under CAP's Molecular Pathology Checklist, NGS data and variant call files supporting primary results and reanalysis must be retained for a minimum of two years6. Reasonable teams read a floor as a ceiling and delete on schedule.
The trouble is that the value of holding data does not begin until roughly the point at which the obligation to hold it ends. When one laboratory systematically reanalysed 2,000 consecutive exome cases originally interpreted in 2012 and 2013, the diagnostic yield rose from 25.2% to 36.7%7; an earlier systematic reanalysis found new diagnoses in cases that had already been reported as negative8. Follow-up work makes the boundary of what reanalysis can reach concrete: in a three-year follow-up cohort, some new diagnoses came from reanalysing existing data, but others required re-sequencing because the causal locus had never been covered adequately in the first place9. Keeping the reads answers many later questions; it does not answer all of them.
Against that, the cost is close to a rounding error. Deep-archive object storage runs at about a tenth of a cent per gigabyte-month10. A 34 GB CRAM held for three years costs a little over a dollar — against a sequencing run that cost several hundred, and a re-collection that in most translational programmes is impossible because the sample is gone.
What to name in the statement of work
Six things, and they cost the vendor almost nothing to include if they are asked for before the work starts rather than after it ends: the aligned reads as lossless CRAM or BAM; the exact reference FASTA and its index, by accession and checksum; a gVCF or per-base coverage file alongside the VCF; a pipeline manifest recording tool versions, container digests and parameters; the annotation source versions, with their release dates, since a VCF annotated against a 2024 ClinVar snapshot is a 2024 document; and checksums for everything, so that in three years you can prove the file you are holding is the file you were given.
Retrofitting any of this is expensive or impossible. Specifying it is a paragraph.
Three questions to ask
- To the vendor, before signature: which files are deliverables, and does the delivery include the reference and the pipeline manifest?“You'll get the results” is not an answer. Ask for the file list, with formats.
- If we came back in three years and asked you to realign this to a different reference, what would you need from us?The answer tells you whether what you are being handed is reversible — and it is a fair question to ask before the work starts, not after.
- To your own organisation: who pays for storage after the project closes, and where does the data live when the vendor's account does not?Unowned storage is deleted storage. It is worth naming a person, not a department.
Zetobit builds and validates clinical and research bioinformatics pipelines, and specifies handover packages that are still usable years after the engagement closes. If you are scoping a sequencing project, the deliverables paragraph is worth more attention than the methods paragraph. contact@zetobit.com
References
- Evaluation of liftover tools for the conversion of Genome Reference Consortium Human Build 37 to Build 38 using ClinVar variants. Genes. 2023;14(10):1875. doi:10.3390/genes14101875
- Exome variant discrepancies due to reference-genome differences. Am J Hum Genet. 2021. sciencedirect.com
- The Variant Call Format specification. samtools/hts-specs.
- Roy S, Coldren C, Karunamurthy A, et al. Standards and guidelines for validating next-generation sequencing bioinformatics pipelines: a joint recommendation of the Association for Molecular Pathology and the College of American Pathologists. J Mol Diagn. 2018;20(1):4–27.
- CRAM format specification (version 3.1). samtools/hts-specs. samtools.github.io
- The designated record set for clinical genetic and genomic testing: a points to consider statement of the American College of Medical Genetics and Genomics (ACMG). Genet Med. 2023. gimjournal.org
- Liu P, Meng L, Normand EA, et al. Reanalysis of clinical exome sequencing data. N Engl J Med. 2019;380(25):2478–2480. nejm.org
- Wenger AM, Guturu H, Bernstein JA, Bejerano G. Systematic reanalysis of clinical exome data yields additional diagnoses: implications for providers. Genet Med. 2017;19(2):209–214.
- A three-year follow-up study evaluating clinical utility of exome sequencing and diagnostic potential of reanalysis. npj Genom Med. 2020;5:37. nature.com
- Amazon S3 Glacier storage classes. Amazon Web Services. aws.amazon.com

