bool strip12(libmaus::bambam::BamAlignment & algn) { char const * name = algn.getName(); char const * u1 = name; while ( *u1 && *u1 != '_' ) ++u1; if ( ! *u1 ) return true; else { bool ok = true; uint64_t ranka = 0; for ( char const * t1 = name; t1 != u1; ++t1 ) { ranka *= 10; ranka += ((*t1)-'0'); ok = ok && isdigit(*t1); } int const read1 = algn.isRead1() ? 1 : 0; int const read2 = algn.isRead2() ? 1 : 0; if ( (read1+read2 != 1) || (!ok) ) { return true; } else { std::ostringstream upnamestr; upnamestr << (u1+1); std::string const upname = upnamestr.str(); algn.replaceName(upname.begin(),upname.size()); return true; } } }