diff BlastAlign.xml @ 0:d0ae18156aa2 draft default tip

planemo upload for repository https://github.com/abims-sbr/adaptsearch commit 3c7982d775b6f3b472f6514d791edcb43cd258a1-dirty
author abims-sbr
date Fri, 01 Feb 2019 10:25:52 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BlastAlign.xml	Fri Feb 01 10:25:52 2019 -0500
@@ -0,0 +1,236 @@
+<tool name="BlastAlign" id="blastalign" version="2.1">
+
+    <description>
+        Align the nucleic acid sequences using BLASTN
+    </description>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <requirements>
+        <expand macro="python_required" />
+        <requirement type="package" version="1.4">blastalign</requirement>
+    </requirements>
+
+    <stdio>
+        <exit_code range="1:" level="fatal" />
+    </stdio>
+
+    <command><![CDATA[
+        ln -s '$input' '$input.element_identifier'".fasta" &&
+
+        BlastAlign -i '$input.element_identifier'".fasta"
+        -m $advanced_option.m
+        #if $advanced_option.r != ""
+            -r $advanced_option.r
+        #end if
+        #if $advanced_option.x != ""
+            -x $advanced_option.x
+        #end if
+        -n $advanced_option.n
+        #if $advanced_option.s != 0
+            -s $advanced_option.s
+        #end if
+        &&
+        ln -s '$input.element_identifier'".fasta.phy" out.phy &&
+        ln -s '$input.element_identifier'".fasta.nxs" out.nxs
+        #if $output_format.value == "fasta"
+            && python $__tool_directory__/scripts/S01_phylip2fasta.py out.phy out.fasta
+        #end if
+
+    ]]></command>
+    <inputs>
+        <param name="input" type="data" format="fasta" label="Choose your file" help="A fasta file with nucleotides sequences" />
+
+        <section name="advanced_option" title="Blast advanced options" expanded="True">
+            <param argument="-m" type="integer" value="95" min="0" max="100" label="Proportion of gaps allowed in any one sequence in the final alignement" help="default = 95, i.e. only removing sequences with extremely short matches" />
+            <param argument="-r" type="text" area="True" size="1x20" label="Choose a reference sequence" help="default is to search for best candidate (if entered, the sequence will be extracted, written to a separate file, and blasted against the original input file)"/>
+            <param argument="-x" type="text" area="True" size="5x25" label="Choose the sequences to be excluded from this analysis" help="name of comma-separated sequences " />
+            <param argument="-n" type="boolean" checked="true" truevalue="T" falsevalue="F" label="Retain original names in output files" help="option F is to output the 15 character name abbreviations (stripped of potentially problematic characters) that is used in the program" />
+            <param argument="-s" type="integer" value="0" min="0" label="Number of sequences to be used in initial search for reference sequence" help="default (= 0) is to find the reference sequence by blasting all sequences against all sequences, only randomly subsampling when it thinks the blast output file might be too large" />
+        </section>
+        
+        <param name="output_format" type="select" label="Output format" help="phylip, nexus, or fasta." >
+            <option value="fasta">fasta</option>
+            <option value="phylip">phylip</option>
+            <option value="nexus">nexus</option>
+        </param>            
+    </inputs>
+
+    <outputs>
+        <data format="phylip" name="phy" from_work_dir="out.phy" label="Blastalign on ${input.name} in phylip">
+            <filter>output_format == "phylip"</filter>
+        </data>
+        <data format="nexus" name="nxs" from_work_dir="out.nxs" label="Blastalign on ${input.name} in nexus">
+            <filter>output_format == "nexus"</filter>
+        </data>
+        <data format="fasta" name="fasta" from_work_dir="out.fasta" label="Blastalign on ${input.name} in fasta">
+            <filter>output_format == "fasta"</filter>
+        </data>
+    </outputs>
+
+    <tests>
+        <test>
+            <param name="input" ftype="fasta" value="inputs/locus1_sp2.fasta" />
+            <section name="advanced_option">
+                <param name="m" value="95" />
+                <param name="r" value="" />
+                <param name="x" value="" />
+                <param name="n" value="False" />
+                <param name="s" value="0" />
+            </section>
+            <param name="output_format" value="fasta" />            
+            <output name="fasta" value="outputs/locus1_sp2.fasta" />
+        </test>
+        <test>
+            <param name="input" ftype="fasta" value="inputs/locus1_sp3.fasta" />
+            <section name="advanced_option">
+                <param name="m" value="95" />
+                <param name="r" value="" />
+                <param name="x" value="" />
+                <param name="n" value="False" />
+                <param name="s" value="0" />
+            </section>
+            <param name="output_format" value="phylip" />
+            <output name="phy" value="outputs/locus1_sp3.phy" />            
+        </test>
+        <test>
+            <param name="input" ftype="fasta" value="inputs/locus3_sp2.fasta" />
+            <section name="advanced_option">
+                <param name="m" value="95" />
+                <param name="r" value="" />
+                <param name="x" value="" />
+                <param name="n" value="False" />
+                <param name="s" value="0" />
+            </section>
+            <param name="output_format" value="nexus" />            
+            <output name="nxs" value="outputs/locus3_sp2.nxs" />
+        </test>
+        <!--
+        <test>
+            <param name="input" ftype="fasta" value="inputs/locus8_sp2.fasta" />
+            <section name="advanced_option">
+                <param name="m" value="95" />
+                <param name="r" value="" />
+                <param name="x" value="" />
+                <param name="n" value="False" />
+                <param name="s" value="0" />
+            </section>
+            <param name="output_format" value="phylip" />
+            <output name="phy" value="outputs/locus8_sp2.phy" />            
+        </test>
+        -->
+        <test>
+            <param name="input" ftype="fasta" value="inputs/locus8_sp2.fasta" />
+            <section name="advanced_option">
+                <param name="m" value="95" />
+                <param name="r" value="" />
+                <param name="x" value="" />
+                <param name="n" value="False" />
+                <param name="s" value="0" />
+            </section>
+            <param name="output_format" value="fasta" />
+            <output name="phy" value="outputs/locus8_sp2.fasta" />            
+        </test>
+
+        <!--locus10_sp2.fasta    locus1_sp3.fasta  locus2_sp2.fasta  locus3_sp2.fasta  locus4_sp2.fasta  locus5_sp2.fasta  locus6_sp2.fasta  locus7_sp2.fasta  locus8_sp2.fasta  locus9_sp2.fasta-->
+    </tests>
+
+    <help>
+    <![CDATA[
+
+.. class:: infomark
+
+**Authors**  BlastAlign has been written by Robert Belshaw and Aris Katzourakis.
+
+.. class:: infomark
+
+**Galaxy integration** Julie Baffard and ABiMS TEAM, Roscoff Marine Station
+
+ | Contact support.abims@sb-roscoff.fr for any questions or concerns about the Galaxy implementation of this tool.
+ | Credits : Gildas le Corguillé, Misharl Monsoor, Victor Mataigne
+
+--------
+
+**Description**
+
+BlastAlign takes a set of nucleic sequences in a file in fasta format and returns a multiple alignment (in Nexus and Phylip formats) using BLAST+. This Galaxy implementation works with dataset collections, which allows multiple parallels runs of BlastAlign at once on many files.
+
+--------
+
+**Parameters**
+
+The choice of several parameters for the blast is possible.
+
+**-m : Proportion of gaps allowed in any one sequence in the final alignement**
+    integer (between 0 and 100).
+    By default : 95%, i.e. only removes sequences with extremely short matches.
+    We find 50 the most useful.
+
+**-r : Name of reference sequence**
+    text.
+    Default is searching for best candidate.
+    If entered, the sequence will be extracted, written to a separate file, and blasted against the original input file.
+  
+ **-x : Name of sequences to be excluded from the analysis**
+    text.
+    names must be comma-separated.
+
+ **-n**
+    If checked : retain original names in output files.
+    If not checked : output the 15 character name abbreviations (stripped of potentially problematic characters) that is used in the tool.
+    Default : checked.
+
+**-s : Number of sequences to be used in initial search for reference sequence**
+    integer (between 0 and total number of sequences).
+    Default : 0
+    Default is finding the reference sequence by blasting all sequences against all sequences, only randomly subsampling when it thinks the blast output file might be too large.
+
+** Output format :**
+    The user have the choice between three format (only one is returned per run) : fasta, phylip, and nexus.
+
+--------
+
+**Outputs**
+
+The output format is 
+ 
+    - 'Blastalign_on_{input.name}_phylip' :
+        the aligned sequences in Phylip format.
+
+    - 'Blastalign_on_{input.name}_nexus' :
+       the aligned sequences in Nexus format.
+
+    - 'Blastalign_on_{input_file}_fasta' :
+        the aligned sequences in Fasta format if the option "fasta format" is checked.
+
+---------
+
+Changelog
+---------
+
+**Version 2.1 - 17/01/2018**
+
+  - New parameter "output format"
+  - Applied some bugfixes and minor improvments
+
+**Version 2.0 - 21/04/2017**
+
+ - NEW: BlastAlign will now be launched on one file at once. Although, it will manage a Dataset Collection to deal with numerous files.
+
+**Version 1.0 - 13/04/2017**
+
+ - TEST: Add funtional test with planemo
+ - IMPROVEMENT: Use conda dependencies for blastalign, blast-legacy, perl, python
+
+    ]]>
+
+    </help>
+
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/bth459</citation>
+    </citations>
+
+</tool>
+