From a712b097af0eaf5888d7154d004b27fcbad1e229 Mon Sep 17 00:00:00 2001 From: andrewjpage Date: Thu, 1 Nov 2012 16:56:43 +0000 Subject: [PATCH 1/7] untested... prefiltering step to remove taxa with >25% missing data. output SNPs to a tab file, something like: Stats on each branch individually, including internal nodes. Node numbers consistent in the tab file with the internal branch names --- run_gubbins.py | 26 ++++++++++++++++++++++++++ src/Newickform.c | 8 +++++++- src/block_tab_file.c | 21 +++++++++++++++++++-- src/block_tab_file.h | 4 ++-- src/branch_sequences.c | 23 ++++++++++++++--------- src/branch_sequences.h | 2 +- src/snp_searching.c | 4 +++- src/snp_searching.h | 2 +- 8 files changed, 73 insertions(+), 17 deletions(-) diff --git a/run_gubbins.py b/run_gubbins.py index e3630ce4..5e7be8f7 100755 --- a/run_gubbins.py +++ b/run_gubbins.py @@ -34,6 +34,7 @@ import dendropy from Bio import SeqIO from Bio import AlignIO +from Bio.Align import MultipleSeqAlignment from cStringIO import StringIO import shutil @@ -237,6 +238,27 @@ def get_sequence_names_from_alignment(filename): sequence_names.append(record.id) handle.close() return sequence_names + + +# reparsing a fasta file splits the lines which makes fastml work +def filter_out_alignments_with_too_much_missing_data(input_filename, output_filename, filter_percentage): + input_handle = open(input_filename, "rU") + output_handle = open(output_filename, "w+") + alignments = AlignIO.parse(input_handle, "fasta") + output_alignments = [] + for alignment in alignments: + number_of_gaps = 0 + for record in alignment: + number_of_gaps += record.seq.count('n') + number_of_gaps += record.seq.count('N') + number_of_gaps += record.seq.count('-') + if((number_of_gaps*100/alignment.get_alignment_length()) > filter_percentage): + output_alignments.append(alignment) + + AlignIO.write(output_alignments, output_handle, "fasta") + output_handle.close() + input_handle.close() + return # reparsing a fasta file splits the lines which makes fastml work def reconvert_fasta_file(input_filename, output_filename): @@ -296,6 +318,7 @@ def is_exe(fpath): parser.add_argument('--tree_builder', '-t', help='Application to use for tree building (raxml, fasttree, hybrid), default RAxML', default = "raxml") parser.add_argument('--iterations', '-i', help='Maximum No. of iterations, default is 5', type=int, default = 5) parser.add_argument('--min_snps', '-m', help='Min SNPs to identify a recombination block, default is 3', type=int, default = 3) +parser.add_argument('--filter_percentage','-f', help='Filter out taxa with more than this percentage of gaps, default is 25', type=int, default = 25) args = parser.parse_args() # check that all the external executable dependancies are available @@ -331,6 +354,9 @@ def is_exe(fpath): starting_base_filename = base_filename reconvert_fasta_file(starting_base_filename+".gaps.snp_sites.aln",starting_base_filename+".start") +filter_out_alignments_with_too_much_missing_data(starting_base_filename+".start", starting_base_filename+".start.filtered", args.filter_percentage) +os.remove(starting_base_filename+".start") +os.rename(starting_base_filename+".start.filtered", starting_base_filename+".start") # Perform pairwise comparison if there are only 2 sequences number_of_sequences = number_of_sequences_in_alignment(args.alignment_filename) diff --git a/src/Newickform.c b/src/Newickform.c index ed9f7ada..1cab9465 100644 --- a/src/Newickform.c +++ b/src/Newickform.c @@ -74,6 +74,12 @@ newick_node* build_newick_tree(char * filename, FILE *vcf_file_pointer,int * snp strcpy(block_file_name, filename); block_file_pointer = fopen(strcat(block_file_name,".tab"), "w"); + // output tab file + FILE * branch_snps_file_pointer; + char branch_snps_file_name[MAX_FILENAME_SIZE]; + strcpy(branch_snps_file_name, filename); + branch_snps_file_pointer = fopen(strcat(branch_snps_file_name,".branch_snps.tab"), "w"); + // output gff file FILE * gff_file_pointer; char gff_file_name[MAX_FILENAME_SIZE]; @@ -85,7 +91,7 @@ newick_node* build_newick_tree(char * filename, FILE *vcf_file_pointer,int * snp carry_unambiguous_gaps_up_tree(root); - root_sequence = generate_branch_sequences(root, vcf_file_pointer, snp_locations, number_of_snps, column_names, number_of_columns,root_sequence, length_of_original_genome, block_file_pointer,gff_file_pointer,min_snps); + root_sequence = generate_branch_sequences(root, vcf_file_pointer, snp_locations, number_of_snps, column_names, number_of_columns,root_sequence, length_of_original_genome, block_file_pointer,gff_file_pointer,min_snps,branch_snps_file_pointer); int * parent_recombinations; fill_in_recombinations_with_gaps(root, parent_recombinations, 0, 0,0,root->block_coordinates,length_of_original_genome,snp_locations); diff --git a/src/block_tab_file.c b/src/block_tab_file.c index 6cdac633..8b549e9e 100644 --- a/src/block_tab_file.c +++ b/src/block_tab_file.c @@ -22,12 +22,29 @@ #include #include "block_tab_file.h" -void print_block_details(FILE * block_file_pointer, int start_coordinate, int end_coordinate, int number_of_snps, int current_node_id, int parent_node_id, char * taxon_names) +void print_block_details(FILE * block_file_pointer, int start_coordinate, int end_coordinate, int number_of_snps, char * current_node_id, char * parent_node_id, char * taxon_names) { fprintf(block_file_pointer, "FT misc_feature %d..%d\n", start_coordinate+1, end_coordinate+1); - fprintf(block_file_pointer, "FT /node=\"%d->%d\"\n",parent_node_id,current_node_id); + fprintf(block_file_pointer, "FT /node=\"%s->%s\"\n",parent_node_id,current_node_id); fprintf(block_file_pointer, "FT /colour=2\n"); fprintf(block_file_pointer, "FT /taxa=\"%s\"\n",taxon_names); fprintf(block_file_pointer, "FT /SNP_count=%d\n",number_of_snps); fflush(block_file_pointer); } + + +// output file pointer, node name from, node name to, coordinates of branch snps, number of branch snps, branch snp sequence, branch snp ancestor sequence +void print_branch_snp_details(FILE * branch_snps_file_pointer, char * current_node_id, char * parent_node_id, int * branches_snp_sites, int number_of_branch_snps, char * branch_snp_sequence, char * branch_snp_ancestor_sequence,char * taxon_names) +{ + int i = 0; + for(i=0; i< number_of_branch_snps; i++) + { + fprintf(branch_snps_file_pointer, "FT misc_feature %d..%d\n", branches_snp_sites[i]+1, branches_snp_sites[i]+1); + fprintf(branch_snps_file_pointer, "FT /node=\"%s->%s\"\n",parent_node_id,current_node_id); + fprintf(branch_snps_file_pointer, "FT /colour=4\n"); + fprintf(branch_snps_file_pointer, "FT /taxa=\"%s\"\n",taxon_names); + fprintf(branch_snps_file_pointer, "FT /parent_base=%s\n",branch_snp_sequence[i]); + fprintf(branch_snps_file_pointer, "FT /branch_base=%s\n",branch_snp_ancestor_sequence[i]); + fflush(branch_snps_file_pointer); + } +} diff --git a/src/block_tab_file.h b/src/block_tab_file.h index c4516f78..e5e09032 100644 --- a/src/block_tab_file.h +++ b/src/block_tab_file.h @@ -20,6 +20,6 @@ #ifndef _BLOCK_TAB_FILE_H_ #define _BLOCK_TAB_FILE_H_ -void print_block_details(FILE * block_file_pointer, int start_coordinate, int end_coordinate, int number_of_snps, int current_node_id, int parent_node_id, char * taxon_names); - +void print_block_details(FILE * block_file_pointer, int start_coordinate, int end_coordinate, int number_of_snps, char * current_node_id, char * parent_node_id, char * taxon_names); +void print_branch_snp_details(FILE * branch_snps_file_pointer, char * current_node_id, char * parent_node_id, int * branches_snp_sites, int number_of_branch_snps, char * branch_snp_sequence, char * branch_snp_ancestor_sequence,char * taxon_names); #endif \ No newline at end of file diff --git a/src/branch_sequences.c b/src/branch_sequences.c index e9f4b98d..66fa6503 100644 --- a/src/branch_sequences.c +++ b/src/branch_sequences.c @@ -88,9 +88,9 @@ void fill_in_recombinations_with_gaps(newick_node *root, int * parent_recombinat int sequence_index; sequence_index = find_sequence_index_from_sample_name(root->taxon); - set_number_of_recombinations_for_sample(root->taxon,num_current_recombinations); - set_number_of_snps_for_sample(root->taxon,(current_total_snps + root->number_of_snps)); - set_number_of_blocks_for_sample(root->taxon,(num_blocks + root->number_of_blocks)); + set_number_of_recombinations_for_sample(root->taxon,root->num_recombinations); + set_number_of_snps_for_sample(root->taxon,root->number_of_snps); + set_number_of_blocks_for_sample(root->taxon, root->number_of_blocks); int ** merged_block_coordinates; merged_block_coordinates = (int **) malloc(3*sizeof(int *)); @@ -102,7 +102,7 @@ void fill_in_recombinations_with_gaps(newick_node *root, int * parent_recombinat char * child_sequence = (char *) malloc((length_of_original_genome +1)*sizeof(char)); get_sequence_for_sample_name(child_sequence, root->taxon); - set_number_of_bases_in_recombinations(root->taxon, calculate_number_of_bases_in_recombations_excluding_gaps(merged_block_coordinates, (num_blocks + root->number_of_blocks), child_sequence, snp_locations,current_total_snps)); + set_number_of_bases_in_recombinations(root->taxon, calculate_number_of_bases_in_recombations_excluding_gaps(root->block_coordinates, root->number_of_blocks, child_sequence, snp_locations,current_total_snps)); for(i = 0; i < num_current_recombinations; i++) { @@ -219,7 +219,7 @@ void carry_unambiguous_gaps_up_tree(newick_node *root) } } -char *generate_branch_sequences(newick_node *root, FILE *vcf_file_pointer,int * snp_locations, int number_of_snps, char** column_names, int number_of_columns, char * leaf_sequence, int length_of_original_genome, FILE * block_file_pointer, FILE * gff_file_pointer,int min_snps) +char *generate_branch_sequences(newick_node *root, FILE *vcf_file_pointer,int * snp_locations, int number_of_snps, char** column_names, int number_of_columns, char * leaf_sequence, int length_of_original_genome, FILE * block_file_pointer, FILE * gff_file_pointer,int min_snps,FILE * branch_snps_file_pointer) { newick_child *child; int child_counter = 0; @@ -258,7 +258,7 @@ char *generate_branch_sequences(newick_node *root, FILE *vcf_file_pointer,int * while (child != NULL) { // recursion - child_sequences[child_counter] = generate_branch_sequences(child->node, vcf_file_pointer, snp_locations, number_of_snps, column_names, number_of_columns, child_sequences[child_counter],length_of_original_genome, block_file_pointer,gff_file_pointer,min_snps); + child_sequences[child_counter] = generate_branch_sequences(child->node, vcf_file_pointer, snp_locations, number_of_snps, column_names, number_of_columns, child_sequences[child_counter],length_of_original_genome, block_file_pointer,gff_file_pointer,min_snps,branch_snps_file_pointer); child_nodes[child_counter] = child->node; strcat(root->taxon_names, " "); strcat(root->taxon_names, child_nodes[child_counter]->taxon_names); @@ -283,10 +283,15 @@ char *generate_branch_sequences(newick_node *root, FILE *vcf_file_pointer,int * { branches_snp_sites[current_branch] = (int *) malloc((number_of_snps +1)*sizeof(int)); char * branch_snp_sequence; + char * branch_snp_ancestor_sequence; branch_snp_sequence = (char *) malloc((number_of_snps +1)*sizeof(char)); + branch_snp_ancestor_sequence = (char *) malloc((number_of_snps +1)*sizeof(char)); branch_genome_size = calculate_size_of_genome_without_gaps(child_sequences[current_branch], 0,number_of_snps, length_of_original_genome); - number_of_branch_snps = calculate_number_of_snps_excluding_gaps(leaf_sequence, child_sequences[current_branch], number_of_snps, branches_snp_sites[current_branch], snp_locations,branch_snp_sequence); + number_of_branch_snps = calculate_number_of_snps_excluding_gaps(leaf_sequence, child_sequences[current_branch], number_of_snps, branches_snp_sites[current_branch], snp_locations,branch_snp_sequence,branch_snp_ancestor_sequence); + + print_branch_snp_details(branch_snps_file_pointer, root->taxon, child_nodes[current_branch]->taxon, branches_snp_sites[current_branch], number_of_branch_snps, branch_snp_sequence, branch_snp_ancestor_sequence,root->taxon_names); + get_likelihood_for_windows(child_sequences[current_branch], number_of_snps, branches_snp_sites[current_branch], branch_genome_size, number_of_branch_snps,snp_locations, child_nodes[current_branch], block_file_pointer, root, branch_snp_sequence,gff_file_pointer,min_snps); } @@ -525,8 +530,8 @@ int flag_smallest_log_likelihood_recombinations(int ** candidate_blocks, int num //current_node->recombinations = realloc(current_node->recombinations, number_of_recombinations*sizeof(int)); current_node->num_recombinations = number_of_recombinations; - print_block_details(block_file_pointer, candidate_blocks[0][smallest_index], candidate_blocks[1][smallest_index], number_of_recombinations_in_window, current_node->current_node_id, root->current_node_id, current_node->taxon_names); - print_gff_line(gff_file_pointer, candidate_blocks[0][smallest_index], candidate_blocks[1][smallest_index], number_of_recombinations_in_window, current_node->current_node_id, root->current_node_id, current_node->taxon_names); + print_block_details(block_file_pointer, candidate_blocks[0][smallest_index], candidate_blocks[1][smallest_index], number_of_recombinations_in_window, current_node->taxon, root->taxon, current_node->taxon_names); + print_gff_line(gff_file_pointer, candidate_blocks[0][smallest_index], candidate_blocks[1][smallest_index], number_of_recombinations_in_window, current_node->taxon, root->taxon, current_node->taxon_names); current_node->number_of_blocks = current_node->number_of_blocks + 1; current_node->block_coordinates[0] = realloc((int *)current_node->block_coordinates[0], ((int)current_node->number_of_blocks +1)*sizeof(int)); diff --git a/src/branch_sequences.h b/src/branch_sequences.h index 4b62ec76..6cee031f 100644 --- a/src/branch_sequences.h +++ b/src/branch_sequences.h @@ -21,7 +21,7 @@ #define _BRANCH_SEQUENCES_H_ #include "seqUtil.h" #include "Newickform.h" -char *generate_branch_sequences(newick_node *root, FILE *vcf_file_pointer,int * snp_locations, int number_of_snps, char** column_names, int number_of_columns, char * leaf_sequence, int length_of_original_genome, FILE * block_file_pointer, FILE * gff_file_pointer,int min_snps); +char *generate_branch_sequences(newick_node *root, FILE *vcf_file_pointer,int * snp_locations, int number_of_snps, char** column_names, int number_of_columns, char * leaf_sequence, int length_of_original_genome, FILE * block_file_pointer, FILE * gff_file_pointer,int min_snps, FILE * branch_snps_file_pointer); void identify_recombinations(int number_of_branch_snps, int * branches_snp_sites,int length_of_original_genome); double calculate_snp_density(int * branches_snp_sites, int number_of_branch_snps, int index); void get_likelihood_for_windows(char * child_sequence, int length_of_sequence, int * snp_site_coords, int branch_genome_size, int number_of_branch_snps, int * snp_locations, newick_node * current_node, FILE * block_file_pointer, newick_node *root, char * branch_snp_sequence, FILE * gff_file_pointer,int min_snps); diff --git a/src/snp_searching.c b/src/snp_searching.c index daf3fd8d..80dbded6 100644 --- a/src/snp_searching.c +++ b/src/snp_searching.c @@ -191,7 +191,7 @@ int calculate_size_of_genome_without_gaps(char * child_sequence, int start_index return length_of_original_genome; } -int calculate_number_of_snps_excluding_gaps(char * ancestor_sequence, char * child_sequence, int child_sequence_size, int * branch_snp_coords, int * snp_locations,char * branch_snp_sequence) +int calculate_number_of_snps_excluding_gaps(char * ancestor_sequence, char * child_sequence, int child_sequence_size, int * branch_snp_coords, int * snp_locations,char * branch_snp_sequence, char * branch_snp_ancestor_sequence) { int i ; int number_of_branch_snp_sites = 0; @@ -208,11 +208,13 @@ int calculate_number_of_snps_excluding_gaps(char * ancestor_sequence, char * chi { branch_snp_coords[number_of_branch_snp_sites] = snp_locations[i]; branch_snp_sequence[number_of_branch_snp_sites] = child_sequence[i]; + branch_snp_ancestor_sequence[number_of_branch_snp_sites] = ancestor_sequence[i]; number_of_branch_snp_sites++; } } branch_snp_coords = realloc(branch_snp_coords, (number_of_branch_snp_sites+1)*sizeof(int)); branch_snp_sequence[number_of_branch_snp_sites] = '\0'; + branch_snp_ancestor_sequence[number_of_branch_snp_sites] = '\0'; return number_of_branch_snp_sites; } diff --git a/src/snp_searching.h b/src/snp_searching.h index 381e0cca..f2635233 100644 --- a/src/snp_searching.h +++ b/src/snp_searching.h @@ -26,7 +26,7 @@ int get_window_end_coordinates_excluding_gaps(int window_start_coordinate, int w int find_number_of_snps_in_block(int window_start_coordinate, int window_end_coordinate, int * snp_locations, char * child_sequence, int number_of_snps); int calculate_block_size_without_gaps(char * child_sequence, int * snp_locations, int starting_coordinate, int ending_coordinate, int length_of_original_genome); int calculate_size_of_genome_without_gaps(char * child_sequence, int start_index, int length_of_sequence, int length_of_original_genome); -int calculate_number_of_snps_excluding_gaps(char * ancestor_sequence, char * child_sequence, int child_sequence_size, int * branch_snp_coords, int * snp_locations, char * branch_snp_sequence); +int calculate_number_of_snps_excluding_gaps(char * ancestor_sequence, char * child_sequence, int child_sequence_size, int * branch_snp_coords, int * snp_locations, char * branch_snp_sequence, char * branch_snp_ancestor_sequence); int flag_recombinations_in_window(int window_start_coordinate, int window_end_coordinate, int number_of_snps, int * branch_snp_sites, int * recombinations, int number_of_recombinations,int * snp_locations, int total_num_snps); int find_matching_coordinate_index(int window_start_coordinate, int * snp_sites, int number_of_snps, int starting_index); #endif \ No newline at end of file From 08f4e5a304c74738d9a486f17b237aa903c04535 Mon Sep 17 00:00:00 2001 From: andrewjpage Date: Fri, 2 Nov 2012 09:57:45 +0000 Subject: [PATCH 2/7] check snp tab file output --- src/Newickform.c | 1 - src/block_tab_file.c | 7 +- tests/check_gubbins.c | 6 + tests/check_snp_searching.c | 21 +- tests/check_snp_sites.c | 3 + ...ecombinations.tre.branch_snps.expected.tab | 1452 +++++++++++++++++ ...ecombinations.tre.branch_snps.expected.tab | 54 + ...recombination.tre.branch_snps.expected.tab | 912 +++++++++++ 8 files changed, 2446 insertions(+), 10 deletions(-) create mode 100644 tests/data/multiple_recombinations.tre.branch_snps.expected.tab create mode 100644 tests/data/no_recombinations.tre.branch_snps.expected.tab create mode 100644 tests/data/one_recombination.tre.branch_snps.expected.tab diff --git a/src/Newickform.c b/src/Newickform.c index 1cab9465..8e97a31e 100644 --- a/src/Newickform.c +++ b/src/Newickform.c @@ -90,7 +90,6 @@ newick_node* build_newick_tree(char * filename, FILE *vcf_file_pointer,int * snp char * root_sequence; carry_unambiguous_gaps_up_tree(root); - root_sequence = generate_branch_sequences(root, vcf_file_pointer, snp_locations, number_of_snps, column_names, number_of_columns,root_sequence, length_of_original_genome, block_file_pointer,gff_file_pointer,min_snps,branch_snps_file_pointer); int * parent_recombinations; fill_in_recombinations_with_gaps(root, parent_recombinations, 0, 0,0,root->block_coordinates,length_of_original_genome,snp_locations); diff --git a/src/block_tab_file.c b/src/block_tab_file.c index 8b549e9e..a5ea31ad 100644 --- a/src/block_tab_file.c +++ b/src/block_tab_file.c @@ -33,18 +33,17 @@ void print_block_details(FILE * block_file_pointer, int start_coordinate, int en } -// output file pointer, node name from, node name to, coordinates of branch snps, number of branch snps, branch snp sequence, branch snp ancestor sequence void print_branch_snp_details(FILE * branch_snps_file_pointer, char * current_node_id, char * parent_node_id, int * branches_snp_sites, int number_of_branch_snps, char * branch_snp_sequence, char * branch_snp_ancestor_sequence,char * taxon_names) { int i = 0; for(i=0; i< number_of_branch_snps; i++) { - fprintf(branch_snps_file_pointer, "FT misc_feature %d..%d\n", branches_snp_sites[i]+1, branches_snp_sites[i]+1); + fprintf(branch_snps_file_pointer, "FT variation %d\n", branches_snp_sites[i]+1); fprintf(branch_snps_file_pointer, "FT /node=\"%s->%s\"\n",parent_node_id,current_node_id); fprintf(branch_snps_file_pointer, "FT /colour=4\n"); fprintf(branch_snps_file_pointer, "FT /taxa=\"%s\"\n",taxon_names); - fprintf(branch_snps_file_pointer, "FT /parent_base=%s\n",branch_snp_sequence[i]); - fprintf(branch_snps_file_pointer, "FT /branch_base=%s\n",branch_snp_ancestor_sequence[i]); + fprintf(branch_snps_file_pointer, "FT /parent_base=\"%c\"\n",branch_snp_sequence[i]); + fprintf(branch_snps_file_pointer, "FT /replace=\"%c\"\n",branch_snp_ancestor_sequence[i]); fflush(branch_snps_file_pointer); } } diff --git a/tests/check_gubbins.c b/tests/check_gubbins.c index 62505859..37ecf61a 100644 --- a/tests/check_gubbins.c +++ b/tests/check_gubbins.c @@ -20,6 +20,7 @@ START_TEST (check_gubbins_no_recombinations) fail_unless(number_of_recombinations_in_file("../tests/data/no_recombinations.tre.tab") == 0); fail_unless(compare_files("../tests/data/no_recombinations.tre","../tests/data/no_recombinations.expected.tre") == 1); + fail_unless(compare_files("../tests/data/no_recombinations.tre.branch_snps.tab","../tests/data/no_recombinations.tre.branch_snps.expected.tab") == 1); remove("../tests/data/no_recombinations.tre"); remove("../tests/data/no_recombinations.tre.tab"); @@ -28,6 +29,7 @@ START_TEST (check_gubbins_no_recombinations) remove("../tests/data/no_recombinations.tre.stats"); remove("../tests/data/no_recombinations.tre.gff"); remove("../tests/data/no_recombinations.tre.snp_sites.aln"); + remove("../tests/data/no_recombinations.tre.branch_snps.tab"); } END_TEST @@ -46,6 +48,7 @@ START_TEST (check_gubbins_one_recombination) fail_unless(number_of_recombinations_in_file("../tests/data/one_recombination.tre.tab") == 1); fail_unless(compare_files("../tests/data/one_recombination.tre.vcf","../tests/data/one_recombination.expected.vcf") == 1); fail_unless(compare_files("../tests/data/one_recombination.tre.stats","../tests/data/one_recombination.expected.stats") == 1); + fail_unless(compare_files("../tests/data/one_recombination.tre.branch_snps.tab","../tests/data/one_recombination.tre.branch_snps.expected.tab") == 1); remove("../tests/data/one_recombination.tre"); remove("../tests/data/one_recombination.tre.tab"); @@ -54,6 +57,7 @@ START_TEST (check_gubbins_one_recombination) remove("../tests/data/one_recombination.tre.stats"); remove("../tests/data/one_recombination.tre.gff"); remove("../tests/data/one_recombination.tre.snp_sites.aln"); + remove("../tests/data/one_recombination.tre.branch_snps.tab"); } END_TEST @@ -71,6 +75,7 @@ START_TEST (check_gubbins_multiple_recombinations) fail_unless(number_of_recombinations_in_file("../tests/data/multiple_recombinations.tre.tab") == 3); fail_unless(compare_files("../tests/data/multiple_recombinations.tre","../tests/data/multiple_recombinations.expected.tre") == 1); + fail_unless(compare_files("../tests/data/multiple_recombinations.tre.branch_snps.tab","../tests/data/multiple_recombinations.tre.branch_snps.expected.tab") == 1); remove("../tests/data/multiple_recombinations.tre"); remove("../tests/data/multiple_recombinations.tre.tab"); @@ -79,6 +84,7 @@ START_TEST (check_gubbins_multiple_recombinations) remove("../tests/data/multiple_recombinations.tre.stats"); remove("../tests/data/multiple_recombinations.tre.gff"); remove("../tests/data/multiple_recombinations.tre.snp_sites.aln"); + remove("../tests/data/multiple_recombinations.tre.branch_snps.tab"); } END_TEST diff --git a/tests/check_snp_searching.c b/tests/check_snp_searching.c index fe1aab17..d1892f25 100644 --- a/tests/check_snp_searching.c +++ b/tests/check_snp_searching.c @@ -237,38 +237,49 @@ START_TEST (check_calculate_number_of_snps_excluding_gaps) int child_sequence_size = 10; int * branch_snp_coords; char * branch_snp_sequence ; + char * branch_ancestor_snp_sequence ; int snp_locations[10] = {0,4,8,20,30,40,50,88,90,100}; branch_snp_coords = (int *) malloc((child_sequence_size+1)*sizeof(int)); branch_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); - fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_no_snps, child_sequence_no_snps, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence ) == 0 ); + branch_ancestor_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); + fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_no_snps, child_sequence_no_snps, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence,branch_ancestor_snp_sequence ) == 0 ); fail_unless(strcmp(branch_snp_sequence, "") == 0); + fail_unless(strcmp(branch_ancestor_snp_sequence, "") == 0); branch_snp_coords = (int *) malloc((child_sequence_size+1)*sizeof(int)); branch_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); - fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_one_snp, child_sequence_one_snp, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence ) == 1 ); + branch_ancestor_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); + fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_one_snp, child_sequence_one_snp, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence,branch_ancestor_snp_sequence ) == 1 ); fail_unless(strcmp(branch_snp_sequence, "C") == 0); + fail_unless(strcmp(branch_ancestor_snp_sequence, ".") == 0); fail_unless(branch_snp_coords[0] == 40); branch_snp_coords = (int *) malloc((child_sequence_size+1)*sizeof(int)); branch_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); - fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_many_snps, child_sequence_many_snps, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence ) == 4 ); + branch_ancestor_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); + fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_many_snps, child_sequence_many_snps, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence,branch_ancestor_snp_sequence ) == 4 ); fail_unless(strcmp(branch_snp_sequence, "CCCC") == 0); + fail_unless(strcmp(branch_ancestor_snp_sequence, "TTTT") == 0); fail_unless(branch_snp_coords[0] == 0); fail_unless(branch_snp_coords[3] == 100); branch_snp_coords = (int *) malloc((child_sequence_size+1)*sizeof(int)); branch_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); - fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_gaps, child_sequence_gaps, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence ) == 2 ); + branch_ancestor_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); + fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_gaps, child_sequence_gaps, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence,branch_ancestor_snp_sequence ) == 2 ); fail_unless(strcmp(branch_snp_sequence, "CC") == 0); + fail_unless(strcmp(branch_ancestor_snp_sequence, "TT") == 0); fail_unless(branch_snp_coords[0] == 30); fail_unless(branch_snp_coords[1] == 100); branch_snp_coords = (int *) malloc((child_sequence_size+1)*sizeof(int)); branch_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); - fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_with_dots, child_ancestor_sequence, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence ) == 1); + branch_ancestor_snp_sequence = (char *) malloc((child_sequence_size+1)*sizeof(char)); + fail_unless( calculate_number_of_snps_excluding_gaps(ancestor_sequence_with_dots, child_ancestor_sequence, child_sequence_size, branch_snp_coords, snp_locations,branch_snp_sequence,branch_ancestor_snp_sequence ) == 1); fail_unless(strcmp(branch_snp_sequence, "A") == 0); + fail_unless(strcmp(branch_ancestor_snp_sequence, "C") == 0); fail_unless(branch_snp_coords[0] == 4); } END_TEST diff --git a/tests/check_snp_sites.c b/tests/check_snp_sites.c index 2a1cca88..8fd370cd 100644 --- a/tests/check_snp_sites.c +++ b/tests/check_snp_sites.c @@ -59,6 +59,9 @@ START_TEST (valid_alignment_with_one_line_per_sequence_gzipped) remove("alignment_file_one_line_per_sequence.aln.gz.vcf"); remove("alignment_file_one_line_per_sequence.aln.gz.phylip"); remove("alignment_file_one_line_per_sequence.aln.gz.snp_sites.aln"); + remove("alignment_file_one_line_per_sequence.aln.phylip"); + remove("alignment_file_one_line_per_sequence.aln.snp_sites.aln"); + remove("alignment_file_one_line_per_sequence.aln.vcf"); } END_TEST diff --git a/tests/data/multiple_recombinations.tre.branch_snps.expected.tab b/tests/data/multiple_recombinations.tre.branch_snps.expected.tab new file mode 100644 index 00000000..67f715b8 --- /dev/null +++ b/tests/data/multiple_recombinations.tre.branch_snps.expected.tab @@ -0,0 +1,1452 @@ +FT variation 16 +FT /node="sequence_1->N7" +FT /colour=4 +FT /taxa=" sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 28 +FT /node="sequence_1->N7" +FT /colour=4 +FT /taxa=" sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="C" +FT variation 24 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 29 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 30 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 31 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 32 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 33 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 34 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 35 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 36 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 37 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 38 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 39 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 40 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 41 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 42 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 43 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 44 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 45 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 46 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 47 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 48 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 49 +FT /node="N7->N5" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" +FT /parent_base="A" +FT /replace="G" +FT variation 24 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="G" +FT variation 84 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 85 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 86 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 87 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 88 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 89 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 90 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 91 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 92 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 93 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 94 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 95 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 96 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 97 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 98 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 99 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 100 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 101 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 102 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 103 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 104 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 105 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 106 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 107 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 108 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 109 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 110 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 111 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 112 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 113 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 114 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 115 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 116 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 117 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 118 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 119 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 120 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 121 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 122 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 123 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 124 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 125 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 126 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 127 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 128 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 129 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 130 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 131 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 132 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 133 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 134 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 135 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 136 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 137 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 138 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 139 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 140 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 141 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 142 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 143 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 144 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 145 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 146 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 147 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 148 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 149 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 150 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 151 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 152 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 153 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 154 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 155 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 156 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 157 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 158 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 159 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 160 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 161 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 162 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 163 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 164 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 165 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 166 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 167 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 168 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 169 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 170 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 171 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 172 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 173 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 174 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 175 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 176 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 177 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 178 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 179 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 180 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 181 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 182 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 183 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 184 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 185 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 186 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 187 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 188 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 189 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 190 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 191 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 192 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 193 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 194 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 195 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 196 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 197 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 198 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 199 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 200 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 201 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 202 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 203 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 204 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 205 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 206 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 207 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 208 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 209 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 210 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 211 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 212 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 213 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 214 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 215 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 216 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 217 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 218 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 219 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 220 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 221 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 222 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 223 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 224 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 225 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 226 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 227 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 228 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 229 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 230 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 231 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 232 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 233 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 234 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 235 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 236 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 237 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 238 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 239 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 240 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 241 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 242 +FT /node="sequence_10->N8" +FT /colour=4 +FT /taxa=" sequence_10 sequence_9" +FT /parent_base="T" +FT /replace="A" +FT variation 28 +FT /node="N8->N4" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 24 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 28 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="C" +FT /replace="A" +FT variation 29 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 30 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 31 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 32 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 33 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 34 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 35 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 36 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 37 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 38 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 39 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 40 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 41 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 42 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 43 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 44 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 45 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 46 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 47 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 48 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 49 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 51 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 53 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 54 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 55 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 56 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 57 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 58 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 59 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 60 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 61 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 62 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 63 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 64 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 65 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 66 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 67 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 69 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 70 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 71 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 73 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 74 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 75 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 76 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 77 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 78 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 79 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 80 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 81 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 82 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 84 +FT /node="N4->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 16 +FT /node="N3->N2" +FT /colour=4 +FT /taxa=" sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 22 +FT /node="N3->N2" +FT /colour=4 +FT /taxa=" sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="C" +FT variation 41 +FT /node="sequence_4->N1" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4 sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="G" +FT /replace="A" +FT variation 35 +FT /node="N2->N1" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4 sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" +FT /parent_base="A" +FT /replace="T" diff --git a/tests/data/no_recombinations.tre.branch_snps.expected.tab b/tests/data/no_recombinations.tre.branch_snps.expected.tab new file mode 100644 index 00000000..660778fb --- /dev/null +++ b/tests/data/no_recombinations.tre.branch_snps.expected.tab @@ -0,0 +1,54 @@ +FT variation 24 +FT /node="sequence_6->N2" +FT /colour=4 +FT /taxa=" sequence_6 sequence_7 sequence_8" +FT /parent_base="A" +FT /replace="G" +FT variation 41 +FT /node="sequence_4->N6" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4" +FT /parent_base="G" +FT /replace="A" +FT variation 35 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="T" +FT variation 16 +FT /node="sequence_1->N7" +FT /colour=4 +FT /taxa=" sequence_1 sequence_5 sequence_10" +FT /parent_base="A" +FT /replace="G" +FT variation 16 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" +FT /parent_base="A" +FT /replace="G" +FT variation 22 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 35 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" +FT /parent_base="T" +FT /replace="A" +FT variation 28 +FT /node="N2->N1" +FT /colour=4 +FT /taxa=" sequence_9 sequence_6 sequence_7 sequence_8 sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 24 +FT /node="N4->N1" +FT /colour=4 +FT /taxa=" sequence_9 sequence_6 sequence_7 sequence_8 sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" +FT /parent_base="A" +FT /replace="G" diff --git a/tests/data/one_recombination.tre.branch_snps.expected.tab b/tests/data/one_recombination.tre.branch_snps.expected.tab new file mode 100644 index 00000000..098d8ec9 --- /dev/null +++ b/tests/data/one_recombination.tre.branch_snps.expected.tab @@ -0,0 +1,912 @@ +FT variation 13 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 15 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 27 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 28 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 29 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 55 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 56 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 57 +FT /node="sequence_5->N3" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10" +FT /parent_base="C" +FT /replace="A" +FT variation 31 +FT /node="sequence_4->N6" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 32 +FT /node="sequence_4->N6" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 33 +FT /node="sequence_4->N6" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 59 +FT /node="sequence_4->N6" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 60 +FT /node="sequence_4->N6" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 61 +FT /node="sequence_4->N6" +FT /colour=4 +FT /taxa=" sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 3 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 14 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 31 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 32 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 33 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 59 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 60 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 61 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 64 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 65 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 66 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 67 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 68 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 69 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 70 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 71 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 72 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 73 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 74 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 75 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 76 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 77 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 78 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 79 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 80 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 81 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 82 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 83 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 84 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 85 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 86 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 87 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 88 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 89 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 90 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 91 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 92 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 93 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 94 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 95 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 96 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 97 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 98 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 99 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 100 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 102 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 103 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 104 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 105 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 106 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 107 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 108 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 109 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 110 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 111 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 112 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 113 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 114 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 115 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 116 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 117 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 118 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 119 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 120 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 121 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 122 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 123 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 124 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 125 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 126 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 127 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 128 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 129 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 130 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 131 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 132 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 133 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 134 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 135 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 136 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 137 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 138 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 139 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 141 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 142 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 143 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 144 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 145 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 146 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 147 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 148 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 149 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 150 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 151 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 152 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 153 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 154 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 155 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 156 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 157 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 158 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 159 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 160 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 161 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 162 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 163 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 164 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 165 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 166 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 167 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 168 +FT /node="sequence_2->N5" +FT /colour=4 +FT /taxa=" sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 7 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 9 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 10 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 12 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 31 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 32 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 33 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 34 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 35 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 36 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 59 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 60 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 61 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 62 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 63 +FT /node="N5->N4" +FT /colour=4 +FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="A" +FT /replace="C" +FT variation 34 +FT /node="N4->N2" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 35 +FT /node="N4->N2" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 36 +FT /node="N4->N2" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 62 +FT /node="N4->N2" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 63 +FT /node="N4->N2" +FT /colour=4 +FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" +FT /parent_base="C" +FT /replace="A" +FT variation 19 +FT /node="sequence_7->N8" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8" +FT /parent_base="C" +FT /replace="A" +FT variation 20 +FT /node="sequence_7->N8" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8" +FT /parent_base="C" +FT /replace="A" +FT variation 21 +FT /node="sequence_7->N8" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8" +FT /parent_base="C" +FT /replace="A" +FT variation 47 +FT /node="sequence_7->N8" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8" +FT /parent_base="C" +FT /replace="A" +FT variation 48 +FT /node="sequence_7->N8" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8" +FT /parent_base="C" +FT /replace="A" +FT variation 49 +FT /node="sequence_7->N8" +FT /colour=4 +FT /taxa=" sequence_7 sequence_8" +FT /parent_base="C" +FT /replace="A" +FT variation 170 +FT /node="sequence_6->N7" +FT /colour=4 +FT /taxa=" sequence_6 sequence_7 sequence_8" +FT /parent_base="C" +FT /replace="A" From 6776395f2b4cd1fb149789882ee5e0d4c74625b7 Mon Sep 17 00:00:00 2001 From: andrewjpage Date: Fri, 2 Nov 2012 10:04:22 +0000 Subject: [PATCH 3/7] filter out gappy sequences --- run_gubbins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run_gubbins.py b/run_gubbins.py index 5e7be8f7..32af959b 100755 --- a/run_gubbins.py +++ b/run_gubbins.py @@ -252,7 +252,7 @@ def filter_out_alignments_with_too_much_missing_data(input_filename, output_file number_of_gaps += record.seq.count('n') number_of_gaps += record.seq.count('N') number_of_gaps += record.seq.count('-') - if((number_of_gaps*100/alignment.get_alignment_length()) > filter_percentage): + if((number_of_gaps*100/alignment.get_alignment_length()) <= filter_percentage): output_alignments.append(alignment) AlignIO.write(output_alignments, output_handle, "fasta") From e5593bc340d599a16a93d8ed9c1e43d32436e834 Mon Sep 17 00:00:00 2001 From: andrewjpage Date: Fri, 2 Nov 2012 10:13:47 +0000 Subject: [PATCH 4/7] Check for sequences with no bases --- run_gubbins.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/run_gubbins.py b/run_gubbins.py index 32af959b..988256a7 100755 --- a/run_gubbins.py +++ b/run_gubbins.py @@ -240,20 +240,27 @@ def get_sequence_names_from_alignment(filename): return sequence_names -# reparsing a fasta file splits the lines which makes fastml work -def filter_out_alignments_with_too_much_missing_data(input_filename, output_filename, filter_percentage): +def filter_out_alignments_with_too_much_missing_data(input_filename, output_filename, filter_percentage,verbose): input_handle = open(input_filename, "rU") output_handle = open(output_filename, "w+") alignments = AlignIO.parse(input_handle, "fasta") output_alignments = [] for alignment in alignments: number_of_gaps = 0 + alignment_name = "" for record in alignment: number_of_gaps += record.seq.count('n') number_of_gaps += record.seq.count('N') number_of_gaps += record.seq.count('-') - if((number_of_gaps*100/alignment.get_alignment_length()) <= filter_percentage): + alignment_name = record.id + if alignment.get_alignment_length() == 0: + if verbose > 0: + print "Excluded sequence " + alignment_name + " because there werent enough bases in it" + elif((number_of_gaps*100/alignment.get_alignment_length()) <= filter_percentage): output_alignments.append(alignment) + else: + if verbose > 0: + print "Excluded sequence " + alignment_name + " because it had " + (number_of_gaps*100/alignment.get_alignment_length()) +" percentage gaps a maximum of "+ filter_percentage +" is allowed" AlignIO.write(output_alignments, output_handle, "fasta") output_handle.close() @@ -354,7 +361,7 @@ def is_exe(fpath): starting_base_filename = base_filename reconvert_fasta_file(starting_base_filename+".gaps.snp_sites.aln",starting_base_filename+".start") -filter_out_alignments_with_too_much_missing_data(starting_base_filename+".start", starting_base_filename+".start.filtered", args.filter_percentage) +filter_out_alignments_with_too_much_missing_data(starting_base_filename+".start", starting_base_filename+".start.filtered", args.filter_percentage,args.verbose) os.remove(starting_base_filename+".start") os.rename(starting_base_filename+".start.filtered", starting_base_filename+".start") From a49ad019fecc4cb5d23fbe36cca3fd3e6956b04d Mon Sep 17 00:00:00 2001 From: andrewjpage Date: Fri, 2 Nov 2012 10:51:20 +0000 Subject: [PATCH 5/7] put a filtered copy of the original alignment file into a temp directory --- run_gubbins.py | 52 +++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/run_gubbins.py b/run_gubbins.py index 988256a7..b1c5b587 100755 --- a/run_gubbins.py +++ b/run_gubbins.py @@ -30,6 +30,7 @@ import os import time import re +import tempfile from Bio import Phylo import dendropy from Bio import SeqIO @@ -246,23 +247,23 @@ def filter_out_alignments_with_too_much_missing_data(input_filename, output_file alignments = AlignIO.parse(input_handle, "fasta") output_alignments = [] for alignment in alignments: - number_of_gaps = 0 - alignment_name = "" for record in alignment: + number_of_gaps = 0 number_of_gaps += record.seq.count('n') number_of_gaps += record.seq.count('N') number_of_gaps += record.seq.count('-') - alignment_name = record.id - if alignment.get_alignment_length() == 0: - if verbose > 0: - print "Excluded sequence " + alignment_name + " because there werent enough bases in it" - elif((number_of_gaps*100/alignment.get_alignment_length()) <= filter_percentage): - output_alignments.append(alignment) - else: - if verbose > 0: - print "Excluded sequence " + alignment_name + " because it had " + (number_of_gaps*100/alignment.get_alignment_length()) +" percentage gaps a maximum of "+ filter_percentage +" is allowed" + sequence_length = len(record.seq) - AlignIO.write(output_alignments, output_handle, "fasta") + if sequence_length == 0: + if verbose > 0: + print "Excluded sequence " + record.id + " because there werent enough bases in it" + elif((number_of_gaps*100/sequence_length) <= filter_percentage): + output_alignments.append(record) + else: + if verbose > 0: + print "Excluded sequence " + record.id + " because it had " + str(number_of_gaps*100/sequence_length) +" percentage gaps while a maximum of "+ str(filter_percentage) +" is allowed" + + AlignIO.write(MultipleSeqAlignment(output_alignments), output_handle, "fasta") output_handle.close() input_handle.close() return @@ -348,22 +349,30 @@ def is_exe(fpath): if args.verbose > 0: print current_time -# find all snp sites -if args.verbose > 0: - print GUBBINS_EXEC + args.alignment_filename -subprocess.check_call([GUBBINS_EXEC, args.alignment_filename]) -if args.verbose > 0: - print int(time.time()) +# get the base filename +(base_directory,base_filename) = os.path.split(args.alignment_filename) +(base_filename_without_ext,extension) = os.path.splitext(base_filename) +starting_base_filename = base_filename + +# put a filtered copy into a temp directory and work from that +temp_working_dir = tempfile.mkdtemp() +filter_out_alignments_with_too_much_missing_data(args.alignment_filename, temp_working_dir+"/"+starting_base_filename, args.filter_percentage, args.verbose) +args.alignment_filename = temp_working_dir+"/"+starting_base_filename # get the base filename (base_directory,base_filename) = os.path.split(args.alignment_filename) (base_filename_without_ext,extension) = os.path.splitext(base_filename) starting_base_filename = base_filename + +# find all snp sites +if args.verbose > 0: + print GUBBINS_EXEC + starting_base_filename +subprocess.check_call([GUBBINS_EXEC, starting_base_filename]) +if args.verbose > 0: + print int(time.time()) + reconvert_fasta_file(starting_base_filename+".gaps.snp_sites.aln",starting_base_filename+".start") -filter_out_alignments_with_too_much_missing_data(starting_base_filename+".start", starting_base_filename+".start.filtered", args.filter_percentage,args.verbose) -os.remove(starting_base_filename+".start") -os.rename(starting_base_filename+".start.filtered", starting_base_filename+".start") # Perform pairwise comparison if there are only 2 sequences number_of_sequences = number_of_sequences_in_alignment(args.alignment_filename) @@ -371,7 +380,6 @@ def is_exe(fpath): pairwise_comparison(args.alignment_filename,starting_base_filename,GUBBINS_EXEC,args.alignment_filename) sys.exit() - latest_file_name = "latest_tree."+base_filename_without_ext+"."+str(current_time)+".tre" tree_file_names = [] From b60e1c665eb3b5fb0a8fd92221683ccf8bca2ad3 Mon Sep 17 00:00:00 2001 From: andrewjpage Date: Fri, 2 Nov 2012 10:58:57 +0000 Subject: [PATCH 6/7] create tmp dir in current working directory and cleanup at the end --- run_gubbins.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/run_gubbins.py b/run_gubbins.py index b1c5b587..6d64a49c 100755 --- a/run_gubbins.py +++ b/run_gubbins.py @@ -355,7 +355,7 @@ def is_exe(fpath): starting_base_filename = base_filename # put a filtered copy into a temp directory and work from that -temp_working_dir = tempfile.mkdtemp() +temp_working_dir = tempfile.mkdtemp(dir=os.getcwd()) filter_out_alignments_with_too_much_missing_data(args.alignment_filename, temp_working_dir+"/"+starting_base_filename, args.filter_percentage, args.verbose) args.alignment_filename = temp_working_dir+"/"+starting_base_filename @@ -364,11 +364,10 @@ def is_exe(fpath): (base_filename_without_ext,extension) = os.path.splitext(base_filename) starting_base_filename = base_filename - # find all snp sites if args.verbose > 0: - print GUBBINS_EXEC + starting_base_filename -subprocess.check_call([GUBBINS_EXEC, starting_base_filename]) + print GUBBINS_EXEC +" "+ args.alignment_filename +subprocess.check_call([GUBBINS_EXEC, args.alignment_filename]) if args.verbose > 0: print int(time.time()) @@ -479,4 +478,5 @@ def is_exe(fpath): fasttree_regex_for_file_deletions = fasttree_regex_for_file_deletions(starting_base_filename, max_intermediate_iteration) delete_files_based_on_list_of_regexes('.', fasttree_regex_for_file_deletions, args.verbose) + shutil.rmtree(temp_working_dir) From ba837f137aa49a57443fb4041c88afd33b44bb99 Mon Sep 17 00:00:00 2001 From: andrewjpage Date: Fri, 2 Nov 2012 11:06:09 +0000 Subject: [PATCH 7/7] reverse nodes in snp tab output --- src/branch_sequences.c | 2 +- ...ecombinations.tre.branch_snps.expected.tab | 484 +++++++++--------- ...ecombinations.tre.branch_snps.expected.tab | 18 +- ...recombination.tre.branch_snps.expected.tab | 304 +++++------ 4 files changed, 404 insertions(+), 404 deletions(-) diff --git a/src/branch_sequences.c b/src/branch_sequences.c index 66fa6503..ecdb8bc6 100644 --- a/src/branch_sequences.c +++ b/src/branch_sequences.c @@ -290,7 +290,7 @@ char *generate_branch_sequences(newick_node *root, FILE *vcf_file_pointer,int * branch_genome_size = calculate_size_of_genome_without_gaps(child_sequences[current_branch], 0,number_of_snps, length_of_original_genome); number_of_branch_snps = calculate_number_of_snps_excluding_gaps(leaf_sequence, child_sequences[current_branch], number_of_snps, branches_snp_sites[current_branch], snp_locations,branch_snp_sequence,branch_snp_ancestor_sequence); - print_branch_snp_details(branch_snps_file_pointer, root->taxon, child_nodes[current_branch]->taxon, branches_snp_sites[current_branch], number_of_branch_snps, branch_snp_sequence, branch_snp_ancestor_sequence,root->taxon_names); + print_branch_snp_details(branch_snps_file_pointer, child_nodes[current_branch]->taxon,root->taxon, branches_snp_sites[current_branch], number_of_branch_snps, branch_snp_sequence, branch_snp_ancestor_sequence,root->taxon_names); get_likelihood_for_windows(child_sequences[current_branch], number_of_snps, branches_snp_sites[current_branch], branch_genome_size, number_of_branch_snps,snp_locations, child_nodes[current_branch], block_file_pointer, root, branch_snp_sequence,gff_file_pointer,min_snps); } diff --git a/tests/data/multiple_recombinations.tre.branch_snps.expected.tab b/tests/data/multiple_recombinations.tre.branch_snps.expected.tab index 67f715b8..77792fa6 100644 --- a/tests/data/multiple_recombinations.tre.branch_snps.expected.tab +++ b/tests/data/multiple_recombinations.tre.branch_snps.expected.tab @@ -1,1451 +1,1451 @@ FT variation 16 -FT /node="sequence_1->N7" +FT /node="N7->sequence_1" FT /colour=4 FT /taxa=" sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 28 -FT /node="sequence_1->N7" +FT /node="N7->sequence_1" FT /colour=4 FT /taxa=" sequence_6 sequence_1" FT /parent_base="A" FT /replace="C" FT variation 24 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 29 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 30 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 31 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 32 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 33 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 34 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 35 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 36 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 37 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 38 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 39 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 40 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 41 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 42 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 43 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 44 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 45 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 46 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 47 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 48 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 49 -FT /node="N7->N5" +FT /node="N5->N7" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1" FT /parent_base="A" FT /replace="G" FT variation 24 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="A" FT /replace="G" FT variation 84 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 85 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 86 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 87 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 88 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 89 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 90 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 91 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 92 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 93 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 94 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 95 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 96 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 97 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 98 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 99 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 100 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 101 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 102 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 103 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 104 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 105 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 106 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 107 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 108 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 109 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 110 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 111 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 112 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 113 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 114 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 115 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 116 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 117 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 118 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 119 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 120 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 121 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 122 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 123 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 124 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 125 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 126 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 127 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 128 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 129 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 130 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 131 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 132 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 133 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 134 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 135 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 136 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 137 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 138 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 139 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 140 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 141 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 142 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 143 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 144 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 145 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 146 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 147 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 148 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 149 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 150 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 151 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 152 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 153 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 154 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 155 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 156 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 157 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 158 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 159 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 160 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 161 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 162 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 163 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 164 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 165 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 166 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 167 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 168 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 169 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 170 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 171 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 172 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 173 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 174 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 175 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 176 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 177 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 178 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 179 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 180 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 181 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 182 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 183 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 184 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 185 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 186 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 187 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 188 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 189 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 190 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 191 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 192 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 193 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 194 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 195 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 196 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 197 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 198 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 199 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 200 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 201 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 202 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 203 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 204 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 205 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 206 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 207 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 208 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 209 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 210 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 211 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 212 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 213 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 214 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 215 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 216 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 217 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 218 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 219 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 220 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 221 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 222 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 223 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 224 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 225 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 226 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 227 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 228 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 229 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 230 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 231 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 232 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 233 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 234 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 235 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 236 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 237 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 238 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 239 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 240 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 241 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 242 -FT /node="sequence_10->N8" +FT /node="N8->sequence_10" FT /colour=4 FT /taxa=" sequence_10 sequence_9" FT /parent_base="T" FT /replace="A" FT variation 28 -FT /node="N8->N4" +FT /node="N4->N8" FT /colour=4 FT /taxa=" sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 24 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 28 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="C" FT /replace="A" FT variation 29 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 30 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 31 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 32 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 33 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 34 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 35 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 36 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 37 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 38 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 39 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 40 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 41 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 42 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 43 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 44 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 45 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 46 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 47 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 48 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 49 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 51 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 53 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 54 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 55 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 56 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 57 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 58 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 59 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 60 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 61 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 62 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 63 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 64 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 65 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 66 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 67 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 69 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 70 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 71 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 73 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 74 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 75 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 76 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 77 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 78 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 79 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 80 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 81 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 82 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 84 -FT /node="N4->N3" +FT /node="N3->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 16 -FT /node="N3->N2" +FT /node="N2->N3" FT /colour=4 FT /taxa=" sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 22 -FT /node="N3->N2" +FT /node="N2->N3" FT /colour=4 FT /taxa=" sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" FT /replace="C" FT variation 41 -FT /node="sequence_4->N1" +FT /node="N1->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4 sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="G" FT /replace="A" FT variation 35 -FT /node="N2->N1" +FT /node="N1->N2" FT /colour=4 FT /taxa=" sequence_3 sequence_4 sequence_2 sequence_5 sequence_7 sequence_8 sequence_6 sequence_1 sequence_10 sequence_9" FT /parent_base="A" diff --git a/tests/data/no_recombinations.tre.branch_snps.expected.tab b/tests/data/no_recombinations.tre.branch_snps.expected.tab index 660778fb..7b43aab5 100644 --- a/tests/data/no_recombinations.tre.branch_snps.expected.tab +++ b/tests/data/no_recombinations.tre.branch_snps.expected.tab @@ -1,53 +1,53 @@ FT variation 24 -FT /node="sequence_6->N2" +FT /node="N2->sequence_6" FT /colour=4 FT /taxa=" sequence_6 sequence_7 sequence_8" FT /parent_base="A" FT /replace="G" FT variation 41 -FT /node="sequence_4->N6" +FT /node="N6->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4" FT /parent_base="G" FT /replace="A" FT variation 35 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="T" FT variation 16 -FT /node="sequence_1->N7" +FT /node="N7->sequence_1" FT /colour=4 FT /taxa=" sequence_1 sequence_5 sequence_10" FT /parent_base="A" FT /replace="G" FT variation 16 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" FT /parent_base="A" FT /replace="G" FT variation 22 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 35 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" FT /parent_base="T" FT /replace="A" FT variation 28 -FT /node="N2->N1" +FT /node="N1->N2" FT /colour=4 FT /taxa=" sequence_9 sequence_6 sequence_7 sequence_8 sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 24 -FT /node="N4->N1" +FT /node="N1->N4" FT /colour=4 FT /taxa=" sequence_9 sequence_6 sequence_7 sequence_8 sequence_2 sequence_3 sequence_4 sequence_1 sequence_5 sequence_10" FT /parent_base="A" diff --git a/tests/data/one_recombination.tre.branch_snps.expected.tab b/tests/data/one_recombination.tre.branch_snps.expected.tab index 098d8ec9..2be452f5 100644 --- a/tests/data/one_recombination.tre.branch_snps.expected.tab +++ b/tests/data/one_recombination.tre.branch_snps.expected.tab @@ -1,911 +1,911 @@ FT variation 13 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 15 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 27 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 28 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 29 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 55 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 56 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 57 -FT /node="sequence_5->N3" +FT /node="N3->sequence_5" FT /colour=4 FT /taxa=" sequence_5 sequence_10" FT /parent_base="C" FT /replace="A" FT variation 31 -FT /node="sequence_4->N6" +FT /node="N6->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 32 -FT /node="sequence_4->N6" +FT /node="N6->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 33 -FT /node="sequence_4->N6" +FT /node="N6->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 59 -FT /node="sequence_4->N6" +FT /node="N6->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 60 -FT /node="sequence_4->N6" +FT /node="N6->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 61 -FT /node="sequence_4->N6" +FT /node="N6->sequence_4" FT /colour=4 FT /taxa=" sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 3 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 14 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 31 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 32 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 33 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 59 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 60 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 61 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 64 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 65 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 66 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 67 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 68 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 69 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 70 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 71 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 72 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 73 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 74 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 75 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 76 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 77 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 78 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 79 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 80 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 81 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 82 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 83 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 84 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 85 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 86 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 87 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 88 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 89 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 90 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 91 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 92 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 93 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 94 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 95 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 96 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 97 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 98 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 99 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 100 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 102 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 103 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 104 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 105 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 106 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 107 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 108 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 109 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 110 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 111 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 112 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 113 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 114 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 115 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 116 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 117 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 118 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 119 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 120 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 121 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 122 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 123 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 124 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 125 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 126 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 127 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 128 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 129 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 130 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 131 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 132 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 133 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 134 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 135 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 136 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 137 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 138 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 139 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 141 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 142 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 143 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 144 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 145 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 146 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 147 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 148 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 149 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 150 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 151 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 152 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 153 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 154 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 155 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 156 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 157 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 158 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 159 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 160 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 161 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 162 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 163 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 164 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 165 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 166 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 167 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 168 -FT /node="sequence_2->N5" +FT /node="N5->sequence_2" FT /colour=4 FT /taxa=" sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 7 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 9 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 10 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 12 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 31 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 32 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 33 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 34 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 35 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 36 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 59 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 60 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 61 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 62 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 63 -FT /node="N5->N4" +FT /node="N4->N5" FT /colour=4 FT /taxa=" sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="A" FT /replace="C" FT variation 34 -FT /node="N4->N2" +FT /node="N2->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 35 -FT /node="N4->N2" +FT /node="N2->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 36 -FT /node="N4->N2" +FT /node="N2->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 62 -FT /node="N4->N2" +FT /node="N2->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 63 -FT /node="N4->N2" +FT /node="N2->N4" FT /colour=4 FT /taxa=" sequence_5 sequence_10 sequence_1 sequence_2 sequence_3 sequence_4" FT /parent_base="C" FT /replace="A" FT variation 19 -FT /node="sequence_7->N8" +FT /node="N8->sequence_7" FT /colour=4 FT /taxa=" sequence_7 sequence_8" FT /parent_base="C" FT /replace="A" FT variation 20 -FT /node="sequence_7->N8" +FT /node="N8->sequence_7" FT /colour=4 FT /taxa=" sequence_7 sequence_8" FT /parent_base="C" FT /replace="A" FT variation 21 -FT /node="sequence_7->N8" +FT /node="N8->sequence_7" FT /colour=4 FT /taxa=" sequence_7 sequence_8" FT /parent_base="C" FT /replace="A" FT variation 47 -FT /node="sequence_7->N8" +FT /node="N8->sequence_7" FT /colour=4 FT /taxa=" sequence_7 sequence_8" FT /parent_base="C" FT /replace="A" FT variation 48 -FT /node="sequence_7->N8" +FT /node="N8->sequence_7" FT /colour=4 FT /taxa=" sequence_7 sequence_8" FT /parent_base="C" FT /replace="A" FT variation 49 -FT /node="sequence_7->N8" +FT /node="N8->sequence_7" FT /colour=4 FT /taxa=" sequence_7 sequence_8" FT /parent_base="C" FT /replace="A" FT variation 170 -FT /node="sequence_6->N7" +FT /node="N7->sequence_6" FT /colour=4 FT /taxa=" sequence_6 sequence_7 sequence_8" FT /parent_base="C"