Skip to content

Add competitive inhibition and uncompetitive inhibition#397

Merged
AntoniaBerger merged 1 commit intomasterfrom
feature/competative_uncompetative_inhibition
Sep 5, 2025
Merged

Add competitive inhibition and uncompetitive inhibition#397
AntoniaBerger merged 1 commit intomasterfrom
feature/competative_uncompetative_inhibition

Conversation

@AntoniaBerger
Copy link
Collaborator

@AntoniaBerger AntoniaBerger commented Apr 25, 2025

This PR fixes #386 and fixes #388.

To-do

  • Update residual
  • Update Jacobian
  • Test for simulation (comparison with micro kinetic)
  • Test for Jacobian (comparison with AD-jacobian)
  • Add Test do Cadet-Verification
  • Update documentation
  • Update parameter documentation

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR aims to update and refactor Michaelis–Menten test cases in reaction model simulations to reflect new distinctions between substrates and inhibitors. Key changes include:

  • Renaming test cases from inhibitor-related to substrate/non-inhibitor nomenclature.
  • Adding an extra tag "[testHere]" to test case identifiers.
  • Removing the inhibition-specific test function from ReactionModelTests.cpp.

Reviewed Changes

Copilot reviewed 7 out of 14 changed files in this pull request and generated no comments.

File Description
test/ReactionModels.cpp Test case names updated to reflect substrates/non-inhibitor behavior and extra tags added.
test/ReactionModelTests.cpp Inhibition-specific test function removed to align with new test case focus.
Files not reviewed (7)
  • doc/interface/reaction/michaelis_menten_kinetics.rst: Language not supported
  • doc/interface/reaction/michaelis_menten_kinetics_with_inhibition.rst: Language not supported
  • doc/modelling/reaction/michaelis_menten_kinetics.rst: Language not supported
  • test/data/configuration_CSTR_MichaelisMenten_benchmark1.json: Language not supported
  • test/data/configuration_CSTR_MichaelisMenten_benchmark2.json: Language not supported
  • test/data/configuration_CSTR_MichaelisMenten_twoInhib_benchmark1.json: Language not supported
  • test/data/configuration_CSTR_MicroKineticsSMA_benchmark1.json: Language not supported
Comments suppressed due to low confidence (2)

test/ReactionModelTests.cpp:322

  • The removal of the inhibition-specific test function could reduce test coverage for inhibition behavior. Ensure that inhibition scenarios are adequately covered by the new tests or update the documentation accordingly.
// Removed testMichaelisMentenToSMAInhibitionMicroKinetic function

test/ReactionModels.cpp:92

  • Test case names now reference 'substrates' rather than 'inhibitors', which seems inconsistent with the PR title mentioning inhibition. Verify that the test descriptions, configuration files, and overall PR purpose are aligned.
TEST_CASE("MichaelisMenten kinetic with two substrates and specific mass action law micro-kinetics yield same result", "[MichaelisMenten],[ReactionModel],[Simulation],[Reference],[CI],[testHere]")

@AntoniaBerger AntoniaBerger force-pushed the feature/competative_uncompetative_inhibition branch from c759040 to d199d61 Compare May 15, 2025 13:55
@AntoniaBerger AntoniaBerger force-pushed the feature/competative_uncompetative_inhibition branch 2 times, most recently from a29d278 to 2323277 Compare May 21, 2025 11:55
@AntoniaBerger AntoniaBerger marked this pull request as draft May 28, 2025 08:00
@schmoelder schmoelder changed the title Add competative inhibition and uncompetative inhibition Add competitive inhibition and uncompetitive inhibition May 28, 2025
Copy link
Contributor

@schmoelder schmoelder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work @AntoniaBerger, really looking forward to this feature in CADET :)

Just some small comments, mostly regarding typos.

@github-project-automation github-project-automation bot moved this from Todo to Awaiting Review in CADET Repositories May 28, 2025
@lieres
Copy link
Member

lieres commented May 28, 2025

In general, rates are defined per unit volume and time, whereas fluxes are defined per unit area and time. However, the terminology can be confusing, as the term flux is sometimes used interchangeably with rate, for instance, in metabolic flux analysis. For clarity and consistency with SI units, let's use the term rate here.

@AntoniaBerger AntoniaBerger force-pushed the feature/competative_uncompetative_inhibition branch 4 times, most recently from eaebbad to a2412b8 Compare August 14, 2025 10:59
@AntoniaBerger AntoniaBerger force-pushed the feature/competative_uncompetative_inhibition branch from 2f80a85 to 3c2f5ac Compare August 14, 2025 13:23
@jbreue16
Copy link
Contributor

what does the commit "Enable backward compatibility with previous Michaelis Menten interface" do exactly?
Does this include multiple interfaces now or am I missing something?

@AntoniaBerger
Copy link
Collaborator Author

AntoniaBerger commented Aug 14, 2025

what does the commit "Enable backward compatibility with previous Michaelis Menten interface" do exactly? Does this include multiple interfaces now or am I missing something?

It deletes the old version, which had an additional module for the competitive version, and integrates these features into the standard Meachelis Menten implementation. However, doing so also makes it possible to use the 'ki' parameter, which was present in the old version.

Edit: This is already the squashes version of this branch, so the commits are not 100% clean anymore.

@jbreue16
Copy link
Contributor

It deletes the old version, which had an additional module for the competitive version, and integrates these features into the standard Meachelis Menten implementation. However, doing so also makes it possible to use the 'ki' parameter, which was present in the old version.

ok i understand this as no multiple interfaces, which is great

@AntoniaBerger AntoniaBerger force-pushed the feature/competative_uncompetative_inhibition branch 3 times, most recently from 695e1c2 to 7a7b8eb Compare August 18, 2025 08:13
@AntoniaBerger AntoniaBerger force-pushed the feature/competative_uncompetative_inhibition branch from 7a7b8eb to 37b3e70 Compare August 26, 2025 08:40
Extent of the Michaelis-Menten module

The Michaelis-Menten reaction module can simulate multiple substrates.
three different inhibition models (competitive, uncompetitive and
non-competitive inhibition).

Main changes:
- Michaelis–Menten
- Benchmark tests
- documentation.

Docu (to be checked)
@AntoniaBerger AntoniaBerger force-pushed the feature/competative_uncompetative_inhibition branch from 37b3e70 to 6c18776 Compare September 5, 2025 12:03
Copy link
Contributor

@jbreue16 jbreue16 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, so cool !
we should remove the USER_SOLUTION_TIMES from the config files in the future to not have multiple thousands lines of code just for this, I thought that before in my PR's, Ive opened an issue for this

@jbreue16 jbreue16 marked this pull request as ready for review September 5, 2025 12:17
@schmoelder schmoelder dismissed their stale review September 5, 2025 13:12

I believe all requested changes were addressed.

@AntoniaBerger AntoniaBerger merged commit 65cafad into master Sep 5, 2025
4 checks passed
@github-project-automation github-project-automation bot moved this from Awaiting Review to Done in CADET Repositories Sep 5, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Sep 5, 2025
@jbreue16 jbreue16 deleted the feature/competative_uncompetative_inhibition branch September 16, 2025 14:57
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add uncompetitive inhibition Add competitive inhibition

4 participants