Skip to content

Getting Your DNA Analyzed: What the Data Contains

Oak
A feathered dinosaur specimen on a black plinth, one flank fully plumed and iridescent, the other reduced to sparse glowing quills.

Getting your DNA analyzed means one of two very different things. A consumer array (23andMe, AncestryDNA, MyHeritage) chemically interrogates roughly 600,000 to 900,000 pre-chosen positions and reports a genotype at each. Whole-genome sequencing reads the whole molecule, typically 30x coverage over about 3.1 billion bases, and infers variants from read pileups. Arrays cost $50–$200 and return a 15 MB text file. A 30x genome costs a few hundred to a few thousand dollars depending on who does it and what comes with it, and returns 40–120 GB of compressed reads plus a 1–2 GB variant file. If you want to do your own analysis, get the sequencing. An array file cannot be extended, reprocessed, or re-called against a new reference. A BAM or CRAM can.

What the array file is

Your 23andMe download is a TSV with four columns: rsid, chromosome, position, genotype. The genotype is two letters on the forward strand of the build they used (GRCh37 for most legacy exports). No quality score, no read depth, no phase. A no-call appears as --, and you will see thousands of those.

The array measures fluorescence intensity at probes and clusters samples into AA/AB/BB calls. Per-genotype concordance against sequencing is high, around 99.5% or better for common variants with good cluster separation. That number hides the problem: rare variants cluster badly because there are almost no heterozygotes and no homozygous-alternate samples in the clustering set. A reported pathogenic variant from an array has a meaningful chance of being a clustering artifact, which is why every consumer report tells you to confirm findings in a clinical lab. Do that. Confirmation and any interpretation of a medically actionable variant belongs with a genetic counselor or physician, not with you and a Python notebook.

The deeper limit is coverage. Human variation is dominated by positions the array never looks at. The original SNP map catalogued 1.42 million SNPs and found roughly one variant per 1.9 kb between any two chromosomes, and that was a fraction of what exists 1. Deep sequencing of 1,070 Japanese individuals identified over 20 million SNVs, the large majority of them novel and rare, with most rare variants confined to single individuals or families 2. An array typed on a European-heavy design will miss essentially all of your private variation regardless of ancestry, and will miss a lot of common variation if your ancestry is underrepresented in the design panel.

What sequencing gives you, file by file

Ask for these four artifacts. If a provider will not hand over the first two, the analysis is not yours.

  • FASTQ or CRAM of raw reads. CRAM is reference-compressed and runs about 15–20 GB for a 30x genome versus 50–60 GB for BAM. Keep the CRAM plus the exact reference FASTA it was compressed against. Without that FASTA the CRAM is unreadable.
  • BAM/CRAM index (.crai/.bai).
  • gVCF, not just VCF. A gVCF records reference-confidence blocks, so you can distinguish “reference at this position with 34 reads of support” from “we had no coverage and said nothing.” That distinction matters constantly.
  • The run metadata: reference build (GRCh38 with alt contigs, or T2T-CHM13), aligner and version, caller and version, mean coverage, percent of bases at ≥20x, duplicate rate, insert size distribution.

Check coverage before anything else:

samtools coverage -r chr1 sample.cram
mosdepth --by 1000 --fast-mode sample sample.cram

For a nominal 30x genome, expect mean depth 28–33x and ≥90% of the callable genome at 20x or better. If mean depth is 24x, you were sold 30x and given less, and heterozygote sensitivity drops noticeably. Duplicate rate above roughly 15% means a low-complexity library and less effective depth than the raw number suggests.

The pipeline we would run

Start from FASTQ if you have it, so the alignment is yours.

bwa-mem2 mem -t 32 -R '@RG\tID:1\tSM:you\tPL:ILLUMINA' \
  GRCh38_full_analysis_set_plus_decoy_hla.fa r1.fq.gz r2.fq.gz \
  | samtools sort -@ 8 -o aln.bam -

samtools markdup -@ 8 aln.bam dedup.bam

Use the full analysis set with decoys and HLA contigs. Decoy sequences absorb reads that would otherwise pile onto paralogous regions and generate false heterozygotes.

For calling, DeepVariant is what we use on a single sample:

run_deepvariant --model_type=WGS --ref=GRCh38.fa \
  --reads=dedup.bam --output_vcf=you.vcf.gz \
  --output_gvcf=you.g.vcf.gz --num_shards=32

