- debug
authorAnatoly <Titov_AI@pnpi.nrcki.ru>
Wed, 21 Oct 2020 13:58:58 +0000 (16:58 +0300)
committerAnatoly <Titov_AI@pnpi.nrcki.ru>
Wed, 21 Oct 2020 13:58:58 +0000 (16:58 +0300)
src/colorvec.cpp

index b765477a1ffcb97d51daf7947db75f72d067a629..641547bede57826f46219b773a2e7febd13158d4 100644 (file)
@@ -224,7 +224,7 @@ bool isNearPeptide( const std::vector< gmx::RVec > &inputFrame, const std::vecto
                     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;
             }
@@ -234,23 +234,43 @@ bool isNearPeptide( const std::vector< gmx::RVec > &inputFrame, const std::vecto
 }
 
 // поиск ближайших к краске бэта-листов
-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;
                     }
                 }
             }
@@ -466,7 +486,7 @@ colorVec::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc, gmx::Trajecto
     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;
@@ -480,7 +500,7 @@ colorVec::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc, gmx::Trajecto
     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;