File: Clustal.h

package info (click to toggle)
clustalx 2.1%2Blgpl-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,868 kB
  • sloc: cpp: 40,050; sh: 163; xml: 102; makefile: 15
file content (77 lines) | stat: -rw-r--r-- 2,890 bytes parent folder | download | duplicates (11)
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