How to Convert a BAM File to VCF for Free Without Creating an Account
BAM to VCF is variant calling, not conversion; run bcftools locally against a reference genome. No upload, no account.
You do not convert a BAM file to VCF the way you convert one document format to another. You perform variant calling. The free, no-account route is local: install samtools and bcftools, add the reference genome the reads were aligned to, and run a two-stage mpileup to call command. Nothing is uploaded anywhere.
How do I convert a BAM file to VCF for free without creating an account?
The command for a single germline sample looks like this:
samtools index sample.bam bcftools mpileup -f reference.fasta sample.bam | bcftools call -mv -Oz -o sample.vcf.gz bcftools index sample.vcf.gz
Before that, the reference needs an index: samtools faidx reference.fasta
If your BAM is not already coordinate sorted, sort it first with samtools sort -o sample.sorted.bam sample.bam, then index the sorted file.
What BAM to VCF actually does
A BAM file stores aligned sequencing reads, with each base tied to a position and a quality score. A VCF file stores variant sites that the caller inferred from those reads, along with genotype calls and quality values. The conversion is not a rewrite. It is a statistical pileup over every covered position, followed by a decision about whether the evidence supports a variant. This is why the reference genome matters. If you use the wrong reference, the positions and alleles are wrong.
The files you actually need
- A coordinate-sorted and indexed BAM file
- A reference FASTA for the same assembly the BAM was aligned to, indexed with
samtools faidx bcftoolsandsamtoolsinstalled from conda, apt, or Homebrew, all free and no account
Most BAM files from a sequencing provider are already sorted and indexed. If the index is missing, samtools index rebuilds it in a few minutes for a 50-100 GB BAM.
| Local bcftools | Typical web uploader | |
|---|---|---|
| Account required | No | Usually yes |
| Upload a 50-100 GB BAM | Not uploaded | Impractical on free tiers |
| Does real variant calling | Yes | Often no, or file format only |
| Cost | $0 | Free tier is small or time-limited |
Scroll the table sideways for the rest →
Typical constraints for a 30x whole-genome BAM.
Why a no-account web uploader is rare
A 30x whole-genome BAM commonly lands between 50 and 100 GB. Uploading that on a home connection can take hours before any computation starts, and the compute for variant calling is not free to host. Free no-account web tools tend to handle small files or simple format shifts, not real BAM-to-VCF variant calling. If you see a free web page claiming to do it, check whether it actually calls variants or just reformats a VCF.
What if the real goal is a 23andMe-style file
Some people asking this have whole-genome sequencing and want the kind of text file they can upload to a consumer DNA tool. In that case the path has two steps: BAM to VCF with the command above, then VCF to a 23andMe-style text file. The VCF itself is not the same layout. You may not need the second step. The free DNA tool linked at the close reads a whole-genome VCF directly in the browser.
Time, size and common failure points
On a laptop, a whole-genome 30x BAM can take several hours to run through bcftools mpileup. An exome BAM is usually under an hour. The resulting VCF is small compared with the BAM: a few hundred megabytes compressed for a whole genome, less for an exome.
Common mistakes:
- Using a GRCh38 reference on a GRCh37 BAM, or the reverse. Use the same assembly.
- Expecting the VCF to have rsID annotations. A raw
bcftools callVCF often has.in the ID column. - Treating a raw VCF as a clinical result. Variant quality filtering and annotation are separate steps.
- Running this germline command on tumor or RNA-seq data. Somatic and RNA variant callers exist because the error profiles are different.
BAM to VCF is variant calling, not conversion. With bcftools and the same reference genome on your own computer, it is free and needs no account.

The download steps for whole-genome sequencing, on the page itself.

The short version: what is worth acting on, first.
Once you have the VCF, the obvious next step is to read it. The free DNA tool at https://healthosx.com/dna parses a whole-genome VCF in the browser and reports traits, medication response, carrier findings and ancestry, with no account needed for the initial story. If your VCF came from raw GATK or Sentieon output without rsID annotations, ancestry can still work on GRCh37 coordinates, but the health findings need named positions.
New to raw DNA files? Start with the full guide: How to Download & Analyze Your 23andMe Raw Data Free
Written by
HealthOS Research