Skip to content

Rename mdforge to MolDynX Tools (moldynx) - #2

Merged
SamDozer merged 5 commits into
mainfrom
feature/moldynx-dataset-pipeline
Sep 23, 2026
Merged

SamDozer merged 5 commits into
mainfrom
feature/moldynx-dataset-pipeline

Conversation

@SamDozer

Copy link
Copy Markdown
Owner
  • git mv mdforge -> moldynx; imports, CLI, output folder, manifest key and
    plugin entry-point group renamed; prose and citation metadata use the
    display name "MolDynX Tools (formerly mdforge)".
  • Distribution renamed to moldynx-tools; version 0.3.0.
  • Compatibility for one minor version: an mdforge shim package aliases every
    mdforge.* import to the same moldynx module objects (one registry) with a
    DeprecationWarning; the mdforge console script is kept; plugins under the
    legacy mdforge.plugins entry-point group are still loaded, with a warning.
  • tests/test_rename.py covers the new identity and the shim.

Co-Authored-By: Claude Opus 5.5 [email protected]

SamDozer and others added 5 commits September 24, 2026 00:52
- git mv mdforge -> moldynx; imports, CLI, output folder, manifest key and
  plugin entry-point group renamed; prose and citation metadata use the
  display name "MolDynX Tools (formerly mdforge)".
- Distribution renamed to moldynx-tools; version 0.3.0.
- Compatibility for one minor version: an mdforge shim package aliases every
  mdforge.* import to the same moldynx module objects (one registry) with a
  DeprecationWarning; the mdforge console script is kept; plugins under the
  legacy mdforge.plugins entry-point group are still loaded, with a warning.
- tests/test_rename.py covers the new identity and the shim.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Discovery used to pick the largest file per role, which on real CHARMM-GUI
folders selects an equilibration .tpr as the topology and a minimisation crash
dump as the structure. Files are now classified by simulation stage; earlier
analysis outputs, backups and caches are ignored; the production trajectory is
the longest complete one whose atom count matches the run input, verified from
file headers, and ambiguities are reported instead of resolved silently.

- moldynx.io.gromacs: read-only log/mdp/xtc/tpr readers and a gmx runner with
  WSL fallback (the XTC scanner writes no offset cache into the data folder).
- moldynx.io.validation: capability matrix, atom-count consistency check.
- moldynx.io.intake + `moldynx intake`: INTAKE_REPORT.md / intake_manifest.json
  with per-stage summaries, temperature changes, clock offset, run extension
  and job-script inputs that are absent.
- SystemInfo gains per-chain records and ion counts; the manifest records the
  evidence chain and fingerprints of every input.
- Tests on real trimmed logs and miniature copies of two real folder layouts.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
- moldynx.core.pbc.PBCProcessor: per frame, measure the raw coordinates
  (split molecules, COM continuity, PBC-aware partner distance), apply
  none/whole/nojump (auto: nojump for multi-molecule solutes, first-frame
  clustering), then prove the result against the raw frame (whole-box
  translations only, bonds short, partner distances preserved, two
  translation vectors exactly where a molecule was split).
- AnalysisContext: no more silent try/except around unwrap; the solute cache
  is keyed on input fingerprints, PBC mode, slice and selection; chain
  identity persisted as atom-index ranges (chain_groups()).
- interface: partners from persisted chain identity (PDB truncates
  CHARMM-GUI segids to 'seg_', collapsing both chains into one segment).
- New pbc_validation analysis.
- Reproduces an independent manual audit of two 100 ns complexes exactly.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ext steps

- analysis/equilibration.py: stage parameters, minimisation outcome and Fmax
  location, crash dumps, energy statistics, position restraints (gmx dump),
  protonation, chain of custody (io/jobscripts.py), timeline, figure.
- io/gromacs.py: filtered gmx dump pipeline and position-restraint reader.
- analysis/interface.py: legacy-validated suite with full core lists,
  residues ever within 6 A, buried area, iRMSD, trends.
- core/surface.py: frame-by-frame Shrake-Rupley (mdtraj 1.11.1 multi-frame
  calls return wrong values for some frames); sasa and interface stride 10.
- docs/NEXT_STEPS.md: remaining phases 5-10 and acceptance values.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@SamDozer
SamDozer merged commit e308ba6 into main Sep 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant