changeset 2:8de13c28d92e draft

planemo upload commit 33927a87ba2eee9bf0ecdd376a66241b17b3d734
author devteam
date Tue, 13 Oct 2015 10:17:27 -0400
parents e0839cffd009
children 49331eedb1c5
files .shed.yml data_manager/bowtie2_index_builder.py data_manager/bowtie2_index_builder.xml data_manager_conf.xml tool-data/all_fasta.loc.sample tool-data/tophat2_indices.loc.sample tool_data_table_conf.xml.sample
diffstat 7 files changed, 89 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/.shed.yml	Thu Mar 19 10:24:37 2015 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-# repository published to https://toolshed.g2.bx.psu.edu/repos/devteam/data_manager_bowtie2_index_builder
-owner: devteam
-name: data_manager_bowtie2_index_builder
-    
--- a/data_manager/bowtie2_index_builder.py	Thu Mar 19 10:24:37 2015 -0400
+++ b/data_manager/bowtie2_index_builder.py	Tue Oct 13 10:17:27 2015 -0400
@@ -9,7 +9,7 @@
 from json import loads, dumps
 
 
-DEFAULT_DATA_TABLE_NAME = "bowtie2_indexes"
+DEFAULT_DATA_TABLE_NAMES = ["bowtie2_indexes"]
 
 def get_id_name( params, dbkey, fasta_description=None):
     #TODO: ensure sequence_id is unique and does not already appear in location file
@@ -24,7 +24,7 @@
             sequence_name = dbkey
     return sequence_id, sequence_name
 
-def build_bowtie2_index( data_manager_dict, fasta_filename, params, target_directory, dbkey, sequence_id, sequence_name, data_table_name=DEFAULT_DATA_TABLE_NAME ):
+def build_bowtie2_index( data_manager_dict, fasta_filename, params, target_directory, dbkey, sequence_id, sequence_name, data_table_names=DEFAULT_DATA_TABLE_NAMES ):
     #TODO: allow multiple FASTA input files
     fasta_base_name = os.path.split( fasta_filename )[-1]
     sym_linked_fasta_filename = os.path.join( target_directory, fasta_base_name )
@@ -36,7 +36,8 @@
         print >> sys.stderr, "Error building index."
         sys.exit( return_code )
     data_table_entry = dict( value=sequence_id, dbkey=dbkey, name=sequence_name, path=sequence_id )
-    _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry )
+    for data_table_name in data_table_names:
+        _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry )
 
 def _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ):
     data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} )
@@ -50,7 +51,7 @@
     parser.add_option( '-f', '--fasta_filename', dest='fasta_filename', action='store', type="string", default=None, help='fasta_filename' )
     parser.add_option( '-d', '--fasta_dbkey', dest='fasta_dbkey', action='store', type="string", default=None, help='fasta_dbkey' )
     parser.add_option( '-t', '--fasta_description', dest='fasta_description', action='store', type="string", default=None, help='fasta_description' )
-    parser.add_option( '-n', '--data_table_name', dest='data_table_name', action='store', type="string", default=None, help='data_table_name' )
+    parser.add_option( '-n', '--data_table_name', dest='data_table_name', action='append', type="string", default=None, help='data_table_name' )
     (options, args) = parser.parse_args()
     
     filename = args[0]
@@ -68,7 +69,7 @@
     sequence_id, sequence_name = get_id_name( params, dbkey=dbkey, fasta_description=options.fasta_description )
     
     #build the index
-    build_bowtie2_index( data_manager_dict, options.fasta_filename, params, target_directory, dbkey, sequence_id, sequence_name, data_table_name=options.data_table_name or DEFAULT_DATA_TABLE_NAME )
+    build_bowtie2_index( data_manager_dict, options.fasta_filename, params, target_directory, dbkey, sequence_id, sequence_name, data_table_names=options.data_table_name or DEFAULT_DATA_TABLE_NAMES )
     
     #save info to json file
     open( filename, 'wb' ).write( dumps( data_manager_dict ) )
--- a/data_manager/bowtie2_index_builder.xml	Thu Mar 19 10:24:37 2015 -0400
+++ b/data_manager/bowtie2_index_builder.xml	Tue Oct 13 10:17:27 2015 -0400
@@ -1,9 +1,9 @@
-<tool id="bowtie2_index_builder_data_manager" name="Bowtie2 index" tool_type="manage_data" version="0.0.1">
+<tool id="bowtie2_index_builder_data_manager" name="Bowtie2 index" tool_type="manage_data" version="0.0.2">
     <description>builder</description>
     <requirements>
         <requirement type="package" version="2.2.4">bowtie2</requirement>
     </requirements>
-    <command interpreter="python">bowtie2_index_builder.py "${out_file}" --fasta_filename "${all_fasta_source.fields.path}" --fasta_dbkey "${all_fasta_source.fields.dbkey}" --fasta_description "${all_fasta_source.fields.name}" --data_table_name "bowtie2_indexes"</command>
+    <command interpreter="python">bowtie2_index_builder.py "${out_file}" --fasta_filename "${all_fasta_source.fields.path}" --fasta_dbkey "${all_fasta_source.fields.dbkey}" --fasta_description "${all_fasta_source.fields.name}" --data_table_name "bowtie2_indexes" ${tophat2}</command>
     <stdio>
         <exit_code range=":-1" />
         <exit_code range="1:" />
@@ -14,6 +14,7 @@
         </param>
         <param type="text" name="sequence_name" value="" label="Name of sequence" />
         <param type="text" name="sequence_id" value="" label="ID for sequence" />
+        <param type="boolean" name="tophat2" label="Also make available for TopHat" checked="True" truevalue="--data_table_name tophat2_indexes" falsevalue="" help="Adds values to tophat2_indexes tool data table." />
     </inputs>
     <outputs>
         <data name="out_file" format="data_manager_json"/>
