~ubuntu-branches/ubuntu/wily/bioperl-run/wily-proposed

« back to all changes in this revision

Viewing changes to Bio/Tools/Run/PiseApplication/clustalw.pm

  • Committer: Bazaar Package Importer
  • Author(s): Charles Plessy
  • Date: 2009-09-03 11:00:03 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20090903110003-11of27rxner5vnl9
Tags: 1.6.1-1
* New upstream release.
* debian/patches/10-wrong-path-for-interpreter.patch: removed
  (fixed upstream).
* debian/watch updated (bioperl -> BioPerl).
* debian/rules refreshed with dh-make-perl 0.53.
  - Disabled installation of examples (removed upstream).
  - Removed the correction of file permission of Pise documentation
    (removed upstream).
  - Removed patching facilities (no patches anymore).
  - Disabled tests as I experience failures with t/Eponine.t despite
    this program is not installed.
* debian/copyright:
  - Removed vanity lines about debianization and debian copyright.
  - Incremented years to 2009.
  - Updated to latest experimentation of the machine-readable license summary.
* debian/control:
  - Incremented Standards-Version to reflect conformance on new Policy
    (dropped versionned build-dependancy on Perl).
  - Removed build-dependancy on quilt (no patches anymore).
  - Depend and Build-Depend on bioperl versions superior or equal to 1.6.0.
  - Build-depends on, and Recommdnes libalgorithm-diff-perl, libipc-run-perl,
    libio-string-perl and libxml-twig-perl, that are listed in DEPENDANCIES.
  - Build-depends on libarray-compare-perl and libtree-dagnode-perl
    (otherwise tests fail). 
  - Depend on amap-align instead of amap (Closes: #541274).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# $Id: clustalw.pm,v 1.6 2006/07/04 22:23:34 mauricio Exp $
2
 
# BioPerl module for Bio::Tools::Run::PiseApplication::clustalw
3
 
#
4
 
# Cared for by Catherine Letondal <letondal@pasteur.fr>
5
 
#
6
 
# For copyright and disclaimer see below.
7
 
#
8
 
# POD documentation - main docs before the code
9
 
 
10
 
=head1 NAME
11
 
 
12
 
Bio::Tools::Run::PiseApplication::clustalw
13
 
 
14
 
=head1 SYNOPSIS
15
 
 
16
 
  #
17
 
 
18
 
=head1 DESCRIPTION
19
 
 
20
 
Bio::Tools::Run::PiseApplication::clustalw
21
 
 
22
 
      Bioperl class for:
23
 
 
24
 
        Clustalw        Multiple Alignments (Des Higgins)
25
 
 
26
 
        References:
27
 
 
28
 
                Thompson, J.D., Higgins, D.G. and Gibson, T.J. (1994) CLUSTAL W: improving the sensitivity of progressive multiple sequence alignment through sequence weighting, positions-specific gap penalties and weight matrix choice. Nucleic Acids Research, 22:4673-4680.
29
 
 
30
 
 
31
 
 
32
 
      Parameters: 
33
 
 
34
 
        (see also:
35
 
          http://bioweb.pasteur.fr/seqanal/interfaces/clustalw.html 
36
 
         for available values):
37
 
 
38
 
 
39
 
                clustalw (String)
40
 
 
41
 
                infile (Sequence)
42
 
                        Sequences File  (or Alignment File for Bootstrap and Tree actions) (-infile)
43
 
                        pipe: seqsfile
44
 
                        pipe: readseq_ok_alig
45
 
 
46
 
                actions (Excl)
47
 
                        Actions
48
 
 
49
 
                phylip_alig (Switch)
50
 
                        Phylip alignment output format (-output)
51
 
 
52
 
                quicktree (Excl)
53
 
                        Toggle Slow/Fast pairwise alignments (-quicktree)
54
 
 
55
 
                typeseq (Excl)
56
 
                        Protein or DNA (-type)
57
 
 
58
 
                matrix (Excl)
59
 
                        Protein weight matrix (-matrix)
60
 
 
61
 
                dnamatrix (Excl)
62
 
                        DNA weight matrix (-dnamatrix)
63
 
 
64
 
                gapopen (Integer)
65
 
                        Gap opening penalty (-gapopen)
66
 
 
67
 
                gapext (Float)
68
 
                        Gap extension penalty (-gapext)
69
 
 
70
 
                endgaps (Switch)
71
 
                        End gap separation penalty (-endgaps)
72
 
 
73
 
                gapdist (Integer)
74
 
                        Gap separation pen. range (-gapdist)
75
 
 
76
 
                pgap (Switch)
77
 
                        Residue specific penalties (Pascarella gaps) (-nopgap)
78
 
 
79
 
                hgap (Switch)
80
 
                        Hydrophilic gaps (-nohgap)
81
 
 
82
 
                hgapresidues (List)
83
 
                        Hydrophilic residues list (-hgapresidues)
84
 
 
85
 
                maxdiv (Integer)
86
 
                        Delay divergent sequences : % ident. for delay (-maxdiv)
87
 
 
88
 
                negative (Switch)
89
 
                        Negative values in matrix ? (-negative)
90
 
 
91
 
                transweight (Float)
92
 
                        Transitions weight (between 0 and 1) (-transweight)
93
 
 
94
 
                newtree (OutFile)
95
 
                        File for new guide tree (-newtree)
96
 
 
97
 
                usetree (InFile)
98
 
                        File for old guide tree (-usetree)
99
 
 
100
 
                ktuple (Integer)
101
 
                        Word size (-ktuple)
102
 
 
103
 
                topdiags (Integer)
104
 
                        Number of best diagonals (-topdiags)
105
 
 
106
 
                window (Integer)
107
 
                        Window around best diags (-window)
108
 
 
109
 
                pairgap (Float)
110
 
                        Gap penalty (-pairgap)
111
 
 
112
 
                score (Excl)
113
 
                        Percent or absolute score ? (-score)
114
 
 
115
 
                pwmatrix (Excl)
116
 
                        Protein weight matrix (-pwmatrix)
117
 
 
118
 
                pwdnamatrix (Excl)
119
 
                        DNA weight matrix (-pwdnamatrix)
120
 
 
121
 
                pwgapopen (Float)
122
 
                        Gap opening penalty (-pwgapopen)
123
 
 
124
 
                pwgapext (Float)
125
 
                        Gap extension penalty (-pwgapext)
126
 
 
127
 
                kimura (Switch)
128
 
                        Use Kimura's correction (multiple substitutions) ? (-kimura)
129
 
 
130
 
                tossgaps (Switch)
131
 
                        Ignore positions with gaps ? (-tossgaps)
132
 
 
133
 
                bootstrap (Integer)
134
 
                        Bootstrap a NJ tree (give the number of bootstraps, 0 for none) (-bootstrap)
135
 
 
136
 
                bootlabels (Excl)
137
 
                        Phylip bootstrap positions (-bootlabels)
138
 
 
139
 
                seed (Integer)
140
 
                        Seed number for bootstraps (-seed)
141
 
 
142
 
                outputtree (Excl)
143
 
                        Output tree/distance format (-outputtree)
144
 
 
145
 
                outfile (OutFile)
146
 
                        Alignment File (-outfile)
147
 
                        pipe: readseq_ok_alig
148
 
 
149
 
                output (Excl)
150
 
                        Output format (-output)
151
 
 
152
 
                gde_lower (Switch)
153
 
                        Upper case GDE output (-case)
154
 
 
155
 
                outorder (Excl)
156
 
                        Result order (-outorder)
157
 
 
158
 
                seqnos (Switch)
159
 
                        Output sequence numbers in the output file (clustalw format) (-seqnos)
160
 
 
161
 
                profile1 (InFile)
162
 
                        Profile 1 (-profile1)
163
 
 
164
 
                profile2 (InFile)
165
 
                        Profile 2 (-profile2)
166
 
 
167
 
                usetree1 (InFile)
168
 
                        File for old guide tree for profile1 (-usetree1)
169
 
 
170
 
                usetree2 (InFile)
171
 
                        File for old guide tree for profile2 (-usetree2)
172
 
 
173
 
                newtree1 (OutFile)
174
 
                        File for new guide tree for profile1 (-newtree1)
175
 
 
176
 
                newtree2 (OutFile)
177
 
                        File for new guide tree for profile2 (-newtree2)
178
 
 
179
 
                nosecstr1 (Switch)
180
 
                        Use profile 1 secondary structure / penalty mask (-nosecstr1)
181
 
 
182
 
                nosecstr2 (Switch)
183
 
                        Use profile 2 secondary structure / penalty mask (-nosecstr2)
184
 
 
185
 
                helixgap (Integer)
186
 
                        Helix gap penalty (-helixgap)
187
 
 
188
 
                strandgap (Integer)
189
 
                        Strand gap penalty (-strandgap)
190
 
 
191
 
                loopgap (Integer)
192
 
                        Loop gap penalty (-loopgap)
193
 
 
194
 
                terminalgap (Integer)
195
 
                        Secondary structure terminal penalty (-terminalgap)
196
 
 
197
 
                helixendin (Integer)
198
 
                        Helix terminal positions:  number of residues inside helix to be treated as terminal (-helixendin)
199
 
 
200
 
                helixendout (Integer)
201
 
                        Helix terminal positions: number of residues outside helix to be treated as terminal (-helixendout)
202
 
 
203
 
                strandendin (Integer)
204
 
                        Strand terminal positions: number of residues inside strand to be treated as terminal (-strandendin)
205
 
 
206
 
                strandendout (Integer)
207
 
                        Strand terminal positions: number of residues outside strand to be treated as terminal (-strandendout)
208
 
 
209
 
                secstrout (Excl)
210
 
                        Output in alignment (-secstrout)
211
 
 
212
 
=head1 FEEDBACK
213
 
 
214
 
=head2 Mailing Lists
215
 
 
216
 
User feedback is an integral part of the evolution of this and other
217
 
Bioperl modules. Send your comments and suggestions preferably to
218
 
the Bioperl mailing list.  Your participation is much appreciated.
219
 
 
220
 
  bioperl-l@bioperl.org                  - General discussion
221
 
  http://bioperl.org/wiki/Mailing_lists  - About the mailing lists
222
 
 
223
 
=head2 Reporting Bugs
224
 
 
225
 
Report bugs to the Bioperl bug tracking system to help us keep track
226
 
of the bugs and their resolution. Bug reports can be submitted via the
227
 
web:
228
 
 
229
 
  http://bugzilla.open-bio.org/
230
 
 
231
 
=head1 AUTHOR
232
 
 
233
 
Catherine Letondal (letondal@pasteur.fr)
234
 
 
235
 
=head1 COPYRIGHT
236
 
 
237
 
Copyright (C) 2003 Institut Pasteur & Catherine Letondal.
238
 
All Rights Reserved.
239
 
 
240
 
This module is free software; you can redistribute it and/or modify
241
 
it under the same terms as Perl itself.
242
 
 
243
 
=head1 DISCLAIMER
244
 
 
245
 
This software is provided "as is" without warranty of any kind.
246
 
 
247
 
=head1 SEE ALSO
248
 
 
249
 
=over
250
 
 
251
 
=item *
252
 
 
253
 
http://bioweb.pasteur.fr/seqanal/interfaces/clustalw.html
254
 
 
255
 
=item *
256
 
 
257
 
Bio::Tools::Run::PiseApplication
258
 
 
259
 
=item *
260
 
 
261
 
Bio::Tools::Run::AnalysisFactory::Pise
262
 
 
263
 
=item *
264
 
 
265
 
Bio::Tools::Run::PiseJob
266
 
 
267
 
=back
268
 
 
269
 
=cut
270
 
 
271
 
#'
272
 
package Bio::Tools::Run::PiseApplication::clustalw;
273
 
 
274
 
use vars qw(@ISA);
275
 
use strict;
276
 
use Bio::Tools::Run::PiseApplication;
277
 
 
278
 
@ISA = qw(Bio::Tools::Run::PiseApplication);
279
 
 
280
 
=head2 new
281
 
 
282
 
 Title   : new()
283
 
 Usage   : my $clustalw = Bio::Tools::Run::PiseApplication::clustalw->new($location, $email, @params);
284
 
 Function: Creates a Bio::Tools::Run::PiseApplication::clustalw object.
285
 
           This method should not be used directly, but rather by 
286
 
           a Bio::Tools::Run::AnalysisFactory::Pise instance.
287
 
           my $factory = Bio::Tools::Run::AnalysisFactory::Pise->new();
288
 
           my $clustalw = $factory->program('clustalw');
289
 
 Example : -
290
 
 Returns : An instance of Bio::Tools::Run::PiseApplication::clustalw.
291
 
 
292
 
=cut
293
 
 
294
 
sub new {
295
 
    my ($class, $location, $email, @params) = @_;
296
 
    my $self = $class->SUPER::new($location, $email);
297
 
 
298
 
# -- begin of definitions extracted from /local/gensoft/lib/Pise/5.a/PerlDef/clustalw.pm
299
 
 
300
 
    $self->{COMMAND}   = "clustalw";
301
 
    $self->{VERSION}   = "5.a";
302
 
    $self->{TITLE}   = "Clustalw";
303
 
 
304
 
    $self->{DESCRIPTION}   = "Multiple Alignments";
305
 
 
306
 
    $self->{OPT_EMAIL}   = 0;
307
 
 
308
 
    $self->{AUTHORS}   = "Des Higgins";
309
 
 
310
 
    $self->{REFERENCE}   = [
311
 
 
312
 
         "Thompson, J.D., Higgins, D.G. and Gibson, T.J. (1994) CLUSTAL W: improving the sensitivity of progressive multiple sequence alignment through sequence weighting, positions-specific gap penalties and weight matrix choice. Nucleic Acids Research, 22:4673-4680.",
313
 
 ];
314
 
 
315
 
    $self->{_INTERFACE_STANDOUT} = undef;
316
 
    $self->{_STANDOUT_FILE} = undef;
317
 
 
318
 
    $self->{TOP_PARAMETERS}  = [ 
319
 
        "clustalw",
320
 
        "infile",
321
 
        "actions",
322
 
        "phylip_alig",
323
 
        "multalign",
324
 
        "fastpw",
325
 
        "slowpw",
326
 
        "trees",
327
 
        "outputparam",
328
 
        "aligfile",
329
 
        "readseq_ok_aligfile",
330
 
        "newtreefile",
331
 
        "phylipnewtreefile",
332
 
        "profile",
333
 
        "structure",
334
 
 
335
 
    ];
336
 
 
337
 
    $self->{PARAMETERS_ORDER}  = [
338
 
        "clustalw",
339
 
        "infile",       # Sequences File  (or Alignment File for Bootstrap and Tree actions) (-infile)
340
 
        "actions",      # Actions
341
 
        "phylip_alig",  # Phylip alignment output format (-output)
342
 
        "multalign",    # Multiple Alignments parameters
343
 
        "quicktree",    # Toggle Slow/Fast pairwise alignments (-quicktree)
344
 
        "typeseq",      # Protein or DNA (-type)
345
 
        "matrix",       # Protein weight matrix (-matrix)
346
 
        "dnamatrix",    # DNA weight matrix (-dnamatrix)
347
 
        "gapopen",      # Gap opening penalty (-gapopen)
348
 
        "gapext",       # Gap extension penalty (-gapext)
349
 
        "endgaps",      # End gap separation penalty (-endgaps)
350
 
        "gapdist",      # Gap separation pen. range (-gapdist)
351
 
        "pgap",         # Residue specific penalties (Pascarella gaps) (-nopgap)
352
 
        "hgap",         # Hydrophilic gaps (-nohgap)
353
 
        "hgapresidues",         # Hydrophilic residues list (-hgapresidues)
354
 
        "maxdiv",       # Delay divergent sequences : % ident. for delay (-maxdiv)
355
 
        "negative",     # Negative values in matrix ? (-negative)
356
 
        "transweight",  # Transitions weight (between 0 and 1) (-transweight)
357
 
        "newtree",      # File for new guide tree (-newtree)
358
 
        "usetree",      # File for old guide tree (-usetree)
359
 
        "fastpw",       # Fast Pairwise Alignments parameters
360
 
        "ktuple",       # Word size (-ktuple)
361
 
        "topdiags",     # Number of best diagonals (-topdiags)
362
 
        "window",       # Window around best diags (-window)
363
 
        "pairgap",      # Gap penalty (-pairgap)
364
 
        "score",        # Percent or absolute score ? (-score)
365
 
        "slowpw",       # Slow Pairwise Alignments parameters
366
 
        "pwmatrix",     # Protein weight matrix (-pwmatrix)
367
 
        "pwdnamatrix",  # DNA weight matrix (-pwdnamatrix)
368
 
        "pwgapopen",    # Gap opening penalty (-pwgapopen)
369
 
        "pwgapext",     # Gap extension penalty (-pwgapext)
370
 
        "trees",        # Tree parameters
371
 
        "kimura",       # Use Kimura's correction (multiple substitutions) ? (-kimura)
372
 
        "tossgaps",     # Ignore positions with gaps ? (-tossgaps)
373
 
        "bootstrap",    # Bootstrap a NJ tree (give the number of bootstraps, 0 for none) (-bootstrap)
374
 
        "bootlabels",   # Phylip bootstrap positions (-bootlabels)
375
 
        "seed",         # Seed number for bootstraps (-seed)
376
 
        "outputtree",   # Output tree/distance format (-outputtree)
377
 
        "outputparam",  # Output parameters
378
 
        "outfile",      # Alignment File (-outfile)
379
 
        "output",       # Output format (-output)
380
 
        "gde_lower",    # Upper case GDE output (-case)
381
 
        "outorder",     # Result order (-outorder)
382
 
        "seqnos",       # Output sequence numbers in the output file (clustalw format) (-seqnos)
383
 
        "aligfile",
384
 
        "readseq_ok_aligfile",
385
 
        "newtreefile",
386
 
        "phylipnewtreefile",
387
 
        "profile",      # Profile Alignments parameters
388
 
        "profile1",     # Profile 1 (-profile1)
389
 
        "profile2",     # Profile 2 (-profile2)
390
 
        "usetree1",     # File for old guide tree for profile1 (-usetree1)
391
 
        "usetree2",     # File for old guide tree for profile2 (-usetree2)
392
 
        "newtree1",     # File for new guide tree for profile1 (-newtree1)
393
 
        "newtree2",     # File for new guide tree for profile2 (-newtree2)
394
 
        "structure",    # Structure Alignments parameters
395
 
        "nosecstr1",    # Use profile 1 secondary structure / penalty mask (-nosecstr1)
396
 
        "nosecstr2",    # Use profile 2 secondary structure / penalty mask (-nosecstr2)
397
 
        "helixgap",     # Helix gap penalty (-helixgap)
398
 
        "strandgap",    # Strand gap penalty (-strandgap)
399
 
        "loopgap",      # Loop gap penalty (-loopgap)
400
 
        "terminalgap",  # Secondary structure terminal penalty (-terminalgap)
401
 
        "helixendin",   # Helix terminal positions:  number of residues inside helix to be treated as terminal (-helixendin)
402
 
        "helixendout",  # Helix terminal positions: number of residues outside helix to be treated as terminal (-helixendout)
403
 
        "strandendin",  # Strand terminal positions: number of residues inside strand to be treated as terminal (-strandendin)
404
 
        "strandendout",         # Strand terminal positions: number of residues outside strand to be treated as terminal (-strandendout)
405
 
        "secstrout",    # Output in alignment (-secstrout)
406
 
 
407
 
    ];
408
 
 
409
 
    $self->{TYPE}  = {
410
 
        "clustalw" => 'String',
411
 
        "infile" => 'Sequence',
412
 
        "actions" => 'Excl',
413
 
        "phylip_alig" => 'Switch',
414
 
        "multalign" => 'Paragraph',
415
 
        "quicktree" => 'Excl',
416
 
        "typeseq" => 'Excl',
417
 
        "matrix" => 'Excl',
418
 
        "dnamatrix" => 'Excl',
419
 
        "gapopen" => 'Integer',
420
 
        "gapext" => 'Float',
421
 
        "endgaps" => 'Switch',
422
 
        "gapdist" => 'Integer',
423
 
        "pgap" => 'Switch',
424
 
        "hgap" => 'Switch',
425
 
        "hgapresidues" => 'List',
426
 
        "maxdiv" => 'Integer',
427
 
        "negative" => 'Switch',
428
 
        "transweight" => 'Float',
429
 
        "newtree" => 'OutFile',
430
 
        "usetree" => 'InFile',
431
 
        "fastpw" => 'Paragraph',
432
 
        "ktuple" => 'Integer',
433
 
        "topdiags" => 'Integer',
434
 
        "window" => 'Integer',
435
 
        "pairgap" => 'Float',
436
 
        "score" => 'Excl',
437
 
        "slowpw" => 'Paragraph',
438
 
        "pwmatrix" => 'Excl',
439
 
        "pwdnamatrix" => 'Excl',
440
 
        "pwgapopen" => 'Float',
441
 
        "pwgapext" => 'Float',
442
 
        "trees" => 'Paragraph',
443
 
        "kimura" => 'Switch',
444
 
        "tossgaps" => 'Switch',
445
 
        "bootstrap" => 'Integer',
446
 
        "bootlabels" => 'Excl',
447
 
        "seed" => 'Integer',
448
 
        "outputtree" => 'Excl',
449
 
        "outputparam" => 'Paragraph',
450
 
        "outfile" => 'OutFile',
451
 
        "output" => 'Excl',
452
 
        "gde_lower" => 'Switch',
453
 
        "outorder" => 'Excl',
454
 
        "seqnos" => 'Switch',
455
 
        "aligfile" => 'Results',
456
 
        "readseq_ok_aligfile" => 'Results',
457
 
        "newtreefile" => 'Results',
458
 
        "phylipnewtreefile" => 'Results',
459
 
        "profile" => 'Paragraph',
460
 
        "profile1" => 'InFile',
461
 
        "profile2" => 'InFile',
462
 
        "usetree1" => 'InFile',
463
 
        "usetree2" => 'InFile',
464
 
        "newtree1" => 'OutFile',
465
 
        "newtree2" => 'OutFile',
466
 
        "structure" => 'Paragraph',
467
 
        "nosecstr1" => 'Switch',
468
 
        "nosecstr2" => 'Switch',
469
 
        "helixgap" => 'Integer',
470
 
        "strandgap" => 'Integer',
471
 
        "loopgap" => 'Integer',
472
 
        "terminalgap" => 'Integer',
473
 
        "helixendin" => 'Integer',
474
 
        "helixendout" => 'Integer',
475
 
        "strandendin" => 'Integer',
476
 
        "strandendout" => 'Integer',
477
 
        "secstrout" => 'Excl',
478
 
 
479
 
    };
480
 
 
481
 
    $self->{FORMAT}  = {
482
 
        "clustalw" => {
483
 
                "perl" => '"clustalw"',
484
 
        },
485
 
        "infile" => {
486
 
                "seqlab" => '  " -infile=value"',
487
 
                "perl" => '  " -infile=$value"',
488
 
        },
489
 
        "actions" => {
490
 
                "perl" => ' " $value" ',
491
 
        },
492
 
        "phylip_alig" => {
493
 
                "perl" => ' ($value)?" -output=PHYLIP":""',
494
 
        },
495
 
        "multalign" => {
496
 
        },
497
 
        "quicktree" => {
498
 
                "perl" => '($value eq "fast")? " -quicktree" : "" ',
499
 
        },
500
 
        "typeseq" => {
501
 
                "perl" => ' ($value)?" -type=$value":""',
502
 
        },
503
 
        "matrix" => {
504
 
                "perl" => ' ($value && $value ne $vdef)?" -matrix=$value":""',
505
 
        },
506
 
        "dnamatrix" => {
507
 
                "perl" => ' ($value && $value ne $vdef)?" -dnamatrix=$value":""',
508
 
        },
509
 
        "gapopen" => {
510
 
                "perl" => ' (defined $value && $value ne $vdef)? " -gapopen=$value" : ""',
511
 
        },
512
 
        "gapext" => {
513
 
                "perl" => ' (defined $value && $value ne $vdef)? " -gapext=$value" : ""',
514
 
        },
515
 
        "endgaps" => {
516
 
                "perl" => ' (! $value )?" -endgaps":""',
517
 
        },
518
 
        "gapdist" => {
519
 
                "perl" => ' (defined $value && $value != $vdef)? " -gapdist=$value" : ""',
520
 
        },
521
 
        "pgap" => {
522
 
                "perl" => ' (! $value)?" -nopgap":""',
523
 
        },
524
 
        "hgap" => {
525
 
                "perl" => ' (! $value)?" -nohgap":""',
526
 
        },
527
 
        "hgapresidues" => {
528
 
                "perl" => ' ($value && ($value ne $vdef))?" -hgapresidues=\\"$value\\"":""',
529
 
        },
530
 
        "maxdiv" => {
531
 
                "perl" => ' (defined $value && $value != $vdef)? " -maxdiv=$value" : ""',
532
 
        },
533
 
        "negative" => {
534
 
                "perl" => ' ($value)?" -negative":""',
535
 
        },
536
 
        "transweight" => {
537
 
                "perl" => ' (defined $value && $value != $vdef)?" -transweight=$value":""',
538
 
        },
539
 
        "newtree" => {
540
 
                "perl" => ' ($value)? " -newtree=$value" : "" ',
541
 
        },
542
 
        "usetree" => {
543
 
                "perl" => ' ($value)?" -usetree=$value":""',
544
 
        },
545
 
        "fastpw" => {
546
 
        },
547
 
        "ktuple" => {
548
 
                "perl" => ' (defined $value && $value ne $vdef)?" -ktuple=$value":""',
549
 
        },
550
 
        "topdiags" => {
551
 
                "perl" => ' (defined $value && $value ne $vdef)?" -topdiags=$value":""',
552
 
        },
553
 
        "window" => {
554
 
                "perl" => ' (defined $value && $value ne $vdef)?" -window=$value":""',
555
 
        },
556
 
        "pairgap" => {
557
 
                "perl" => ' (defined $value && $value ne $vdef)?" -pairgap=$value":""',
558
 
        },
559
 
        "score" => {
560
 
                "perl" => ' ($value)?" -score=$value":""',
561
 
        },
562
 
        "slowpw" => {
563
 
        },
564
 
        "pwmatrix" => {
565
 
                "perl" => ' ($value && $value ne $vdef)?" -pwmatrix=$value":""',
566
 
        },
567
 
        "pwdnamatrix" => {
568
 
                "perl" => ' ($value && $value ne $vdef)?" -pwdnamatrix=$value":""',
569
 
        },
570
 
        "pwgapopen" => {
571
 
                "perl" => ' (defined $value && $value ne $vdef)? " -pwgapopen=$value" : "" ',
572
 
        },
573
 
        "pwgapext" => {
574
 
                "perl" => ' (defined $value && $value ne $vdef)? " -pwgapext=$value" : "" ',
575
 
        },
576
 
        "trees" => {
577
 
        },
578
 
        "kimura" => {
579
 
                "perl" => ' ($value)?" -kimura":""',
580
 
        },
581
 
        "tossgaps" => {
582
 
                "perl" => ' ($value)?" -tossgaps":""',
583
 
        },
584
 
        "bootstrap" => {
585
 
                "perl" => '  ($value > 0 && $value != $vdef)? " -bootstrap=$value":"" ',
586
 
        },
587
 
        "bootlabels" => {
588
 
                "perl" => '(defined $value && $value ne $vdef )? " -bootlabels=$value":""',
589
 
        },
590
 
        "seed" => {
591
 
                "perl" => ' (defined $value)?" -seed=$value":""',
592
 
        },
593
 
        "outputtree" => {
594
 
                "perl" => ' ($value && $value ne $vdef)?" -outputtree=$value":""',
595
 
        },
596
 
        "outputparam" => {
597
 
        },
598
 
        "outfile" => {
599
 
                "perl" => ' ($value && $value ne "$infile.aln")?" -outfile=$value":""',
600
 
        },
601
 
        "output" => {
602
 
                "perl" => ' ($value) ?" -output=$value":""',
603
 
        },
604
 
        "gde_lower" => {
605
 
                "perl" => '($value) ?" -case=upper":""',
606
 
        },
607
 
        "outorder" => {
608
 
                "perl" => ' ($value && $value ne $vdef)?" -outorder=$value":""',
609
 
        },
610
 
        "seqnos" => {
611
 
                "perl" => ' ($value) ?" -seqnos=on":""',
612
 
        },
613
 
        "aligfile" => {
614
 
        },
615
 
        "readseq_ok_aligfile" => {
616
 
        },
617
 
        "newtreefile" => {
618
 
        },
619
 
        "phylipnewtreefile" => {
620
 
        },
621
 
        "profile" => {
622
 
        },
623
 
        "profile1" => {
624
 
                "perl" => ' ($value)?" -profile1=$value":""',
625
 
        },
626
 
        "profile2" => {
627
 
                "perl" => ' ($value)?" -profile2=$value":""',
628
 
        },
629
 
        "usetree1" => {
630
 
                "perl" => ' ($value)?" -usetree1=$value":""',
631
 
        },
632
 
        "usetree2" => {
633
 
                "perl" => ' ($value)?" -usetree2=$value":""',
634
 
        },
635
 
        "newtree1" => {
636
 
                "perl" => ' ($value)? " -newtree1=$value" : "" ',
637
 
        },
638
 
        "newtree2" => {
639
 
                "perl" => ' ($value)? " -newtree2=$value" : "" ',
640
 
        },
641
 
        "structure" => {
642
 
        },
643
 
        "nosecstr1" => {
644
 
                "perl" => '(! $value)? " -nosecstr1" : ""',
645
 
        },
646
 
        "nosecstr2" => {
647
 
                "perl" => '(! $value)? " -nosecstr2" : ""',
648
 
        },
649
 
        "helixgap" => {
650
 
                "perl" => '  (defined $value && $value != $vdef)? " -helixgap=$value":"" ',
651
 
        },
652
 
        "strandgap" => {
653
 
                "perl" => '  (defined $value && $value != $vdef)? " -strandgap=$value":"" ',
654
 
        },
655
 
        "loopgap" => {
656
 
                "perl" => '  (defined $value  && $value != $vdef)? " -loopgap=$value":"" ',
657
 
        },
658
 
        "terminalgap" => {
659
 
                "perl" => '  (defined $value && $value != $vdef)? " -terminalgap=$value":"" ',
660
 
        },
661
 
        "helixendin" => {
662
 
                "perl" => '  (defined $value && $value != $vdef)? " -helixendin=$value":"" ',
663
 
        },
664
 
        "helixendout" => {
665
 
                "perl" => '  (defined $value && $value != $vdef)? " -helixendout=$value":"" ',
666
 
        },
667
 
        "strandendin" => {
668
 
                "perl" => '  (defined $value && $value != $vdef)? " -strandendin=$value":"" ',
669
 
        },
670
 
        "strandendout" => {
671
 
                "perl" => '  (defined $value && $value != $vdef)? " -strandendout=$value":"" ',
672
 
        },
673
 
        "secstrout" => {
674
 
                "perl" => '($value && $value ne $vdef)?" -secstrout=$value":""',
675
 
        },
676
 
 
677
 
    };
678
 
 
679
 
    $self->{FILENAMES}  = {
680
 
        "aligfile" => '*.aln *.gde *.phy',
681
 
        "readseq_ok_aligfile" => '*.phy *.msf *.pir',
682
 
        "newtreefile" => '*.nj *.dst',
683
 
        "phylipnewtreefile" => '*.dnd *.ph *.phb',
684
 
 
685
 
    };
686
 
 
687
 
    $self->{SEQFMT}  = {
688
 
        "infile" => [8,3,4,15,100],
689
 
 
690
 
    };
691
 
 
692
 
    $self->{GROUP}  = {
693
 
        "clustalw" => 0,
694
 
        "infile" => 1,
695
 
        "actions" => 2,
696
 
        "phylip_alig" => 2,
697
 
        "multalign" => 2,
698
 
        "quicktree" => 2,
699
 
        "typeseq" => 2,
700
 
        "matrix" => 2,
701
 
        "dnamatrix" => 2,
702
 
        "gapopen" => 2,
703
 
        "gapext" => 2,
704
 
        "endgaps" => 2,
705
 
        "gapdist" => 2,
706
 
        "pgap" => 2,
707
 
        "hgap" => 2,
708
 
        "hgapresidues" => 2,
709
 
        "maxdiv" => 2,
710
 
        "negative" => 2,
711
 
        "transweight" => 2,
712
 
        "newtree" => 2,
713
 
        "usetree" => 2,
714
 
        "fastpw" => 2,
715
 
        "ktuple" => 2,
716
 
        "topdiags" => 2,
717
 
        "window" => 2,
718
 
        "pairgap" => 2,
719
 
        "score" => 2,
720
 
        "slowpw" => 2,
721
 
        "pwmatrix" => 2,
722
 
        "pwdnamatrix" => 2,
723
 
        "pwgapopen" => 2,
724
 
        "pwgapext" => 2,
725
 
        "trees" => 2,
726
 
        "kimura" => 2,
727
 
        "tossgaps" => 2,
728
 
        "bootstrap" => 2,
729
 
        "bootlabels" => 2,
730
 
        "seed" => 2,
731
 
        "outputtree" => 2,
732
 
        "outputparam" => 2,
733
 
        "outfile" => 2,
734
 
        "output" => 2,
735
 
        "gde_lower" => 2,
736
 
        "outorder" => 2,
737
 
        "seqnos" => 2,
738
 
        "profile" => 2,
739
 
        "profile1" => 2,
740
 
        "profile2" => 2,
741
 
        "usetree1" => 2,
742
 
        "usetree2" => 2,
743
 
        "newtree1" => 2,
744
 
        "newtree2" => 2,
745
 
        "structure" => 2,
746
 
        "nosecstr1" => 2,
747
 
        "nosecstr2" => 2,
748
 
        "helixgap" => 2,
749
 
        "strandgap" => 2,
750
 
        "loopgap" => 2,
751
 
        "terminalgap" => 2,
752
 
        "helixendin" => 2,
753
 
        "helixendout" => 2,
754
 
        "strandendin" => 2,
755
 
        "strandendout" => 2,
756
 
        "secstrout" => 2,
757
 
 
758
 
    };
759
 
 
760
 
    $self->{BY_GROUP_PARAMETERS}  = [
761
 
        "clustalw",
762
 
        "aligfile",
763
 
        "readseq_ok_aligfile",
764
 
        "newtreefile",
765
 
        "phylipnewtreefile",
766
 
        "infile",
767
 
        "typeseq",
768
 
        "matrix",
769
 
        "dnamatrix",
770
 
        "gapopen",
771
 
        "gapext",
772
 
        "endgaps",
773
 
        "gapdist",
774
 
        "pgap",
775
 
        "hgap",
776
 
        "hgapresidues",
777
 
        "maxdiv",
778
 
        "negative",
779
 
        "transweight",
780
 
        "newtree",
781
 
        "usetree",
782
 
        "fastpw",
783
 
        "ktuple",
784
 
        "topdiags",
785
 
        "window",
786
 
        "pairgap",
787
 
        "score",
788
 
        "slowpw",
789
 
        "pwmatrix",
790
 
        "pwdnamatrix",
791
 
        "pwgapopen",
792
 
        "pwgapext",
793
 
        "trees",
794
 
        "kimura",
795
 
        "tossgaps",
796
 
        "bootstrap",
797
 
        "bootlabels",
798
 
        "seed",
799
 
        "outputtree",
800
 
        "outputparam",
801
 
        "outfile",
802
 
        "output",
803
 
        "gde_lower",
804
 
        "outorder",
805
 
        "seqnos",
806
 
        "actions",
807
 
        "phylip_alig",
808
 
        "multalign",
809
 
        "quicktree",
810
 
        "profile",
811
 
        "profile1",
812
 
        "profile2",
813
 
        "usetree1",
814
 
        "usetree2",
815
 
        "newtree1",
816
 
        "newtree2",
817
 
        "structure",
818
 
        "nosecstr1",
819
 
        "nosecstr2",
820
 
        "helixgap",
821
 
        "strandgap",
822
 
        "loopgap",
823
 
        "terminalgap",
824
 
        "helixendin",
825
 
        "helixendout",
826
 
        "strandendin",
827
 
        "strandendout",
828
 
        "secstrout",
829
 
 
830
 
    ];
831
 
 
832
 
    $self->{SIZE}  = {
833
 
 
834
 
    };
835
 
 
836
 
    $self->{ISHIDDEN}  = {
837
 
        "clustalw" => 1,
838
 
        "infile" => 0,
839
 
        "actions" => 0,
840
 
        "phylip_alig" => 0,
841
 
        "multalign" => 0,
842
 
        "quicktree" => 0,
843
 
        "typeseq" => 0,
844
 
        "matrix" => 0,
845
 
        "dnamatrix" => 0,
846
 
        "gapopen" => 0,
847
 
        "gapext" => 0,
848
 
        "endgaps" => 0,
849
 
        "gapdist" => 0,
850
 
        "pgap" => 0,
851
 
        "hgap" => 0,
852
 
        "hgapresidues" => 0,
853
 
        "maxdiv" => 0,
854
 
        "negative" => 0,
855
 
        "transweight" => 0,
856
 
        "newtree" => 0,
857
 
        "usetree" => 0,
858
 
        "fastpw" => 0,
859
 
        "ktuple" => 0,
860
 
        "topdiags" => 0,
861
 
        "window" => 0,
862
 
        "pairgap" => 0,
863
 
        "score" => 0,
864
 
        "slowpw" => 0,
865
 
        "pwmatrix" => 0,
866
 
        "pwdnamatrix" => 0,
867
 
        "pwgapopen" => 0,
868
 
        "pwgapext" => 0,
869
 
        "trees" => 0,
870
 
        "kimura" => 0,
871
 
        "tossgaps" => 0,
872
 
        "bootstrap" => 0,
873
 
        "bootlabels" => 0,
874
 
        "seed" => 0,
875
 
        "outputtree" => 0,
876
 
        "outputparam" => 0,
877
 
        "outfile" => 0,
878
 
        "output" => 0,
879
 
        "gde_lower" => 0,
880
 
        "outorder" => 0,
881
 
        "seqnos" => 0,
882
 
        "aligfile" => 0,
883
 
        "readseq_ok_aligfile" => 0,
884
 
        "newtreefile" => 0,
885
 
        "phylipnewtreefile" => 0,
886
 
        "profile" => 0,
887
 
        "profile1" => 0,
888
 
        "profile2" => 0,
889
 
        "usetree1" => 0,
890
 
        "usetree2" => 0,
891
 
        "newtree1" => 0,
892
 
        "newtree2" => 0,
893
 
        "structure" => 0,
894
 
        "nosecstr1" => 0,
895
 
        "nosecstr2" => 0,
896
 
        "helixgap" => 0,
897
 
        "strandgap" => 0,
898
 
        "loopgap" => 0,
899
 
        "terminalgap" => 0,
900
 
        "helixendin" => 0,
901
 
        "helixendout" => 0,
902
 
        "strandendin" => 0,
903
 
        "strandendout" => 0,
904
 
        "secstrout" => 0,
905
 
 
906
 
    };
907
 
 
908
 
    $self->{ISCOMMAND}  = {
909
 
        "clustalw" => 1,
910
 
        "infile" => 0,
911
 
        "actions" => 0,
912
 
        "phylip_alig" => 0,
913
 
        "multalign" => 0,
914
 
        "quicktree" => 0,
915
 
        "typeseq" => 0,
916
 
        "matrix" => 0,
917
 
        "dnamatrix" => 0,
918
 
        "gapopen" => 0,
919
 
        "gapext" => 0,
920
 
        "endgaps" => 0,
921
 
        "gapdist" => 0,
922
 
        "pgap" => 0,
923
 
        "hgap" => 0,
924
 
        "hgapresidues" => 0,
925
 
        "maxdiv" => 0,
926
 
        "negative" => 0,
927
 
        "transweight" => 0,
928
 
        "newtree" => 0,
929
 
        "usetree" => 0,
930
 
        "fastpw" => 0,
931
 
        "ktuple" => 0,
932
 
        "topdiags" => 0,
933
 
        "window" => 0,
934
 
        "pairgap" => 0,
935
 
        "score" => 0,
936
 
        "slowpw" => 0,
937
 
        "pwmatrix" => 0,
938
 
        "pwdnamatrix" => 0,
939
 
        "pwgapopen" => 0,
940
 
        "pwgapext" => 0,
941
 
        "trees" => 0,
942
 
        "kimura" => 0,
943
 
        "tossgaps" => 0,
944
 
        "bootstrap" => 0,
945
 
        "bootlabels" => 0,
946
 
        "seed" => 0,
947
 
        "outputtree" => 0,
948
 
        "outputparam" => 0,
949
 
        "outfile" => 0,
950
 
        "output" => 0,
951
 
        "gde_lower" => 0,
952
 
        "outorder" => 0,
953
 
        "seqnos" => 0,
954
 
        "aligfile" => 0,
955
 
        "readseq_ok_aligfile" => 0,
956
 
        "newtreefile" => 0,
957
 
        "phylipnewtreefile" => 0,
958
 
        "profile" => 0,
959
 
        "profile1" => 0,
960
 
        "profile2" => 0,
961
 
        "usetree1" => 0,
962
 
        "usetree2" => 0,
963
 
        "newtree1" => 0,
964
 
        "newtree2" => 0,
965
 
        "structure" => 0,
966
 
        "nosecstr1" => 0,
967
 
        "nosecstr2" => 0,
968
 
        "helixgap" => 0,
969
 
        "strandgap" => 0,
970
 
        "loopgap" => 0,
971
 
        "terminalgap" => 0,
972
 
        "helixendin" => 0,
973
 
        "helixendout" => 0,
974
 
        "strandendin" => 0,
975
 
        "strandendout" => 0,
976
 
        "secstrout" => 0,
977
 
 
978
 
    };
979
 
 
980
 
    $self->{ISMANDATORY}  = {
981
 
        "clustalw" => 0,
982
 
        "infile" => 1,
983
 
        "actions" => 1,
984
 
        "phylip_alig" => 0,
985
 
        "multalign" => 0,
986
 
        "quicktree" => 1,
987
 
        "typeseq" => 0,
988
 
        "matrix" => 0,
989
 
        "dnamatrix" => 0,
990
 
        "gapopen" => 0,
991
 
        "gapext" => 0,
992
 
        "endgaps" => 0,
993
 
        "gapdist" => 0,
994
 
        "pgap" => 0,
995
 
        "hgap" => 0,
996
 
        "hgapresidues" => 0,
997
 
        "maxdiv" => 0,
998
 
        "negative" => 0,
999
 
        "transweight" => 0,
1000
 
        "newtree" => 0,
1001
 
        "usetree" => 0,
1002
 
        "fastpw" => 0,
1003
 
        "ktuple" => 0,
1004
 
        "topdiags" => 0,
1005
 
        "window" => 0,
1006
 
        "pairgap" => 0,
1007
 
        "score" => 0,
1008
 
        "slowpw" => 0,
1009
 
        "pwmatrix" => 0,
1010
 
        "pwdnamatrix" => 0,
1011
 
        "pwgapopen" => 0,
1012
 
        "pwgapext" => 0,
1013
 
        "trees" => 0,
1014
 
        "kimura" => 0,
1015
 
        "tossgaps" => 0,
1016
 
        "bootstrap" => 0,
1017
 
        "bootlabels" => 0,
1018
 
        "seed" => 0,
1019
 
        "outputtree" => 0,
1020
 
        "outputparam" => 0,
1021
 
        "outfile" => 0,
1022
 
        "output" => 0,
1023
 
        "gde_lower" => 0,
1024
 
        "outorder" => 0,
1025
 
        "seqnos" => 0,
1026
 
        "aligfile" => 0,
1027
 
        "readseq_ok_aligfile" => 0,
1028
 
        "newtreefile" => 0,
1029
 
        "phylipnewtreefile" => 0,
1030
 
        "profile" => 0,
1031
 
        "profile1" => 1,
1032
 
        "profile2" => 1,
1033
 
        "usetree1" => 0,
1034
 
        "usetree2" => 0,
1035
 
        "newtree1" => 0,
1036
 
        "newtree2" => 0,
1037
 
        "structure" => 0,
1038
 
        "nosecstr1" => 0,
1039
 
        "nosecstr2" => 0,
1040
 
        "helixgap" => 0,
1041
 
        "strandgap" => 0,
1042
 
        "loopgap" => 0,
1043
 
        "terminalgap" => 0,
1044
 
        "helixendin" => 0,
1045
 
        "helixendout" => 0,
1046
 
        "strandendin" => 0,
1047
 
        "strandendout" => 0,
1048
 
        "secstrout" => 0,
1049
 
 
1050
 
    };
1051
 
 
1052
 
    $self->{PROMPT}  = {
1053
 
        "clustalw" => "",
1054
 
        "infile" => "Sequences File  (or Alignment File for Bootstrap and Tree actions) (-infile)",
1055
 
        "actions" => "Actions",
1056
 
        "phylip_alig" => "Phylip alignment output format (-output)",
1057
 
        "multalign" => "Multiple Alignments parameters",
1058
 
        "quicktree" => "Toggle Slow/Fast pairwise alignments (-quicktree)",
1059
 
        "typeseq" => "Protein or DNA (-type)",
1060
 
        "matrix" => "Protein weight matrix (-matrix)",
1061
 
        "dnamatrix" => "DNA weight matrix (-dnamatrix)",
1062
 
        "gapopen" => "Gap opening penalty (-gapopen)",
1063
 
        "gapext" => "Gap extension penalty (-gapext)",
1064
 
        "endgaps" => "End gap separation penalty (-endgaps)",
1065
 
        "gapdist" => "Gap separation pen. range (-gapdist)",
1066
 
        "pgap" => "Residue specific penalties (Pascarella gaps) (-nopgap)",
1067
 
        "hgap" => "Hydrophilic gaps (-nohgap)",
1068
 
        "hgapresidues" => "Hydrophilic residues list (-hgapresidues)",
1069
 
        "maxdiv" => "Delay divergent sequences : % ident. for delay (-maxdiv)",
1070
 
        "negative" => "Negative values in matrix ? (-negative)",
1071
 
        "transweight" => "Transitions weight (between 0 and 1) (-transweight)",
1072
 
        "newtree" => "File for new guide tree (-newtree)",
1073
 
        "usetree" => "File for old guide tree (-usetree)",
1074
 
        "fastpw" => "Fast Pairwise Alignments parameters",
1075
 
        "ktuple" => "Word size (-ktuple)",
1076
 
        "topdiags" => "Number of best diagonals (-topdiags)",
1077
 
        "window" => "Window around best diags (-window)",
1078
 
        "pairgap" => "Gap penalty (-pairgap)",
1079
 
        "score" => "Percent or absolute score ? (-score)",
1080
 
        "slowpw" => "Slow Pairwise Alignments parameters",
1081
 
        "pwmatrix" => "Protein weight matrix (-pwmatrix)",
1082
 
        "pwdnamatrix" => "DNA weight matrix (-pwdnamatrix)",
1083
 
        "pwgapopen" => "Gap opening penalty (-pwgapopen)",
1084
 
        "pwgapext" => "Gap extension penalty (-pwgapext)",
1085
 
        "trees" => "Tree parameters",
1086
 
        "kimura" => "Use Kimura's correction (multiple substitutions) ? (-kimura)",
1087
 
        "tossgaps" => "Ignore positions with gaps ? (-tossgaps)",
1088
 
        "bootstrap" => "Bootstrap a NJ tree (give the number of bootstraps, 0 for none) (-bootstrap)",
1089
 
        "bootlabels" => "Phylip bootstrap positions (-bootlabels)",
1090
 
        "seed" => "Seed number for bootstraps (-seed)",
1091
 
        "outputtree" => "Output tree/distance format (-outputtree)",
1092
 
        "outputparam" => "Output parameters",
1093
 
        "outfile" => "Alignment File (-outfile)",
1094
 
        "output" => "Output format (-output)",
1095
 
        "gde_lower" => "Upper case GDE output (-case)",
1096
 
        "outorder" => "Result order (-outorder)",
1097
 
        "seqnos" => "Output sequence numbers in the output file (clustalw format) (-seqnos)",
1098
 
        "aligfile" => "",
1099
 
        "readseq_ok_aligfile" => "",
1100
 
        "newtreefile" => "",
1101
 
        "phylipnewtreefile" => "",
1102
 
        "profile" => "Profile Alignments parameters",
1103
 
        "profile1" => "Profile 1 (-profile1)",
1104
 
        "profile2" => "Profile 2 (-profile2)",
1105
 
        "usetree1" => "File for old guide tree for profile1 (-usetree1)",
1106
 
        "usetree2" => "File for old guide tree for profile2 (-usetree2)",
1107
 
        "newtree1" => "File for new guide tree for profile1 (-newtree1)",
1108
 
        "newtree2" => "File for new guide tree for profile2 (-newtree2)",
1109
 
        "structure" => "Structure Alignments parameters",
1110
 
        "nosecstr1" => "Use profile 1 secondary structure / penalty mask (-nosecstr1)",
1111
 
        "nosecstr2" => "Use profile 2 secondary structure / penalty mask (-nosecstr2)",
1112
 
        "helixgap" => "Helix gap penalty (-helixgap)",
1113
 
        "strandgap" => "Strand gap penalty (-strandgap)",
1114
 
        "loopgap" => "Loop gap penalty (-loopgap)",
1115
 
        "terminalgap" => "Secondary structure terminal penalty (-terminalgap)",
1116
 
        "helixendin" => "Helix terminal positions:  number of residues inside helix to be treated as terminal (-helixendin)",
1117
 
        "helixendout" => "Helix terminal positions: number of residues outside helix to be treated as terminal (-helixendout)",
1118
 
        "strandendin" => "Strand terminal positions: number of residues inside strand to be treated as terminal (-strandendin)",
1119
 
        "strandendout" => "Strand terminal positions: number of residues outside strand to be treated as terminal (-strandendout)",
1120
 
        "secstrout" => "Output in alignment (-secstrout)",
1121
 
 
1122
 
    };
1123
 
 
1124
 
    $self->{ISSTANDOUT}  = {
1125
 
        "clustalw" => 0,
1126
 
        "infile" => 0,
1127
 
        "actions" => 0,
1128
 
        "phylip_alig" => 0,
1129
 
        "multalign" => 0,
1130
 
        "quicktree" => 0,
1131
 
        "typeseq" => 0,
1132
 
        "matrix" => 0,
1133
 
        "dnamatrix" => 0,
1134
 
        "gapopen" => 0,
1135
 
        "gapext" => 0,
1136
 
        "endgaps" => 0,
1137
 
        "gapdist" => 0,
1138
 
        "pgap" => 0,
1139
 
        "hgap" => 0,
1140
 
        "hgapresidues" => 0,
1141
 
        "maxdiv" => 0,
1142
 
        "negative" => 0,
1143
 
        "transweight" => 0,
1144
 
        "newtree" => 0,
1145
 
        "usetree" => 0,
1146
 
        "fastpw" => 0,
1147
 
        "ktuple" => 0,
1148
 
        "topdiags" => 0,
1149
 
        "window" => 0,
1150
 
        "pairgap" => 0,
1151
 
        "score" => 0,
1152
 
        "slowpw" => 0,
1153
 
        "pwmatrix" => 0,
1154
 
        "pwdnamatrix" => 0,
1155
 
        "pwgapopen" => 0,
1156
 
        "pwgapext" => 0,
1157
 
        "trees" => 0,
1158
 
        "kimura" => 0,
1159
 
        "tossgaps" => 0,
1160
 
        "bootstrap" => 0,
1161
 
        "bootlabels" => 0,
1162
 
        "seed" => 0,
1163
 
        "outputtree" => 0,
1164
 
        "outputparam" => 0,
1165
 
        "outfile" => 0,
1166
 
        "output" => 0,
1167
 
        "gde_lower" => 0,
1168
 
        "outorder" => 0,
1169
 
        "seqnos" => 0,
1170
 
        "aligfile" => 0,
1171
 
        "readseq_ok_aligfile" => 0,
1172
 
        "newtreefile" => 0,
1173
 
        "phylipnewtreefile" => 0,
1174
 
        "profile" => 0,
1175
 
        "profile1" => 0,
1176
 
        "profile2" => 0,
1177
 
        "usetree1" => 0,
1178
 
        "usetree2" => 0,
1179
 
        "newtree1" => 0,
1180
 
        "newtree2" => 0,
1181
 
        "structure" => 0,
1182
 
        "nosecstr1" => 0,
1183
 
        "nosecstr2" => 0,
1184
 
        "helixgap" => 0,
1185
 
        "strandgap" => 0,
1186
 
        "loopgap" => 0,
1187
 
        "terminalgap" => 0,
1188
 
        "helixendin" => 0,
1189
 
        "helixendout" => 0,
1190
 
        "strandendin" => 0,
1191
 
        "strandendout" => 0,
1192
 
        "secstrout" => 0,
1193
 
 
1194
 
    };
1195
 
 
1196
 
    $self->{VLIST}  = {
1197
 
 
1198
 
        "actions" => ['-align','-align: do full multiple alignment','-profile','-profile: merge two alignments (PROFILE1 and 2) by profile or structure alignment','-sequences','-sequences: sequentially add PROFILE2 sequences to PROFILE1 alignment','-tree','-tree: calculate NJ tree','-bootstrap','-bootstrap: bootstrap a NJ tree',],
1199
 
        "multalign" => ['quicktree','typeseq','matrix','dnamatrix','gapopen','gapext','endgaps','gapdist','pgap','hgap','hgapresidues','maxdiv','negative','transweight','newtree','usetree',],
1200
 
        "quicktree" => ['slow','Slow','fast','Fast',],
1201
 
        "typeseq" => ['protein','protein','dna','DNA',],
1202
 
        "matrix" => ['gonnet','Gonnet series','blosum','BLOSUM series','pam','PAM series','id','Identity matrix',],
1203
 
        "dnamatrix" => ['iub','IUB','clustalw','CLUSTALW',],
1204
 
        "hgapresidues" => ['A','A','R','R','N','N','D','D','C','C','Q','Q','E','E','G','G','H','H','I','I','L','L','K','K','M','M','F','F','P','P','S','S','T','T','W','W','Y','Y','V','V',],
1205
 
        "fastpw" => ['ktuple','topdiags','window','pairgap','score',],
1206
 
        "score" => ['percent','percent','absolute','absolute',],
1207
 
        "slowpw" => ['pwmatrix','pwdnamatrix','pwgapopen','pwgapext',],
1208
 
        "pwmatrix" => ['blosum','BLOSUM30 (Henikoff)','gonnet','Gonnet 250','pam','PAM350 (Dayhoff)','id','Identity matrix',],
1209
 
        "pwdnamatrix" => ['iub','IUB','clustalw','CLUSTALW',],
1210
 
        "trees" => ['kimura','tossgaps','bootstrap','bootlabels','seed','outputtree',],
1211
 
        "bootlabels" => ['node','NODE labels','branch','BRANCH labels',],
1212
 
        "outputtree" => ['NJ','Clustal format','PHYLIP','Phylip format tree','DIST','Phylip format distance matrix','NEXUS','NEXUS format tree',],
1213
 
        "outputparam" => ['outfile','output','gde_lower','outorder','seqnos',],
1214
 
        "output" => ['','CLUSTALW','GCG','GCG','GDE','GDE','PHYLIP','PHYLIP','PIR','PIR','NEXUS','NEXUS',],
1215
 
        "outorder" => ['input','input','aligned','aligned',],
1216
 
        "profile" => ['profile1','profile2','usetree1','usetree2','newtree1','newtree2',],
1217
 
        "structure" => ['nosecstr1','nosecstr2','helixgap','strandgap','loopgap','terminalgap','helixendin','helixendout','strandendin','strandendout','secstrout',],
1218
 
        "secstrout" => ['STRUCTURE','Secondary Structure','MASK','Gap Penalty Mask','BOTH','Structure and Penalty Mask','NONE','None',],
1219
 
    };
1220
 
 
1221
 
    $self->{FLIST}  = {
1222
 
 
1223
 
    };
1224
 
 
1225
 
    $self->{SEPARATOR}  = {
1226
 
        "hgapresidues" => "''",
1227
 
 
1228
 
    };
1229
 
 
1230
 
    $self->{VDEF}  = {
1231
 
        "actions" => '-align',
1232
 
        "phylip_alig" => '0',
1233
 
        "quicktree" => 'slow',
1234
 
        "matrix" => 'gonnet',
1235
 
        "dnamatrix" => 'iub',
1236
 
        "gapopen" => '10.00',
1237
 
        "gapext" => '0.20',
1238
 
        "endgaps" => '1',
1239
 
        "gapdist" => '8',
1240
 
        "pgap" => '1',
1241
 
        "hgap" => '1',
1242
 
        "hgapresidues" => ['G','P','S','N','D','Q','E','K','R',],
1243
 
        "maxdiv" => '30',
1244
 
        "negative" => '0',
1245
 
        "transweight" => '0.5',
1246
 
        "ktuple" => '1',
1247
 
        "topdiags" => '5',
1248
 
        "window" => '5',
1249
 
        "pairgap" => '3',
1250
 
        "pwmatrix" => 'gonnet',
1251
 
        "pwdnamatrix" => 'iub',
1252
 
        "pwgapopen" => '10.00',
1253
 
        "pwgapext" => '0.10',
1254
 
        "kimura" => '0',
1255
 
        "tossgaps" => '0',
1256
 
        "bootstrap" => '1000',
1257
 
        "bootlabels" => 'node',
1258
 
        "outputtree" => 'PHYLIP',
1259
 
        "output" => '""',
1260
 
        "outorder" => 'aligned',
1261
 
        "seqnos" => '0',
1262
 
        "nosecstr1" => '1',
1263
 
        "nosecstr2" => '1',
1264
 
        "helixgap" => '4',
1265
 
        "strandgap" => '4',
1266
 
        "loopgap" => '1',
1267
 
        "terminalgap" => '2',
1268
 
        "helixendin" => '3',
1269
 
        "helixendout" => '0',
1270
 
        "strandendin" => '1',
1271
 
        "strandendout" => '1',
1272
 
        "secstrout" => 'STRUCTURE',
1273
 
 
1274
 
    };
1275
 
 
1276
 
    $self->{PRECOND}  = {
1277
 
        "clustalw" => { "perl" => '1' },
1278
 
        "infile" => {
1279
 
                "perl" => '$actions ne "-profile" && $actions ne "-sequences"',
1280
 
        },
1281
 
        "actions" => { "perl" => '1' },
1282
 
        "phylip_alig" => { "perl" => '1' },
1283
 
        "multalign" => {
1284
 
                "perl" => '($actions =~ /align/ )',
1285
 
        },
1286
 
        "quicktree" => {
1287
 
                "perl" => '($actions =~ /align/ )',
1288
 
        },
1289
 
        "typeseq" => {
1290
 
                "perl" => '($actions =~ /align/ )',
1291
 
        },
1292
 
        "matrix" => {
1293
 
                "perl" => '($actions =~ /align/ )',
1294
 
        },
1295
 
        "dnamatrix" => {
1296
 
                "perl" => '($actions =~ /align/ )',
1297
 
        },
1298
 
        "gapopen" => {
1299
 
                "perl" => '($actions =~ /align/ )',
1300
 
        },
1301
 
        "gapext" => {
1302
 
                "perl" => '($actions =~ /align/ )',
1303
 
        },
1304
 
        "endgaps" => {
1305
 
                "perl" => '($actions =~ /align/ )',
1306
 
        },
1307
 
        "gapdist" => {
1308
 
                "perl" => '($actions =~ /align/ )',
1309
 
        },
1310
 
        "pgap" => {
1311
 
                "perl" => '($actions =~ /align/ )',
1312
 
        },
1313
 
        "hgap" => {
1314
 
                "perl" => '($actions =~ /align/ )',
1315
 
        },
1316
 
        "hgapresidues" => {
1317
 
                "perl" => '($actions =~ /align/ ) && $hgap',
1318
 
        },
1319
 
        "maxdiv" => {
1320
 
                "perl" => '($actions =~ /align/ )',
1321
 
        },
1322
 
        "negative" => {
1323
 
                "perl" => '($actions =~ /align/ )',
1324
 
        },
1325
 
        "transweight" => {
1326
 
                "perl" => '($actions =~ /align/ )',
1327
 
        },
1328
 
        "newtree" => {
1329
 
                "perl" => '($actions =~ /align/ )',
1330
 
        },
1331
 
        "usetree" => {
1332
 
                "perl" => '($actions =~ /align/ )',
1333
 
        },
1334
 
        "fastpw" => {
1335
 
                "perl" => '($quicktree eq "fast")',
1336
 
        },
1337
 
        "ktuple" => {
1338
 
                "perl" => '($quicktree eq "fast") && ($quicktree eq "fast")',
1339
 
        },
1340
 
        "topdiags" => {
1341
 
                "perl" => '($quicktree eq "fast") && ($quicktree eq "fast")',
1342
 
        },
1343
 
        "window" => {
1344
 
                "perl" => '($quicktree eq "fast") && ($quicktree eq "fast")',
1345
 
        },
1346
 
        "pairgap" => {
1347
 
                "perl" => '($quicktree eq "fast") && ($quicktree eq "fast")',
1348
 
        },
1349
 
        "score" => {
1350
 
                "perl" => '($quicktree eq "fast") && ($quicktree eq "fast")',
1351
 
        },
1352
 
        "slowpw" => {
1353
 
                "perl" => '($quicktree eq "slow")',
1354
 
        },
1355
 
        "pwmatrix" => {
1356
 
                "perl" => '($quicktree eq "slow") && ($quicktree eq "slow")',
1357
 
        },
1358
 
        "pwdnamatrix" => {
1359
 
                "perl" => '($quicktree eq "slow") && ($quicktree eq "slow")',
1360
 
        },
1361
 
        "pwgapopen" => {
1362
 
                "perl" => '($quicktree eq "slow") && ($quicktree eq "slow")',
1363
 
        },
1364
 
        "pwgapext" => {
1365
 
                "perl" => '($quicktree eq "slow") && ($quicktree eq "slow")',
1366
 
        },
1367
 
        "trees" => {
1368
 
                "perl" => ' ($actions =~ /tree/) ',
1369
 
        },
1370
 
        "kimura" => {
1371
 
                "perl" => ' ($actions =~ /tree/) ',
1372
 
        },
1373
 
        "tossgaps" => {
1374
 
                "perl" => ' ($actions =~ /tree/) ',
1375
 
        },
1376
 
        "bootstrap" => {
1377
 
                "perl" => ' ($actions =~ /tree/) ',
1378
 
        },
1379
 
        "bootlabels" => {
1380
 
                "perl" => ' ($actions =~ /tree/) ',
1381
 
        },
1382
 
        "seed" => {
1383
 
                "perl" => ' ($actions =~ /tree/) ',
1384
 
        },
1385
 
        "outputtree" => {
1386
 
                "perl" => ' ($actions =~ /tree/) ',
1387
 
        },
1388
 
        "outputparam" => { "perl" => '1' },
1389
 
        "outfile" => { "perl" => '1' },
1390
 
        "output" => { "perl" => '1' },
1391
 
        "gde_lower" => {
1392
 
                "perl" => '$output eq "GDE"',
1393
 
        },
1394
 
        "outorder" => { "perl" => '1' },
1395
 
        "seqnos" => {
1396
 
                "perl" => '$output eq ""',
1397
 
        },
1398
 
        "aligfile" => { "perl" => '1' },
1399
 
        "readseq_ok_aligfile" => {
1400
 
                "perl" => '$output eq "GCG" || $output eq "PIR" || $output eq "PHYLIP" || $phylip_alig',
1401
 
        },
1402
 
        "newtreefile" => { "perl" => '1' },
1403
 
        "phylipnewtreefile" => { "perl" => '1' },
1404
 
        "profile" => {
1405
 
                "perl" => '($actions =~ /profile|sequence/ )',
1406
 
        },
1407
 
        "profile1" => {
1408
 
                "perl" => '($actions =~ /profile|sequence/ )',
1409
 
        },
1410
 
        "profile2" => {
1411
 
                "perl" => '($actions =~ /profile|sequence/ )',
1412
 
        },
1413
 
        "usetree1" => {
1414
 
                "perl" => '($actions =~ /profile|sequence/ )',
1415
 
        },
1416
 
        "usetree2" => {
1417
 
                "perl" => '($actions =~ /profile|sequence/ ) && (! $actions =~ /sequence/ )',
1418
 
        },
1419
 
        "newtree1" => {
1420
 
                "perl" => '($actions =~ /profile|sequence/ )',
1421
 
        },
1422
 
        "newtree2" => {
1423
 
                "perl" => '($actions =~ /profile|sequence/ ) && (! $actions =~ /sequence/ )',
1424
 
        },
1425
 
        "structure" => {
1426
 
                "perl" => '($actions =~ /profile|sequence/ )',
1427
 
        },
1428
 
        "nosecstr1" => {
1429
 
                "perl" => '($actions =~ /profile|sequence/ )',
1430
 
        },
1431
 
        "nosecstr2" => {
1432
 
                "perl" => '($actions =~ /profile|sequence/ )',
1433
 
        },
1434
 
        "helixgap" => {
1435
 
                "perl" => '($actions =~ /profile|sequence/ )',
1436
 
        },
1437
 
        "strandgap" => {
1438
 
                "perl" => '($actions =~ /profile|sequence/ )',
1439
 
        },
1440
 
        "loopgap" => {
1441
 
                "perl" => '($actions =~ /profile|sequence/ )',
1442
 
        },
1443
 
        "terminalgap" => {
1444
 
                "perl" => '($actions =~ /profile|sequence/ )',
1445
 
        },
1446
 
        "helixendin" => {
1447
 
                "perl" => '($actions =~ /profile|sequence/ )',
1448
 
        },
1449
 
        "helixendout" => {
1450
 
                "perl" => '($actions =~ /profile|sequence/ )',
1451
 
        },
1452
 
        "strandendin" => {
1453
 
                "perl" => '($actions =~ /profile|sequence/ )',
1454
 
        },
1455
 
        "strandendout" => {
1456
 
                "perl" => '($actions =~ /profile|sequence/ )',
1457
 
        },
1458
 
        "secstrout" => {
1459
 
                "perl" => '($actions =~ /profile|sequence/ )',
1460
 
        },
1461
 
 
1462
 
    };
1463
 
 
1464
 
    $self->{CTRL}  = {
1465
 
 
1466
 
    };
1467
 
 
1468
 
    $self->{PIPEOUT}  = {
1469
 
        "outfile" => {
1470
 
                 '1' => "readseq_ok_alig",
1471
 
        },
1472
 
        "aligfile" => {
1473
 
                 '1' => "readseq_ok_alig",
1474
 
        },
1475
 
        "readseq_ok_aligfile" => {
1476
 
                 '1' => "readseq_ok_alig",
1477
 
        },
1478
 
        "phylipnewtreefile" => {
1479
 
                 '1' => "phylip_tree",
1480
 
        },
1481
 
 
1482
 
    };
1483
 
 
1484
 
    $self->{WITHPIPEOUT}  = {
1485
 
 
1486
 
    };
1487
 
 
1488
 
    $self->{PIPEIN}  = {
1489
 
        "infile" => {
1490
 
                 "seqsfile" => '1',
1491
 
                 "readseq_ok_alig" => '1',
1492
 
        },
1493
 
 
1494
 
    };
1495
 
 
1496
 
    $self->{WITHPIPEIN}  = {
1497
 
 
1498
 
    };
1499
 
 
1500
 
    $self->{ISCLEAN}  = {
1501
 
        "clustalw" => 0,
1502
 
        "infile" => 0,
1503
 
        "actions" => 0,
1504
 
        "phylip_alig" => 0,
1505
 
        "multalign" => 0,
1506
 
        "quicktree" => 0,
1507
 
        "typeseq" => 0,
1508
 
        "matrix" => 0,
1509
 
        "dnamatrix" => 0,
1510
 
        "gapopen" => 0,
1511
 
        "gapext" => 0,
1512
 
        "endgaps" => 0,
1513
 
        "gapdist" => 0,
1514
 
        "pgap" => 0,
1515
 
        "hgap" => 0,
1516
 
        "hgapresidues" => 0,
1517
 
        "maxdiv" => 0,
1518
 
        "negative" => 0,
1519
 
        "transweight" => 0,
1520
 
        "newtree" => 0,
1521
 
        "usetree" => 0,
1522
 
        "fastpw" => 0,
1523
 
        "ktuple" => 0,
1524
 
        "topdiags" => 0,
1525
 
        "window" => 0,
1526
 
        "pairgap" => 0,
1527
 
        "score" => 0,
1528
 
        "slowpw" => 0,
1529
 
        "pwmatrix" => 0,
1530
 
        "pwdnamatrix" => 0,
1531
 
        "pwgapopen" => 0,
1532
 
        "pwgapext" => 0,
1533
 
        "trees" => 0,
1534
 
        "kimura" => 0,
1535
 
        "tossgaps" => 0,
1536
 
        "bootstrap" => 0,
1537
 
        "bootlabels" => 0,
1538
 
        "seed" => 0,
1539
 
        "outputtree" => 0,
1540
 
        "outputparam" => 0,
1541
 
        "outfile" => 0,
1542
 
        "output" => 0,
1543
 
        "gde_lower" => 0,
1544
 
        "outorder" => 0,
1545
 
        "seqnos" => 0,
1546
 
        "aligfile" => 0,
1547
 
        "readseq_ok_aligfile" => 0,
1548
 
        "newtreefile" => 0,
1549
 
        "phylipnewtreefile" => 0,
1550
 
        "profile" => 0,
1551
 
        "profile1" => 0,
1552
 
        "profile2" => 0,
1553
 
        "usetree1" => 0,
1554
 
        "usetree2" => 0,
1555
 
        "newtree1" => 0,
1556
 
        "newtree2" => 0,
1557
 
        "structure" => 0,
1558
 
        "nosecstr1" => 0,
1559
 
        "nosecstr2" => 0,
1560
 
        "helixgap" => 0,
1561
 
        "strandgap" => 0,
1562
 
        "loopgap" => 0,
1563
 
        "terminalgap" => 0,
1564
 
        "helixendin" => 0,
1565
 
        "helixendout" => 0,
1566
 
        "strandendin" => 0,
1567
 
        "strandendout" => 0,
1568
 
        "secstrout" => 0,
1569
 
 
1570
 
    };
1571
 
 
1572
 
    $self->{ISSIMPLE}  = {
1573
 
        "clustalw" => 0,
1574
 
        "infile" => 1,
1575
 
        "actions" => 0,
1576
 
        "phylip_alig" => 1,
1577
 
        "multalign" => 0,
1578
 
        "quicktree" => 1,
1579
 
        "typeseq" => 0,
1580
 
        "matrix" => 0,
1581
 
        "dnamatrix" => 0,
1582
 
        "gapopen" => 0,
1583
 
        "gapext" => 0,
1584
 
        "endgaps" => 0,
1585
 
        "gapdist" => 0,
1586
 
        "pgap" => 0,
1587
 
        "hgap" => 0,
1588
 
        "hgapresidues" => 0,
1589
 
        "maxdiv" => 0,
1590
 
        "negative" => 0,
1591
 
        "transweight" => 0,
1592
 
        "newtree" => 0,
1593
 
        "usetree" => 0,
1594
 
        "fastpw" => 0,
1595
 
        "ktuple" => 0,
1596
 
        "topdiags" => 0,
1597
 
        "window" => 0,
1598
 
        "pairgap" => 0,
1599
 
        "score" => 0,
1600
 
        "slowpw" => 0,
1601
 
        "pwmatrix" => 0,
1602
 
        "pwdnamatrix" => 0,
1603
 
        "pwgapopen" => 0,
1604
 
        "pwgapext" => 0,
1605
 
        "trees" => 0,
1606
 
        "kimura" => 0,
1607
 
        "tossgaps" => 0,
1608
 
        "bootstrap" => 0,
1609
 
        "bootlabels" => 0,
1610
 
        "seed" => 0,
1611
 
        "outputtree" => 0,
1612
 
        "outputparam" => 0,
1613
 
        "outfile" => 0,
1614
 
        "output" => 0,
1615
 
        "gde_lower" => 0,
1616
 
        "outorder" => 0,
1617
 
        "seqnos" => 0,
1618
 
        "aligfile" => 0,
1619
 
        "readseq_ok_aligfile" => 0,
1620
 
        "newtreefile" => 0,
1621
 
        "phylipnewtreefile" => 0,
1622
 
        "profile" => 0,
1623
 
        "profile1" => 0,
1624
 
        "profile2" => 0,
1625
 
        "usetree1" => 0,
1626
 
        "usetree2" => 0,
1627
 
        "newtree1" => 0,
1628
 
        "newtree2" => 0,
1629
 
        "structure" => 0,
1630
 
        "nosecstr1" => 0,
1631
 
        "nosecstr2" => 0,
1632
 
        "helixgap" => 0,
1633
 
        "strandgap" => 0,
1634
 
        "loopgap" => 0,
1635
 
        "terminalgap" => 0,
1636
 
        "helixendin" => 0,
1637
 
        "helixendout" => 0,
1638
 
        "strandendin" => 0,
1639
 
        "strandendout" => 0,
1640
 
        "secstrout" => 0,
1641
 
 
1642
 
    };
1643
 
 
1644
 
    $self->{PARAMFILE}  = {
1645
 
 
1646
 
    };
1647
 
 
1648
 
    $self->{COMMENT}  = {
1649
 
        "multalign" => [
1650
 
                "Multiple alignments are carried out in 3 stages :",
1651
 
                "1) all sequences are compared to each other (pairwise alignments);",
1652
 
                "2) a dendrogram (like a phylogenetic tree) is constructed, describing the approximate groupings of the sequences by similarity (stored in a file).",
1653
 
                "3) the final multiple alignment is carried out, using the dendrogram as a guide.",
1654
 
                "Pairwise alignment parameters control the speed/sensitivity of the initial alignments.",
1655
 
                "Multiple alignment parameters control the gaps in the final multiple alignments.",
1656
 
        ],
1657
 
        "quicktree" => [
1658
 
                "slow: by dynamic programming (slow but accurate)",
1659
 
                "fast: method of Wilbur and Lipman (extremely fast but approximate)",
1660
 
        ],
1661
 
        "matrix" => [
1662
 
                "There are three \'in-built\' series of weight matrices offered. Each consists of several matrices which work differently at different evolutionary distances. To see the exact details, read the documentation. Crudely, we store several matrices in memory, spanning the full range of amino acid distance (from almost identical sequences to highly divergent ones). For very similar sequences, it is best to use a strict weight matrix which only gives a high score to identities and the most favoured conservative substitutions. For more divergent sequences, it is appropriate to use \'softer\' matrices which give a high score to many other frequent substitutions.",
1663
 
                "BLOSUM (Henikoff). These matrices appear to be the best available for carrying out data base similarity (homology searches). The matrices used are: Blosum80, 62, 40 and 30.",
1664
 
                "The Gonnet Pam 250 matrix has been reported as the best single matrix for alignment, if you only choose one matrix. Our experience with profile database searches is that the Gonnet series is unambiguously superior to the Blosum series at high divergence. However, we did not get the series to perform systematically better than the Blosum series in Clustal W (communication of the authors).",
1665
 
                "PAM (Dayhoff). These have been extremely widely used since the late \'70s. We use the PAM 120, 160, 250 and 350 matrices.",
1666
 
        ],
1667
 
        "dnamatrix" => [
1668
 
                "1) IUB. This is the default scoring matrix used by BESTFIT for the comparison of nucleic acid sequences. X\'s and N\'s are treated as matches to any IUB ambiguity symbol. All matches score 1.9; all mismatches for IUB symbols score 0.",
1669
 
                "2) CLUSTALW(1.6). The previous system used by ClustalW, in which matches score 1.0 and mismatches score 0. All matches for IUB symbols also score 0.",
1670
 
        ],
1671
 
        "gapopen" => [
1672
 
                "",
1673
 
        ],
1674
 
        "endgaps" => [
1675
 
                "End gap separation treats end gaps just like internal gaps for the purposes of avoiding gaps that are too close (set by GAP SEPARATION DISTANCE above). If you turn this off, end gaps will be ignored for this purpose. This is useful when you wish to align fragments where the end gaps are not biologically meaningful.",
1676
 
        ],
1677
 
        "gapdist" => [
1678
 
                "Gap separation distance tries to decrease the chances of gaps being too close to each other. Gaps that are less than this distance apart are penalised more than other gaps. This does not prevent close gaps; it makes them less frequent, promoting a block-like appearance of the alignment.",
1679
 
        ],
1680
 
        "pgap" => [
1681
 
                "Residue specific penalties are amino acid specific gap penalties that reduce or increase the gap opening penalties at each position in the alignment or sequence. As an example, positions that are rich in glycine are more likely to have an adjacent gap than positions that are rich in valine.",
1682
 
                "Table of residue specific gap modification factors:",
1683
 
                "A 1.13 M 1.29",
1684
 
                "C 1.13 N 0.63",
1685
 
                "D 0.96 P 0.74",
1686
 
                "E 1.31 Q 1.07",
1687
 
                "F 1.20 R 0.72",
1688
 
                "G 0.61 S 0.76",
1689
 
                "H 1.00 T 0.89",
1690
 
                "I 1.32 V 1.25",
1691
 
                "K 0.96 Y 1.00",
1692
 
                "L 1.21 W 1.23",
1693
 
                "The values are normalised around a mean value of 1.0 for H. The lower the value, the greater the chance of having an adjacent gap. These are derived from the original table of relative frequencies of gaps adjacent to each residue (12) by subtraction from 2.0.",
1694
 
        ],
1695
 
        "hgap" => [
1696
 
                "Hydrophilic gap penalties are used to increase the chances of a gap within a run (5 or more residues) of hydrophilic amino acids; these are likely to be loop or random coil regions where gaps are more common. The residues that are \'considered\' to be hydrophilic are set by menu item 3.",
1697
 
        ],
1698
 
        "maxdiv" => [
1699
 
                "Delays the alignment of the most distantly related sequences until after the most closely related sequences have been aligned. The setting shows the percent identity level required to delay the addition of a sequence; sequences that are less identical than this level to any other sequences will be aligned later.",
1700
 
        ],
1701
 
        "transweight" => [
1702
 
                "The transition weight option for aligning nucleotide sequences has been changed in version 1.7 from an on/off toggle to a weight between 0 and 1. A weight of zero means that the transitions are scored as mismatches; a weight of 1 gives transitions the full match score. For distantly related DNA sequences, the weight should be near to zero; for closely related sequences it can be useful to assign a higher score.",
1703
 
        ],
1704
 
        "usetree" => [
1705
 
                "You can give a previously computed tree (.dnd file) - on the same data",
1706
 
        ],
1707
 
        "fastpw" => [
1708
 
                "These similarity scores are calculated from fast, approximate, global alignments, which are controlled by 4 parameters. 2 techniques are used to make these alignments very fast: 1) only exactly matching fragments (k-tuples) are considered; 2) only the \'best\' diagonals (the ones with most k-tuple matches) are used.",
1709
 
        ],
1710
 
        "ktuple" => [
1711
 
                "K-TUPLE SIZE: This is the size of exactly matching fragment that is used. INCREASE for speed (max= 2 for proteins; 4 for DNA), DECREASE for sensitivity. For longer sequences (e.g. >1000 residues) you may need to increase the default.",
1712
 
        ],
1713
 
        "topdiags" => [
1714
 
                "The number of k-tuple matches on each diagonal (in an imaginary dot-matrix plot) is calculated. Only the best ones (with most matches) are used in the alignment. This parameter specifies how many. Decrease for speed; increase for sensitivity.",
1715
 
        ],
1716
 
        "window" => [
1717
 
                "WINDOW SIZE: This is the number of diagonals around each of the \'best\' diagonals that will be used. Decrease for speed; increase for sensitivity",
1718
 
        ],
1719
 
        "pairgap" => [
1720
 
                "This is a penalty for each gap in the fast alignments. It has little affect on the speed or sensitivity except for extreme values.",
1721
 
        ],
1722
 
        "slowpw" => [
1723
 
                "These parameters do not have any affect on the speed of the alignments. They are used to give initial alignments which are then rescored to give percent identity scores. These % scores are the ones which are displayed on the screen. The scores are converted to distances for the trees.",
1724
 
        ],
1725
 
        "pwmatrix" => [
1726
 
                "The scoring table which describes the similarity of each amino acid to each other. For DNA, an identity matrix is used.",
1727
 
                "BLOSUM (Henikoff). These matrices appear to be the best available for carrying out data base similarity (homology searches). The matrices used are: Blosum80, 62, 40 and 30.",
1728
 
                "The Gonnet Pam 250 matrix has been reported as the best single matrix for alignment, if you only choose one matrix. Our experience with profile database searches is that the Gonnet series is unambiguously superior to the Blosum series at high divergence. However, we did not get the series to perform systematically better than the Blosum series in Clustal W (communication of the authors).",
1729
 
                "PAM (Dayhoff). These have been extremely widely used since the late \'70s. We use the PAM 120, 160, 250 and 350 matrices.",
1730
 
        ],
1731
 
        "pwdnamatrix" => [
1732
 
                "For DNA, a single matrix (not a series) is used. Two hard-coded matrices are available:",
1733
 
                "1) IUB. This is the default scoring matrix used by BESTFIT for the comparison of nucleic acid sequences. X\'s and N\'s are treated as matches to any IUB ambiguity symbol. All matches score 1.9; all mismatches for IUB symbols score 0.",
1734
 
                "2) CLUSTALW(1.6). The previous system used by ClustalW, in which matches score 1.0 and mismatches score 0. All matches for IUB symbols also score 0.",
1735
 
        ],
1736
 
        "trees" => [
1737
 
                "If you ask for an alignment, the program automatic computes the tree as well; but you can also ask for a tree, given an alignment (file .aln), with specific options.",
1738
 
                "The method used is the NJ (Neighbour Joining) method of Saitou and Nei. First you calculate distances (percent divergence) between all pairs of sequence from a multiple alignment; second you apply the NJ method to the distance matrix.",
1739
 
        ],
1740
 
        "kimura" => [
1741
 
                "For small divergence (say <10%) this option makes no difference. For greater divergence, this option corrects for the fact that observed distances underestimate actual evolutionary distances. This is because, as sequences diverge, more than one substitution will happen at many sites. However, you only see one difference when you look at the present day sequences. Therefore, this option has the effect of stretching (for DNA or proteins) are both due to Motoo Kimura. See the documentation for details. ",
1742
 
                "For VERY divergent sequences, the distances cannot be reliably corrected. You will be warned if this happens. Even if none of the distances in a data set exceed the reliable threshold, if you bootstrap the data, some of the bootstrap distances may randomly exceed the safe limit.",
1743
 
        ],
1744
 
        "tossgaps" => [
1745
 
                "With this option, any alignment positions where ANY of the sequences have a gap will be ignored. This means that \'like\' will be compared to \'like\' in all distances. It also, automatically throws away the most ambiguous parts of the alignment, which are concentrated around gaps (usually). The disadvantage is that you may throw away much of the data if there are many gaps. ",
1746
 
        ],
1747
 
        "bootstrap" => [
1748
 
                "BOOTSTRAPPING is a method for deriving confidence values for the groupings in a tree (first adapted for trees by Joe Felsenstein). It involves making N random samples of sites from the alignment (N should be LARGE, e.g. 500 - 1000); drawing N trees (1 from each sample) and counting how many times each grouping from the original tree occurs in the sample trees. You must supply a seed number for the random number generator. Different runs with the same seed will give the same answer. See the documentation for details.",
1749
 
        ],
1750
 
        "bootlabels" => [
1751
 
                "The bootstrap values written in the phylip tree file format can be assigned either to branches or nodes. The default is to write the values on the nodes, as this can be read by several commonly-used tree display programs. But note that this can lead to confusion if the tree is rooted and the bootstraps may be better attached to the internal branches: Software developers should ensure they can read the branch label format.",
1752
 
        ],
1753
 
        "outputtree" => [
1754
 
                "Clustal format output: This format is verbose and lists all of the distances between the sequences and the number of alignment positions used for each. The tree is described at the end of the file. It lists the sequences that are joined at each alignment step and the branch lengths. After two sequences are joined, it is referred to later as a NODE. The number of a NODE is the number of the lowest sequence in that NODE. ",
1755
 
                "Phylip format tree output: This format is the New Hampshire format, used by many phylogenetic analysis packages. It consists of a series of nested parentheses, describing the branching order, with the sequence names and branch lengths. It can be used by the RETREE, DRAWGRAM and DRAWTREE programs of the PHYLIP package to see the trees graphically. This is the same format used during multiple alignment for the guide trees. ",
1756
 
                "The distance matrix only: This format just outputs a matrix of all the pairwise distances in a format that can be used by the Phylip package. It used to be useful when one could not produce distances from protein sequences in the Phylip package but is now redundant (Protdist of Phylip 3.5 now does this). ",
1757
 
                "NEXUS format tree:  This format is used by several popular phylogeny programs, including PAUP and MacClade. ",
1758
 
        ],
1759
 
        "profile" => [
1760
 
                "By PROFILE ALIGNMENT, we mean alignment using existing alignments. Profile alignments allow you to store alignments of your favourite sequences and add new sequences to them in small bunches at a time. A profile is simply an alignment of one or more sequences (e.g. an alignment output file from CLUSTAL W). Each input can be a single sequence. One or both sets of input sequences may include secondary structure assignments or gap penalty masks to guide the alignment.",
1761
 
                "Give 2 profiles to align the 2 profiles to each other",
1762
 
        ],
1763
 
        "structure" => [
1764
 
                "These options, when doing a profile alignment, allow you to set 2D structure parameters. If a solved structure is available, it can be used to guide the alignment by raising gap penalties within secondary structure elements, so that gaps will preferentially be inserted into unstructured surface loops. Alternatively, a user-specified gap penalty mask can be supplied directly.",
1765
 
                "A gap penalty mask is a series of numbers between 1 and 9, one per position in the alignment. Each number specifies how much the gap opening penalty is to be raised at that position (raised by multiplying the basic gap opening penalty by the number) i.e. a mask figure of 1 at a position means no change in gap opening penalty; a figure of 4 means that the gap opening penalty is four times greater at that position, making gaps 4 times harder to open.",
1766
 
                "Gap penalty masks is to be supplied with the input sequences. The masks work by raising gap penalties in specified regions (typically secondary structure elements) so that gaps are preferentially opened in the less well conserved regions (typically surface loops).",
1767
 
                "CLUSTAL W can read the masks from SWISS-PROT, CLUSTAL or GDE format input files. For many 3-D protein structures, secondary structure information is recorded in the feature tables of SWISS-PROT database entries. You should always check that the assignments are correct - some are quite inaccurate. CLUSTAL W looks for SWISS-PROT HELIX and STRAND assignments e.g.",
1768
 
                "FT   HELIX       100    115",
1769
 
                "FT   HELIX       100    115",
1770
 
                "The structure and penalty masks can also be read from CLUSTAL alignment format as comment lines beginning !SS_ or GM_ e.g.",
1771
 
                "!SS_HBA_HUMA    ..aaaAAAAAAAAAAaaa.aaaAAAAAAAAAAaaaaaaAaaa.........aaaAAAAAA",
1772
 
                "!GM_HBA_HUMA    112224444444444222122244444444442222224222111111111222444444",
1773
 
                "HBA_HUMA        VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGK",
1774
 
                "Note that the mask itself is a set of numbers between 1 and 9 each of which is assigned to the residue(s) in the same column below. In GDE flat file format, the masks are specified as text and the names must begin with SS_ or GM_. Either a structure or penalty mask or both may be used. If both are included in an alignment, the user will be asked which is to be used.",
1775
 
        ],
1776
 
        "nosecstr1" => [
1777
 
                "This option controls whether the input secondary structure information or gap penalty masks will be used.",
1778
 
        ],
1779
 
        "nosecstr2" => [
1780
 
                "This option controls whether the input secondary structure information or gap penalty masks will be used.",
1781
 
        ],
1782
 
        "helixgap" => [
1783
 
                "This option provides the value for raising the gap penalty at core Alpha Helical (A) residues. In CLUSTAL format, capital residues denote the A and B core structure notation. The basic gap penalties are multiplied by the amount specified.",
1784
 
        ],
1785
 
        "strandgap" => [
1786
 
                "This option provides the value for raising the gap penalty at Beta Strand (B) residues. In CLUSTAL format, capital residues denote the A and B core structure notation. The basic gap penalties are multiplied by the amount specified.",
1787
 
        ],
1788
 
        "loopgap" => [
1789
 
                "This option provides the value for the gap penalty in Loops. By default this penalty is not raised. In CLUSTAL format, loops are specified by . in the secondary structure notation.",
1790
 
        ],
1791
 
        "terminalgap" => [
1792
 
                "This option provides the value for setting the gap penalty at the ends of secondary structures. Ends of secondary structures are observed to grow and-or shrink in related structures. Therefore by default these are given intermediate values, lower than the core penalties. All secondary structure read in as lower case in CLUSTAL format gets the reduced terminal penalty.",
1793
 
        ],
1794
 
        "helixendin" => [
1795
 
                "This option (together with the -helixendin) specify the range of structure termini for the intermediate penalties. In the alignment output, these are indicated as lower case. For Alpha Helices, by default, the range spans the end helical turn.",
1796
 
        ],
1797
 
        "helixendout" => [
1798
 
                "This option (together with the -helixendin) specify the range of structure termini for the intermediate penalties. In the alignment output, these are indicated as lower case. For Alpha Helices, by default, the range spans the end helical turn.",
1799
 
        ],
1800
 
        "strandendin" => [
1801
 
                "This option (together with the -strandendout option) specify the range of structure termini for the intermediate penalties. In the alignment output, these are indicated as lower case. For Beta Strands, the default range spans the end residue and the adjacent loop residue, since sequence conservation often extends beyond the actual H-bonded Beta Strand.",
1802
 
        ],
1803
 
        "strandendout" => [
1804
 
                "This option (together with the -strandendin option) specify the range of structure termini for the intermediate penalties. In the alignment output, these are indicated as lower case. For Beta Strands, the default range spans the end residue and the adjacent loop residue, since sequence conservation often extends beyond the actual H-bonded Beta Strand.",
1805
 
        ],
1806
 
        "secstrout" => [
1807
 
                "This option lets you choose whether or not to include the masks in the CLUSTAL W output alignments. Showing both is useful for understanding how the masks work. The secondary structure information is itself very useful in judging the alignment quality and in seeing how residue conservation patterns vary with secondary structure.",
1808
 
        ],
1809
 
 
1810
 
    };
1811
 
 
1812
 
    $self->{SCALEMIN}  = {
1813
 
 
1814
 
    };
1815
 
 
1816
 
    $self->{SCALEMAX}  = {
1817
 
 
1818
 
    };
1819
 
 
1820
 
    $self->{SCALEINC}  = {
1821
 
 
1822
 
    };
1823
 
 
1824
 
    $self->{INFO}  = {
1825
 
 
1826
 
    };
1827
 
 
1828
 
# -- end of definitions extracted from /local/gensoft/lib/Pise/5.a/PerlDef/clustalw.pm
1829
 
 
1830
 
 
1831
 
 
1832
 
    $self->_init_params(@params);
1833
 
 
1834
 
    return $self;
1835
 
}
1836
 
 
1837
 
 
1838
 
 
1839
 
1; # Needed to keep compiler happy
1840