const std::vector< std::pair< std::string, size_t > > &inputColor, const double cutOff) {
for (size_t i {0}; i < inputColor.size(); ++i) {
for (size_t j {0}; j < inputIndex.size(); ++j) {
- if ((inputFrame[inputIndex[j]] - inputFrame[inputColor[i].second]).norm() <= cutOff*20) {
+ if ((inputFrame[inputIndex[j]] - inputFrame[inputColor[i].second]).norm() <= cutOff) {
std::cout << "yes";
return true;
}
}
// поиск ближайших к краске бэта-листов
-inline void searchNearBetaLists(const t_trxframe &fr, const t_pbc *pbc, const std::vector< gmx::RVec > &inputFrame,
- gmx::AnalysisNeighborhood &nbhood,
- const std::vector< std::vector< unsigned int > > &inputBLists,
- const std::vector< std::pair< std::string, size_t > > &inputColor,
- std::vector< bool > &outputList, const std::vector< std::vector< size_t > > &inputAminoacids) {
+//inline void searchNearBetaLists(const t_trxframe &fr, const t_pbc *pbc, const std::vector< gmx::RVec > &inputFrame,
+// gmx::AnalysisNeighborhood &nbhood,
+// const std::vector< std::vector< unsigned int > > &inputBLists,
+// const std::vector< std::pair< std::string, size_t > > &inputColor,
+// std::vector< bool > &outputList, const std::vector< std::vector< size_t > > &inputAminoacids) {
+// outputList.resize(0);
+// outputList.resize(inputBLists.size(), false);
+// gmx::AnalysisNeighborhoodSearch nbsearch = nbhood.initSearch(pbc, gmx::AnalysisNeighborhoodPositions(fr.x, fr.natoms));
+// gmx::AnalysisNeighborhoodPair pair;
+// for (const auto &i : inputColor) {
+// while (nbsearch.startPairSearch(inputFrame[i.second].as_vec()).findNextPair(&pair)) {
+// for (size_t j = 0; j < inputBLists.size(); ++j) {
+// for (size_t k = 0; k < inputBLists[j].size(); ++k) {
+// for (size_t m = 0; m < inputAminoacids[inputBLists[j][k]].size(); ++m) {
+// if (pair.testIndex() == inputAminoacids[inputBLists[j][k]][m]) {
+// outputList[j] = true;
+// }
+// }
+// }
+// }
+// }
+// }
+//}
+
+inline void searchNearBetaLists(const std::vector< gmx::RVec > &inputFrame, const std::vector< std::vector< unsigned int > > &inputBLists,
+ const std::vector< std::pair< std::string, size_t > > &inputColor, std::vector< bool > &outputList,
+ const std::vector< std::vector< size_t > > &inputAminoacids, const double cutOff) {
outputList.resize(0);
outputList.resize(inputBLists.size(), false);
- gmx::AnalysisNeighborhoodSearch nbsearch = nbhood.initSearch(pbc, gmx::AnalysisNeighborhoodPositions(fr.x, fr.natoms));
- gmx::AnalysisNeighborhoodPair pair;
- for (const auto &i : inputColor) {
- while (nbsearch.startPairSearch(inputFrame[i.second].as_vec()).findNextPair(&pair)) {
- for (size_t j = 0; j < inputBLists.size(); ++j) {
- for (size_t k = 0; k < inputBLists[j].size(); ++k) {
- for (size_t m = 0; m < inputAminoacids[inputBLists[j][k]].size(); ++m) {
- if (pair.testIndex() == inputAminoacids[inputBLists[j][k]][m]) {
- outputList[j] = true;
- }
+ for (size_t i {0}; i < inputColor.size(); ++i) {
+ for (size_t j = 0; j < inputBLists.size(); ++j) {
+ for (size_t k = 0; k < inputBLists[j].size(); ++k) {
+ for (size_t m = 0; m < inputAminoacids[inputBLists[j][k]].size(); ++m) {
+ if ((inputFrame[inputAminoacids[inputBLists[j][k]][m]] - inputFrame[inputColor[i].second]).norm() <= cutOff) {
+ outputList[j] = true;
+ m = inputAminoacids[inputBLists[j][k]].size() + 1;
+ k = inputBLists[j].size() + 1;
}
}
}
colorsToPeptide.resize(colorsNames.size(), false);
std::cout << "\t\tWhich colors are \"near\" the pepride mass." << std::endl;
for (size_t i = 0; i < colorsNames.size(); ++i) {
- colorsToPeptide[i] = isNearPeptide(trajectoryFrame, index, colorsNames[i], effRad);
+ colorsToPeptide[i] = isNearPeptide(trajectoryFrame, index, colorsNames[i], effRad * 20);
}
// расчёт угла и среднего угла с ближайшими бета листами
std::vector< std::vector< bool > > colorsToBeta;
std::cout << "\t\tSearching nearby beta-lists." << std::endl;
for (size_t i = 0; i < colorsToPeptide.size(); ++i) {
if (colorsToPeptide[i]) {
- searchNearBetaLists(fr, pbc, trajectoryFrame, nb_, betaLists[frnr], colorsNames[i], colorsToBeta[i], aminoacidsIndex);
+ searchNearBetaLists(trajectoryFrame, betaLists[frnr], colorsNames[i], colorsToBeta[i], aminoacidsIndex, effRad * 20);
}
}
std::cout << "\t\tComputing angles colors vs betas." << std::endl;