https://github.com/estherjulien/HybridML
Tip revision: 9985e6d930e8b98eb03330a964c2c3fc8788630c authored by estherjulien on 01 August 2022, 11:54:59 UTC
HybridCode deleted from test_data_gen.py
HybridCode deleted from test_data_gen.py
Tip revision: 9985e6d
tree_to_newick.py
import numpy as np
def sub_tree_to_newick(G, root=None):
subgs = []
for child in G[root]:
try:
length = np.round(G.edges[(root, child)]["length"], 3)
except KeyError:
length = np.round(G.edges[(root, child)]["lenght"], 3)
if len(G[child]) > 0:
subgs.append(sub_tree_to_newick(G, root=child) + f":{length}")
else:
subgs.append(str(child) + f":{length}")
return "(" + ','.join(subgs) + ")"
def tree_to_newick_fun(tree_set, net_num, network_gen="LGT", partial=False, tree_info=""):
if partial:
file_name = f"Data/Test/TreeSetsNewick/tree_set_newick{tree_info}_part_{net_num}_{network_gen}.txt"
else:
file_name = f"Data/Test/TreeSetsNewick/tree_set_newick{tree_info}_{net_num}_{network_gen}.txt"
file = open(file_name, "w+")
for tree in tree_set.values():
tree_line = sub_tree_to_newick(tree, 0)
file.write(tree_line)
file.write("\n")
file.close()