<tool id="cg_listvariant" name="listvariants(beta) 1.5" version="1.0.0">
<!--
This tool creates a GUI for the listvariants function of cgatools from Complete Genomics, Inc.
written 6-18-2012 by bcrain@completegenomics.com
-->

  <description>lists all called variants</description> <!--adds description in toolbar-->

  <requirements>
  	<requirement type="binary">cgatools</requirement>
  </requirements>

  <command> <!--run executable-->
  	cgatools | head -1;
    cgatools listvariants
		--beta
		--reference ${crr.fields.path}
		--output $output
		#if $include_list.listing == "yes" <!--only added when yes-->
			--variant-listing $include_list.list
		#end if
		$longvar
		--variants 
		#if $file_types.data_sources.data_source == "in" 
			#for $v in $file_types.data_sources.varfiles <!--get each var/mastervar file-->
				${v.input}
			#end for
		#else
			`cat $file_types.data_sources.varlist`
		#end if
  </command>

  <inputs>
		<!--form field to select crr file-->
		<param name="crr" type="select" label="Reference genome (.crr file)">
			<options from_data_table="cg_crr_files" />
		</param>
	
  	<!--form field to select long variants option-->
    <param name="longvar" type="select" label="List long variants?">
      <option value="" selected="true">no</option>
      <option value="--list-long-variants">yes</option>
    </param>

  	<!--form fields to include existing variant list-->
    <conditional name="include_list">
      <param name="listing" type="select" label="Include variant listing?">
        <option value="no" selected="true">no</option>
        <option value="yes">yes</option>
      </param>
      <when value="yes">
        <param name="list" type="data" format="tabular" label="Variant listing"/>
      </when>
    </conditional>

		<!--conditional to select input file type-->
  	<conditional name="file_types">
      <param name="file_type" type="select" label="Select the input file type">
        <option value="var" selected="true">var files</option>
        <option value="mastervar">mastervar files</option>
      </param>
      
      <when value="var">			
				<!--conditional to select variant file input-->
				<conditional name="data_sources">
					<param name="data_source" type="select" label="Where are the input var files?">
						<option value="in" selected="true">imported into Galaxy</option>
						<option value="out">located outside Galaxy (available only for local Galaxy instances)</option>
					</param>
					<when value="in">
						<!--form field to select variant files-->
						<repeat name="varfiles" title="Variant files">
							<param name="input" type="data" format="cg_var" label="Dataset">
								<validator type="unspecified_build" />
								<validator type="dataset_metadata_in_file" filename="cg_crr_files.loc"
								 metadata_name="dbkey" metadata_column="1"
								 message="cgatools is not currently available for this build."/>
								 <!--<validator type="expression" message="Dataset does not match selected build.">$dbkey == $crr.fields.dbkey</validator>-->
							</param>
						</repeat>
					</when>
					<when value="out">
						<!--form field to select crr file-->
						<param name="varlist" type="text" label="List of variant files (/path/file)" size="200" help="This file should contain a list of var files, one per line in the format /path/varfile (e.g. /harddrive/GS00000XXXX-DID/GS00000YYYY-ASM/GS00123-DNA_G01_2000/ASM/var-GS00000YYYY-ASM.tsv.bz2), var files can be compressed (gz, bz2)."/>
					</when>
				</conditional>
			</when>
			
	    <when value="mastervar">			
				<!--conditional to select variant file input-->
				<conditional name="data_sources">
					<param name="data_source" type="select" label="Where are the input mastervar files?">
						<option value="in" selected="true">imported into Galaxy</option>
						<option value="out">located outside Galaxy (available only for local Galaxy instances)</option>
					</param>
					<when value="in">
						<!--form field to select variant files-->
						<repeat name="varfiles" title="Variant files">
							<param name="input" type="data" format="cg_mastervar" label="Dataset">
								<validator type="unspecified_build" />
								<validator type="dataset_metadata_in_file" filename="cg_crr_files.loc"
								 metadata_name="dbkey" metadata_column="1"
								 message="cgatools is not currently available for this build."/>
							</param>
						</repeat>
					</when>
					<when value="out">
						<!--form field to select crr file-->
						<param name="varlist" type="text" label="List of mastervar files (/path/file)" size="200" help="This file should contain a list of mastervar files, one per line in the format /path/varfile (e.g. /harddrive/GS00000XXXX-DID/GS00000YYYY-ASM/GS00123-DNA_G01_2000/ASM/masterVarBeta-GS00000YYYY-ASM.tsv.bz2), mastervar files can be compressed (gz, bz2)."/>
					</when>
				</conditional>
			</when>
		</conditional>
  </inputs>
  
  <outputs>
    <data format="tabular" name="output"/>
  </outputs>

<!--	<tests>
    <test>
    	<param name="reference" value="hg19.crr"/>
      <param name="file_type" value="var"/>
      <param name="data_source" value="in"/>
      <param name="varfiles?input" value="??"/>
      <param name="varfiles?input" value="??"/>
      <output name="output" file="??"/>
    </test>
	</tests>-->
  
  <help>

**What it does**

This tool uses the cgatools listvariants to list all called variants present in the var or mastervar files.

**cgatools 1.5.0 Documentation**

Userguide: http://cgatools.sourceforge.net/docs/1.5.0/cgatools-user-guide.pdf

Release notes: http://cgatools.sourceforge.net/docs/1.5.0/cgatools-release-notes.pdf

**Command line reference**::

		COMMAND NAME
		  listvariants - Lists the variants present in a variant file.

		DESCRIPTION
		  Lists all called variants present in the specified variant files, in a 
		  format suitable for processing by the testvariants command. The output is a
		  tab-delimited file consisting of the following columns:
			 
		    variantId  Sequential id assigned to each variant.
		    chromosome The chromosome of the variant.
		    begin      0-based reference offset of the beginning of the variant.
		    end        0-based reference offset of the end of the variant.
		    varType    The varType as extracted from the variant file.
		    reference  The reference sequence.
		    alleleSeq  The variant allele sequence as extracted from the variant 
		               file.
		    xRef       The xRef as extrated from the variant file.

		OPTIONS
		  -h [ --help ] 
		      Print this help message.

		  --beta 
		      This is a beta command. To run this command, you must pass the --beta 
		      flag.

		  --reference arg
		      The reference crr file.

		  --output arg (=STDOUT)
		      The output file (may be omitted for stdout).

		  --variants arg
		      The input variant files (may be positional args).

		  --variant-listing arg
		      The output of another listvariants run, to be merged in to produce the 
		      output of this run.

		  --list-long-variants 
		      In addition to listing short variants, list longer variants as well 
		      (10's of bases) by concatenating nearby calls.

		SUPPORTED FORMAT_VERSION
		  0.3 or later
  </help>
</tool>
