inheritance models for mendelian diseases
Clone or download
Latest commit d3ae5ec Mar 1, 2018
Failed to load latest commit information.
inheritance add fix_sample_name to all tokens, move warning out of loop Mar 1, 2018
.gitignore initial commit Oct 28, 2015
.travis.yml fix python3 Jul 14, 2016
LICENSE Initial commit Oct 28, 2015 initial commit Oct 28, 2015 update readme Apr 28, 2016 python3 and travis Oct 30, 2015

inheritance models for mendelian diseases

Build Status

This module is a general-purpose framework for evaluating if a family exihibits, for example, and autosomal dominant pattern. The logic for this was tuned in gemini but we make it available here as a more general purpose library to encourage:

  1. community driven improvements
  2. use outside of gemini
  3. more comprehensive testing

Finding variants that match autosomal dominance in a trio, for example is very simple to find, however, after considering multiple generations, arbitrary family sizes, depth cutoffs, and unknown genotypes and phenotypes to support to real-world datasets it becomes tedious and error-prone.

Supported inheritance tests

  • autosomal dominant
  • autosomal recessive
  • de novo
  • X-linked dominant, recessive, and de novo
  • compound heterozygote
  • mendelian violation


For now, the use is via api only. Users can look at the tests to see how to use. Most functions have a signature like:

 auto_dom(self, min_depth=0, gt_ll=False, strict=True, only_affected=True)

where the arguments enforce a minimum depth, a maximum genotype likelihood, strictness (mostly related to parent-offspring requirements) and wether to allow unaffecteds to have the variant (or be homozygous alt).


  1. add support for X-linked soon.
  2. add a simple example of running on a VCF+PED
  3. code coverage
  4. code documentation


Tests can be run as:

nosetests --with-coverage -x --with-doctest --cover-package inheritance


the generic code is in inheritance/ and a specific implementation that we use in gemini is in inheritance/ To make this available for a new resource, for example to bcftools we would look at the implementation of Filter in inheritance/ and make the generated strings match those expected by bcftools.