Beispiel #1
0
 def setUp(self):
     self.simple1 = SimpleSBML()
     self.simple2 = SimpleSBML()
     self.simple3 = SimpleSBML()
     self.simple4 = SimpleSBML()
     # BIOMD0000000248 - canceling_error
     self.simple1.initialize(cn.TEST_FILE_GAMESREPORT1)
     # BIOMD0000000007 - Type I error
     self.simple2.initialize(cn.TEST_FILE_GAMESREPORT2)
     # BIOMD0000000018 - Type II error
     self.simple3.initialize(cn.TEST_FILE_GAMES_PP2)
     # BIOMD0000000167 - Echelon, Type III error
     self.simple4.initialize(cn.TEST_FILE_GAMESREPORT3)
def load_file_from_curated_data(num):

  format_num = format(num, '03d')
  file = os.path.join(os.getcwd(), os.pardir, os.pardir, 'curated_data/curated_' + format_num + '.xml')
  simple = SimpleSBML()
  simple.initialize(file)
  return simple
def load_file_from_games(num):

  format_num = format(num, '03d')
  file = os.path.join(os.getcwd(), os.pardir, 'data/biomodels/BIOMD0000000' + format_num + '_url.xml')
  simple = SimpleSBML()
  simple.initialize(file)
  return simple
Beispiel #4
0
 def testInitialize(self):
     if IGNORE_TEST:
         return
     simple = SimpleSBML()
     simple.initialize(cn.TEST_FILE)
     self.assertEqual(len(simple.reactions), cn.NUM_REACTIONS)
     self.assertEqual(len(simple.molecules), len(simple.moietys))
Beispiel #5
0
 def testAnalyzeReactions(self):
     if IGNORE_TEST:
         return
     simple = SimpleSBML()
     simple.initialize(SBML)
     result = analyze(simple)
     self.assertGreaterEqual(result.num_reactions, 0)
     self.assertGreaterEqual(result.num_imbalances, 0)
     self.assertTrue('2' in result.report)
     self.assertGreater(result.report.count('\n'), 5)
Beispiel #6
0
 def setUp(self):
     self.simple = SimpleSBML()
     # BIOMD0000000248 - originally for canceling_error
     self.simple.initialize(cn.TEST_FILE_GAMESREPORT1)
     self.mesgraph = GAMES_PP(self.simple)
     self.mesgraph.analyze(error_details=False)
     # Construct SimplifiedReaction
     self.reaction = self.simple.getReaction(CREATINEKINASE)
     self.simplified_reaction = SimplifiedReaction(self.reaction.reactants,
                                                   self.reaction.products,
                                                   self.reaction.label,
                                                   self.mesgraph)
 def testRemoveImplicit(self):
     implicit = "MA"
     path = os.path.join(cn.BIOMODELS_DIR, cn.TEST_FILE13)
     simple = SimpleSBML()
     simple.initialize(path)
     simple = sbmllint.removeImplicit(simple, implicit)
     implicit_reactions = []
     for r in simple.reactions:
         reactants = [reactant.molecule.name for reactant in r.reactants]
         products = [product.molecule.name for product in r.products]
         if (implicit in reactants) or (implicit in products):
             implicit_reactions.append(r.label)
     self.assertTrue(len(implicit_reactions) == 0)
Beispiel #8
0
def prettyPrint(model_reference, file_out=sys.stdout, **kwargs):
    """
  Prints the reactions in a model.
  :param str model_reference: file, xml string, antimony string
  :param dict kwargs: arguments to Reaction.getId
  """
    xml = util.getXML(model_reference)
    reader = libsbml.SBMLReader()
    document = reader.readSBMLFromString(xml)
    util.checkSBMLDocument(document)
    model = document.getModel()
    simple = SimpleSBML()
    simple.initialize(model)
    stgs = []
    for reaction in simple.reactions:
        stg = reaction.getId(**kwargs)
        stgs.append(stg)
        file_out.write("%s\n" % stg)
    return stgs
Beispiel #9
0
 def _init(self):
     Molecule.molecules = []
     self.simple = SimpleSBML()
     self.simple = self.simple.initialize(cn.TEST_FILE)
Beispiel #10
0
def lint(model_reference=None,
         file_out=sys.stdout,
         mass_balance_check=GAMES,
         config_fid=None,
         is_report=True,
         implicit_games=False):
    """
  Reports on errors found in a model
  :param str model_reference: 
      libsbml_model file in
      file, antimony string, xml string
  :param TextIOWrapper model_fid: fid for an XML file
  :param TextIOWrapper file_out:
  :param str mass_balance_check: how check for mass balance
  :param TextIOWrapper config_fid: readable stream
  :param bool is_report: print result
  :return MoietyComparatorResult/null/None:
  """
    config.setConfiguration(fid=config_fid)
    config_dct = config.getConfiguration()
    if util.isSBMLModel(model_reference):
        model = model_reference
    else:
        xml = util.getXML(model_reference)
        reader = libsbml.SBMLReader()
        document = reader.readSBMLFromString(xml)
        util.checkSBMLDocument(document)
        model = document.getModel()
    #
    simple = SimpleSBML()
    simple.initialize(model)
    if mass_balance_check == cn.MOIETY_ANALYSIS:
        result = MoietyComparator.analyzeReactions(simple)
        if is_report:
            for line in result.report.split('\n'):
                file_out.write("%s\n" % line)
        return result
    elif mass_balance_check == GAMES:
        if implicit_games:
            for ignored in config_dct[cn.CFG_IGNORED_MOLECULES]:
                simple = removeIgnored(simple, ignored)
        m = GAMES_PP(simple)
        games_result = m.analyze(simple.reactions)
        if games_result and is_report:
            gr = GAMESReport(
                m, explain_threshold=config_dct[cn.CFG_GAMES_THRESHOLD])
            errortype_dic = {
                TYPE_I: gr.reportTypeOneError,
                TYPE_II: gr.reportTypeTwoError,
                TYPE_III: gr.reportTypeThreeError,
                CANCELING: gr.reportCancelingError,
                ECHELON: gr.reportEchelonError
            }
            for errors in m.error_summary:
                for category in errortype_dic.keys():
                    if errors.type == category:
                        func = errortype_dic[category]
                        report, _ = func(errors.errors, explain_details=True)
                        print(report)
        return games_result
    else:
        print("Specified method doesn't exist")
        return None
Beispiel #11
0
 def setUp(self):
     self.simple = SimpleSBML()
     self.simple.initialize(cn.TEST_FILE)