Skip to content
GeiserXPublic

Latest commit

 

History

396 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OwnGenome banner

OwnGenome

OwnGenome was called Personal-Genome-Pipeline until November 2026.

Analyze your own whole genome sequencing (WGS) data on consumer hardware.
No cloud accounts, no subscriptions, no bioinformatics degree required.

Release CI License GitHub Stars

This pipeline takes raw sequencing data (FASTQ/BAM/VCF) from any vendor and runs the analysis steps of a default run to produce a full genomic profile: variant calling, pharmacogenomics, structural variants, cancer predisposition screening, polygenic risk scores, ancestry estimation, telomere length, mitochondrial analysis, and more. Everything runs locally in Docker containers, each with a hard memory limit.

Time: about 21 h per sample from FASTQ on a 16-thread server, measured; plan for more than a day on 8 CPUs (runtime) | Disk: 500 GB per sample from a BAM, about 700 GB from FASTQ | Cost: Free (you just need your data)

Features

  • Takes FASTQ, BAM, VCF or Illumina ORA from any vendor (Nebula, Dante Labs, Sequencing.com, Novogene, DRAGEN), plus long reads from Nanopore and PacBio HiFi.
  • Calls SNPs and indels with DeepVariant, and structural and copy number variants with Manta, Delly and CNVpytor merged into a consensus.
  • Screens ClinVar and runs CPSR cancer predisposition panels, VEP annotation with CADD, SpliceAI, REVEL and AlphaMissense, and slivar prioritization.
  • Pharmacogenomics with PharmCAT, pypgx (29 genes, 13 of them with copy number from the BAM, so gene deletions, duplications and hybrid genes) and CPIC drug recommendations. PharmCAT gets T1K's HLA types, and a CYP2D6 call only when pypgx and Cyrius (opt-in, non-commercial licence) agree.
  • Repeat expansions, HLA typing (KIR opt-in), SMN1/SMN2 copy number (opt-in), and from PacBio HiFi reads HBA1/HBA2, CYP21A2, GBA1, PMS2, STRC, NCF1 and OTOA with Paraphase (opt-in), telomere length, mitochondrial haplogroup, heteroplasmy and an mtDNA contamination check, Y-chromosome haplogroup (opt-in), mosaic loss of chrY or chrX with its uncertainty, ROH, ancestry, admixture fractions with a chromosome painting (opt-in) and polygenic risk scores, and the blood group antigens (ABO, Rh, Kell, Duffy, Kidd and the other systems, opt-in).
  • A raw-data file in the 23andMe layout from your genome (opt-in step 40), for genealogy and health services that read chip files. The pipeline writes it; uploading it is up to you.
  • A traits panel: lactase persistence, caffeine, alcohol flush, bitter taste, earwax, APOE and other replicated variants, read from the gVCF, each with the primary paper it comes from.
  • Every tool runs in a Docker container with a hard memory limit and no network; CPU is a hard cap in the single-step scripts and a Docker share in the pipeline (a shared host). Each image is pinned by tag or digest in versions.env. The opt-in Cyrius is installed once by setup.sh --cyrius from PyPI, every file checked against its hash, and then runs offline too. No script uploads your data; a few steps download public files during a run.
  • One Nextflow DSL2 pipeline from FASTQ, BAM or VCF to the report, and every step also as a bash script you can run on its own.
  • Optional family analysis of two or more processed relatives (step 38, a pedigree file): a GLnexus joint call, a somalier check that the samples are the people the pedigree says, which allele a child got from each parent, de novo candidates with both parents, and compound heterozygotes in trans or in cis (multi-sample).
  • Optional couple carrier screen for two partners of the pedigree (step 39): the recessive genes where both carry a change (ClinVar hits, deletions, SMN1 copy loss, FMR1 and FXN repeats) with the chance for a child, the X-linked findings, and what the screen does not see (step 39).
  • On the live site, a page per family: the pedigree drawn from the family file, each child's chromosome map, the relationship check, the shared segments and the couple screen (family page).
  • Ends in an HTML report and a MultiQC summary. Alternative callers (GATK, FreeBayes, Strelka2, Octopus, BWA-MEM2, TIDDIT, GRIDSS) are there for benchmarking.

Quick start

Put the reads at $GENOME_DIR/<sample>/fastq/<sample>_R1.fastq.gz and _R2.fastq.gz (a BAM or a VCF works too), then:

export GENOME_DIR=/path/to/your/data SAMPLE=your_name
./scripts/setup.sh $GENOME_DIR          # the GRCh38 reference, ClinVar and the images, once
./scripts/validate-setup.sh $SAMPLE
./scripts/run-all.sh $SAMPLE male       # or female

run-all.sh starts the Nextflow pipeline, so it needs Java 17 or later and the Nextflow release versions.env pins (NEXTFLOW_VERSION) beside Docker and bash 4.4; a rerun reuses every finished step. Full run has the install line and the switches, and each step also runs on its own as a script. Optional databases are in reference setup. Try a small public dataset with the quick test.

Documentation

The full documentation is at https://geiserx.github.io/OwnGenome/, one page per pipeline step included.

Disclaimer

This pipeline is for educational and research purposes only. It is not a medical device and has not been clinically validated. Genomic findings should always be discussed with a qualified healthcare professional before making any medical decisions. The authors are not responsible for any actions taken based on pipeline output.

Your genome data is sensitive personal information. This pipeline runs locally and no script uploads it. The only exceptions are your choice: step 14 prepares files for an imputation server and step 40 a raw-data file for genealogy services, and sending them there is up to you. Keep your data secure. A neutral sample name removes the metadata that names you; it does not anonymise the data, because genotype files (VCF, gVCF, BAM, CRAM) can identify you and your relatives through genealogy databases. Before you share outputs lists what the outputs carry.

License

GPL-3.0-or-later

Releases

Packages

Used by

Contributors

Languages