Mercurial > repos > tduigou > get_sbml_model
changeset 7:8dc4d3964ab5 draft
planemo upload for repository https://github.com/brsynth/synbiocad-galaxy-wrappers commit 09fcdb371be214b222a2e1c540d7c6e7489ca258
author | tduigou |
---|---|
date | Mon, 04 Sep 2023 14:19:43 +0000 |
parents | 9b5947d48192 |
children | 768ed7cc0978 |
files | get_infos.py get_sbml_model.xml |
diffstat | 2 files changed, 63 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/get_infos.py Mon Aug 28 14:24:48 2023 +0000 +++ b/get_infos.py Mon Sep 04 14:19:43 2023 +0000 @@ -12,6 +12,12 @@ type=str, help='SBML input file (xml)' ) + # argument to tag file from BiGG + parser.add_argument( + '--bigg', + action='store_true', + help='Tag file from BiGG' + ) parser.add_argument( '--comp', type=str, @@ -52,33 +58,41 @@ f.write(f'{rxn.getId()}\n') if params.taxid: - # Extended Name - server = 'http://bigg.ucsd.edu/api/v2/models/' - ext = params.hostid - r = r_get(server+ext, headers={ "Content-Type" : "application/json"}) - if not r.ok: - print(f"Warning: unable to retrieve host name for id {params.hostid}") - else: - try: - hostname = r.json()["organism"] - except KeyError: - print(f"Warning: unable to retrieve host name for id {params.hostid}") - hostname = '' - if not hostname: - taxid = '' - else: - # TAXON ID - server = 'https://rest.ensembl.org' - ext = f'/taxonomy/id/{hostname}?' + hostname = '' + + # Model from BiGG + if params.bigg: + # Extended Name + server = 'http://bigg.ucsd.edu/api/v2/models/' + ext = params.hostid r = r_get(server+ext, headers={ "Content-Type" : "application/json"}) if not r.ok: - print(f"Warning: unable to retrieve taxonomy ID for host organism {hostname}") + print(f"Warning: unable to retrieve host name for id {params.hostid}") else: try: - taxid = r.json()["id"] + hostname = r.json()["organism"] except KeyError: + print(f"Warning: unable to retrieve host name for id {params.hostid}") + if not hostname: + taxid = '' + else: + # TAXON ID + server = 'https://rest.ensembl.org' + ext = f'/taxonomy/id/{hostname}?' + r = r_get(server+ext, headers={ "Content-Type" : "application/json"}) + if not r.ok: print(f"Warning: unable to retrieve taxonomy ID for host organism {hostname}") - taxid = '' + else: + try: + taxid = r.json()["id"] + except KeyError: + print(f"Warning: unable to retrieve taxonomy ID for host organism {hostname}") + taxid = '' + + # Model from user + else: + taxid = params.hostid + with open(params.taxid, 'w') as f: f.write('#ID\n') f.write(f'{taxid}\n')
--- a/get_sbml_model.xml Mon Aug 28 14:24:48 2023 +0000 +++ b/get_sbml_model.xml Mon Sep 04 14:19:43 2023 +0000 @@ -1,23 +1,32 @@ -<tool id="get_sbml_model" name="Pick SBML Model" version="0.0.4" profile="21.09" license="MIT"> +<tool id="get_sbml_model" name="Pick SBML Model" version="0.1.0" profile="21.09" license="MIT"> <description>Get an SBML model (BiGG)</description> <requirements> <requirement type="package" version="7.81.0">curl</requirement> <requirement type="package" version="1.11">gzip</requirement> <requirement type="package" version="5.19.2">python-libsbml</requirement> <requirement type="package" version="2.29">requests</requirement> + <requirement type="package" version="0.1.0">taxonid</requirement> </requirements> <command detect_errors="exit_code"><![CDATA[ #if str($cond_src.from_src) == 'from_bigg' curl -o - 'http://bigg.ucsd.edu/static/models/${cond_src.hostid}.xml.gz' | gunzip > '$model' && #else - cp '${cond_src.input_file}' '$model' && + python -m taxonid '${cond_src.hostname}' --output-file tmpfile && + echo "#ID" > '$taxid' && + cat tmpfile >> '$taxid' && #end if + echo "listdir:"; + ls; python '$__tool_directory__/'get_infos.py - '$model' - --hostid '${cond_src.hostid}' - --comp '$compartments' - --biomass '$biomass' - --taxid '$taxid' + #if str($cond_src.from_src) == 'from_bigg' + '$model' + --taxid '$taxid' + #else + '${cond_src.input_file}' + #end if + --hostid '${cond_src.hostid}' + --comp '$compartments' + --biomass '$biomass' ]]></command> <inputs> <conditional name="cond_src"> @@ -26,8 +35,11 @@ <option value="from_history">Select file from the History</option> </param> <when value="from_history"> + <param name="hostname" type="text" help="Fullname of the model"> + <validator type="empty_field" message="The fullname of the organism is required"/> + </param> <param name="hostid" type="text" help="ID of the model"> - <validator type="empty_field" message="An ID is required"/> + <validator type="empty_field" message="ID of the organism is required"/> </param> <param name="input_file" type="data" format="sbml,xml" label="SBML model" help="An SBML file is expected"/> </when> @@ -85,30 +97,30 @@ </conditional> </inputs> <outputs> - <data name="model" format="sbml" label="${cond_src.hostid}" /> + <data name="model" format="sbml" label="${cond_src.hostid}"> + <filter>cond_src['from_src'] == 'from_bigg'</filter> + </data> <data name="taxid" format="tsv" label="${cond_src.hostid} (taxon id)" /> <data name="compartments" format="tsv" label="${cond_src.hostid} (compartments)" /> <data name="biomass" format="tsv" label="${cond_src.hostid} (biomass reactions)" /> </outputs> <tests> <test> - <conditional name="cond_src"> - <param name="from_src" value="from_bigg" /> - <param name="hostid" value="iML1515" /> - </conditional> + <param name="from_src" value="from_bigg" /> + <param name="hostid" value="iML1515" /> <output name="model" md5="9bf81d20cab5476700697ded95b716d1" /> - <output name="taxid" md5="6b35ad8a1c2b640af4ba738c2f5f876e" /> + <output name="taxid" md5="7c62bd818057838b3557c8d87cca47fc" /> <output name="compartments" md5="e93a875a2d8efc10a880ae3ac0018236" /> <output name="biomass" md5="cffb2fbdb07d1301dfdb7bb284fb7e06" /> </test> <test> <conditional name="cond_src"> <param name="from_src" value="from_history" /> + <param name="hostname" value="Escherichia coli str. K-12 substr. MG1655" /> <param name="hostid" value="e_coli_core" /> <param name="input_file" value="e_coli_core.xml" /> </conditional> - <output name="model" md5="4574760460afe9e1b3388dc15f354706" /> - <output name="taxid" md5="6b35ad8a1c2b640af4ba738c2f5f876e" /> + <output name="taxid" md5="ee08b511771328e6254775a51779d421" /> <output name="compartments" md5="71dc18974a12e9bb75bb2c4cffd13edf" /> <output name="biomass" md5="d10baa335181450c7bffa9b4ca01754a" /> </test>