view small_rna_maps.xml @ 6:a3be3601bcb3 draft

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_maps commit 9f9c64aff0d225881bedb97bd5035ccbca945d9d
author artbio
date Mon, 09 Oct 2017 11:07:09 -0400
parents 12c14642e6ac
children a96e6a7df2b7
line wrap: on
line source

<tool id="small_rna_maps" name="small_rna_maps" version="2.1.0">
  <description></description>
  <requirements>
        <requirement type="package" version="1.11.2=py27_0">numpy</requirement>
        <requirement type="package" version="0.11.2.1=py27_0">pysam</requirement>
        <requirement type="package" version="1.3.2=r3.3.2_0">r-optparse</requirement>
        <requirement type="package" version="0.6_28=r3.3.2_0">r-latticeextra</requirement>
        <requirement type="package" version="2.2.1=r3.3.2_0">r-gridextra</requirement>
  </requirements>
  <stdio>
      <exit_code range="1:" level="fatal" description="Tool exception" />
  </stdio>
  <command detect_errors="exit_code"><![CDATA[
      #for $file in $inputs
          samtools index '$file' &&
      #end for
      python '$__tool_directory__'/small_rna_maps.py 
          --inputs 
      #for $file in $inputs
           '$file'
      #end for
          --sample_names
      #for $sample in $inputs
          '$sample.name'
      #end for
      #if str($plots_options.plots_options_selector ) == "two_plot":
          --plot_methods '${plots_options.first_plot}' '${plots_options.extra_plot}'
          --outputs '$output_tab' '$extra_output_tab' &&
      #else:
          --plot_methods '${plots_options.first_plot}'
          --outputs '$output_tab' &&
      #end if
      Rscript '$__tool_directory__'/small_rna_maps.r
          --first_dataframe '$output_tab' 
          --extra_dataframe '$extra_output_tab'
          --normalization '$normalization'
          #if str($plots_options.plots_options_selector ) == "two_plot":
              --first_plot_method '${plots_options.first_plot}'
              --extra_plot_method '${plots_options.extra_plot}'
          #else:
              --first_plot_method '${plots_options.first_plot}'
              --extra_plot_method ''
          #end if
          --output_pdf '$output_pdf'
  ]]></command>
 <inputs>
    <param name="inputs" type="data" format="bam" label="Select multiple alignments to parse" multiple="True"/>
    <param name="normalization" type="text" label="Enter size/normalization factors as a space-separated list. Leave blank for no normalization (default)"
           help="e.g. '1 0.75 1.23'. Values of the list map to the above selected files from bottom to top" />
    <conditional name="plots_options">
        <param name="plots_options_selector" type="select" label="Number of plots per chromosome">
            <option value="one_plot">Just one plot per chromosome</option>
            <option value="two_plot" selected="True">Two plots per chromosome</option>
        </param>
        <when value="two_plot">
            <param name="first_plot" type="select" label="Select the type of the first plot">
                <option value="Counts">Counts</option> 
                <option value="Coverage">Coverage</option> 
                <option value="Mean">Mean Sizes</option> 
                <option value="Median">Median Sizes</option>
                <option value="Size">Size Distributions</option>
            </param>
            <param name="extra_plot" type="select" label="Select the type of the second plot">
                <option value="Counts">Counts</option> 
                <option value="Coverage">Coverage</option> 
                <option value="Mean">Mean Sizes</option> 
                <option value="Median">Median Sizes</option>
                <option value="Size">Size Distributions</option>
            </param>
        </when>
        <when value="one_plot">
            <param name="first_plot" type="select" label="select the type of the first plot">
                <option value="Counts">Counts</option> 
                <option value="Coverage">Coverage</option> 
                <option value="Mean">Mean Sizes</option> 
                <option value="Median">Median Sizes</option>
                <option value="Size">Size Distributions</option>
            </param>
        </when>
    </conditional>
 </inputs>

 <outputs>
   <data format="tabular" name="output_tab" label="Read Count dataframe" />
   <data format="tabular" name="extra_output_tab" label="$plots_options.extra_plot dataframe">
    <filter>plots_options['plots_options_selector'] == 'two_plot'</filter>
   </data> 
   <data format="pdf" name="output_pdf" label="PDF file" />

