asdsadsadsadsadasdsdsad
authorMax <Infinity2573@gmail.com>
Sun, 25 Sep 2022 12:33:52 +0000 (15:33 +0300)
committerMax <Infinity2573@gmail.com>
Sun, 25 Sep 2022 12:33:52 +0000 (15:33 +0300)
src/dssptools.cpp

index fa02c372c7d5fd750cb7a47b7eeaa94fa77b9c02..e20f9c7c8049cefe6664cb939b093a54711e13c5 100644 (file)
@@ -126,7 +126,17 @@ bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Accepto
     if( (*ResInfoMap)[Donor].acceptor[0] == nullptr ||
         (*ResInfoMap)[Donor].acceptor[1] == nullptr ||
         (*ResInfoMap)[Acceptor].info == nullptr ){
-        std::cout << "Bad hbond check" << std::endl;
+        std::cout << "Bad hbond check. Reason(s): " ;
+        if ( (*ResInfoMap)[Donor].acceptor[0] == nullptr ){
+            std::cout << "Donor has no acceptor[0]; ";
+        }
+        if ( (*ResInfoMap)[Donor].acceptor[1] == nullptr ){
+            std::cout << "Donor has no acceptor[1]; ";
+        }
+        if ( (*ResInfoMap)[Acceptor].info == nullptr ){
+            std::cout << "No info about acceptor; ";
+        }
+        std::cout << std::endl;
         return false;
     }
     else {
@@ -141,17 +151,15 @@ bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Accepto
 //            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 );
+//
 
 
     }
 
     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 ) ||
-            ( (*ResInfoMap)[Acceptor].donor[0] == (*ResInfoMap)[Donor].info && (*ResInfoMap)[Acceptor].donorEnergy[0] < HBondEnergyCutOff ) ||
-            ( (*ResInfoMap)[Acceptor].donor[1] == (*ResInfoMap)[Donor].info && (*ResInfoMap)[Acceptor].donorEnergy[1] < HBondEnergyCutOff )
-            ;
+           ( (*ResInfoMap)[Donor].acceptor[1] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff );
+
+
 }
 
 bool secondaryStructures::NoChainBreaksBetween(std::size_t Resi1, std::size_t Resi2) const{
@@ -266,7 +274,7 @@ void secondaryStructures::analyzeTurnsAndHelicesPatterns(){
         std::cout << "Testing Helix_" << stride << std::endl;
         for(std::size_t j {0}; j + stride < SecondaryStructuresStatusMap.size(); ++j){
             std::cout << "Testing " << j << " and " << j + stride << std::endl;
-            if ( hasHBondBetween(j, j + stride) && NoChainBreaksBetween(j, j + stride) ){
+            if ( hasHBondBetween(j + stride, j) && NoChainBreaksBetween(j, j + stride) ){
                 std::cout << j << " and " << j + stride << " has hbond!" << std::endl;
                 SecondaryStructuresStatusMap[j + stride].setStatus(HelixPositions::End, i);