1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
/**
* Author: Mark Larkin
*
* Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.
*/
/**
* The class Clustal is the main class in the program. It is used by the interactive
* menu, command line parser and clustal x to perform the algorithmic part of the
* program.
*/
#ifndef CLUSTAL_H
#define CLUSTAL_H
#include <string>
#include "general/clustalw.h"
#include "general/utils.h"
#include "general/userparams.h"
#include "fileInput/FileReader.h"
#include "alignment/Alignment.h"
#include "alignment/AlignmentOutput.h"
using namespace std;
namespace clustalw
{
class Clustal
{
public:
/* Functions */
Clustal();
void align(string* phylipName, bool createOutput = true);
void sequencesAlignToProfile(string* phylipName);
void profileAlign(string* p1TreeName, string* p2TreeName);
void doGuideTreeOnly(string* phylipName);
void doAlignUseOldTree(string* phylipName);
void getHelp(string helpPointer, bool printTitle = false);
void getHelp(char helpPointer, bool printTitle = false);
void getFullHelp();
int sequenceInput(bool append, string *offendingSeq);
int profile1Input(string profile1Name = "");
int profile2Input(string profile2Name = "");
int commandLineReadSeq(int firstSeq);
void outputNow();
void phylogeneticTree(string* phylip_name, string* clustal_name, string* dist_name,
string* nexus_name, string pimName);
void bootstrapTree(string* phylip_name, string* clustal_name, string* nexus_name);
Alignment* getAlignmentPtr(){return &alignmentObj;}
void QTcalcLowScoreSegments(LowScoreSegParams* params);
void QTcalcWeightsForLowScoreSeg(LowScoreSegParams* params);
void QTremoveShortSegments(LowScoreSegParams* params);
void QTSetFileNamesForOutput(AlignmentFileNames fileNames);
bool QTRealignSelectedRange(AlignmentFileNames fileNames, int beginPos, int endPos,
bool realignEndGapPen);
void test();
/* Attributes */
private:
/* Functions */
void initInterface();
void calcGapPenaltyMask(int prfLength, vector<char>* mask, vector<char>* gapMask);
bool useExistingGuideTree(int type, string* phylipName, const string& path);
void promptForNewGuideTreeName(int type, string* treeName, const string& path);
//bool removeFirstIterate(Alignment* alnPtr, DistMatrix* distMat);
/* Attributes */
enum{Sequences, Profile1, Profile2};
string sequencesMsg, profile1Msg, profile2Msg;
string newProfile1TreePrompt, newProfile2TreePrompt;
Alignment alignmentObj;
string helpFileName;
int newSeq;
bool checkTree;
AlignmentFileNames QTFileNames;
};
}
#endif
|