def LoadAllEstimators(): db_public = SqliteDatabase('../data/public_data.sqlite') db_gibbs = SqliteDatabase('../res/gibbs.sqlite') if not db_gibbs.DoesTableExist('prc_pseudoisomers'): nist_regression = NistRegression(db_gibbs) nist_regression.Train() tables = { 'alberty': (db_public, 'alberty_pseudoisomers', 'Alberty'), 'PRC': (db_gibbs, 'prc_pseudoisomers', 'our method (PRC)') } estimators = {} for key, (db, table_name, thermo_name) in tables.iteritems(): if db.DoesTableExist(table_name): estimators[key] = PsuedoisomerTableThermodynamics.FromDatabase( db, table_name, name=thermo_name) else: logging.warning('The table %s does not exist in %s' % (table_name, str(db))) estimators['hatzi_gc'] = Hatzi(use_pKa=False) #estimators['hatzi_gc_pka'] = Hatzi(use_pKa=True) if db.DoesTableExist('bgc_pseudoisomers'): estimators['BGC'] = GroupContribution(db=db_gibbs, transformed=True) estimators['BGC'].init() estimators['BGC'].name = 'our method (BGC)' if db.DoesTableExist('pgc_pseudoisomers'): estimators['PGC'] = GroupContribution(db=db_gibbs, transformed=False) estimators['PGC'].init() estimators['PGC'].name = 'our method (PGC)' estimators['UGC'] = UnifiedGroupContribution(db=db_gibbs) estimators['UGC'].init() estimators['UGC'].name = 'our method (UGC)' estimators['C1'] = ReactionThermodynamics.FromCsv( '../data/thermodynamics/c1_reaction_thermodynamics.csv', estimators['alberty']) if 'PGC' in estimators: estimators['merged'] = BinaryThermodynamics(estimators['alberty'], estimators['PGC']) estimators['merged_C1'] = BinaryThermodynamics(estimators['C1'], estimators['PGC']) for thermo in estimators.values(): thermo.load_bounds('../data/thermodynamics/concentration_bounds.csv') return estimators
options, _ = MakeOpts().parse_args(sys.argv) if options.sbml_model_filename == None: raise ValueError("Must provide a SBML model") print 'SBML model filename:', options.sbml_model_filename print 'CSV output filename:', options.csv_output_filename print 'KEGG Database filename:', options.kegg_db_filename print 'Observed Thermodynamics filename:', options.thermo_filename print 'Thermodynamic Database filename:', options.db_filename print 'Group Contribution Table Name:', options.gc_table_name db = SqliteDatabase(options.db_filename) observed_thermo = PsuedoisomerTableThermodynamics.FromCsvFile( options.thermo_filename) if not db.DoesTableExist(options.gc_table_name): raise ValueError('The table %s does not exist in the database. ' 'Please run the groups.py script and try again.' % options.gc_table_name) thermo = PsuedoisomerTableThermodynamics.FromDatabase( db, options.gc_table_name) thermo.override_data(observed_thermo) kegg = Kegg.getInstance() document = libsbml.readSBML(options.sbml_model_filename) if document.getNumErrors(): raise Exception('cannot read SBML model from file %s due to error: %s' % (options.sbml_model_filename, document.getError(0).getMessage())) model = document.getModel() logging.info('Done parsing the model: ' + model.getName()) model_annotation = semanticSBML.annotate.ModelElementsAnnotations(model, suppress_errors=True)