dasdasd
authorMax <Infinity2573@gmail.com>
Tue, 2 Aug 2022 23:50:16 +0000 (02:50 +0300)
committerMax <Infinity2573@gmail.com>
Tue, 2 Aug 2022 23:50:16 +0000 (02:50 +0300)
src/dssptools.cpp

index 365fae0076085b90cd4299eb16d08740030a71ce..f14e51b6e7f7d6e5c4c85323250090ce80ce77e8 100644 (file)
@@ -115,13 +115,20 @@ secondaryStructureTypes secondaryStructures::secondaryStructuresData::getStatus(
     return SSData;
 }
 
-bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Acceptor) const{
-    if( ( (*ResInfoMap)[Donor].acceptor[0]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
-            ( (*ResInfoMap)[Donor].acceptor[1]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff ) ){
-        std::cout << "HBond Exist" << std::endl;
+bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Acceptor) const{ // prob should add resi name comparison ?
+    if( (*ResInfoMap)[Donor].acceptor[0] == nullptr ||
+        (*ResInfoMap)[Donor].acceptor[1] == nullptr ||
+        (*ResInfoMap)[Acceptor].info == nullptr ){
+        return false;
+    }
+    else {
+        if( ( ( (*ResInfoMap)[Donor].acceptor[0]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptor[0]->chainid == (*ResInfoMap)[Acceptor].info->chainid ) && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
+                ( ( (*ResInfoMap)[Donor].acceptor[1]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptor[1]->chainid == (*ResInfoMap)[Acceptor].info->chainid ) && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff ) ){
+            std::cout << "HBond Exist" << std::endl;
+        }
+        return ( ( (*ResInfoMap)[Donor].acceptor[0]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptor[0]->chainid == (*ResInfoMap)[Acceptor].info->chainid ) && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
+                ( ( (*ResInfoMap)[Donor].acceptor[1]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptor[1]->chainid == (*ResInfoMap)[Acceptor].info->chainid ) && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff );
     }
-    return ( ( (*ResInfoMap)[Donor].acceptor[0]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
-             ( (*ResInfoMap)[Donor].acceptor[1]->nr == (*ResInfoMap)[Acceptor].info->nr && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff ) );
 }
 
 bool secondaryStructures::NoChainBreaksBetween(std::size_t Resi1, std::size_t Resi2) const{