<!--
  ~ Copyright (C) 2009-2010 Institute for Computational Biomedicine,
  ~                    Weill Medical College of Cornell University
  ~
  ~  This program is free software; you can redistribute it and/or modify
  ~  it under the terms of the GNU General Public License as published by
  ~  the Free Software Foundation; either version 3 of the License, or
  ~  (at your option) any later version.
  ~
  ~  This program is distributed in the hope that it will be useful,
  ~  but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  ~  GNU General Public License for more details.
  ~
  ~  You should have received a copy of the GNU General Public License
  ~  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  -->

<jsap>
    <parameters>
        <switch>
            <id>index-to-header</id>
            <longFlag>index-to-header</longFlag>
            <defaults>false</defaults>
            <help>When this switch is provided, ignore the sequence description line and write the sequence index, if available, as a string in place of the fasta sequence header.</help>
        </switch>
        <switch>
            <id>identifier-to-header</id>
            <longFlag>identifier-to-header</longFlag>
            <defaults>false</defaults>
            <help>When this switch is provided, ignore the sequence description line and write the sequence identifier, if available, as a string in place of the fasta sequence header.</help>
        </switch>
        <switch>
            <id>output-color-space</id>
            <longFlag>output-color-space</longFlag>
            <help>When this switch is provided, convert the sequence to color mode. Only makes sense if the compact file encodes a sequence in fasta format.</help>
        </switch>
        <switch>
            <id>output-fake-nt</id>
            <longFlag>output-fake-nt</longFlag>
            <help>When this switch is provided, convert the color space sequence to fake nucleotide representation (e.g. 0123.->ACTGN). Used by the BWA algorithm.</help>
        </switch>
        <switch>
            <id>output-fake-quality</id>
            <longFlag>output-fake-quality</longFlag>
            <help>When this switch is provided, output fake qualities equal to fixed default constant quality.</help>
        </switch>
        <switch>
            <id>reference</id>
            <longFlag>reference</longFlag>
            <help>When this switch is provided with output-color-space, any transition on the N character will result in writing an 'N' base.</help>
        </switch>
        <flaggedOption>
            <id>trim-adaptor-length</id>
            <longFlag>trim-adaptor-length</longFlag>
            <defaults>
                <string>0</string>
            </defaults>
            <stringParser>
                <classname>IntegerStringParser</classname>
            </stringParser>
            <required>false</required>
            <help>When positive, removes this many bases from the beginning of sequence.</help>
        </flaggedOption>
        <flaggedOption>
            <id>fasta-line-length</id>
            <longFlag>fasta-line-length</longFlag>
            <shortFlag>n</shortFlag>
            <defaults>
                <string>60</string>
            </defaults>
            <stringParser>
                <classname>IntegerStringParser</classname>
            </stringParser>
            <required>false</required>
            <help>The number of bases to write per line.</help>
        </flaggedOption>
        <flaggedOption>
            <id>input</id>
            <shortFlag>i</shortFlag>
            <longFlag>input</longFlag>
            <stringParser>
                <classname>StringStringParser</classname>
            </stringParser>
            <required>true</required>
            <help>Name of the compact input file.</help>
        </flaggedOption>
        <flaggedOption>
            <id>output</id>
            <shortFlag>o</shortFlag>
            <longFlag>output</longFlag>
            <stringParser>
                <classname>StringStringParser</classname>
            </stringParser>
            <required>true</required>
            <help>Name of the fasta file output.</help>
        </flaggedOption>
        <flaggedOption>
            <id>pair-output</id>
            <shortFlag>p</shortFlag>
            <longFlag>pair-output</longFlag>
            <stringParser>
                <classname>StringStringParser</classname>
            </stringParser>
            <required>false</required>
            <help>Name of the pair output file (where paired sequence will be written).</help>
        </flaggedOption>
        <flaggedOption>
            <id>output-format</id>
            <shortFlag>t</shortFlag>
            <longFlag>output-format</longFlag>
            <stringParser>
                <classname>StringStringParser</classname>
            </stringParser>
            <required>false</required>
            <defaults>
                <string>fasta</string>
            </defaults>
            <help>Type of output to generate. Can be Fasta or Fastq. The fastq format encodes quality scores.</help>
        </flaggedOption>
        <flaggedOption>
            <id>alphabet</id>
            <shortFlag>a</shortFlag>
            <longFlag>alphabet</longFlag>
            <stringParser>
                <classname>StringStringParser</classname>
            </stringParser>
            <required>false</required>
            <help>Alphabet of valid bases/residues. The sequence is filtered to keep only characters in the alphabet. Other characters are replaced by 'N'.</help>
        </flaggedOption>
        <flaggedOption>
            <id>read-index-filter</id>
            <shortFlag>f</shortFlag>
            <longFlag>read-index-filter</longFlag>
            <stringParser>
                <classname>FileStringParser</classname>
            </stringParser>
            <required>false</required>
            <help>The name of a read index filter. When provided, compact-to-fasta will only write reads to the output if their index is contained in the filter.</help>
        </flaggedOption>
        <flaggedOption>
            <id>quality-encoding</id>
            <longFlag>quality-encoding</longFlag>
            <required>false</required>
            <defaults>
                <string>Illumina</string>
            </defaults>
            <help>The encoding for quality scores. The default quality encoding is that used by the Illumina pipeline 1.3+</help>
        </flaggedOption>
        <flaggedOption>
            <id>start-position</id>
            <shortFlag>s</shortFlag>
            <longFlag>start-position</longFlag>
            <stringParser>
                <classname>LongStringParser</classname>
            </stringParser>
            <required>false</required>
            <help>The start position within the file, which should be number of bytes into the file to start reading from. The read will actually start at the first record on or after start-position.</help>
        </flaggedOption>
        <flaggedOption>
            <id>end-position</id>
            <shortFlag>e</shortFlag>
            <longFlag>end-position</longFlag>
            <stringParser>
                <classname>LongStringParser</classname>
            </stringParser>
            <required>false</required>
            <help>The end position within the file, which should be number of bytes into the file to end reading from. The read will actually end at the end of the record on or after end-position.</help>
        </flaggedOption>
        
    </parameters>
</jsap>
