Skip to content

Modularize reaction model interface for Michaelis Menten #387

Closed as not planned
Closed as not planned
@AntoniaBerger

Description

@AntoniaBerger

This issue proposes a redesign of the kinetic reaction model interface to support different inhibition types in one reaction and the possibility of substrates acting as inhibitors.

Currently, reaction parameters are specified in a flat structure:

cadet.root.input.model.unit_000.reaction_model_particles = 'MICHAELIS_MENTEN'
cadet.root.input.model.unit_000.reaction_bulk.mm_vmax= v_max 
cadet.root.input.model.unit_000.reaction_bulk.mm_km= km
cadet.root.input.model.unit_000.reaction_bulk.mal_stoichiometry_bulk = stoich

This structure limits the ability to add inhibition logic or multiple interacting sub-models.

Proposed New Interface

The new interface introduces a hierarchy where each primary reaction can have one or more sub_reaction_* blocks that represent inhibition models:

cadet.root.input.model.unit_000.bulk_reaction_000.reaction_model = "MICHAELIS_MENTEN"
cadet.root.input.model.unit_000.bulk_reaction_000.v_max = 2.3

cadet.root.input.model.unit_000.bulk_reaction_000.sub_reaction_000.sub_reaction_model = "COMPETITIVE"
cadet.root.input.model.unit_000.bulk_reaction_000.sub_reaction_000.ki = [0, 1]
cadet.root.input.model.unit_000.bulk_reaction_000.sub_reaction_000.km = [1, 2]

cadet.root.input.model.unit_000.bulk_reaction_000.sub_reaction_001.sub_reaction_model = "NON_COMPETITIVE"
cadet.root.input.model.unit_000.bulk_reaction_000.sub_reaction_001.ki = [1, 1]

This structure allows:

  • Multiple inhibition types per reaction
  • Substrates to act as inhibitors via shared indices
  • More modular and therefore easy to extend
  • Easier to connect to CADET-Process

Possible Downsides

  • Configuration time may increase, as stoichiometries must now be built from arrays for each sub-reaction model

To-Do

  • Update interface with sub-reaction blocks
  • Extend model structure to allow substrates as inhibitors
  • Support multiple inhibition types per reaction (e.g., competitive + non-competitive)
  • Validate against previous structure to ensure backward compatibility
  • Update tests and documentation

Outlook

This interface is planned to be implemented for Michaelis-Menten reactions initially. If it proves useful, this could also be extended to the Mass Action Law reaction module as discussed in #77.

@schmoelder did I miss anyting?

Metadata

Metadata

Assignees

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions