From 85b65d40ea155c4f387bf4426ead02e8b51470d9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=93=D0=BE=D1=80=D0=B5=D0=BB=D0=BE=D0=B2=20=D0=A1=D0=B5?= =?utf8?q?=D1=80=D0=B3=D0=B5=D0=B9=20=D0=92=D0=B0=D1=81=D0=B8=D0=BB=D1=8C?= =?utf8?q?=D0=B5=D0=B2=D0=B8=D1=87?= Date: Mon, 3 Oct 2022 14:57:19 +0300 Subject: [PATCH] =?utf8?q?=D0=AF=20=D0=BE=D1=82=D1=87=D0=B0=D1=8F=D0=BB?= =?utf8?q?=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/dssptools.cpp | 43 ++++++++++--------------------------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/src/dssptools.cpp b/src/dssptools.cpp index 5701813..e019de7 100644 --- a/src/dssptools.cpp +++ b/src/dssptools.cpp @@ -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::iterator Donor {IndexMap.begin()}; Donor != IndexMap.end() ; ++Donor){ -// for(std::vector::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::iterator Donor {IndexMap.begin()}; Donor != IndexMap.end() ; ++Donor){ + for(std::vector::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); } } } -- 2.22.0