What to Do With Your DNA.Land Upload Now That the Site Is Gone
By the end of this guide you will have your consumer genotype file (23andMe, AncestryDNA, MyHeritage, FamilyTreeDNA) converted into a reference-correct VCF on both GRCh37 and GRCh38, imputed up to tens of millions of sites against a modern reference panel, annotated with gene, consequence, and allele-frequency fields, and a clear-eyed view of which third-party upload sites still exist and what each one does with the file. You need a Linux or macOS machine with about 60 GB of free disk, plink2, bcftools (1.17 or newer, built with the +fixref plugin), tabix, a GRCh37 and a GRCh38 reference FASTA, and either CrossMap or Picard for the coordinate lift. An account on the TOPMed Imputation Server is free and takes a day or two to approve. Nothing here is a diagnosis, and no output of this pipeline should change what you do medically without a clinician or genetic counselor reading it with you.
1. Understand that DNA.Land is no longer a destination
DNA.Land ran from 2015 at the New York Genome Center and Columbia, and it was genuinely interesting: it imputed uploaded array data, returned ancestry and relative-matching reports, and used the pooled cohort for research. It stopped accepting new uploads and retired its reports, and the domain no longer serves a working upload endpoint. Pages that still rank for “dna land upload” are mostly other companies bidding on the phrase. If you had an account there, your imputed VCF is not recoverable from the site, so treat your original raw file from the testing company as the only durable artifact.
The practical consequence is that the thing DNA.Land did for you, imputation plus interpretation, is now something you either do yourself or hand to a different service. Doing it yourself is better in two respects. You keep the intermediate files, and you get to choose the reference panel, which matters enormously for imputation accuracy outside European ancestries.
2. Get your raw file and look at it before anything else
Download the raw data from the testing company’s account settings. You will get a gzipped tab-separated text file, typically 15 to 25 MB compressed, with a header block of comment lines. Look at it directly:
zcat genome_yourname.txt.gz | head -25
zcat genome_yourname.txt.gz | grep -vc '^#'
A 23andMe v5 file contains roughly 640,000 lines and has four columns: rsid, chromosome, position, genotype, where genotype is a two-character string like AG and hemizygous or missing calls appear as --. An AncestryDNA v2 file contains roughly 670,000 lines and splits the genotype into allele1 and allele2, and it encodes chromosomes 23 through 26 rather than X, Y, XY, and MT. Both current formats are on GRCh37 (hg19) plus-strand coordinates, but check the header, because older AncestryDNA exports and some MyHeritage files differ.
Record two numbers now: total variant count and call rate. Anything below about 98 percent called suggests a poor-quality array run, and it will propagate into everything downstream.
zcat genome_yourname.txt.gz | grep -v '^#' | awk '{print $4}' | sort | uniq -c | sort -rn | head
3. Convert to VCF on GRCh37
plink2 reads the 23andMe format natively. For AncestryDNA, either use plink2 --import-dosage-adjacent flags or, more simply, rewrite the two allele columns into a single genotype column and feed it through the 23andMe reader:
# AncestryDNA -> 23andMe-like layout
zcat AncestryDNA.txt.gz | grep -v '^#' | tail -n +2 \
| awk 'BEGIN{OFS="\t"}{
c=$2; if(c==23)c="X"; else if(c==24)c="Y"; else if(c==25)c="X"; else if(c==26)c="MT";
g=$4 $5; gsub(/0/,"-",g);
print $1,c,$3,g }' > ancestry_as_23andme.txt
plink2 --23file ancestry_as_23andme.txt YOURID YOURID \
--snps-only just-acgt \
--max-alleles 2 \
--sort-vars \
--export vcf id-paste=iid bgz \
--out sample_grch37
tabix -p vcf sample_grch37.vcf.gz
Note that chromosome 25 in AncestryDNA is the pseudoautosomal region, which I have mapped to X above. If you care about PAR handling, keep it separate instead of collapsing it. Mitochondrial coverage on these arrays is sparse (a few thousand sites at best) and is not a substitute for mtDNA sequencing.
4. Fix reference and alternate alleles
This is the step people skip, and it breaks everything afterward. plink2 does not know which of your two alleles matches the reference genome, so the REF/ALT assignment in the exported VCF is arbitrary. Imputation servers reject such files, and annotation tools will silently mis-assign consequences. Fix it against the actual FASTA:
bcftools +fixref sample_grch37.vcf.gz -- -f human_g1k_v37.fasta -m top 2>&1 | tail -20
bcftools +fixref sample_grch37.vcf.gz -Oz -o sample_grch37.fixref.vcf.gz \
-- -f human_g1k_v37.fasta -m top -d
bcftools index sample_grch37.fixref.vcf.gz
bcftools +fixref sample_grch37.fixref.vcf.gz -- -f human_g1k_v37.fasta
The dry run prints counts for ref match, ref mismatch, and flipped. On a correctly built array file you should see well over 99 percent matching or flippable, with a few thousand unresolvable sites that -d drops. If you see tens of thousands of mismatches, your coordinates are on the wrong build, and you should return to step 2.
Also confirm your contig naming matches the FASTA exactly (1 versus chr1). Use bcftools annotate --rename-chrs with a two-column map rather than editing headers by hand.
5. Lift to GRCh38
Most modern annotation resources are GRCh38-first, so produce a GRCh38 copy. CrossMap is the least painful route, and it re-sorts and re-checks the reference base:
CrossMap vcf hg19ToHg38.over.chain.gz \
sample_grch37.fixref.vcf.gz \
GRCh38_full_analysis_set.fa \
sample_grch38.vcf
bcftools sort sample_grch38.vcf -Oz -o sample_grch38.vcf.gz
bcftools index sample_grch38.vcf.gz
Expect to lose on the order of a few thousand sites that fail to map uniquely, concentrated in segmental duplications and near centromeres. Keep the unmapped list; if a variant you later care about is on it, check that specific position manually rather than assuming it is absent.
One ordering decision: impute on the build your chosen server wants, not on the build you prefer. The TOPMed server expects GRCh38 input and will also accept GRCh37 with liftover enabled, but doing the lift yourself with a known chain file and then verifying reference bases gives you a file you can audit.
6. Impute against a modern reference panel
Imputation is what DNA.Land did that made a 650,000-marker file feel large. Statistical phasing plus a haplotype reference panel turns your array into roughly 20 to 40 million sites with per-variant quality scores. The two free options are the TOPMed Imputation Server (panel of about 97,000 sequenced genomes, the broadest ancestral representation available to the public) and the Michigan Imputation Server (1000 Genomes and HRC panels). We use TOPMed, mainly because accuracy for African, Hispanic, and admixed samples is substantially better with a panel that contains those haplotypes.
Prepare per-chromosome VCFs, since that is what the server ingests:
for c in $(seq 1 22); do
bcftools view -r chr${c} sample_grch38.vcf.gz -Oz -o chr${c}.vcf.gz
bcftools index chr${c}.vcf.gz
done
Submit with build GRCh38, rsID or array as the input type, Eagle for phasing, and no r² filter at submission time so you can filter yourself later. The server returns per-chromosome dose.vcf.gz files containing DS (dosage), GP (genotype probabilities), and an R2 INFO field.
Filter on R2 before you trust anything:
bcftools concat chr{1..22}.dose.vcf.gz -Oz -o imputed.all.vcf.gz
bcftools view -i 'R2>0.8' imputed.all.vcf.gz -Oz -o imputed.r2_08.vcf.gz
bcftools index imputed.r2_08.vcf.gz
bcftools view -H imputed.r2_08.vcf.gz | wc -l
An R2 of 0.8 is the conventional threshold and typically leaves 8 to 12 million variants from a consumer array. Rare variants (minor allele frequency under 0.5 percent) rarely clear it, which is the central limitation: imputation recovers common variation well and rare variation poorly. If your interest is a rare coding variant, no amount of imputation substitutes for sequencing.
7. Annotate, and keep provenance
Now attach gene, consequence, and frequency information. Ensembl VEP with the offline cache is the workhorse:
vep --cache --offline --assembly GRCh38 \
--input_file imputed.r2_08.vcf.gz --format vcf \
--vcf --compress_output bgzip \
--output_file annotated.vcf.gz \
--everything --pick_allele_gene \
--plugin CADD,CADD_GRCh38_whole_genome_SNVs.tsv.gz \
--fork 4
Then add population frequencies from gnomAD with bcftools annotate -a gnomad.genomes.sites.vcf.bgz -c INFO/AF,INFO/AF_nfe,.... Annotation pipelines of this kind exist precisely because the interpretation step, not the variant calling step, is where most of the analytic labor sits, and they aggregate dozens of functional and frequency sources per variant 1.
Two interpretive cautions. First, most of what clears an R2 filter is noncoding, and noncoding interpretation depends on regulatory maps rather than protein consequence. Atlases of DNase I hypersensitive sites across hundreds of cell and tissue types give you a way to ask whether a variant sits in accessible chromatin in a relevant tissue, which is a far more informative question than “is it near a gene” 2. Second, resist reading single variants as verdicts. Effect sizes for common variants are small, and the distribution of deleterious variation itself varies systematically with ancestry, which means both polygenic scores and any load-style summary are sensitive to which reference population you compare against 3.
8. Choose where, if anywhere, to upload
With the pipeline above you no longer need a service for imputation. What remains worth uploading for is relative matching, since matching requires other people’s data.
GEDmatch accepts raw files from all major companies and offers one-to-many matching, chromosome browsers, and admixture tools. It is the most useful free ancestry destination and also the one used by law enforcement under its opt-in policy, so read the current terms before you agree. FamilyTreeDNA accepts uploads free for matching, with a fee to open the deeper reports. MyHeritage still accepts uploads from other companies at no charge for DNA matching, with ethnicity estimates and some features behind a subscription. 23andMe and AncestryDNA do not accept uploaded files at all, because both sell the test that produces them. Genomelink, Sequencing.com, and similar services accept uploads and return trait reports drawn from published associations; the underlying science is often thin, and the reports are best read as entertainment rather than measurement.
The one platform we would actively recommend for a technical reader is Open Humans, which is built around participant-controlled storage: you deposit your own files, decide per-project which data a study can read, and can revoke access. The design intent is participant-centered data sharing rather than company-centered collection, and it supports importing from several consumer sources 4.
9. Think about privacy before you click upload
Genotype data is not anonymizable in the way that most consumer data is. A few dozen common SNPs uniquely identify you, your genome implicates relatives who never consented, and the same relative-matching machinery that finds a second cousin also enables re-identification of supposedly de-identified research data. The literature on this is clear that identifiability, familial exposure, and long-term re-purposing are structural properties of genomic data rather than fixable policy details 5.
Concretely: prefer services that let you delete, and verify deletion removes match entries. Assume any file you upload may be retained in backups. Keep your raw file and your derived VCFs encrypted at rest (age or gpg), and keep them off shared drives that sync to services you have not read the terms for. If a health question is at stake, take the finding to a clinician for confirmatory clinical testing rather than acting on an array or imputed call, because consumer arrays carry meaningful false-positive rates at rare pathogenic sites.
Common problems
Reference mismatch after liftover is the most frequent failure. If bcftools +fixref reports high mismatch counts on your GRCh38 file, you probably lifted without a FASTA check or mixed chr-prefixed and unprefixed contigs. Re-run CrossMap with the correct analysis-set FASTA and verify with a final +fixref dry run before submission.
The imputation server rejecting your upload almost always traces to one of four things: non-bgzipped VCFs, missing .tbi indexes, multiple chromosomes in a single file, or strand flips exceeding the server’s tolerance. Run the server’s own checks locally by confirming each per-chromosome file passes bcftools view -h cleanly and contains exactly one contig.
Indels and multiallelic sites from arrays are unreliable. Arrays genotype a fixed probe set, and insertion-deletion probes are both sparse and error-prone. The --snps-only just-acgt flag above drops them deliberately. If you need indel calls, you need sequencing.
X, Y, and mitochondrial handling breaks silently. Ploidy on X depends on sex, imputation servers handle X separately or not at all, and array mtDNA coverage is too sparse for haplogroup assignment beyond coarse branches. Treat autosomes as the reliable product of this pipeline.
Polygenic scores computed on your imputed file will look precise and will not be. Score weights derived largely in European-ancestry cohorts transfer poorly, per-variant effects are tiny, and the absolute risk conversion depends on a population baseline you probably cannot match. Compute them if you find it interesting, report them to yourself as percentiles within a named reference population, and do not let them drive decisions without a clinician involved.
Finally, the ceiling. An array interrogates under a million pre-chosen positions out of roughly three billion, imputation fills in common haplotype structure and little else, and none of it measures what your genes are doing right now. A genotype file is a static, sparse, and partially inferred description. If you want to see expression, protein abundance, or metabolic response, those are different measurements entirely.
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
-
Xiaoming Liu, Simon White, Bo Peng, et al. WGSA: an annotation pipeline for human genome sequencing studies. Journal of Medical Genetics, 2015. https://doi.org/10.1136/jmedgenet-2015-103423 ↩
-
Wouter Meuleman, Alexander Muratov, Eric Rynes, et al. Index and biological spectrum of human DNase I hypersensitive sites. Nature, 2020. https://doi.org/10.1038/s41586-020-2559-3 ↩
-
Brenna M. Henn, Laura R. Botigué, Stephan Peischl, et al. Distance from sub-Saharan Africa predicts mutational load in diverse human genomes. Proceedings of the National Academy of Sciences, 2015. https://doi.org/10.1073/pnas.1510805112 ↩
-
Bastian Greshake Tzovaras, Misha Angrist, Kevin Arvai, et al. Open Humans: A platform for participant-centered research and personal data exploration. GigaScience, 2019. https://doi.org/10.1093/gigascience/giz076 ↩
-
Xinghua Shi, Xintao Wu. An overview of human genetic privacy. Annals of the New York Academy of Sciences, 2016. https://doi.org/10.1111/nyas.13211 ↩