- mergedHeader.append(headerLine.c_str() );
- mergedHeader.append(1, '\n');
+ stringstream headerLineSs(headerLine);
+ string part, readGroupPart, readGroup;
+ while(std::getline(headerLineSs, part, '\t')) {
+ if (part == "@RG") {
+ std::getline(headerLineSs, readGroupPart, '\t');
+ stringstream readGroupPartSs(readGroupPart);
+ std::getline(readGroupPartSs, readGroup, ':');
+ std::getline(readGroupPartSs, readGroup, ':');
+ break;
+ }
+ }
+ if (readGroups.find(readGroup) == readGroups.end()) { // prevents duplicate @RG entries
+ mergedHeader.append(headerLine.c_str() );
+ mergedHeader.append(1, '\n');
+ readGroups[readGroup] = true;
+ }