view vcfvcfintersect.xml @ 1:3a799597bc67

Updated to new vcflib version
author Anton Nekrutenko <anton@bx.psu.edu>
date Wed, 25 Jun 2014 15:44:06 -0400
parents 17216b2fae6e
children b8ab4ef85a5b
line wrap: on
line source

<tool id="vcfvcfintersect" name="VCF-VCFintersect:" version="0.0.1">
<requirements>
    <requirement type="package" version="86723982aa">vcflib</requirement>
    <!-- <requirement type="package" version="0.1.18">samtools</requirement> -->
</requirements>
  <description>Intersect two VCF datasets</description>
  <command>

    #set $reference_fasta_filename = "localref.fa"
    #if str( $reference_source.reference_source_selector ) == "history":
       ln -s "${reference_source.ref_file}" "${reference_fasta_filename}" &amp;&amp;
    #else:
       #set $reference_fasta_filename = str( $reference_source.ref_file.fields.path )
    #end if
    
    #if $adv_options.adv_options_selector == True:
    
    vcfintersect "${adv_options.adv_options_input}" ${loci} ${invert} -r "${reference_fasta_filename}" -w "${window_size}" ${isect_union} "${vcf_input1}" "${vcf_input2}" > "${out_file1}"

    #else:

    vcfintersect ${loci} ${invert} -r "${reference_fasta_filename}" -w "${window_size}" ${isect_union} "${vcf_input1}" "${vcf_input2}" > "${out_file1}"   

    #end if

  </command>
  <inputs>
    <!-- selecting refernce source -->
    <param name="vcf_input1" type="data" format="vcf" label="The first VCF dataset" />
    <param name="vcf_input2" type="data" format="vcf" label="The second VCF dataset" help="The second dataset will be instersected with the first"/>
    <conditional name="reference_source">
      <param name="reference_source_selector" type="select" label="Choose the source for the reference genome" help="This tools needs to access reference genomes sequence specified by this option.">
	<option value="cached">Locally cached</option>
	<option value="history">History</option>
      </param>
      <when value="cached">
	<param name="ref_file" type="select" label="Select reference genome">
	  <options from_data_table="fasta_indexes">
	    <!--<filter type="data_meta" key="dbkey" ref="input_bam" column="value"/>-->
	  </options>
	  <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
	</param>
      </when>
      <when value="history"> <!-- FIX ME!!!! -->
	<param name="ref_file" type="data" format="fasta" label="Using reference file" />
      </when>
    </conditional>
    <param name="isect_union" type="select" label="Union or intersection" help="-i or -u">
      <option value="-i">Intersect</option>
      <option value="-u">Union</option>
    </param>
    <param name="invert" type="boolean" truevalue="-v" falsevalue="" label="Invert selection?" help="-v, --invert" />
    <param name="window_size" type="integer" value="30" label="compare records up to this many bp away (window size)" help="-w, --window-size" />
    <param name="loci" type="boolean" truevalue="-l" falsevalue="" label="output whole loci when one alternate allele matches" help="-l, --loci" />
    <conditional name="adv_options">
      <param name="adv_options_selector" type="boolean" truevalue="use_adv_controls" label="Advanced controls" help="Allows you to specify options that are not listed above"/> 
      <when value="use_adv_controls">
	<param name="adv_options_input" type="text" value="-t &quot;vcfvcf-intersect-result&quot;" label="Enter additional command line options described in the help section below" help="such as -m, -t, -V, -M, and -T" />
	<sanitizer>
	  <valid initial="string.printable">
	    <remove value="&apos;"/>
	  </valid>
	  <mapping initial="none">
	    <add source="&apos;" target="__sq__"/>
	  </mapping>
	</sanitizer>
      </when>
    </conditional>
  </inputs>
  <outputs>
    <data format="vcf" name="out_file1" />
  </outputs>
  <stdio>
    <exit_code range="1:" level="fatal" />
  </stdio>
  <tests>
    <test>
      <param name="reference_source_selector" value="history" />
      <param name="vcf_input1" value="vcfvcfintersect-input1.vcf" />
      <param name="vcf_input2" value="vcfvcfintersect-input2.vcf" />
      <param name="isect_union" value="Intersect" />
      <param name="invert" value="False" />
      <param name="loci" value="False" />
      <patam name="adv_options" value="False" />
      <param name="window_size" value="30" />
      <param name="ref_file" value="vcflib-test-genome-phix.fa" />
      <output name="out_file1" file="vcfvcfintersect-test1.vcf"/>
    </test>
    <test>
      <param name="reference_source_selector" value="history" />
      <param name="vcf_input1" value="vcfvcfintersect-input1.vcf" />
      <param name="vcf_input2" value="vcfvcfintersect-input2.vcf" />
      <param name="isect_union" value="Union" />
      <param name="invert" value="False" />
      <param name="loci" value="False" />
      <patam name="adv_options" value="False" />
      <param name="window_size" value="30" />
      <param name="ref_file" value="vcflib-test-genome-phix.fa" />
      <output name="out_file1" file="vcfvcfintersect-test2.vcf"/>
    </test>
    </tests>
  <help>

Computes intersections and unions for two VCF datasets. Unifies equivalent alleles within window-size bp. 

The options are::

    -v, --invert              invert the selection, printing only records which would
    -i, --intersect-vcf FILE  use this VCF for set intersection generation
    -u, --union-vcf FILE      use this VCF for set union generation
    -w, --window-size N       compare records up to this many bp away (default 30)
    -r, --reference FILE      FASTA reference file, required with -i and -u
    -l, --loci                output whole loci when one alternate allele matches
    -m, --ref-match           intersect on the basis of record REF string
    -t, --tag TAG             attach TAG to each record's info field if it would intersect
    -V, --tag-value VAL       use this value to indicate that the allele is passing
                              '.' will be used otherwise.  default: 'PASS'
    -M, --merge-from FROM-TAG
    -T, --merge-to   TO-TAG   merge from FROM-TAG used in the -i file, setting TO-TAG
                              in the current file.

----

VCFVCFintersect is based on vcfintersect utility of VCFlib toolkit developed by Erik Garrison (https://github.com/ekg/vcflib).                                                                                                                                 

</help>
</tool>