Source code for thermodynamics.thermodynamics_io
# -*- coding: utf-8 -*-
"""helper functions for generating thermodynamic analysis input"""
import json, csv
from math import sqrt,exp,pow
[docs]class thermodynamics_io:
"""base class for the input and output of data"""
[docs] def import_values_json(self, filename):
"""import values from a json file"""
data = json.load(open(filename))
return data;
[docs] def export_values_json(self, filename, data):
"""export values to a json file"""
with open(filename, 'w') as outfile:
json.dump(data, outfile, indent=4);
[docs]def checkInput_concentrations(measured_values_I):
"""check concentration data input
Args:
measured_values (dict): measured values with variances
{metabolite.id: {'concentration': float,
'concentration_var': float,
'concentration_units': 'M'}
Returns:
dict: output: measured_values_O: {metabolite.id: {'concentration': float,
'concentration_var': float,
'concentration_units': 'M'}
"""
# check units
measured_values_O = {};
for k,v in measured_values_I.items():
if v['concentration_units'] == 'M':
measured_values_O[k] = v
else:
print((str(k) + ' has invalid units of ' + str(v) + ' and will be ignored'))
return measured_values_O;
[docs]def checkInput_dG_f(measured_values_I):
"""check dG_O_f data input
Args:
measured_values (dict): measured values with variances
{metabolite.id: {'dG_f': float,
'dG_f_var': float,
'dG_f_units': 'kJ/mol'}
Returns:
dict: output: measured_values_O: {metabolite.id: {'dG_f': float,
'dG_f_var': float,
'dG_f_lb': float,
'dG_f_ub': float,
'dG_f_units': 'kJ/mol'}
"""
# check units
measured_values_O = {};
for k,v in measured_values_I.items():
if v['dG_f_units'] == 'kJ/mol':
measured_values_O[k] = v
else:
print((str(k) + ' has invalid units of ' + str(v) + ' and will be ignored'))
return measured_values_O;
[docs]def import_values_json(filename):
"""import values from a json file"""
data = json.load(open(filename))
return data;