changeset 9:6a2871e89352 draft default tip

planemo upload for repository https://github.com/brsynth/synbiocad-galaxy-wrappers commit 537d7fefe58984b8f7ca66010153a2fdc35ddf4b
author tduigou
date Wed, 14 Feb 2024 15:25:38 +0000
parents 768ed7cc0978
children
files get_infos.py get_sbml_model.xml
diffstat 2 files changed, 59 insertions(+), 69 deletions(-) [+]
line wrap: on
line diff
--- a/get_infos.py	Fri Sep 29 09:03:09 2023 +0000
+++ b/get_infos.py	Wed Feb 14 15:25:38 2024 +0000
@@ -2,7 +2,7 @@
 from libsbml import (
     readSBMLFromFile
 )
-from requests import get as r_get
+from taxonid import get_taxonid
 
 
 def get_biomass_rxn(sbml_doc):
@@ -39,51 +39,6 @@
     return None
 
 
-def get_taxon_id(hostid):
-    '''
-    Returns the taxonomy ID of the host organism
-    
-    Parameters
-    ----------
-    hostid: str
-        Extended name of the host organism
-        
-    Returns
-    -------
-    taxid: str
-        Taxonomy ID of the host organism
-    '''
-    taxid = get_taxon_id(hostid)
-    hostname = ''
-    # Extended Name
-    server = 'http://bigg.ucsd.edu/api/v2/models/'
-    ext = 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 {hostid}")
-    else:
-        try:
-            hostname = r.json()["organism"]
-        except KeyError:
-            print(f"Warning: unable to retrieve host name for id {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}")
-        else:
-            try:
-                taxid = r.json()["id"]
-            except KeyError:
-                print(f"Warning: unable to retrieve taxonomy ID for host organism {hostname}")
-                taxid = ''
-    return taxid
-
-
 def args():
     parser = ArgumentParser('Returns cell informations')
     parser.add_argument(
@@ -113,9 +68,9 @@
         help='ID of biomass reaction'
     )
     parser.add_argument(
-        '--hostid',
+        '--hostname',
         type=str,
-        help='Extended name of the host organism'
+        help='Name of the host organism'
     )
     parser.add_argument(
         '--taxid',
@@ -126,6 +81,55 @@
     return params
 
 
+def get_taxon_id(hostid: str, bigg: bool):
+    '''
+    Returns the taxonomy ID of the host organism
+    
+    Parameters
+    ----------
+    hostid: str
+        Extended name of the host organism or host ID if from BiGG
+    bigg: bool
+        True if the model is from BiGG
+        
+    Returns
+    -------
+    taxid: str
+        Taxonomy ID of the host organism
+    '''
+    if not bigg:
+        return get_taxonid(hostid)
+
+    hostname = ''
+    # Extended Name
+    server = 'http://bigg.ucsd.edu/api/v2/models/'
+    ext = 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 {hostid}")
+    else:
+        try:
+            hostname = r.json()["organism"]
+        except KeyError:
+            print(f"Warning: unable to retrieve host name for id {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}")
+        else:
+            try:
+                taxid = r.json()["id"]
+            except KeyError:
+                print(f"Warning: unable to retrieve taxonomy ID for host organism {hostname}")
+                taxid = ''
+    return taxid
+
+
 def entry_point():
 
     params = args()
@@ -161,12 +165,7 @@
     else:
         print(f'Biomass reaction ID: {biomass_id}')
 
-    # Model from BiGG
-    if params.bigg:
-        taxid = get_taxon_id(params.hostid)
-    # Model from user
-    else:
-        taxid = params.hostid
+    taxid = get_taxon_id(params.hostname, params.bigg)
 
     if params.taxid:
         with open(params.taxid, 'w') as f:
--- a/get_sbml_model.xml	Fri Sep 29 09:03:09 2023 +0000
+++ b/get_sbml_model.xml	Wed Feb 14 15:25:38 2024 +0000
@@ -1,31 +1,25 @@
-<tool id="get_sbml_model" name="Pick SBML Model" version="0.1.0" profile="21.09" license="MIT">
+<tool id="get_sbml_model" name="Pick SBML Model" version="0.2.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>
+        <requirement type="package" version="0.1.1">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
-            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
             #if str($cond_src.from_src) == 'from_bigg'
                 '$model'
                 --bigg
-                --taxid '$taxid'
             #else
                 '${cond_src.input_file}'
             #end if
-            --hostid '${cond_src.hostid}'
+            --hostname '${cond_src.hostid}'
+            --taxid '$taxid'
             --comp '$compartments'
             --biomass '$biomass'
     ]]></command>
@@ -36,11 +30,8 @@
                 <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="ID of the organism is required"/>
+                <param name="hostid" type="text" label="Model's fullname" help="Model extended name">
+                    <validator type="empty_field" message="Organism extended name required"/>
                 </param>
                 <param name="input_file" type="data" format="sbml,xml" label="SBML model" help="An SBML file is expected"/>
             </when>