inheritance models for mendelian diseases
Python
Clone or download
Latest commit d3ae5ec Mar 1, 2018
Permalink
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
MANIFEST.in initial commit Oct 28, 2015
README.md update readme Apr 28, 2016
setup.py python3 and travis Oct 30, 2015

README.md

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

Usage

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).

ToDo

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

Testing

Tests can be run as:

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

Overview

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