15#ifndef MULTIMER_HANDLER
16#define MULTIMER_HANDLER
58 std::vector<std::vector<std::vector<int>>>
getHetoromerMSAs(
const std::vector<std::vector<int>>& sequences2num,
const std::vector<int>& chainLengths);
78 std::vector<int>
getSequenceSegment(
const std::vector<int>& row,
int chainIndex,
int repeat=1)
const;
Definition multimerHandler.h:22
int checkRowCorrespondsOnlyToOneChainAndReturnChainIndex(const std::vector< int > &row, int row_index)
// Find index of the chain corrsponding to given row; it should correspond exactly to one chain
Definition multimerHandler.cpp:139
std::vector< int > checkRepeatedChainAndReturnOneSegment(const std::vector< int > &row, int rowIndex, int chainIndex)
Verify if all segments of the repeated chains in the given row are identical, and if so,...
Definition multimerHandler.cpp:100
std::vector< int > getSequenceSegment(const std::vector< int > &row, int chainIndex, int repeat=1) const
// Extract the sequence segment from the row that corresponds to the chain specified by the given cha...
Definition multimerHandler.cpp:35
std::vector< std::vector< int > > getHomomerIndividualMSA(const std::vector< std::vector< int > > &sequences2num)
Get individual MSA for homomer format.
Definition multimerHandler.cpp:119
std::vector< std::vector< std::vector< int > > > getHetoromerMSAs(const std::vector< std::vector< int > > &sequences2num, const std::vector< int > &chainLengths)
Get individual MSA for heteromer format.
Definition multimerHandler.cpp:210
bool getHeteromerMSAs(const std::vector< std::vector< int > > &vectors)
Verify if the MSA is in the form of a paired MSA (sequences followed by the MSA of each chain)
std::string chainIndexToStoichiomLetter(int index)
Map chain index to stoichiometry letter.
Definition multimerHandler.cpp:25
bool isHomomerFormat()
Check if the stoichiometry is in homomer format (e.g., A3)
Definition multimerHandler.cpp:45
MultimerHandler(std::string _stoichiom)
// Constructor to initialize the stoichiometry
Definition multimerHandler.cpp:23
bool isHeteromerFormat()
Check if stoichiometry follows the pattern of a heteromer (e.g., A2B2C1)
Definition multimerHandler.cpp:59
std::vector< int > chainIntervals
Definition multimerHandler.h:71
std::vector< int > numbers
Definition multimerHandler.h:65
bool includesInPairedMSA(const std::vector< int > &row)
Check if the row is for the paired MSA, i.e, it includes at least two sequence segements correspondin...
Definition multimerHandler.cpp:312
std::vector< int > checkMSAFormatAndReturnRowIndexIntervalsCorrespondingToChains(const std::vector< int > &chainIndexOfRows)
Check MSA format and return MSA row index intervals corresponding to each chain.
Definition multimerHandler.cpp:182
std::string stoichiom
Definition multimerHandler.h:62
int chainsCount
Definition multimerHandler.h:68