static void SeqFromMSACols(const MSA &msa, unsigned uSeqIndex, unsigned uColFrom, unsigned uColTo, Seq &s) { s.Clear(); s.SetName(msa.GetSeqName(uSeqIndex)); s.SetId(msa.GetSeqId(uSeqIndex)); for (unsigned uColIndex = uColFrom; uColIndex <= uColTo; ++uColIndex) { char c = msa.GetChar(uSeqIndex, uColIndex); if (!IsGapChar(c)) s.AppendChar(c); } }
static void MakeRootSeq(const Seq &s, const Tree &GuideTree, unsigned uLeafNodeIndex, const ProgNode Nodes[], Seq &sRoot) { sRoot.Copy(s); unsigned uNodeIndex = uLeafNodeIndex; for (;;) { unsigned uParent = GuideTree.GetParent(uNodeIndex); if (NULL_NEIGHBOR == uParent) break; bool bRight = (GuideTree.GetLeft(uParent) == uNodeIndex); uNodeIndex = uParent; const PWPath &Path = Nodes[uNodeIndex].m_Path; Seq sTmp; PathSeq(sRoot, Path, bRight, sTmp); sTmp.SetId(0); sRoot.Copy(sTmp); } }
void SeqVect::SetSeqId(unsigned uSeqIndex, unsigned uId) { assert(uSeqIndex < size()); Seq *ptrSeq = at(uSeqIndex); return ptrSeq->SetId(uId); }