submit
Submit analyses locally or via submitit.
funcnormalize_slurm_time(value) → strNormalize SLURM time strings to accepted formats.
paramvaluestrReturns
strfuncresolve_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_yamlPathReturns
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 | NoneResolve 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.
paramrequestedstrparamavailableset[str]Returns
str | Nonefuncfilter_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) → PathDetermine default log dir for submitit.
paramsim_pathsIterable[Path]Returns
pathlib.Pathfuncresolve_analyses(simulation, analysis_names) → list[str]Return analyses to run for a simulation.
paramsimulationSimulationparamanalysis_namesIterable[str] | NoneReturns
list[str]funcresolve_artifacts(simulation, artifact_names) → list[str]Return artifacts to run for a simulation.
paramsimulationSimulationparamartifact_namesIterable[str] | NoneReturns
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= Noneparamffmpeg_pathstr | None= NoneReturns
tuple[str | None, str | None]funcapply_tool_paths(vmd_path, ffmpeg_path) → dict[str, str]Apply tool paths by prepending to PATH.
paramvmd_pathstr | Noneparamffmpeg_pathstr | NoneReturns
dict[str, str]funcrestore_env(original_env) → NoneRestore environment variables.
paramoriginal_envdict[str, str]Returns
Nonefuncrun_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_pathPathparamanalysis_namesIterable[str] | Noneparamstructure_filestrparamtrajectory_filestrparambackendstr= 'serial'paramn_workersint= 1paramskip_existingbool= Trueparamanalysis_kwargsdict[str, object] | None= NoneReturns
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_pathPathparamartifact_namesIterable[str] | Noneparamstructure_filestrparamtrajectory_filestrparamoutput_prefixstr | None= Noneparamvmd_pathstr | None= Noneparamffmpeg_pathstr | None= Noneparamskip_existingbool= TrueReturns
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.DataFrameRun analyses sequentially across simulations.
paramsim_pathsIterable[Path]paramanalysis_namesIterable[str] | Noneparamstructure_filestrparamtrajectory_filestrparambackendstr= 'serial'paramn_workersint= 1paramskip_existingbool= Trueparamanalysis_kwargsdict[str, object] | None= NoneReturns
pandas.pandas.DataFramefuncsubmit_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.DataFrameSubmit analyses via submitit on SLURM.
paramsim_pathsIterable[Path]paramanalysis_namesIterable[str] | Noneparamstructure_filestrparamtrajectory_filestrparamslurmSlurmConfigparamlog_dirPathparamskip_existingbool= Trueparamwaitbool= Trueparamanalysis_backendstr= 'multiprocessing'paramanalysis_workersint | None= Noneparamanalysis_kwargsdict[str, object] | None= NoneReturns
pandas.pandas.DataFramefuncsubmit_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.DataFrameSubmit artifacts via submitit on SLURM.
paramsim_pathsIterable[Path]paramartifact_namesIterable[str] | Noneparamstructure_filestrparamtrajectory_filestrparamoutput_prefixstr | Noneparamvmd_pathstr | Noneparamffmpeg_pathstr | NoneparamslurmSlurmConfigparamlog_dirPathparamskip_existingbool= Trueparamwaitbool= TrueReturns
pandas.pandas.DataFrame