// 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 ||
// 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 ));
}
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
HbondEnergy = minEnergy;
}
- std::cout << "Calculated energy = " << HbondEnergy << std::endl;
+// std::cout << "Calculated energy = " << HbondEnergy << std::endl;
}
// else{
// std::cout << "Donor Is Proline" << std::endl;
}
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);
}
}
}