void secondaryStructures::secondaryStructuresData::setStatus(const secondaryStructureTypes secondaryStructureTypeName){
SecondaryStructuresStatusArray[static_cast<std::size_t>(secondaryStructureTypeName)] = true;
+ SecondaryStructuresStatus = secondaryStructureTypeName;
}
void secondaryStructures::secondaryStructuresData::setStatus(const HelixPositions helixPosition, const turnsTypes turn){
return TurnsStatusArray[static_cast<std::size_t>(turn)];
}
+secondaryStructureTypes secondaryStructures::secondaryStructuresData::getStatus() const{
+ return SecondaryStructuresStatus;
+}
+
void secondaryStructures::secondaryStructuresData::setBreak(secondaryStructuresData *breakPartner){
if (breakPartners[0] == nullptr){
breakPartners[0] = breakPartner;
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);
}
}
}
}
- 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 || SecondaryStructuresStatusMap[i].getStatus(secondaryStructureTypes::Bend)){
+// 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);
- }
- }
- }
+// if (isTurn){
+// SecondaryStructuresStatusMap[i].setStatus(secondaryStructureTypes::Turn);
+// }
+// }
+// }
}
secondaryStructureTypes getStatus() const;
void setBreak(secondaryStructuresData *breakPartner);
private:
- std::array<bool, static_cast<std::size_t>(secondaryStructureTypes::Count)> SecondaryStructuresStatusArray{ 0, 0, 0, 0, 0, 0, 0 };
+ std::array<bool, static_cast<std::size_t>(secondaryStructureTypes::Count)> SecondaryStructuresStatusArray{ true, 0, 0, 0, 0, 0, 0 };
secondaryStructuresData *breakPartners[2]{nullptr, nullptr};
-// secondaryStructureTypes SSData {secondaryStructureTypes::Loop};
+ secondaryStructureTypes SecondaryStructuresStatus {secondaryStructureTypes::Loop};
std::array<HelixPositions, static_cast<std::size_t>(turnsTypes::Count)> TurnsStatusArray {HelixPositions::None, HelixPositions::None, HelixPositions::None};
std::array<bool, static_cast<std::size_t>(bridgeTypes::Count)> BridgesStatusArray{ 0, 0 };
};