// std::cout << "DONOR's acceptors' nr are = " << (*ResInfoMap)[Donor].acceptor[0]->nr << ", " << (*ResInfoMap)[Donor].acceptor[1]->nr << " And ACCEPTOR's nr = " << (*ResInfoMap)[Acceptor].info->nr << std::endl;
// std::cout << "DONOR's acceptors' chainID are = " << (*ResInfoMap)[Donor].acceptor[0]->chainid << ", " << (*ResInfoMap)[Donor].acceptor[1]->chainid << " And ACCEPTOR's chainID = " << (*ResInfoMap)[Acceptor].info->chainid << 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;
- }
+// 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;
+// }
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 );
}
void secondaryStructures::analyzeTurnsAndHelicesPatterns(){
for(const turnsTypes &i : { turnsTypes::Turn_4, turnsTypes::Turn_3, turnsTypes::Turn_5 }){
- for(std::size_t j {0}; j + (static_cast<std::size_t>(i) + strideFactor) < SecondaryStructuresStatusMap.size(); ++j){
- if ( hasHBondBetween(j, j + (static_cast<std::size_t>(i) + strideFactor)) && NoChainBreaksBetween(j, j + (static_cast<std::size_t>(i) + strideFactor)) ){
- SecondaryStructuresStatusMap[j + (static_cast<std::size_t>(i) + strideFactor)].setStatus(HelixPositions::End, i);
+ for(std::size_t j {0}; j + (static_cast<std::size_t>(i)) < SecondaryStructuresStatusMap.size(); ++j){
+ if ( hasHBondBetween(j, j + (static_cast<std::size_t>(i))) && NoChainBreaksBetween(j, j + (static_cast<std::size_t>(i))) ){
+ SecondaryStructuresStatusMap[j + (static_cast<std::size_t>(i))].setStatus(HelixPositions::End, i);
- for (std::size_t k {1}; k < (static_cast<std::size_t>(i) + strideFactor); ++k){
+ for (std::size_t k {1}; k < (static_cast<std::size_t>(i)); ++k){
if( SecondaryStructuresStatusMap[j + k].getStatus(i) == HelixPositions::None ){
SecondaryStructuresStatusMap[j + k].setStatus(HelixPositions::Middle, i);
}
else {
SecondaryStructuresStatusMap[j].setStatus(HelixPositions::Start, i);
}
-
- std::cout << j << " is TURN START" << std::endl;
}
}
}
for(const turnsTypes &i : { turnsTypes::Turn_4, turnsTypes::Turn_3, turnsTypes::Turn_5 }){
- for(std::size_t j {1}; j + (static_cast<std::size_t>(i) + strideFactor) < SecondaryStructuresStatusMap.size(); ++j){
+ for(std::size_t j {1}; j + (static_cast<std::size_t>(i)) < SecondaryStructuresStatusMap.size(); ++j){
if ( (SecondaryStructuresStatusMap[j - 1].getStatus(i) == HelixPositions::Start || SecondaryStructuresStatusMap[j - 1].getStatus(i) == HelixPositions::Start_AND_End ) &&
(SecondaryStructuresStatusMap[j].getStatus(i) == HelixPositions::Start || SecondaryStructuresStatusMap[j].getStatus(i) == HelixPositions::Start_AND_End ) ){
bool empty = true;
secondaryStructureTypes Helix;
switch(i){
case turnsTypes::Turn_3:
- for (std::size_t k {0}; empty && k < (static_cast<std::size_t>(i) + strideFactor); ++k){
+ for (std::size_t k {0}; empty && k < (static_cast<std::size_t>(i)); ++k){
empty = SecondaryStructuresStatusMap[j + k].getStatus() == secondaryStructureTypes::Loop || SecondaryStructuresStatusMap[j + k].getStatus() == secondaryStructureTypes::Helix_3;
}
Helix = secondaryStructureTypes::Helix_3;
break;
case turnsTypes::Turn_5:
- for (std::size_t k {0}; empty && k < (static_cast<std::size_t>(i) + strideFactor); ++k){
+ for (std::size_t k {0}; empty && k < (static_cast<std::size_t>(i)); ++k){
empty = SecondaryStructuresStatusMap[j + k].getStatus() == secondaryStructureTypes::Loop || SecondaryStructuresStatusMap[j + k].getStatus() == secondaryStructureTypes::Helix_5 || (PiHelixPreference && SecondaryStructuresStatusMap[j + k].getStatus() == secondaryStructureTypes::Helix_5);
}
Helix = secondaryStructureTypes::Helix_4;
}
std::cout << j << " is HELIX" << std::endl;
if ( empty ){
- for(std::size_t k {0}; k < (static_cast<std::size_t>(i) + strideFactor); ++k ){
+ for(std::size_t k {0}; k < (static_cast<std::size_t>(i)); ++k ){
SecondaryStructuresStatusMap[j + k].setStatus(Helix);
}
}
if (SecondaryStructuresStatusMap[i].getStatus() == secondaryStructureTypes::Loop ){
bool isTurn = false;
for(const turnsTypes &j : {turnsTypes::Turn_3, turnsTypes::Turn_4, turnsTypes::Turn_5}){
- for(std::size_t k {1}; k < (static_cast<std::size_t>(j) + strideFactor); ++k){
+ for(std::size_t k {1}; k < (static_cast<std::size_t>(j)); ++k){
isTurn = (i >= k) && (SecondaryStructuresStatusMap[i - k].getStatus(j) == HelixPositions::Start || SecondaryStructuresStatusMap[i - k].getStatus(j) == HelixPositions::Start_AND_End) ;
}
}