Я отчаялся
authorГорелов Сергей Васильевич <gorelov_sv@pnpi.nrcki.ru>
Mon, 3 Oct 2022 11:57:19 +0000 (14:57 +0300)
committerГорелов Сергей Васильевич <gorelov_sv@pnpi.nrcki.ru>
Mon, 3 Oct 2022 11:57:19 +0000 (14:57 +0300)
src/dssptools.cpp

index 57018131cca1a3e37cbcf5b08c32c45636a38bbd..e019de7ef81d32f99e5c5f06a1ba39e3b0c29200 100644 (file)
@@ -184,17 +184,6 @@ 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. 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 if (!( (*ResInfoMap)[Acceptor].donor[0] == nullptr ||
@@ -224,8 +213,8 @@ bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Accepto
 //        std::cout << 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 ));
 
 
 }
@@ -935,7 +924,7 @@ void DsspTool::calculateHBondEnergy(ResInfo& Donor,
     float HbondEnergy{ 0 };
     float distanceNO{ 0 }, distanceHC{ 0 }, distanceHO{ 0 }, distanceNC{ 0 };
 
-    std::cout << "For Donor №" << Donor.info->nr - 1 << " and Accpetor №" << Acceptor.info->nr - 1 << std::endl;
+//    std::cout << "For Donor №" << Donor.info->nr - 1 << " and Accpetor №" << Acceptor.info->nr - 1 << std::endl;
 
     if( !(Donor.is_proline) && (Acceptor.getIndex(backboneAtomTypes::AtomC) && Acceptor.getIndex(backboneAtomTypes::AtomO)
                                 && Donor.getIndex(backboneAtomTypes::AtomN) && ( Donor.getIndex(backboneAtomTypes::AtomH) || initParams.addHydrogens ) ) ){ // TODO
@@ -990,7 +979,7 @@ void DsspTool::calculateHBondEnergy(ResInfo& Donor,
             HbondEnergy = minEnergy;
        }
 
-       std::cout << "Calculated energy = " << HbondEnergy << std::endl;
+//       std::cout << "Calculated energy = " << HbondEnergy << std::endl;
     }
 //    else{
 //        std::cout << "Donor Is Proline" << std::endl;
@@ -1171,26 +1160,14 @@ void DsspTool::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc)
     }
     default: {
 
-//        for(std::vector<ResInfo>::iterator Donor {IndexMap.begin()}; Donor != IndexMap.end() ; ++Donor){
-//            for(std::vector<ResInfo>::iterator Acceptor {Donor + 1} ; Acceptor != IndexMap.end() ; ++Acceptor){
-//                if(CalculateAtomicDistances(
-//                            Donor->getIndex(backboneAtomTypes::AtomCA), Acceptor->getIndex(backboneAtomTypes::AtomCA), fr, pbc)
-//                    < minimalCAdistance){
-//                    calculateHBondEnergy(*Donor, *Acceptor, fr, pbc);
-//                    if (Acceptor != Donor + 1){
-//                        calculateHBondEnergy(*Acceptor, *Donor, fr, pbc);
-//                    }
-//                }
-//            }
-//        }
-        for(std::size_t i {0}; i + 1 < IndexMap.size(); ++i ){
-            for(std::size_t j {i + 1}; j < IndexMap.size(); ++j){
+        for(std::vector<ResInfo>::iterator Donor {IndexMap.begin()}; Donor != IndexMap.end() ; ++Donor){
+            for(std::vector<ResInfo>::iterator Acceptor {Donor + 1} ; Acceptor != IndexMap.end() ; ++Acceptor){
                 if(CalculateAtomicDistances(
-                            IndexMap[i].getIndex(backboneAtomTypes::AtomCA), IndexMap[j].getIndex(backboneAtomTypes::AtomCA), fr, pbc)
+                            Donor->getIndex(backboneAtomTypes::AtomCA), Acceptor->getIndex(backboneAtomTypes::AtomCA), fr, pbc)
                     < minimalCAdistance){
-                    calculateHBondEnergy(IndexMap[i], IndexMap[j], fr, pbc);
-                    if (j != i + 1){
-                        calculateHBondEnergy(IndexMap[j], IndexMap[i], fr, pbc);
+                    calculateHBondEnergy(*Donor, *Acceptor, fr, pbc);
+                    if (Acceptor != Donor + 1){
+                        calculateHBondEnergy(*Acceptor, *Donor, fr, pbc);
                     }
                 }
             }