MDFactoryMDFactory

submit

Submit analyses locally or via submitit.

funcnormalize_slurm_time(value)str

Normalize SLURM time strings to accepted formats.

paramvaluestr

Returns

str
funcresolve_simulation_paths(paths, *, trajectory_file='prod.xtc', structure_file='system.pdb')list[Path]

Expand simulation paths using discovery rules.

parampathsIterable[Path | str]
paramtrajectory_filestr
= 'prod.xtc'
paramstructure_filestr
= 'system.pdb'

Returns

list[pathlib.Path]
funcresolve_simulation_paths_from_yaml(build_yaml)list[Path]

Resolve simulation paths from the build summary YAML.

parambuild_yamlPath

Returns

list[pathlib.Path]
funcparse_hash_filter(raw_hashes)set[str]

Parse comma-separated hash values into a flat set.

paramraw_hashesIterable[str]

Returns

set[str]
funcresolve_hash_prefix(requested, available)str | None

Resolve a hash string against available hashes, supporting prefix matching.

Returns the matched full hash, or None if no match is found. Raises ValueError if the prefix matches multiple hashes.

paramrequestedstr
paramavailableset[str]

Returns

str | None
funcfilter_paths_by_hash(sim_paths, hashes, *, trajectory_file='prod.xtc', structure_file='system.pdb')list[Path]

Filter simulation paths to only those matching the requested hashes.

Supports prefix matching: a short string that uniquely identifies a single discovered hash will be expanded to match.

paramsim_pathslist[Path]
paramhashesIterable[str]
paramtrajectory_filestr
= 'prod.xtc'
paramstructure_filestr
= 'system.pdb'

Returns

list[pathlib.Path]
funcdetermine_log_dir(sim_paths)Path

Determine default log dir for submitit.

paramsim_pathsIterable[Path]

Returns

pathlib.Path
funcresolve_analyses(simulation, analysis_names)list[str]

Return analyses to run for a simulation.

paramsimulationSimulation
paramanalysis_namesIterable[str] | None

Returns

list[str]
funcresolve_artifacts(simulation, artifact_names)list[str]

Return artifacts to run for a simulation.

paramsimulationSimulation
paramartifact_namesIterable[str] | None

Returns

list[str]
funcresolve_tool_paths(*, vmd_path=None, ffmpeg_path=None)tuple[str | None, str | None]

Resolve tool paths from explicit inputs or PATH.

paramvmd_pathstr | None
= None
paramffmpeg_pathstr | None
= None

Returns

tuple[str | None, str | None]
funcapply_tool_paths(vmd_path, ffmpeg_path)dict[str, str]

Apply tool paths by prepending to PATH.

paramvmd_pathstr | None
paramffmpeg_pathstr | None

Returns

dict[str, str]
funcrestore_env(original_env)None

Restore environment variables.

paramoriginal_envdict[str, str]

Returns

None
funcrun_simulation_analyses(sim_path, analysis_names, *, structure_file, trajectory_file, backend='serial', n_workers=1, skip_existing=True, analysis_kwargs=None)dict[str, object]

Run analyses for a single simulation path.

paramsim_pathPath
paramanalysis_namesIterable[str] | None
paramstructure_filestr
paramtrajectory_filestr
parambackendstr
= 'serial'
paramn_workersint
= 1
paramskip_existingbool
= True
paramanalysis_kwargsdict[str, object] | None
= None

Returns

dict[str, object]
funcrun_simulation_artifacts(sim_path, artifact_names, *, structure_file, trajectory_file, output_prefix=None, vmd_path=None, ffmpeg_path=None, skip_existing=True)dict[str, object]

Run artifacts for a single simulation path.

paramsim_pathPath
paramartifact_namesIterable[str] | None
paramstructure_filestr
paramtrajectory_filestr
paramoutput_prefixstr | None
= None
paramvmd_pathstr | None
= None
paramffmpeg_pathstr | None
= None
paramskip_existingbool
= True

Returns

dict[str, object]
funcrun_analyses_local(sim_paths, analysis_names, *, structure_file, trajectory_file, backend='serial', n_workers=1, skip_existing=True, analysis_kwargs=None)pd.DataFrame

Run analyses sequentially across simulations.

paramsim_pathsIterable[Path]
paramanalysis_namesIterable[str] | None
paramstructure_filestr
paramtrajectory_filestr
parambackendstr
= 'serial'
paramn_workersint
= 1
paramskip_existingbool
= True
paramanalysis_kwargsdict[str, object] | None
= None

Returns

pandas.pandas.DataFrame
funcsubmit_analyses_slurm(sim_paths, analysis_names, *, structure_file, trajectory_file, slurm, log_dir, skip_existing=True, wait=True, analysis_backend='multiprocessing', analysis_workers=None, analysis_kwargs=None)pd.DataFrame

Submit analyses via submitit on SLURM.

paramsim_pathsIterable[Path]
paramanalysis_namesIterable[str] | None
paramstructure_filestr
paramtrajectory_filestr
paramslurmSlurmConfig
paramlog_dirPath
paramskip_existingbool
= True
paramwaitbool
= True
paramanalysis_backendstr
= 'multiprocessing'
paramanalysis_workersint | None
= None
paramanalysis_kwargsdict[str, object] | None
= None

Returns

pandas.pandas.DataFrame
funcsubmit_artifacts_slurm(sim_paths, artifact_names, *, structure_file, trajectory_file, output_prefix, vmd_path, ffmpeg_path, slurm, log_dir, skip_existing=True, wait=True)pd.DataFrame

Submit artifacts via submitit on SLURM.

paramsim_pathsIterable[Path]
paramartifact_namesIterable[str] | None
paramstructure_filestr
paramtrajectory_filestr
paramoutput_prefixstr | None
paramvmd_pathstr | None
paramffmpeg_pathstr | None
paramslurmSlurmConfig
paramlog_dirPath
paramskip_existingbool
= True
paramwaitbool
= True

Returns

pandas.pandas.DataFrame