asdasd
authorMax <Infinity2573@gmail.com>
Tue, 2 Aug 2022 22:55:04 +0000 (01:55 +0300)
committerMax <Infinity2573@gmail.com>
Tue, 2 Aug 2022 22:55:04 +0000 (01:55 +0300)
src/dssptools.cpp

index 2b455b045c0dd56df8b59141cb9dc7e26797e8a7..df7bad4eafc1db9c368a7d70713754636650ab6d 100644 (file)
 */
 
 
-
-/* Запилить версию поиска всех остатков против всех. Медленно, но как в дссп.
-   Расхождение может разного восприятия доноров и акцепторовю=. Поменять.
-   Пролин отдельное говно (где ассайн гидроген).
-*/
-
 #include "dssptools.h"
 
 #include <algorithm>
@@ -120,7 +114,7 @@ secondaryStructureTypes secondaryStructures::secondaryStructuresData::getStatus(
 bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Acceptor) const{
     if( ( (*ResInfoMap)[Donor].acceptor[0] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
             ( (*ResInfoMap)[Donor].acceptor[1] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff ) ){
-        std::cout << "HBind Exist" << std::endl;
+        std::cout << "HBond Exist" << std::endl;
     }
     return ( ( (*ResInfoMap)[Donor].acceptor[0] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
              ( (*ResInfoMap)[Donor].acceptor[1] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff ) );
@@ -319,6 +313,22 @@ std::string secondaryStructures::patternSearch(){
     analyzeTurnsAndHelicesPatterns();
     analyzePPHelicesPatterns();
 
+    for(std::size_t i{0}; i < ResInfoMap->size(); ++i){
+        std::cout << (*ResInfoMap)[i].info->nr << *((*ResInfoMap)[i].info->name) ;
+        if ( (*ResInfoMap)[i].donor[0] != nullptr ){
+            std::cout << " has donor[0] = " << (*ResInfoMap)[i].donor[0]->nr << ((*ResInfoMap)[i].donor[0]->name) << " with E = " << (*ResInfoMap)[i].donorEnergy << " and" ;
+        }
+        else {
+            std::cout << " has no donor[0] and" ;
+        }
+        if ( (*ResInfoMap)[i].acceptor[0] != nullptr ){
+            std::cout << " has acceptor[0] = " << (*ResInfoMap)[i].acceptor[0]->nr << ((*ResInfoMap)[i].acceptor[0]->name) << " with E = " << (*ResInfoMap)[i].acceptorEnergy ;
+        }
+        else {
+            std::cout << " has no acceptor[0]" ;
+        }
+    }
+
     /*Write Data*/
 
     for(std::size_t i {0}; i < SecondaryStructuresStatusMap.size(); ++i){
@@ -614,9 +624,9 @@ void DsspTool::calculateHBondEnergy(ResInfo& Donor,
            }
        }
    }
-   else {
-       std::cerr << "PRO DETECTED! THIS IS RESI № " << Donor.info->nr << std::endl; //IT WORKS JUST FINE WITH proLINE.compare("PRO") != 0
-   }
+//   else {
+//       std::cerr << "PRO DETECTED! THIS IS RESI № " << Donor.info->nr << std::endl; //IT WORKS JUST FINE
+//   }
 
    if (HbondEnergy < Donor.acceptorEnergy[0]){
        Donor.acceptor[1] = Donor.acceptor[0];
@@ -704,15 +714,11 @@ void DsspTool::initAnalysis(/*const TrajectoryAnalysisSettings &settings,*/const
 //           std::cout << "Atom " << atomname << " №" << *ai << " From Resi " << *(top.atoms()->resinfo[i].name) << " №" << resicompare << std::endl;
 //       }
    }
-
-   std::cout << "initAnalyzyz ended" << std::endl;
 }
 
 void DsspTool::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc)
 {
 
-    std::cout << "Logic started" << std::endl;
-
     switch(initParams.NBS){
     case (NBSearchMethod::Classique): {
 
@@ -735,7 +741,7 @@ void DsspTool::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc)
                         IndexMap[pair.refIndex()].getIndex(backboneAtomTypes::AtomCA), IndexMap[pair.testIndex()].getIndex(backboneAtomTypes::AtomCA), fr, pbc)
                 < minimalCAdistance){
                 calculateHBondEnergy(IndexMap[pair.refIndex()], IndexMap[pair.testIndex()], fr, pbc);
-                if (&(IndexMap[pair.testIndex()]) != &(IndexMap[pair.refIndex() + 1])){
+                if (IndexMap[pair.testIndex()].info != IndexMap[pair.refIndex() + 1].info){
                     calculateHBondEnergy(IndexMap[pair.testIndex()], IndexMap[pair.refIndex()], fr, pbc);
                 }
             }
@@ -756,7 +762,7 @@ void DsspTool::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc)
                         IndexMap[as_.getResiI()].getIndex(backboneAtomTypes::AtomCA), IndexMap[as_.getResiJ()].getIndex(backboneAtomTypes::AtomCA), fr, pbc)
                 < minimalCAdistance){
                 calculateHBondEnergy(IndexMap[as_.getResiI()], IndexMap[as_.getResiJ()], fr, pbc);
-                if (&(IndexMap[as_.getResiJ()]) != &(IndexMap[as_.getResiI() + 1])){
+                if (IndexMap[as_.getResiJ()].info != IndexMap[as_.getResiI() + 1].info){
                     calculateHBondEnergy(IndexMap[as_.getResiJ()], IndexMap[as_.getResiI()], fr, pbc);
                 }
             }
@@ -782,9 +788,9 @@ void DsspTool::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc)
     }
     }
 
-    for(std::size_t i {0}; i < IndexMap.size(); ++i){
-        std::cout << i + 1 << " " << *(IndexMap[i].info->name) << std::endl;
-    }
+//    for(std::size_t i {0}; i < IndexMap.size(); ++i){
+//        std::cout << i + 1 << " " << *(IndexMap[i].info->name) << std::endl;
+//    }
 
    PatternSearch.initiateSearch(IndexMap, initParams.PPHelices);
    calculateBends(fr, pbc);