4 * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.
8 * 13-02-07,Nigel Brown(EMBL): Increased maximum sequence identifier
9 * width MAXNAMES from 30 to 150.
10 * 20-12-07, Paul McGettigan: bug #53 change MAXNAMESTODISPLAY back to 10 from 30
15 /* Mark tidy up Nov 2005 */
16 /*********************CLUSTALW.H*********************************************/
17 /****************************************************************************/
20 *** AW NOT NEEDED ANYMORE since 2.0.9
21 *** done via including config.h(clustalw) or DEFINE(clustalx)
22 * Main header file for ClustalW. Uncomment ONE of the following 4 lines
23 * depending on which compiler you wish to use.
25 /* NOT SUPPORTED #define VMS 1 VAX or ALPHA VMS */
26 /* Think_C for Macintosh */
28 /* Turbo C for PC's */
36 const bool DEBUGLOG = false;
37 /***************************************************************************/
38 /***************************************************************************/
43 #include "SquareMat.h"
44 #include "SymMatrix.h"
51 typedef SymMatrix DistMatrix;
52 typedef std::vector<vector <int> > TreeGroups;
63 struct AlignmentFileNames
66 string profile2TreeFile;
78 // phylogenetic tree structure
79 struct TreeNode *left;
80 struct TreeNode *right;
81 struct TreeNode *parent;
91 vector<double> leftBranch;
92 vector<double> rightBranch;
101 struct LowScoreSegParams
107 vector<int>* seqWeight;
108 Array2D<int>* lowScoreRes;
109 bool seqWeightCalculated;
111 /* Global constants */
112 const int extraEndElemNum = 2;
113 const int ENDALN = 127;
115 const int CANNOTOPENFILE = -300;
116 const int NOSEQUENCESINFILE = -400;
117 const int OTHERERROR = -500;
118 const int ALLNAMESNOTDIFFERENT = -600;
119 const int MUSTREADINPROFILE1FIRST = -700;
120 const int EMPTYSEQUENCE = -800;
121 const int SEQUENCETOOBIG = -900;
122 const int BADFORMAT = -1000;
124 const int AABLOSUM = 0;
126 const int AAGONNET = 2;
127 const int AAIDENTITY = 3;
128 const int AAUSERDEFINED = 4;
130 const int PWAABLOSUM = 0;
131 const int PWAAPAM = 1;
132 const int PWAAGONNET = 2;
133 const int PWAAIDENTITY = 3;
134 const int PWAAUSER = 4;
136 const int DNAIUB = 0;
137 const int DNACLUSTALW = 1;
138 const int DNAUSERDEFINED = 2;
140 const int AAHISTIDENTITY = 0;
141 const int AAHISTGONNETPAM80 = 1;
142 const int AAHISTGONNETPAM120 = 2;
143 const int AAHISTGONNETPAM250 = 3;
144 const int AAHISTGONNETPAM350 = 4;
145 const int AAHISTUSER = 5;
147 const int QTAASEGGONNETPAM80 = 0;
148 const int QTAASEGGONNETPAM120 = 1;
149 const int QTAASEGGONNETPAM250 = 2;
150 const int QTAASEGGONNETPAM350 = 3;
151 const int QTAASEGUSER = 4;
153 const int MAXHYDRESIDUES = 9; // Only allowing 9 hyd residue choices
154 const int Protein = 0;
156 const int Pairwise = 0;
157 const int MultipleAlign = 1;
159 const int OUTSECST = 0;
160 const int OUTGAP = 1;
161 const int OUTBOTH = 2;
162 const int OUTNONE = 3;
164 const int MAXNAMES = 150; /* Max chars read for seq. names */ //nige, was 30
165 //const int MAXNAMESTODISPLAY = 30; // Used for printout. Mark 18-7-07
166 //const int MAXNAMESTODISPLAY = 10; // Bug #53. Paul 20-12-07
167 const int MAXNAMESTODISPLAY = 30; //Paul replicate 1.83 behavour 9-2-08
168 const int MINNAMESTODISPLAY = 10; //Paul replicate 1.83 behavour 9-2-08
169 const int MAXTITLES = 60; /* Title length */
170 const int FILENAMELEN = 256; /* Max. file name length */
172 const int UNKNOWN = 0;
173 const int EMBLSWISS = 1;
175 const int PEARSON = 3;
177 const int CLUSTAL = 5; /* DES */
178 const int MSF = 6; /* DES */
179 const int RSF = 7; /* JULIE */
180 const int USER = 8; /* DES */
181 const int PHYLIP = 9; /* DES */
182 const int NEXUS = 10; /* DES */
183 const int FASTA = 11; /* Ramu */
189 const int PROFILE = 0;
190 const int SEQUENCE = 1;
192 const int BS_NODE_LABELS = 2;
193 const int BS_BRANCH_LABELS = 1;
195 const int PAGE_LEN = 22; /* Number of lines of help sent to screen */
197 const int PAGEWIDTH = 80; /* maximum characters on output file page */
198 const int LINELENGTH = 60; /* Output file line length */
199 const int GCG_LINELENGTH = 50;
204 const int ALIGNMENT = 1;
207 const int MinIdentifier = 1;
209 const string VALID_COMMAND_SEP = "-/";
212 const char default_commandsep = '-';
213 const char DIRDELIM = '/';
214 const int INT_SCALE_FACTOR = 100; /* Scaling factor to convert float to integer
215 for profile scores */
218 const char default_commandsep = '/';
219 const char DIRDELIM = '\\';
220 const int INT_SCALE_FACTOR = 100; /* Scaling factor to convert float to integer
221 for profile scores */
224 const char default_commandsep = '-';
225 const char DIRDELIM = '/';
226 const int INT_SCALE_FACTOR = 1000; /* Scaling factor to convert float to integer
227 for profile scores */
231 const int NUMRES = 32; /* max size of comparison matrix */
233 const int ALIGNED = 1;
241 const int GAPCOL = 32; /* position of gap open penalty in profile */
242 const int LENCOL = 33; /* position of gap extension penalty in profile */
246 /* Holds values for the pairwise scales */
248 float gapExtendScale;
260 /* phylogenetic tree structure */
279 MatMenuEntry opt[10];
282 const int MAXMAT = 10;
288 vector<short>* matptr;
289 vector<short>* AAXref;
293 * UserMatSeries holds the number of matrices in the series and
298 SeriesMat mat[MAXMAT];