This file is indexed.

/var/lib/mobyle/programs/cap3.xml is in mobyle-programs 5.1.1-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
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
<?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>cap3</name>
    <version>3</version>
    <doc>
      <title>CAP3</title>
      <description>
        <text lang="en">Contig Assembly Program</text>
      </description>
      <authors>Huang, X. and Madan, A. (1999)</authors>
      <reference>Huang, X. and Madan, A. (1999) CAP3: A DNA Sequence Assembly Program. Genome Research, 9: 868-877.</reference>
      <homepagelink>http://seq.cs.iastate.edu/</homepagelink>
      <sourcelink>http://seq.cs.iastate.edu/cap3.html</sourcelink>
    </doc>
    <category>assembly:assembly</category>
    <command>cap3</command>
  </head>
  <parameters>
    <parameter ismandatory="1" issimple="1">
      <name>seq</name>
      <prompt lang="en">File of reads</prompt>
      <type>
        <biotype>DNA</biotype>
        <datatype>
          <class>Sequence</class>
        </datatype>
        <dataFormat>FASTA</dataFormat>
        <card>2,n</card>
      </type>
      <format>
        <code proglang="perl">" $value"</code>
        <code proglang="python">" " + str( value )</code>
      </format>
      <argpos>1</argpos>
    </parameter>
    
    <parameter>
       <name>qual_file</name>
       <prompt lang="en">Quality value file</prompt>
       <type>
        <datatype>
          <class>BaseQuality</class>
          <superclass>AbstractText</superclass>
        </datatype>
        <dataFormat>PhrapQuality</dataFormat>
       </type>
       <format>
          <code proglang="perl">(defined $value?)"ln -sf $value $seq.qual" : ""</code>
          <code proglang="python">("" , "ln -sf %s %s.qual &amp;&amp; " %( value , seq ) )[value is not None and value != seq + ".qual" ]</code>
       </format>
       <comment>
          <text lang="en">CAP3 uses the same format of a quality file as Phrap. 
          The sequence file and the corresponding quality file must be arranged 
          in the same order in terms of reads, where for each read, 
          the same name must be used in both files and the number of bases must 
          be equal to the number of quality values. 
          </text>
       </comment>
       <example>
       </example>
       <argpos>-10</argpos>
    </parameter>
    
    <parameter>
       <name>con_file</name>
       <prompt lang="en">Constraint file</prompt>
       <type>
        <datatype>
          <class>CapConstraint</class>
          <superclass>AbstractText</superclass>
        </datatype>
       </type>
       <format>
          <code proglang="perl">(defined $value?)"ln -sf $value $seq.con" : ""</code>
          <code proglang="python">( "" , "ln -sf %s %s.con &amp;&amp; " %( value , seq ) )[value is not None ]</code>
       </format>
       <comment>
          <text lang="en">Each line of the constraint file specifies one forward-reverse constraint of the form:</text>
          <text lang="en">ReadA   ReadB    MinDistance    MaxDistance</text>
          <text lang="en">where ReadA and ReadB are names of two reads, and MinDistance and MaxDistance are 
          distances (integers) in base pairs. The constraint is satisfied if ReadA in forward orientation 
          occurs in a contig before ReadB in reverse orientation, or ReadB in forward orientation occurs in 
          a contig before ReadA in reverse orientation, and their distance is between MinDistance and 
          MaxDistance. CAP3 works better if a lot more constraints are used.</text> 
       </comment>
       <example>
       </example>
       <argpos>-5</argpos>
    </parameter>

    <paragraph>
      <name>clipping_poor_regions</name>
      <prompt lang="en">Clipping of poor regions</prompt>
      <comment>
      <div xmlns="http://www.w3.org/1999/xhtml">
    <p>CAP3 computes clipping 
    positions of each read using both base quality values and similarity 
    information. Clipping of a poor end region of a read f is controlled by 
    three parameters: quality value cutoff qualcut, clipping range crange, 
    and depth of good coverage gdepth. The value for qualcut can specified 
    with the "-c" option, the value for crange with the "-y" option, and the 
    value for gdepth with the "-z" option.
    </p>
    <p>
    If there are quality values, CAP3 computes two positions qualpos5 and 
    qualpos3 of read f such that the region of read f from position qualpos5 
    to position qualpos3 consists mostly of quality values greater than 
    qualcut. If there are no quality values, then qualpos5 is set to 1 and 
    qualpos3 is set the length of read f. The range for the left clipping 
    position of read f is from 1 to qualpos5 + crange. The range for the 
    right clipping position of read f is from qualpos3 - crange to the end 
    of read f. The minimum depth of good coverage at the left and right 
    clipping positions of read f is expected to be gdepth.
    </p>
    <p>
    Let realdepth5 be the maximum real depth of coverage for the initial 
    region of read f ending at position qualpos5 + crange. Let depth5 be the 
    smaller of realdepth5 and gdepth. If depth5 is 0, then left clipping 
    position of read f is set to qualpos5 by CAP3. The given value for the 
    parameter crange may be too small for read f. CAP3 reports at the start 
    of a .info file that "No overlap is found in the given 5' clipping range 
    for read f." If there are overlaps beyond the given 5' clipping range 
    for read f, CAP3 reports a new clipping range for each overlap. One of 
    the reported range values can be used as a new value for the parameter 
    crange for read f.
    </p>
    <p>
    If depth5 is greater than 0, the left clipping position of read f is the 
    smallest position x such that x is less than qualpos5 + crange and the 
    region of read f beginning at position x is similar to depth5 other 
    reads. The right clipping position of read f is computed similarly by 
    CAP3. Larger values for the parameters crange and gdepth result in more 
    aggressive clipping of poor end regions. A larger value for crange 
    allows CAP3 to search for the left clipping position in a larger area. A 
    larger value for gdepth may cause CAP3 to clip more bases so that the 
    resulting good portion of read f is similar to more reads. 
    </p>
    <p>
    The user may provide specific values for the parameters crange and 
    gdepth for individual reads in a file. Each line in the file has the 
    following format: file has the following format:</p>
    <pre><font style="font-size: 9pt;" face="Verdana">ReadName     crange5     gdepth5      crange3     gdepth3</font></pre>
    <p>where ReadName is the name 
    of a read, crange5 &amp; gdepth5 are values for the 5' end, and crange3 &amp; 
    gdepth3 are for the 3' end. </p>  
      </div>
      </comment>
      <parameters>
            <parameter>
              <name>base_qual_cutoff_clipping</name>
              <prompt lang="en">Base quality cutoff for clipping (-c)</prompt>
              <type>
                <datatype>
                  <class>Integer</class>
                </datatype>
              </type>
              <vdef>
                <value>12</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>
              <ctrl>
                <message>
                  <text lang="en">Base quality cutoff must be &gt; 5</text>
                </message>
                <code proglang="perl">$value &gt; 5</code>
                <code proglang="python">value &gt; 5</code>
              </ctrl>
              <argpos>10</argpos>
              <comment>
                <text lang="en">Default value: 12</text>
              </comment>
            </parameter>
            
            <parameter>
              <name>clipping_range</name>
              <prompt lang="en">Clipping range (-y)</prompt>
              <type>
                <datatype>
                  <class>Integer</class>
                </datatype>
              </type>
              <vdef>
                <value>250</value>
              </vdef>
              <format>
                <code proglang="perl">(defined $value and $value != $vdef) ? " -y $value" : ""</code>
                <code proglang="python">( "" , " -y "+ str( value ) )[ value is not None and value != vdef ]</code>
              </format>
              <ctrl>
                <message>
                  <text lang="en">Value must be &gt; 5</text>
                </message>
                <code proglang="perl">$value &gt; 5</code>
                <code proglang="python">value &gt; 5</code>
              </ctrl>
              <argpos>10</argpos>
              <comment>
                <text lang="en">Default value: 250</text>
              </comment>
            </parameter>
            
            <parameter>
              <name>good_reads</name>
              <prompt lang="en">Minimum number of good reads at clip pos (-z)</prompt>
              <type>
                <datatype>
                  <class>Integer</class>
                </datatype>
              </type>
              <vdef>
                <value>3</value>
              </vdef>
              <format>
                <code proglang="perl">(defined $value and $value != $vdef)? " -z $value" : ""</code>
                <code proglang="python">( "" , " -z "+ str( value ) )[ value is not None and value != vdef ]</code>
              </format>
              <ctrl>
                <message>
                  <text lang="en">Value must be &gt; 0</text>
                </message>
                <code proglang="perl">$value &gt; 0</code>
                <code proglang="python">value &gt; 0</code>
              </ctrl>
              <argpos>10</argpos>
              <comment>
                <text lang="en">Default value: 3</text>
              </comment>
            </parameter>
            
        <parameter>
          <name>clipping_file</name>
          <prompt lang="en">File for clipping information (-w)</prompt>
          <type>
            <datatype>
              <class>ClippingParameters</class>
              <superclass>AbstractText</superclass>
            </datatype>
          </type>
          <format>
            <code proglang="perl">(defined $value)? " -w $value" : ""</code>
            <code proglang="python">( "" , " -w "+ str( value ) )[ value is not None ]</code>
          </format>
          <argpos>10</argpos>
          <comment>
            <text lang="en">The user may provide specific values for the parameters crange and gdepth or individual reads in a file.</text>
            <text lang="en">Each line in the file has the following format:</text>
            <text lang="en">ReadName crange5 gdepth5 crange3 gdepth3</text>
            <text lang="en">where ReadName is the name of a read, crange5 and gdepth5 are values for the 5' end, and crange3 and gdepth3 are for the 3' end.</text>
          </comment>
        </parameter>
      </parameters>
    </paragraph>
    
    <paragraph>
      <name>band_diagonals</name>
      <prompt lang="en">Band of diagonals</prompt>
      <comment>
        <text lang="en">The program determines a minimum band of diagonals for an overlapping alignment between two sequence reads.</text>
        <text lang="en">The band is expanded by a number of bases specified by the user with option "-a".</text>
      </comment>
      <parameters>
        <parameter>
          <name>band_expansion</name>
          <prompt lang="en">Band expansion size (-a)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>20</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -a $value" : ""</code>
            <code proglang="python">( "" , " -a "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Band expansion size must be &gt; 10</text>
            </message>
            <code proglang="perl">$value &gt; 10</code>
            <code proglang="python">value &gt; 10</code>
          </ctrl>
          <argpos>10</argpos>
          <comment>
            <text lang="en">The program determines a minimum band of diagonals for an overlapping alignment between two sequence reads.</text>
            <text lang="en">The band is expanded by a number of bases specified by the user with option "-a".</text>
            <text lang="en">Default value: 20</text>
          </comment>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>overlap_score</name>
      <prompt lang="en">Quality difference score of an overlap</prompt>
      <comment>
        <text lang="en">Overlaps between reads are evaluated by many measures.</text>
        <text lang="en">The first measure is based on base quality.</text>
        <text lang="en">If an overlap contains lots of differences at bases of high quality, then the overlap is removed.</text>
        <text lang="en">Specifically,let b be the base quality cutoff value and let d be the maximum difference score.</text>
        <text lang="en">The values for the two parameters can be set using the "-b" and "-d" options.</text>
        <text lang="en">If the overlap contains a difference at bases of quality values q1 and q2, then the score at the difference is max(0, min(q1, q2) - b).</text>
        <text lang="en">The difference score of an overlap is the sum of scores at each difference.</text>
        <text lang="en">For example, an overlap contains two differences,</text>
        <text lang="en">one at bases of quality values 15 and 30 and the other at bases of quality values 40 and 50.</text>
        <text lang="en">With b = 20, the difference score of the overlap is 0 + 20 = 20.</text>
        <text lang="en">If the difference score of an overlap exceeds d, then the overlap is removed. With b = 20,</text>
        <text lang="en">an overlap with 15 differences at bases of quality values 40 or higher has a difference score of at least 300 and is removed if d = 250.</text>
      </comment>
      <parameters>
        <parameter>
          <name>base_qual_cutoff</name>
          <prompt lang="en">Base quality cutoff for differences (-b)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>20</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? "-b $value" : ""</code>
            <code proglang="python">( "" , " -b "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Base quality cutoff must be &gt; 15</text>
            </message>
            <code proglang="perl">$value &gt; 15</code>
            <code proglang="python">value &gt; 15</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
        <parameter>
          <name>max_qscore</name>
          <prompt lang="en">Maximum qscore sum at differences (-d)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>200</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -d $value" : ""</code>
            <code proglang="python">( "" , " -d "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 20</text>
            </message>
            <code proglang="perl">$value &gt; 20</code>
            <code proglang="python">value &gt; 20</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>nb_diff_overlap</name>
      <prompt lang="en">Number of differences in an overlap</prompt>
      <comment>
        <text lang="en">The second measure looks at the number of differences in an overlap.</text>
        <text lang="en">If the number of differences in an overlap is higher than expected, than the overlap is removed.</text>
        <text lang="en">Let an integer e be the maximum number of extra differences.</text>
        <text lang="en">Consider an overlap between reads f and g.</text>
        <text lang="en">Let d1 be the estimated number of sequencing errors for the region of f involved in the overlap and let r2 be that for</text>
        <text lang="en">the region of g involved in the overlap.</text>
        <text lang="en">If the observed number of differences in the overlap is greater than r1 + r2 + e, then the overlap is removed.</text>
        <text lang="en">The value for the parameter e can be changed using the "-e" option.</text>
        <text lang="en">The expected number of differences in the overlap is about r1 + r2.</text>
        <text lang="en">Giving a smaller value to e causes more overlaps to be removed.</text>
      </comment>
      <parameters>
        <parameter>
          <name>clearance</name>
          <prompt lang="en">Clearance between number of diff (-e)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>30</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>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 10</text>
            </message>
            <code proglang="perl">$value &gt; 10</code>
            <code proglang="python">value &gt; 10</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>sim_score_overlap</name>
      <prompt lang="en">Similarity score of an overlap</prompt>
      <comment>
        <text lang="en">The third measure is based on overlap similarity score.</text>
        <text lang="en">The similarity score of an overlapping alignment is defined using base quality values.</text>
        <text lang="en">Let m be the match score factor, let n be the mismatch score factor, and let g be the gap penalty factor.</text>
        <text lang="en">Values for these parameters can be set with the "-m", "-n", and "-g" options.</text>
        <text lang="en">A match at bases of quality values q1 and q2 is given a score of m * min(q1,q2).</text>
        <text lang="en">A mismatch at bases of quality values q1 and q2 is given a score of n * min(q1,q2).</text>
        <text lang="en">A base of quality value q1 in a gap is given a score of -g * min(q1,q2),</text>
        <text lang="en">where q2 is the quality value of the base in the other sequence right before the gap.</text>
        <text lang="en">The score of a gap is the sum of scores of each base in the gap minus a gap open penalty.</text>
        <text lang="en">The similarity score of an overlapping alignment is the sum of scores of each match, each mismatch, and each gap.</text>
        <text lang="en">With m = 2, an overlap that consists of 25 matches at bases of quality value 10 has a score of 500.</text>
        <text lang="en">If the similarity score of an overlap is less than the overlap similarity score cutoff s, then the overlap is removed.</text>
      </comment>
      <parameters>
        <parameter>
          <name>match_score</name>
          <prompt lang="en">Match score factor (-m)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>2</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -m $value" : ""</code>
            <code proglang="python">( "" , " -m "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 0</text>
            </message>
            <code proglang="perl">$value &gt; 0</code>
            <code proglang="python">value &gt; 0</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
        <parameter>
          <name>mismatch_score</name>
          <prompt lang="en">Mismatch score factor (-n)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>-5</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -n $value" : ""</code>
            <code proglang="python">( "" , " -n "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &lt; 0</text>
            </message>
            <code proglang="perl">$value &lt; 0</code>
            <code proglang="python">value &lt; 0</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
        <parameter>
          <name>gap_penalty</name>
          <prompt lang="en">Gap penalty factor (-g)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>6</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -g $value" : ""</code>
            <code proglang="python">( "" , " -g "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 0</text>
            </message>
            <code proglang="perl">$value &gt; 0</code>
            <code proglang="python">value &gt; 0</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>percent_id_overlap</name>
      <prompt lang="en">Length and percent identity of an overlap</prompt>
      <comment>
        <text lang="en">The fourth requirement for an overlap is that the length in bp of the overlap is no less than the value of the minimum overlap length cutoff parameter.</text>
        <text lang="en">The value for this parameter can be changed with the "-o" option.</text>
        <text lang="en">The fifth requirement for an overlap is that the percent identity of the overlap is no less than the minimum percent identity cutoff.</text>
        <text lang="en">The value for this parameter can be changed with the "-p" option.</text>
        <text lang="en">A value of 75 for p means 0.75 or 75%.</text>
      </comment>
      <parameters>
        <parameter>
          <name>overlap_length</name>
          <prompt lang="en">Overlap length cutoff (-o)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>40</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -o $value" : ""</code>
            <code proglang="python">( "" , " -o "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 20</text>
            </message>
            <code proglang="perl">$value &gt; 20</code>
            <code proglang="python">value &gt; 20</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
        <parameter>
          <name>overlap_identity</name>
          <prompt lang="en">Overlap percent identity cutoff (-p)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>80</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -p $value" : ""</code>
            <code proglang="python">( "" , " -p "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 65</text>
            </message>
            <code proglang="perl">$value &gt; 65</code>
            <code proglang="python">value &gt; 65</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>max_len_gaps_overlap</name>
      <prompt lang="en">Maximum length of gaps in an overlap</prompt>
      <comment>
        <text lang="en">The program provides a parameter (-f option) for the user to reject overlaps with a long gap.</text>
        <text lang="en">Let an integer f be the maximum length of gaps allowed in any overlap. Then any overlap with a gap longer than f is rejected by the program.</text>
        <text lang="en">The value for this parameter can be changed using the "-f" option.</text>
        <text lang="en">Note that a small value for this parameter may cause the program to remove true overlaps and to produce incorrect results.</text>
        <text lang="en">The "-f" option may be used by the user to split reads from alternative splicing forms into separate contigs.</text>
        <text lang="en">Geo Pertea at TIGR suggested that this option be added to the program.</text>
      </comment>
      <parameters>
        <parameter>
          <name>max_gap_length</name>
          <prompt lang="en">Maximum gap length in any overlap (-f)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>20</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -f $value" : ""</code>
            <code proglang="python">( "" , " -f "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 1</text>
            </message>
            <code proglang="perl">$value &gt; 1</code>
            <code proglang="python">value &gt; 1</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>overhang_pcent_len_overlap</name>
      <prompt lang="en">Overhang percent length of an overlap</prompt>
      <comment>
        <text lang="en">The total length of the different overhang regions in an overlap is controlled with the -h option.</text>
        <text lang="en">TAn overhang region in an overlap is a different terminal region before or after the overlap.</text>
        <text lang="en">TThe overhang percent length of an overlap is 100 times the total length of the different overhang regions in the overlap divided by the length of the overlap.</text>
        <text lang="en">TOverlaps with an overhang percent length greater than the maximum cutoff are rejected.</text>
      </comment>
      <parameters>
        <parameter>
          <name>max_overhang</name>
          <prompt lang="en">Maximum overhang percent length (-h)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>20</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef)? " -h $value" : ""</code>
            <code proglang="python">( "" , " -h "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 2</text>
            </message>
            <code proglang="perl">$value &gt; 2</code>
            <code proglang="python">value &gt; 2</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <parameter>
      <name>overlap_similarity</name>
      <prompt lang="en">Overlap similarity score cutoff (-s)</prompt>
      <type>
        <datatype>
          <class>Integer</class>
        </datatype>
      </type>
      <vdef>
        <value>900</value>
      </vdef>
      <format>
        <code proglang="perl">(defined $value and $value != $vdef) ? " -s $value" : ""</code>
        <code proglang="python">( "" , " -s "+ str( value ) )[ value is not None and value != vdef ]</code>
      </format>
      <ctrl>
        <message>
          <text lang="en">Value must be &gt; 400</text>
        </message>
        <code proglang="perl">$value &gt; 400</code>
        <code proglang="python">value &gt; 400</code>
      </ctrl>
      <argpos>10</argpos>
    </parameter>
    <paragraph>
      <name>assembly_fwd</name>
      <prompt lang="en">Assembly of reads in forward orientation only</prompt>
      <comment>
        <text lang="en">The "-r" option is used to let CAP3 know whether to consider reads in reverse orientation for assembly.</text>
        <text lang="en">The default value for the option is 1, meaning that reads in reverse orientation are also considered for assembly.</text>
        <text lang="en">Specifying zero as "-r 0" instructs CAP3 to perform assembly of reads in forward orientation only.</text>
        <text lang="en">This option was suggested by Patrick Schnable's lab.</text>
      </comment>
      <parameters>
        <parameter>
          <name>reverse_orientation</name>
          <prompt lang="en">Reverse orientation value (-r)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>1</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -r $value" : ""</code>
            <code proglang="python">( "" , " -r "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt;= 0</text>
            </message>
            <code proglang="perl">$value &gt;= 0</code>
            <code proglang="python">value &gt;= 0</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>max_num_word_matches</name>
      <prompt lang="en">Maximum number of word matches</prompt>
      <comment>
        <text lang="en">This parameter (option -t) allows the user to trade off the efficiency of the program for its accuracy.</text>
        <text lang="en">For a read f, the program computes overlaps between read f and other reads by considering short word matches between read f and other reads.</text>
        <text lang="en">A word match is examined to see if it can be extended into a long overlap.</text>
        <text lang="en">If read f has overlaps with many other reads, then read f has many short word matches with many other reads.</text>
        <text lang="en">This parameter gives an upper limit, for any word, on the number of word matches between read f and other reads that are considered by the program.</text>
        <text lang="en">Using a large value for this parameter allows the program to consider more word matches between read f and other reads, which can find more overlaps for read f, but slows down the program.</text>
        <text lang="en">Using a small vlaue for this parameter has the opposite effect.</text>
        <text lang="en">A large value may be used if the depth of coverage is high for the data set.</text>
        <text lang="en">For example, a value of 150 is used for a data set with a maximum depth of coverage of 30, and a value of 500 for a data set with a maximum depth of coverage of 100. Using a very large value may cause the program to run forever or run out of memory.</text>
      </comment>
      <parameters>
        <parameter>
          <name>word_matches</name>
          <prompt lang="en">Maximum number of word matches (-t)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>300</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -t $value" : ""</code>
            <code proglang="python">( "" , " -t "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 30</text>
            </message>
            <code proglang="perl">$value &gt; 30</code>
            <code proglang="python">value &gt; 30</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <paragraph>
      <name>fwd_rev_const</name>
      <prompt lang="en">Forward-reverse constraints</prompt>
      <comment>
        <text lang="en">Corrections to an assembly are made using forward-reverse constraints.</text>
        <text lang="en">Let an integer u be the minimum number of constraints for correction.</text>
        <text lang="en">Consider an alternative overlap between two reads f and g.</text>
        <text lang="en">Assume that f is in contig C1 and that g is in contig C2.</text>
        <text lang="en">If the number of unsatisfied constraints that support the overlap between f and g is greater than the value of the u parameter plus the number of satisfied constraints that support the current joins involving f and g, then the current joins involving f and g are disconnected and the overlap between f and g is implemented.</text>
        <text lang="en">The value for this parameter can be changed with the "-u" option.</text>
        <text lang="en">Contigs that are linked by forward-reverse constraints are reported.</text>
        <text lang="en">The minimum number of constraints for reporting a link between two contigs is specified with the "-v" option.</text>
      </comment>
      <parameters>
        <parameter>
          <name>min_constraints_corr</name>
          <prompt lang="en">Minimum number of constraints for correction (-u)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>3</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -u $value" : ""</code>
            <code proglang="python">( "" , " -u "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 0</text>
            </message>
            <code proglang="perl">$value &gt; 0</code>
            <code proglang="python">value &gt; 0</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
        <parameter>
          <name>min_constraints_linking</name>
          <prompt lang="en">Minimum number of constraints for linking (-v)</prompt>
          <type>
            <datatype>
              <class>Integer</class>
            </datatype>
          </type>
          <vdef>
            <value>2</value>
          </vdef>
          <format>
            <code proglang="perl">(defined $value and $value != $vdef) ? " -v $value" : ""</code>
            <code proglang="python">( "" , " -v "+ str( value ) )[ value is not None and value != vdef ]</code>
          </format>
          <ctrl>
            <message>
              <text lang="en">Value must be &gt; 0</text>
            </message>
            <code proglang="perl">$value &gt; 0</code>
            <code proglang="python">value &gt; 0</code>
          </ctrl>
          <argpos>10</argpos>
        </parameter>
      </parameters>
    </paragraph>
    <!--  output parameters -->
    <parameter isout="1">
      <name>ace</name>
      <prompt lang="en">Assembly in ace format</prompt>
      <type>
        <datatype>
          <class>AceAssembly</class>
          <superclass>AbstractText</superclass>
        </datatype>
        <dataFormat>ACE</dataFormat>
      </type>
      <filenames>
        <code proglang="perl">"*.cap.ace"</code>
        <code proglang="python">"*.cap.ace"</code>
      </filenames>
    </parameter>
    <parameter isout="1">
      <name>contig</name>
      <prompt lang="en">Contigs</prompt>
      <type>
        <biotype>DNA</biotype>
        <datatype>
          <class>Sequence</class>
        </datatype>
        <!--  a file inputFileName.cap. is always generated but it could contain 0 to n sequences -->
        <card>0,n</card>
        <dataFormat>FASTA</dataFormat>
      </type>
      <filenames>
        <code proglang="perl">"*.cap.contigs"</code>
        <code proglang="python">"*.cap.contigs"</code>
      </filenames>
    </parameter>
    <parameter isout="1">
      <name>contig_link</name>
      <prompt lang="en">Contig links</prompt>
      <type>
        <datatype>
          <class>Text</class>
        </datatype>
      </type>
      <filenames>
        <code proglang="perl">"*.cap.contigs.links"</code>
        <code proglang="python">"*.cap.contigs.links"</code>
      </filenames>
    </parameter>
    <parameter isout="1">
      <name>contig_qual</name>
      <prompt lang="en">Quality of contigs</prompt>
      <type>
        <datatype>
          <class>Text</class>
        </datatype>
      </type>
      <filenames>
        <code proglang="perl">"*.cap.contigs.qual"</code>
        <code proglang="python">"*.cap.contigs.qual"</code>
      </filenames>
    </parameter>
    <parameter isout="1">
      <name>info</name>
      <prompt lang="en">Assembly informations</prompt>
      <type>
        <datatype>
          <class>Text</class>
        </datatype>
      </type>
      <filenames>
        <code proglang="perl">"*.cap.info"</code>
        <code proglang="python">"*.cap.info"</code>
      </filenames>
    </parameter>
    <parameter isout="1">
      <name>singlet</name>
      <prompt lang="en">Singlets</prompt>
      <type>
        <biotype>DNA</biotype>
        <datatype>
          <class>Sequence</class>
        </datatype>
        <!--  a file inputFileName.cap.singlets is always generated but it could contain 0 to n sequences -->
        <card>0,n</card>
      </type>
      <filenames>
        <code proglang="perl">"*.cap.singlets"</code>
        <code proglang="python">"*.cap.singlets"</code>
      </filenames>
    </parameter>
  </parameters>
</program>