From 8041a6cd7784416e2d5f950914c0c2c3d2392300 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 19 Sep 2022 19:36:14 +0300 Subject: [PATCH] asdasdsad --- src/dssptools.cpp | 20 ++++++++++++-------- src/dssptools.h | 5 ++--- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/dssptools.cpp b/src/dssptools.cpp index 5a2e5ad..5efefe8 100644 --- a/src/dssptools.cpp +++ b/src/dssptools.cpp @@ -97,7 +97,7 @@ void secondaryStructures::secondaryStructuresData::setStatus(const secondaryStru } void secondaryStructures::secondaryStructuresData::setStatus(const HelixPositions helixPosition, const turnsTypes turn){ - TurnsStatusArray[static_cast(turn) - 3] = helixPosition; + TurnsStatusArray[static_cast(turn)] = helixPosition; } bool secondaryStructures::secondaryStructuresData::getStatus(const secondaryStructureTypes secondaryStructureTypeName) const{ @@ -260,10 +260,12 @@ void secondaryStructures::analyzeBridgesAndLaddersPatterns(){ void secondaryStructures::analyzeTurnsAndHelicesPatterns(){ for(const turnsTypes &i : { turnsTypes::Turn_4, turnsTypes::Turn_3, turnsTypes::Turn_5 }){ - std::cout << "Testing Helix_" << &i << std::endl; + std::cout << "Testing Helix_" << static_cast(i) << std::endl; + std::size_t stride {static_cast(i) + 3}; for(std::size_t j {0}; j + static_cast(i) < SecondaryStructuresStatusMap.size(); ++j){ - std::cout << "Testing " << j << " and " << j + static_cast(i) << std::endl; - if ( hasHBondBetween(j, j + (static_cast(i))) && NoChainBreaksBetween(j, j + static_cast(i)) ){ + std::cout << "Testing " << j << " and " << j + stride << std::endl; + if ( hasHBondBetween(j, j + (static_cast(i))) && NoChainBreaksBetween(j, j + stride) ){ + std::cout << j << " and " << j + stride << " has hbond!" << std::endl; SecondaryStructuresStatusMap[j + static_cast(i)].setStatus(HelixPositions::End, i); for (std::size_t k {1}; k < (static_cast(i)); ++k){ @@ -284,20 +286,21 @@ void secondaryStructures::analyzeTurnsAndHelicesPatterns(){ } for(const turnsTypes &i : { turnsTypes::Turn_4, turnsTypes::Turn_3, turnsTypes::Turn_5 }){ - for(std::size_t j {1}; j + (static_cast(i)) < SecondaryStructuresStatusMap.size(); ++j){ + std::size_t stride {static_cast(i) + 3}; + for(std::size_t j {1}; j + stride < 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(i)); ++k){ + for (std::size_t k {0}; empty && k < stride; ++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(i)); ++k){ + for (std::size_t k {0}; empty && k < stride; ++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; @@ -320,7 +323,8 @@ 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(j)); ++k){ + std::size_t stride {static_cast(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) ; } } diff --git a/src/dssptools.h b/src/dssptools.h index 74638a8..42f3587 100644 --- a/src/dssptools.h +++ b/src/dssptools.h @@ -133,10 +133,10 @@ enum class secondaryStructureTypes : std::size_t { // TODO }; enum class turnsTypes : std::size_t { - Turn_3 = 3, + Turn_3 = 0, Turn_4, Turn_5, - Count = 3 + Count }; enum class HelixPositions : std::size_t { @@ -187,7 +187,6 @@ private: { '~', '=', 'S', 'T', '?', 'I', 'G', 'E', 'B', 'H'} // TODO }; std::string SecondaryStructuresStringLine; -// const std::size_t strideFactor{3}; bool hasHBondBetween(std::size_t resi1, std::size_t resi2) const; -- 2.22.0