/usr/include/pbdata/sam/AlignmentSetImpl.hpp is in libpbdata-dev 0~20151014+gitbe5d1bf-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include "AlignmentSet.hpp"
template<typename T_ReferenceSequence, typename T_ReadGroup, typename T_Alignment>
void AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_Alignment>::RearrangeReferences(std::vector<FASTASequence> &fastaReferences) {
int i = 0;
std::map<std::string, int> fastaRefToIndex;
std::map<std::string, int>::iterator it;
for (i = 0; i<fastaReferences.size(); i++) {
it = fastaRefToIndex.find(fastaReferences[i].GetName());
if (it != fastaRefToIndex.end()) {
std::cout<<"Error, reference with name \""<<fastaReferences[i].GetName()
<<"\" in the reference genome is not unique"<<std::endl;
exit(1);
}
fastaRefToIndex[fastaReferences[i].GetName()] = i;
}
std::vector<T_ReferenceSequence> newreferences;
for (i = 0; i < references.size(); i++) {
newreferences.push_back(T_ReferenceSequence());
}
for (i = 0; i < references.size(); i++) {
it = fastaRefToIndex.find(references[i].sequenceName);
if (it == fastaRefToIndex.end()) {
std::cout<<"Error, can not find reference name "<<references[i].sequenceName
<<" in the reference genome."<<std::endl;
exit(1);
}
newreferences[(*it).second] = references[i];
}
references = newreferences;
}
|