changeset 4:7bdc452bec9b draft

planemo upload for repository https://github.com/LUMC/lumc-galaxy-tools/tree/master/data_manager_select_index_by_path commit f7e0688eca04c26ceef980c78eb79fc3edbf92db
author rhpvorderman
date Fri, 08 Sep 2017 10:56:11 -0400
parents afd01fcbea26
children 1abe9fb7c454
files data_manager/data_manager_select_index_by_path.xml data_manager/path_name_value_key_manager.py test.json
diffstat 3 files changed, 35 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/data_manager/data_manager_select_index_by_path.xml	Fri Sep 08 08:57:33 2017 -0400
+++ b/data_manager/data_manager_select_index_by_path.xml	Fri Sep 08 10:56:11 2017 -0400
@@ -15,7 +15,7 @@
         <param name="name" type="text" value="" label="name field for the entry. Defaults to the file name from path if left blank." />
         <param name="path" type="text" value="" label="path field for the entry" />
         <param name="data_table" type="text" value="" label="data table for the index">
-          <option value='all_fasta'>all_fasta</option>
+          <option value='all_fasta'>all_fasta --no_prefix</option>
           <option value='bowtie2_indexes'>bowtie2_indexes</option>
           <option value='bowtie_indexes'>bowtie_indexes</option>
           <option value='bowtie_indexes_color'>bowtie_indexes_color</option>
@@ -26,7 +26,7 @@
           <option value='gemini_databases'>gemini_databases</option>
           <option value='gene_transfer'>gene_transfer</option>
           <option value='hisat2_indexes'>hisat2_indexes</option>
-          <option value='kallisto_indexes'>kallisto_indexes</option>
+          <option value='kallisto_indexes'>kallisto_indexes --no-prefix</option>
           <option value='picard_indexes'>picard_indexes</option>
           <option value='tophat2_indexes'>tophat2_indexes</option>
         </param>
--- a/data_manager/path_name_value_key_manager.py	Fri Sep 08 08:57:33 2017 -0400
+++ b/data_manager/path_name_value_key_manager.py	Fri Sep 08 10:56:11 2017 -0400
@@ -1,8 +1,8 @@
 #!/usr/bin/env python
 
 import json
-import optparse
-import os.path
+import argparse
+import os
 
 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', {} )
@@ -22,6 +22,15 @@
         raise Exception( '{0} is not a valid {1}. It may not contain a tab because these are used as seperators by galaxy .'.format( value, name ) )
     return value
 
+def prefix_exists(directory, prefix):
+    '''checks if files exist with prefix in a directory. Returns Boolean'''
+    matched_files = []
+    directory_files = os.listdir(directory)
+    for directory_file in directory_files:
+        if directory_file.startswith(prefix):
+            matched_files.append(directory_file)
+    # Empty list should return False
+    return bool(matched_files)
 
 def main():
 
@@ -31,18 +40,28 @@
     #print '{0} is not a valid {1}. It may not contain a tab.'.format( value, name )
 
     #Parse Command Line
-    parser = optparse.OptionParser()
-    parser.add_option( '--value', action='store', type="string", default=None, help='value' )
-    parser.add_option( '--dbkey', action='store', type="string", default=None, help='dbkey' )
-    parser.add_option( '--name',  action='store', type="string", default=None, help='name' )
-    parser.add_option( '--path', action='store', type="string", default=None, help='path' )
-    parser.add_option( '--data_table_name', action='store', type="string", default=None, help='path' )
-    parser.add_option( '--json_output_file', action='store', type="string", default=None, help='path' )
-    (options, args) = parser.parse_args()
- 
+    parser = argparse.ArgumentParser()
+    parser.add_argument( '--value', action='store', type=str, default=None, help='value' )
+    parser.add_argument( '--dbkey', action='store', type=str, default=None, help='dbkey' )
+    parser.add_argument( '--name',  action='store', type=str, default=None, help='name' )
+    parser.add_argument( '--path', action='store', type=str, default=None, help='path' )
+    parser.add_argument( '--data_table_name', action='store', type=str, default=None, help='path' )
+    parser.add_argument( '--json_output_file', action='store', type=str, default=None, help='path' )
+    parser.add_argument( '--no_prefix', action='store_true', help='Does not check the prefix but checks the path. Useful for indexes that reference a single file.')
+    options = parser.parse_args()
+
     path = check_param("path", options.path)
-    if not os.path.exists(path):
-        raise Exception( 'Unable to find path {0}.'.format( path ) )
+
+    # Check if file or prefix exists
+    if not options.no_prefix:
+        dirname = os.path.dirname(path)
+        prefix = os.path.basename(path)
+        if not prefix_exists(dirname,prefix):
+            raise Exception( 'Unable to find files with prefix "{0}" in {1}.'.format( prefix, dirname ) )
+    else:
+        if not os.path.exists(path):
+            raise Exception( 'Unable to find path {0}.'.format( path ) )
+
     basename = os.path.basename(path)
     filename = os.path.splitext(basename)[0]
     name = check_param("name", options.name, default=filename)
@@ -66,5 +85,5 @@
         output_file.write( json.dumps( data_manager_dict ) )
         output_file.write( "\n" )
 
-if __name__ == "__main__": 
+if __name__ == "__main__":
     main()
--- a/test.json	Fri Sep 08 08:57:33 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-{"data_tables": {"all_fasta": [{"path": "/home/christian/Dropbox/Gene_data/ercc_and_TPA_mouse_rRNA.fa", "dbkey": "ercc_and_TPA_mouse_rRNA", "name": "ercc_and_TPA_mouse_rRNA", "value": "ercc_and_TPA_mouse_rRNA"}]}}