changeset 0:6adb6e16b00f draft

Uploaded
author crs4
date Wed, 02 Apr 2014 12:32:52 -0400
parents
children 1fea05cdc1a1
files COPYING mosaik2.xml readme.rst tool-data/mosaik_index.loc.sample tool_data_table_conf.xml.sample tool_dependencies.xml
diffstat 6 files changed, 417 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/COPYING	Wed Apr 02 12:32:52 2014 -0400
@@ -0,0 +1,179 @@
+Copyright (c) 2005-2013 Pennsylvania State University
+Copyright © 2013-2014 CRS4 Srl. http://www.crs4.it/
+Created by:
+Dannon Baker <dannonbaker@me.com>
+Nicola Soranzo <nicola.soranzo@crs4.it>
+
+Licensed under the Academic Free License version 3.0
+
+ 1) Grant of Copyright License. Licensor grants You a worldwide, royalty-free, 
+    non-exclusive, sublicensable license, for the duration of the copyright, to 
+    do the following:
+
+    a) to reproduce the Original Work in copies, either alone or as part of a 
+       collective work;
+
+    b) to translate, adapt, alter, transform, modify, or arrange the Original 
+       Work, thereby creating derivative works ("Derivative Works") based upon 
+       the Original Work;
+
+    c) to distribute or communicate copies of the Original Work and Derivative 
+       Works to the public, under any license of your choice that does not 
+       contradict the terms and conditions, including Licensor's reserved 
+       rights and remedies, in this Academic Free License;
+
+    d) to perform the Original Work publicly; and
+
+    e) to display the Original Work publicly.
+
+ 2) Grant of Patent License. Licensor grants You a worldwide, royalty-free, 
+    non-exclusive, sublicensable license, under patent claims owned or 
+    controlled by the Licensor that are embodied in the Original Work as 
+    furnished by the Licensor, for the duration of the patents, to make, use, 
+    sell, offer for sale, have made, and import the Original Work and 
+    Derivative Works.
+
+ 3) Grant of Source Code License. The term "Source Code" means the preferred 
+    form of the Original Work for making modifications to it and all available 
+    documentation describing how to modify the Original Work. Licensor agrees 
+    to provide a machine-readable copy of the Source Code of the Original Work 
+    along with each copy of the Original Work that Licensor distributes. 
+    Licensor reserves the right to satisfy this obligation by placing a 
+    machine-readable copy of the Source Code in an information repository 
+    reasonably calculated to permit inexpensive and convenient access by You 
+    for as long as Licensor continues to distribute the Original Work.
+
+ 4) Exclusions From License Grant. Neither the names of Licensor, nor the 
+    names of any contributors to the Original Work, nor any of their 
+    trademarks or service marks, may be used to endorse or promote products 
+    derived from this Original Work without express prior permission of the 
+    Licensor. Except as expressly stated herein, nothing in this License 
+    grants any license to Licensor's trademarks, copyrights, patents, trade 
+    secrets or any other intellectual property. No patent license is granted 
+    to make, use, sell, offer for sale, have made, or import embodiments of 
+    any patent claims other than the licensed claims defined in Section 2. 
+    No license is granted to the trademarks of Licensor even if such marks 
+    are included in the Original Work. Nothing in this License shall be 
+    interpreted to prohibit Licensor from licensing under terms different 
+    from this License any Original Work that Licensor otherwise would have a 
+    right to license.
+
+ 5) External Deployment. The term "External Deployment" means the use, 
+    distribution, or communication of the Original Work or Derivative Works 
+    in any way such that the Original Work or Derivative Works may be used by 
+    anyone other than You, whether those works are distributed or 
+    communicated to those persons or made available as an application 
+    intended for use over a network. As an express condition for the grants 
+    of license hereunder, You must treat any External Deployment by You of 
+    the Original Work or a Derivative Work as a distribution under 
+    section 1(c).
+
+ 6) Attribution Rights. You must retain, in the Source Code of any Derivative 
+    Works that You create, all copyright, patent, or trademark notices from 
+    the Source Code of the Original Work, as well as any notices of licensing 
+    and any descriptive text identified therein as an "Attribution Notice." 
+    You must cause the Source Code for any Derivative Works that You create 
+    to carry a prominent Attribution Notice reasonably calculated to inform 
+    recipients that You have modified the Original Work.
+
+ 7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that 
+    the copyright in and to the Original Work and the patent rights granted 
+    herein by Licensor are owned by the Licensor or are sublicensed to You 
+    under the terms of this License with the permission of the contributor(s) 
+    of those copyrights and patent rights. Except as expressly stated in the 
+    immediately preceding sentence, the Original Work is provided under this 
+    License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or 
+    implied, including, without limitation, the warranties of 
+    non-infringement, merchantability or fitness for a particular purpose. 
+    THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This 
+    DISCLAIMER OF WARRANTY constitutes an essential part of this License. 
+    No license to the Original Work is granted by this License except under 
+    this disclaimer.
+
+ 8) Limitation of Liability. Under no circumstances and under no legal 
+    theory, whether in tort (including negligence), contract, or otherwise, 
+    shall the Licensor be liable to anyone for any indirect, special, 
+    incidental, or consequential damages of any character arising as a result 
+    of this License or the use of the Original Work including, without 
+    limitation, damages for loss of goodwill, work stoppage, computer failure 
+    or malfunction, or any and all other commercial damages or losses. This 
+    limitation of liability shall not apply to the extent applicable law 
+    prohibits such limitation.
+
+ 9) Acceptance and Termination. If, at any time, You expressly assented to 
+    this License, that assent indicates your clear and irrevocable acceptance 
+    of this License and all of its terms and conditions. If You distribute or 
+    communicate copies of the Original Work or a Derivative Work, You must 
+    make a reasonable effort under the circumstances to obtain the express 
+    assent of recipients to the terms of this License. This License 
+    conditions your rights to undertake the activities listed in Section 1, 
+    including your right to create Derivative Works based upon the Original 
+    Work, and doing so without honoring these terms and conditions is 
+    prohibited by copyright law and international treaty. Nothing in this 
+    License is intended to affect copyright exceptions and limitations 
+    (including "fair use" or "fair dealing"). This License shall terminate 
+    immediately and You may no longer exercise any of the rights granted to 
+    You by this License upon your failure to honor the conditions in 
+    Section 1(c).
+
+10) Termination for Patent Action. This License shall terminate 
+    automatically and You may no longer exercise any of the rights granted 
+    to You by this License as of the date You commence an action, including 
+    a cross-claim or counterclaim, against Licensor or any licensee alleging 
+    that the Original Work infringes a patent. This termination provision 
+    shall not apply for an action alleging patent infringement by 
+    combinations of the Original Work with other software or hardware.
+
+11) Jurisdiction, Venue and Governing Law. Any action or suit relating to 
+    this License may be brought only in the courts of a jurisdiction wherein 
+    the Licensor resides or in which Licensor conducts its primary business, 
+    and under the laws of that jurisdiction excluding its conflict-of-law 
+    provisions. The application of the United Nations Convention on 
+    Contracts for the International Sale of Goods is expressly excluded. Any 
+    use of the Original Work outside the scope of this License or after its 
+    termination shall be subject to the requirements and penalties of 
+    copyright or patent law in the appropriate jurisdiction. This section 
+    shall survive the termination of this License.
+
+12) Attorneys' Fees. In any action to enforce the terms of this License or 
+    seeking damages relating thereto, the prevailing party shall be entitled 
+    to recover its costs and expenses, including, without limitation, 
+    reasonable attorneys' fees and costs incurred in connection with such 
+    action, including any appeal of such action. This section shall survive 
+    the termination of this License.
+
+13) Miscellaneous. If any provision of this License is held to be 
+    unenforceable, such provision shall be reformed only to the extent 
+    necessary to make it enforceable.
+
+14) Definition of "You" in This License. "You" throughout this License, 
+    whether in upper or lower case, means an individual or a legal entity 
+    exercising rights under, and complying with all of the terms of, this 
+    License. For legal entities, "You" includes any entity that controls, is 
+    controlled by, or is under common control with you. For purposes of this 
+    definition, "control" means (i) the power, direct or indirect, to cause 
+    the direction or management of such entity, whether by contract or 
+    otherwise, or (ii) ownership of fifty percent (50%) or more of the 
+    outstanding shares, or (iii) beneficial ownership of such entity.
+
+15) Right to Use. You may use the Original Work in all ways not otherwise 
+    restricted or conditioned by this License or by law, and Licensor 
+    promises not to interfere with or be responsible for such uses by You.
+
+16) Modification of This License. This License is Copyright © 2005 Lawrence 
+    Rosen. Permission is granted to copy, distribute, or communicate this 
+    License without modification. Nothing in this License permits You to 
+    modify this License as applied to the Original Work or to Derivative 
+    Works. However, You may modify the text of this License and copy, 
+    distribute or communicate your modified version (the "Modified 
+    License") and apply it to other original works of authorship subject to 
+    the following conditions: (i) You may not indicate in any way that your 
+    Modified License is the "Academic Free License" or "AFL" and you may not 
+    use those names in the name of your Modified License; (ii) You must 
+    replace the notice specified in the first paragraph above with the 
+    notice "Licensed under <insert your license name here>" or with a notice 
+    of your own that is not confusingly similar to the notice in this 
+    License; and (iii) You may not claim that your original works are open 
+    source software unless your Modified License has been approved by Open 
+    Source Initiative (OSI) and You comply with its license review and 
+    certification process.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mosaik2.xml	Wed Apr 02 12:32:52 2014 -0400
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<tool id="mosaik2" name="Map with MOSAIK v. 2" version="2.0.0">
+  <description/>
+  <requirements>
+    <requirement type="package" version="2.2.26">mosaik</requirement>
+    <requirement type="package" version="0.1.19">samtools</requirement>
+  </requirements>
+  <version_command>MosaikJump | sed -e 's/\x1b\[[[:digit:]]\{1,2\}\(;[[:digit:]]\{1,2\}\)\{0,1\}m//g' | sed -n 's/MosaikJump \([[:digit:].]\{1,\}\).*/\1/p'</version_command>
+  <command>
+    MosaikBuild -fr
+    #if $genomeSource.refGenomeSource == 'indexed'
+      ${genomeSource.indexReference.fields.path}
+    #else
+      ${genomeSource.historyReference}
+    #end if
+    -oa mosaik_ref_file;
+    MosaikBuild -q $reads
+    #if $paired.kind == 'single'
+      #set $ls_string = ''
+    #else
+      -q2 ${paired.reads2}
+      -mfl ${paired.mfl}
+      #set $ls_string = '-ls %s' % $paired.ls
+    #end if
+    -st $st -out mosaik_reads_file;
+    MosaikAligner -p \${GALAXY_SLOTS:-4} -ia mosaik_ref_file -in mosaik_reads_file -out mosaik_aligned_file -annpe \$MOSAIK_NETWORK_DIR/2.1.26.pe.100.0065.ann -annse \$MOSAIK_NETWORK_DIR/2.1.26.se.100.005.ann $ls_string
+    #if str($mm)
+      -mm $mm
+    #end if
+    #if str($act)
+      -act $act
+    #end if
+    #if str($bw)
+      -bw $bw
+    #end if
+    #if str($mhp)
+      -mhp $mhp
+    #end if
+    -hs 15;
+    #if str($outFormat) == 'bam'
+      samtools sort -o mosaik_aligned_file.bam out_prefix &gt; $output
+    #else
+      samtools view mosaik_aligned_file.bam -o $output
+    #end if
+  </command>
+  <inputs>
+    <conditional name="genomeSource">
+      <param name="refGenomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?">
+        <option value="indexed">Use a built-in index</option>
+        <option value="history">Use one from the history</option>
+      </param>
+      <when value="indexed">
+        <param name="indexReference" type="select" label="Select a reference genome">
+          <options from_data_table="mosaik_indexes">
+            <filter type="sort_by" column="2" />
+            <validator type="no_options" message="No indexes are available" />
+          </options>
+        </param>
+      </when>
+      <when value="history">
+        <param format="fasta" name="historyReference" type="data" metadata_name="dbkey" label="Select a reference from history" />
+      </when>
+    </conditional>
+    <param name="st" type="select" label="Sequencing technology used">
+      <option value="454">454</option>
+      <option value="illumina">Illumina</option>
+      <option value="solid">Solid</option>
+      <option value="sanger">Sanger</option>
+      <option value="helicos">Helicos</option>
+    </param>
+    <param format="fastq" name="reads" type="data" label="FASTQ reads file" />
+    <conditional name="paired">
+      <param name="kind" type="select" label="Is this library mate-paired?">
+        <option value="single">Single-end</option>
+        <option value="paired">Paired-end</option>
+      </param>
+      <when value="single" />
+      <when value="paired">
+        <param format="fastq" name="reads2" type="data" label="FASTQ 2nd mate" />
+        <param name="mfl" type="integer" value="200" label="Median fragment length" />
+        <param name="ls" type="integer" min="0" value="50" label="Local alignment search radius to rescue mates" help="A large value slows down performances" />
+      </when>
+    </conditional>
+    <param name="mm" type="integer" value="6" optional="true" label="Number of mismatches allowed per sequence" />
+    <param name="act" type="integer" value="35" optional="true" label="Alignment candidate threshold" help="Determines which hash regions will be aligned with Smith-Waterman" />
+    <param name="bw" type="integer" value="9" optional="true" label="Smith-Waterman band width" />
+    <param name="mhp" type="integer" value="100" optional="true" label="Maximum number of positions stored per seed" help="Number of places in the reference the aligner will try to place a particular hash" />
+    <param name="outFormat" type="select" label="Output format">
+      <option value="sam">SAM</option>
+      <option value="bam">BAM</option>
+    </param>
+  </inputs>
+  <outputs>
+    <data format="sam" name="output">
+      <change_format>
+        <when input="outFormat" value="bam" format="bam" />
+      </change_format>
+      <actions>
+        <conditional name="genomeSource.refGenomeSource">
+          <when value="indexed">
+            <action type="metadata" name="dbkey">
+              <option type="from_data_table" name="mosaik_indexes" column="1">
+                <filter type="param_value" column="0" value="#" compare="startswith" keep="False" />
+                <filter type="param_value" ref="genomeSource.indexReference" column="0" />
+              </option>
+            </action>
+          </when>
+          <when value="history">
+            <action type="metadata" name="dbkey">
+              <option type="from_param" name="genomeSource.historyReference" param_attribute="dbkey" />
+            </action>
+          </when>
+        </conditional>
+      </actions>
+   </data>
+  </outputs>
+  <tests>
+    <test>
+      <param name="refGenomeSource" value="history" />
+      <param name="historyReference" ftype="fasta" value="mosaik_test_ref.fasta" />
+      <param name="st" value="454" />
+      <param name="reads" ftype="fastq" value="mosaik_test_input.fastq" />
+      <param name="kind" value="single" />
+      <param name="mm" value="6" />
+      <param name="act" value="35" />
+      <param name="bw" value="9" />
+      <param name="mhp" value="100" />
+      <param name="outFormat" value="sam" />
+      <output name="output" file="mosaik_test_out.sam" compare="sim_size" delta="0" />
+    </test>
+  </tests>
+  <help>
+**What it does**
+
+This tool uses `MOSAIK`_ v. 2 to align reads to a reference sequence.
+
+**License and citation**
+
+This Galaxy tool is Copyright © 2005-2013 Pennsylvania State University, © 2013-2014 `CRS4 Srl.`_ and is released under the `Academic Free License v. 3.0`_.
+
+.. _CRS4 Srl.: http://www.crs4.it/
+.. _Academic Free License v. 3.0: http://opensource.org/licenses/AFL-3.0
+
+If you use this tool in Galaxy, please cite |Cuccuru2014|_.
+
+.. |Cuccuru2014| replace:: Cuccuru, G., Orsini, M., Pinna, A., Sbardellati, A., Soranzo, N., Travaglione, A., Uva, P., Zanetti, G., Fotia, G. (2014) Orione, a web-based framework for NGS analysis in microbiology. *Bioinformatics*, accepted
+.. _Cuccuru2014: http://bioinformatics.oxfordjournals.org/content/early/2014/03/10/bioinformatics.btu135
+
+This tool uses `MOSAIK`_, which is licensed separately. Please cite |Lee2014|_.
+
+.. _MOSAIK: https://code.google.com/p/mosaik-aligner/
+.. |Lee2014| replace:: Lee, W.-P., *et al.* (2014) MOSAIK: A Hash-Based Algorithm for Accurate Next-Generation Sequencing Short-Read Mapping. *PLoS ONE* 9(3), e90581
+.. _Lee2014: http://www.plosone.org/article/info:doi/10.1371/journal.pone.0090581
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.rst	Wed Apr 02 12:32:52 2014 -0400
@@ -0,0 +1,27 @@
+MOSAIK v.2 wrapper
+==================
+
+Configuration
+-------------
+
+mosaik2 tool may be configured to use more than one CPU core by selecting an appropriate destination for this tool in Galaxy job_conf.xml file (see https://wiki.galaxyproject.org/Admin/Config/Jobs and https://wiki.galaxyproject.org/Admin/Config/Performance/Cluster ).
+
+If you are using Galaxy release_2013.11.04 or later, this tool will automatically use the number of CPU cores allocated by the job runner according to the configuration of the destination selected for this tool.
+
+If instead you are using an older Galaxy release, you should also add a line
+
+  GALAXY_SLOTS=N; export GALAXY_SLOTS
+
+(where N is the number of CPU cores allocated by the job runner for this tool) to the file
+
+  <tool_dependencies_dir>/mosaik/2.2.26/crs4/mosaik2/<hash_string>/env.sh
+
+Version history
+---------------
+
+- Release 0: Initial release in the Tool Shed.
+
+Development
+-----------
+
+Development is hosted at https://bitbucket.org/crs4/orione-tools . Contributions and bug reports are very welcome!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/mosaik_index.loc.sample	Wed Apr 02 12:32:52 2014 -0400
@@ -0,0 +1,19 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of Mosaik indexed sequences data files. You will need
+#to create these data files and then create a mosaik_index.loc file 
+#similar to this one (store it in this directory) that points to 
+#the directories in which those files are stored. The mosaik_index.loc 
+#file has this format (longer white space is the TAB character):
+#
+#<unique_build_id>		<dbkey>		<display_name>		<fasta_file_path>
+#
+#So, for example, if you had hg18 indexed and stored in 
+#/depot/data2/galaxy/mosaik/hg18/
+#then the mosaik_index.loc entry would look like this:
+#
+#hg18	hg18	hg18 Pretty		/depot/data2/galaxy/mosaik/hg18/hg18.fa
+#
+#and your /depot/data2/galaxy/mosaik/hg18/ directory
+#would contain the following files:
+#TODO handle mosaik jump tables.
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample	Wed Apr 02 12:32:52 2014 -0400
@@ -0,0 +1,7 @@
+<tables>
+    <!-- Location of Mosaik files -->
+    <table name="mosaik_indexes" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="tool-data/mosaik_index.loc" />
+    </table>
+</tables>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Wed Apr 02 12:32:52 2014 -0400
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<tool_dependency>
+  <package name="mosaik" version="2.2.26">
+    <install version="1.0">
+      <actions>
+        <action type="shell_command">git clone https://github.com/wanpinglee/MOSAIK.git mosaik</action>
+        <action type="shell_command">git reset --hard e04c806bb1410cf1dbd1534991c46d696aec6723</action>
+        <action type="shell_command">sed -i 's/ -static//g' src/includes/linux.inc</action>
+        <action type="shell_command">make -C src/</action>
+        <action type="move_directory_files">
+          <source_directory>bin</source_directory>
+          <destination_directory>$INSTALL_DIR/bin</destination_directory>
+        </action>
+        <action type="move_directory_files">
+          <source_directory>src/networkFile</source_directory>
+          <destination_directory>$INSTALL_DIR/networkFile</destination_directory>
+        </action>
+        <action type="set_environment">
+          <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable>
+        </action>
+        <action type="set_environment">
+          <environment_variable name="MOSAIK_NETWORK_DIR" action="set_to">$INSTALL_DIR/networkFile</environment_variable>
+        </action>
+      </actions>
+    </install>
+  </package>
+<!--  <package name="samtools" version="0.1.19">
+    <repository name="package_samtools_0_1_19" owner="devteam" />
+  </package>-->
+</tool_dependency>