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