5 #include "textfile.h"
\r
7 const unsigned FASTA_BLOCK = 60;
\r
9 void MSA::FromFASTAFile(TextFile &File)
\r
13 FILE *f = File.GetStdioFile();
\r
15 unsigned uSeqCount = 0;
\r
16 unsigned uColCount = uInsane;
\r
20 unsigned uSeqLength;
\r
21 char *SeqData = GetFastaSeq(f, &uSeqLength, &Label, false);
\r
24 AppendSeq(SeqData, uSeqLength, Label);
\r
28 void MSA::ToFASTAFile(TextFile &File) const
\r
30 const unsigned uColCount = GetColCount();
\r
31 assert(uColCount > 0);
\r
32 const unsigned uLinesPerSeq = (GetColCount() - 1)/FASTA_BLOCK + 1;
\r
33 const unsigned uSeqCount = GetSeqCount();
\r
35 for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)
\r
37 File.PutString(">");
\r
38 File.PutString(GetSeqName(uSeqIndex));
\r
39 File.PutString("\n");
\r
42 for (unsigned uLine = 0; uLine < uLinesPerSeq; ++uLine)
\r
44 unsigned uLetters = uColCount - uLine*FASTA_BLOCK;
\r
45 if (uLetters > FASTA_BLOCK)
\r
46 uLetters = FASTA_BLOCK;
\r
47 for (unsigned i = 0; i < uLetters; ++i)
\r
49 char c = GetChar(uSeqIndex, n);
\r