Mercurial > repos > iuc > data_manager_gemini_database_downloader
annotate data_manager/data_manager_gemini_download.py @ 5:b4b2b284230a draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
author | iuc |
---|---|
date | Wed, 19 Dec 2018 12:36:22 -0500 |
parents | fe5a9a7d95b0 |
children | f57426daa04d |
rev | line source |
---|---|
0 | 1 #!/usr/bin/env python |
2 | |
3
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
3 import datetime |
0 | 4 import json |
3
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
5 import os |
0 | 6 import subprocess |
3
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
7 import sys |
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
8 |
4
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
9 import yaml |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
10 |
0 | 11 |
5
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
12 def write_gemini_config(config, config_file): |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
13 with open(config_file, 'w') as fo: |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
14 yaml.dump(config, fo, allow_unicode=False, default_flow_style=False) |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
15 |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
16 |
0 | 17 def main(): |
18 today = datetime.date.today() | |
19 params = json.loads( open( sys.argv[1] ).read() ) | |
20 target_directory = params[ 'output_data' ][0]['extra_files_path'] | |
21 os.mkdir( target_directory ) | |
5
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
22 |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
23 # Generate a minimal configuration file for GEMINI update |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
24 # to instruct the tool to download the annotation data into a |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
25 # subfolder of the target directory. |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
26 config_file = os.path.join(target_directory, 'gemini-config.yaml') |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
27 anno_dir = os.path.join(target_directory, 'gemini/data') |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
28 gemini_bootstrap_config = {'annotation_dir': anno_dir} |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
29 write_gemini_config(gemini_bootstrap_config, config_file) |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
30 |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
31 # Now gemini update can be called to download the data. |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
32 # The GEMINI_CONFIG environment variable lets the tool discover |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
33 # the configuration file we prepared for it. |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
34 # Note that the tool will rewrite the file turning it into a |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
35 # complete gemini configuration file. |
4
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
36 gemini_env = os.environ.copy() |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
37 gemini_env['GEMINI_CONFIG'] = target_directory |
5
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
38 cmd = "gemini update --dataonly %s %s" % ( |
4
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
39 params['param_dict']['gerp_bp'], |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
40 params['param_dict']['cadd'] |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
41 ) |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
42 subprocess.check_call( cmd, shell=True, env=gemini_env ) |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
43 |
5
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
44 # GEMINI tool wrappers that need access to the annotation files |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
45 # are supposed to symlink them into a gemini/data subfolder of |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
46 # the job working directory. To have GEMINI discover them there, |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
47 # we need to set this location as the 'annotation_dir' in the |
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
48 # configuration file. |
4
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
49 with open(config_file) as fi: |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
50 config = yaml.load(fi) |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
51 config['annotation_dir'] = 'gemini/data' |
5
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
52 write_gemini_config(config, config_file) |
4
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
53 |
5
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
54 # Finally, we prepare the metadata for the new data table record ... |
2
345412d58d75
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/data_managers/data_manager_gemini_database_downloader commit 4bbfca6f0e9cae9a8f263aad4eab7304c96358c4
iuc
parents:
0
diff
changeset
|
55 data_manager_dict = { |
3
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
56 'data_tables': { |
4
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
57 'gemini_versioned_databases': [ |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
58 { |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
59 'value': today.isoformat(), |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
60 'dbkey': 'hg19', |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
61 'version': params['param_dict']['gemini_db_version'], |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
62 'name': |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
63 'GEMINI annotations (%s snapshot)' % today.isoformat(), |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
64 'path': './%s' % today.isoformat() |
fe5a9a7d95b0
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 283362494058ed64143b1f27afb447b8a1cb4313
iuc
parents:
3
diff
changeset
|
65 } |
3
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
66 ] |
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
67 } |
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
68 } |
0 | 69 |
5
b4b2b284230a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 9981ac1338c91a3ab46557ce6b821da3d5b4bc86
iuc
parents:
4
diff
changeset
|
70 # ... and save it to the json results file |
0 | 71 with open( sys.argv[1], 'wb' ) as out: |
72 out.write( json.dumps( data_manager_dict ) ) | |
73 | |
3
172815da3d41
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_gemini_database_downloader commit 8652f36a3a3838dca989426961561e81432acf4f
iuc
parents:
2
diff
changeset
|
74 |
0 | 75 if __name__ == "__main__": |
76 main() |