biocrnpyler.core.Hill

class biocrnpyler.core.Hill(k: float, s1: Species, K: float, n: float, d: Species)[source]

Bases: Propensity

Base class for Hill-type propensities.

Hill propensities implement cooperative binding kinetics with sigmoidal response curves. This base class provides common functionality for positive and negative Hill functions.

Parameters:
  • k (float or ParameterEntry) – Maximum rate constant. Must be positive.

  • s1 (Species) – Input species that drives the Hill function.

  • K (float or ParameterEntry) – Half-saturation (dissociation) constant. Must be positive.

  • n (float or ParameterEntry) – Hill coefficient (cooperativity). Must be positive. Values > 1 indicate positive cooperativity, < 1 negative cooperativity.

  • d (Species or None) – Optional species for proportional Hill functions. If provided, rate is proportional to this species concentration.

Attributes:
  • k (float) – Maximum rate constant value.

  • K (float) – Half-saturation constant value.

  • n (float) – Hill coefficient value.

  • s1 (Species) – Input species.

  • d (Species or None) – Proportional species (None for non-proportional Hill).

See also

HillPositive

Positive Hill function.

HillNegative

Negative Hill function (repression).

ProportionalHillPositive

Proportional positive Hill.

ProportionalHillNegative

Proportional negative Hill.

Notes

This is an abstract base class. Use the specific subclasses:

Hill functions are not reversible - k_reverse is not supported.

Methods

create_kinetic_law

Create SBML kinetic law for Hill propensity.

from_dict

Create a propensity from a dictionary.

get_available_propensities

Get all available propensity subclasses.

is_valid_propensity

Check if an object is a valid Propensity subclass instance.

pretty_print

Generate human-readable string representation of propensity.

pretty_print_parameters

Generate formatted string of all propensity parameters.

pretty_print_rate

Generate human-readable rate formula string.

property K

Half-saturation (dissociation) constant value.

Type:

float

__eq__(other)[source]

Test equality between propensities.

Parameters:

other (Propensity) – Other propensity to compare with.

Returns:

True if propensities have the same class and propensity_dict.

Return type:

bool

create_kinetic_law(model, sbml_reaction, stochastic, **kwargs)[source]

Create SBML kinetic law for Hill propensity.

This method is shared by all Hill subclasses.

Parameters:
  • model (libsbml.Model) – SBML model object.

  • sbml_reaction (libsbml.Reaction) – SBML reaction to add kinetic law to.

  • stochastic (bool) – If True, uses stochastic formulation (same as deterministic for Hill functions).

  • **kwargs – Additional arguments. ‘reverse_reaction’ is not supported.

Returns:

Created SBML kinetic law object.

Return type:

libsbml.KineticLaw

Raises:

ValueError – If reverse_reaction=True (Hill propensities cannot be reversible) or if rate formula is invalid.

property d

Proportional species (None if not proportional).

Type:

Species

classmethod from_dict(propensity_dict)[source]

Create a propensity from a dictionary.

Parameters:

propensity_dict (dict) – Dictionary with ‘parameters’ and ‘species’ keys containing parameter and species values.

Returns:

New instance of the propensity class.

Return type:

Propensity

static get_available_propensities() Set[source]

Get all available propensity subclasses.

Returns:

Set of all Propensity subclass types available in BioCRNpyler.

Return type:

set

Examples

>>> propensities = bcp.Propensity.get_available_propensities()
>>> bcp.MassAction in propensities
True
property is_reversible

Whether the propensity represents a reversible reaction.

Default is False. Subclasses override this for reversible kinetics.

Type:

bool

static is_valid_propensity(propensity_type) bool[source]

Check if an object is a valid Propensity subclass instance.

Recursively checks all subclasses of Propensity to determine if the given object is a valid propensity type.

Parameters:

propensity_type (object) – Object to check for Propensity validity.

Returns:

True if propensity_type is an instance of Propensity or any of its subclasses, False otherwise.

Return type:

bool

Examples

>>> prop = bcp.MassAction(k_forward=100.0)
>>> bcp.Propensity.is_valid_propensity(prop)
True
>>> bcp.Propensity.is_valid_propensity("not a propensity")
False
property k

Maximum rate constant value.

Type:

float

property k_forward

Forward rate constant.

Raises:

NotImplementedError – Must be implemented by subclasses that use rate constants.

Type:

Float

property k_reverse

Reverse rate constant for reversible reactions.

Raises:

NotImplementedError – Must be implemented by subclasses that use rate constants.

Type:

Float or None

property n

Hill coefficient (cooperativity) value.

Type:

float

pretty_print(show_parameters=True, **kwargs)[source]

Generate human-readable string representation of propensity.

Parameters:
  • show_parameters (bool, default True) – If True, includes parameter values in output.

  • **kwargs – Additional keyword arguments passed to formatting methods.

Returns:

Formatted string showing rate formula and optionally parameters.

Return type:

str

pretty_print_parameters(show_keys=True, **kwargs)[source]

Generate formatted string of all propensity parameters.

Parameters:
  • show_keys (bool, default True) – If True, shows search and found keys for ModelParameter objects (useful for debugging parameter lookup).

  • **kwargs – Additional formatting keyword arguments.

Returns:

Formatted string listing all parameters and their values.

Return type:

str

pretty_print_rate(show_parameters=True, **kwargs)[source]

Generate human-readable rate formula string.

Raises:

NotImplementedError – Hill base class doesn’t have a rate formula. Use subclasses HillPositive, HillNegative, ProportionalHillPositive, or ProportionalHillNegative.

property s1

Input species driving the Hill function.

Type:

Species

property species: List

All species used in the propensity function.

Type:

List of Species