Public facade
polyzymd.analyses.mda re-exports the public MDAnalysis extension-layer
symbols used by analysis plugins. Contributors should import from this facade
instead of importing private implementation modules directly.
Public MDAnalysis extension-layer primitives.
This package exposes import-light protocol and typing helpers for integrations
that wrap MDAnalysis AnalysisBase objects without importing MDAnalysis at
module import time.
- class polyzymd.analyses.mda.AnalysisBaseLike(*args, **kwargs)[source]
Bases:
ProtocolStructural protocol for MDAnalysis
AnalysisBase-style objects.- results: Any
- run(**kwargs)[source]
Run the analysis and return the analysis object.
- Parameters:
**kwargs (Any) – Keyword arguments forwarded to the wrapped analysis object’s
run()method.- Returns:
The analysis object after execution.
- Return type:
AnalysisBaseLike
- __init__(*args, **kwargs)
- exception polyzymd.analyses.mda.MDAnalysisExtensionError[source]
Bases:
RuntimeErrorBase runtime error for MDAnalysis extension-layer failures.
- class polyzymd.analyses.mda.MDARunKwargs[source]
Bases:
TypedDictKeyword arguments accepted by
MDAnalysis.analysis.base.AnalysisBase.run.The value types stay intentionally broad where MDAnalysis accepts multiple backend or frame-selector forms. This keeps the public extension-layer type import-light and independent of optional MDAnalysis runtime objects.
- frames: Any
- backend: Any
- class polyzymd.analyses.mda.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.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.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=())
- exception polyzymd.analyses.mda.MDAAggregationError[source]
Bases:
MDAnalysisExtensionErrorError raised when MDAnalysis replicate artifacts cannot be aggregated.
- class polyzymd.analyses.mda.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)
- polyzymd.analyses.mda.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.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
- class polyzymd.analyses.mda.ArtifactEnvelope(*, schema_version='1', artifact_type='artifact', analysis_name, payload=<factory>, sidecars=<factory>, provenance=<factory>, metadata=<factory>, warnings=<factory>, **extra_data)[source]
Bases:
BaseModelExtensible JSON envelope for MDAnalysis extension-layer artifacts.
- schema_version: str
- artifact_type: str
- analysis_name: str
- sidecars: list[ArtifactSidecarRef]
- model_config = {'extra': 'allow'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class polyzymd.analyses.mda.ArtifactManifest(*, schema_version='1', analysis_name, artifact_id=None, artifact_type='manifest', polyzymd_version=None, mdanalysis_version=None, inputs=<factory>, provenance=<factory>, sidecars=<factory>, metadata=<factory>, **extra_data)[source]
Bases:
BaseModelManifest for one artifact directory and its sidecar files.
- schema_version: str
- analysis_name: str
- artifact_type: str
- sidecars: list[ArtifactSidecarRef]
- model_config = {'extra': 'allow'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class polyzymd.analyses.mda.ArtifactSidecarRef(*, path, sha256, size_bytes, media_type=None, metadata=<factory>, **extra_data)[source]
Bases:
BaseModelRelative reference to a sidecar file owned by an artifact store.
- path: str
- sha256: str
- size_bytes: int
- model_config = {'extra': 'allow'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class polyzymd.analyses.mda.ComparisonArtifact(*, schema_version='1', artifact_type='comparison', analysis_name, payload=<factory>, sidecars=<factory>, provenance=<factory>, metadata=<factory>, warnings=<factory>, conditions=<factory>, control_label=None, effective_control=None, **extra_data)[source]
Bases:
ArtifactEnvelopeCross-condition comparison artifact.
- artifact_type: Literal['comparison']
- model_config = {'extra': 'allow'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class polyzymd.analyses.mda.ConditionArtifact(*, schema_version='1', artifact_type='condition', analysis_name, payload=<factory>, sidecars=<factory>, provenance=<factory>, metadata=<factory>, warnings=<factory>, condition_label, replicates=<factory>, source_replicates=<factory>, skipped_replicates=<factory>, **extra_data)[source]
Bases:
ArtifactEnvelopeAggregated artifact produced for one simulation condition.
- artifact_type: Literal['condition']
- condition_label: str
- model_config = {'extra': 'allow'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class polyzymd.analyses.mda.ReplicateArtifact(*, schema_version='1', artifact_type='replicate', analysis_name, payload=<factory>, sidecars=<factory>, provenance=<factory>, metadata=<factory>, warnings=<factory>, condition_label, replicate, **extra_data)[source]
Bases:
ArtifactEnvelopeResult artifact produced for one replicate trajectory.
- artifact_type: Literal['replicate']
- condition_label: str
- replicate: int
- model_config = {'extra': 'allow'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class polyzymd.analyses.mda.ArtifactStore(root)[source]
Bases:
objectStore JSON artifacts and relative sidecars under one root directory.
- __init__(root)[source]
Create an artifact store rooted at
root.- Parameters:
root (str or Path) – Directory that owns artifact JSON files and sidecars.
- write_replicate_result(artifact, path='result.json')[source]
Write a replicate artifact JSON file.
- Parameters:
artifact (ReplicateArtifact) – Replicate artifact envelope to serialize.
path (str or Path, optional) – Store-relative JSON path, by default
"result.json".
- Returns:
Absolute path to the written JSON file.
- Return type:
Path
- read_replicate_result(path='result.json')[source]
Read a replicate artifact JSON file.
- Parameters:
path (str or Path, optional) – Store-relative JSON path, by default
"result.json".- Returns:
Deserialized replicate artifact.
- Return type:
ReplicateArtifact
- write_condition_result(artifact, path='result.json')[source]
Write a condition artifact JSON file.
- Parameters:
artifact (ConditionArtifact) – Condition artifact envelope to serialize.
path (str or Path, optional) – Store-relative JSON path, by default
"result.json".
- Returns:
Absolute path to the written JSON file.
- Return type:
Path
- read_condition_result(path='result.json')[source]
Read a condition artifact JSON file.
- Parameters:
path (str or Path, optional) – Store-relative JSON path, by default
"result.json".- Returns:
Deserialized condition artifact.
- Return type:
ConditionArtifact
- write_comparison_result(artifact, path='result.json')[source]
Write a comparison artifact JSON file.
- Parameters:
artifact (ComparisonArtifact) – Comparison artifact envelope to serialize.
path (str or Path, optional) – Store-relative JSON path, by default
"result.json".
- Returns:
Absolute path to the written JSON file.
- Return type:
Path
- read_comparison_result(path='result.json')[source]
Read a comparison artifact JSON file.
- Parameters:
path (str or Path, optional) – Store-relative JSON path, by default
"result.json".- Returns:
Deserialized comparison artifact.
- Return type:
ComparisonArtifact
- write_manifest(manifest, path='manifest.json')[source]
Write an artifact manifest JSON file.
- Parameters:
manifest (ArtifactManifest) – Manifest to serialize.
path (str or Path, optional) – Store-relative JSON path, by default
"manifest.json".
- Returns:
Absolute path to the written manifest.
- Return type:
Path
- read_manifest(path='manifest.json')[source]
Read an artifact manifest JSON file.
- Parameters:
path (str or Path, optional) – Store-relative JSON path, by default
"manifest.json".- Returns:
Deserialized manifest.
- Return type:
ArtifactManifest
- register_sidecar(path, *, media_type=None, metadata=None)[source]
Register an existing store-relative sidecar file.
- Parameters:
- Returns:
Relative sidecar reference with streamed SHA-256 and size metadata.
- Return type:
ArtifactSidecarRef
- write_npz_sidecar(path, *, compressed=True, media_type='application/x-npz', metadata=None, **arrays)[source]
Write NumPy arrays to an NPZ sidecar and register it.
- Parameters:
path (str or Path) – Store-relative sidecar path.
compressed (bool, optional) – Whether to use
numpy.savez_compressed, by default True.media_type (str or None, optional) – Sidecar media type stored in the reference.
metadata (dict[str, Any] or None, optional) – Additional sidecar metadata.
**arrays (Any) – Named arrays forwarded to NumPy.
- Returns:
Registered NPZ sidecar reference.
- Return type:
ArtifactSidecarRef
- resolve_sidecar(ref)[source]
Resolve a sidecar reference to an absolute path under the store root.
- Parameters:
ref (ArtifactSidecarRef or str or Path) – Sidecar reference or store-relative path.
- Returns:
Absolute sidecar path under the store root.
- Return type:
Path
- validate_sidecar(ref)[source]
Validate sidecar existence, size, path containment, and SHA-256.
- Parameters:
ref (ArtifactSidecarRef) – Sidecar reference to validate.
- Returns:
Absolute sidecar path when validation passes.
- Return type:
Path
- load_npz_sidecar(ref)[source]
Validate and open an NPZ sidecar.
- Parameters:
ref (ArtifactSidecarRef) – Sidecar reference to validate before loading.
- Returns:
Open
numpy.loadhandle. Callers should use it as a context manager to close the underlying file promptly.- Return type:
Any
- source_artifact_ref(path='result.json')[source]
Return a hashed reference for an artifact JSON file.
- exception polyzymd.analyses.mda.ArtifactStoreError[source]
Bases:
MDAnalysisExtensionErrorError raised when artifact-store path or validation checks fail.
- class polyzymd.analyses.mda.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')
- exception polyzymd.analyses.mda.MDAComparisonError[source]
Bases:
MDAnalysisExtensionErrorError raised when condition artifacts cannot be compared.
- polyzymd.analyses.mda.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
- class polyzymd.analyses.mda.FrameSelection(start=None, stop=None, step=None, frames=None, equilibration=None, equilibration_start=None, equilibration_ps=None, timestep_ps=None, first_frame_time_ps=None, selected_start_time_ps=None, equilibration_time_reference=None, n_frames_total=None, warning_message=None)[source]
Bases:
objectValidated MDAnalysis
run()frame-selection arguments.FrameSelectionis the import-light bridge between PolyzyMD’s equilibration/window semantics and MDAnalysisAnalysisBase.runkeyword arguments. Explicitframesselectors are mutually exclusive withstart,stop, andstepbecause MDAnalysis treats them as separate selection modes.- Parameters:
start (int | None, optional) – Inclusive start frame passed to
run(start=...).stop (int | None, optional) – Exclusive stop frame passed to
run(stop=...).step (int | None, optional) – Frame stride passed to
run(step=...).frames (Any, optional) – Explicit frame indices or boolean mask passed to
run(frames=...).equilibration (str | None, optional) – Original equilibration setting used to derive this selection.
equilibration_start (int | None, optional) – Start frame implied by equilibration alone.
equilibration_ps (float | None, optional) – Equilibration time converted to picoseconds.
timestep_ps (float | None, optional) – Trajectory timestep in picoseconds.
first_frame_time_ps (float | None, optional) – Absolute MDAnalysis timestamp of loaded frame 0 in picoseconds, when available.
selected_start_time_ps (float | None, optional) – Timestamp of the selected start frame in the active time reference.
equilibration_time_reference (str | None, optional) – Time reference used to interpret
equilibration.n_frames_total (int | None, optional) – Total trajectory frame count when known.
warning_message (str | None, optional) – Non-fatal warning from equilibration/window validation.
- frames: Any = None
- __post_init__()[source]
Validate mutually exclusive MDAnalysis frame-selection modes.
- Raises:
ValueError – Raised when the selector would produce invalid MDAnalysis
runkeyword arguments or an empty known frame selection.
- run_kwargs()[source]
Return keyword arguments for
MDAnalysisAnalysisBase.run.- Returns:
framesalone when explicit frames are set, otherwise the non-Nonestart,stop, andstepvalues.- Return type:
MDARunKwargs
- classmethod from_trajectory_window(window)[source]
Build a frame selection from a resolved PolyzyMD trajectory window.
- Parameters:
window (TrajectoryWindow) – Existing validated shared trajectory window.
- Returns:
Selection that forwards the same
start,stop, andstepvalues to MDAnalysis while preserving window provenance.- Return type:
FrameSelection
- classmethod from_equilibration(*, equilibration, n_frames_total, timestep_ps, start=None, stop=None, step=1, min_frames=1, first_frame_time_ps=None)[source]
Resolve PolyzyMD equilibration/window settings to a frame selection.
Finite first-frame timestamps make equilibration absolute in MDAnalysis trajectory time; missing timestamps keep the stale loaded-frame-relative origin.
- Parameters:
equilibration (str) – Equilibration time string such as
"10ns".n_frames_total (int) – Total number of trajectory frames.
timestep_ps (float) – Trajectory timestep in picoseconds.
start (int | None, optional) – Absolute start frame. When
None, equilibration determines the start frame.stop (int | None, optional) – Absolute exclusive stop frame. When
None, the trajectory end is used.step (int, optional) – Frame stride, by default 1.
min_frames (int, optional) – Minimum required number of selected frames, by default 1.
first_frame_time_ps (float | None, optional) – Absolute MDAnalysis timestamp of loaded frame 0 in picoseconds.
- Returns:
Validated selection suitable for MDAnalysis
run().- Return type:
FrameSelection
- __init__(start=None, stop=None, step=None, frames=None, equilibration=None, equilibration_start=None, equilibration_ps=None, timestep_ps=None, first_frame_time_ps=None, selected_start_time_ps=None, equilibration_time_reference=None, n_frames_total=None, warning_message=None)
- class polyzymd.analyses.mda.MDAAnalysisJob(name, frame_selection=<factory>, analysis=None, analysis_factory=None, backend_policy=<factory>, universe_policy=<factory>)[source]
Bases:
objectExecute exactly one MDAnalysis
AnalysisBase-compatible job.A job receives either a ready analysis object or a zero-argument factory that constructs one. Execution merges
FrameSelection.run_kwargs()with validated backend policy kwargs and callsanalysis.run(**kwargs)once.- name: str
- frame_selection: FrameSelection
- analysis: Any = None
- backend_policy: MDABackendPolicy
- universe_policy: MDAUniversePolicy
- result: MDAJobResult | None = None
- __post_init__()[source]
Validate constructor misuse before execution.
- Raises:
ValueError – Raised when both or neither analysis inputs are supplied.
TypeError – Raised when supplied inputs do not satisfy the job construction contract.
- classmethod from_function(name, function, universe, *, frame_selection=None, backend_policy=None, universe_policy=None, function_kwargs=None)[source]
Create a job from a function and already-loaded universe.
- Parameters:
name (str) – Job name used in result metadata and error messages.
function (Callable[..., Any]) – Function called once by
MDAFunctionAdapter.run.universe (Any) – Already-loaded universe or universe-like object.
frame_selection (FrameSelection or None, optional) – Frame selection to forward to the function adapter.
backend_policy (MDABackendPolicy or None, optional) – Backend policy for this job.
universe_policy (MDAUniversePolicy or None, optional) – Lightweight universe provenance policy.
function_kwargs (Mapping[str, Any] or None, optional) – Additional keyword arguments forwarded to the function.
- Returns:
Job wrapping the function adapter.
- Return type:
MDAAnalysisJob
- property results: Any
Return completed job results.
- Returns:
Results object from the completed analysis.
- Return type:
Any
- Raises:
MDAAnalysisJobError – Raised when the job has not run yet.
- run()[source]
Execute the wrapped analysis and store the completed job result.
- Returns:
Completed job result reference.
- Return type:
MDAJobResult
- Raises:
MDAAnalysisJobError – Raised when factory construction, analysis execution, or result collection violates the runtime job contract.
- execute()[source]
Execute the job.
- Returns:
Completed job result reference.
- Return type:
MDAJobResult
- __init__(name, frame_selection=<factory>, analysis=None, analysis_factory=None, backend_policy=<factory>, universe_policy=<factory>)
- exception polyzymd.analyses.mda.MDAAnalysisJobError[source]
Bases:
MDAnalysisExtensionErrorRuntime failure raised when an MDAnalysis job violates its contract.
- class polyzymd.analyses.mda.MDABackendPolicy(backend=None, n_workers=None, n_parts=None, unsupported_backend=None, verbose=None, progressbar_kwargs=None)[source]
Bases:
objectValidated MDAnalysis internal backend options for one job.
The default policy forwards no backend-related keyword arguments so that PolyzyMD-level parallelism remains the default. Supplying worker, part, or unsupported-backend options requires an explicit backend to avoid ambiguous nested-parallelism requests.
- backend: Any = None
- __post_init__()[source]
Validate backend opt-in and worker/part counts.
- Raises:
ValueError – Raised when worker/part counts are not positive or backend-specific options are supplied without an explicit backend.
- run_kwargs()[source]
Return keyword arguments for
AnalysisBase.run.- Returns:
Non-
Nonebackend, worker, progress, and verbosity settings.- Return type:
MDARunKwargs
- is_default()[source]
Return whether the policy forwards no
run()keyword arguments.- Returns:
Truewhen no backend, progress, or verbosity options are set.- Return type:
- __init__(backend=None, n_workers=None, n_parts=None, unsupported_backend=None, verbose=None, progressbar_kwargs=None)
- class polyzymd.analyses.mda.MDAFunctionAdapter(function, universe, *, function_kwargs=None)[source]
Bases:
objectAdapt a simple function to the MDAnalysis
run()/resultsshape.The function is called exactly once during
run()asfunction(universe, **frame_kwargs, **function_kwargs). The adapter does not implement trajectory loops; functions that need frame iteration should use MDAnalysis primitives internally.- __init__(function, universe, *, function_kwargs=None)[source]
Initialize the function adapter.
- Parameters:
function (Callable[..., Any]) – Function receiving the universe, frame kwargs, and function kwargs.
universe (Any) – Already-loaded universe or universe-like object supplied by the caller.
function_kwargs (Mapping[str, Any] or None, optional) – Additional keyword arguments forwarded after frame kwargs.
- Raises:
TypeError – Raised when
functionis not callable.
- run(**frame_kwargs)[source]
Run the adapted function once and store normalized results.
- Parameters:
**frame_kwargs (Any) – Frame-selection keyword arguments from
FrameSelection.- Returns:
This adapter with
resultspopulated.- Return type:
MDAFunctionAdapter
- Raises:
MDAAnalysisJobError – Raised when MDAnalysis backend or run-control kwargs are supplied directly to the function adapter.
- class polyzymd.analyses.mda.MDAJobResult(name, analysis, results, run_kwargs, frame_selection, backend_policy, universe_policy)[source]
Bases:
objectCompleted result reference for one MDAnalysis-compatible job.
- name: str
- analysis: Any
- results: Any
- frame_selection: FrameSelection
- backend_policy: MDABackendPolicy
- universe_policy: MDAUniversePolicy
- __init__(name, analysis, results, run_kwargs, frame_selection, backend_policy, universe_policy)
- class polyzymd.analyses.mda.MDAUniversePolicy(condition_label=None, replicate=None, provenance=None, metadata=<factory>)[source]
Bases:
objectLightweight universe provenance and execution policy for one job.
This policy intentionally does not load universes. It carries only metadata and provenance from the layer that already resolved or supplied a universe.
- provenance: Any = None
- __post_init__()[source]
Freeze metadata to avoid accidental mutation after job execution.
- as_dict()[source]
Serialize lightweight policy metadata to primitive values.
- __init__(condition_label=None, replicate=None, provenance=None, metadata=<factory>)
- class polyzymd.analyses.mda.MDAReplicateJobContext(replicate_context, universe, frame_selection, universe_policy, artifact_store)[source]
Bases:
objectContext passed to
Analysis.build_mda_jobs()for one replicate.- replicate_context: ReplicateContext
- universe: Any
- frame_selection: FrameSelection
- universe_policy: MDAUniversePolicy
- artifact_store: ArtifactStore
- property output_dir: Path
Return the replicate output directory.
- Returns:
Directory owned by this replicate analysis run.
- Return type:
Path
- property replicate: int
Return the one-indexed replicate ID.
- Returns:
Replicate ID from the framework context.
- Return type:
- property settings: BaseModel
Return resolved plugin settings.
- Returns:
Settings model supplied by the public lifecycle.
- Return type:
BaseModel
- property backend_policy: MDABackendPolicy
Return the MDAnalysis backend policy for job construction.
- Returns:
Policy resolved from comparison configuration, or the serial default.
- Return type:
MDABackendPolicy
- __init__(replicate_context, universe, frame_selection, universe_policy, artifact_store)
- class polyzymd.analyses.mda.PairDistanceSpec(label, selection_a, selection_b, atoms_a, atoms_b, mode_a, mode_b, threshold=None)[source]
Bases:
objectResolved atom-group inputs for one pair-distance measurement.
- Parameters:
label (str) – Human-readable pair label.
selection_a (str) – Original selection string for the first atom group or point.
selection_b (str) – Original selection string for the second atom group or point.
atoms_a (Any) – First MDAnalysis atom group.
atoms_b (Any) – Second MDAnalysis atom group.
mode_a (Any) – Position-reduction mode understood by shared selection helpers.
mode_b (Any) – Position-reduction mode understood by shared selection helpers.
threshold (float or None, optional) – Optional distance threshold in Å for downstream state summaries.
- label: str
- selection_a: str
- selection_b: str
- atoms_a: Any
- atoms_b: Any
- mode_a: Any
- mode_b: Any
- __init__(label, selection_a, selection_b, atoms_a, atoms_b, mode_a, mode_b, threshold=None)
- polyzymd.analyses.mda.build_pair_distance_analysis(*, universe, pairs, use_pbc)[source]
Build a lazy custom
AnalysisBasefor pair-distance matrices.- Parameters:
universe (Any) – MDAnalysis universe for one trajectory.
pairs (sequence of PairDistanceSpec) – Resolved pair specifications.
use_pbc (bool) – Whether to request minimum-image distances from MDAnalysis.
- Returns:
AnalysisBaseinstance whoseresults.distance_matrixhas shape(n_pairs, n_frames)and whose results also include frame, time, and warning metadata.- Return type:
Any
- polyzymd.analyses.mda.pair_distance_version()[source]
Return the pair-distance primitive schema version.
- Returns:
Version string for provenance records.
- Return type:
- class polyzymd.analyses.mda.MDAArtifactCollector(*args, **kwargs)[source]
Bases:
ProtocolProtocol for converting completed MDAnalysis jobs to an artifact.
- __call__(ctx, completed_jobs)[source]
Collect completed jobs into one replicate artifact.
- Parameters:
ctx (MDACollectorContext) – Framework-provided collector context for one replicate.
completed_jobs (sequence of MDAJobResult) – Completed MDAnalysis-compatible jobs.
- Returns:
PolyzyMD-owned artifact for this replicate.
- Return type:
ReplicateArtifact
- __init__(*args, **kwargs)
- class polyzymd.analyses.mda.MDACollectorContext(analysis_name, replicate_context, frame_selection, universe_policy, artifact_store, settings_fingerprint=None, warnings=())[source]
Bases:
objectContext supplied to an MDAnalysis artifact collector.
The context contains framework identity and provenance for one replicate so collectors can map raw job results into PolyzyMD-owned artifacts without reaching back into the orchestrator.
- analysis_name: str
- replicate_context: ReplicateContext
- frame_selection: FrameSelection
- universe_policy: MDAUniversePolicy
- artifact_store: ArtifactStore
- warnings: Sequence[str] = ()
- __post_init__()[source]
Freeze warning messages as strings for artifact reuse.
- property condition_label: str
Return the simulation condition label.
- Returns:
Condition label from the framework context.
- Return type:
- property replicate: int
Return the one-indexed replicate ID.
- Returns:
Replicate ID from the framework context.
- Return type:
- property output_dir: Path
Return the replicate output directory.
- Returns:
Directory owned by this replicate analysis run.
- Return type:
Path
- property result_path: Path
Return the canonical replicate result path.
- Returns:
Canonical artifact JSON path for this replicate.
- Return type:
Path
- property settings: BaseModel
Return resolved plugin settings.
- Returns:
Settings model supplied by the public lifecycle.
- Return type:
BaseModel
- __init__(analysis_name, replicate_context, frame_selection, universe_policy, artifact_store, settings_fingerprint=None, warnings=())
- class polyzymd.analyses.mda.StrictJSONMDAResultCollector[source]
Bases:
objectDefault collector for jobs that already return strict JSON values.
This collector preserves the P2-001 simple job behavior while rejecting raw MDAnalysis
Resultscontainers and other non-JSON values. Analyses with richResultsobjects should implement a custom collector that maps data to primitive payloads and sidecars.- __call__(ctx, completed_jobs)[source]
Collect completed jobs into a strict JSON artifact.
- Parameters:
ctx (MDACollectorContext) – Framework-provided collector context for one replicate.
completed_jobs (sequence of MDAJobResult) – Completed MDAnalysis-compatible jobs.
- Returns:
JSON-compatible replicate artifact.
- Return type:
ReplicateArtifact
- polyzymd.analyses.mda.frame_selection_payload(frame_selection)[source]
Serialize frame-selection provenance to primitive values.
- polyzymd.analyses.mda.strict_json_payload(value, *, analysis_name)[source]
Convert supported values to strict JSON-compatible primitives.
- Parameters:
value (Any) – Candidate payload returned by an MDA job.
analysis_name (str) – Analysis name for diagnostics.
- Returns:
JSON-compatible primitive, list, or dictionary.
- Return type:
Any
- class polyzymd.analyses.mda.FileIdentity(path, format, size_bytes, mtime_ns)[source]
Bases:
objectFilesystem identity for an input topology or trajectory file.
- path: Path
- size_bytes: int
- mtime_ns: int
- classmethod from_path(path, file_format=None)[source]
Create file identity metadata from a filesystem path.
- Parameters:
path (Path) – File path to identify.
file_format (str or None, optional) – Format reported by the trajectory layout. When omitted, the file suffix is used without the leading dot.
- Returns:
Path, format, size, and modification-time metadata.
- Return type:
FileIdentity
- as_dict()[source]
Serialize the identity to JSON-compatible primitive values.
- __init__(path, format, size_bytes, mtime_ns)
- class polyzymd.analyses.mda.UniverseProvider(config, engine_override=None, loader=None, loader_factory=None)[source]
Bases:
objectConfig-aware provider for MDAnalysis universes and input provenance.
- config: SimulationConfig
- loader: _TrajectoryLoaderLike | None = None
- loader_factory: LoaderFactory | None = None
- __post_init__()[source]
Validate loader injection settings after dataclass construction.
- classmethod from_config(config, **kwargs)[source]
Create a universe provider from a simulation configuration.
- Parameters:
config (SimulationConfig) – PolyzyMD simulation configuration.
**kwargs (Any) – Optional provider settings such as
engine_override,loader, orloader_factory.
- Returns:
Provider that lazily instantiates the trajectory loader.
- Return type:
UniverseProvider
- load_universe(replicate, *, cache=True)[source]
Load an MDAnalysis universe for a replicate through the existing loader.
- provenance_for(replicate, *, refresh=False)[source]
Return provenance for a replicate, computing it when needed.
- get_provenance(replicate)[source]
Return cached provenance without triggering trajectory discovery.
- Parameters:
replicate (int) – Replicate index whose cached provenance should be returned.
- Returns:
Cached provenance when available, otherwise
None.- Return type:
UniverseProvenance or None
- __init__(config, engine_override=None, loader=None, loader_factory=None)
- class polyzymd.analyses.mda.UniverseProvenance(replicate, working_directory, topology, trajectories, n_segments, loader_class, config_engine, engine_override=None, warnings=<factory>)[source]
Bases:
objectProvenance for one replicate universe loaded from PolyzyMD outputs.
- replicate: int
- working_directory: Path
- topology: FileIdentity
- trajectories: tuple[FileIdentity, ...]
- n_segments: int
- loader_class: str
- as_dict()[source]
Serialize provenance to JSON-compatible primitive values.
- __init__(replicate, working_directory, topology, trajectories, n_segments, loader_class, config_engine, engine_override=None, warnings=<factory>)