void header::reparse() { unsigned int index = 0; has_idx = false; contig_index = 0; vector<string> old_lines(lines.size(),""); copy(lines.begin(), lines.end(), old_lines.begin()); lines.resize(0); INFO_map.clear(); INFO_reverse_map.clear(); FILTER_map.clear(); FILTER_reverse_map.clear(); FORMAT_map.clear(); FORMAT_reverse_map.clear(); CONTIG_map.clear(); CONTIG_reverse_map.clear(); index += add_FILTER_descriptor("ID=PASS,Description=PASS", index); for (unsigned int ui=0; ui<old_lines.size(); ui++) parse_meta(old_lines[ui],index); }
// embed lines within new tag and indent embedded lines two spaces static void embed_in_tag(std::string tag, std::vector<std::string>& lines) { std::string open_tag = "<" + tag + ">"; std::string close_tag = "</" + tag + ">"; std::vector<std::string> old_lines(lines); lines.clear(); // put in open tag lines.push_back(" " + open_tag); // put in indented lines for (std::vector<std::string>::const_iterator it = old_lines.begin(); it != old_lines.end(); ++it) { lines.push_back(" " + *it); } // put in close tag lines.push_back(" " + close_tag); }