--- a/data_manager_conf.xml	Thu Mar 19 10:24:37 2015 -0400
+++ b/data_manager_conf.xml	Tue Oct 13 10:17:27 2015 -0400
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <data_managers>
 
-    <data_manager tool_file="data_manager/bowtie2_index_builder.xml" id="bowtie2_index_builder" version="0.0.1">
+    <data_manager tool_file="data_manager/bowtie2_index_builder.xml" id="bowtie2_index_builder" version="0.0.2">
         <data_table name="bowtie2_indexes">
             <output>
                 <column name="value" />
@@ -17,6 +17,19 @@
                 </column>
             </output>
         </data_table>
+
+        <data_table name="tophat2_indexes">
+            <output>
+                <column name="value" />
+                <column name="dbkey" />
+                <column name="name" />
+                <column name="path" output_ref="out_file" >
+                    <!-- no move, always happens as part of bowtie2 and uses that path -->
+                    <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/${dbkey}/bowtie2_index/${value}/${path}</value_translation>
+                    <value_translation type="function">abspath</value_translation>
+                </column>
+            </output>
+        </data_table>
     </data_manager>
-   
+
 </data_managers>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/all_fasta.loc.sample	Tue Oct 13 10:17:27 2015 -0400
@@ -0,0 +1,18 @@
+#This file lists the locations and dbkeys of all the fasta files
+#under the "genome" directory (a directory that contains a directory
+#for each build). The script extract_fasta.py will generate the file
+#all_fasta.loc. This file has the format (white space characters are
+#TAB characters):
+#
+#<unique_build_id>	<dbkey>		<display_name>	<file_path>
+#
+#So, all_fasta.loc could look something like this:
+#
+#apiMel3	apiMel3	Honeybee (Apis mellifera): apiMel3		/path/to/genome/apiMel3/apiMel3.fa
+#hg19canon	hg19		Human (Homo sapiens): hg19 Canonical		/path/to/genome/hg19/hg19canon.fa
+#hg19full	hg19		Human (Homo sapiens): hg19 Full			/path/to/genome/hg19/hg19full.fa
+#
+#Your all_fasta.loc file should contain an entry for each individual
+#fasta file. So there will be multiple fasta files for each build,
+#such as with hg19 above.
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/tophat2_indices.loc.sample	Tue Oct 13 10:17:27 2015 -0400
@@ -0,0 +1,37 @@
+# tophat2_indices.loc.sample
+# This is a *.loc.sample file distributed with Galaxy that enables tools
+# to use a directory of indexed data files. This one is for Bowtie2 and Tophat2.
+# See the wiki: http://wiki.galaxyproject.org/Admin/NGS%20Local%20Setup
+# First create these data files and save them in your own data directory structure.
+# Then, create a bowtie_indices.loc file to use those indexes with tools.
+# Copy this file, save it with the same name (minus the .sample), 
+# follow the format examples, and store the result in this directory.
+# The file should include an one line entry for each index set.
+# The path points to the "basename" for the set, not a specific file.
+# It has four text columns seperated by TABS.
+#
+# <unique_build_id>	<dbkey>	<display_name>	<file_base_path>
+#
+# So, for example, if you had hg18 indexes stored in:
+#
+#    /depot/data2/galaxy/hg19/bowtie2/
+#
+# containing hg19 genome and hg19.*.bt2 files, such as:
+#    -rw-rw-r-- 1 james   james   914M Feb 10 18:56 hg19canon.fa
+#    -rw-rw-r-- 1 james   james   914M Feb 10 18:56 hg19canon.1.bt2
+#    -rw-rw-r-- 1 james   james   683M Feb 10 18:56 hg19canon.2.bt2
+#    -rw-rw-r-- 1 james   james   3.3K Feb 10 16:54 hg19canon.3.bt2
+#    -rw-rw-r-- 1 james   james   683M Feb 10 16:54 hg19canon.4.bt2
+#    -rw-rw-r-- 1 james   james   914M Feb 10 20:45 hg19canon.rev.1.bt2
+#    -rw-rw-r-- 1 james   james   683M Feb 10 20:45 hg19canon.rev.2.bt2
+#
+# then the bowtie2_indices.loc entry could look like this:
+#
+#hg19	hg19	Human (hg19)	/depot/data2/galaxy/hg19/bowtie2/hg19canon
+#
+#More examples:
+#
+#mm10	mm10	Mouse (mm10)	/depot/data2/galaxy/mm10/bowtie2/mm10
+#dm3	dm3		D. melanogaster (dm3)	/depot/data2/galaxy/mm10/bowtie2/dm3
+#
+#
--- a/tool_data_table_conf.xml.sample	Thu Mar 19 10:24:37 2015 -0400
+++ b/tool_data_table_conf.xml.sample	Tue Oct 13 10:17:27 2015 -0400
@@ -1,8 +1,18 @@
 <!-- Use the file tool_data_table_conf.xml.oldlocstyle if you don't want to update your loc files as changed in revision 4550:535d276c92bc-->
 <tables>
+    <!-- Locations of all fasta files under genome directory -->
+    <table name="all_fasta" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="tool-data/all_fasta.loc" />
+    </table>
     <!-- Locations of indexes in the Bowtie2 mapper format -->
     <table name="bowtie2_indexes" comment_char="#">
         <columns>value, dbkey, name, path</columns>
         <file path="tool-data/bowtie2_indices.loc" />
     </table>
+    <!-- Locations of indexes in the Bowtie2 mapper format for TopHat2 to use -->
+    <table name="tophat2_indexes" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="tool-data/tophat2_indices.loc" />
+    </table>
 </tables>