This file is indexed.

/var/lib/mobyle/programs/pratt.xml is in mobyle-programs 5.1.2-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
<?xml version='1.0' encoding='UTF-8'?>
<!-- XML Authors: Corinne Maufrais, Nicolas Joly and Bertrand Neron,             -->
<!-- 'Biological Software and Databases' Group, Institut Pasteur, Paris.         -->
<!-- Distributed under LGPLv2 License. Please refer to the COPYING.LIB document. -->
<program>
  <head>
    <name>pratt</name>
    <version>2.1</version>
    <doc>
      <title>Pratt</title>
      <description>
        <text lang="en">Pattern discovery in sets of unaligned protein sequences</text>
      </description>
      <authors>K. Sturzrehm, I. Jonassen</authors>
      <homepagelink>http://www.ii.uib.no/~inge/Pratt.html</homepagelink>
      <sourcelink>ftp://ftp.ebi.ac.uk/pub/software/unix/pratt/</sourcelink>
    </doc>
    <category>sequence:protein:pattern</category>
    <command>pratt</command>
  </head>
  <parameters xmlns:xi="http://www.w3.org/2001/XInclude">
    <parameter ismandatory="1" issimple="1">
      <name>seq</name>
      <prompt lang="en">Sequence File</prompt>
      <type>
        <datatype>
          <class>Sequence</class>
        </datatype>
        <dataFormat>FASTA</dataFormat>
      </type>
      <format>
        <code proglang="perl">" fasta $value"</code>
        <code proglang="python">" fasta "+str(value)</code>
      </format>
      <argpos>2</argpos>
      <comment>
        <text lang="en">Fasta  format.  One   file  containing   all  the sequences. One sequence is specified by</text>
        <text lang="en">one line starting with '&gt;' in position 1 and then the name of the sequence, and some lines containing the sequence in upper or lower case. The end of a sequence is identified by looking for either the start of a new sequence or the end of the file.</text>
      </comment>
      <example>
