def makeCloud(tips, RF_norm_cloud, name, cloud_size, starting_trees): # Make cluster of trees around each starting tree # Get starting trees parsed t1 = starting_trees[0] t2 = starting_trees[1] # Calculate number of NNI moves based on desired normalized RF distance. RF_max = 2 * (tips - 2) NNI_moves_cloud = int((RF_max * RF_norm_cloud) / 2) if NNI_moves_cloud == 0: NNI_moves_cloud = 1 # Make a cloud for each starting tree c_size = int(cloud_size) - 1 print("Making clouds...") # Make clouds cluster1 = readTree.NNI_mult_trees(in_tree=t1, num_out_trees=c_size, num_nni_moves=NNI_moves_cloud, out='list') cluster2 = readTree.NNI_mult_trees(in_tree=t2, num_out_trees=c_size, num_nni_moves=NNI_moves_cloud, out='list') tree_list = [cluster1, cluster2] # Make a nexus file with starting trees and cloud trees readTree.list_to_out(tree_list, '%s_cloud.tree' % name)
############################################################ # Make cluster of trees around each starting tree ############################################################ # Calculate number of NNI moves based on desired normalized RF distance. NNI_moves_cloud = int((RF_max * RF_norm_cloud) / 2) if NNI_moves_cloud == 0: NNI_moves_cloud = 1 # Make a cloud for each starting tree c_size = int(cloud_size) - 1 print("Making clouds...") # Make clouds cluster1 = readTree.NNI_mult_trees(in_tree=t1, num_out_trees=c_size, num_nni_moves=NNI_moves_cloud, out='list') cluster2 = readTree.NNI_mult_trees(in_tree=t2, num_out_trees=c_size, num_nni_moves=NNI_moves_cloud, out='list') # Make a nexus file with starting trees and cloud trees readTree.list_to_out(cluster1, cluster2, '%s_cloud.tree' % name) ############################################################ # Print info to log file ############################################################ print("Calculating stats on trees...") # Calculate emperical distance between two start trees RF_emp = readTree.rf_unweighted(t1, t2, normalized='T')[1] # Calculate average density of each cloud
in_tree_object = readTree.rand_tree(tips=10,brl_avg=1,brl_std=None,verbose='T') ############################## # Make moves ############################## # Print newick string in_tree_object.newick(in_tree_object.root) # Make NNI move new_tree_object = readTree.NNI(orig_tree=in_tree_object,node_choice='exponential') # Make multiple moves on a single tree new_tree_object = readTree.NNI_mult_moves(in_tree=in_tree,num_moves=1,node_choice='exponential',no_dup_start_tree='T') # Make multiple trees, each with one NNI move from starting tree. Output as nexus file. readTree.NNI_mult_trees(in_tree=in_tree,num_out_trees=10,num_nni_moves=2,out_file='outFile2.t',node_choice='random',no_dup_start_tree='T') ############################## # Look at and compare trees ############################## # Print newick string new_tree_object.newick(new_tree_object.root) # View tree in terminal along with newick string readTree.view_phylo(new_tree_object) # Check that all trees have the right number of moves from start tree readTree.compare_tree_file(in_file='outFile1.t',total_trees=11,distance_metric="uRF") # Compare RF distance between two trees.