changeset 0:a8bb47cc7625 draft

planemo upload for repository tbd commit 0af229dbbda0496819ca95938c2e0628db689134
author thanhlv
date Tue, 08 Jan 2019 11:04:25 -0500
parents
children 8352ffae5413
files data_manager/ariba_database_builder.py data_manager/ariba_database_builder.xml data_manager/ariba_database_builder.xml.bk data_manager/macros.xml data_manager_conf.xml tool-data/ariba_databases.loc.sample tool_data_table_conf.xml.sample
diffstat 7 files changed, 181 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/ariba_database_builder.py	Tue Jan 08 11:04:25 2019 -0500
@@ -0,0 +1,33 @@
+# Thanh Le Viet
+# 7-Jan-2019
+
+import argparse
+import json
+import os
+import shutil
+
+
+def main(args):
+    output_path = os.getcwd()
+    db_folder = [d for d in os.listdir(output_path) if os.path.isdir(d)]
+    params = json.loads(open(args.output).read())
+    target_directory = params['output_data'][0]['extra_files_path']
+    os.mkdir(target_directory)
+    data_manager_entry = []
+    for db in db_folder:
+        # print("Current: ".format(os.path.join(output_path, d)))
+        # print("Target: {}".format(target_directory))
+        shutil.move(os.path.join(output_path, d), os.path.join(target_directory, d))
+        data_manager_entry.append(dict(value=db.lower(),
+                                  name=db,
+                                  path=target_directory)
+                                    )
+    data_manager_json = dict(data_tables=dict(ariba_databases=data_manager_entry))
+    file(args.output, 'w').write(json.dumps(data_manager_json))
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='Create data manager json.')
+    parser.add_argument('--out', dest='output', action='store', help='JSON filename')
+    args = parser.parse_args()
+    main(args)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/ariba_database_builder.xml	Tue Jan 08 11:04:25 2019 -0500
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<tool id="ariba_database_builder" name="ARIBA build database" tool_type="manage_data" version="@VERSION@">
+    <description>database builder</description>
+     <expand macro="requirements" />
+    <version_command>ariba version | head head -n 1</version_command>
+    <command detect_errors="exit_code">
+    <![CDATA[
+        #if str($library.lib_type) == "curated"
+            #set $library_list = str($library.curated).split(',')
+            #for $library_ in $library_list:
+                #if str($library_) != 'None':
+                    ariba getref '$library_' _tmp_db && ariba prepareref -f _tmp_db.fa -m _tmp_db.tsv '$library_' &&
+                #end if
+            #end for
+        #end if
+        
+        #if str($library.lib_type) == "fasta"
+            #if str($library).fasta != 'None':
+                ariba prepareref --all_coding '$coding' -f '$library.fasta' '$library.db_name'
+            #end if
+        #end if
+
+        python '$__tool_directory__/ariba_database_builder.py'  --out '${out_file}'
+    ]]>
+    </command>
+     <inputs>
+        <conditional name="library">
+        <param name="lib_type" type="select" label="Input reads type or collection" help="Select a curated database or a fasta from the history">
+                <option value="curated" selected="true">Curated Database</option>
+                <option value="fasta">A fasta file</option>
+        </param>
+        <when value="curated">
+        <param name="curated" type="select" multiple="true" label="Select partial library to download">
+            <option value="card">CARD</option>
+            <option value="resfinder">Resfinder</option>
+            <option value="plasmidfinder">Plasmidfinder</option>
+            <option value="megares">Megares</option>
+            <option value="argannot">Argannot</option>
+            <option value="vfdb_core">vfdb_core</option>
+            <option value="vfdb_full">vfdb_full</option>
+            <option value="virulencefinder">virulencefinder</option>
+        </param>
+        </when>
+         <when value="fasta">
+            <param name="fasta" type="data" format="fasta" optional="false" />
+            <param name="db_name" type="text" label="DB name" help = "The DB name should include no space and special characters" />
+            <param name="coding" type="boolean" truevalue="yes" falsevalue="no" checked="False" label="Coding sequence?" />
+         </when>
+         </conditional>
+    </inputs>
+    <outputs>
+        <data name="out_file" format="data_manager_json" />
+    </outputs>
+    <help>
+    </help>
+    <citations>
+        <citation type="doi">110.1099/mgen.0.000131</citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/ariba_database_builder.xml.bk	Tue Jan 08 11:04:25 2019 -0500
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<tool id="ariba_database_builder" name="ARIBA build database" tool_type="manage_data" version="@VERSION@">
+    <description>database builder</description>
+     <expand macro="requirements" />
+    <version_command>ariba version | head head -n 1</version_command>
+    <command detect_errors="exit_code">
+    <![CDATA[
+        #set $library_list = str($libraries).split(',')
+        mkdir ariba-database && cd ariba-database &&
+        #for $library in $library_list:
+            #if str($library) != 'None':
+                ariba getref $library _tmp_db && ariba prepareref -f _tmp_db.fa -m _tmp_db.tsv $library &&
+            #end if
+        #end for
+        #for $fasta in $input_fasta:
+            #if str($fasta) != 'None':
+                ariba preparef --all_coding no $fasta $fasta    &&
+            #end if
+        #end for
+        cd .. && 
+        python '$__tool_directory__/ariba_data_base_builder.py' --db '${database_name}' --out '${out_file}'
+    ]]>
+    </command>
+    <inputs>
+        <param name="database_name" type="text" label="Name for this database" />
+        <param name="libraries" type="select" multiple="true" label="Select partial library to download">
+            <option value="card">CARD</option>
+            <option value="resfinder">Resfinder</option>
+            <option value="plasmidfinder">Plasmidfinder</option>
+        </param>
+        <param name="input_fasta" type="data" format="fasta" multiple="True" optional="true" label="Select history item" />
+    </inputs>
+    <outputs>
+        <data name="out_file" format="data_manager_json" />
+    </outputs>
+    <help>
+    </help>
+    <citations>
+        <citation type="doi">110.1099/mgen.0.000131</citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/macros.xml	Tue Jan 08 11:04:25 2019 -0500
@@ -0,0 +1,18 @@
+<macros>
+    <token name="@VERSION@">0.1.0</token>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="2.13.2">ariba</requirement>
+        </requirements>
+    </xml>
+
+    <xml name="version_command">
+        <version_command>ariba version | head -n 1</version_command>
+    </xml>
+
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1099/mgen.0.000131</citation>
+        </citations>
+    </xml>
+</macros>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml	Tue Jan 08 11:04:25 2019 -0500
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<data_managers>
+    <data_manager tool_file="data_manager/ariba_database_builder.xml" id="ariba_database_builder" version="0.1.0">
+        <data_table name="ariba_databases">
+            <output>
+                <column name="value" />
+                <column name="name" />
+                <column name="path" output_ref="out_file">
+                    <move type="directory" relativize_symlinks="True">
+                        <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">ariba_databases</target>
+                    </move>
+                    <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/ariba_databases/${value}</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/ariba_databases.loc.sample	Tue Jan 08 11:04:25 2019 -0500
@@ -0,0 +1,4 @@
+# This file defines databases and their folder location. Each database is a line with 
+# three columns: value{tab}{name}{/path/to/database-folder} 
+# E.g. card{tab}card{tab}/home/user/ariba_databases/card
+# The database folder is created by the command ariba preparef
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample	Tue Jan 08 11:04:25 2019 -0500
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<tables>
+    <!-- Locations of ARIBA database in the required format -->
+    <table name="ariba_databases" comment_char="#" allow_duplicate_entries="False">
+        <columns>value, name, path</columns>
+        <file path="tool-data/ariba_databases.loc" />
+    </table>
+</tables>