diff get_infos.py @ 2:fa893f77dc22 draft

planemo upload for repository https://github.com/brsynth/synbiocad-galaxy-wrappers commit 18fcec17fb6415ad5a59b9bcfa853e755c768e6f
author tduigou
date Mon, 24 Apr 2023 14:49:53 +0000
parents ceffb29b60c9
children 1482291aaa5c
line wrap: on
line diff
--- a/get_infos.py	Mon Apr 03 09:18:22 2023 +0000
+++ b/get_infos.py	Mon Apr 24 14:49:53 2023 +0000
@@ -2,6 +2,7 @@
 from libsbml import (
     readSBMLFromFile
 )
+from requests import get as r_get
 
 
 def entry_point():
@@ -21,6 +22,16 @@
         type=str,
         help='Path to store biomass reaction ID'
     )
+    parser.add_argument(
+        '--hostid',
+        type=str,
+        help='Extended name of the host organism'
+    )
+    parser.add_argument(
+        '--taxid',
+        type=str,
+        help='Path to store host taxonomy ID'
+    )
     params = parser.parse_args()
 
     sbml_doc = readSBMLFromFile(params.infile)
@@ -40,5 +51,34 @@
                 if 'biomass' in rxn.getId().lower():
                     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"*** Error: unable to retrieve host name for id {params.hostid}")
+                return -1
+        # 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()["parent"]["id"]
+            except KeyError:
+                print(f"Warning: unable to retrieve taxonomy ID for host organism {hostname}")
+            with open(params.taxid, 'w') as f:
+                f.write('#ID\n')
+                f.write(f'{taxid}\n')
+
+
 if __name__ == "__main__":
     entry_point()
\ No newline at end of file