pymixef package¶
PyMixEF: mixed-effects statistics and pharmacometrics in Python.
The package is fully offline and emits no telemetry. Public capabilities carry
explicit evidence/maturity labels; use iter_capabilities() or the CLI
pymixef capabilities before relying on an experimental calculation path.
- class pymixef.ApproximationSensitivityResult(table, fits, failures, baseline, settings, materiality)[source]¶
Bases:
objectCross-setting refit comparisons with explicit failure accounting.
- Parameters:
table (DiagnosticTable)
fits (Mapping[str, FitResult])
failures (tuple[Mapping[str, Any], ...])
baseline (str)
settings (Mapping[str, Mapping[str, Any]])
materiality (Mapping[str, float])
- table: DiagnosticTable¶
- failures: tuple[Mapping[str, Any], ...]¶
- baseline: str¶
- settings: Mapping[str, Mapping[str, Any]]¶
- materiality: Mapping[str, float]¶
- property failed_scenarios: int¶
Number of settings whose fit failed or returned unusable output.
- property successful_scenarios: int¶
Number of settings whose fit completed successfully.
- class pymixef.BootstrapResult(draws, failures, seed, resampling)[source]¶
Bases:
objectParameter draws, failure accounting, and interval calculations.
- Parameters:
draws (DiagnosticTable)
failures (tuple[Mapping[str, Any], ...])
seed (int)
resampling (str)
- draws: DiagnosticTable¶
- failures: tuple[Mapping[str, Any], ...]¶
- seed: int¶
- resampling: str¶
- property failed_replicates: int¶
- intervals(level=0.95, *, method='percentile')[source]¶
- Parameters:
level (float)
method (str)
- Return type:
- property successful_replicates: int¶
- class pymixef.BoundaryRecord(parameter, value, boundary='zero', tolerance=None)[source]¶
Bases:
objectOne natural-scale parameter on or near a numerical boundary.
- Parameters:
parameter (str)
value (float)
boundary (str)
tolerance (float | None)
- parameter: str¶
- value: float¶
- boundary: str¶
- tolerance: float | None¶
- class pymixef.ComparisonResult(table, compatibility, objective_difference, conventions)[source]¶
Bases:
objectAligned comparison plus its convention-compatibility report.
- Parameters:
table (DiagnosticTable)
compatibility (CompatibilityReport)
objective_difference (float | None)
conventions (Mapping[str, Any])
- table: DiagnosticTable¶
- compatibility: CompatibilityReport¶
- objective_difference: float | None¶
- conventions: Mapping[str, Any]¶
- exception pymixef.CompatibilityError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
PyMixEFErrorTwo scientific objects cannot safely be compared or translated.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'COMPATIBILITY-001'¶
- class pymixef.ConvergenceReport(status, optimizer_terminated, optimizer_message='', iterations=None, objective_evaluations=None, gradient_evaluations=None, scaled_gradient_inf_norm=None, parameter_step_norm=None, hessian=<factory>, boundaries=(), conditional_mode_failures=0, ode_failures=0, warnings=(), engine_metrics=<factory>)[source]¶
Bases:
objectStructured convergence contract shared by every estimator.
- Parameters:
status (str)
optimizer_terminated (bool)
optimizer_message (str)
iterations (int | None)
objective_evaluations (int | None)
gradient_evaluations (int | None)
scaled_gradient_inf_norm (float | None)
parameter_step_norm (float | None)
hessian (HessianDiagnostics)
boundaries (tuple[BoundaryRecord, ...])
conditional_mode_failures (int)
ode_failures (int)
warnings (tuple[WarningRecord, ...])
engine_metrics (Mapping[str, Any])
- status: str¶
- optimizer_terminated: bool¶
- optimizer_message: str¶
- iterations: int | None¶
- objective_evaluations: int | None¶
- gradient_evaluations: int | None¶
- scaled_gradient_inf_norm: float | None¶
- parameter_step_norm: float | None¶
- hessian: HessianDiagnostics¶
- boundaries: tuple[BoundaryRecord, ...]¶
- conditional_mode_failures: int¶
- ode_failures: int¶
- warnings: tuple[WarningRecord, ...]¶
- engine_metrics: Mapping[str, Any]¶
- classmethod assess(*, optimizer_terminated, gradient=None, hessian=None, gradient_tolerance=1e-4, boundaries=(), warnings=(), **metrics)[source]¶
Construct a report from common deterministic optimizer diagnostics.
- Parameters:
optimizer_terminated (bool)
gradient (ndarray | None)
hessian (ndarray | None)
gradient_tolerance (float)
boundaries (Iterable[BoundaryRecord])
warnings (Iterable[WarningRecord | Mapping[str, Any]])
metrics (Any)
- Return type:
- property trustworthy: bool¶
Whether termination and numerical checks support routine interpretation.
- exception pymixef.CovarianceError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
ValidationErrorA covariance declaration or matrix is invalid.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'COV-INVALID-001'¶
- exception pymixef.DataError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
ValidationErrorInput data cannot be adapted without changing its meaning.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'DATA-INVALID-001'¶
- exception pymixef.EngineCompatibilityError(message, *, suggested_engines=(), **kwargs)[source]¶
Bases:
UnsupportedCapabilityErrorThe selected estimator cannot represent the compiled model.
- Parameters:
message (str)
suggested_engines (list[str] | tuple[str, ...])
kwargs (Any)
- Return type:
None
- class pymixef.ExecutionPlan(model, matrices, model_ir, source_data, engine, method, settings, validation)[source]¶
Bases:
objectDeterministic compiled model, data audit, and engine settings.
- Parameters:
model (Model)
matrices (DesignMatrices)
model_ir (ModelIR)
source_data (Any)
engine (str)
method (str)
settings (Mapping[str, Any])
validation (ValidationReport)
- matrices: DesignMatrices¶
- source_data: Any¶
- engine: str¶
- method: str¶
- settings: Mapping[str, Any]¶
- validation: ValidationReport¶
- class pymixef.FitResult(model_ir, parameters, unconstrained_parameters, parameter_covariance, fitted_values, residuals, random_effects, objective, log_likelihood, method, engine, convergence, manifest, warnings=(), diagnostic_data=<factory>, extra=<factory>, result_schema_version='1.0.0')[source]¶
Bases:
objectResult contract shared by frequentist, stochastic, and Bayesian engines.
- Parameters:
model_ir (Any)
parameters (Mapping[str, float])
unconstrained_parameters (Mapping[str, float])
parameter_covariance (ndarray | None)
fitted_values (ndarray)
residuals (ndarray)
random_effects (Mapping[str, Any])
objective (float)
log_likelihood (float | None)
method (str)
engine (str)
convergence (ConvergenceReport)
manifest (RunManifest)
warnings (tuple[WarningRecord, ...])
diagnostic_data (Mapping[str, DiagnosticTable])
extra (Mapping[str, Any])
result_schema_version (str)
- model_ir: Any¶
- parameters: Mapping[str, float]¶
- unconstrained_parameters: Mapping[str, float]¶
- parameter_covariance: ndarray | None¶
- fitted_values: ndarray¶
- residuals: ndarray¶
- random_effects: Mapping[str, Any]¶
- objective: float¶
- log_likelihood: float | None¶
- method: str¶
- engine: str¶
- convergence: ConvergenceReport¶
- manifest: RunManifest¶
- warnings: tuple[WarningRecord, ...]¶
- diagnostic_data: Mapping[str, DiagnosticTable]¶
- extra: Mapping[str, Any]¶
- result_schema_version: str¶
- classmethod load(path, *, verify_integrity=True, require_sidecar=False)[source]¶
Load an archived result and verify its hash sidecar when available.
Legacy or externally produced JSON may omit the sidecar. Set
require_sidecar=Truewhen the calling workflow requires an integrity record. Integrity verification can be disabled only explicitly.- Parameters:
path (str | Path)
verify_integrity (bool)
require_sidecar (bool)
- Return type:
- property n_observations: int¶
- prediction(*, mode='conditional')[source]¶
Return an explicitly named prediction mode for the analysis rows.
- Parameters:
mode (str)
- Return type:
ndarray
- residual_diagnostics(*, observed=None, variance=None)[source]¶
- Parameters:
observed (Sequence[float] | None)
variance (Sequence[float] | float | None)
- Return type:
- save(path)[source]¶
Save the full result as versioned JSON; never pickle.
- Parameters:
path (str | Path)
- Return type:
Path
- simulate(*, n_replicates=1, seed=None, parameter_uncertainty='none', random_effects=True, residual_error=True, output='numpy', design=None)[source]¶
Simulate from archived Gaussian calculations or a backend simulator.
The arguments follow PyMixEF’s public simulation contract. A backend may archive a callable simulator for an in-memory result, but archival reloads use the standardized Gaussian fallback only when its assumptions are explicit.
- Parameters:
n_replicates (int)
seed (int | None)
parameter_uncertainty (str)
random_effects (bool)
residual_error (bool)
output (str)
design (Any)
- Return type:
ndarray | DiagnosticTable
- property success: bool¶
A compatibility convenience; inspect
convergencefor real detail.
- summary()[source]¶
Return a concise text summary separating estimates and convergence.
- Return type:
str
- vpc(*, data=None, independent=None, bins='adaptive', prediction_corrected=False, simulations=1000, seed=None)[source]¶
- Parameters:
data (Sequence[float] | None)
independent (Sequence[float] | None)
bins (str | int | Sequence[float])
prediction_corrected (bool)
simulations (int)
seed (int | None)
- Return type:
- class pymixef.Fixed(expression)[source]¶
Bases:
objectFixed-effects expression in the safe formula grammar.
- Parameters:
expression (str)
- expression: str¶
- exception pymixef.FormulaError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
ValidationErrorA formula is syntactically invalid, unsafe, or semantically ambiguous.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'FORMULA-SYNTAX-001'¶
- class pymixef.GroupInfluenceResult(table, failures, group_column, requested_groups)[source]¶
Bases:
objectDelete-whole-group refits with optional approximation comparisons.
- Parameters:
table (DiagnosticTable)
failures (tuple[Mapping[str, Any], ...])
group_column (str)
requested_groups (int)
- table: DiagnosticTable¶
- failures: tuple[Mapping[str, Any], ...]¶
- group_column: str¶
- requested_groups: int¶
- property failed_groups: int¶
Number of grouping levels whose full refit failed.
- property successful_groups: int¶
Number of grouping levels with a completed full refit.
- class pymixef.HessianDiagnostics(positive_definite=None, min_eigenvalue=None, max_eigenvalue=None, condition_number=None, effective_rank=None)[source]¶
Bases:
objectDefiniteness and conditioning summary for an observed Hessian.
- Parameters:
positive_definite (bool | None)
min_eigenvalue (float | None)
max_eigenvalue (float | None)
condition_number (float | None)
effective_rank (int | None)
- positive_definite: bool | None¶
- min_eigenvalue: float | None¶
- max_eigenvalue: float | None¶
- condition_number: float | None¶
- effective_rank: int | None¶
- exception pymixef.IRValidationError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
ValidationErrorA model IR violates the versioned schema’s semantic invariants.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'IR-VALIDATION-001'¶
- exception pymixef.IRVersionError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
PyMixEFErrorA serialized model IR uses an unsupported or unsafe schema version.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'IR-VERSION-001'¶
- class pymixef.Maturity(*values)[source]¶
Bases:
StrEnumEvidence tier attached to every public capability.
- EXPERIMENTAL = 'experimental'¶
- STABLE = 'stable'¶
- REFERENCE_VALIDATED = 'reference-validated'¶
- REGULATED_WORKFLOW_SUPPORT = 'regulated-workflow-support'¶
- class pymixef.Model(response=None, fixed=None, random=(), family=<factory>, residual=None, formula=None, zero_inflation=None, dispersion=None, shape=None, priors=<factory>, metadata=<factory>)[source]¶
Bases:
objectBackend-neutral scientific model.
Construct with a formula through
from_formula(), or provideResponse,Fixed, andRandomdeclarations directly.- Parameters:
- residual: Any¶
- formula: str | None¶
- zero_inflation: str | None¶
- dispersion: str | None¶
- shape: str | None¶
- priors: Mapping[str, Any]¶
- metadata: Mapping[str, Any]¶
- compile(data, *, engine=None, method=None, missing='drop', **settings)[source]¶
- Parameters:
data (Any)
engine (str | None)
method (str | None)
missing (str)
settings (Any)
- Return type:
- explain(data=None, *, engine=None, method=None, missing='drop')[source]¶
- Parameters:
data (Any | None)
engine (str | None)
method (str | None)
missing (str)
- Return type:
str
- fit(data, *, engine=None, method=None, missing='drop', **settings)[source]¶
- Parameters:
data (Any)
engine (str | None)
method (str | None)
missing (str)
settings (Any)
- Return type:
- classmethod from_formula(formula, *, family=None, residual=None, zero_inflation=None, dispersion=None, shape=None, priors=None, metadata=None)[source]¶
- property specification: FormulaSpec¶
- to_ir(*, engine=None, method=None)[source]¶
Compile data-independent semantics into the shared versioned IR.
- Parameters:
engine (str | None)
method (str | None)
- Return type:
- class pymixef.ModelIR(schema_version='1.0.0', name=None, source=None, formula=None, response=None, family='gaussian', fixed_effects=(), random_effects=(), predictors=(), likelihoods=(), covariance_structures=(), state_equations=(), events=(), parameters=(), transforms=(), priors=(), outputs=(), data_schema=<factory>, estimator=<factory>, metadata=<factory>)[source]¶
Bases:
objectComplete backend-neutral scientific model graph.
- Parameters:
schema_version (str)
name (str | None)
source (str | None)
formula (str | None)
response (str | None)
family (str)
fixed_effects (tuple[FixedEffectIR, ...])
random_effects (tuple[RandomEffectIR, ...])
predictors (tuple[PredictorIR, ...])
likelihoods (tuple[LikelihoodIR, ...])
covariance_structures (tuple[CovarianceIR, ...])
state_equations (tuple[StateEquationIR, ...])
events (tuple[EventIR, ...])
parameters (tuple[ParameterIR, ...])
transforms (tuple[TransformIR, ...])
priors (tuple[PriorIR, ...])
outputs (tuple[OutputIR, ...])
data_schema (Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON], ...] | Mapping[str, None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON]]])
estimator (Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON], ...] | Mapping[str, None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON]]])
metadata (Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON], ...] | Mapping[str, None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON]]])
- schema_version: str¶
- name: str | None¶
- source: str | None¶
- formula: str | None¶
- response: str | None¶
- family: str¶
- fixed_effects: tuple[FixedEffectIR, ...]¶
- random_effects: tuple[RandomEffectIR, ...]¶
- predictors: tuple[PredictorIR, ...]¶
- likelihoods: tuple[LikelihoodIR, ...]¶
- covariance_structures: tuple[CovarianceIR, ...]¶
- state_equations: tuple[StateEquationIR, ...]¶
- parameters: tuple[ParameterIR, ...]¶
- transforms: tuple[TransformIR, ...]¶
- data_schema: Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON], ...] | Mapping[str, None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON]]]¶
- estimator: Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON], ...] | Mapping[str, None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON]]]¶
- metadata: Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON], ...] | Mapping[str, None | bool | int | float | str | tuple[FrozenJSON, ...] | Mapping[str, FrozenJSON]]]¶
- canonical_json()[source]¶
Return deterministic compact JSON used for identity and hashes.
- Return type:
str
- classmethod from_dict(document, *, migrate=True)[source]¶
Validate, optionally migrate, and construct a model IR document.
- Parameters:
document (Mapping[str, Any])
migrate (bool)
- Return type:
- classmethod from_json(document, *, migrate=True)[source]¶
Load a model from a JSON string or bytes.
- Parameters:
document (str | bytes)
migrate (bool)
- Return type:
- property hash: str¶
Alias for
semantic_hash.
- property semantic_hash: str¶
SHA-256 digest of the canonical mathematical representation.
- class pymixef.PatternMixtureResult(data, response, imputed_column, stratified_by, records, source_fingerprint)[source]¶
Bases:
objectAdjusted completed data paired with a row-level sensitivity audit.
- Parameters:
data (ColumnarData)
response (str)
imputed_column (str | None)
stratified_by (tuple[str, ...])
records (tuple[PatternMixtureRecord, ...])
source_fingerprint (str)
- data: ColumnarData¶
- response: str¶
- imputed_column: str | None¶
- stratified_by: tuple[str, ...]¶
- records: tuple[PatternMixtureRecord, ...]¶
- source_fingerprint: str¶
- property adjusted_rows: int¶
Number of explicitly imputed response values adjusted.
- exception pymixef.PluginError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
PyMixEFErrorA plugin registration or discovery operation failed.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'PLUGIN-ERROR-001'¶
- exception pymixef.PyMixEFError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
ExceptionBase class for all expected PyMixEF failures.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'PYMIXEF-ERROR-001'¶
- class pymixef.Random(expression, group, covariance='unstructured', correlated=None)[source]¶
Bases:
objectOne structured random-effects declaration.
- Parameters:
expression (str)
group (str)
covariance (str)
correlated (bool | None)
- expression: str¶
- group: str¶
- covariance: str¶
- class pymixef.RandomStreamManager(seed, namespace='pymixef')[source]¶
Bases:
objectCreate order-independent NumPy Philox streams from a recorded root seed.
- Parameters:
seed (int)
namespace (str)
- seed: int¶
- namespace: str¶
- generator(component, *, replicate=0, chain=0)[source]¶
- Parameters:
component (str)
replicate (int)
chain (int)
- Return type:
Generator
- class pymixef.ReproducibilityClass(*values)[source]¶
Bases:
StrEnumNumerical reproducibility guarantee declared by an engine.
- BITWISE = 'bitwise'¶
- DETERMINISTIC_TOLERANCE = 'deterministic-with-tolerance'¶
- STOCHASTIC_MONTE_CARLO = 'stochastic-with-monte-carlo-error'¶
- class pymixef.Response(name, unit=None)[source]¶
Bases:
objectExplicit response declaration for the structured builder.
- Parameters:
name (str)
unit (str | None)
- name: str¶
- unit: str | None¶
- class pymixef.RunManifest(manifest_schema_version, package_version, created_at_utc, model_ir_hash, data_hash, engine, method, settings, seeds, reproducibility_class, environment, elapsed_seconds=None, output_hashes=<factory>, source=<factory>, convergence=<factory>, warnings=())[source]¶
Bases:
objectComplete, serializable description of a PyMixEF execution.
- Parameters:
manifest_schema_version (str)
package_version (str)
created_at_utc (str)
model_ir_hash (str)
data_hash (str)
engine (str)
method (str)
settings (Mapping[str, Any])
seeds (Mapping[str, int])
reproducibility_class (str)
environment (Mapping[str, Any])
elapsed_seconds (float | None)
output_hashes (Mapping[str, str])
source (Mapping[str, Any])
convergence (Mapping[str, Any])
warnings (tuple[Mapping[str, Any], ...])
- manifest_schema_version: str¶
- package_version: str¶
- created_at_utc: str¶
- model_ir_hash: str¶
- data_hash: str¶
- engine: str¶
- method: str¶
- settings: Mapping[str, Any]¶
- seeds: Mapping[str, int]¶
- reproducibility_class: str¶
- environment: Mapping[str, Any]¶
- elapsed_seconds: float | None¶
- output_hashes: Mapping[str, str]¶
- source: Mapping[str, Any]¶
- convergence: Mapping[str, Any]¶
- warnings: tuple[Mapping[str, Any], ...]¶
- classmethod capture(*, model_ir, data, engine, method, settings=None, seeds=None, reproducibility_class=ReproducibilityClass.DETERMINISTIC_TOLERANCE, elapsed_seconds=None, source=None, convergence=None, warnings=())[source]¶
- Parameters:
model_ir (Any)
data (Any)
engine (str)
method (str)
settings (Mapping[str, Any] | None)
seeds (Mapping[str, int] | None)
reproducibility_class (ReproducibilityClass | str)
elapsed_seconds (float | None)
source (Mapping[str, Any] | None)
convergence (Mapping[str, Any] | None)
warnings (Sequence[Mapping[str, Any]])
- Return type:
- exception pymixef.UnsupportedCapabilityError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
PyMixEFErrorNo selected engine can execute a requested scientific capability.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'ENGINE-UNSUPPORTED-001'¶
- exception pymixef.ValidationError(message, *, code=None, remediation=None, details=None, source_location=None)[source]¶
Bases:
PyMixEFErrorA model failed deterministic semantic validation.
- Parameters:
message (str)
code (str | None)
remediation (str | None)
details (Mapping[str, Any] | None)
source_location (str | None)
- Return type:
None
- default_code = 'MODEL-VALIDATION-001'¶
- class pymixef.WarningRecord(code, severity, message, component=None, remediation=None, details=<factory>)[source]¶
Bases:
objectMachine-readable scientific or numerical warning.
- Parameters:
code (str)
severity (str)
message (str)
component (str | None)
remediation (str | None)
details (Mapping[str, Any])
- code: str¶
- severity: str¶
- message: str¶
- component: str | None¶
- remediation: str | None¶
- details: Mapping[str, Any]¶
- pymixef.approximation_sensitivity(fit_function, scenarios, *, materiality, baseline=None)[source]¶
Refit named approximation settings and compare aligned outputs.
fit_functionreceives an independent deep copy of one settings mapping per scenario. The baseline must succeed; other failures are retained with scenario, exception type, and message. Successful fits must expose the same parameter names and an aligned parameter covariance matrix. The tidy result reports parameter, standard-error, and objective changes relative to the baseline.materialitymust define nonnegative thresholds namedparameter_relative,standard_error_relative, andobjective_absolute. Per-row flags preserve the caller’s scientific decision rule instead of embedding an undocumented universal threshold.This callback-based contract supports sensitivity analyses such as Laplace optimizer tolerances, MMRM covariance/degree-of-freedom choices, or ODE solver tolerances without embedding engine-specific assumptions.
- Parameters:
fit_function (Callable[[Mapping[str, Any]], FitResult])
scenarios (Mapping[str, Mapping[str, Any]])
materiality (Mapping[str, float])
baseline (str | None)
- Return type:
- pymixef.bootstrap(fit_function, data, *, n_replicates, seed, cluster=None, checkpoint=None, resume=True)[source]¶
Run a nonparametric row or cluster bootstrap with restartable checkpoints.
- Parameters:
fit_function (Callable[[Mapping[str, ndarray]], FitResult])
data (Any)
n_replicates (int)
seed (int)
cluster (str | None)
checkpoint (str | Path | None)
resume (bool)
- Return type:
- pymixef.change_impact(paths)[source]¶
Classify changed paths and recommend a conservative validation subset.
This static policy only reports test targets; it does not inspect diffs or execute the recommended tests.
- Parameters:
paths (Iterable[str | PathLike[str]])
- Return type:
dict[str, Any]
- pymixef.create_validation_bundle(result, path, *, analysis_data=None, include_data=False, additional_files=())[source]¶
Create a deterministic, self-describing validation evidence archive.
Raw analysis data is excluded by default. Set
include_data=Trueonly after confirming that the destination may contain the supplied data.- Parameters:
result (FitResult)
path (str | Path)
analysis_data (Any | None)
include_data (bool)
additional_files (Sequence[str | Path])
- Return type:
Path
- pymixef.diff_models(before, after)[source]¶
Compare two model IR objects and classify every semantic change.
- pymixef.fit(formula, *, data, family=None, residual=None, method=None, engine=None, inference=None, zero_inflation=None, dispersion=None, shape=None, missing='drop', **settings)[source]¶
Fit a formula or prebuilt model through static compatibility dispatch.
- pymixef.get_capability(identifier)[source]¶
Look up a capability by stable requirement identifier.
- Parameters:
identifier (str)
- Return type:
- pymixef.group_influence(fit_function, data, *, group, baseline=None, approximation=None)[source]¶
Measure influence by deleting complete grouping levels and refitting.
fit_functionreceives a column mapping and must return a fit-like object withparameters, finiteobjective,convergence, and an archivedfixed_effect_rankin convergence engine metrics or result extras;parameter_covarianceis optional. Ifbaselineis omitted, the callback first fits the full data. Every subsequent callback receives all rows except one complete grouping level—individual rows are never deleted in isolation.An optional
approximation(group_value, baseline)callback can return approximate delete-group parameter estimates. The result then records the approximation error beside the full-refit change, making the approximation auditable rather than silently substituting it for a refit.- Parameters:
fit_function (Callable[[Mapping[str, ndarray]], Any])
data (Any)
group (str)
baseline (Any | None)
approximation (Callable[[Any, Any], Mapping[str, float]] | None)
- Return type:
- pymixef.iter_capabilities(*, implemented=None, stage=None, maturity=None)[source]¶
Filter the immutable capability registry.
- Parameters:
implemented (bool | None)
stage (str | None)
maturity (Maturity | None)
- Return type:
Iterable[Capability]
- pymixef.load(*, verify_integrity=True, require_sidecar=False)¶
Load an archived result and verify its hash sidecar when available.
Legacy or externally produced JSON may omit the sidecar. Set
require_sidecar=Truewhen the calling workflow requires an integrity record. Integrity verification can be disabled only explicitly.- Parameters:
verify_integrity (bool)
require_sidecar (bool)
- Return type:
- pymixef.pattern_mixture_adjust(data, *, response, imputed, delta, by=None)[source]¶
Apply an audited delta adjustment only to explicitly imputed responses.
This is a controlled pattern-mixture data transformation, not an imputation algorithm. Callers first complete the response under their primary missing-at-random procedure, then identify those imputed cells with
imputed. A scalardeltaapplies one response-scale shift. A mapping requiresbyand supplies a shift for every selected stratum; with multiplebycolumns, mapping keys are tuples in the same order.Observed response values and every non-response column are preserved exactly. The returned records retain source row identities, the base imputed value, applied shift, and adjusted value.
- Parameters:
data (Any)
response (str)
imputed (str | ArrayLike)
delta (float | Mapping[Any, float])
by (str | Sequence[str] | None)
- Return type:
- pymixef.random_streams(seed, *, namespace='pymixef')[source]¶
Construct a named counter-based stream manager.
- Parameters:
seed (int)
namespace (str)
- Return type:
- pymixef.render_report(result, path)[source]¶
Render a result as Markdown, HTML, PDF, or Word.
PDF and Word require the optional
reportdependencies. All formats are generated from the same immutable Markdown content.- Parameters:
result (FitResult)
path (str | Path)
- Return type:
Path
- pymixef.traceability_matrix()[source]¶
Return the built-in public traceability matrix.
- Return type:
tuple[TraceabilityRecord, …]
- pymixef.verify_validation_bundle(path)[source]¶
Verify internal hashes and return the archived manifest.
- Parameters:
path (str | Path)
- Return type:
dict[str, Any]
Subpackages¶
- pymixef.backends package
BackendBackendErrorBackendInputErrorBackendNumericalErrorBackendUnsupportedErrorDenseLMMBackendGLMMBackendGaussianLMMBackendLMMBackendLaplaceGLMMBackendMMRMBackendfit_glmm()fit_lmm()fit_mmrm()get_backend()validate_payload()- Submodules
- pymixef.backends.base module
BackendBackendErrorBackendInputErrorBackendNumericalErrorBackendUnsupportedErrorCompiledDataCovarianceParameterizationRandomBlockDatabackend_mapping()cho_solve()convergence_mapping()covariance_from_hessian()covariance_slices()factorize()field()finite_gradient()finite_hessian()logdet_from_cholesky()make_payload()optimizer_covariance()prepare_data()prepare_random_block()random_covariance()safe_cholesky()select_optimizer_result()validate_payload()
- pymixef.backends.glmm module
- pymixef.backends.lmm module
- pymixef.backends.mmrm module
- pymixef.backends.base module
- pymixef.interoperability package
CompatibilityReportInterchangeResultexport_pharmml()export_sbml()export_sedml()import_nonmem_data()import_nonmem_table()import_pharmml()import_sbml()import_sedml()parse_control_stream()translate_r_formula()- Submodules
- pymixef.pharmacometrics package
AdditiveErrorAuditEntryCanonicalEventCanonicalEvent.subject_idCanonicalEvent.timeCanonicalEvent.evidCanonicalEvent.amountCanonicalEvent.amount_statusCanonicalEvent.rateCanonicalEvent.durationCanonicalEvent.compartmentCanonicalEvent.additionalCanonicalEvent.intervalCanonicalEvent.steady_stateCanonicalEvent.mdvCanonicalEvent.dvCanonicalEvent.lloqCanonicalEvent.occasionCanonicalEvent.bioavailabilityCanonicalEvent.lagCanonicalEvent.covariatesCanonicalEvent.extrasCanonicalEvent.row_idCanonicalEvent.source_row_idCanonicalEvent.source_positionCanonicalEvent.generatedCanonicalEvent.generationCanonicalEvent.ADDLCanonicalEvent.AMTCanonicalEvent.CMTCanonicalEvent.DURCanonicalEvent.DVCanonicalEvent.EVIDCanonicalEvent.IDCanonicalEvent.IICanonicalEvent.LLOQCanonicalEvent.MDVCanonicalEvent.RATECanonicalEvent.SSCanonicalEvent.TIMECanonicalEvent.addlCanonicalEvent.amtCanonicalEvent.cmtCanonicalEvent.effective_amountCanonicalEvent.effective_rateCanonicalEvent.event_typeCanonicalEvent.idCanonicalEvent.iiCanonicalEvent.infusion_durationCanonicalEvent.is_doseCanonicalEvent.is_infusionCanonicalEvent.is_observationCanonicalEvent.is_resetCanonicalEvent.kindCanonicalEvent.ssCanonicalEvent.to_record()
CombinedErrorCompiledModelCompiledModel.nameCompiledModel.parametersCompiledModel.etasCompiledModel.statesCompiledModel.symbolsCompiledModel.dosesCompiledModel.equationsCompiledModel.observationsCompiledModel.schema_versionCompiledModel.authoring_modeCompiledModel.explain()CompiledModel.to_dict()CompiledModel.to_ir()CompiledModel.validate()
ConditionalModeErrorConditionalModeResultConditionalModeResult.etaConditionalModeResult.objectiveConditionalModeResult.observation_objectiveConditionalModeResult.random_effect_objectiveConditionalModeResult.gradientConditionalModeResult.hessianConditionalModeResult.covarianceConditionalModeResult.successConditionalModeResult.messageConditionalModeResult.iterationsConditionalModeResult.function_evaluationsConditionalModeResult.gradient_normConditionalModeResult.hessian_positive_definiteConditionalModeResult.warning_codes
ConditionalObjectiveConditionalObjective.observationsConditionalObjective.predictConditionalObjective.omegaConditionalObjective.errorConditionalObjective.error_parametersConditionalObjective.censoredConditionalObjective.lower_limitsConditionalObjective.include_constantsConditionalObjective.components()ConditionalObjective.eta_dimension
DSLValidationErrorDifferentialEquationDoseDoseAmountStatusEstimationErrorEtaEventSnapshotEventTableEventTypeEventValidationErrorExprLaplacePopulationResultLogNormalErrorModelDefinitionModelValidationODEContextODESimulationErrorODESimulationResultODESimulationResult.timesODESimulationResult.statesODESimulationResult.state_namesODESimulationResult.observationsODESimulationResult.metadataODESimulationResult.subject_idODESimulationResult.sensitivitiesODESimulationResult.sensitivity_parametersODESimulationResult.sensitivity()ODESimulationResult.state()
ODESolverMetadataODESolverMetadata.solverODESolverMetadata.scipy_versionODESolverMetadata.rtolODESolverMetadata.atolODESolverMetadata.max_stepODESolverMetadata.successODESolverMetadata.messageODESolverMetadata.nfevODESolverMetadata.njevODESolverMetadata.nluODESolverMetadata.segmentsODESolverMetadata.event_actionsODESolverMetadata.source_eventsODESolverMetadata.generated_additional_dosesODESolverMetadata.generated_infusion_stopsODESolverMetadata.same_time_orderODESolverMetadata.sensitivity_methodODESolverMetadata.sensitivity_stepODESolverMetadata.to_dict()
ObjectiveComponentsObservationObservationErrorOneCompartmentPKPKValidationErrorParamPowerErrorProportionalErrorSAEMControlSAEMErrorSAEMProblemSAEMResultSAEMResult.parametersSAEMResult.latentSAEMResult.sufficient_statisticsSAEMResult.parameter_traceSAEMResult.latent_traceSAEMResult.step_sizesSAEMResult.acceptance_rateSAEMResult.acceptedSAEMResult.proposalsSAEMResult.seedSAEMResult.burn_inSAEMResult.step_exponentSAEMResult.experimentalSAEMResult.reproducibility_classSAEMResult.warning_codesSAEMResult.to_dict()
SensitivityCheckStateSymbolTwoCompartmentPKTwoCompartmentRatesUnsupportedEstimatorErrorUnsupportedEventSemanticsValidationMessageadditive()apply_random_effects()as_expr()canonicalize_events()combined()compiled_model()conditional_mode_objective()covariate()d()derivative()eta_shrinkage()exp()experimental_saem()find_conditional_mode()finite_difference_gradient()finite_difference_hessian()finite_difference_sensitivities()fit_focei()interval_censored_loglikelihood()laplace_population_objective()left_censored_loglikelihood()log()log1p()lognormal()model()observe()omega_from_standard_deviations()one_compartment_bolus()one_compartment_infusion()one_compartment_iv_bolus()one_compartment_iv_infusion()one_compartment_oral()power()proportional()right_censored_loglikelihood()saem()simulate_ode()simulate_subjects()sqrt()symbol()two_compartment_bolus()two_compartment_infusion()two_compartment_iv_bolus()two_compartment_iv_infusion()two_compartment_oral()two_compartment_rates()- Submodules
- pymixef.pharmacometrics.dsl module
- pymixef.pharmacometrics.estimation module
ConditionalModeErrorConditionalModeResultConditionalObjectiveEstimationErrorLaplacePopulationResultObjectiveComponentsSAEMControlSAEMErrorSAEMProblemSAEMResultUnsupportedEstimatorErrorapply_random_effects()conditional_mode_objective()eta_shrinkage()experimental_saem()find_conditional_mode()finite_difference_gradient()finite_difference_hessian()fit_focei()laplace_population_objective()omega_from_standard_deviations()saem()
- pymixef.pharmacometrics.events module
- pymixef.pharmacometrics.ode module
- pymixef.pharmacometrics.pk module
AdditiveErrorCombinedErrorLogNormalErrorObservationErrorOneCompartmentPKPKValidationErrorPowerErrorProportionalErrorTwoCompartmentPKTwoCompartmentRatesadditive()combined()interval_censored_loglikelihood()left_censored_loglikelihood()lognormal()one_compartment_bolus()one_compartment_infusion()one_compartment_iv_bolus()one_compartment_iv_infusion()one_compartment_oral()power()proportional()right_censored_loglikelihood()two_compartment_bolus()two_compartment_infusion()two_compartment_iv_bolus()two_compartment_iv_infusion()two_compartment_oral()two_compartment_rates()
Submodules¶
- pymixef.capabilities module
- pymixef.cli module
- pymixef.compare module
ComparisonResultApproximationSensitivityResultApproximationSensitivityResult.tableApproximationSensitivityResult.fitsApproximationSensitivityResult.failuresApproximationSensitivityResult.baselineApproximationSensitivityResult.settingsApproximationSensitivityResult.materialityApproximationSensitivityResult.successful_scenariosApproximationSensitivityResult.failed_scenariosApproximationSensitivityResult.to_dict()
approximation_sensitivity()compare()
- pymixef.convergence module
HessianDiagnosticsBoundaryRecordConvergenceReportConvergenceReport.statusConvergenceReport.optimizer_terminatedConvergenceReport.optimizer_messageConvergenceReport.iterationsConvergenceReport.objective_evaluationsConvergenceReport.gradient_evaluationsConvergenceReport.scaled_gradient_inf_normConvergenceReport.parameter_step_normConvergenceReport.hessianConvergenceReport.boundariesConvergenceReport.conditional_mode_failuresConvergenceReport.ode_failuresConvergenceReport.warningsConvergenceReport.engine_metricsConvergenceReport.trustworthyConvergenceReport.assess()ConvergenceReport.from_dict()ConvergenceReport.to_dict()
- pymixef.covariance module
AR1AR1CovarianceAnteDependenceAnteDependenceCovarianceCompoundSymmetryCompoundSymmetryCovarianceCovarianceStructureCovarianceValidationDiagonalDiagonalCovarianceHeterogeneousAR1HeterogeneousAR1CovarianceHeterogeneousToeplitzHeterogeneousToeplitzCovarianceKnownCovarianceSpatialPowerSpatialPowerCovarianceToeplitzToeplitzCovarianceUnstructuredUnstructuredCovariancecovariance_structure()get_covariance()singularity_report()validate_covariance()
- pymixef.data module
AuditRecordAuditedDataColumnSchemaColumnarDataDataAdapterDataAuditDataAudit.input_rowsDataAudit.analysis_rowsDataAudit.recordsDataAudit.factor_levelsDataAudit.factor_orderedDataAudit.contrast_codingDataAudit.transformationsDataAudit.source_fingerprintDataAudit.analysis_fingerprintDataAudit.excluded_rowsDataAudit.excluded_row_idsDataAudit.reason_countsDataAudit.to_dict()
InputAdapter()MissingnessKindPatternMixtureRecordPatternMixtureResultadapt_data()audit_data()find_duplicate_keys()is_missing()missing_mask()pattern_mixture_adjust()prepare_data()stable_sort()validate_monotonic_time()
- pymixef.diagnostics module
- pymixef.errors module
- pymixef.families module
NB1NB2BernoulliBetaBinomialCOMPoissonCensoredCensoredFamilyConwayMaxwellPoissonExponentialExponentialSurvivalFamilyFamily.nameFamily.supportFamily.parameter_namesFamily.default_linkFamily.discreteFamily.normalizedFamily.log_prob()Family.log_probability()Family.logpdf()Family.logpmf()Family.cdf()Family.logcdf()Family.sf()Family.logsf()Family.rvs()Family.mean()Family.variance()Family.moments()Family.random()Family.simulate()
GammaGaussianGenPoissonGeneralizedPoissonGompertzGompertzSurvivalHurdleHurdleFamilyInverseGaussInverseGaussianLinkLogLogisticLogLogisticSurvivalLogNormalLogNormalSurvivalLognormalMultinomialNegativeBinomialNegativeBinomial1NegativeBinomial2NormalOrdinalPiecewiseExponentialPoissonStudentStudentTTruncatedTruncatedFamilyTweedieWeibullWeibullSurvivalZeroInflatedZeroInflatedFamilyget_link()links
- pymixef.formula module
DesignMatricesDesignMatrices.responseDesignMatrices.fixedDesignMatrices.fixed_namesDesignMatrices.random_blocksDesignMatrices.row_idsDesignMatrices.auditDesignMatrices.specDesignMatrices.factor_levelsDesignMatrices.contrast_codingDesignMatrices.yDesignMatrices.XDesignMatrices.to_backend_data()DesignMatrices.explanation()DesignMatrices.explain()
FormulaExplanationFormulaExplanation.formulaFormulaExplanation.responseFormulaExplanation.n_rowsFormulaExplanation.fixed_shapeFormulaExplanation.fixed_namesFormulaExplanation.fixed_rankFormulaExplanation.aliased_fixedFormulaExplanation.random_blocksFormulaExplanation.excluded_rowsFormulaExplanation.factor_levelsFormulaExplanation.contrast_codingFormulaExplanation.to_dict()
FormulaSpecRandomDesignBlockRandomDesignBlock.matrixRandomDesignBlock.group_labelsRandomDesignBlock.group_codesRandomDesignBlock.group_levelsRandomDesignBlock.term_namesRandomDesignBlock.correlatedRandomDesignBlock.nameRandomDesignBlock.expandedRandomDesignBlock.ZRandomDesignBlock.groupsRandomDesignBlock.groupRandomDesignBlock.to_dict()
RandomTermcompile_formula()dry_run()explain_formula()model_matrix()parse_formula()
- pymixef.inference module
- pymixef.ir module
CovarianceIRDiffEntryEventIRFixedEffectIRIRNodeLikelihoodIRModelDiffModelIRModelIR.schema_versionModelIR.nameModelIR.sourceModelIR.formulaModelIR.responseModelIR.familyModelIR.fixed_effectsModelIR.random_effectsModelIR.predictorsModelIR.likelihoodsModelIR.covariance_structuresModelIR.state_equationsModelIR.eventsModelIR.parametersModelIR.transformsModelIR.priorsModelIR.outputsModelIR.data_schemaModelIR.estimatorModelIR.metadataModelIR.to_dict()ModelIR.canonical_json()ModelIR.to_json()ModelIR.semantic_hashModelIR.hashModelIR.semantically_equal()ModelIR.from_dict()ModelIR.from_json()ModelIR.diff()
OutputIRParameterIRPredictorIRPriorIRRandomEffectIRStateEquationIRTransformIRdiff_models()migrate_ir()model_diff()register_ir_migration()
- pymixef.model module
- pymixef.native module
- pymixef.plugins module
- pymixef.provenance module
environment_snapshot()fingerprint_data()fingerprint_model_ir()RunManifestRunManifest.manifest_schema_versionRunManifest.package_versionRunManifest.created_at_utcRunManifest.model_ir_hashRunManifest.data_hashRunManifest.engineRunManifest.methodRunManifest.settingsRunManifest.seedsRunManifest.reproducibility_classRunManifest.environmentRunManifest.elapsed_secondsRunManifest.output_hashesRunManifest.sourceRunManifest.convergenceRunManifest.warningsRunManifest.capture()RunManifest.with_outputs()RunManifest.from_dict()RunManifest.to_dict()
RunTimer
- pymixef.random module
- pymixef.reporting module
- pymixef.results module
FitResultFitResult.model_irFitResult.parametersFitResult.unconstrained_parametersFitResult.parameter_covarianceFitResult.fitted_valuesFitResult.residualsFitResult.random_effectsFitResult.objectiveFitResult.log_likelihoodFitResult.methodFitResult.engineFitResult.convergenceFitResult.manifestFitResult.warningsFitResult.diagnostic_dataFitResult.extraFitResult.result_schema_versionFitResult.successFitResult.n_observationsFitResult.prediction()FitResult.diagnostic()FitResult.residual_diagnostics()FitResult.simulate()FitResult.vpc()FitResult.to_dict()FitResult.save()FitResult.from_dict()FitResult.load()FitResult.summary()
- pymixef.transforms module
- pymixef.validation module
RequirementLinksTraceabilityRecordTraceabilityRecord.requirementTraceabilityRecord.capabilityTraceabilityRecord.stageTraceabilityRecord.maturityTraceabilityRecord.implementedTraceabilityRecord.reproducibilityTraceabilityRecord.source_filesTraceabilityRecord.specification_filesTraceabilityRecord.testsTraceabilityRecord.evidenceTraceabilityRecord.limitationsTraceabilityRecord.to_dict()
traceability_matrix()classify_change()change_impact()create_validation_bundle()verify_validation_bundle()
- pymixef.warnings module