1 /////////////////////////////////////////////////////////////////
4 // Program for projecting multiple alignments to all pairwise
6 /////////////////////////////////////////////////////////////////
8 #include "SafeVector.h"
9 #include "MultiSequence.h"
23 bool compressGaps = true;
25 /////////////////////////////////////////////////////////////////
29 /////////////////////////////////////////////////////////////////
31 int main (int argc, char **argv){
35 cerr << "Usage: project ALIGNMENT [-nocompressgaps]" << endl;
39 for (int i = 2; i < argc; i++){
40 if (strcmp (argv[i], "-nocompressgaps") == 0)
43 cerr << "Unrecognized option: " << argv[i] << endl;
48 MultiSequence *align = new MultiSequence (string (argv[1])); assert (align);
50 int N = align->GetNumSequences();
51 for (int i = 0; i < N; i++){
52 for (int j = i+1; j < N; j++){
53 string name = align->GetSequence(i)->GetHeader() + "-" + align->GetSequence(j)->GetHeader() + ".fasta";
54 ofstream outfile (name.c_str());
58 s.insert (i); s.insert (j);
59 MultiSequence *proj = align->Project (s);
60 proj->WriteMFA (outfile);
64 align->GetSequence(i)->WriteMFA (outfile, 60);
65 align->GetSequence(j)->WriteMFA (outfile, 60);