Mercurial > repos > iuc > data_manager_gemini_database_downloader
view data_manager/data_manager_gemini_download.py @ 4:fe5a9a7d95b0 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
author | iuc |
---|---|
date | Fri, 14 Dec 2018 12:40:15 -0500 |
parents | 172815da3d41 |
children | b4b2b284230a |
line wrap: on
line source
#!/usr/bin/env python import datetime import json import os import subprocess import sys import yaml def main(): today = datetime.date.today() params = json.loads( open( sys.argv[1] ).read() ) target_directory = params[ 'output_data' ][0]['extra_files_path'] os.mkdir( target_directory ) # The target_directory needs to be specified twice for the following # invocation of gemini. # In essence, the GEMINI_CONFIG environment variable makes gemini store # its yaml configuration file in that directory, while the # --annotation-dir argument makes it write the same path into the yaml # file, which is then used for determining where the actual annotation # files should be stored. gemini_env = os.environ.copy() gemini_env['GEMINI_CONFIG'] = target_directory cmd = "gemini --annotation-dir %s update --dataonly %s %s" % ( target_directory, params['param_dict']['gerp_bp'], params['param_dict']['cadd'] ) subprocess.check_call( cmd, shell=True, env=gemini_env ) # modify the newly created gemini config file to contain a relative # annotation dir path, which will be interpreted as relative to # the job working directory at runtime by any gemini tool config_file = os.path.join(target_directory, 'gemini-config.yaml') with open(config_file) as fi: config = yaml.load(fi) config['annotation_dir'] = 'gemini/data' with open(config_file, 'w') as fo: yaml.dump(config, fo, allow_unicode=False, default_flow_style=False) data_manager_dict = { 'data_tables': { 'gemini_versioned_databases': [ { 'value': today.isoformat(), 'dbkey': 'hg19', 'version': params['param_dict']['gemini_db_version'], 'name': 'GEMINI annotations (%s snapshot)' % today.isoformat(), 'path': './%s' % today.isoformat() } ] } } # save info to json file with open( sys.argv[1], 'wb' ) as out: out.write( json.dumps( data_manager_dict ) ) if __name__ == "__main__": main()