Mercurial > repos > ggricourt > data_manager_bigg
view data_manager/bigg_model_sbml_fetcher.py @ 1:5068c6484606 draft
"planemo upload for repository https://github.com/brsynth/synbiocad-galaxy-wrappers commit 8353ca81a49f5c8c7efb00cdf08710f916422a44-dirty"
author | ggricourt |
---|---|
date | Wed, 23 Feb 2022 16:05:27 +0000 |
parents | 262b8d79bc08 |
children | 2be543b08426 |
line wrap: on
line source
import argparse import json import os import sys try: # For Python 3.0 and later from urllib.request import Request, urlopen except ImportError: # Fall back to Python 2 imports from urllib2 import Request, urlopen BASE_URL = 'http://bigg.ucsd.edu/static/models' ID2ORG = { "iCN718": "Acinetobacter baumannii AYE", "iYO844": "Bacillus subtilis subsp. subtilis str. 168", "iRC1080": "Chlamydomonas reinhardtii", "iCN900": "Clostridioides difficile 630", "iHN637": "Clostridium ljungdahlii DSM 13528", "iCHOv1_DG44": "Cricetulus griseus", "iCHOv1": "Cricetulus griseus", "iAF1260b": "Escherichia coli str. K-12 substr. MG1655", "iAF1260": "Escherichia coli str. K-12 substr. MG1655", "iML1515": "Escherichia coli str. K-12 substr. MG1655", "iJO1366": "Escherichia coli str. K-12 substr. MG1655", "iJR904": "Escherichia coli str. K-12 substr. MG1655", "e_coli_core": "Escherichia coli str. K-12 substr. MG1655", "iAF987": "Geobacter metallireducens GS-15", "iIT341": "Helicobacter pylori 26695", "iAT_PLT_636": "Homo sapiens", "Recon3D": "Homo sapiens", "iAB_RBC_283": "Homo sapiens", "RECON1": "Homo sapiens", "iYL1228": "Klebsiella pneumoniae subsp. pneumoniae MGH 78578", "iNF517": "Lactococcus lactis subsp. cremoris MG1363", "iAF692": "Methanosarcina barkeri str. Fusaro", "iMM1415": "Mus musculus", "iNJ661": "Mycobacterium tuberculosis H37Rv", "iEK1008": "Mycobacterium tuberculosis H37Rv", "iLB1027_lipid": "Phaeodactylum tricornutum CCAP 1055/1", "iAM_Pb448": "Plasmodium berghei", "iAM_Pc455": "Plasmodium cynomolgi strain B", "iAM_Pf480": "Plasmodium falciparum 3D7", "iAM_Pk459": "Plasmodium knowlesi strain H", "iAM_Pv461": "Plasmodium vivax Sal-1", "iJN746": "Pseudomonas putida KT2440", "iJN1463": "Pseudomonas putida KT2440", "iND750": "Saccharomyces cerevisiae S288C", "iMM904": "Saccharomyces cerevisiae S288C", "STM_v1_0": "Salmonella enterica subsp. enterica serovar Typhimurium str. LT2", "iYS1720": "Salmonella pan-reactome", "iSB619": "Staphylococcus aureus subsp. aureus N315", "iYS854": "Staphylococcus aureus subsp. aureus USA300_TCH1516", "iJB785": "Synechococcus elongatus PCC 7942", "iJN678": "Synechocystis sp. PCC 6803", "iSynCJ816": "Synechocystis sp. PCC 6803", "iLJ478": "Thermotoga maritima MSB8", "iIS312": "Trypanosoma cruzi Dm28c", "iIS312_Trypomastigote": "Trypanosoma cruzi Dm28c", "iIS312_Epimastigote": "Trypanosoma cruzi Dm28c", "iIS312_Amastigote": "Trypanosoma cruzi Dm28c" } def url_download(url, workdir): file_path = os.path.abspath(os.path.join(workdir, os.path.basename(url))) src = None dst = None try: req = Request(url) src = urlopen(req) with open(file_path, 'wb') as dst: while True: chunk = src.read(2**10) if chunk: dst.write(chunk) else: break except Exception as e: sys.exit(str(e)) finally: if src: src.close() return file_path def download(model_id, out_file): with open(out_file) as fh: params = json.load(fh) workdir = params['output_data'][0]['extra_files_path'] os.makedirs(workdir) data_manager_json = {'data_tables': {}} file_path = url_download(BASE_URL + '/' + model_id + '.xml', workdir) data_manager_entry = {} data_manager_entry['value'] = model_id data_manager_entry['name'] = MODELID2ORG.get(model_id, 'undefined') data_manager_entry['path'] = file_path data_manager_json['data_tables']['bigg_model_sbml'] = data_manager_entry with open(out_file, 'w') as fh: json.dump(data_manager_json, fh, sort_keys=True) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--out-file', help='JSON output file') parser.add_argument('--model-id', help='Model BIGG id') args = parser.parse_args() download(args.out_file)