Closed as not planned
Description
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
Type
Projects
Status
Done