# HG changeset patch
# User yating-l
# Date 1493842690 14400
# Node ID 099d2508bcc32eacb3f3ae4e70a0f3605a4642f9
planemo upload
diff -r 000000000000 -r 099d2508bcc3 data_manager_conf.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml Wed May 03 16:18:10 2017 -0400
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r 099d2508bcc3 fetch_reference_data.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fetch_reference_data.py Wed May 03 16:18:10 2017 -0400
@@ -0,0 +1,75 @@
+#!/usr/bin/env python
+# ref: https://galaxyproject.org/admin/tools/data-managers/how-to/define/
+
+import sys
+import os
+import tempfile
+import shutil
+import argparse
+import urllib2
+import tarfile
+
+from galaxy.util.json import from_json_string, to_json_string
+
+CHUNK_SIZE = 2**20 #1mb
+
+def cleanup_before_exit(tmp_dir):
+ if tmp_dir and os.path.exists(tmp_dir):
+ shutil.rmtree(tmp_dir)
+
+def stop_err(msg):
+ sys.stderr.write(msg)
+ sys.exit(1)
+
+def get_reference_id_name(params):
+ genome_id = params['param_dict']['genome_id']
+ genome_name = params['param_dict']['genome_name']
+ return genome_id, genome_name
+
+def download_from_GlimmerHMM(data_manager_dict, params, target_directory, sequence_id, sequence_name ):
+ GlimmerHMM_DOWNLOAD_URL = 'ftp://ccb.jhu.edu/pub/software/glimmerhmm/GlimmerHMM-3.0.4.tar.gz'
+ GlimmerHMM_TRAINED_DIR = os.path.join('GlimmerHMM', 'trained_dir', sequence_id)
+ with tarfile.open('GlimmerHMM-3.0.4.tar', mode='r:*') as tar:
+ subdir = [
+ tarinfo for tarinfo in tar.getmembers()
+ if sequence_id in tarinfo.name
+ ]
+ tar.extractall(members=subdir)
+ glimmerhmm_trained_target_dir = os.path.join(target_directory, sequence_id)
+ shutil.copytree(GlimmerHMM_TRAINED_DIR, glimmerhmm_trained_target_dir)
+ data_table_entry = dict(value=sequence_id, name=sequence_name, path=glimmerhmm_trained_target_dir)
+ _add_data_table_entry(data_manager_dict, data_table_entry)
+
+ cleanup_before_exit(GlimmerHMM_TRAINED_DIR)
+
+def _add_data_table_entry( data_manager_dict, data_table_entry ):
+ data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} )
+ data_manager_dict['data_tables']['reference_data'] = data_manager_dict['data_tables'].get('reference_data', [])
+ data_manager_dict['data_tables']['reference_data'].append( data_table_entry )
+ return data_manager_dict
+
+REFERENCE_SOURCE_TO_DOWNLOAD = dict(glimmerhmm=download_from_GlimmerHMM)
+
+def main():
+ #Parse Command Line
+ parser = argparse.ArgumentParser()
+ args = parser.parse_args()
+
+ filename = args[0]
+
+ params = from_json_string(open(filename).read())
+ target_directory = params['output_data'][0]['extra_files_path']
+ os.mkdir(target_directory)
+ data_manager_dict = {}
+
+ sequence_id, sequence_name = get_reference_id_name(params)
+
+ #Fetch the FASTA
+ REFERENCE_SOURCE_TO_DOWNLOAD[params['param_dict']['file_path']](data_manager_dict, params, target_directory, sequence_id, sequence_name)
+
+ #save info to json file
+ open(filename, 'wb').write(to_json_string(data_manager_dict))
+
+if __name__ == "__main__":
+ main()
+
diff -r 000000000000 -r 099d2508bcc3 fetch_reference_data.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fetch_reference_data.xml Wed May 03 16:18:10 2017 -0400
@@ -0,0 +1,15 @@
+
+ fetching reference data for GlimmerHMM
+ data_manager_fetch_reference_data.py "${out_file}"
+
+
+
+
+
+
+
+
+
+ Fetch trained data (reference genome) for GlimmerHMM
+
+
\ No newline at end of file