From 5036dfe6ae0c837a16570a34b4edf8aa813728aa Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 9 Oct 2024 15:58:01 -0700 Subject: [PATCH] Add test. --- tests/fixtures/BIOMD0000000010_url.xml | 704 +++++++++++++++++++++++++ tests/sedml/test_sedml_validation.py | 23 + 2 files changed, 727 insertions(+) create mode 100644 tests/fixtures/BIOMD0000000010_url.xml diff --git a/tests/fixtures/BIOMD0000000010_url.xml b/tests/fixtures/BIOMD0000000010_url.xml new file mode 100644 index 00000000..ad4e4c2a --- /dev/null +++ b/tests/fixtures/BIOMD0000000010_url.xml @@ -0,0 +1,704 @@ + + + + + +
Kholodenko2000 - Ultrasensitivity and negative feedback bring oscillations in MAPK cascade
+
+

The combination of ultrasensitivity and negative feedback bring sustained oscillations in the mitogen-activated protein kinase cascades.

+
+
+

This model is described in the article:

+ +
Kholodenko BN
+
Eur. J. Biochem. 2000; 267(6):1583-8
+

Abstract:

+
+

Functional organization of signal transduction into protein phosphorylation cascades, such as the mitogen-activated protein kinase (MAPK) cascades, greatly enhances the sensitivity of cellular targets to external stimuli. The sensitivity increases multiplicatively with the number of cascade levels, so that a tiny change in a stimulus results in a large change in the response, the phenomenon referred to as ultrasensitivity. In a variety of cell types, the MAPK cascades are imbedded in long feedback loops, positive or negative, depending on whether the terminal kinase stimulates or inhibits the activation of the initial level. Here we demonstrate that a negative feedback loop combined with intrinsic ultrasensitivity of the MAPK cascade can bring about sustained oscillations in MAPK phosphorylation. Based on recent kinetic data on the MAPK cascades, we predict that the period of oscillations can range from minutes to hours. The phosphorylation level can vary between the base level and almost 100% of the total protein. The oscillations of the phosphorylation cascades and slow protein diffusion in the cytoplasm can lead to intracellular waves of phospho-proteins.

+
+
+
+

This model is hosted on BioModels Database + and identified by: BIOMD0000000010 + .

+

To cite BioModels Database, please use: BioModels Database: An enhanced, curated and annotated resource for published quantitative kinetic models + .

+
+
+

To the extent possible under law, all copyright and related or neighbouring rights to this encoded model have been dedicated to the public domain worldwide. Please refer to CC0 Public Domain Dedication + for more information.

+
+ +
+ + + + + + + + Sauro + Herbert + + Herbert_Sauro@kgi.edu + + Keck Graduate Institute + + + + + + 2005-02-12T00:18:12Z + + + 2015-06-02T12:04:33Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + V1 + MKKK + + + + + + 1 + + + + + MAPK_PP + Ki + + n + + + + + K1 + MKKK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + V2 + MKKK_P + + + + KK2 + MKKK_P + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + k3 + MKKK_P + MKK + + + + KK3 + MKK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + k4 + MKKK_P + MKK_P + + + + KK4 + MKK_P + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + V5 + MKK_PP + + + + KK5 + MKK_PP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + V6 + MKK_P + + + + KK6 + MKK_P + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + k7 + MKK_PP + MAPK + + + + KK7 + MAPK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + k8 + MKK_PP + MAPK_P + + + + KK8 + MAPK_P + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + V9 + MAPK_PP + + + + KK9 + MAPK_PP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uVol + V10 + MAPK_P + + + + KK10 + MAPK_P + + + + + + + + + + +
+
diff --git a/tests/sedml/test_sedml_validation.py b/tests/sedml/test_sedml_validation.py index 1eef9617..9a3b7892 100644 --- a/tests/sedml/test_sedml_validation.py +++ b/tests/sedml/test_sedml_validation.py @@ -1318,6 +1318,29 @@ def test_validate_target_xpaths(self): with self.assertRaises(ValueError): validation.validate_target_xpaths(variables, model_etree) + def test_validate_target_xpaths_separator(self): + namespaces = {'sbml': 'http://www.sbml.org/sbml/level2/version4'} + + model_source = os.path.join(os.path.dirname(__file__), '..', 'fixtures', 'BIOMD0000000010_url.xml') + model_etree = etree.parse(model_source) + + variables = [ + data_model.Variable(target_namespaces=namespaces, + target="/sbml:sbml/sbml:model/sbml:listOfReactions/sbml:reaction[@id='J0']"), + data_model.Variable(target_namespaces=namespaces, + target="/sbml:sbml/sbml:model/sbml:listOfReactions/sbml:reaction[@id='J0']/sbml:kineticLaw/sbml:listOfParameters/sbml:parameter[@id='n']"), + ] + + + idmap = validation.validate_target_xpaths(variables, model_etree, attr='id', separator="_") + idmap_expect = { + "/sbml:sbml/sbml:model/sbml:listOfReactions/sbml:reaction[@id='J0']": 'J0', + "/sbml:sbml/sbml:model/sbml:listOfReactions/sbml:reaction[@id='J0']/sbml:kineticLaw/sbml:listOfParameters/sbml:parameter[@id='n']": 'J0_n', + } + + self.assertEqual(idmap, idmap_expect) + + def test_validate_target(self): self.assertEqual(validation.validate_target('/sbml:sbml/sbml:model', {'sbml': 'sbml'},