Skip to content

Rmcsetup#124

Merged
kewh5868 merged 20 commits into
mainfrom
rmcsetup
May 15, 2026
Merged

Rmcsetup#124
kewh5868 merged 20 commits into
mainfrom
rmcsetup

Conversation

@kewh5868
Copy link
Copy Markdown
Owner

Summary

This PR updates rmcsetup with the latest upstream/main changes and adds the tested local workflow updates.

Key changes:

  • Fixed MD trajectory restart-frame handling so source frame identity is preserved.
  • Added batch processing and run-file tooling across MD trajectory export, XYZ to PDB, cluster extraction, cluster dynamics, cluster dynamics ML, representative structure selection, and PDF/Debyer workflows.
  • Added the charged hard-sphere SAXS model template and related template metadata/tests.
  • Expanded FullRMC setup support for supplemental Packmol components.
  • Added PDF/Debyer batch queue and richer PDF analysis tooling.
  • Updated GitHub-facing README/docs with macOS/Linux versus Windows install guidance and workflow documentation.

Validation

  • Synced and merged current upstream/main; branch is 0 behind / 20 ahead.
  • Commit hooks passed for all local commits.
  • git diff --check FETCH_HEAD...HEAD passed.
  • Focused pytest passed: 26 passed for periodic table, SAXS template installation, and XYZ-to-PDB CLI coverage.
  • Local workflow testing was completed before committing.

Resolves #116
Resolves #119
Resolves #113
Resolves #73

kewh5868 added 20 commits May 7, 2026 16:42
Add shared plotting helpers for Igor-style labels, editable line plots, heatmaps, and stacked histograms. Wire the heatmap editor into cluster dynamics views and vectorize bond/angle measurements used by representative-style plotting workflows.
Add Packmol Docker linking, solvent-shell analysis/building, free-solvent allocation, structure-mode aware Packmol setup, and constraints preview/open helpers. Update the fullrmc UI and tests around the integrated RMC setup flow.
Introduce the representativefinder package, console entry point, run-file workflow, Qt setup/analyzer windows, and representative persistence helpers. Add tests and a performance harness while keeping generated benchmark outputs ignored.
Add a structure-viewer background color control, preserve the selected background across redraws, and cover the behavior in the viewer tests.
Add representative-structure component sources, template metadata capabilities, persisted plot editor state, and 1D/3D Born component workflow integration. Introduce the 3D FFT Born backend/UI and expand project, prefit, electron-density, and SAXS UI tests.
Refresh the docs landing pages, install/setup guides, and user-guide navigation for representative structures, 1D/3D Born workflows, Packmol Docker linking, and updated SAXS/fullrmc terminology.
Run the docformatter hook with Python 3.12 so its untokenize dependency does not build under Python 3.14, where the package setup fails while reading AST constants.
Bring in the latest upstream/main updates before splitting the rmcsetup work into focused local commits.

Includes the native Windows install guidance/environment file, the FullRMC constraint import guard, and the SAXS project-load progress signal fix.
Handle CP2K restart-overlap frames by using source i-index metadata and skipping earlier duplicate source frames by default.

Add an opt-in duplicate export mode, stricter XYZ filename/header validation, and a validate-export CLI command to catch mismatched exports.
Finalize smart solvation shell runs only when they close, preserving deferred unions across contiguous frame runs and resumes.

Add coverage for linear scaling over contiguous runs and for resumed exports that must rebuild deferred shell unions correctly.
Add a reusable Qt periodic-table widget and element picker dialog for workflows that need single-atom component selection.
Extend FullRMC setup to plan supplemental solute and solvent components, track generated Packmol inputs, and expose the workflow in the Qt setup interface with CLI coverage.
Add project-scoped run configuration files and batch-run CLI support for cluster dynamics ML, plus lifetime distribution plotting and tests.
Add saved run configurations, run-file setup UIs, CLI batch execution, and batch queue windows for the core project workflows, with coverage for cluster extraction, cluster dynamics, MD trajectory export, representative selection, and XYZ to PDB conversion.
Add PDF batch queue execution, richer partial/experimental analysis controls, R(r) coordination fitting support, and tests for the expanded Debyer workflow.
Add the Hayter-MSA charged MonoSQ template and a model-scale solvent template, with metadata, documentation, and regression coverage for the solution-scattering conventions.
Wire batch queues and run-file setup tools into the SAXS main window, keep project-writing tool windows single-instance, and add an experimental data overlay viewer with UI coverage.
Add the DMSO molecular-dynamics residue reference JSON and PDB template to the XYZ to PDB reference library.
Update GitHub-facing READMEs and user docs for macOS/Linux versus Windows setup guidance, batch/run-file workflows, and the expanded analysis tools.
Allow templates in the active template directory to be hidden by deprecated metadata, and update installer test fixtures to use current archived template locations with finite DREAM validation output.
@kewh5868 kewh5868 merged commit 6bb2821 into main May 15, 2026
2 checks passed
@kewh5868 kewh5868 deleted the rmcsetup branch May 15, 2026 00:30
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e6d9827fb9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +311 to +315
fallback_index = (
raw_frame_count
if self.include_restart_duplicates
else len(frames_by_index)
)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use collision-free fallback index for frames without i tag

When include_restart_duplicates is false, fallback indexing for frames that lack a parsed i = header uses len(frames_by_index). In mixed trajectories (some frames with explicit i values, some without), this can reuse an existing key (for example, 1-based i values followed by a frame without i), silently overwriting a previously parsed frame in frames_by_index. That drops source frames and can corrupt downstream preview/export results. The fallback should advance independently of existing keyed indices (e.g., raw position or max key + 1) so missing-header frames never overwrite prior entries.

Useful? React with 👍 / 👎.

@kewh5868 kewh5868 restored the rmcsetup branch May 15, 2026 01:32
@kewh5868 kewh5868 deleted the rmcsetup branch May 15, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant