def distanceTable(frq,method,outfile,met): keyDict = sorted(np.unique(("/".join(frq.keys())).split("/"))); mapDict = dict() if method == 'min': mapDict =minDistance(frq) elif method == 'prod': mapDict =prodDistance(frq,met) pr.printDistanceTableToFile(mapDict,keyDict,outfile)
def computeDistance(frq, method, percentile): if method == 'min': return minDistance(frq) else: return prodDistance(frq)
frq = atbs.findAnchoredDistanceTableOverallp(e,N,anch,taxa_list,taxa_inv, trees,taxa, outpath,debugFlag) if e.label not in TreeList: TreeList[e.label] = dendropy.TreeList() if verbose: print "computing the partial quartet table" if readFromFile: tbsa.findTrueAverageTableAnchoringOnDifferentSidesSmallPolytomiesOverallFromFile(frq,quartTable,anch,taxa_list,N1,N2,am,met) else: tbsa.findTrueAverageTableAnchoringOnDifferentSidesSmallPolytomiesOverall(frq,quartTable,anch,taxa_list,N1,N2,am,met) if verbose: print "The anchor "+str(count)+" out of "+str(numSmallAnchors)+" anchors has been finished!" count += 1 if verbose: print "computing distance table using the method: "+str(am) Frq=atbs.anchoredDistanceFromFrqSmallPolytomies(quartTable,am,met) D=pd.prodDistance(Frq,met) keyDict = sorted(list(np.unique((" ".join(D.keys())).split(" ")))) fileDistance = "distancet-anchList-"+str(i)+".d" ftmp3=tempfile.mkstemp(suffix='.d', prefix=fileDistance, dir=outpath, text=None) pr.printDistanceTableToFile(D,keyDict,ftmp3[1]) os.close(ftmp3[0]) ftmp4=tempfile.mkstemp(suffix='.nwk', prefix=fileDistance+"_fastme_tree.nwk",dir=outpath,text=None) tstt.buildTreeFromDistanceMatrix(ftmp3[1],ftmp4[1],sumProg,sumProgOption) os.close(ftmp4[0]) tree_tmp = dendropy.Tree.get(path=ftmp4[1],schema='newick') if e.label in TreeList: TreeList[e.label].append(tree_tmp) else: TreeList[e.label] = dendropy.TreeList() TreeList[e.label].append(tree_tmp)