7 Most proteins start with M.
\r
8 This results in odd-looking alignments with the terminal Ms aligned followed
\r
10 Hack this by treating terminal M like X.
\r
15 void MHackStart(SeqVect &v)
\r
17 if (ALPHA_Amino != g_Alpha)
\r
20 const unsigned uSeqCount = v.Length();
\r
21 M = new bool[uSeqCount];
\r
22 memset(M, 0, uSeqCount*sizeof(bool));
\r
23 for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)
\r
25 Seq &s = v.GetSeq(uSeqIndex);
\r
26 if (0 == s.Length())
\r
28 unsigned uId = s.GetId();
\r
29 if (s[0] == 'M' || s[0] == 'm')
\r
37 void MHackEnd(MSA &msa)
\r
39 if (ALPHA_Amino != g_Alpha)
\r
44 const unsigned uSeqCount = msa.GetSeqCount();
\r
45 const unsigned uColCount = msa.GetColCount();
\r
46 for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)
\r
48 unsigned uId = msa.GetSeqId(uSeqIndex);
\r
51 for (unsigned uColIndex = 0; uColIndex < uColCount; ++uColIndex)
\r
53 if (!msa.IsGap(uSeqIndex, uColIndex))
\r
55 msa.SetChar(uSeqIndex, uColIndex, 'M');
\r