Source code for phenotypic.schema._linear_cap_and_lag_model
"""Fitted parameters for the double-softplus growth model (with saturation ceiling)."""
from ._measurement_info import Entry
from ._tiers import DerivedMeasure
[docs]
class LINEAR_CAP_AND_LAG_MODEL(DerivedMeasure):
"""Fitted parameters of the double-softplus growth model (with saturation).
Output columns are **metric-qualified**: each header is
``LinearCapAndLagModel_<metric>_<parameter>``, where ``<metric>`` records
the measurement the model was fit on (``self.on`` with its category prefix
stripped, e.g. ``Shape_Area`` → ``Area``). For example, fitting on
``Shape_Area`` emits ``LinearCapAndLagModel_Area_v`` (post-lag growth rate)
and ``LinearCapAndLagModel_Area_s0`` (initial size). The labels below are
the ``<parameter>`` segment; the ``<metric>`` infix is filled in at fit
time.
"""
[docs]
@classmethod
def category(cls) -> str:
return "LinearCapAndLagModel"
[docs]
@classmethod
def header_scheme(cls) -> str:
return "metric_qualified"
v = Entry("v", "The post-lag phase growth rate.",
tier=1, derivation_type="parameterization", derives_from="SIZE")
s0 = Entry("s0", "The initial size",
tier=1, derivation_type="parameterization", derives_from="SIZE")
lam = Entry("lambda", "The duration of the lag phase",
tier=1, derivation_type="parameterization", derives_from="SIZE")
alpha = Entry("alpha", "lag phase transition sharpness",
tier=2, derivation_type="parameterization", derives_from="SIZE")
smax = Entry(
"smax",
"Carrying capacity used by the model. Either the user-provided "
"scalar or the per-group observed maximum.",
tier=1, derivation_type="parameterization", derives_from="SIZE",
)
beta = Entry(
"beta",
"Saturation transition sharpness. Fitted per-group when a "
"saturation shoulder is detected and ``beta`` is ``None`` at "
"construction; held at the user-provided scalar (or the "
"module default) when no shoulder is present.",
tier=2, derivation_type="parameterization", derives_from="SIZE",
)
mode = Entry(
"mode",
"Fit variant selected per-group: 'fixed_beta' (beta held at "
"the user-provided or module-default value) or 'fitted_beta' "
"(beta fitted as a 5th free parameter when a saturation "
"shoulder is detected).",
derivation_type="diagnostic",
)