changeset 1:125b8ae43807 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_genome_dbkeys_all_fasta commit db8f5e7fadc3bf752951b837a977919f8409e4b6-dirty
author dave
date Sat, 30 Jun 2018 18:52:10 -0400
parents 3da261f8ac90
children
files data_manager/.data_manager_make_blastn_dbs.py.swp data_manager/.data_manager_make_blastn_dbs.xml.swp data_manager/data_manager_make_blastn_database.py data_manager/data_manager_make_blastn_database.xml data_manager/data_manager_make_blastn_dbs.py data_manager/data_manager_make_blastn_dbs.xml data_manager_conf.xml tool_data_table_conf.xml.sample
diffstat 8 files changed, 128 insertions(+), 141 deletions(-) [+]
line wrap: on
line diff
Binary file data_manager/.data_manager_make_blastn_dbs.py.swp has changed
Binary file data_manager/.data_manager_make_blastn_dbs.xml.swp has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/data_manager_make_blastn_database.py	Sat Jun 30 18:52:10 2018 -0400
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+# Dan Blankenberg
+from __future__ import print_function
+
+import optparse
+import os
+import subprocess
+import sys
+from json import dumps, loads
+
+DEFAULT_DATA_TABLE_NAMES = ["blastn_databases"]
+
+
+def build_blastn_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)
+    os.symlink(fasta_filename, sym_linked_fasta_filename)
+    args = ['makeblastdb', '-in', sym_linked_fasta_filename, '-dbtype', 'nucl', '-out', sequence_id]
+    proc = subprocess.Popen(args=args, shell=False, cwd=target_directory)
+    return_code = proc.wait()
+    if return_code:
+        print("Error building index.", file=sys.stderr)
+        sys.exit(return_code)
+    data_table_entry = dict(value=sequence_id, dbkey=dbkey, name=sequence_name, path=sequence_id)
+    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', {})
+    data_manager_dict['data_tables'][data_table_name] = data_manager_dict['data_tables'].get(data_table_name, [])
+    data_manager_dict['data_tables'][data_table_name].append(data_table_entry)
+    return data_manager_dict
+
+
+def main():
+    parser = optparse.OptionParser()
+    parser.add_option('-i', '--input', dest='input', action='store', type="string", default=None, help='Input FASTA')
+    parser.add_option('-d', '--dbkey', dest='dbkey', action='store', type="string", default=None, help='Unique identifier')
+    parser.add_option('-n', '--name', dest='name', action='store', type="string", default=None, help='Name')
+    (options, args) = parser.parse_args()
+
+    filename = args[0]
+
+    params = loads(open(filename).read())
+    #raise NameError(dumps(params, indent=2, sort_keys=True))
+    target_directory = params['output_data'][0]['extra_files_path']
+    os.mkdir(target_directory)
+    data_manager_dict = {}
+
+    if options.dbkey in [None, '', '?']:
+        raise Exception('"%s" is not a valid dbkey. You must specify a valid dbkey.' % (options.dbkey))
+
+    sequence_id, sequence_name = (options.dbkey, options.name)
+
+    # build the index
+    build_blastn_index(data_manager_dict, options.input, params, target_directory, options.dbkey, sequence_id, sequence_name, data_table_names=['blastn_databases'])
+
+    # save info to json file
+    open(filename, 'wb').write(dumps(data_manager_dict))
+
+
+if __name__ == "__main__":
+    main()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/data_manager_make_blastn_database.xml	Sat Jun 30 18:52:10 2018 -0400
@@ -0,0 +1,61 @@
+<tool id="data_manager_make_blastn_database" name="Create blastn database" version="0.0.1" tool_type="manage_data">
+    <description>from fasta file</description>
+    <requirements>
+        <requirement type="package" version="2.6.0">blast</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        python '$__tool_directory__/data_manager_make_blastn_database.py'
+        '${out_file}' 
+        #if str( $input_source.source_selector ) == 'history':
+            --input '$input_source.input'
+            --dbkey '$input_source.dbkey'
+            --name '$input_source.name'
+        #else
+            --input '${all_fasta_source.fields.path}'
+            --dbkey '${all_fasta_source.fields.dbkey}'
+            --name '${all_fasta_source.fields.name}'
+       #end if
+    ]]></command>
+    <inputs>
+        <conditional name="input_source">
+            <param name="source_selector" type="select" label="Use locally cached fasta or history dataset">
+                <option value="history" selected="True">From history</option>
+                <option value="data_table">From data table</option>
+            </param>
+            <when value="data_table">
+                <param name="input" type="data" label="Cached sequence">
+                    <options from_data_table="all_fasta" />
+                </param>
+            </when>
+            <when value="history">
+                <param name="input" type="data" format="fasta" optional="false" />
+                <param name="dbkey" type="text" label="Unique identifier" />
+                <param name="name" type="text" label="Display name for database" />
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="out_file" format="data_manager_json"/>
+    </outputs>
+    <tests>
+        <!-- TODO: need some way to test that new entry was added to data table -->
+        <test>
+            <param name="source_selector" value="history" />
+            <param name="input" value="phiX174.fasta" ftype="fasta" />
+            <param name="dbkey" value="phiX174"/>
+            <param name="name" value="Phi-X 174 12-06-1912"/>
+            <output name="out_file" file="phiX174.data_manager_json"/>
+        </test>
+    </tests>
+    <help>
+**What it does**
+
+Fetches a reference genomes or sequences from various sources (URL, Galaxy History, or a server directory) and populates the "blastn_db" data table.
+
+------
+
+.. class:: infomark
+
+**Notice:** If you leave name, description, or id blank, it will be generated automatically.
+    </help>
+</tool>
--- a/data_manager/data_manager_make_blastn_dbs.py	Sat Jun 30 16:19:53 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-# Dan Blankenberg
-from __future__ import print_function
-
-import optparse
-import os
-import subprocess
-import sys
-from json import dumps, loads
-
-DEFAULT_DATA_TABLE_NAMES = ["blastn_dbs"]
-
-
-def get_id_name(params, dbkey, fasta_description=None):
-    # TODO: ensure sequence_id is unique and does not already appear in location file
-    sequence_id = params['param_dict']['sequence_id']
-    if not sequence_id:
-        sequence_id = dbkey
-
-    sequence_name = params['param_dict']['sequence_name']
-    if not sequence_name:
-        sequence_name = fasta_description
-        if not sequence_name:
-            sequence_name = dbkey
-    return sequence_id, sequence_name
-
-
-def build_blastn_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)
-    os.symlink(fasta_filename, sym_linked_fasta_filename)
-    args = ['makeblastdb', '-in', sym_linked_fasta_filename, '-dbtype', "'nucl'", '-out', sequence_id]
-    proc = subprocess.Popen(args=args, shell=False, cwd=target_directory)
-    return_code = proc.wait()
-    if return_code:
-        print("Error building index.", file=sys.stderr)
-        sys.exit(return_code)
-    data_table_entry = dict(value=sequence_id, dbkey=dbkey, name=sequence_name, path=sequence_id)
-    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', {})
-    data_manager_dict['data_tables'][data_table_name] = data_manager_dict['data_tables'].get(data_table_name, [])
-    data_manager_dict['data_tables'][data_table_name].append(data_table_entry)
-    return data_manager_dict
-
-
-def main():
-    parser = optparse.OptionParser()
-    parser.add_option('-i', '--input', dest='input', action='store', type="string", default=None, help='Input FASTA')
-    parser.add_option('-d', '--dbkey', dest='dbkey', action='store', type="string", default=None, help='Unique identifier')
-    parser.add_option('-n', '--name', dest='name', action='store', type="string", default=None, help='Name')
-    (options, args) = parser.parse_args()
-
-    filename = args[0]
-
-    params = loads(open(filename).read())
-    target_directory = params['output_data'][0]['extra_files_path']
-    os.mkdir(target_directory)
-    data_manager_dict = {}
-
-    if dbkey in [None, '', '?']:
-        raise Exception('"%s" is not a valid dbkey. You must specify a valid dbkey.' % (dbkey))
-
-    sequence_id, sequence_name = get_id_name(params, dbkey=options.dbkey, fasta_description=options.name)
-
-    # build the index
-    build_blastn_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))
-
-
-if __name__ == "__main__":
-    main()
--- a/data_manager/data_manager_make_blastn_dbs.xml	Sat Jun 30 16:19:53 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<tool id="data_manager_make_blastn_dbs" name="Create blastn database" version="0.0.1" tool_type="manage_data">
-    <description>for fasta and blastdbs</description>
-    <requirements>
-        <requirement type="package" version="2.6.0">blast</requirement>
-    </requirements>
-    <command detect_errors="exit_code"><![CDATA[
-        python '$__tool_directory__/data_manager_make_blastn_dbs.py'
-        '${out_file}' 
-        #if str( $input_source.source_selector ) == 'history':
-            --input '$input_source.input'
-            --dbkey '$input_source.dbkey'
-            --name '$input_source.name'
-        #else
-            --input '${all_fasta_source.fields.path}'
-            --dbkey '${all_fasta_source.fields.dbkey}'
-            --name '${all_fasta_source.fields.name}'
-       #end if
-    ]]></command>
-    <inputs>
-        <conditional name="input_source">
-            <param name="source_selector" type="select" label="Use locally cached fasta or history dataset">
-                <option value="history" selected="True">From history</option>
-                <option value="data_table">From data table</option>
-            </param>
-            <when value="data_table">
-                <param name="input" type="data" label="Cached sequence">
-                    <options from_data_table="all_fasta" />
-                </param>
-            </when>
-            <when value="history">
-                <param name="input" type="data" format="fasta" optional="false" />
-                <param name="dbkey" type="text" label="Unique identifier" />
-                <param name="name" type="text" label="Display name for database" />
-            </when>
-        </conditional>
-    </inputs>
-    <outputs>
-        <data name="out_file" format="data_manager_json"/>
-    </outputs>
-    <tests>
-        <!-- TODO: need some way to test that new entry was added to data table -->
-        <test>
-            <param name="source_selector" value="history" />
-            <param name="input" value="phiX174.fasta" ftype="fasta" />
-            <param name="dbkey" value="phiX174"/>
-            <param name="name" value="Phi-X 174 12-06-1912"/>
-            <output name="out_file" file="phiX174.data_manager_json"/>
-        </test>
-    </tests>
-    <help>
-**What it does**
-
-Fetches a reference genomes or sequences from various sources (URL, Galaxy History, or a server directory) and populates the "blastn_db" data table.
-
-------
-
-.. class:: infomark
-
-**Notice:** If you leave name, description, or id blank, it will be generated automatically.
-    </help>
-</tool>
--- a/data_manager_conf.xml	Sat Jun 30 16:19:53 2018 -0400
+++ b/data_manager_conf.xml	Sat Jun 30 18:52:10 2018 -0400
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <data_managers>
-    <data_manager tool_file="data_manager/data_manager_make_blastn_dbs.xml" id="data_manager_make_blastn_dbs">
+    <data_manager tool_file="data_manager/data_manager_make_blastn_database.xml" id="data_manager_make_blastn_database">
         <data_table name="all_fasta">
             <output>
                 <column name="value" />
--- a/tool_data_table_conf.xml.sample	Sat Jun 30 16:19:53 2018 -0400
+++ b/tool_data_table_conf.xml.sample	Sat Jun 30 18:52:10 2018 -0400
@@ -7,6 +7,6 @@
     <!-- Locations of dbkeys and len files under genome directory -->
     <table name="blastn_databases" comment_char="#">
         <columns>value, name, path</columns>
-        <file path="tool-data/blastn_dbs.loc" />
+        <file path="tool-data/blastn_databases.loc" />
     </table>
 </tables>