diff --git a/pyvcell/vcml/models.py b/pyvcell/vcml/models.py index 3d358fa..284b050 100644 --- a/pyvcell/vcml/models.py +++ b/pyvcell/vcml/models.py @@ -162,8 +162,8 @@ def add_species(self, name: str, compartment: str | Compartment) -> Species: self.species.append(species) return species - def add_model_parameter(self, name: str, value: float | str) -> ModelParameter: - model_parameter = ModelParameter(name=name, value=value, role="model_parameter", unit="") + def add_model_parameter(self, name: str, value: float | str, role: str = "user defined") -> ModelParameter: + model_parameter = ModelParameter(name=name, value=value, role=role, unit="") self.model_parameters.append(model_parameter) return model_parameter diff --git a/pyvcell/vcml/models_app.py b/pyvcell/vcml/models_app.py index c67be11..6c834b2 100644 --- a/pyvcell/vcml/models_app.py +++ b/pyvcell/vcml/models_app.py @@ -56,6 +56,9 @@ class SpeciesMapping(VcmlNode): init_conc: float | str | None = None init_count: float | str | None = None diff_coef: float | str | None = None + velocity_x: float | str | None = None + velocity_y: float | str | None = None + velocity_z: float | str | None = None boundary_values: list[float | str | None] = Field(default_factory=list) @property @@ -67,6 +70,9 @@ def expressions(self) -> list[str]: exps.append(self.init_count) if isinstance(self.diff_coef, str): exps.append(self.diff_coef) + for velocity in (self.velocity_x, self.velocity_y, self.velocity_z): + if isinstance(velocity, str): + exps.append(velocity) if self.boundary_values: for value in self.boundary_values: if isinstance(value, str): diff --git a/pyvcell/vcml/vcml_reader.py b/pyvcell/vcml/vcml_reader.py index 77f0f25..adf903f 100644 --- a/pyvcell/vcml/vcml_reader.py +++ b/pyvcell/vcml/vcml_reader.py @@ -70,10 +70,10 @@ def print_biomodel(cls, xml_string: str) -> None: class XMLVisitor: def visit(self, element: _Element, node: vc.VcmlNode) -> None: method_name = "visit_" + strip_namespace(element.tag) - method = getattr(self, method_name, self.generic_visit) + method = getattr(self, method_name, self.generic_visit_children) method(element=element, node=node) - def generic_visit(self, element: _Element, node: vc.VcmlNode) -> None: + def generic_visit_children(self, element: _Element, node: vc.VcmlNode) -> None: for child in element: # Best-effort parse: an unmodeled or malformed physiology subtree should # cost us that subtree, not abort the whole document (and in particular not @@ -93,7 +93,7 @@ def __init__(self, document: vc.VCMLDocument) -> None: def visit_BioModel(self, element: _Element, node: vc.VCMLDocument) -> None: name = element.get("Name", default="unnamed") node.biomodel = vc.Biomodel(name=name, version=self._parse_version(element)) - self.generic_visit(element, node.biomodel) + self.generic_visit_children(element, node.biomodel) def _parse_version(self, element: _Element) -> vc.Version | None: """Extract a Version child element, if present.""" @@ -118,21 +118,21 @@ def _parse_version(self, element: _Element) -> vc.Version | None: def visit_Model(self, element: _Element, node: vc.Biomodel) -> None: name: str = element.get("Name", default="unnamed") node.model = vc.Model(name=name) - self.generic_visit(element, node.model) + self.generic_visit_children(element, node.model) def visit_SimpleReaction(self, element: _Element, node: vc.Model) -> None: name: str = element.get("Name", default="unnamed") compartment_name: str = element.get("Structure", default="unknown") reaction = vc.Reaction(name=name, is_flux=False, compartment_name=compartment_name) node.reactions.append(reaction) - self.generic_visit(element, reaction) + self.generic_visit_children(element, reaction) def visit_FluxStep(self, element: _Element, node: vc.Model) -> None: name: str = element.get("Name", default="unnamed") compartment_name: str = element.get("Structure", default="unknown") reaction = vc.Reaction(name=name, is_flux=True, compartment_name=compartment_name) node.reactions.append(reaction) - self.generic_visit(element, reaction) + self.generic_visit_children(element, reaction) def visit_Reactant(self, element: _Element, node: vc.Reaction) -> None: compound_ref: str = element.get("LocalizedCompoundRef", default="unknown") @@ -141,7 +141,7 @@ def visit_Reactant(self, element: _Element, node: vc.Reaction) -> None: name=compound_ref, stoichiometry=stoichiometry, species_ref_type=vc.SpeciesRefType.reactant ) node.reactants.append(reaction) - self.generic_visit(element, reaction) + self.generic_visit_children(element, reaction) def visit_Product(self, element: _Element, node: vc.Reaction) -> None: compound_ref: str = element.get("LocalizedCompoundRef", default="unknown") @@ -150,7 +150,7 @@ def visit_Product(self, element: _Element, node: vc.Reaction) -> None: name=compound_ref, stoichiometry=stoichiometry, species_ref_type=vc.SpeciesRefType.product ) node.products.append(reaction) - self.generic_visit(element, reaction) + self.generic_visit_children(element, reaction) def visit_Kinetics(self, element: _Element, node: vc.VcmlNode) -> None: # Only attach kinetics to an actual reaction. A reached with a @@ -160,7 +160,7 @@ def visit_Kinetics(self, element: _Element, node: vc.VcmlNode) -> None: kinetics_type: str = element.get("KineticsType", default="GeneralKinetics") kinetics = vc.Kinetics(kinetics_type=kinetics_type) node.kinetics = kinetics - self.generic_visit(element, kinetics) + self.generic_visit_children(element, kinetics) def visit_Feature(self, element: _Element, node: vc.Model) -> None: name = element.get("Name", default="unnamed") @@ -209,7 +209,7 @@ def visit_Parameter(self, element: _Element, node: vc.VcmlNode) -> None: # A in a context the data model doesn't represent (rate rules, # structure/species-context mappings, electrical params, …) — skip it. return - self.generic_visit(element, parameter) + self.generic_visit_children(element, parameter) def visit_SimulationSpec(self, element: _Element, node: vc.Biomodel) -> None: name: str = element.get("Name", default="unnamed") @@ -217,7 +217,7 @@ def visit_SimulationSpec(self, element: _Element, node: vc.Biomodel) -> None: default_geometry = vcg.Geometry(name="default", dim=3) application = vc.Application(name=name, stochastic=stochastic, geometry=default_geometry) node.applications.append(application) - self.generic_visit(element, application) + self.generic_visit_children(element, application) def visit_Simulation(self, element: _Element, node: vc.Application) -> None: name: str = element.get("Name", default="unnamed") @@ -468,7 +468,7 @@ def visit_Geometry(self, element: _Element, node: vc.Application) -> None: dim = int(element.get("Dimension", default="0")) geometry = vcg.Geometry(name=name, dim=dim) node.geometry = geometry - self.generic_visit(element, geometry) + self.generic_visit_children(element, geometry) def visit_Extent(self, element: _Element, node: vcg.Geometry) -> None: X = float(element.get("X", default="1")) @@ -529,7 +529,7 @@ def visit_SubVolume(self, element: _Element, node: vcg.Geometry) -> None: name=name, handle=handle, subvolume_type=subvolume_type, image_pixel_value=image_pixel_value ) node.subvolumes.append(subvolume) - self.generic_visit(element, subvolume) + self.generic_visit_children(element, subvolume) def visit_AnalyticExpression(self, element: _Element, node: vcg.SubVolume) -> None: expr: str | None = element.text @@ -554,7 +554,7 @@ def visit_FeatureMapping(self, element: _Element, node: vc.Application) -> None: size_exp=size_exp, ) node.compartment_mappings.append(mapping) - self.generic_visit(element, mapping) + self.generic_visit_children(element, mapping) def visit_MembraneMapping(self, element: _Element, node: vc.Application) -> None: compartment_name: str = element.get("Membrane", default="unknown") @@ -568,7 +568,7 @@ def visit_MembraneMapping(self, element: _Element, node: vc.Application) -> None size_exp=size, ) node.compartment_mappings.append(mapping) - self.generic_visit(element, mapping) + self.generic_visit_children(element, mapping) def visit_BoundariesTypes(self, element: _Element, node: vc.CompartmentMapping) -> None: switch = {"Flux": vc.BoundaryType.flux, "Value": vc.BoundaryType.value} @@ -584,7 +584,7 @@ def visit_LocalizedCompoundSpec(self, element: _Element, node: vc.Application) - species_name: str = element.get("LocalizedCompoundRef", default="unnamed") species_mapping = vc.SpeciesMapping(species_name=species_name) node.species_mappings.append(species_mapping) - self.generic_visit(element, species_mapping) + self.generic_visit_children(element, species_mapping) def visit_InitialConcentration(self, element: _Element, node: vc.SpeciesMapping) -> None: text: str = element.text or "0" @@ -620,12 +620,19 @@ def visit_Diffusion(self, element: _Element, node: vc.SpeciesMapping) -> None: value: str | float = float_or_formula(text) node.diff_coef = value + def visit_Velocity(self, element: _Element, node: vc.SpeciesMapping) -> None: + parent = element.getparent() + if parent is None or strip_namespace(parent.tag) != "LocalizedCompoundSpec": + return + values: list[float | str] = [float_or_formula(element.get(dim, default="0.0")) for dim in ["X", "Y", "Z"]] + node.velocity_x, node.velocity_y, node.velocity_z = tuple(values) + class PrintVisitor(XMLVisitor): def visit_root(self, element: _Element, node: vc.VcmlNode) -> None: print(f"Visiting root: {element.tag}") - self.generic_visit(element, node) + self.generic_visit_children(element, node) def visit_child(self, element: _Element, node: vc.VcmlNode) -> None: print(f"Visiting child: {element.tag}") - self.generic_visit(element, node) + self.generic_visit_children(element, node) diff --git a/pyvcell/vcml/vcml_writer.py b/pyvcell/vcml/vcml_writer.py index 392430f..70bc89f 100644 --- a/pyvcell/vcml/vcml_writer.py +++ b/pyvcell/vcml/vcml_writer.py @@ -381,6 +381,21 @@ def write_species_mapping(self, mapping: SpeciesMapping, parent: _Element) -> No parent.append(boundaries_element) elif boundary_value_count > 0: raise ValueError(f"SpeciesMapping {mapping.species_name} has {boundary_value_count} boundary values") + if mapping.velocity_x is not None or mapping.velocity_y is not None or mapping.velocity_z is not None: + velocity_element = Element("Velocity") + if mapping.velocity_x is not None: + str_val_x = str(mapping.velocity_x) + if str_val_x != "0.0": + velocity_element.set("X", str_val_x) + if mapping.velocity_y is not None: + str_val_y = str(mapping.velocity_y) + if str_val_y != "0.0": + velocity_element.set("Y", str_val_y) + if mapping.velocity_z is not None: + str_val_z = str(mapping.velocity_z) + if str_val_z != "0.0": + velocity_element.set("Z", str_val_z) + parent.append(velocity_element) @staticmethod def _append_text_element(parent: _Element, tag: str, text: str | None) -> None: diff --git a/tests/conftest.py b/tests/conftest.py index 896fffe..4ba4c4e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -15,6 +15,8 @@ sbml_spatial_bunny_3d_path, sbml_spatial_model_1d_path, sbml_spatial_model_3d_path, + vcml_sasco_model_path, + vcml_sasco_model_with_velocity_path, ) from tests.fixtures.vcell_model_fixtures import ( # noqa: F401 vcml_field_data_demo_arrays, diff --git a/tests/fixtures/data/SASCO_09_16_25_CPC_mrm_v2.vcml b/tests/fixtures/data/SASCO_09_16_25_CPC_mrm_v2.vcml new file mode 100644 index 0000000..f6513e4 --- /dev/null +++ b/tests/fixtures/data/SASCO_09_16_25_CPC_mrm_v2.vcml @@ -0,0 +1,2344 @@ + + + + + cloned from '09_16_25 CPC_metacentric_relaxed_model_v2' owned by user smgroves +cloned from '09_16_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '06_21_25 CPC_metacentric_relaxed_model' owned by user 234.rosee +cloned from '02_24_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '10_16_23_CPC_relaxed_RefModel_128x64' owned by user smgroves +cloned from '08_21_23_CPC_relaxed_RefModel_Mps1_phos_Plk1a transactiv' owned by user aca9pw +cloned from 'sam_07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.01um' owned by user sampresman +cloned from '07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um_dslow' owned by user aca9pw +cloned from 'sam_07_17_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um' owned by user sampresman +cloned from '06_14_23_CPC_model_relaxed_IX_kpps' owned by user aca9pw + + cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user 234.rosee +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw + + 0.1 + 10.40495996 + 0.0 + 10.0 + 18.40322379 + (cell_vol / (chr_number * chrH * chrW * vcell_depth)) + 0.1 + 1.04 + 8.39 + ((chrH * 0.5) - (kinH * 0.5)) + 3.2 + 1.6 + 0.3 + 0.075 + 340.0 + ((chrH * 0.5) + (kinH * 0.5)) + (x_mid - (KK_disSim / 2.0)) + (chrW / 2.0) + 0.6 + (x_mid + (KK_disSim / 2.0)) + (x_mid - (KK_disSim / 2.0) - kinW) + (x_mid + (KK_disSim / 2.0) + kinW) + (KK_disRef / KK_disSim) + (Dapp * alpha * ((t + t_step) ^ (alpha - 1.0))) + 0.2 + 3.2 + 0.6 + 0.2 + 0.1 + 12.0 + 234.983 + 6.714 + 0.1028 + 4.52 + 7.29E-6 + (1.0 - Plk1a_frac) + 2.103 + 469.965 + 8.7 + 10.0 + 0.2 + 5.0E-5 + 1.5833 + 54.0 + 0.1 + (1.0 - Mps1a_frac) + 0.0528 + 1.0 + 1.0 + 5479.0 + 46.0 + 1.0 + 12.0 + 79.0 + 4.597 + 0.1028 + 1.0 + 0.295 + 10.0 + 0.5 + 0.001 + 10.4 + (((Km_app * kbind) - kcatH2A) / kbind) + 1.71 + 0.5 + 0.0 + (1.0 - I_arms) + (1.0 - I_cent) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ((Vmax * Haspini) / (Km + Haspini)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + ((Kf * Haspina) - (Kr * Haspini)) + kpp + 0.0 + + + + + + + + ((Vmax * H3) / (Km + H3)) + 4.728 + (kcat * Haspina) + 0.467 + + + + + + + ((Kf * pH3) - (Kr * H3)) + kpp + 0.0 + + + + + + + + (((Kf * pKnl1) * Bub1a) - (Kr * pKnl1_Bub1a)) + kbind + 0.0 + + + + + + + + + + + ((Vmax * H2A) / (Km + H2A)) + (Km_app * (1.0 + (I / ki))) + (kcat * (Bub1a + Bub1a_his + pKnl1_Bub1a)) + kcatH2A + + + + + + + ((Kf * pH2A) - (Kr * H2A)) + kpp + 0.0 + + + + + + + + ((Kf * pKnl1_Bub1a) - ((Kr * pKnl1) * Bub1a_his)) + (kbind * Kd) + 0.0 + 34.8 + + + + + + + ((Kf * Bub1a_his) - (Kr * Bub1a)) + (kbind * Kd) + 0.0 + 1.0 + + + + + + + + (((Kf * pH2A) * Sgo1) - (Kr * pH2A_Sgo1)) + kbind + (Kf * KdpH2ASgo1) + + + + + + + + (((Kf * pH3) * CPCi) - (Kr * pH3_CPCi)) + kbind + (Kf * KdpH3) + + + + + + + + (((Kf * pH2A_Sgo1) * CPCi) - (Kr * pH2A_Sgo1_CPCi)) + kbind + (Kf * KdSgo1) + + + + + + + ((Kf * CPCi) - (Kr * CPCa)) + kcisCPC + kpp + + + + + + + ((Kf * pH3_CPCi) - (Kr * pH3_CPCa)) + kcisCPC + kpp + + + + + + + ((Kf * pH2A_Sgo1_CPCi) - (Kr * pH2A_Sgo1_CPCa)) + kcisCPC + kpp + + + + + + + + + + + ((Vmax * CPCi) / (Km + CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + + + + ((Vmax * pH3_CPCi) / (Km + pH3_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + + + + ((Vmax * pH2A_Sgo1_CPCi) / (Km + pH2A_Sgo1_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * pH3) * CPCa) - (Kr * pH3_CPCa)) + kbind + (Kf * KdpH3) + + + + + + + + (((Kf * pH2A_Sgo1) * CPCa) - (Kr * pH2A_Sgo1_CPCa)) + kbind + (Kf * KdSgo1) + + + + + + + + + + + + ((Vmax * Plk1i) / (Km + Plk1i)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * Plk1a) - (Kr * Plk1i)) + kpp + 0.0 + + + + + + + + + + + + ((Vmax * Mps1i) / (Km + Mps1i)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * pMps1i) - (Kr * Mps1i)) + kpp + 0.0 + + + + + + + + + + + + ((Vmax * Mps1a) / (Km + Mps1a)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * pMps1a) - (Kr * Mps1a)) + kpp + 0.0 + + + + + + + + + + + + ((Vmax * Ndc80) / (Km + Ndc80)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * pNdc80) - (Kr * Ndc80)) + kppKT + 0.0 + + + + + + + + (((Kf * Ndc80) * Mps1i) - (Kr * Ndc80_Mps1i)) + kbind + (Kf * KdpNdc80Mps1 * phiNdc80) + + + + + + + + (((Kf * Ndc80) * pMps1i) - (Kr * Ndc80_pMps1i)) + kbind + (Kf * KdpNdc80pMps1 * phiNdc80) + + + + + + + + (((Kf * pNdc80) * Mps1i) - (Kr * pNdc80_Mps1i)) + kbind + (Kf * KdpNdc80Mps1) + + + + + + + + (((Kf * pMps1i) * pNdc80) - (Kr * pNdc80_pMps1i)) + kbind + (Kf * KdpNdc80pMps1) + + + + + + + + (((Kf * Ndc80) * Mps1a) - (Kr * Ndc80_Mps1a)) + kbind + (Kf * KdpNdc80Mps1 * phiNdc80) + + + + + + + + (((Kf * Ndc80) * pMps1a) - (Kr * Ndc80_pMps1a)) + kbind + (Kf * KdpNdc80pMps1 * phiNdc80) + + + + + + + + (((Kf * pNdc80) * Mps1a) - (Kr * pNdc80_Mps1a)) + kbind + (Kf * KdpNdc80Mps1) + + + + + + + + (((Kf * pNdc80) * pMps1a) - (Kr * pNdc80_pMps1a)) + kbind + (Kf * KdpNdc80pMps1) + + + + + + + ((Kf * Ndc80_Mps1i) - (Kr * Ndc80_Mps1a)) + kcisMps1 + kppKT + + + + + + + ((Kf * pNdc80_Mps1i) - (Kr * pNdc80_Mps1a)) + kcisMps1 + kppKT + + + + + + + ((Kf * pNdc80_pMps1i) - (Kr * pNdc80_pMps1a)) + kcisMps1 + kppKT + + + + + + + ((Kf * pNdc80_pMps1i) - (Kr * pNdc80_pMps1a)) + kcisMps1 + kppKT + + + + + + + + + + + + ((Vmax * Ndc80_Mps1i) / (Km + Ndc80_Mps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * pNdc80_Mps1i) / (Km + pNdc80_Mps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * Ndc80_pMps1i) / (Km + Ndc80_pMps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * pNdc80_pMps1i) / (Km + pNdc80_pMps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + + ((Vmax * Knl1) / (Km + Knl1)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + ((Kf * pKnl1) - (Kr * Knl1)) + kppKT + 0.0 + + + + + + ((kpp * (Mps1_ic * Mps1a_frac)) * input) + + + + + + ((kpp * (Plk1_ic * Plk1a_frac)) * input) + + + + + + + ((Kf * Mps1i) - (Kr * Mps1a)) + kcisMps1 + kpp + + + + + + + ((Kf * pMps1i) - (Kr * pMps1a)) + kcisMps1 + kpp + + + + + + ((kpp * (Mps1_ic * Mps1a_frac)) * output) + + + + + + ((kpp * (Plk1_ic * Plk1a_frac)) * output) + + + + + + + + ((Vmax * Mps1i) / (Km + Mps1i)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + + ((Vmax * Mps1a) / (Km + Mps1a)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + + + + + + ((Vmax * Mps1i) / (Km + Mps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * pMps1i) / (Km + pMps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + ((Vmax * Knl1) / (Km + Knl1)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + + + + + + ((Vmax * Haspini) / (Km + Haspini)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * Sgo1) * CPCi) - (Kr * Sgo1_CPCi)) + kbind + (Kf * KdSgo1) + + + + + + + + (((Kf * Sgo1_CPCi) * pH2A) - (Kr * pH2A_Sgo1_CPCi)) + kbind + (Kf * KdpH2ASgo1) + + + + + + + + (((Kf * Sgo1) * CPCa) - (Kr * Sgo1_CPCa)) + kbind + (Kf * KdSgo1) + + + + + + + + (((Kf * pH2A) * Sgo1_CPCa) - (Kr * pH2A_Sgo1_CPCa)) + kbind + (Kf * KdpH2ASgo1) + + + + + + + ((Kf * Sgo1_CPCi) - (Kr * Sgo1_CPCa)) + kcisCPC + kpp + + + + + + + + + + + ((Vmax * Sgo1_CPCi) / (Km + Sgo1_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * H3) * CPCi) - (Kr * H3_CPCi)) + kbind + (Kf * KdH3) + + + + + + + ((Kf * H3_CPCi) - (Kr * H3_CPCa)) + kcisCPC + kpp + + + + + + + + + + + ((Vmax * H3_CPCi) / (Km + H3_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * H3) * CPCa) - (Kr * H3_CPCa)) + kbind + (Kf * KdH3) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user 234.rosee +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw + + + + + + cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user 234.rosee +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +owned by user aca9pw + + cloned from 'Geometry2132992264' owned by user smgroves +cloned from 'Geometry636149887' owned by user aca9pw +cloned from 'Geometry1651191746' owned by user 234.rosee +cloned from 'Geometry1651191746' owned by user aca9pw +cloned from 'Geometry1424762834' owned by user smgroves +cloned from 'Geometry1424762834' owned by user aca9pw +cloned from 'Geometry1044563560' owned by user sampresman +cloned from 'Geometry1044563560' owned by user aca9pw +cloned from 'Geometry1471370315' owned by user sampresman +cloned from 'Geometry3' owned by user aca9pw + + + + (((x >= 0.0) && (x <= 0.425) && (y >= 1.45) && (y <= 1.75)) || ((x >= 1.175) && (x <= 1.6) && (y >= 1.45) && (y <= 1.75))) + + + 1.0 + + + + + + + + + + + + + cloned from 'Geometry2132992264' owned by user smgroves +cloned from 'Geometry636149887' owned by user aca9pw +cloned from 'Geometry1651191746' owned by user 234.rosee +cloned from 'Geometry1651191746' owned by user aca9pw +cloned from 'Geometry1424762834' owned by user smgroves +cloned from 'Geometry1424762834' owned by user aca9pw +cloned from 'Geometry1044563560' owned by user sampresman +cloned from 'Geometry1044563560' owned by user aca9pw +cloned from 'Geometry1471370315' owned by user sampresman +cloned from 'Geometry3' owned by user aca9pw + + + + + + + + + + + + + (Haspini_ic * (((x_mid - (HasW / 2.0)) < x) && (x < (x_mid + (HasW / 2.0))))) + Dimmob + + + 0.0 + Dimmob + + + (Plk1_ic * Plk1a_frac) + Dcyt + + + ((Histone_ic * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj) * ((y >= kin_y1) && (y <= kin_y2)))) + Dslow + + + 0.0 + Dslow + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + Bub1_ic + Dcyt + + + ((Histone_ic * Havail_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj * Havail_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + Dslow + + + 0.0 + Dslow + + + 0.0 + Dapp + + + Sgo1_ic + Dcyt + + + 0.0 + Dslow + + + CPCi_ic + Dcyt + + + 0.0 + Dslow + + + 0.0 + Dslow + + + 0.0 + Dcyt + + + 0.0 + Dslow + + + 0.0 + Dslow + + + (Plk1_ic * Plk1i_frac) + Dcyt + + + (Mps1_ic * Mps1i_frac) + Dcyt + + + 0.0 + Dcyt + + + (Mps1_ic * Mps1a_frac) + Dcyt + + + 0.0 + Dcyt + + + (Ndc80_availability * Ndc80_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + (Knl1_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + Dimmob + + + 0.0 + Dcyt + + + 0.0 + Dcyt + + + 0.0 + Dslow + + + 0.0 + Dslow + + + ((Histone_ic * I_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * I_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + Dimmob + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user 234.rosee +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw + 96485.3321 + 9.64853321E-5 + 1.0E-9 + 6.02214179E11 + 3.141592653589793 + 8314.46261815 + 300.0 + 0.5 + 1.0 + 1.0 + 1.0 + 1.0 + 4.597 + 0.0 + 5479.0 + 46.0 + 3.2 + 1.6 + 0.0 + 4.52 + 0.001 + 10.0 + 0.0 + 0.0 + 0.0 + 3.2 + 0.0 + 10.40495996 + 0.2 + 340.0 + 0.5 + 0.0 + 1.0 + 1000.0 + 0.2 + 0.467 + 1.04 + 1.71 + 1.5833 + 12.0 + 7.29E-6 + 5.0E-5 + 1.0 + 34.8 + 0.295 + 0.1028 + 0.1028 + 8.7 + 0.2 + 0.0528 + 0.3 + 0.075 + 0.6 + 0.6 + 10.4 + 4.728 + 8.39 + 54.0 + 0.001660538783162726 + 79.0 + 234.983 + 0.1 + 0.1 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 12.0 + 2.103 + 0.1 + 1.0 + 469.965 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 10.0 + 0.0 + 0.0 + 18.40322379 + 0.1 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 6.714 + 10.0 + 1.0 + 1.0 + 1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dcyt + Dapp + Bub1_ic + Dcyt + Dcyt + CPCi_ic + (Dapp * alpha * ((t + t_step) ^ (alpha - 1.0))) + Dslow + ((Histone_ic * Havail_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj * Havail_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + Dslow + Dslow + Dslow + ((Histone_ic * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj) * ((y >= kin_y1) && (y <= kin_y2)))) + Dimmob + Dimmob + (Haspini_ic * (((x_mid - (HasW / 2.0)) < x) && (x < (x_mid + (HasW / 2.0))))) + (1.0 - I_arms) + (1.0 - I_cent) + (KK_disRef / KK_disSim) + Dimmob + ((Histone_ic * I_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * I_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + ((Kf_Bub1a_his_release * Bub1a_his) - (Kr_Bub1a_his_release * Bub1a)) + ((Kf_CPC_cis_activation * CPCi) - (Kr_CPC_cis_activation * CPCa)) + ((Vmax_CPC_trans_activation_panCPCa * CPCi) / (Km_CPC_trans_activation_panCPCa + CPCi)) + ((Vmax_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a * H2A) / (Km_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a + H2A)) + ((Kf_H3_CPC_cis_activation * H3_CPCi) - (Kr_H3_CPC_cis_activation * H3_CPCa)) + ((Vmax_H3_CPC_trans_activation_panCPCa * H3_CPCi) / (Km_H3_CPC_trans_activation_panCPCa + H3_CPCi)) + (((Kf_H3_CPCa_binding * H3) * CPCa) - (Kr_H3_CPCa_binding * H3_CPCa)) + (((Kf_H3_CPCi_binding * H3) * CPCi) - (Kr_H3_CPCi_binding * H3_CPCi)) + ((Vmax_H3_phos_Haspina * H3) / (Km_H3_phos_Haspina + H3)) + ((Vmax_Haspin_activation_panCPCa * Haspini) / (Km_Haspin_activation_panCPCa + Haspini)) + ((Vmax_Haspin_activation_Plk1a * Haspini) / (Km_Haspin_activation_Plk1a + Haspini)) + ((Kf_Haspin_deactivation * Haspina) - (Kr_Haspin_deactivation * Haspini)) + ((Kf_Knl1_dephosp * pKnl1) - (Kr_Knl1_dephosp * Knl1)) + ((Vmax_Knl1_phos_panMps1a * Knl1) / (Km_Knl1_phos_panMps1a + Knl1)) + ((Vmax_Knl1_phos_Plk1a * Knl1) / (Km_Knl1_phos_Plk1a + Knl1)) + ((kpp * (Mps1_ic * Mps1a_frac)) * input) + ((Vmax_Mps1a_phos_panCPCa * Mps1a) / (Km_Mps1a_phos_panCPCa + Mps1a)) + ((Vmax_Mps1a_phos_Plk1a * Mps1a) / (Km_Mps1a_phos_Plk1a + Mps1a)) + ((Kf_Mps1i_cis_activation * Mps1i) - (Kr_Mps1i_cis_activation * Mps1a)) + ((kpp * (Mps1_ic * Mps1a_frac)) * output) + ((Vmax_Mps1i_phos_panCPCa * Mps1i) / (Km_Mps1i_phos_panCPCa + Mps1i)) + ((Vmax_Mps1i_phos_Plk1a * Mps1i) / (Km_Mps1i_phos_Plk1a + Mps1i)) + ((Vmax_Mps1i_trans_activation * Mps1i) / (Km_Mps1i_trans_activation + Mps1i)) + ((Kf_Ndc80_Mps1_cis_activation * Ndc80_Mps1i) - (Kr_Ndc80_Mps1_cis_activation * Ndc80_Mps1a)) + ((Vmax_Ndc80_Mps1_trans_activation * Ndc80_Mps1i) / (Km_Ndc80_Mps1_trans_activation + Ndc80_Mps1i)) + (((Kf_Ndc80_Mps1a_binding * Ndc80) * Mps1a) - (Kr_Ndc80_Mps1a_binding * Ndc80_Mps1a)) + (((Kf_Ndc80_Mps1i_binding * Ndc80) * Mps1i) - (Kr_Ndc80_Mps1i_binding * Ndc80_Mps1i)) + ((Vmax_Ndc80_phos_panCPCa * Ndc80) / (Km_Ndc80_phos_panCPCa + Ndc80)) + ((Kf_Ndc80_pMps1_cis_activation * pNdc80_pMps1i) - (Kr_Ndc80_pMps1_cis_activation * pNdc80_pMps1a)) + ((Vmax_Ndc80_pMps1_trans_activation * Ndc80_pMps1i) / (Km_Ndc80_pMps1_trans_activation + Ndc80_pMps1i)) + (((Kf_Ndc80_pMps1a_binding * Ndc80) * pMps1a) - (Kr_Ndc80_pMps1a_binding * Ndc80_pMps1a)) + (((Kf_Ndc80_pMps1i_binding * Ndc80) * pMps1i) - (Kr_Ndc80_pMps1i_binding * Ndc80_pMps1i)) + ((Kf_pH2A_dephos * pH2A) - (Kr_pH2A_dephos * H2A)) + (((Kf_pH2A_Sgo1_binding * pH2A) * Sgo1) - (Kr_pH2A_Sgo1_binding * pH2A_Sgo1)) + ((Kf_pH2A_Sgo1_CPC_cis_activation * pH2A_Sgo1_CPCi) - (Kr_pH2A_Sgo1_CPC_cis_activation * pH2A_Sgo1_CPCa)) + ((Vmax_pH2A_Sgo1_CPC_trans_activation_panCPCa * pH2A_Sgo1_CPCi) / (Km_pH2A_Sgo1_CPC_trans_activation_panCPCa + pH2A_Sgo1_CPCi)) + (((Kf_pH2A_Sgo1_CPCa_binding * pH2A) * Sgo1_CPCa) - (Kr_pH2A_Sgo1_CPCa_binding * pH2A_Sgo1_CPCa)) + (((Kf_pH2A_Sgo1_CPCa_binding_original * pH2A_Sgo1) * CPCa) - (Kr_pH2A_Sgo1_CPCa_binding_original * pH2A_Sgo1_CPCa)) + (((Kf_pH2A_Sgo1_CPCi_binding * Sgo1_CPCi) * pH2A) - (Kr_pH2A_Sgo1_CPCi_binding * pH2A_Sgo1_CPCi)) + (((Kf_pH2A_Sgo1_CPCi_binding_original * pH2A_Sgo1) * CPCi) - (Kr_pH2A_Sgo1_CPCi_binding_original * pH2A_Sgo1_CPCi)) + ((Kf_pH3_CPC_cis_activation * pH3_CPCi) - (Kr_pH3_CPC_cis_activation * pH3_CPCa)) + ((Vmax_pH3_CPC_trans_activation_panCPCa * pH3_CPCi) / (Km_pH3_CPC_trans_activation_panCPCa + pH3_CPCi)) + (((Kf_pH3_CPCa_binding * pH3) * CPCa) - (Kr_pH3_CPCa_binding * pH3_CPCa)) + (((Kf_pH3_CPCi_binding * pH3) * CPCi) - (Kr_pH3_CPCi_binding * pH3_CPCi)) + ((Kf_pH3_dephos * pH3) - (Kr_pH3_dephos * H3)) + (((Kf_pKnl1_Bub1a_binding * pKnl1) * Bub1a) - (Kr_pKnl1_Bub1a_binding * pKnl1_Bub1a)) + ((Kf_pKnl1_Bub1a_unbinding * pKnl1_Bub1a) - ((Kr_pKnl1_Bub1a_unbinding * pKnl1) * Bub1a_his)) + ((Vmax_Plk1_activation_panCPCa * Plk1i) / (Km_Plk1_activation_panCPCa + Plk1i)) + ((Kf_Plk1_deactivation * Plk1a) - (Kr_Plk1_deactivation * Plk1i)) + ((kpp * (Plk1_ic * Plk1a_frac)) * input) + ((kpp * (Plk1_ic * Plk1a_frac)) * output) + ((Kf_pMps1_cis_activation * pMps1i) - (Kr_pMps1_cis_activation * pMps1a)) + ((Kf_pMps1a_dephos * pMps1a) - (Kr_pMps1a_dephos * Mps1a)) + ((Kf_pMps1i_dephos * pMps1i) - (Kr_pMps1i_dephos * Mps1i)) + ((Vmax_pMps1i_trans_activation * pMps1i) / (Km_pMps1i_trans_activation + pMps1i)) + ((Kf_pNdc80_dephos * pNdc80) - (Kr_pNdc80_dephos * Ndc80)) + ((Kf_pNdc80_Mps1_cis_activation * pNdc80_Mps1i) - (Kr_pNdc80_Mps1_cis_activation * pNdc80_Mps1a)) + ((Vmax_pNdc80_Mps1_trans_activation * pNdc80_Mps1i) / (Km_pNdc80_Mps1_trans_activation + pNdc80_Mps1i)) + (((Kf_pNdc80_Mps1a_binding * pNdc80) * Mps1a) - (Kr_pNdc80_Mps1a_binding * pNdc80_Mps1a)) + (((Kf_pNdc80_Mps1i_binding * pNdc80) * Mps1i) - (Kr_pNdc80_Mps1i_binding * pNdc80_Mps1i)) + ((Kf_pNdc80_pMps1_cis_activation * pNdc80_pMps1i) - (Kr_pNdc80_pMps1_cis_activation * pNdc80_pMps1a)) + ((Vmax_pNdc80_pMps1_trans_activation * pNdc80_pMps1i) / (Km_pNdc80_pMps1_trans_activation + pNdc80_pMps1i)) + (((Kf_pNdc80_pMps1a_binding * pNdc80) * pMps1a) - (Kr_pNdc80_pMps1a_binding * pNdc80_pMps1a)) + (((Kf_pNdc80_pMps1i_binding * pMps1i) * pNdc80) - (Kr_pNdc80_pMps1i_binding * pNdc80_pMps1i)) + ((Kf_Sgo1_CPC_cis_activation * Sgo1_CPCi) - (Kr_Sgo1_CPC_cis_activation * Sgo1_CPCa)) + ((Vmax_Sgo1_CPC_trans_activation_panCPCa * Sgo1_CPCi) / (Km_Sgo1_CPC_trans_activation_panCPCa + Sgo1_CPCi)) + (((Kf_Sgo1_CPCa_binding * Sgo1) * CPCa) - (Kr_Sgo1_CPCa_binding * Sgo1_CPCa)) + (((Kf_Sgo1_CPCi_binding * Sgo1) * CPCi) - (Kr_Sgo1_CPCi_binding * Sgo1_CPCi)) + kcatH2A + (kbind * Kd_Bub1a_his_release) + kcisCPC + kcisCPC + kbind + kbind + kpp + kppKT + kcisMps1 + kcisMps1 + kbind + kbind + kcisMps1 + kbind + kbind + kpp + kbind + kcisCPC + kbind + kbind + kbind + kbind + kcisCPC + kbind + kbind + kpp + kbind + (kbind * Kd_pKnl1_Bub1a_unbinding) + kpp + kcisMps1 + kpp + kpp + kppKT + kcisMps1 + kbind + kbind + kcisMps1 + kbind + kbind + kcisCPC + kbind + kbind + (((Km_app * kbind) - kcatH2A) / kbind) + ((chrH * 0.5) - (kinH * 0.5)) + ((chrH * 0.5) + (kinH * 0.5)) + KmCPC + (Km_app * (1.0 + (I / ki))) + KmCPC + KmCPC + KmPlk1 + KmMps1 + KmPlk1 + KmCPC + KmPlk1 + KmCPC + KmPlk1 + KmMps1 + KmMps1 + KmCPC + KmMps1 + KmCPC + KmCPC + KmCPC + KmMps1 + KmMps1 + KmMps1 + KmCPC + Dimmob + (Knl1_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + kpp + kpp + (Kf_H3_CPCa_binding * KdH3) + (Kf_H3_CPCi_binding * KdH3) + kpp + kppKT + (Kf_Ndc80_Mps1a_binding * KdpNdc80Mps1 * phiNdc80) + (Kf_Ndc80_Mps1i_binding * KdpNdc80Mps1 * phiNdc80) + kppKT + (Kf_Ndc80_pMps1a_binding * KdpNdc80pMps1 * phiNdc80) + (Kf_Ndc80_pMps1i_binding * KdpNdc80pMps1 * phiNdc80) + (Kf_pH2A_Sgo1_binding * KdpH2ASgo1) + kpp + (Kf_pH2A_Sgo1_CPCa_binding * KdpH2ASgo1) + (Kf_pH2A_Sgo1_CPCa_binding_original * KdSgo1) + (Kf_pH2A_Sgo1_CPCi_binding * KdpH2ASgo1) + (Kf_pH2A_Sgo1_CPCi_binding_original * KdSgo1) + kpp + (Kf_pH3_CPCa_binding * KdpH3) + (Kf_pH3_CPCi_binding * KdpH3) + kpp + kppKT + (Kf_pNdc80_Mps1a_binding * KdpNdc80Mps1) + (Kf_pNdc80_Mps1i_binding * KdpNdc80Mps1) + kppKT + (Kf_pNdc80_pMps1a_binding * KdpNdc80pMps1) + (Kf_pNdc80_pMps1i_binding * KdpNdc80pMps1) + kpp + (Kf_Sgo1_CPCa_binding * KdSgo1) + (Kf_Sgo1_CPCi_binding * KdSgo1) + (x_mid - (KK_disSim / 2.0) - kinW) + (x_mid - (KK_disSim / 2.0)) + Dcyt + (Mps1_ic * Mps1a_frac) + Dcyt + (1.0 - Mps1a_frac) + (Mps1_ic * Mps1i_frac) + Dimmob + (Ndc80_availability * Ndc80_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + Dimmob + Dimmob + Dimmob + Dimmob + Dslow + Dslow + Dslow + Dslow + Dslow + Dslow + Dslow + Dimmob + Dimmob + Dcyt + (Plk1_ic * Plk1a_frac) + Dcyt + (1.0 - Plk1a_frac) + (Plk1_ic * Plk1i_frac) + Dcyt + Dcyt + Dimmob + Dimmob + Dimmob + Dimmob + Dimmob + (x_mid + (KK_disSim / 2.0)) + (x_mid + (KK_disSim / 2.0) + kinW) + Dcyt + Dcyt + Dcyt + Sgo1_ic + (VolumePerUnitVolume_chr * vcRegionVolume('chromosome')) + (VolumePerUnitVolume_void * vcRegionVolume('void')) + vcRegionArea('chromosome_void_membrane') + vcRegionArea('chromosome_void_membrane') + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcat_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a * (Bub1a + Bub1a_his + pKnl1_Bub1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcat_H3_phos_Haspina * Haspina) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatPlk1 * Plk1a) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatPlk1 * Plk1a) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatPlk1 * Plk1a) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatPlk1 * Plk1a) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + vcRegionVolume('chromosome') + vcRegionVolume('void') + vcRegionVolume('void') + (cell_vol / (chr_number * chrH * chrW * vcell_depth)) + (chrW / 2.0) + + + + + + + + + + + + + + + + + ( - J_Haspin_activation_Plk1a + J_Haspin_deactivation - J_Haspin_activation_panCPCa) + Haspini_diffusionRate + Haspini_init_uM + + + (J_Haspin_activation_Plk1a - J_Haspin_deactivation + J_Haspin_activation_panCPCa) + Haspina_diffusionRate + Haspina_init_uM + + + (J_Plk1_activation_panCPCa - J_Plk1_deactivation + J_Plk1a_input) + Plk1a_diffusionRate + Plk1a_init_uM + + + ( - J_H3_phos_Haspina + J_pH3_dephos - J_H3_CPCi_binding - J_H3_CPCa_binding) + H3_diffusionRate + H3_init_uM + + + (J_H3_phos_Haspina - J_pH3_dephos - J_pH3_CPCi_binding - J_pH3_CPCa_binding) + pH3_diffusionRate + pH3_init_uM + + + ( - J_pKnl1_Bub1a_binding + J_pKnl1_Bub1a_unbinding + J_Knl1_phos_panMps1a - J_Knl1_dephosp + J_Knl1_phos_Plk1a) + pKnl1_diffusionRate + pKnl1_init_uM + + + (J_pKnl1_Bub1a_binding - J_pKnl1_Bub1a_unbinding) + pKnl1_Bub1a_diffusionRate + pKnl1_Bub1a_init_uM + + + ( - J_pKnl1_Bub1a_binding + J_Bub1a_his_release) + Bub1a_diffusionRate + Bub1a_init_uM + + + ( - J_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a + J_pH2A_dephos) + H2A_diffusionRate + H2A_init_uM + + + (J_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a - J_pH2A_dephos - J_pH2A_Sgo1_binding - J_pH2A_Sgo1_CPCi_binding - J_pH2A_Sgo1_CPCa_binding) + pH2A_diffusionRate + pH2A_init_uM + + + (J_pKnl1_Bub1a_unbinding - J_Bub1a_his_release) + Bub1a_his_diffusionRate + Bub1a_his_init_uM + + + ( - J_pH2A_Sgo1_binding - J_Sgo1_CPCi_binding - J_Sgo1_CPCa_binding) + Sgo1_diffusionRate + Sgo1_init_uM + + + (J_pH2A_Sgo1_binding - J_pH2A_Sgo1_CPCi_binding_original - J_pH2A_Sgo1_CPCa_binding_original) + pH2A_Sgo1_diffusionRate + pH2A_Sgo1_init_uM + + + ( - J_pH3_CPCi_binding - J_pH2A_Sgo1_CPCi_binding_original - J_CPC_cis_activation - J_CPC_trans_activation_panCPCa - J_Sgo1_CPCi_binding - J_H3_CPCi_binding) + CPCi_diffusionRate + CPCi_init_uM + + + (J_pH3_CPCi_binding - J_pH3_CPC_cis_activation - J_pH3_CPC_trans_activation_panCPCa) + pH3_CPCi_diffusionRate + pH3_CPCi_init_uM + + + (J_pH2A_Sgo1_CPCi_binding_original - J_pH2A_Sgo1_CPC_cis_activation - J_pH2A_Sgo1_CPC_trans_activation_panCPCa + J_pH2A_Sgo1_CPCi_binding) + pH2A_Sgo1_CPCi_diffusionRate + pH2A_Sgo1_CPCi_init_uM + + + (J_CPC_cis_activation + J_CPC_trans_activation_panCPCa - J_pH3_CPCa_binding - J_pH2A_Sgo1_CPCa_binding_original - J_Sgo1_CPCa_binding - J_H3_CPCa_binding) + CPCa_diffusionRate + CPCa_init_uM + + + (J_pH3_CPC_cis_activation + J_pH3_CPC_trans_activation_panCPCa + J_pH3_CPCa_binding) + pH3_CPCa_diffusionRate + pH3_CPCa_init_uM + + + (J_pH2A_Sgo1_CPC_cis_activation + J_pH2A_Sgo1_CPC_trans_activation_panCPCa + J_pH2A_Sgo1_CPCa_binding_original + J_pH2A_Sgo1_CPCa_binding) + pH2A_Sgo1_CPCa_diffusionRate + pH2A_Sgo1_CPCa_init_uM + + + ( - J_Plk1_activation_panCPCa + J_Plk1_deactivation - J_Plk1i_output) + Plk1i_diffusionRate + Plk1i_init_uM + + + ( - J_Mps1i_phos_panCPCa + J_pMps1i_dephos - J_Ndc80_Mps1i_binding - J_pNdc80_Mps1i_binding - J_Mps1i_cis_activation - J_Mps1i_output - J_Mps1i_phos_Plk1a - J_Mps1i_trans_activation) + Mps1i_diffusionRate + Mps1i_init_uM + + + (J_Mps1i_phos_panCPCa - J_pMps1i_dephos - J_Ndc80_pMps1i_binding - J_pNdc80_pMps1i_binding - J_pMps1_cis_activation + J_Mps1i_phos_Plk1a - J_pMps1i_trans_activation) + pMps1i_diffusionRate + pMps1i_init_uM + + + ( - J_Mps1a_phos_panCPCa + J_pMps1a_dephos - J_Ndc80_Mps1a_binding - J_pNdc80_Mps1a_binding + J_Mps1a_input + J_Mps1i_cis_activation - J_Mps1a_phos_Plk1a + J_Mps1i_trans_activation) + Mps1a_diffusionRate + Mps1a_init_uM + + + (J_Mps1a_phos_panCPCa - J_pMps1a_dephos - J_Ndc80_pMps1a_binding - J_pNdc80_pMps1a_binding + J_pMps1_cis_activation + J_Mps1a_phos_Plk1a + J_pMps1i_trans_activation) + pMps1a_diffusionRate + pMps1a_init_uM + + + ( - J_Ndc80_phos_panCPCa + J_pNdc80_dephos - J_Ndc80_Mps1i_binding - J_Ndc80_pMps1i_binding - J_Ndc80_Mps1a_binding - J_Ndc80_pMps1a_binding) + Ndc80_diffusionRate + Ndc80_init_uM + + + (J_Ndc80_phos_panCPCa - J_pNdc80_dephos - J_pNdc80_Mps1i_binding - J_pNdc80_pMps1i_binding - J_pNdc80_Mps1a_binding - J_pNdc80_pMps1a_binding) + pNdc80_diffusionRate + pNdc80_init_uM + + + (J_Ndc80_Mps1i_binding - J_Ndc80_Mps1_cis_activation - J_Ndc80_Mps1_trans_activation) + Ndc80_Mps1i_diffusionRate + Ndc80_Mps1i_init_uM + + + (J_Ndc80_pMps1i_binding - J_Ndc80_pMps1_trans_activation) + Ndc80_pMps1i_diffusionRate + Ndc80_pMps1i_init_uM + + + (J_pNdc80_Mps1i_binding - J_pNdc80_Mps1_cis_activation - J_pNdc80_Mps1_trans_activation) + pNdc80_Mps1i_diffusionRate + pNdc80_Mps1i_init_uM + + + (J_pNdc80_pMps1i_binding - J_Ndc80_pMps1_cis_activation - J_pNdc80_pMps1_cis_activation - J_pNdc80_pMps1_trans_activation) + pNdc80_pMps1i_diffusionRate + pNdc80_pMps1i_init_uM + + + (J_Ndc80_Mps1a_binding + J_Ndc80_Mps1_cis_activation + J_Ndc80_Mps1_trans_activation) + Ndc80_Mps1a_diffusionRate + Ndc80_Mps1a_init_uM + + + (J_Ndc80_pMps1a_binding + J_Ndc80_pMps1_trans_activation) + Ndc80_pMps1a_diffusionRate + Ndc80_pMps1a_init_uM + + + (J_pNdc80_Mps1a_binding + J_pNdc80_Mps1_cis_activation + J_pNdc80_Mps1_trans_activation) + pNdc80_Mps1a_diffusionRate + pNdc80_Mps1a_init_uM + + + (J_pNdc80_pMps1a_binding + J_Ndc80_pMps1_cis_activation + J_pNdc80_pMps1_cis_activation + J_pNdc80_pMps1_trans_activation) + pNdc80_pMps1a_diffusionRate + pNdc80_pMps1a_init_uM + + + ( - J_Knl1_phos_panMps1a + J_Knl1_dephosp - J_Knl1_phos_Plk1a) + Knl1_diffusionRate + Knl1_init_uM + + + (J_Sgo1_CPCi_binding - J_pH2A_Sgo1_CPCi_binding - J_Sgo1_CPC_cis_activation - J_Sgo1_CPC_trans_activation_panCPCa) + Sgo1_CPCi_diffusionRate + Sgo1_CPCi_init_uM + + + (J_Sgo1_CPCa_binding - J_pH2A_Sgo1_CPCa_binding + J_Sgo1_CPC_cis_activation + J_Sgo1_CPC_trans_activation_panCPCa) + Sgo1_CPCa_diffusionRate + Sgo1_CPCa_init_uM + + + (J_H3_CPCi_binding - J_H3_CPC_cis_activation - J_H3_CPC_trans_activation_panCPCa) + H3_CPCi_diffusionRate + H3_CPCi_init_uM + + + (J_H3_CPC_cis_activation + J_H3_CPC_trans_activation_panCPCa + J_H3_CPCa_binding) + H3_CPCa_diffusionRate + H3_CPCa_init_uM + + + 0.0 + I_diffusionRate + I_init_uM + + + + + + + + + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + + + + cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user 234.rosee +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw + + + + (CPCa + pH2A_Sgo1_CPCa + H3_CPCa + pH3_CPCa + CPCi + pH2A_Sgo1_CPCi + H3_CPCi + pH3_CPCi + Sgo1_CPCi + Sgo1_CPCa) + (CPCi + pH2A_Sgo1_CPCi + H3_CPCi + pH3_CPCi + Sgo1_CPCi) + (CPCa + pH2A_Sgo1_CPCa + H3_CPCa + pH3_CPCa + Sgo1_CPCa) + (pH2A + pH2A_Sgo1 + pH2A_Sgo1_CPCa + pH2A_Sgo1_CPCi) + + + cloned from ' 09_16_25_metacentric_relaxed_model' owned by user smgroves +cloned from ' 09_16_25_metacentric_relaxed_model' owned by user aca9pw +cloned from ' 06_21_25_metacentric_relaxed_model_Borealin_500s' owned by user 234.rosee +cloned from '02_22_25_metacentric_relaxed_model_500s' owned by user aca9pw +cloned from '03_08_24_relaxed_RefModel_Knl1_scan' owned by user smgroves +cloned from '08_21_23_relaxed_RefModel_Mps1_phos_Plk1s transactiv' owned by user aca9pw +cloned from 'diffAhis_Dslow_Geo.1 - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'diffAhis_Dslow - kpp=0.1 kppKT=0.3 ' owned by user aca9pw +cloned from 'diffAhis - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'base model KdpNdc80pMps1 - kppKT = 0.1' owned by user aca9pw +cloned from 'base mode Dslow = 1E-03' owned by user temp + + + + + + + 2 + + 1 + + + + + + + + + cloned from ' 09_16_25_metacentric_relaxed_model' owned by user smgroves +cloned from ' 09_16_25_metacentric_relaxed_model' owned by user aca9pw +cloned from ' 06_21_25_metacentric_relaxed_model_Borealin_500s' owned by user 234.rosee +cloned from '02_22_25_metacentric_relaxed_model_500s' owned by user aca9pw +cloned from '03_08_24_relaxed_RefModel_Knl1_scan' owned by user smgroves +cloned from '08_21_23_relaxed_RefModel_Mps1_phos_Plk1s transactiv' owned by user aca9pw +cloned from 'diffAhis_Dslow_Geo.1 - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'diffAhis_Dslow - kpp=0.1 kppKT=0.3 ' owned by user aca9pw +cloned from 'diffAhis - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'base model KdpNdc80pMps1 - kppKT = 0.1' owned by user aca9pw +cloned from 'base mode Dslow = 1E-03' owned by user temp + + + + 1.0 + 1.0 + 1.0 + 1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user 234.rosee +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +owned by user aca9pw + + + + + + + + + cloned from '09_16_25 CPC_metacentric_relaxed_model_v2' owned by user smgroves +cloned from '09_16_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '06_21_25 CPC_metacentric_relaxed_model' owned by user 234.rosee +cloned from '02_24_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '10_16_23_CPC_relaxed_RefModel_128x64' owned by user smgroves +cloned from '08_21_23_CPC_relaxed_RefModel_Mps1_phos_Plk1a transactiv' owned by user aca9pw +cloned from 'sam_07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.01um' owned by user sampresman +cloned from '07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um_dslow' owned by user aca9pw +cloned from 'sam_07_17_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um' owned by user sampresman +cloned from '06_14_23_CPC_model_relaxed_IX_kpps' owned by user aca9pw + + + + + + + + + + + + + + diff --git a/tests/fixtures/data/SASCO_09_16_25_vcelldev_modified_velocity.vcml b/tests/fixtures/data/SASCO_09_16_25_vcelldev_modified_velocity.vcml new file mode 100644 index 0000000..45afe74 --- /dev/null +++ b/tests/fixtures/data/SASCO_09_16_25_vcelldev_modified_velocity.vcml @@ -0,0 +1,2367 @@ + + + + + cloned from '09_16_25 CPC_metacentric_relaxed_model_v2' owned by user smgroves +cloned from '09_16_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '06_21_25 CPC_metacentric_relaxed_model' owned by user 234.rosee +cloned from '02_24_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '10_16_23_CPC_relaxed_RefModel_128x64' owned by user smgroves +cloned from '08_21_23_CPC_relaxed_RefModel_Mps1_phos_Plk1a transactiv' owned by user aca9pw +cloned from 'sam_07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.01um' owned by user sampresman +cloned from '07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um_dslow' owned by user aca9pw +cloned from 'sam_07_17_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um' owned by user sampresman +cloned from '06_14_23_CPC_model_relaxed_IX_kpps' owned by user aca9pw + + cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user 234.rosee +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw + + 0.1 + 10.40495996 + 0.0 + 10.0 + 18.40322379 + (cell_vol / (chr_number * chrH * chrW * vcell_depth)) + 0.1 + 1.04 + 8.39 + ((chrH * 0.5) - (kinH * 0.5)) + 3.2 + 1.6 + 0.3 + 0.075 + 340.0 + ((chrH * 0.5) + (kinH * 0.5)) + (x_mid - (KK_disSim / 2.0)) + (chrW / 2.0) + 0.6 + (x_mid + (KK_disSim / 2.0)) + (x_mid - (KK_disSim / 2.0) - kinW) + (x_mid + (KK_disSim / 2.0) + kinW) + (KK_disRef / KK_disSim) + (Dapp * alpha * ((t + t_step) ^ (alpha - 1.0))) + 0.2 + 3.2 + 0.6 + 0.2 + 0.1 + 12.0 + 234.983 + 6.714 + 0.1028 + 4.52 + 7.29E-6 + (1.0 - Plk1a_frac) + 2.103 + 469.965 + 8.7 + 10.0 + 0.2 + 5.0E-5 + 1.5833 + 54.0 + 0.1 + (1.0 - Mps1a_frac) + 0.0528 + 1.0 + 1.0 + 5479.0 + 46.0 + 1.0 + 12.0 + 79.0 + 4.597 + 0.1028 + 1.0 + 0.295 + 10.0 + 0.5 + 0.001 + 10.4 + (((Km_app * kbind) - kcatH2A) / kbind) + 1.71 + 0.5 + 0.0 + (1.0 - I_arms) + (1.0 - I_cent) + 17.1 + 0.0167 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ((Vmax * Haspini) / (Km + Haspini)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + ((Kf * Haspina) - (Kr * Haspini)) + kpp + 0.0 + + + + + + + + ((Vmax * H3) / (Km + H3)) + 4.728 + (kcat * Haspina) + 0.467 + + + + + + + ((Kf * pH3) - (Kr * H3)) + kpp + 0.0 + + + + + + + + (((Kf * pKnl1) * Bub1a) - (Kr * pKnl1_Bub1a)) + kbind + 0.0 + + + + + + + + + + + ((Vmax * H2A) / (Km + H2A)) + (Km_app * (1.0 + (I / ki))) + (kcat * (Bub1a + Bub1a_his + pKnl1_Bub1a)) + kcatH2A + + + + + + + ((Kf * pH2A) - (Kr * H2A)) + kpp + 0.0 + + + + + + + + ((Kf * pKnl1_Bub1a) - ((Kr * pKnl1) * Bub1a_his)) + (kbind * Kd) + 0.0 + 34.8 + + + + + + + ((Kf * Bub1a_his) - (Kr * Bub1a)) + (kbind * Kd) + 0.0 + 1.0 + + + + + + + + (((Kf * pH2A) * Sgo1) - (Kr * pH2A_Sgo1)) + kbind + (Kf * KdpH2ASgo1) + + + + + + + + (((Kf * pH3) * CPCi) - (Kr * pH3_CPCi)) + kbind + (Kf * KdpH3) + + + + + + + + (((Kf * pH2A_Sgo1) * CPCi) - (Kr * pH2A_Sgo1_CPCi)) + kbind + (Kf * KdSgo1) + + + + + + + ((Kf * CPCi) - (Kr * CPCa)) + kcisCPC + kpp + + + + + + + ((Kf * pH3_CPCi) - (Kr * pH3_CPCa)) + kcisCPC + kpp + + + + + + + ((Kf * pH2A_Sgo1_CPCi) - (Kr * pH2A_Sgo1_CPCa)) + kcisCPC + kpp + + + + + + + + + + + ((Vmax * CPCi) / (Km + CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + + + + ((Vmax * pH3_CPCi) / (Km + pH3_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + + + + ((Vmax * pH2A_Sgo1_CPCi) / (Km + pH2A_Sgo1_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * pH3) * CPCa) - (Kr * pH3_CPCa)) + kbind + (Kf * KdpH3) + + + + + + + + (((Kf * pH2A_Sgo1) * CPCa) - (Kr * pH2A_Sgo1_CPCa)) + kbind + (Kf * KdSgo1) + + + + + + + + + + + + ((Vmax * Plk1i) / (Km + Plk1i)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * Plk1a) - (Kr * Plk1i)) + kpp + 0.0 + + + + + + + + + + + + ((Vmax * Mps1i) / (Km + Mps1i)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * pMps1i) - (Kr * Mps1i)) + kpp + 0.0 + + + + + + + + + + + + ((Vmax * Mps1a) / (Km + Mps1a)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * pMps1a) - (Kr * Mps1a)) + kpp + 0.0 + + + + + + + + + + + + ((Vmax * Ndc80) / (Km + Ndc80)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + ((Kf * pNdc80) - (Kr * Ndc80)) + kppKT + 0.0 + + + + + + + + (((Kf * Ndc80) * Mps1i) - (Kr * Ndc80_Mps1i)) + kbind + (Kf * KdpNdc80Mps1 * phiNdc80) + + + + + + + + (((Kf * Ndc80) * pMps1i) - (Kr * Ndc80_pMps1i)) + kbind + (Kf * KdpNdc80pMps1 * phiNdc80) + + + + + + + + (((Kf * pNdc80) * Mps1i) - (Kr * pNdc80_Mps1i)) + kbind + (Kf * KdpNdc80Mps1) + + + + + + + + (((Kf * pMps1i) * pNdc80) - (Kr * pNdc80_pMps1i)) + kbind + (Kf * KdpNdc80pMps1) + + + + + + + + (((Kf * Ndc80) * Mps1a) - (Kr * Ndc80_Mps1a)) + kbind + (Kf * KdpNdc80Mps1 * phiNdc80) + + + + + + + + (((Kf * Ndc80) * pMps1a) - (Kr * Ndc80_pMps1a)) + kbind + (Kf * KdpNdc80pMps1 * phiNdc80) + + + + + + + + (((Kf * pNdc80) * Mps1a) - (Kr * pNdc80_Mps1a)) + kbind + (Kf * KdpNdc80Mps1) + + + + + + + + (((Kf * pNdc80) * pMps1a) - (Kr * pNdc80_pMps1a)) + kbind + (Kf * KdpNdc80pMps1) + + + + + + + ((Kf * Ndc80_Mps1i) - (Kr * Ndc80_Mps1a)) + kcisMps1 + kppKT + + + + + + + ((Kf * pNdc80_Mps1i) - (Kr * pNdc80_Mps1a)) + kcisMps1 + kppKT + + + + + + + ((Kf * pNdc80_pMps1i) - (Kr * pNdc80_pMps1a)) + kcisMps1 + kppKT + + + + + + + ((Kf * pNdc80_pMps1i) - (Kr * pNdc80_pMps1a)) + kcisMps1 + kppKT + + + + + + + + + + + + ((Vmax * Ndc80_Mps1i) / (Km + Ndc80_Mps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * pNdc80_Mps1i) / (Km + pNdc80_Mps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * Ndc80_pMps1i) / (Km + Ndc80_pMps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * pNdc80_pMps1i) / (Km + pNdc80_pMps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + + ((Vmax * Knl1) / (Km + Knl1)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + ((Kf * pKnl1) - (Kr * Knl1)) + kppKT + 0.0 + + + + + + ((kpp * (Mps1_ic * Mps1a_frac)) * input) + + + + + + ((kpp * (Plk1_ic * Plk1a_frac)) * input) + + + + + + + ((Kf * Mps1i) - (Kr * Mps1a)) + kcisMps1 + kpp + + + + + + + ((Kf * pMps1i) - (Kr * pMps1a)) + kcisMps1 + kpp + + + + + + ((kpp * (Mps1_ic * Mps1a_frac)) * output) + + + + + + ((kpp * (Plk1_ic * Plk1a_frac)) * output) + + + + + + + + ((Vmax * Mps1i) / (Km + Mps1i)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + + ((Vmax * Mps1a) / (Km + Mps1a)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + + + + + + ((Vmax * Mps1i) / (Km + Mps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + + + + + ((Vmax * pMps1i) / (Km + pMps1i)) + KmMps1 + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + + + + + + + + ((Vmax * Knl1) / (Km + Knl1)) + KmPlk1 + (kcatPlk1 * Plk1a) + + + + + + + + + + + + ((Vmax * Haspini) / (Km + Haspini)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * Sgo1) * CPCi) - (Kr * Sgo1_CPCi)) + kbind + (Kf * KdSgo1) + + + + + + + + (((Kf * Sgo1_CPCi) * pH2A) - (Kr * pH2A_Sgo1_CPCi)) + kbind + (Kf * KdpH2ASgo1) + + + + + + + + (((Kf * Sgo1) * CPCa) - (Kr * Sgo1_CPCa)) + kbind + (Kf * KdSgo1) + + + + + + + + (((Kf * pH2A) * Sgo1_CPCa) - (Kr * pH2A_Sgo1_CPCa)) + kbind + (Kf * KdpH2ASgo1) + + + + + + + ((Kf * Sgo1_CPCi) - (Kr * Sgo1_CPCa)) + kcisCPC + kpp + + + + + + + + + + + ((Vmax * Sgo1_CPCi) / (Km + Sgo1_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * H3) * CPCi) - (Kr * H3_CPCi)) + kbind + (Kf * KdH3) + + + + + + + ((Kf * H3_CPCi) - (Kr * H3_CPCa)) + kcisCPC + kpp + + + + + + + + + + + ((Vmax * H3_CPCi) / (Km + H3_CPCi)) + KmCPC + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + + + + + + + + (((Kf * H3) * CPCa) - (Kr * H3_CPCa)) + kbind + (Kf * KdH3) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user 234.rosee +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user smgroves +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw +cloned from 'model' owned by user sampresman +cloned from 'model' owned by user aca9pw + + + + + + cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user 234.rosee +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +owned by user aca9pw + + cloned from 'Geometry2132992264' owned by user smgroves +cloned from 'Geometry636149887' owned by user aca9pw +cloned from 'Geometry1651191746' owned by user 234.rosee +cloned from 'Geometry1651191746' owned by user aca9pw +cloned from 'Geometry1424762834' owned by user smgroves +cloned from 'Geometry1424762834' owned by user aca9pw +cloned from 'Geometry1044563560' owned by user sampresman +cloned from 'Geometry1044563560' owned by user aca9pw +cloned from 'Geometry1471370315' owned by user sampresman +cloned from 'Geometry3' owned by user aca9pw + + + + (((x >= 0.0) && (x <= 0.425) && (y >= 1.45) && (y <= 1.75)) || ((x >= 1.175) && (x <= 1.6) && (y >= 1.45) && (y <= 1.75))) + + + 1.0 + + + + + + + + + + + + + cloned from 'Geometry2132992264' owned by user smgroves +cloned from 'Geometry636149887' owned by user aca9pw +cloned from 'Geometry1651191746' owned by user 234.rosee +cloned from 'Geometry1651191746' owned by user aca9pw +cloned from 'Geometry1424762834' owned by user smgroves +cloned from 'Geometry1424762834' owned by user aca9pw +cloned from 'Geometry1044563560' owned by user sampresman +cloned from 'Geometry1044563560' owned by user aca9pw +cloned from 'Geometry1471370315' owned by user sampresman +cloned from 'Geometry3' owned by user aca9pw + + + + + + + + + + + + + (Haspini_ic * (((x_mid - (HasW / 2.0)) < x) && (x < (x_mid + (HasW / 2.0))))) + Dimmob + + + 0.0 + Dimmob + + + (Plk1_ic * Plk1a_frac) + Dcyt + + + ((Histone_ic * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj) * ((y >= kin_y1) && (y <= kin_y2)))) + Dslow + + + + 0.0 + Dslow + + + + 0.0 + Dimmob + + + 0.0 + Dimmob + + + Bub1_ic + Dcyt + + + ((Histone_ic * Havail_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj * Havail_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + Dslow + + + + 0.0 + Dslow + + + + 0.0 + Dapp + + + Sgo1_ic + Dcyt + + + 0.0 + Dslow + + + + CPCi_ic + Dcyt + + + 0.0 + Dslow + + + + 0.0 + Dslow + + + + 0.0 + Dcyt + + + 0.0 + Dslow + + + + 0.0 + Dslow + + + + (Plk1_ic * Plk1i_frac) + Dcyt + + + (Mps1_ic * Mps1i_frac) + Dcyt + + + 0.0 + Dcyt + + + (Mps1_ic * Mps1a_frac) + Dcyt + + + 0.0 + Dcyt + + + (Ndc80_availability * Ndc80_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + 0.0 + Dimmob + + + + (Knl1_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + Dimmob + + + 0.0 + Dcyt + + + 0.0 + Dcyt + + + 0.0 + Dslow + + + + 0.0 + Dslow + + + + ((Histone_ic * I_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * I_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + Dimmob + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user 234.rosee +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw + 96485.3321 + 9.64853321E-5 + 1.0E-9 + 6.02214179E11 + 3.141592653589793 + 8314.46261815 + 300.0 + 0.5 + 1.0 + 1.0 + 1.0 + 1.0 + 4.597 + 0.0 + 5479.0 + 46.0 + 3.2 + 1.6 + 0.0 + 4.52 + 0.001 + 10.0 + 0.0 + 0.0 + 0.0 + 3.2 + 0.0 + 10.40495996 + 0.2 + 340.0 + 0.5 + 0.0 + 1.0 + 1000.0 + 0.2 + 0.467 + 1.04 + 1.71 + 1.5833 + 12.0 + 7.29E-6 + 5.0E-5 + 1.0 + 34.8 + 0.295 + 0.1028 + 0.1028 + 8.7 + 0.2 + 0.0528 + 0.3 + 0.075 + 0.6 + 0.6 + 10.4 + 4.728 + 8.39 + 54.0 + 0.001660538783162726 + 79.0 + 234.983 + 0.1 + 0.1 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 12.0 + 2.103 + 0.1 + 1.0 + 469.965 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 10.0 + 0.0 + 0.0 + 18.40322379 + 0.1 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 6.714 + 10.0 + 1.0 + 1.0 + 1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dcyt + Dapp + Bub1_ic + Dcyt + Dcyt + CPCi_ic + (Dapp * alpha * ((t + t_step) ^ (alpha - 1.0))) + Dslow + ((Histone_ic * Havail_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj * Havail_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + Dslow + Dslow + Dslow + ((Histone_ic * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * Histone_densadj) * ((y >= kin_y1) && (y <= kin_y2)))) + Dimmob + Dimmob + (Haspini_ic * (((x_mid - (HasW / 2.0)) < x) && (x < (x_mid + (HasW / 2.0))))) + (1.0 - I_arms) + (1.0 - I_cent) + (KK_disRef / KK_disSim) + Dimmob + ((Histone_ic * I_arms * ((y < kin_y1) || (y > kin_y2))) + ((Histone_ic * I_cent) * ((y >= kin_y1) && (y <= kin_y2)))) + ((Kf_Bub1a_his_release * Bub1a_his) - (Kr_Bub1a_his_release * Bub1a)) + ((Kf_CPC_cis_activation * CPCi) - (Kr_CPC_cis_activation * CPCa)) + ((Vmax_CPC_trans_activation_panCPCa * CPCi) / (Km_CPC_trans_activation_panCPCa + CPCi)) + ((Vmax_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a * H2A) / (Km_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a + H2A)) + ((Kf_H3_CPC_cis_activation * H3_CPCi) - (Kr_H3_CPC_cis_activation * H3_CPCa)) + ((Vmax_H3_CPC_trans_activation_panCPCa * H3_CPCi) / (Km_H3_CPC_trans_activation_panCPCa + H3_CPCi)) + (((Kf_H3_CPCa_binding * H3) * CPCa) - (Kr_H3_CPCa_binding * H3_CPCa)) + (((Kf_H3_CPCi_binding * H3) * CPCi) - (Kr_H3_CPCi_binding * H3_CPCi)) + ((Vmax_H3_phos_Haspina * H3) / (Km_H3_phos_Haspina + H3)) + ((Vmax_Haspin_activation_panCPCa * Haspini) / (Km_Haspin_activation_panCPCa + Haspini)) + ((Vmax_Haspin_activation_Plk1a * Haspini) / (Km_Haspin_activation_Plk1a + Haspini)) + ((Kf_Haspin_deactivation * Haspina) - (Kr_Haspin_deactivation * Haspini)) + ((Kf_Knl1_dephosp * pKnl1) - (Kr_Knl1_dephosp * Knl1)) + ((Vmax_Knl1_phos_panMps1a * Knl1) / (Km_Knl1_phos_panMps1a + Knl1)) + ((Vmax_Knl1_phos_Plk1a * Knl1) / (Km_Knl1_phos_Plk1a + Knl1)) + ((kpp * (Mps1_ic * Mps1a_frac)) * input) + ((Vmax_Mps1a_phos_panCPCa * Mps1a) / (Km_Mps1a_phos_panCPCa + Mps1a)) + ((Vmax_Mps1a_phos_Plk1a * Mps1a) / (Km_Mps1a_phos_Plk1a + Mps1a)) + ((Kf_Mps1i_cis_activation * Mps1i) - (Kr_Mps1i_cis_activation * Mps1a)) + ((kpp * (Mps1_ic * Mps1a_frac)) * output) + ((Vmax_Mps1i_phos_panCPCa * Mps1i) / (Km_Mps1i_phos_panCPCa + Mps1i)) + ((Vmax_Mps1i_phos_Plk1a * Mps1i) / (Km_Mps1i_phos_Plk1a + Mps1i)) + ((Vmax_Mps1i_trans_activation * Mps1i) / (Km_Mps1i_trans_activation + Mps1i)) + ((Kf_Ndc80_Mps1_cis_activation * Ndc80_Mps1i) - (Kr_Ndc80_Mps1_cis_activation * Ndc80_Mps1a)) + ((Vmax_Ndc80_Mps1_trans_activation * Ndc80_Mps1i) / (Km_Ndc80_Mps1_trans_activation + Ndc80_Mps1i)) + (((Kf_Ndc80_Mps1a_binding * Ndc80) * Mps1a) - (Kr_Ndc80_Mps1a_binding * Ndc80_Mps1a)) + (((Kf_Ndc80_Mps1i_binding * Ndc80) * Mps1i) - (Kr_Ndc80_Mps1i_binding * Ndc80_Mps1i)) + ((Vmax_Ndc80_phos_panCPCa * Ndc80) / (Km_Ndc80_phos_panCPCa + Ndc80)) + ((Kf_Ndc80_pMps1_cis_activation * pNdc80_pMps1i) - (Kr_Ndc80_pMps1_cis_activation * pNdc80_pMps1a)) + ((Vmax_Ndc80_pMps1_trans_activation * Ndc80_pMps1i) / (Km_Ndc80_pMps1_trans_activation + Ndc80_pMps1i)) + (((Kf_Ndc80_pMps1a_binding * Ndc80) * pMps1a) - (Kr_Ndc80_pMps1a_binding * Ndc80_pMps1a)) + (((Kf_Ndc80_pMps1i_binding * Ndc80) * pMps1i) - (Kr_Ndc80_pMps1i_binding * Ndc80_pMps1i)) + ((Kf_pH2A_dephos * pH2A) - (Kr_pH2A_dephos * H2A)) + (((Kf_pH2A_Sgo1_binding * pH2A) * Sgo1) - (Kr_pH2A_Sgo1_binding * pH2A_Sgo1)) + ((Kf_pH2A_Sgo1_CPC_cis_activation * pH2A_Sgo1_CPCi) - (Kr_pH2A_Sgo1_CPC_cis_activation * pH2A_Sgo1_CPCa)) + ((Vmax_pH2A_Sgo1_CPC_trans_activation_panCPCa * pH2A_Sgo1_CPCi) / (Km_pH2A_Sgo1_CPC_trans_activation_panCPCa + pH2A_Sgo1_CPCi)) + (((Kf_pH2A_Sgo1_CPCa_binding * pH2A) * Sgo1_CPCa) - (Kr_pH2A_Sgo1_CPCa_binding * pH2A_Sgo1_CPCa)) + (((Kf_pH2A_Sgo1_CPCa_binding_original * pH2A_Sgo1) * CPCa) - (Kr_pH2A_Sgo1_CPCa_binding_original * pH2A_Sgo1_CPCa)) + (((Kf_pH2A_Sgo1_CPCi_binding * Sgo1_CPCi) * pH2A) - (Kr_pH2A_Sgo1_CPCi_binding * pH2A_Sgo1_CPCi)) + (((Kf_pH2A_Sgo1_CPCi_binding_original * pH2A_Sgo1) * CPCi) - (Kr_pH2A_Sgo1_CPCi_binding_original * pH2A_Sgo1_CPCi)) + ((Kf_pH3_CPC_cis_activation * pH3_CPCi) - (Kr_pH3_CPC_cis_activation * pH3_CPCa)) + ((Vmax_pH3_CPC_trans_activation_panCPCa * pH3_CPCi) / (Km_pH3_CPC_trans_activation_panCPCa + pH3_CPCi)) + (((Kf_pH3_CPCa_binding * pH3) * CPCa) - (Kr_pH3_CPCa_binding * pH3_CPCa)) + (((Kf_pH3_CPCi_binding * pH3) * CPCi) - (Kr_pH3_CPCi_binding * pH3_CPCi)) + ((Kf_pH3_dephos * pH3) - (Kr_pH3_dephos * H3)) + (((Kf_pKnl1_Bub1a_binding * pKnl1) * Bub1a) - (Kr_pKnl1_Bub1a_binding * pKnl1_Bub1a)) + ((Kf_pKnl1_Bub1a_unbinding * pKnl1_Bub1a) - ((Kr_pKnl1_Bub1a_unbinding * pKnl1) * Bub1a_his)) + ((Vmax_Plk1_activation_panCPCa * Plk1i) / (Km_Plk1_activation_panCPCa + Plk1i)) + ((Kf_Plk1_deactivation * Plk1a) - (Kr_Plk1_deactivation * Plk1i)) + ((kpp * (Plk1_ic * Plk1a_frac)) * input) + ((kpp * (Plk1_ic * Plk1a_frac)) * output) + ((Kf_pMps1_cis_activation * pMps1i) - (Kr_pMps1_cis_activation * pMps1a)) + ((Kf_pMps1a_dephos * pMps1a) - (Kr_pMps1a_dephos * Mps1a)) + ((Kf_pMps1i_dephos * pMps1i) - (Kr_pMps1i_dephos * Mps1i)) + ((Vmax_pMps1i_trans_activation * pMps1i) / (Km_pMps1i_trans_activation + pMps1i)) + ((Kf_pNdc80_dephos * pNdc80) - (Kr_pNdc80_dephos * Ndc80)) + ((Kf_pNdc80_Mps1_cis_activation * pNdc80_Mps1i) - (Kr_pNdc80_Mps1_cis_activation * pNdc80_Mps1a)) + ((Vmax_pNdc80_Mps1_trans_activation * pNdc80_Mps1i) / (Km_pNdc80_Mps1_trans_activation + pNdc80_Mps1i)) + (((Kf_pNdc80_Mps1a_binding * pNdc80) * Mps1a) - (Kr_pNdc80_Mps1a_binding * pNdc80_Mps1a)) + (((Kf_pNdc80_Mps1i_binding * pNdc80) * Mps1i) - (Kr_pNdc80_Mps1i_binding * pNdc80_Mps1i)) + ((Kf_pNdc80_pMps1_cis_activation * pNdc80_pMps1i) - (Kr_pNdc80_pMps1_cis_activation * pNdc80_pMps1a)) + ((Vmax_pNdc80_pMps1_trans_activation * pNdc80_pMps1i) / (Km_pNdc80_pMps1_trans_activation + pNdc80_pMps1i)) + (((Kf_pNdc80_pMps1a_binding * pNdc80) * pMps1a) - (Kr_pNdc80_pMps1a_binding * pNdc80_pMps1a)) + (((Kf_pNdc80_pMps1i_binding * pMps1i) * pNdc80) - (Kr_pNdc80_pMps1i_binding * pNdc80_pMps1i)) + ((Kf_Sgo1_CPC_cis_activation * Sgo1_CPCi) - (Kr_Sgo1_CPC_cis_activation * Sgo1_CPCa)) + ((Vmax_Sgo1_CPC_trans_activation_panCPCa * Sgo1_CPCi) / (Km_Sgo1_CPC_trans_activation_panCPCa + Sgo1_CPCi)) + (((Kf_Sgo1_CPCa_binding * Sgo1) * CPCa) - (Kr_Sgo1_CPCa_binding * Sgo1_CPCa)) + (((Kf_Sgo1_CPCi_binding * Sgo1) * CPCi) - (Kr_Sgo1_CPCi_binding * Sgo1_CPCi)) + kcatH2A + (kbind * Kd_Bub1a_his_release) + kcisCPC + kcisCPC + kbind + kbind + kpp + kppKT + kcisMps1 + kcisMps1 + kbind + kbind + kcisMps1 + kbind + kbind + kpp + kbind + kcisCPC + kbind + kbind + kbind + kbind + kcisCPC + kbind + kbind + kpp + kbind + (kbind * Kd_pKnl1_Bub1a_unbinding) + kpp + kcisMps1 + kpp + kpp + kppKT + kcisMps1 + kbind + kbind + kcisMps1 + kbind + kbind + kcisCPC + kbind + kbind + (((Km_app * kbind) - kcatH2A) / kbind) + ((chrH * 0.5) - (kinH * 0.5)) + ((chrH * 0.5) + (kinH * 0.5)) + KmCPC + (Km_app * (1.0 + (I / ki))) + KmCPC + KmCPC + KmPlk1 + KmMps1 + KmPlk1 + KmCPC + KmPlk1 + KmCPC + KmPlk1 + KmMps1 + KmMps1 + KmCPC + KmMps1 + KmCPC + KmCPC + KmCPC + KmMps1 + KmMps1 + KmMps1 + KmCPC + Dimmob + (Knl1_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + kpp + kpp + (Kf_H3_CPCa_binding * KdH3) + (Kf_H3_CPCi_binding * KdH3) + kpp + kppKT + (Kf_Ndc80_Mps1a_binding * KdpNdc80Mps1 * phiNdc80) + (Kf_Ndc80_Mps1i_binding * KdpNdc80Mps1 * phiNdc80) + kppKT + (Kf_Ndc80_pMps1a_binding * KdpNdc80pMps1 * phiNdc80) + (Kf_Ndc80_pMps1i_binding * KdpNdc80pMps1 * phiNdc80) + (Kf_pH2A_Sgo1_binding * KdpH2ASgo1) + kpp + (Kf_pH2A_Sgo1_CPCa_binding * KdpH2ASgo1) + (Kf_pH2A_Sgo1_CPCa_binding_original * KdSgo1) + (Kf_pH2A_Sgo1_CPCi_binding * KdpH2ASgo1) + (Kf_pH2A_Sgo1_CPCi_binding_original * KdSgo1) + kpp + (Kf_pH3_CPCa_binding * KdpH3) + (Kf_pH3_CPCi_binding * KdpH3) + kpp + kppKT + (Kf_pNdc80_Mps1a_binding * KdpNdc80Mps1) + (Kf_pNdc80_Mps1i_binding * KdpNdc80Mps1) + kppKT + (Kf_pNdc80_pMps1a_binding * KdpNdc80pMps1) + (Kf_pNdc80_pMps1i_binding * KdpNdc80pMps1) + kpp + (Kf_Sgo1_CPCa_binding * KdSgo1) + (Kf_Sgo1_CPCi_binding * KdSgo1) + (x_mid - (KK_disSim / 2.0) - kinW) + (x_mid - (KK_disSim / 2.0)) + Dcyt + (Mps1_ic * Mps1a_frac) + Dcyt + (1.0 - Mps1a_frac) + (Mps1_ic * Mps1i_frac) + Dimmob + (Ndc80_availability * Ndc80_ic * (((x >= R_kin_x1) && (x <= R_kin_x2) && (y >= kin_y1) && (y <= kin_y2)) || ((x >= L_kin_x1) && (x <= L_kin_x2) && (y >= kin_y1) && (y <= kin_y2)))) + Dimmob + Dimmob + Dimmob + Dimmob + Dslow + Dslow + Dslow + Dslow + Dslow + Dslow + Dslow + Dimmob + Dimmob + Dcyt + (Plk1_ic * Plk1a_frac) + Dcyt + (1.0 - Plk1a_frac) + (Plk1_ic * Plk1i_frac) + Dcyt + Dcyt + Dimmob + Dimmob + Dimmob + Dimmob + Dimmob + (x_mid + (KK_disSim / 2.0)) + (x_mid + (KK_disSim / 2.0) + kinW) + Dcyt + Dcyt + Dcyt + Sgo1_ic + (VolumePerUnitVolume_chr * vcRegionVolume('chromosome')) + (VolumePerUnitVolume_void * vcRegionVolume('void')) + vcRegionArea('chromosome_void_membrane') + vcRegionArea('chromosome_void_membrane') + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcat_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a * (Bub1a + Bub1a_his + pKnl1_Bub1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcat_H3_phos_Haspina * Haspina) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatPlk1 * Plk1a) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatPlk1 * Plk1a) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatPlk1 * Plk1a) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatPlk1 * Plk1a) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatMps1 * (Mps1a + pMps1a + Ndc80_Mps1a + Ndc80_pMps1a + pNdc80_Mps1a + pNdc80_pMps1a)) + (kcatCPC * (CPCa + H3_CPCa + pH3_CPCa + pH2A_Sgo1_CPCa + Sgo1_CPCa)) + vcRegionVolume('chromosome') + vcRegionVolume('void') + vcRegionVolume('void') + (cell_vol / (chr_number * chrH * chrW * vcell_depth)) + (chrW / 2.0) + + + + + + + + + + + + + + + + + ( - J_Haspin_activation_Plk1a + J_Haspin_deactivation - J_Haspin_activation_panCPCa) + Haspini_diffusionRate + Haspini_init_uM + + + (J_Haspin_activation_Plk1a - J_Haspin_deactivation + J_Haspin_activation_panCPCa) + Haspina_diffusionRate + Haspina_init_uM + + + (J_Plk1_activation_panCPCa - J_Plk1_deactivation + J_Plk1a_input) + Plk1a_diffusionRate + Plk1a_init_uM + + + ( - J_H3_phos_Haspina + J_pH3_dephos - J_H3_CPCi_binding - J_H3_CPCa_binding) + H3_diffusionRate + H3_init_uM + + + (J_H3_phos_Haspina - J_pH3_dephos - J_pH3_CPCi_binding - J_pH3_CPCa_binding) + pH3_diffusionRate + pH3_init_uM + + + ( - J_pKnl1_Bub1a_binding + J_pKnl1_Bub1a_unbinding + J_Knl1_phos_panMps1a - J_Knl1_dephosp + J_Knl1_phos_Plk1a) + pKnl1_diffusionRate + pKnl1_init_uM + + + (J_pKnl1_Bub1a_binding - J_pKnl1_Bub1a_unbinding) + pKnl1_Bub1a_diffusionRate + pKnl1_Bub1a_init_uM + + + ( - J_pKnl1_Bub1a_binding + J_Bub1a_his_release) + Bub1a_diffusionRate + Bub1a_init_uM + + + ( - J_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a + J_pH2A_dephos) + H2A_diffusionRate + H2A_init_uM + + + (J_H2A_phos_Bub1a_Bub1a_his_pKnl1_Bub1a - J_pH2A_dephos - J_pH2A_Sgo1_binding - J_pH2A_Sgo1_CPCi_binding - J_pH2A_Sgo1_CPCa_binding) + pH2A_diffusionRate + pH2A_init_uM + + + (J_pKnl1_Bub1a_unbinding - J_Bub1a_his_release) + Bub1a_his_diffusionRate + Bub1a_his_init_uM + + + ( - J_pH2A_Sgo1_binding - J_Sgo1_CPCi_binding - J_Sgo1_CPCa_binding) + Sgo1_diffusionRate + Sgo1_init_uM + + + (J_pH2A_Sgo1_binding - J_pH2A_Sgo1_CPCi_binding_original - J_pH2A_Sgo1_CPCa_binding_original) + pH2A_Sgo1_diffusionRate + pH2A_Sgo1_init_uM + + + ( - J_pH3_CPCi_binding - J_pH2A_Sgo1_CPCi_binding_original - J_CPC_cis_activation - J_CPC_trans_activation_panCPCa - J_Sgo1_CPCi_binding - J_H3_CPCi_binding) + CPCi_diffusionRate + CPCi_init_uM + + + (J_pH3_CPCi_binding - J_pH3_CPC_cis_activation - J_pH3_CPC_trans_activation_panCPCa) + pH3_CPCi_diffusionRate + pH3_CPCi_init_uM + + + (J_pH2A_Sgo1_CPCi_binding_original - J_pH2A_Sgo1_CPC_cis_activation - J_pH2A_Sgo1_CPC_trans_activation_panCPCa + J_pH2A_Sgo1_CPCi_binding) + pH2A_Sgo1_CPCi_diffusionRate + pH2A_Sgo1_CPCi_init_uM + + + (J_CPC_cis_activation + J_CPC_trans_activation_panCPCa - J_pH3_CPCa_binding - J_pH2A_Sgo1_CPCa_binding_original - J_Sgo1_CPCa_binding - J_H3_CPCa_binding) + CPCa_diffusionRate + CPCa_init_uM + + + (J_pH3_CPC_cis_activation + J_pH3_CPC_trans_activation_panCPCa + J_pH3_CPCa_binding) + pH3_CPCa_diffusionRate + pH3_CPCa_init_uM + + + (J_pH2A_Sgo1_CPC_cis_activation + J_pH2A_Sgo1_CPC_trans_activation_panCPCa + J_pH2A_Sgo1_CPCa_binding_original + J_pH2A_Sgo1_CPCa_binding) + pH2A_Sgo1_CPCa_diffusionRate + pH2A_Sgo1_CPCa_init_uM + + + ( - J_Plk1_activation_panCPCa + J_Plk1_deactivation - J_Plk1i_output) + Plk1i_diffusionRate + Plk1i_init_uM + + + ( - J_Mps1i_phos_panCPCa + J_pMps1i_dephos - J_Ndc80_Mps1i_binding - J_pNdc80_Mps1i_binding - J_Mps1i_cis_activation - J_Mps1i_output - J_Mps1i_phos_Plk1a - J_Mps1i_trans_activation) + Mps1i_diffusionRate + Mps1i_init_uM + + + (J_Mps1i_phos_panCPCa - J_pMps1i_dephos - J_Ndc80_pMps1i_binding - J_pNdc80_pMps1i_binding - J_pMps1_cis_activation + J_Mps1i_phos_Plk1a - J_pMps1i_trans_activation) + pMps1i_diffusionRate + pMps1i_init_uM + + + ( - J_Mps1a_phos_panCPCa + J_pMps1a_dephos - J_Ndc80_Mps1a_binding - J_pNdc80_Mps1a_binding + J_Mps1a_input + J_Mps1i_cis_activation - J_Mps1a_phos_Plk1a + J_Mps1i_trans_activation) + Mps1a_diffusionRate + Mps1a_init_uM + + + (J_Mps1a_phos_panCPCa - J_pMps1a_dephos - J_Ndc80_pMps1a_binding - J_pNdc80_pMps1a_binding + J_pMps1_cis_activation + J_Mps1a_phos_Plk1a + J_pMps1i_trans_activation) + pMps1a_diffusionRate + pMps1a_init_uM + + + ( - J_Ndc80_phos_panCPCa + J_pNdc80_dephos - J_Ndc80_Mps1i_binding - J_Ndc80_pMps1i_binding - J_Ndc80_Mps1a_binding - J_Ndc80_pMps1a_binding) + Ndc80_diffusionRate + Ndc80_init_uM + + + (J_Ndc80_phos_panCPCa - J_pNdc80_dephos - J_pNdc80_Mps1i_binding - J_pNdc80_pMps1i_binding - J_pNdc80_Mps1a_binding - J_pNdc80_pMps1a_binding) + pNdc80_diffusionRate + pNdc80_init_uM + + + (J_Ndc80_Mps1i_binding - J_Ndc80_Mps1_cis_activation - J_Ndc80_Mps1_trans_activation) + Ndc80_Mps1i_diffusionRate + Ndc80_Mps1i_init_uM + + + (J_Ndc80_pMps1i_binding - J_Ndc80_pMps1_trans_activation) + Ndc80_pMps1i_diffusionRate + Ndc80_pMps1i_init_uM + + + (J_pNdc80_Mps1i_binding - J_pNdc80_Mps1_cis_activation - J_pNdc80_Mps1_trans_activation) + pNdc80_Mps1i_diffusionRate + pNdc80_Mps1i_init_uM + + + (J_pNdc80_pMps1i_binding - J_Ndc80_pMps1_cis_activation - J_pNdc80_pMps1_cis_activation - J_pNdc80_pMps1_trans_activation) + pNdc80_pMps1i_diffusionRate + pNdc80_pMps1i_init_uM + + + (J_Ndc80_Mps1a_binding + J_Ndc80_Mps1_cis_activation + J_Ndc80_Mps1_trans_activation) + Ndc80_Mps1a_diffusionRate + Ndc80_Mps1a_init_uM + + + (J_Ndc80_pMps1a_binding + J_Ndc80_pMps1_trans_activation) + Ndc80_pMps1a_diffusionRate + Ndc80_pMps1a_init_uM + + + (J_pNdc80_Mps1a_binding + J_pNdc80_Mps1_cis_activation + J_pNdc80_Mps1_trans_activation) + pNdc80_Mps1a_diffusionRate + pNdc80_Mps1a_init_uM + + + (J_pNdc80_pMps1a_binding + J_Ndc80_pMps1_cis_activation + J_pNdc80_pMps1_cis_activation + J_pNdc80_pMps1_trans_activation) + pNdc80_pMps1a_diffusionRate + pNdc80_pMps1a_init_uM + + + ( - J_Knl1_phos_panMps1a + J_Knl1_dephosp - J_Knl1_phos_Plk1a) + Knl1_diffusionRate + Knl1_init_uM + + + (J_Sgo1_CPCi_binding - J_pH2A_Sgo1_CPCi_binding - J_Sgo1_CPC_cis_activation - J_Sgo1_CPC_trans_activation_panCPCa) + Sgo1_CPCi_diffusionRate + Sgo1_CPCi_init_uM + + + (J_Sgo1_CPCa_binding - J_pH2A_Sgo1_CPCa_binding + J_Sgo1_CPC_cis_activation + J_Sgo1_CPC_trans_activation_panCPCa) + Sgo1_CPCa_diffusionRate + Sgo1_CPCa_init_uM + + + (J_H3_CPCi_binding - J_H3_CPC_cis_activation - J_H3_CPC_trans_activation_panCPCa) + H3_CPCi_diffusionRate + H3_CPCi_init_uM + + + (J_H3_CPC_cis_activation + J_H3_CPC_trans_activation_panCPCa + J_H3_CPCa_binding) + H3_CPCa_diffusionRate + H3_CPCa_init_uM + + + 0.0 + I_diffusionRate + I_init_uM + + + + + + + + + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + 0.0 + 0.0 + + + + + + cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user 234.rosee +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user smgroves +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw +cloned from 'Spatial_generated' owned by user sampresman +cloned from 'Spatial_generated' owned by user aca9pw + + + + (CPCa + pH2A_Sgo1_CPCa + H3_CPCa + pH3_CPCa + CPCi + pH2A_Sgo1_CPCi + H3_CPCi + pH3_CPCi + Sgo1_CPCi + Sgo1_CPCa) + (CPCi + pH2A_Sgo1_CPCi + H3_CPCi + pH3_CPCi + Sgo1_CPCi) + (CPCa + pH2A_Sgo1_CPCa + H3_CPCa + pH3_CPCa + Sgo1_CPCa) + (pH2A + pH2A_Sgo1 + pH2A_Sgo1_CPCa + pH2A_Sgo1_CPCi) + + + cloned from ' 09_16_25_metacentric_relaxed_model' owned by user smgroves +cloned from ' 09_16_25_metacentric_relaxed_model' owned by user aca9pw +cloned from ' 06_21_25_metacentric_relaxed_model_Borealin_500s' owned by user 234.rosee +cloned from '02_22_25_metacentric_relaxed_model_500s' owned by user aca9pw +cloned from '03_08_24_relaxed_RefModel_Knl1_scan' owned by user smgroves +cloned from '08_21_23_relaxed_RefModel_Mps1_phos_Plk1s transactiv' owned by user aca9pw +cloned from 'diffAhis_Dslow_Geo.1 - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'diffAhis_Dslow - kpp=0.1 kppKT=0.3 ' owned by user aca9pw +cloned from 'diffAhis - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'base model KdpNdc80pMps1 - kppKT = 0.1' owned by user aca9pw +cloned from 'base mode Dslow = 1E-03' owned by user temp + + + + + + + 2 + + 1 + + + + + + + + + cloned from ' 09_16_25_metacentric_relaxed_model' owned by user smgroves +cloned from ' 09_16_25_metacentric_relaxed_model' owned by user aca9pw +cloned from ' 06_21_25_metacentric_relaxed_model_Borealin_500s' owned by user 234.rosee +cloned from '02_22_25_metacentric_relaxed_model_500s' owned by user aca9pw +cloned from '03_08_24_relaxed_RefModel_Knl1_scan' owned by user smgroves +cloned from '08_21_23_relaxed_RefModel_Mps1_phos_Plk1s transactiv' owned by user aca9pw +cloned from 'diffAhis_Dslow_Geo.1 - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'diffAhis_Dslow - kpp=0.1 kppKT=0.3 ' owned by user aca9pw +cloned from 'diffAhis - kpp=0.1 kppKT=0.3 ' owned by user sampresman +cloned from 'base model KdpNdc80pMps1 - kppKT = 0.1' owned by user aca9pw +cloned from 'base mode Dslow = 1E-03' owned by user temp + + + + 1.0 + 1.0 + 1.0 + 1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user 234.rosee +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user smgroves +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +cloned from 'Spatial' owned by user sampresman +cloned from 'Spatial' owned by user aca9pw +owned by user aca9pw + + + + + + + + + cloned from '09_16_25 CPC_metacentric_relaxed_model_v2' owned by user smgroves +cloned from '09_16_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '06_21_25 CPC_metacentric_relaxed_model' owned by user 234.rosee +cloned from '02_24_25 CPC_metacentric_relaxed_model' owned by user aca9pw +cloned from '10_16_23_CPC_relaxed_RefModel_128x64' owned by user smgroves +cloned from '08_21_23_CPC_relaxed_RefModel_Mps1_phos_Plk1a transactiv' owned by user aca9pw +cloned from 'sam_07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.01um' owned by user sampresman +cloned from '07_31_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um_dslow' owned by user aca9pw +cloned from 'sam_07_17_23_CPC_model_relaxed_IX_hdiffusion_LineGeometry_.02um' owned by user sampresman +cloned from '06_14_23_CPC_model_relaxed_IX_kpps' owned by user aca9pw + + + + + + + + + + + + + + diff --git a/tests/fixtures/model_fixtures.py b/tests/fixtures/model_fixtures.py index 68e9b9a..65bfba6 100644 --- a/tests/fixtures/model_fixtures.py +++ b/tests/fixtures/model_fixtures.py @@ -19,3 +19,13 @@ def sbml_spatial_model_1d_path() -> Path: @pytest.fixture def sbml_spatial_bunny_3d_path() -> Path: return FIXTURE_DATA_DIR / "Bunny_sbml.xml" + + +@pytest.fixture +def vcml_sasco_model_path() -> Path: + return FIXTURE_DATA_DIR / "SASCO_09_16_25_CPC_mrm_v2.vcml" + + +@pytest.fixture +def vcml_sasco_model_with_velocity_path() -> Path: + return FIXTURE_DATA_DIR / "SASCO_09_16_25_vcelldev_modified_velocity.vcml" diff --git a/tests/vcml/test_modify_model.py b/tests/vcml/test_modify_model.py new file mode 100644 index 0000000..f9a13d4 --- /dev/null +++ b/tests/vcml/test_modify_model.py @@ -0,0 +1,28 @@ +from pathlib import Path + +import pyvcell.vcml as vc +from pyvcell.sim_results.result import Result +from pyvcell.vcml import Simulation + + +def test_add_model_parameter(vcml_sasco_model_path: Path) -> None: + # load model from vcml file + ######################################## + bio_model = vc.load_vcml_file(vcml_sasco_model_path) + application = bio_model.applications[0] + sim = application.simulations[0] + assert bio_model.model is not None + bio_model.model.add_model_parameter("KdNDC80TTK_MT", 1261.5) + bio_model.model.add_model_parameter("KdNDC80pTTK_MT", 30.5) + vc.simulate(bio_model, sim) + + +def test_velocity_modification(vcml_sasco_model_with_velocity_path: Path) -> None: + # load model from vcml file + ######################################## + bio_model = vc.load_vcml_file(vcml_sasco_model_with_velocity_path) + application = bio_model.applications[0] + sim: Simulation = application.simulations[0] + result: Result = vc.simulate(bio_model, sim) + velocity_channels: list[str] = [elem.label for elem in result.channel_data if "velocity" in elem.label] + assert len(velocity_channels) == 21 diff --git a/tests/vcml/test_results_writing.py b/tests/vcml/test_results_writing.py new file mode 100644 index 0000000..0630296 --- /dev/null +++ b/tests/vcml/test_results_writing.py @@ -0,0 +1,22 @@ +from pathlib import Path + +import pyvcell.vcml as vc +from pyvcell.sim_results.result import Result +from pyvcell.vcml import VCMLDocument, VcmlWriter + + +def test_sasco_experiment(vcml_sasco_model_path: Path) -> None: + # load the model, round-trip it through the writer, then run a single simulation + bio_model = vc.load_vcml_file(vcml_sasco_model_path) + + vcml_doc = VCMLDocument(biomodel=bio_model) + assert VcmlWriter().write_vcml(vcml_doc) + + sim = bio_model.applications[0].simulations[0] + result: Result = vc.simulate(biomodel=bio_model, simulation=sim.name) + try: + assert len(result.channel_data) > 0 + result.plotter.plot_slice_2d(1, "CPCa", 0) + result.plotter.plot_concentrations() + finally: + result.cleanup()