コード例 #1
0
ファイル: Markov.py プロジェクト: airanmehr/bio
def computePowerSimulations(s=0, n=10,N=1000,save=True,load=False,NumericallyStable=False,takelog=True):
    """
    Args:
        s: selection strength
        n: computes nth power
        N: number of diploid individuals
    Returns:
        T^10
    """
    fname='{}transition/simulation/S{:02.0f}.df'.format(utl.outpath, s * 100,)
    if load:
        if os.path.exists(fname): return pd.read_pickle(fname)
    if NumericallyStable:
        T = Markov.computeTransition(s, N, takeLog=True) #OLD NUMERICALLY STABLE
        T=T.apply(lambda x: x-x.max(),axis=1).astype(np.float128).apply(np.exp).apply(lambda x: x/x.sum(),axis=1)
        Tn=Markov.computePower(T,n)
    else:
        T=Markov.computeTransition(s=s,N=N)
        Tn=Markov.computePower(T,n)
    if takelog: Tn=utl.numbaLog(Tn)
    # if save :   Tn.to_pickle(fname)
    print 'computed power for s:',s
    return Tn