<!--
  ~ 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>
        <unflaggedOption>
            <id>input</id>
            <required>true</required>
            <greedy>true</greedy>
            <help>The alignment basenames for which slices are needed.</help>
        </unflaggedOption>
        <flaggedOption>
            <id>output</id>
            <shortFlag>o</shortFlag>
            <longFlag>output</longFlag>
            <required>false</required>
            <help>The file where slices definitions will be written (tab delimited:
                targetIdStart %positionStart start:(ref,pos) targetIdEnd %positionEnd end:(ref,pos).
            </help>
        </flaggedOption>
        <flaggedOption>
            <id>annotations</id>
            <shortFlag>a</shortFlag>
            <longFlag>annotations</longFlag>
            <required>false</required>
            <help>When provided, filename to Goby annotation file. Slices are generated such that no slice would split
                the external boundaries of an annotation element.
            </help>
        </flaggedOption>
        <flaggedOption>
            <id>number-of-slices</id>
            <longFlag>number-of-slices</longFlag>
            <shortFlag>n</shortFlag>
            <required>false</required>
            <stringParser>
                <classname>IntegerStringParser</classname>
            </stringParser>
            <defaults>
                <string>10</string>
            </defaults>
            <help>The number of slices to produce.</help>
        </flaggedOption>
        <flaggedOption>
            <id>number-of-bytes</id>
            <longFlag>number-of-bytes</longFlag>
            <shortFlag>b</shortFlag>
            <required>false</required>
            <stringParser>
                <classname>IntegerStringParser</classname>
            </stringParser>
            <defaults>
                <string>50000000</string>
            </defaults>
            <help>The approximate number of compressed bytes to put in each slice.</help>
        </flaggedOption>
        <flaggedOption>
            <id>modulo</id>
            <longFlag>modulo</longFlag>
            <required>false</required>
            <stringParser>
                <classname>IntegerStringParser</classname>
            </stringParser>
            <defaults>
                <string>1000000</string>
            </defaults>
            <help>Modulo for slicing positions. Large numbers require less memory and result in coarser, potentially
                less balanced slices.
            </help>
        </flaggedOption>

        <switch>
            <id>restrict-per-chromosome</id>
            <longFlag>restrict-per-chromosome</longFlag>
            <help>When this switch is provided, slices will be restricted to start and end on the same chromosome.</help>
        </switch>

    </parameters>
</jsap>
