In [21]:
from __future__ import print_function
import numpy as np
np.random.seed(1)
import scipy.stats
import sys
import cProfile
%reload_ext memory_profiler
# dev imports
sys.path.insert(0, '../src')
%reload_ext autoreload
%autoreload 1
%aimport anhima.sim
%aimport anhima.gt
%aimport anhima.ped
In [2]:
# simulate random biallelic genotypes in a cross with 2 parents and 10 progeny
n_samples = 12
n_variants = 10**6
ploidy = 2
af_dist = scipy.stats.beta(a=.9, b=.1)
p_missing = .1
# progeny totally unrelated to parents, should give plenty of mendel errors
genotypes = anhima.sim.simulate_biallelic_genotypes(n_variants, n_samples,
af_dist=af_dist,
p_missing=p_missing,
ploidy=ploidy)
parents = genotypes[:, :2, :]
progeny = genotypes[:, 2:, :]
In [3]:
me = anhima.ped.diploid_mendelian_error(parents, progeny)
me
Out[3]:
In [4]:
%timeit anhima.ped.diploid_mendelian_error(parents, progeny)
In [5]:
%memit anhima.ped.diploid_mendelian_error(parents, progeny)
In [6]:
cProfile.run('anhima.ped.diploid_mendelian_error(parents, progeny)', sort='time')
In [25]:
me2 = anhima.ped.diploid_mendelian_error_multiallelic(parents, progeny)
me2
Out[25]:
In [26]:
np.array_equal(me, me2)
Out[26]:
In [27]:
%timeit anhima.ped.diploid_mendelian_error_multiallelic(parents, progeny)
In [28]:
%memit anhima.ped.diploid_mendelian_error_multiallelic(parents, progeny)
In [29]:
cProfile.run('anhima.ped.diploid_mendelian_error_multiallelic(parents, progeny)', sort='time')
In [ ]: