Уничтожил stridefactor
authorMax <Infinity2573@gmail.com>
Mon, 19 Sep 2022 15:52:35 +0000 (18:52 +0300)
committerMax <Infinity2573@gmail.com>
Mon, 19 Sep 2022 15:52:35 +0000 (18:52 +0300)
src/dssptools.cpp
src/dssptools.h

index 449eb9b2a5836f433ac6593a709109b84e54caf1..5b775ca731e2644407b9a613111956097344b1ec 100644 (file)
@@ -142,10 +142,10 @@ bool secondaryStructures::hasHBondBetween(std::size_t Donor, std::size_t Accepto
 //        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 );
     }
@@ -248,11 +248,11 @@ void secondaryStructures::analyzeBridgesAndLaddersPatterns(){
 
 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);
                     }
@@ -265,27 +265,25 @@ void secondaryStructures::analyzeTurnsAndHelicesPatterns(){
                 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;
@@ -296,7 +294,7 @@ void secondaryStructures::analyzeTurnsAndHelicesPatterns(){
                 }
                 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);
                     }
                 }
@@ -308,7 +306,7 @@ void secondaryStructures::analyzeTurnsAndHelicesPatterns(){
         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) ;
                 }
             }
index be635e4f37024e9ab515adf95c603423f44b1960..6a605e5e6cc50fee091d7873ddc5d80f12a5967a 100644 (file)
@@ -133,10 +133,10 @@ enum class secondaryStructureTypes : std::size_t { // TODO
 };
 
 enum class turnsTypes : std::size_t {
-    Turn_3 = 0,
+    Turn_3 = 3,
     Turn_4,
     Turn_5,
-    Count
+    Count = 3
 };
 
 enum class HelixPositions : std::size_t {
@@ -187,7 +187,7 @@ private:
        { '~', '=', 'S', 'T', '?', 'I', 'G', 'E', 'B', 'H'} // TODO
     };
     std::string     SecondaryStructuresStringLine;
-    const std::size_t     strideFactor{3};
+//    const std::size_t     strideFactor{3};
 
     bool            hasHBondBetween(std::size_t resi1, std::size_t resi2) const;