Conversation
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.
There was a problem hiding this comment.
💡 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".
| fallback_index = ( | ||
| raw_frame_count | ||
| if self.include_restart_duplicates | ||
| else len(frames_by_index) | ||
| ) |
There was a problem hiding this comment.
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 👍 / 👎.
Summary
This PR updates
rmcsetupwith the latestupstream/mainchanges and adds the tested local workflow updates.Key changes:
Validation
upstream/main; branch is0 behind / 20 ahead.git diff --check FETCH_HEAD...HEADpassed.26 passedfor periodic table, SAXS template installation, and XYZ-to-PDB CLI coverage.Resolves #116
Resolves #119
Resolves #113
Resolves #73