}
}
+//// определение близко ли к белку находится краска
+//bool isNearPeptide(const t_trxframe &fr, const t_pbc *pbc, const std::vector< gmx::RVec > &inputFrame,
+// /*gmx::AnalysisNeighborhood &nbhood, */const std::vector< size_t > &inputIndex,
+// const std::vector< std::pair< std::string, size_t > > &inputColor) {
+// /*gmx::AnalysisNeighborhoodSearch nbsearch = nbhood.initSearch(pbc, gmx::AnalysisNeighborhoodPositions(fr.x, fr.natoms));
+// gmx::AnalysisNeighborhoodPair pair;*/
+
+// for (size_t i = 0; i < inputColor.size(); ++i) {
+// std::cout << inputColor[i].first << " " << i << " / " << inputColor.size() << std::endl;
+// gmx::AnalysisNeighborhood nbhood;
+// nbhood.setCutoff(0.8);
+// gmx::AnalysisNeighborhoodSearch nbsearch = nbhood.initSearch(pbc, gmx::AnalysisNeighborhoodPositions(fr.x, fr.natoms));
+// gmx::AnalysisNeighborhoodPair pair;
+// gmx::AnalysisNeighborhoodPairSearch pairSearch = nbsearch.startPairSearch(inputFrame[inputColor[i].second].as_vec());
+// int count1 {0};
+// while (pairSearch.findNextPair(&pair)) {
+// std::cout << ++count1 << " ";
+// for (size_t j = 0; j < inputIndex.size(); ++j) {
+// if (pair.refIndex() == inputIndex[j]) {
+// return true;
+// }
+// }
+// }
+// std::cout << inputColor[i].first << " atom done" << std::endl;
+// }
+// return false;
+//}
+
// определение близко ли к белку находится краска
-bool isNearPeptide(const t_trxframe &fr, const t_pbc *pbc, const std::vector< gmx::RVec > &inputFrame,
- /*gmx::AnalysisNeighborhood &nbhood, */const std::vector< size_t > &inputIndex,
- const std::vector< std::pair< std::string, size_t > > &inputColor) {
- /*gmx::AnalysisNeighborhoodSearch nbsearch = nbhood.initSearch(pbc, gmx::AnalysisNeighborhoodPositions(fr.x, fr.natoms));
- gmx::AnalysisNeighborhoodPair pair;*/
-
- for (size_t i = 0; i < inputColor.size(); ++i) {
- std::cout << inputColor[i].first << " " << i << " / " << inputColor.size() << std::endl;
- gmx::AnalysisNeighborhood nbhood;
- nbhood.setCutoff(0.8);
- gmx::AnalysisNeighborhoodSearch nbsearch = nbhood.initSearch(pbc, gmx::AnalysisNeighborhoodPositions(fr.x, fr.natoms));
- gmx::AnalysisNeighborhoodPair pair;
- gmx::AnalysisNeighborhoodPairSearch pairSearch = nbsearch.startPairSearch(inputFrame[inputColor[i].second].as_vec());
- int count1 {0};
+bool isNearPeptide(const std::vector< gmx::RVec > &inputFrame, const std::vector< size_t > &inputIndex,
+ const std::vector< std::pair< std::string, size_t > > &inputColor, const double cutOff) {
+ for (size_t i {0}; i < inputColor.size(); ++i) {
while (pairSearch.findNextPair(&pair)) {
- std::cout << ++count1 << " ";
- for (size_t j = 0; j < inputIndex.size(); ++j) {
- if (pair.refIndex() == inputIndex[j]) {
+ for (size_t j {0}; j < inputIndex.size(); ++j) {
+ if ((inputFrame[inputIndex[j]] - inputFrame[inputColor[i].second]).norm() <= cutOff) {
return true;
}
}
}
- std::cout << inputColor[i].first << " atom done" << std::endl;
}
return false;
}
}
}
}
-
}
// определение углов между краской и направляющим вектором бэта-листа