本文整理汇总了Python中Bio.Phylo.TreeConstruction.DistanceTreeConstructor类的典型用法代码示例。如果您正苦于以下问题:Python DistanceTreeConstructor类的具体用法?Python DistanceTreeConstructor怎么用?Python DistanceTreeConstructor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DistanceTreeConstructor类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DistanceTreeConstructorTest
class DistanceTreeConstructorTest(unittest.TestCase):
"""Test DistanceTreeConstructor"""
def setUp(self):
self.aln = AlignIO.read(open('TreeConstruction/msa.phy'), 'phylip')
calculator = DistanceCalculator('blosum62')
self.dm = calculator.get_distance(self.aln)
self.constructor = DistanceTreeConstructor(calculator)
def test_upgma(self):
tree = self.constructor.upgma(self.dm)
self.assertTrue(isinstance(tree, BaseTree.Tree))
tree_file = StringIO.StringIO()
Phylo.write(tree, tree_file, 'newick')
ref_tree = open('./TreeConstruction/upgma.tre')
self.assertEqual(tree_file.getvalue(), ref_tree.readline())
ref_tree.close()
def test_nj(self):
tree = self.constructor.nj(self.dm)
self.assertTrue(isinstance(tree, BaseTree.Tree))
tree_file = StringIO.StringIO()
Phylo.write(tree, tree_file, 'newick')
ref_tree = open('./TreeConstruction/nj.tre')
self.assertEqual(tree_file.getvalue(), ref_tree.readline())
ref_tree.close()
def test_built_tree(self):
tree = self.constructor.build_tree(self.aln)
self.assertTrue(isinstance(tree, BaseTree.Tree))
tree_file = StringIO.StringIO()
Phylo.write(tree, tree_file, 'newick')
ref_tree = open('./TreeConstruction/nj.tre')
self.assertEqual(tree_file.getvalue(), ref_tree.readline())
ref_tree.close()
示例2: distance_matrix
def distance_matrix(cls, cluster_list):
print cluster_list
dists = Distance.objects.filter(rep_accnum1__in=cluster_list, rep_accnum2__in=cluster_list)
distance_pairs = {g.rep_accnum1 + '_' + g.rep_accnum2: g.distance for g in dists.all()}
matrix = []
for i in range(0,len(cluster_list)):
matrix_iteration = []
for j in range(0,i+1):
if i == j:
matrix_iteration.append(0)
elif cluster_list[i] + '_' + cluster_list[j] in distance_pairs:
matrix_iteration.append(distance_pairs[cluster_list[i] + '_' + cluster_list[j]])
elif cluster_list[j] + '_' + cluster_list[i] in distance_pairs:
matrix_iteration.append(distance_pairs[cluster_list[j] + '_' + cluster_list[i]])
else:
raise("Error, can't find pair!")
matrix.append(matrix_iteration)
#print matrix_iteration
cluster_list = [s.encode('ascii', 'ignore') for s in cluster_list]
matrix_obj = _DistanceMatrix(names=cluster_list, matrix=matrix)
constructor = DistanceTreeConstructor()
tree = constructor.nj(matrix_obj)
tree.ladderize()
#Phylo.draw_ascii(tree)
output = StringIO.StringIO()
Phylo.write(tree, output, 'newick')
tree_str = output.getvalue()
#print tree_str
return tree_str
示例3: consensus
def consensus(msa):
alignment = MultipleSeqAlignment(msa)
calculator = DistanceCalculator('identity')
dm = calculator.get_distance(alignment)
constructor = DistanceTreeConstructor(calculator, 'nj')
tree = constructor.build_tree(alignment)
print tree
示例4: measure_D_net
def measure_D_net(G,qmod,qcon):
D_net_dic = {}
D_net_ret = {}
D_net = []
for u in G: D_net_dic[u] = {}
for u in sorted(G):
key1 = "Taxon" + str(u)
tmp_row = []
for v in sorted(G):
key2 = "Taxon" + str(v)
if u < v: continue
D_net_dic[u][v] = 1.0 - G.dmc_likelihood(u,v,qmod,qcon)
tmp_row.append(D_net_dic[u][v])
print D_net_dic[u][v],
D_net.append(tmp_row)
print '\n'
names = []
for u in G: names.append('Taxon'+str(u))
print names
print D_net
D_net_final = _DistanceMatrix(names,D_net)
#print D_net_final.names
constructor = DistanceTreeConstructor()
tree_dmc = constructor.upgma(D_net_final)
#print tree_dmc
Phylo.write(tree_dmc,'ph_dmc.nre','newick')
return D_net_final
示例5: DistanceTreeConstructorTest
class DistanceTreeConstructorTest(unittest.TestCase):
"""Test DistanceTreeConstructor"""
def setUp(self):
self.aln = AlignIO.read('TreeConstruction/msa.phy', 'phylip')
calculator = DistanceCalculator('blosum62')
self.dm = calculator.get_distance(self.aln)
self.constructor = DistanceTreeConstructor(calculator)
def test_upgma(self):
tree = self.constructor.upgma(self.dm)
self.assertTrue(isinstance(tree, BaseTree.Tree))
# tree_file = StringIO()
# Phylo.write(tree, tree_file, 'newick')
ref_tree = Phylo.read('./TreeConstruction/upgma.tre', 'newick')
self.assertTrue(Consensus._equal_topology(tree, ref_tree))
# ref_tree.close()
def test_nj(self):
tree = self.constructor.nj(self.dm)
self.assertTrue(isinstance(tree, BaseTree.Tree))
# tree_file = StringIO()
# Phylo.write(tree, tree_file, 'newick')
ref_tree = Phylo.read('./TreeConstruction/nj.tre', 'newick')
self.assertTrue(Consensus._equal_topology(tree, ref_tree))
# ref_tree.close()
def test_built_tree(self):
tree = self.constructor.build_tree(self.aln)
self.assertTrue(isinstance(tree, BaseTree.Tree))
# tree_file = StringIO()
# Phylo.write(tree, tree_file, 'newick')
ref_tree = Phylo.read('./TreeConstruction/nj.tre', 'newick')
self.assertTrue(Consensus._equal_topology(tree, ref_tree))
示例6: build_nj_tree
def build_nj_tree(self):
dm = self.distance_matrix()
constructor = DistanceTreeConstructor()
tree = constructor.nj(dm)
treeio = StringIO.StringIO()
Phylo.write(tree, treeio, 'newick')
treestr = treeio.getvalue()
treeio.close()
return treestr
示例7: tree
def tree(self):
"""Returns a phylogenetic tree constructed from the given alignment."""
calculator = DistanceCalculator(self._distance_model)
constructor = DistanceTreeConstructor(calculator, self._tree_algorithm)
tree = constructor.build_tree(self.alignment)
# Make the tree rooted.
tree.root_at_midpoint()
tree.root.name = 'Root'
return tree
示例8: D_seq_matrix
def D_seq_matrix(fasta_file):
aln = AlignIO.read(fasta_file, 'fasta')
calculator = DistanceCalculator('identity')
dm = calculator.get_distance(aln)
constructor = DistanceTreeConstructor()
tree_seq = constructor.upgma(dm)
#print tree_dmc
Phylo.write(tree_seq,'ph_seq.nre','newick')
print dm.names
return dm
示例9: phyloxml_from_msa
def phyloxml_from_msa(msa, phyloxml):
from Bio import AlignIO
from Bio.Phylo.TreeConstruction import DistanceCalculator
from Bio.Phylo.TreeConstruction import DistanceTreeConstructor
from Bio import Phylo
ms_alignment = AlignIO.read(msa, "fasta")
calculator = DistanceCalculator("ident")
dist_matrix = calculator.get_distance(ms_alignment)
constructor = DistanceTreeConstructor()
tree = constructor.upgma(dist_matrix)
Phylo.write(tree, phyloxml, "phyloxml")
示例10: construct_tree
def construct_tree(X_2d, acc, title):
acc = list(acc)
data = pairwise_distances(X_2d).astype('float')
data[np.isnan(data)] = 0
data_list = []
for i in range(data.shape[0]):
#for j in range(i, data.shape[0]):
data_list.append([data[i, j] for j in range(0, i+1)])
data = data_list
dm = _DistanceMatrix(acc, matrix=data)
constructor = DistanceTreeConstructor()
tree = constructor.nj(dm)
Phylo.write(tree, title + ".nwk", 'newick')
示例11: dendroNJ
def dendroNJ(inFile, model='identity', bootstrap=True, replicate=100):
"""
Given an alingment in fasta format, the function returns a Neighbor Joining tree in newick format.
Module required:
- AlignIO (from Bio)
- DistanceCalculator (from Bio.Phylo.TreeConstruction)
- DistanceTreeConstructor (from Bio.Phylo.TreeConstruction)
- bootstrap_consensus (from Bio.Phylo.Consensus)
Usage: <inFile> <model (default = 'identity')> <bootstrap (default = True)>
<replicate (default = 100)>
"""
aln = AlignIO.read(inFile, 'fasta') # read the alignment
constructor = DistanceTreeConstructor(DistanceCalculator(model), 'nj')
if bootstrap:
tree = bootstrap_consensus(aln, int(replicate), constructor, majority_consensus)
else:
tree = constructor.build_tree(aln)
return tree.format('newick')
示例12: build_tree
def build_tree(dist_matrix, names_list, clust):
tree = None
if clust == 'nj':
# print(dist_matrix)
dm = DistanceMatrix(dist_matrix, names_list)
tree_scikit = nj(dm,result_constructor=str)
tree = Tree(tree_scikit)
elif clust == 'upgma':
dm = _DistanceMatrix(names=names_list, matrix=condense_matrix(dist_matrix))
constructor = DistanceTreeConstructor()
tree_biopython = constructor.upgma(dm)
# remove InnerNode names
for i in tree_biopython.get_nonterminals():
i.name = None
output = StringIO()
Phylo.write(tree_biopython,output, "newick")
tree = Tree(output.getvalue())
else:
print("Unknown tree clustering method ! Aborting")
sys.exit()
return tree
示例13: D_F_matrix
def D_F_matrix(D_Seq,D_net,final_tree):
names_Seq = D_Seq.names
names_Net = D_net.names
D_F = []
D_F_names = []
for key1 in names_Net:
i = names_Net.index(key1)
#print key1
temp_row = []
for j in range(0,i+1):
key2 = names_Net[j]
#print key2,
if key1 in names_Net and key2 in names_Seq:
if not key1 in D_F_names:
D_F_names.append(key1)
i1 = names_Net.index(key1)
j2 = names_Net.index(key2)
new_val = (0.5*D_net[key1,key2] + 0.5*D_Seq[key1,key2])
#print new_val,
temp_row.append(new_val)
#print temp_row
D_F.append(temp_row)
print D_F
D_F_final = _DistanceMatrix(D_F_names,D_F)
constructor = DistanceTreeConstructor()
tree_D_F = constructor.upgma(D_F_final)
#print tree_dmc
Phylo.write(tree_D_F,final_tree,'newick')
return D_F_final
示例14: D_F_matrix
def D_F_matrix(D_Seq,D_net,final_tree, alpha):
names_Seq = D_Seq.names
names_Net = D_net.names
D_F = []
D_F_names = []
for key1 in names_Net:
i = names_Net.index(key1)
#print key1
temp_row = []
for j in range(0,i+1):
key2 = names_Net[j]
#print key2,
if key1 in names_Net and key2 in names_Seq:
if not key1 in D_F_names:
D_F_names.append(key1)
i1 = names_Net.index(key1)
j2 = names_Net.index(key2) # should be 1-alpha * D_net and alpha * D_seq
new_val = ((1-alpha) * D_net[key1,key2]) + (alpha * D_Seq[key1,key2]) # alpha can be set to any value (between 0 and 1)
#print new_val, # we can change alpha to choose how much of D_Seq and D_net we want to use
temp_row.append(new_val)
#print temp_row
D_F.append(temp_row)
print D_F
D_F_final = _DistanceMatrix(D_F_names,D_F)
constructor = DistanceTreeConstructor()
tree_D_F = constructor.upgma(D_F_final)
#print tree_dmc
Phylo.write(tree_D_F,final_tree,'newick')
return D_F_final
示例15: get_dn_ds_tree
def get_dn_ds_tree(self, dn_ds_method="NG86", tree_method="UPGMA"):
"""Method for constructing dn tree and ds tree.
Argument:
- dn_ds_method - Available methods include NG86, LWL85, YN00
and ML.
- tree_method - Available methods include UPGMA and NJ.
"""
from Bio.Phylo.TreeConstruction import DistanceTreeConstructor
dn_dm, ds_dm = self.get_dn_ds_matrix(method=dn_ds_method)
dn_constructor = DistanceTreeConstructor()
ds_constructor = DistanceTreeConstructor()
if tree_method == "UPGMA":
dn_tree = dn_constructor.upgma(dn_dm)
ds_tree = ds_constructor.upgma(ds_dm)
elif tree_method == "NJ":
dn_tree = dn_constructor.nj(dn_dm)
ds_tree = ds_constructor.nj(ds_dm)
else:
raise RuntimeError("Unkown tree method ({0}). Only NJ and UPGMA "
"are accepted.".format(tree_method))
return dn_tree, ds_tree