Mercurial > repos > pablocarb > synbiodesign
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 )