&gt;seq1
HLKSEDEMKASEDLKKHKKKGHHEAEIKPLAQSHATKHKIPVKYLEFIS
SDLHAHKLRKRKLVKNMVL
&gt;seq2
VEVFISEDDLKRKLVKNMVLDKDNKQHMLPKAGDTVTNYTLLGLVLVLI
WLIMQRKRKKKEDVSEENIQEIPKKELAASS
      </example>
    </parameter>
    <paragraph>
      <name>conservation</name>
      <prompt lang="en">Pattern conservation parameters</prompt>
      <argpos>3</argpos>
      <parameters>
        <parameter>
          <name>CM</name>
          <prompt lang="en">Minimum number of Sequences to Match (-CM)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <format>
            <code proglang="perl">(defined $value)? " -CM $value":""</code>
            <code proglang="python">("" , " -CM " + str(value))[ value is not None ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be between 2 and 4</text>
            </message>
            <code proglang="perl">$value &gt;= 2 and $value &lt;= 4</code>
            <code proglang="python">value &gt;= 2 and value &lt;= 4</code>
          </ctrl>
          <comment>
            <text lang="en">Set the minimum number of sequences to match a pattern. Pratt will only report patterns that match at least the chosen number of the sequences that you have input. Pratt will not allow you to choose a value higher than the number of sequences input.</text>
          </comment>
        </parameter>
        <parameter>
          <name>Cpct</name>
          <prompt lang="en">Minimum Percentage of Sequences to Match (-C%)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>100</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -C% $value":""</code>
            <code proglang="python">("" , " -C% " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Set the minimum percentage of the input sequences that should match a pattern. If you set this to, say 80, Pratt will only report patterns matching at least 80 % of the sequences input.</text>
          </comment>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>restrictions</name>
      <prompt lang="en">Pattern restrictions parameters</prompt>
      <argpos>3</argpos>
      <parameters>
        <parameter>
          <name>PP</name>
          <prompt lang="en">Position in sequence (-PP)</prompt>
          <type>
            <datatype>
              <class>Choice</class>
            </datatype>
          </type>
          <vdef>
            <value>off</value>
          </vdef>
          <vlist>
            <velem>
              <value>off</value>
              <label>OFF</label>
            </velem>
            <velem>
              <value>complete</value>
              <label>Complete pattern match has to be in this area (complete)</label>
            </velem>
            <velem>
              <value>start</value>
              <label>Pattern match has to start in this area (start)</label>
            </velem>
          </vlist>
          <format>
            <code proglang="perl">(defined $value and $value ne $vdef)? " -PP $value":""</code>
            <code proglang="python">("" , " -PP " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">You must give a file to define the area (PF)</text>
            </message>
            <code proglang="perl">$value eq $vdef or ($value ne $vdef and defined $PF)</code>
            <code proglang="python">value == vdef or (value != vdef and PF is not None)</code>
          </ctrl>
          <comment>
            <text lang="en"/>
          </comment>
        </parameter>
        <parameter>
          <name>PF</name>
          <prompt lang="en">Restriction File name (if PP not off) (-PF)</prompt>
          <type>
            <datatype>
              <class>RestrictionPattern</class>
              <superclass>AbstractText</superclass>
            </datatype>
          </type>
          <precond>
            <code proglang="perl">$PP ne "off"</code>
            <code proglang="python">PP != "off"</code>
          </precond>
          <format>
            <code proglang="perl">" -PF $value"</code>
            <code proglang="python">" -PF " + str(value)</code>
          </format>
          <comment>
            <text lang="en">This file contains lines to restrict pattern searches to certain regions in a sequence, say ACE2_YEAST: </text>
            <text lang="en">&gt;ACE2_YEAST (100,200)</text>
          </comment>
        </parameter>
        <parameter>
          <name>PL</name>
          <prompt lang="en">Maximum Pattern Length (-PL)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>50</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -PL $value":""</code>
            <code proglang="python">("" , " -PL " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Allows you to set the maximum length of a pattern. The length of the pattern C-x(2,4)-[DE] is 1+4+1=6. </text>
          </comment>
        </parameter>
        <parameter>
          <name>PN</name>
          <prompt lang="en">Maximum number of Pattern Symbols (-PN)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>50</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -PN $value":" "</code>
            <code proglang="python">("" , " -PN " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Using this you can set the maximum number of symbols in a pattern. The pattern C-x(2,4)-[DE] has 2 symbols (C and [DE]).</text>
          </comment>
        </parameter>
        <parameter>
          <name>PX</name>
          <prompt lang="en">Maximum number of consecutive x's (-PX)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>5</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -PX $value":""</code>
            <code proglang="python">("" , " -PX " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Using this option you can set the maximum length of a wildcard.</text>
          </comment>
          <example>
           x       -  1
          x(10)    - 10
         x(3,4)    -  4
	  </example>
        </parameter>
        <parameter>
          <name>FN</name>
          <prompt lang="en">Maximum number of flexible spacers (-FN)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>2</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -FN $value":""</code>
            <code proglang="python">("" , " -FN " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Using this option you can set the maximum number of flexible wildcards (matching a variable number of arbitrary sequence symbols). For instance x(2,4) is a flexible wildcard, and the pattern C-x(2,4)-[DE]-x(10)-F contains one flexible wildcard.</text>
          </comment>
        </parameter>
        <parameter>
          <name>FL</name>
          <prompt lang="en">Maximum Flexibility (-FL)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>2</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -FL $value":""</code>
            <code proglang="python">("" , " -FL " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">You can set the maximum flexibility of a flexible wildcard (matching a variable number of arbitrary sequence symbols). For instance x(2,4) and x(10,12) has flexibility 2, and x(10) has flexibility 0. Increasing FL will increase the time used by Pratt.</text>
          </comment>
        </parameter>
        <parameter>
          <name>FP</name>
          <prompt lang="en">Maximum Flexibility Product (-FP)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>10</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -FP $value":""</code>
            <code proglang="python">("" , " -FP " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en"> Using option FP you can set an upper limit on the product of a flexibilities for a pattern. This is related to the memory requirements of the search, and increasing the limit, increases the memory usage. Some patterns and the corresponding product of flexibilities.</text>
          </comment>
          <example>
C-x(2,4)-[DE]-x(10)-F      - (4-2+1)*(10-10+1)= 3
C-x(2,4)-[DE]-x(10-14)-F   - (4-2+1)*(14-10+1)= 3*5= 15
	  </example>
        </parameter>
        <parameter>
          <name>BI</name>
          <prompt lang="en">Input Pattern Symbol File? (-BI)</prompt>
          <type>
            <datatype>
              <class>Boolean</class>
            </datatype>
          </type>
          <vdef>
            <value>0</value>
          </vdef>
          <format>
            <code proglang="perl">($value)? " -BI on":""</code>
            <code proglang="python">("" , " -BI on")[ value ]</code>
          </format>
          <comment>
            <text lang="en">Using the B options (BN,BI,BF) on the menu you can control which pattern symbols will be used during the initial pattern search and during the refinement phase. The pattern symbols that can be used, are read from a file if the BI option is set, otherwise a default set will be used.</text>
            <text lang="en">The default set has as the 20 first elements, the single amino acid symbols, and it also contains a set of ambiguous symbols, each containing amino acids that share some physio-chemical properties</text>
          </comment>
        </parameter>
        <parameter>
          <name>BF</name>
          <prompt lang="en">Input Pattern Symbol File name (if BI on) (-BF)</prompt>
          <type>
            <datatype>
              <class>PatternSymbol</class>
              <superclass>AbstractText</superclass>
            </datatype>
          </type>
          <precond>
            <code proglang="perl">$BI</code>
            <code proglang="python">BI</code>
          </precond>
          <format>
            <code proglang="perl">(defined $value) ? " -BF $value" : "-BF <xi:include href="../../Local/Services/Programs/Env/pratt_data.xml" xpointer="xpointer(/pratt_data/pattern/text())" />Pratt.sets.big" </code>
            <code proglang="python">( " -BF <xi:include href="../../Local/Services/Programs/Env/pratt_data.xml" xpointer="xpointer(/pratt_data/pattern/text())" />Pratt.sets.big"  , " -BF " + str(value) )[ value is not None ]</code>
          </format>
          <comment>
            <text lang="en">In the file each symbol is given on a separate line concataining the letters that the symbol should match. For the example, only patterns with the symbols C and [DE] would be considered. During the initial search, pattern symbols corresponding to the first BN lines can be used.</text>
            <text lang="en">default file is: Pratt.sets.big</text>
          </comment>
          <example>
C
DE
	  </example>
        </parameter>
        <parameter>
          <name>BN</name>
          <prompt lang="en">Number of Pattern Symbols Initial Search (-BN)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>20</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -BN $value":""</code>
            <code proglang="python">("" , " -BN " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Increasing BN will slow down the search and increase the memory usage, but allow more ambiguous pattern symbols.</text>
          </comment>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>scoring</name>
      <prompt lang="en">Pattern Scoring parameters</prompt>
      <argpos>3</argpos>
      <parameters>
        <parameter>
          <name>S</name>
          <prompt lang="en">Scoring (-S)</prompt>
          <type>
            <datatype>
              <class>Choice</class>
            </datatype>
          </type>
          <vdef>
            <value>info</value>
          </vdef>
          <vlist>
            <velem>
              <value>info</value>
              <label>Information content (info)</label>
            </velem>
            <velem>
              <value>mdl</value>
              <label>Minimum Description Length (mdl)</label>
            </velem>
            <velem>
              <value>tree</value>
              <label>Diversity calculated from a dendrogram (tree)</label>
            </velem>
            <velem>
              <value>dist</value>
              <label>Distances matrix (dist)</label>
            </velem>
            <velem>
              <value>ppv</value>
              <label>Positive Predictive Value (ppv)</label>
            </velem>
          </vlist>
          <format>
            <code proglang="perl">(defined $value and $value ne $vdef)? " -S $value":""</code>
            <code proglang="python">("" , " -S " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">The S option allows you to control the scoring of patterns. There are five possible scoring schemes to be used:</text>
            <text lang="en">info: patterns are scored by their information content as defined in (Jonassen et al, 1995). Note that a pattern's score is independent of which sequences it matches.</text>
            <text lang="en">mdl: patterns are scored by a Minimum Description Length principle derived scoring scheme, which is related to the one above, but penalises patterns scoring few sequences vs. patterns scoring many. Parameters Z0 to Z3 are required when this scoring scheme is used.</text>
            <text lang="en">tree: a pattern is scored higher if it contains more information and/or if it matches more diverse sequences. The sequence diversity is calculated from a dendrogram which has to be input.</text>
            <text lang="en">dist: similar to the tree scoring, except a matrix with pairwise the similarity between all pairs of input sequences are used instead of the tree. The matrix has to be input.</text>
            <text lang="en">ppv: a measure of Positive Predictive Value - it is assumed that the input sequences constitute a family, and are all contained in the Swiss-Prot database. PPV measures how certain one can be that a sequence belongs to the family given that it matches the pattern.</text>
            <text lang="en">For the last three scoring schemes (tree, dist, ppv), an input file is needed.</text>
          </comment>
        </parameter>
        <parameter ismandatory="1">
          <name>treefile</name>
          <prompt lang="en">Tree File for Scoring equal to tree (-SF)</prompt>
          <type>
            <datatype>
              <class>Tree</class>
            </datatype>
          </type>
          <precond>
            <code proglang="perl">$S eq "tree"</code>
            <code proglang="python">S == "tree"</code>
          </precond>
          <format>
            <code proglang="perl">" -SF $value "</code>
            <code proglang="python">" -SF " + str(value)</code>
          </format>
        </parameter>
        <parameter ismandatory="1">
          <name>distfile</name>
          <prompt lang="en">Distances File if Scoring equal to dist (-SF)</prompt>
          <type>
            <datatype>
              <class>PhylipDistanceMatrix</class>
              <superclass>AbstractText</superclass>
            </datatype>
          </type>
          <precond>
            <code proglang="perl">$S eq "dist"</code>
            <code proglang="python">S == "dist"</code>
          </precond>
          <format>
            <code proglang="perl">" -SF $value; "</code>
            <code proglang="python">" -SF " + str(value)</code>
          </format>
          <comment>
            <text lang="en">A matrix with pairwise the similarity between all pairs of input sequences are used instead of the tree.</text>
          </comment>
        </parameter>
        <parameter>
          <name>uniprotdb</name>
          <prompt lang="en">Swissprot file if Scoring equal to ppv (-SF)</prompt>
          <type>
            <datatype>
              <class>Sequence</class>
            </datatype>
            <dataFormat>SWISSPROT</dataFormat>
          </type>
          <precond>
            <code proglang="perl">$S eq "ppv"</code>
            <code proglang="python">S == "ppv"</code>
          </precond>
          <format>
            <code proglang="perl">(defined $value) ? " -SF $value" : " -SF <xi:include href="../../Local/Services/Programs/Env/pratt_data.xml" xpointer="xpointer(/pratt_data/db/text())" />" </code>
            <code proglang="python">( " -SF <xi:include href="../../Local/Services/Programs/Env/pratt_data.xml" xpointer="xpointer(/pratt_data/db/text())" />"  , " -SF " + str(value) )[ value is not None ]</code>
          </format>
          <comment>
            <text lang="en">Default: uniprot_sprot databank.</text>
          </comment>
        </parameter>
        <paragraph>
          <name>mdl_param</name>
          <prompt lang="en">MDL parameters (Z0-Z3) (if MDL scoring)</prompt>
          <precond>
            <code proglang="perl">$S eq "mdl"</code>
            <code proglang="python">S == "mdl"</code>
          </precond>
          <argpos>3</argpos>
          <parameters>
            <parameter ismandatory="1">
              <name>Z0</name>
              <prompt lang="en">Z0</prompt>
              <type>
                <datatype>
                  <class>Integer</class>
                </datatype>
              </type>
              <vdef>
                <value>10.00</value>
              </vdef>
              <format>
                <code proglang="perl">(defined $value and $value != $vdef)? " -Z0 $value" : "" </code>
                <code proglang="python">( ""  , " -Z0 " + str(value) )[ value is not None and value != vdef]</code>
              </format>
            </parameter>
            <parameter ismandatory="1">
              <name>Z1</name>
              <prompt lang="en">Z1</prompt>
              <type>
                <datatype>
                  <class>Integer</class>
                </datatype>
              </type>
              <vdef>
                <value>10.00</value>
              </vdef>
              <format>
                <code proglang="perl">(defined $value and $value != $vdef)? " -Z1 $value" : ""</code>
                <code proglang="python">( "" , " -Z1 " + str(value) )[ value is not None and value != vdef]</code>
              </format>
            </parameter>
            <parameter ismandatory="1">
              <name>Z2</name>
              <prompt lang="en">Z2</prompt>
              <type>
                <datatype>
                  <class>Integer</class>
                </datatype>
              </type>
              <vdef>
                <value>3.00</value>
              </vdef>
              <format>
                <code proglang="perl">(defined $value and $value != $vdef)? " -Z2 $value" : ""</code>
                <code proglang="python">( "" , " -Z2 " + str(value) )[ value is not None and value != vdef]</code>
              </format>
            </parameter>
            <parameter ismandatory="1">
              <name>Z3</name>
              <prompt lang="en">Z3</prompt>
              <type>
                <datatype>
                  <class>Integer</class>
                </datatype>
              </type>
              <vdef>
                <value>10.00</value>
              </vdef>
              <format>
                <code proglang="perl">(defined $value and $value != $vdef)? " -Z3 $value" : ""</code>
                <code proglang="python">( "" , " -Z3 " + str(value) )[ value is not None and value != vdef]</code>
              </format>
            </parameter>
          </parameters>
        </paragraph>
      </parameters>
    </paragraph>
    <paragraph>
      <name>search</name>
      <prompt lang="en">Search parameters</prompt>
      <argpos>3</argpos>
      <parameters>
        <parameter>
          <name>G</name>
          <prompt lang="en">Pattern Graph from: (-G)</prompt>
          <type>
            <datatype>
              <class>Choice</class>
            </datatype>
          </type>
          <vdef>
            <value>seq</value>
          </vdef>
          <vlist>
            <velem>
              <value>seq</value>
              <label>Sequence (seq)</label>
            </velem>
            <velem>
              <value>al</value>
              <label>Alignment (al)</label>
            </velem>
            <velem>
              <value>query</value>
              <label>Query</label>
            </velem>
          </vlist>
          <format>
            <code proglang="perl">(defined $value and $value ne $vdef)? " -G $value":""</code>
            <code proglang="python">("" , " -G " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">If G is set to al or query, another option GF is required allowing the user to give the name of a file containing a multiple sequence alignment (in Clustal W format), or a query sequence in FastA format (without annotation). Only patterns consistent with the alignment/matching the query sequence will be considered.</text>
          </comment>
        </parameter>
        <parameter ismandatory="1">
          <name>GF_ali</name>
          <prompt lang="en">Alignment file (if G set to al) (-GF)</prompt>
          <type>
            <datatype>
              <class>Alignment</class>
            </datatype>
            <dataFormat>CLUSTAL</dataFormat>
          </type>
          <precond>
            <code proglang="perl">$G eq "al"</code>
            <code proglang="python">G == "al"</code>
          </precond>
          <format>
            <code proglang="perl">" -GF $value"</code>
            <code proglang="python">" -GF " + str(value)</code>
          </format>
          <comment>
            <text lang="en">Alignment file must be in CLUSTALW format</text>
          </comment>
        </parameter>
        <parameter ismandatory="1">
          <name>GF_seq</name>
          <prompt lang="en">Query sequence file (if G set query) (-GF)</prompt>
          <type>
            <datatype>
              <class>Sequence</class>
            </datatype>
            <dataFormat>FASTA</dataFormat>
          </type>
          <precond>
            <code proglang="perl">$G eq "query"</code>
            <code proglang="python">G == "query"</code>
          </precond>
          <format>
            <code proglang="perl">" -GF $value"</code>
            <code proglang="python">" -GF " + str(value)</code>
          </format>
          <comment>
            <text lang="en">Query file must be in Fasta format</text>
          </comment>
        </parameter>
        <parameter>
          <name>E</name>
          <prompt lang="en">Search Greediness (-E)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>3</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -E $value":""</code>
            <code proglang="python">("" , " -E " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Using the E parameter you can adjust the greediness of the search. Setting E to 0 (zero), the search will be exhaustive. Increasing E increases the greediness, and decreases the time used in the search.</text>
          </comment>
        </parameter>
        <parameter>
          <name>R</name>
          <prompt lang="en">Pattern Refinement (-R)</prompt>
          <type>
            <datatype>
              <class>Boolean</class>
            </datatype>
          </type>
          <vdef>
            <value>1</value>
          </vdef>
          <format>
            <code proglang="perl">($value) ? " -R off" : ""</code>
            <code proglang="python">( " " , " -R off" )[ value ]</code>
          </format>
          <comment>
            <text lang="en">When the R option is switched on, patterns found during the initial pattern search are input to a refinement algorithm where more ambiguous pattern symbols can be added. For instance the pattern C-x(4)-D might be refined to C-x-[ILV]-x-D-x(3)-[DEF]</text>
          </comment>
        </parameter>
        <parameter>
          <name>RG</name>
          <prompt lang="en">Generalise ambiguous symbols (if Pattern Refinement on) (-RG)</prompt>
          <type>
            <datatype>
              <class>Boolean</class>
            </datatype>
          </type>
          <precond>
            <code proglang="perl">$R</code>
            <code proglang="python">R</code>
          </precond>
          <vdef>
            <value>0</value>
          </vdef>
          <format>
            <code proglang="perl">($value)? " -RG on" : "" </code>
            <code proglang="python">( ""  , " -RG on" )[ value ]</code>
          </format>
          <comment>
            <text lang="en">If the RG option is switched on, then ambiguous symbols listed in the symbols file (or in the default symbol set -- see help for option B), are used. If RG is off, only the letters needed to match the input sequences are included in the ambiguous pattern positions.</text>
            <text lang="en">For example, if [ILV] is a listed allowed symbol, and [IL] is not, [IL] can be included in a pattern if RG is off, but if RG is on, the full symbol [ILV] will be included instead.</text>
          </comment>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>output</name>
      <prompt lang="en">Output options</prompt>
      <argpos>3</argpos>
      <parameters>
        <parameter>
          <name>OP</name>
          <prompt lang="en">PROSITE Pattern Format (-OP)</prompt>
          <type>
            <datatype>
              <class>Boolean</class>
            </datatype>
          </type>
          <vdef>
            <value>1</value>
          </vdef>
          <format>
            <code proglang="perl">($value) ? " -OP off " : ""</code>
            <code proglang="python">( "" , " -OP off " )[ value ]</code>
          </format>
          <comment>
            <text lang="en">When switched on, patterns will be output in PROSITE style (for instance C-x(2,4)-[DE]). When switched off, patterns are output in a simpler consensus pattern style (for instance Cxx--[DE] where x matches exactly one arbitrary sequence symbol and - matches zero or one arbitrary sequence symbol).</text>
          </comment>
        </parameter>
        <parameter>
          <name>ON</name>
          <prompt lang="en">Maximum number patterns (-ON)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>50</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -ON $value":""</code>
            <code proglang="python">("" , " -ON " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Set the maximum number of patterns to be found by Pratt</text>
          </comment>
        </parameter>
        <parameter>
          <name>OA</name>
          <prompt lang="en">Maximum number Alignments (-OA)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>50</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -OA $value":""</code>
            <code proglang="python">("" , " -OA " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Set the max. nr of patterns for which Pratt is to produce an alignment of the sequence segments matching it.</text>
          </comment>
        </parameter>
        <parameter>
          <name>M</name>
          <prompt lang="en">Print Patterns in sequences (-M)</prompt>
          <type>
            <datatype>
              <class>Boolean</class>
            </datatype>
          </type>
          <vdef>
            <value>1</value>
          </vdef>
          <format>
            <code proglang="perl">($value) ? " -M off " : ""</code>
            <code proglang="python">( " " , " -M off" )[ value ]</code>
          </format>
          <comment>
            <text lang="en">If the M option is set, then Pratt will print out the location of the sequence segments matching each of the (maximum 52) best patterns. The patterns are given labels A, B,...Z,a,b,...z in order of decreasing pattern score. Each sequence is printed on a line, one character per K-tuple in the sequence. If pattern with label C matches the third K-tuple in a sequence C is printed out. If several patterns match in the same K-tuple, only the best will be printed.</text>
          </comment>
        </parameter>
        <parameter>
          <name>MR</name>
          <prompt lang="en">Ratio for printing (-MR)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <precond>
            <code proglang="perl">$M</code>
            <code proglang="python">M</code>
          </precond>
          <vdef>
            <value>10</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -MR $value":""</code>
            <code proglang="python">("" , " -MR " + str(value))[ value is not None and value != vdef]</code>
          </format>
          <comment>
            <text lang="en">Sets the K value (ratio) used for printing the summary information about where in each sequence the pattern matches are found.</text>
          </comment>
        </parameter>
        <parameter>
          <name>MV</name>
          <prompt lang="en">Print vertically (-MV)</prompt>
          <type>
            <datatype>
              <class>Boolean</class>
            </datatype>
          </type>
          <precond>
            <code proglang="perl">$M</code>
            <code proglang="python">M</code>
          </precond>
          <vdef>
            <value>0</value>
          </vdef>
          <format>
            <code proglang="perl">($value)? " -MV on " : "" </code>
            <code proglang="python">( ""  , " -MV on " )[ value ]</code>
          </format>
          <comment>
            <text lang="en">If set, the output is printed vertically instead of horizontally, vertical output can be better for large sequence sets.</text>
          </comment>
        </parameter>
      </parameters>
    </paragraph>
    <parameter isout="1">
      <name>outfiles</name>
      <prompt lang="en">Output file</prompt>
      <type>
        <datatype>
          <class>Text</class>
        </datatype>
      </type>
      <filenames>
        <code proglang="perl">"*.pat"</code>
        <code proglang="python">"*.pat"</code>
      </filenames>
    </parameter>
    <parameter isout="1">
      <name>report</name>
      <prompt lang="en">Report output file</prompt>
      <type>
        <datatype>
          <class>Text</class>
        </datatype>
      </type>
      <filenames>
        <code proglang="perl">"report"</code>
        <code proglang="python">"report"</code>
      </filenames>
    </parameter>
  </parameters>
</program>