setStatus(secondaryStructureTypes::Break);
}
-bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Acceptor) const{ // prob should add resi name comparison ?
+bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Acceptor) const{
if( (*ResInfoMap)[Donor].acceptor[0] == nullptr ||
(*ResInfoMap)[Donor].acceptor[1] == nullptr ||
(*ResInfoMap)[Acceptor].info == nullptr ){
std::cout << std::endl;
return false;
}
- else if (!( (*ResInfoMap)[Acceptor].donor[0] == nullptr ||
- (*ResInfoMap)[Acceptor].donor[1] == nullptr ||
- (*ResInfoMap)[Donor].info == nullptr )) {
- std::cout << "Comparing DONOR №" << (*ResInfoMap)[Donor].info->nr << " And ACCEPTOR №" << (*ResInfoMap)[Acceptor].info->nr << ": " << std::endl;
- std::cout << "Donor's acceptors' nr are = " << (*ResInfoMap)[Donor].acceptor[0]->nr << " (chain " << (*ResInfoMap)[Donor].acceptor[0]->chainid << ") , " << (*ResInfoMap)[Donor].acceptor[1]->nr << " (chain " << (*ResInfoMap)[Donor].acceptor[1]->chainid << ")" << std::endl;
- std::cout << "Donor's acceptors' energy are = " << (*ResInfoMap)[Donor].acceptorEnergy[0] << ", " << (*ResInfoMap)[Donor].acceptorEnergy[1] << std::endl;
- std::cout << "Acceptors's donors' nr are = " << (*ResInfoMap)[Acceptor].donor[0]->nr << " (chain " << (*ResInfoMap)[Acceptor].donor[0]->chainid << ") , " << (*ResInfoMap)[Acceptor].donor[1]->nr << " (chain " << (*ResInfoMap)[Acceptor].donor[1]->chainid << ")" << std::endl;
- std::cout << "Acceptors's donors' energy are = " << (*ResInfoMap)[Acceptor].donorEnergy[0] << ", " << (*ResInfoMap)[Acceptor].donorEnergy[1] << std::endl;
- if( ( (*ResInfoMap)[Donor].acceptor[0] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
- ( (*ResInfoMap)[Donor].acceptor[1] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff ) ){
- std::cout << "HBond Exist" << std::endl;
- }
- }
- else {
- std::cout << "Bad hbond check. Reason(s): " ;
- if ( (*ResInfoMap)[Acceptor].donor[0] == nullptr ){
- std::cout << "Acceptor has no donor[0]; ";
- }
- if ( (*ResInfoMap)[Acceptor].donor[1] == nullptr ){
- std::cout << "Acceptor has no donor[1]; ";
- }
- if ( (*ResInfoMap)[Donor].info == nullptr ){
- std::cout << "No info about donor; ";
- }
- std::cout << std::endl;
- }
+// else if (!( (*ResInfoMap)[Acceptor].donor[0] == nullptr ||
+// (*ResInfoMap)[Acceptor].donor[1] == nullptr ||
+// (*ResInfoMap)[Donor].info == nullptr )) {
+// std::cout << "Comparing DONOR №" << (*ResInfoMap)[Donor].info->nr << " And ACCEPTOR №" << (*ResInfoMap)[Acceptor].info->nr << ": " << std::endl;
+// std::cout << "Donor's acceptors' nr are = " << (*ResInfoMap)[Donor].acceptor[0]->nr << " (chain " << (*ResInfoMap)[Donor].acceptor[0]->chainid << ") , " << (*ResInfoMap)[Donor].acceptor[1]->nr << " (chain " << (*ResInfoMap)[Donor].acceptor[1]->chainid << ")" << std::endl;
+// std::cout << "Donor's acceptors' energy are = " << (*ResInfoMap)[Donor].acceptorEnergy[0] << ", " << (*ResInfoMap)[Donor].acceptorEnergy[1] << std::endl;
+// std::cout << "Acceptors's donors' nr are = " << (*ResInfoMap)[Acceptor].donor[0]->nr << " (chain " << (*ResInfoMap)[Acceptor].donor[0]->chainid << ") , " << (*ResInfoMap)[Acceptor].donor[1]->nr << " (chain " << (*ResInfoMap)[Acceptor].donor[1]->chainid << ")" << std::endl;
+// std::cout << "Acceptors's donors' energy are = " << (*ResInfoMap)[Acceptor].donorEnergy[0] << ", " << (*ResInfoMap)[Acceptor].donorEnergy[1] << std::endl;
+// if( ( (*ResInfoMap)[Donor].acceptor[0] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[0] < HBondEnergyCutOff ) ||
+// ( (*ResInfoMap)[Donor].acceptor[1] == (*ResInfoMap)[Acceptor].info && (*ResInfoMap)[Donor].acceptorEnergy[1] < HBondEnergyCutOff ) ){
+// std::cout << "HBond Exist" << std::endl;
+// }
+// }
+// else {
+// std::cout << "Bad hbond check. Reason(s): " ;
+// if ( (*ResInfoMap)[Acceptor].donor[0] == nullptr ){
+// std::cout << "Acceptor has no donor[0]; ";
+// }
+// if ( (*ResInfoMap)[Acceptor].donor[1] == nullptr ){
+// std::cout << "Acceptor has no donor[1]; ";
+// }
+// if ( (*ResInfoMap)[Donor].info == nullptr ){
+// std::cout << "No info about donor; ";
+// }
+// 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 );
for (std::size_t k {1}; k < stride; ++k){
if( SecondaryStructuresStatusMap[j + k].getStatus(i) == HelixPositions::None ){
SecondaryStructuresStatusMap[j + k].setStatus(HelixPositions::Middle, i);
- SecondaryStructuresStatusMap[j + k].setStatus(secondaryStructureTypes::Turn);
+// SecondaryStructuresStatusMap[j + k].setStatus(secondaryStructureTypes::Turn);
}
}
break;
}
if ( empty || Helix == secondaryStructureTypes::Helix_4 ){
- for(std::size_t k {0}; k < stride - 1; ++k ){
+ for(std::size_t k {0}; k < stride; ++k ){
SecondaryStructuresStatusMap[j + k].setStatus(Helix);
}
}
}
}
-// for(std::size_t i {1}; i + 1 < SecondaryStructuresStatusMap.size(); ++i){
-// if (SecondaryStructuresStatusMap[i].getStatus(secondaryStructureTypes::Loop)){
-// bool isTurn = false;
-// for(const turnsTypes &j : {turnsTypes::Turn_3, turnsTypes::Turn_4, turnsTypes::Turn_5}){
-// std::size_t stride {static_cast<std::size_t>(i) + 3};
-// for(std::size_t k {1}; k < stride; ++k){
-// isTurn = (i >= k) && (SecondaryStructuresStatusMap[i - k].getStatus(j) == HelixPositions::Start || SecondaryStructuresStatusMap[i - k].getStatus(j) == HelixPositions::Start_AND_End) ;
-// }
-// }
+ for(std::size_t i {1}; i + 1 < SecondaryStructuresStatusMap.size(); ++i){
+ if (SecondaryStructuresStatusMap[i].getStatus(secondaryStructureTypes::Loop)){
+ bool isTurn = false;
+ for(const turnsTypes &j : {turnsTypes::Turn_3, turnsTypes::Turn_4, turnsTypes::Turn_5}){
+ std::size_t stride {static_cast<std::size_t>(i) + 3};
+ for(std::size_t k {1}; k < stride; ++k){
+ isTurn = (i >= k) && (SecondaryStructuresStatusMap[i - k].getStatus(j) == HelixPositions::Start || SecondaryStructuresStatusMap[i - k].getStatus(j) == HelixPositions::Start_AND_End) ;
+ }
+ }
-// if (isTurn){
-// SecondaryStructuresStatusMap[i].setStatus(secondaryStructureTypes::Turn);
-// }
-// else if (SecondaryStructuresStatusMap[i].getStatus(secondaryStructureTypes::Bend)){
-// SecondaryStructuresStatusMap[i].setStatus(secondaryStructureTypes::Bend);
-// }
-// }
-// }
+ if (isTurn){
+ SecondaryStructuresStatusMap[i].setStatus(secondaryStructureTypes::Turn);
+ }
+ }
+ }
}
HbondEnergy = std::round(HbondEnergy * 1000) / 1000;
- if ( HbondEnergy < minEnergy ){ // I don't think that this is correct
- HbondEnergy = minEnergy;
- }
+// if ( HbondEnergy < minEnergy ){ // I don't think that this is correct
+// HbondEnergy = minEnergy;
+// }
// std::cout << "Calculated energy = " << HbondEnergy << std::endl;
}