</outputs>

    <tests>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="two_plot" />
            <param name="first_plot" value="Counts" />
            <param name="extra_plot" value="Mean" />
            <param name="normalization" value="1 1" />
            <output file="count.tab" name="output_tab" />
            <output file="mean.tab" name="extra_output_tab" />
            <output file="count-mean.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input1.bam" ftype="bam"/>
            <param name="plots_options_selector" value="two_plot" />
            <param name="first_plot" value="Counts" />
            <param name="extra_plot" value="Mean" />
            <param name="normalization" value="1 1" />
            <output file="doubled_count.tab" name="output_tab" />
            <output file="doubled_mean.tab" name="extra_output_tab" />
            <output file="doubled_count-mean.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="two_plot" />
            <param name="first_plot" value="Counts" />
            <param name="extra_plot" value="Median" />
            <param name="normalization" value="1 1" />
            <output file="count.tab" name="output_tab" />
            <output file="median.tab" name="extra_output_tab" />
            <output file="count-median.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="two_plot" />
            <param name="first_plot" value="Counts" />
            <param name="extra_plot" value="Coverage" />
            <param name="normalization" value="1 1" />
            <output file="count.tab" name="output_tab" />
            <output file="coverage.tab" name="extra_output_tab" />
            <output file="count-coverage.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="two_plot" />
            <param name="first_plot" value="Counts" />
            <param name="extra_plot" value="Size" />
            <param name="normalization" value="1 1" />
            <output file="count.tab" name="output_tab" />
            <output file="size.tab" name="extra_output_tab" />
            <output file="count-size.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="two_plot" />
            <param name="first_plot" value="Size" />
            <param name="extra_plot" value="Counts" />
            <param name="normalization" value="1 1" />
            <output file="size.tab" name="output_tab" />
            <output file="count.tab" name="extra_output_tab" />
            <output file="size-count.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="two_plot" />
            <param name="first_plot" value="Size" />
            <param name="extra_plot" value="Counts" />
            <param name="normalization" value="1 0.75" />
            <output file="size.tab" name="output_tab" />
            <output file="count.tab" name="extra_output_tab" />
            <output file="size-count_normed.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="one_plot" />
            <param name="normalization" value="1 1" />
            <param name="first_plot" value="Counts" />
            <output file="count.tab" name="output_tab" />
            <output file="count.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="one_plot" />
            <param name="first_plot" value="Size" />
            <param name="normalization" value="1 1" />
            <output file="size.tab" name="output_tab" />
            <output file="size.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="one_plot" />
            <param name="first_plot" value="Coverage" />
            <param name="normalization" value="1 1" />
            <output file="coverage.tab" name="output_tab" />
            <output file="coverage.pdf" name="output_pdf" />
        </test>
        <test>
            <param name="inputs" value="input1.bam,input2.bam" ftype="bam"/>
            <param name="plots_options_selector" value="one_plot" />
            <param name="first_plot" value="Coverage" />
            <param name="normalization" value="1 0.2" />
            <output file="coverage.tab" name="output_tab" />
            <output file="coverage_normed.pdf" name="output_pdf" />
        </test>
    </tests>


<help>

**What it does**

Plots maps of (1) read counts, (2) mean sizes, (3) median sizes, (4) coverage depth or (5)
size read distribution along chromosome references.

Mean sizes and median sizes are the mean and the median sizes, respectively, of all reads
whose 5' end map to a given coordinate in a chromosome reference.
Coverage depths are computed from the input bam alignment files using the python pysam module.

The variables mentioned above (1-5) can be plotted either separately or in all possible
pairwise combinations.

For comparison purpose, values from bam alignment files can be normalized by a size factor
before plotting. If the normalization field is leaved blank, default normalization of 1
is assumed.

**Inputs**

bam alignment files that must be

  - single-read
  - sorted
  - mapping to the same reference
  
Optionally, a space-separated list of normalization/size factors may be added before plotting.
This list maps to the selected bam alignments from bottom to top.

**Output**

A pdf file generated by the R package lattice

One or two dataframes used to plot data

</help>

<citations>
    <citation type="doi">10.1093/bioinformatics/btp352</citation>
     <citation type="bibtex">@Book{,
    title = {Lattice: Multivariate Data Visualization with R},
    author = {Deepayan Sarkar},
    publisher = {Springer},
    address = {New York},
    year = {2008},
    note = {ISBN 978-0-387-75968-5},
    url = {http://lmdvr.r-forge.r-project.org},
  }</citation>
</citations>
</tool>