From a1ac0f3f800a1fd0416a65ce5bafef1d70a55c1c Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 11 Oct 2022 23:37:08 +0300 Subject: [PATCH] =?utf8?q?=D0=9C=D0=B5=D0=BD=D1=8F=D1=8E=20=D1=82=D0=B8?= =?utf8?q?=D0=BF=D1=8B=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85.=20=D0=90?= =?utf8?q?=D0=B2=D0=BE=D1=81=D1=8C=20=D0=BF=D0=BE=D0=BC=D0=BE=D0=B6=D0=B5?= =?utf8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/dssptools.cpp | 15 ++++++++------- src/dssptools.h | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/dssptools.cpp b/src/dssptools.cpp index f1c2c74..291e56c 100644 --- a/src/dssptools.cpp +++ b/src/dssptools.cpp @@ -212,8 +212,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 )); } @@ -916,11 +916,11 @@ void DsspTool::calculateHBondEnergy(ResInfo& Donor, return void(); } - const float kCouplingConstant = 27.888; - const float minimalAtomDistance{ 0.5 }, - minEnergy{ -9.9 }; - float HbondEnergy{ 0 }; - float distanceNO{ 0 }, distanceHC{ 0 }, distanceHO{ 0 }, distanceNC{ 0 }; + const double kCouplingConstant = 27.888f; + const double minimalAtomDistance{ 0.5f }, + minEnergy{ -9.9f }; + double HbondEnergy{ 0 }; + double distanceNO{ 0 }, distanceHC{ 0 }, distanceHO{ 0 }, distanceNC{ 0 }; // std::cout << "For Donor №" << Donor.info->nr - 1 << " and Accpetor №" << Acceptor.info->nr - 1 << std::endl; @@ -993,6 +993,7 @@ void DsspTool::calculateHBondEnergy(ResInfo& Donor, Donor.acceptorEnergy[1] = HbondEnergy; } + if (HbondEnergy < Acceptor.donorEnergy[0]){ Acceptor.donor[1] = Acceptor.donor[0]; Acceptor.donor[0] = Donor.info; diff --git a/src/dssptools.h b/src/dssptools.h index b38bcd3..1889c41 100644 --- a/src/dssptools.h +++ b/src/dssptools.h @@ -99,7 +99,7 @@ struct ResInfo { std::size_t getIndex(backboneAtomTypes atomTypeName) const; t_resinfo *info{nullptr}, *donor[2]{nullptr, nullptr}, *acceptor[2]{nullptr, nullptr}; ResInfo *prevResi{nullptr}, *nextResi{nullptr}; - float donorEnergy[2]{}, acceptorEnergy[2]{}; + double donorEnergy[2]{}, acceptorEnergy[2]{}; bool is_proline{false}; }; -- 2.22.0