Mercurial > repos > galaxyp > data_manager_eggnog_mapper
diff data_manager/data_manager_eggnog.py @ 0:6d8144eef202 draft
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/eggnog_mapper_data_manager commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
author | galaxyp |
---|---|
date | Mon, 11 Nov 2019 11:49:16 -0500 |
parents | |
children | 077cf0a99144 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/data_manager_eggnog.py Mon Nov 11 11:49:16 2019 -0500 @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +from __future__ import print_function + +import argparse +import json +import os.path +import sqlite3 +import sys +from sqlite3 import OperationalError + + +def _get_db_version(sqlitedb_path): + version = '4.5' + try: + query = 'select version from version' + conn = sqlite3.connect(sqlitedb_path) + cur = conn.cursor() + cur.execute(query) + version = cur.fetchone()[0] + except OperationalError as e: + print('Assuming eggnog version %s because %s %s' % + (version, sqlitedb_path, e), file=sys.stderr) + return version + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--config_file') + parser.add_argument('--install_path') + parser.add_argument('--dbs', default='') + args = parser.parse_args() + + eggnog_db_path = os.path.join(args.install_path, 'eggnog.db') + if not os.path.exists(eggnog_db_path): + print('Can not open: %s' % eggnog_db_path, file=sys.stderr) + exit(1) + db_version = _get_db_version(eggnog_db_path) + + # params = json.loads(open(args.config_file).read()) + dm_dict = {} + dm_dict['data_tables'] = dm_dict.get('data_tables', {}) + data_table = 'eggnog_mapper_db' + dm_dict['data_tables'][data_table]\ + = dm_dict['data_tables'].get(data_table, []) + data_table_entry = dict(value=db_version, name=db_version, + path=args.install_path) + dm_dict['data_tables'][data_table].append(data_table_entry) + data_table = 'eggnog_mapper_hmm_dbs' + dm_dict['data_tables'][data_table]\ + = dm_dict['data_tables'].get(data_table, []) + if args.dbs: + dbs = [x.strip() for x in args.dbs.split(',')] + for db in dbs: + key = '%s_%s' % (db_version, db) + data_table_entry = dict(key=key, db_version=db_version, + value=db, name=db, path=db) + dm_dict['data_tables'][data_table].append(data_table_entry) + + # save info to json file + open(args.config_file, 'wb').write(json.dumps(dm_dict)) + + +if __name__ == "__main__": + main()