Aggregation and comparison
The default aggregation policy reads one finite scalar per metric from
payload["metrics"] or payload["replicate_metrics"] in each
ReplicateArtifact. It computes condition-level mean, std, sem, n, and
replicate values without loading trajectories.
The MDA comparison helper consumes ConditionArtifact objects, validates metric
keys, replicate identity, settings fingerprints, and aggregate-statistic
consistency, then delegates scalar statistics to the shared comparison engine.
Condition aggregation for MDAnalysis replicate artifacts.
- exception polyzymd.analyses.mda.aggregation.MDAAggregationError[source]
Bases:
MDAnalysisExtensionErrorError raised when MDAnalysis replicate artifacts cannot be aggregated.
- class polyzymd.analyses.mda.aggregation.AggregatedMetric(*, name, values=<factory>, mean, sem, std, n)[source]
Bases:
BaseModelSummary statistics for one metric across biological replicates.
- name: str
- mean: float
- sem: float
- std: float
- n: int
- model_config = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class polyzymd.analyses.mda.aggregation.ReplicateMetricPolicy(*args, **kwargs)[source]
Bases:
ProtocolProtocol for reducing one replicate artifact to scalar metrics.
- extract_metrics(artifact)[source]
Extract one scalar value per metric from a replicate artifact.
- __init__(*args, **kwargs)
- class polyzymd.analyses.mda.aggregation.ExplicitReplicateMetricPolicy[source]
Bases:
objectExtract explicitly declared replicate-level scalar metrics.
The default policy deliberately reads only
payload["metrics"]orpayload["replicate_metrics"]. It does not reduce arrays, events, job tables, or frame-level values because those reductions are analysis-specific scientific choices.
- class polyzymd.analyses.mda.aggregation.MDAAggregationContext(analysis_name, condition_label, expected_replicates, settings_fingerprint=None, min_replicates=1, allow_partial=False, require_compatible_frame_selection=True, expected_frame_selection=None, validate_sidecars=True, artifact_stores=<factory>, source_replicates=(), skipped_replicates=())[source]
Bases:
objectIdentity and provenance expected during condition aggregation.
- analysis_name: str
- condition_label: str
- min_replicates: int = 1
- allow_partial: bool = False
- require_compatible_frame_selection: bool = True
- validate_sidecars: bool = True
- __post_init__()[source]
Normalize replicate identity and validate minimum count.
- __init__(analysis_name, condition_label, expected_replicates, settings_fingerprint=None, min_replicates=1, allow_partial=False, require_compatible_frame_selection=True, expected_frame_selection=None, validate_sidecars=True, artifact_stores=<factory>, source_replicates=(), skipped_replicates=())
- polyzymd.analyses.mda.aggregation.aggregate_replicate_artifacts(artifacts, ctx, policy=None)[source]
Aggregate replicate artifacts into a condition artifact.
- Parameters:
artifacts (sequence of ReplicateArtifact) – Replicate artifacts to aggregate.
ctx (MDAAggregationContext) – Expected condition identity and provenance.
policy (ReplicateMetricPolicy or None, optional) – Metric extraction policy, by default
ExplicitReplicateMetricPolicy.
- Returns:
Aggregated condition artifact containing replicate-level statistics.
- Return type:
ConditionArtifact
- polyzymd.analyses.mda.aggregation.aggregate_replicate_artifacts_from_disk(analysis_dir, ctx, policy=None, *, artifact_path='result.json')[source]
Load replicate artifacts from disk and aggregate them.
- Parameters:
analysis_dir (Path) – Condition analysis directory containing
run_Nsubdirectories.ctx (MDAAggregationContext) – Expected condition identity and aggregation policy controls.
policy (ReplicateMetricPolicy or None, optional) – Optional custom metric extraction policy.
artifact_path (str or Path, optional) – Store-relative replicate artifact filename, by default
"result.json".
- Returns:
Aggregated condition artifact.
- Return type:
ConditionArtifact
Comparison engine for MDAnalysis condition artifacts.
- exception polyzymd.analyses.mda.comparison.MDAComparisonError[source]
Bases:
MDAnalysisExtensionErrorError raised when condition artifacts cannot be compared.
- class polyzymd.analyses.mda.comparison.MDAComparisonContext(analysis_name, project_name, expected_condition_labels=None, expected_replicates_by_condition=None, control_label=None, effective_control=None, equilibration='0ns', settings_fingerprint=None, min_replicates=1, fdr_alpha=0.05, ttest_method='student', posthoc_method='ttest_bh')[source]
Bases:
objectIdentity and statistical controls for condition-artifact comparison.
- analysis_name: str
- project_name: str
- equilibration: str = '0ns'
- min_replicates: int = 1
- fdr_alpha: float = 0.05
- ttest_method: str = 'student'
- posthoc_method: str = 'ttest_bh'
- __post_init__()[source]
Normalize expected identity inputs and reject ambiguous values.
- __init__(analysis_name, project_name, expected_condition_labels=None, expected_replicates_by_condition=None, control_label=None, effective_control=None, equilibration='0ns', settings_fingerprint=None, min_replicates=1, fdr_alpha=0.05, ttest_method='student', posthoc_method='ttest_bh')
- polyzymd.analyses.mda.comparison.compare_condition_artifacts(artifacts, ctx)[source]
Compare aggregate condition artifacts with replicate-level statistics.
- Parameters:
artifacts (sequence of ConditionArtifact) – Condition artifacts produced by MDAnalysis extension-layer aggregation.
ctx (MDAComparisonContext) – Comparison identity, expected condition labels, and statistical controls.
- Returns:
Stable comparison artifact containing scalar statistics and provenance.
- Return type:
ComparisonArtifact