void print_four_children(mx_node* parent_node_p, ofstream& optfile){ mx_node* iter_node; if(parent_node_p->is_pointer_M()){ iter_node = parent_node_p->get_pointer_M(0, ""); if (!(iter_node->is_searched())) print_four_children(iter_node, optfile); } if(parent_node_p->is_pointer_X()){ iter_node = parent_node_p->get_pointer_X(0, ""); if (!(iter_node->is_searched())) print_four_children(iter_node, optfile); } if(parent_node_p->is_pointer_I()){ iter_node = parent_node_p->get_pointer_I(0, ""); if (!(iter_node->is_searched())) print_four_children(iter_node, optfile); } if(parent_node_p->is_pointer_D()){ iter_node = parent_node_p->get_pointer_D(0, ""); if (!(iter_node->is_searched())) print_four_children(iter_node, optfile); } // cout << "Dealing with the following node " << parent_node_p->get_kmer() << endl ; if(!(parent_node_p->is_printed())){ if(parent_node_p->get_counter()){ // optfile << parent_node_p->get_kmer() << " " << parent_node_p->get_counter() << " " << conv_16nt_to_32bit(parent_node_p->get_kmer()) << endl; //optfile << parent_node_p->get_kmer() << " " << parent_node_p->get_counter() << endl; optfile << parent_node_p->get_counter() << endl; // optfile << parent_node_p->get_kmer() << " " << parent_node_p->get_stgRNAs() << endl; parent_node_p->set_printed(); // cout << "Actually printed once" << endl; } // cout << "Trying to print once for " << parent_node_p->get_kmer() << endl; } if(!(parent_node_p->is_searched())) parent_node_p->set_searched(); } void print_kmer_tree(mx_node* master_node, const string& print_filename) { ofstream optfile; optfile.open(print_filename); print_four_children(master_node, optfile); optfile.close(); }