diff toolOptBioDes.py @ 2:856bd14e6e96 draft

planemo upload commit 6a252d04f4b2f79606ab6679b6a91f957e33da7b-dirty
author pablocarb
date Thu, 02 May 2019 07:16:40 -0400
parents
children f3771c0a2327
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolOptBioDes.py	Thu May 02 07:16:40 2019 -0400
@@ -0,0 +1,52 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mar 19
+
+@author: Pablo Carbonell
+@description: Query OptBioDes: optimal synbio design.
+
+"""
+import requests
+import argparse
+import csv
+import os
+import json
+
+def arguments():
+    parser = argparse.ArgumentParser(description='toolOptBioDes: Optimal SynBio Design. Pablo Carbonell, SYNBIOCHEM, 2019')
+    parser.add_argument('infile', 
+                        help='Input xlsx file (DoE specificiations).')
+    parser.add_argument('outfile', 
+                        help='Output csv design file.')
+    parser.add_argument('diagfile', 
+                        help='Output csv diagnostics file.')
+    parser.add_argument('-server', default='http://doe.synbiochem.co.uk/REST',
+                        help='OptBioDes server.')
+    return parser
+
+def testApp(url):
+    r = requests.get( url )
+    res = json.loads( r.content.decode('utf-8') )
+    print( res )
+    
+def sheetUpload(doefile, outfile, diagfile, url):
+    files = { 'file': open(doefile, 'rb' ) }
+    values = {'size': 64}
+    r = requests.post( os.path.join(url, 'Query' ), files=files, data=values )
+    res = json.loads( r.content.decode('utf-8') )
+    M = res['data']['M']
+    with open(outfile, 'w') as h:
+        cw = csv.writer(h)      
+        cw.writerow( res['data']['names'] )
+        for row in M:
+            cw.writerow( row )
+    print( 'Size:', res['data']['libsize'], 'Efficiency:', res['data']['J'] )
+
+
+
+if __name__ == "__main__":
+    parser = arguments()
+    arg = parser.parse_args()
+    assert os.path.exists(arg.infile)
+    sheetUpload( arg.infile, arg.outfile, arg.diagfile, arg.url )