コード例 #1
0
ファイル: Run.py プロジェクト: airanmehr/bio
def runTheta(param,SNP,meta):
    print 'Computing theta...'
    results=pd.DataFrame([])
    for chrom in meta['#CHROM'].unique():
        start,end=getSlidingWindows(meta, meta[meta['#CHROM']==chrom].CHROMLen.unique()[0], param['windowSize'], param['windowSize']/5)
        for s,e in zip(start,end):
            idx=np.where((meta['#CHROM']==chrom) & (meta.POS>s) & (meta.POS<=e) )[0]
            dfw=pd.DataFrame(Estimate.getAllEstimates(SNP[:,idx]),columns=['parameter','estimate'])
            dfw['#CHROM'],dfw['start'],dfw['end']=chrom,s,e
            results = pd.concat([results, dfw])
    
    
    for chrom in meta['#CHROM'].unique():
        start,end=getSlidingWindows(meta, meta[meta['#CHROM']==chrom].CHROMLen.unique()[0], param['windowSize'], param['windowSize']/5)
        for s,e in zip(start,end):
            idxs=np.where((meta['#CHROM']==chrom) & (meta.POS>s) & (meta.POS<=e) & (meta.TYPE=='SYNONYMOUS_CODING') )[0]
            idxn=np.where((meta['#CHROM']==chrom) & (meta.POS>s) & (meta.POS<=e) & (meta.TYPE=='NON_SYNONYMOUS_CODING') )[0]
            dfw=pd.DataFrame([('PiS',Estimate.pi(SNP[:,idxs])),('PiN',Estimate.pi(SNP[:,idxn]))],columns=['parameter','estimate'])
            dfw['#CHROM'],dfw['start'],dfw['end']=chrom,s,e
            results = pd.concat([results, dfw])
    results.sort(['#CHROM','start'],inplace=True) # Important
    results.to_pickle(param['outpath'] + 'theta.df')