It is a single-sample caller with no cohort assumptions, which is the right shape for one person, and it beats hand-tuned hard filters on Genome in a Bottle benchmarks for SNVs. Run 32 threads and expect several hours. Validate against a truth set with hap.py and the GIAB stratification BEDs so you know your SNV and indel F1 in easy regions versus segmental duplications and homopolymers. They differ a lot.

For structural variants, small-variant callers are blind. Run Manta and one of Delly or Smoove, then intersect. Short reads give poor SV recall (a large share of insertions are missed) and long reads are the real fix, so treat short-read SV calls as leads rather than results.

Annotate with VEP or bcftools csq against a pinned Ensembl cache:

vep -i you.vcf.gz --cache --offline --assembly GRCh38 \
  --everything --fork 16 --vcf -o annotated.vcf

Then join to ClinVar (versioned, dated) and gnomAD allele frequencies. Filter to gnomAD AF < 0.001 before you look at anything labeled pathogenic. That one filter removes most of the noise.

Where the interpretation gets hard

You will end up with roughly 4–5 million variants. About 20,000 are coding, a few hundred are rare and predicted loss-of-function, and a handful are in ClinVar as pathogenic. Almost all of those last ones will be carrier status for recessive conditions or variants of uncertain significance with a thin evidence base.

The hard part is non-coding. The ENCODE pilot found that most of the genome is transcribed and that regulatory elements are far more numerous and less conserved than the earlier gene-centric picture implied 3. Your rare non-coding variants are not interpretable from sequence alone. Getting anywhere requires knowing whether the allele changes expression in your tissue, which is an RNA question, not a DNA question. Paired RNA-seq is the cheapest real leverage here: allele-specific expression at a heterozygous site tells you whether a candidate regulatory variant does anything in you.

Polygenic scores are the other trap. A PRS computed on GRCh38 with the wrong strand convention, or on an ancestry the training GWAS did not include, produces a confident number with no meaning. Check strand alignment against the score file explicitly, and check that your genetic ancestry falls inside the training distribution before you read the percentile.

Questions people also ask

How long does it take? Lab turnaround for a 30x genome is typically 4–8 weeks from sample receipt: library prep and sequencing take days, and the rest is queueing and QC. The compute is fast by comparison. Alignment plus DeepVariant on 32 cores runs in under a day.

Why does ancestry analysis take so long? Array chips are run in batches, and genotype calling clusters your sample against the whole batch. A partial plate waits for more samples. Re-runs after a low call rate add weeks.

Is a DNA test 100% accurate? No. Array genotypes are around 99.5% concordant at common, well-clustered sites and materially worse at rare ones. Sequencing SNV F1 above 99.5% in high-confidence regions drops in homopolymers, segmental duplications, and the HLA and repeat-heavy regions. Indels are harder than SNVs everywhere.

What should you not do before a test? For a cheek swab, do not eat, drink, smoke, or brush within 30 minutes, since buccal cells and contaminating material reduce DNA yield. For blood draws tied to biomarker panels, follow the fasting instruction given. Nothing you do beforehand changes your genotype.

Will insurance pay? Generally only for clinically indicated testing ordered by a physician with a diagnostic question attached. Elective sequencing for your own analysis is out of pocket.

What does full sequencing cost? The sequencing reagents and labor are a few hundred dollars. What varies by an order of magnitude is whether you receive raw reads, what coverage is real rather than nominal, and what interpretation and longitudinal context come with it.

Oak builds longitudinal molecular profiles of individuals: whole-genome sequencing, RNA sequencing, proteomics, blood biomarkers, and continuous glucose data, integrated into one model of you. Build your profile.

Footnotes

  1. The International SNP Map Working Group, Cold Spring Harbor Laboratories:, Ravi Sachidanandam, et al. A map of human genome sequence variation containing 1.42 million single nucleotide polymorphisms. Nature, 2001. https://doi.org/10.1038/35057149 ↩

  2. Masao Nagasaki, Jun Yasuda, Fumiki Katsuoka, et al. Rare variant discovery by deep whole-genome sequencing of 1,070 Japanese individuals. Nature Communications, 2015. https://doi.org/10.1038/ncomms9018 ↩

  3. Ewan Birney, Paul Flicek, Damian Keefe, et al. Identification and analysis of functional elements in 1% of the human genome by the ENCODE pilot project. Nature, 2007. https://doi.org/10.1038/nature05874 ↩