4 * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.
7 * The class Clustal is the main class in the program. It is used by the interactive
8 * menu, command line parser and clustal x to perform the algorithmic part of the
15 #include "general/clustalw.h"
16 #include "general/utils.h"
17 #include "general/userparams.h"
18 #include "fileInput/FileReader.h"
19 #include "alignment/Alignment.h"
20 #include "alignment/AlignmentOutput.h"
32 void align(string* phylipName, bool createOutput = true);
33 void sequencesAlignToProfile(string* phylipName);
34 void profileAlign(string* p1TreeName, string* p2TreeName);
35 void doGuideTreeOnly(string* phylipName);
36 void doAlignUseOldTree(string* phylipName);
37 void getHelp(string helpPointer, bool printTitle = false);
38 void getHelp(char helpPointer, bool printTitle = false);
40 int sequenceInput(bool append, string *offendingSeq);
41 int profile1Input(string profile1Name = "");
42 int profile2Input(string profile2Name = "");
43 int commandLineReadSeq(int firstSeq);
45 void phylogeneticTree(string* phylip_name, string* clustal_name, string* dist_name,
46 string* nexus_name, string pimName);
47 void bootstrapTree(string* phylip_name, string* clustal_name, string* nexus_name);
48 Alignment* getAlignmentPtr(){return &alignmentObj;}
49 void QTcalcLowScoreSegments(LowScoreSegParams* params);
50 void QTcalcWeightsForLowScoreSeg(LowScoreSegParams* params);
51 void QTremoveShortSegments(LowScoreSegParams* params);
52 void QTSetFileNamesForOutput(AlignmentFileNames fileNames);
53 bool QTRealignSelectedRange(AlignmentFileNames fileNames, int beginPos, int endPos,
54 bool realignEndGapPen);
61 void calcGapPenaltyMask(int prfLength, vector<char>* mask, vector<char>* gapMask);
62 bool useExistingGuideTree(int type, string* phylipName, const string& path);
63 void promptForNewGuideTreeName(int type, string* treeName, const string& path);
64 //bool removeFirstIterate(Alignment* alnPtr, DistMatrix* distMat);
66 enum{Sequences, Profile1, Profile2};
67 string sequencesMsg, profile1Msg, profile2Msg;
68 string newProfile1TreePrompt, newProfile2TreePrompt;
70 Alignment alignmentObj;
74 AlignmentFileNames QTFileNames;