comparison data_manager/data_manager_eggnog.py @ 1:46d2e3ed9530 draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
author galaxyp
date Fri, 19 Feb 2021 18:52:23 +0000
parents 48893cfa76a8
children 3d12bbd5c0ba
comparison
equal deleted inserted replaced
0:48893cfa76a8 1:46d2e3ed9530
9 import sys 9 import sys
10 from sqlite3 import OperationalError 10 from sqlite3 import OperationalError
11 11
12 12
13 def _get_db_version(sqlitedb_path): 13 def _get_db_version(sqlitedb_path):
14 version = '4.5' 14 version = '5.0'
15 try: 15 try:
16 query = 'select version from version' 16 query = 'select version from version'
17 conn = sqlite3.connect(sqlitedb_path) 17 conn = sqlite3.connect(sqlitedb_path)
18 cur = conn.cursor() 18 cur = conn.cursor()
19 cur.execute(query) 19 cur.execute(query)
26 26
27 def main(): 27 def main():
28 parser = argparse.ArgumentParser() 28 parser = argparse.ArgumentParser()
29 parser.add_argument('--config_file') 29 parser.add_argument('--config_file')
30 parser.add_argument('--install_path') 30 parser.add_argument('--install_path')
31 parser.add_argument('--dbs', default='')
32 args = parser.parse_args() 31 args = parser.parse_args()
33 32
34 eggnog_db_path = os.path.join(args.install_path, 'eggnog.db') 33 eggnog_db_path = os.path.join(args.install_path, 'eggnog.db')
35 if not os.path.exists(eggnog_db_path): 34 if not os.path.exists(eggnog_db_path):
36 print('Can not open: %s' % eggnog_db_path, file=sys.stderr) 35 print('Can not open: %s' % eggnog_db_path, file=sys.stderr)
38 db_version = _get_db_version(eggnog_db_path) 37 db_version = _get_db_version(eggnog_db_path)
39 38
40 # params = json.loads(open(args.config_file).read()) 39 # params = json.loads(open(args.config_file).read())
41 dm_dict = {} 40 dm_dict = {}
42 dm_dict['data_tables'] = dm_dict.get('data_tables', {}) 41 dm_dict['data_tables'] = dm_dict.get('data_tables', {})
43 data_table = 'eggnog_mapper_db' 42 data_table = 'eggnog_mapper_db_versioned'
44 dm_dict['data_tables'][data_table]\ 43 dm_dict['data_tables'][data_table]\
45 = dm_dict['data_tables'].get(data_table, []) 44 = dm_dict['data_tables'].get(data_table, [])
45 # Versionning is super confusing:
46 # eggnog-mapper 1.* needed a db v4.5 (based on eggnog v4.5)
47 # eggnog-mapper 2.0 needs a db v2.0 (based on eggnog v5.0)
48 # db v4.5 are not compatible with eggnog-mapper 2.0
49 version = "2.0"
50 if "4.5" in db_version:
51 version = "1.0"
46 data_table_entry = dict(value=db_version, name=db_version, 52 data_table_entry = dict(value=db_version, name=db_version,
47 path=args.install_path) 53 path=args.install_path, version=version)
48 dm_dict['data_tables'][data_table].append(data_table_entry) 54 dm_dict['data_tables'][data_table].append(data_table_entry)
49 data_table = 'eggnog_mapper_hmm_dbs'
50 dm_dict['data_tables'][data_table]\
51 = dm_dict['data_tables'].get(data_table, [])
52 if args.dbs:
53 dbs = [x.strip() for x in args.dbs.split(',')]
54 for db in dbs:
55 key = '%s_%s' % (db_version, db)
56 data_table_entry = dict(key=key, db_version=db_version,
57 value=db, name=db, path=db)
58 dm_dict['data_tables'][data_table].append(data_table_entry)
59 55
60 # save info to json file 56 # save info to json file
61 open(args.config_file, 'wb').write(json.dumps(dm_dict)) 57 open(args.config_file, 'w').write(json.dumps(dm_dict))
62 58
63 59
64 if __name__ == "__main__": 60 if __name__ == "__main__":
65 main() 61 main()