Skip to content

Python: Added Omega torsion angles#554

Closed
smoe wants to merge 1 commit into
BALL-Project:masterfrom
smoe:torsionOmega
Closed

Python: Added Omega torsion angles#554
smoe wants to merge 1 commit into
BALL-Project:masterfrom
smoe:torsionOmega

Conversation

@smoe
Copy link
Copy Markdown
Contributor

@smoe smoe commented Jun 24, 2015

Dear all,

We are working with collagens over here (motivated by an autoimmune disease targetting them in the skin) and those are exceptionally rich in Glycines and (Hydroxy-)Prolines, so we thought we better have a look at the Omega dihedral angles rather than only Psi and Phi.

To keep it short: The BALL python interface did not know much about omega torsions but it does now. While grepping through your source tree I had found additional occurences of psi and phi, which stimulated adding omega there, too. You may have reasons to decide against those extra bits.

Best,

Steffen

okohlbacher added a commit that referenced this pull request May 15, 2026
Adds Phase 5.2 as a new in-scope item with per-PR disposition matrix:

- #640 FindXDR refactor: investigate-then-close-or-rebase (XDR may be gone post-Phase-4)
- #600 Travis-CI integration: close .travis.yml part (Travis dead), cherry-pick 4 orthogonal files
- #554 Omega torsion: extract C++ slice (residueRotamerSet, residue.C), defer .sip to Phase 6
- #550 HYP residue: rebase + merge in v1.6.1 (no Python parts, pure C+++data gap fix)
- #546 Insertion code printing: extract C++ slice (residue.{h,C}), defer .sip to Phase 6

Plan breakdown (A/B/C/D) sequenced to avoid residue.C merge conflicts
(C bundles #554+#546; D HYP runs after C OR merges into it).

Release criterion 4 added: each open PR must reach a recorded disposition.

Open question 3 added: XDR-still-used grep verifies #640's path.
Open question 4 added: maintainer policy on cherry-picking from departed contributors.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
okohlbacher added a commit that referenced this pull request May 15, 2026
…ficant, 5 notable findings

Critical:
1. release.yml still uses Qt 5; will fail on v1.6.1 (codex)
2. PRs #554 + #546 partially-implemented in current Residue; cherry-pick = duplicate API (codex)
3. v1.6.1 scope drifted into minor-release shape (codex + claude)
4. Phase 5.1 verification basis on 54da903 is unproven (codex)

Actions to apply:
- Move Phase 5.2 PR triage to v1.6.2 (use existing Phase 999.5 slot)
- Add release.yml Qt 6 repair as v1.6.1 critical pre-tag fix
- Make B3 C4251 measurement explicit pre-Phase-5.2 step
- Sync ROADMAP progress table (5/8, 13/14 -> 8/8, 14/14)
- Promote Phase 999.7 Linux part to active (commit 54da903 = 999.7 work)
- Expand release criteria (published-not-draft, exact-tag, codesign verify, supersede notes)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
okohlbacher added a commit that referenced this pull request May 15, 2026
CRITICAL (from codex):
- Move PR triage (Phase 5.2) OUT of v1.6.1, defer to v1.6.2 via Phase 999.5
  (PRs #554/#546 partially-implemented in current Residue; archaeology
  required before cherry-pick — not patch-release work)
- Add release.yml Qt 6 repair as a pre-tag fix item (release.yml still
  installs qt@5 / calls qt@5/bin/macdeployqt — v1.6.0 tagged on Qt 5 codebase
  but Phase 5 migrated to Qt 6 without updating release.yml; any v1.6.1
  release attempt will fail at CMake configure)

SIGNIFICANT (claude + codex):
- Make B3 C4251 baseline measurement explicit pre-tag step (UAT requires
  post-pragma count from first clean tri-OS CI run before further source
  merges clobber the baseline)
- Promote Phase 999.7 Linux part to active (commit 54da903 aqtinstall fix
  is partial 999.7 work)
- Expand release criteria: published-not-draft, exact-tag-build, codesign
  verify after zip, supersede v1.6.0 release notes

NOTABLE (codex):
- Sync ROADMAP progress table: Phase 5 5/8→8/8 Complete, Phase 5.1
  13/14→14/14 Complete (table was stale despite phase headers being correct)

Source: .planning/REVIEW-v1.6.1.md (full synthesis review)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
okohlbacher added a commit that referenced this pull request May 16, 2026
…ygiene audit (3-round Codex-reviewed)

Cross-checks ROADMAP.md against MILESTONE-CONTEXT.md, CONCERNS.md, recent commits,
debug sessions, planning artifacts, and open issues/PRs to surface items deferred
to v1.6.2 (or "v1.6.x housekeeping") that never made it into the backlog, plus
hygiene fixes for stale entries.

Three rounds of adversarial Codex review (v1 REJECT-AND-REWORK → v2 APPROVE-WITH-FIXES
→ v3 APPROVE-AS-IS). Key Codex catches:

- v1 claimed 6 forgotten items: 2 were false positives (ContourSurface bug from
  stale CONCERNS.md; B3 baseline already recorded). 2 were tracking-fixes-not-
  backlog (Phase 9 progress-table row; glwidget debug doc reconcile).
- v2 added Phase 999.21 Qt 6 regressions (CR-01/02/03) based on stale
  05-VERIFICATION.md — all three are actually fixed in current code
  (HTMLPage.C:36, molecularControl.C:500, PresentaBALLView.C:41, pyWidget.C:349).
  REMOVED in v3.
- v2 also overstated 999.7 remaining scope — gl_profile landed in 7b28685.
  NARROWED in v3 to Windows driver capture only.

Net findings:
- 2 real source-level additions for v1.6.2 backlog:
    A1: 999.22 Tier-C warning census + (a)-subset (NOT wholesale ~3700 cleanup)
    A3: 999.21 DockResultFile QtXml dead-code cleanup (1 hour)
- 1 stretch addition:
    A4: 999.23 CIF Bison grammar audit (defer to v1.7 if v1.6.2 fills up)
- 1 progress-cleanup not a backlog item:
    A2: Phase 9 close — CI wiring already in tree (b2bb718 + 61bf5a7),
        only 3 baseline failures need triage + flip gatekeeper to blocking
- §B PR triage decision: use 999.14 with named "5-PR legacy bundle"
  (#640, #600, #554, #550, #546); NOT a new Phase 5.2 unless triage
  turns into real merge code work
- 5 hygiene fixes (§C2/C3/C4 + §D1/D2/D4/D5):
    - Mark Phase 999.4 as COMPLETED via Phase 4.1
    - Narrow Phase 999.7 scope to Windows driver capture only
    - Mark Phase 5.1 B3 baseline carry-forward as RESOLVED (run 25953405453)
    - Remove false ContourSurface bug from CONCERNS.md
    - Update ROADMAP Phase 9 row to reflect partial completion
    - Reconcile glwidget-port-misprojection debug session status
    - Add "Updates / Resolution log" pointer on 05-VERIFICATION.md → 05-HUMAN-UAT.md
      (the recurring trap of stale planning docs misleading future audits)
- §E workflow gap: no v1.6.2 MILESTONE-CONTEXT.md yet; create when v1.6.1 tags
- §F recommended v1.6.2 shape: 5 build-accel/CI-hygiene phases + Phase 9 close +
  999.14 PR triage + 999.21 dead-code; ~7-11 days core effort (patch shape)

Audit is approve-as-is; §G action items totaling ~2 hours of edits can apply
in a separate follow-up commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex (GPT-5.5) <noreply@openai.com>
okohlbacher added a commit that referenced this pull request May 16, 2026
… + 3 new backlog entries)

Follow-up commit to 11c8e0f. Applies all 8 §G action items from the audit
in a single focused change.

ROADMAP.md hygiene (§C2/C3/C4 + §D2):
- Phase 9 row: 0/0 Not started → (partial) In Progress (v1.6.2); CI wiring
  + coverage + JUnit reporter landed in b2bb718 + 61bf5a7; 3 baseline
  failures remain (Directory_test, AmberFF_test, AssignBondOrderProcessor_test2).
- Phase 5.1 row: B3 carry-forward marked RESOLVED — 3495 → 0 on run
  25953405453 per 05.1-08-SUMMARY.md + 05.1-UAT.md.
- Phase 999.4 header: "PROMOTED to Phase 4.1" → "COMPLETED via Phase 4.1
  (2026-05-15)" with completion citation.
- Phase 999.7 entry: scope-narrowed per audit §C3. Build-system pain
  (SEED-005-1 Linux aqtinstall, SEED-005-2 Windows vcpkg baseline) and
  macOS gl_profile=(compatibility|none) relaxation all CLOSED by other
  phases (commit 54da903, run 25953405453, commit 7b28685). Only SEED-005-3
  Windows VM driver-behaviour capture remains; defer to v2.0 post-PIPE-01
  unless Windows-access contributor surfaces sooner.
- Phase 999.5 (Open-PR triage): closed as superseded by Phase 999.14.

ROADMAP.md backlog (§B):
- Phase 999.14: added named "5-PR legacy bundle" subtask per audit §B +
  MILESTONE-CONTEXT.md:270-279 (#640 FindXDR, #600 Travis-CI, #554 Omega
  torsion, #550 hydroxyproline AA, #546 residue insertion code). Table
  per-PR with likely category. Bundle-escape clause: spin out as Phase 5.2
  if rebase work exceeds ~3 days. Target milestone explicit: v1.6.2.

ROADMAP.md new backlog entries (§A1/A3/A4):
- Phase 999.21 (DockResultFile QtXml dead-code cleanup, v1.6.2, 1 hour) —
  was Phase 5.1 BLOCKER-A2, never picked up.
- Phase 999.22 (warning census + (a)-subset, v1.6.2, ≤2 weeks) — recast
  from "clean ~3700 warnings wholesale" to census + small-subset-only,
  per Codex correction. Includes residual Windows C4910/C4834.
- Phase 999.23 (CIF Bison grammar audit, v1.6.2 or v1.7, 1-2 days) —
  scope narrowed to CIF only (count 3 vs 5 reconcile during phase);
  other 7 Bison grammars out of scope.

Doc hygiene (§D1/D4/D5):
- CONCERNS.md ContourSurface entry: marked NOT-A-BUG with audit citation
  (implementation at contourSurface.h:302-306 is correct; original audit
  inspected only the declaration). Includes lesson-for-future-audits.
- 05-VERIFICATION.md: added "⚠ STALE FINDINGS" banner pointing readers
  at 05-HUMAN-UAT.md as the rolling-resolution source of truth + new
  `resolution_log:` frontmatter field. Two roadmap audits (v1 + v2)
  were misled by reading this snapshot without cross-checking HUMAN-UAT.
- glwidget-port-misprojection.md: added `audit_notes:` frontmatter
  citing audit §D4 — status stays awaiting_human_verify (cannot be
  auto-closed; needs interactive macOS visual recheck), with explicit
  action for whoever runs the recheck.

§E (v1.6.2 MILESTONE-CONTEXT.md creation) deferred — appropriate
trigger is "v1.6.1 has tagged + shipped," not yet true.

Net ROADMAP delta:
- Active phases unchanged.
- Backlog: 5 v1.6.2 phases → 8 (added 999.21/22/23).
- 999.5 closed (superseded), 999.4 closed (promoted+completed),
  999.7 narrowed.
- Progress table reflects current state for Phase 5.1 (B3 done) and
  Phase 9 (CI wiring landed, 3 failures remain).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex (GPT-5.5) <noreply@openai.com>
okohlbacher added a commit that referenced this pull request May 16, 2026
Three remaining v1.6.2 PLAN.md execution prompts, written via /gsd-plan-phase
pattern to complete the milestone planning round:

- 999.22 (WARN-CENSUS-01, CENSUS-ONLY per 2026-05-16 Open Q3):
  Pull tri-OS green CI build logs, build CENSUS.md per-warning x file x
  cause classification tagged (a)/(b)/(c), file three deferral backlog
  stubs (999.22a v1.7 mechanical, 999.22b v2.0 blocked-by-999.6,
  999.22c v1.7 per-site). Zero source-code changes.

- Phase 9 close (TEST-CLOSE-01 + TEST-CLOSE-02):
  Six tasks. Triage the 3 baseline failures (Directory_test, AmberFF_test
  with Linux cross-check for FP-precision-vs-regression diagnosis,
  AssignBondOrderProcessor_test2 fine-penalty), pre-flip green-list
  verification, flip macOS+Linux gatekeeper continue-on-error true->false
  in ci.yml + release.yml mirror, file Phase 999.24 Windows-test-gatekeeper
  backlog stub. Disposition heuristic: <2h -> FIX, 2-8h or FP-driven ->
  QUARANTINE, v2.0-architectural -> KNOWN-CASUALTY.

- 999.14 triage (TRIAGE-01 + TRIAGE-02 + TRIAGE-03):
  Five tasks. Snapshot open issues+PRs to JSON baselines, categorize per
  5-category rubric with templated close comments + decisions.md audit
  trail, stale-docs audit applying f176b8b pattern (banner +
  resolution_log frontmatter) to VERIFICATION.md files with stale rows
  resolved in sibling HUMAN-UAT.md, 5-PR legacy bundle (#640 FindXDR /
  #600 Travis-CI / #554 Omega / #550 HYP / #546 InsertionCode) with
  per-PR scope-check + rebase-or-close + 3-day bundle-escape clause
  routing spillover to Phase 5.2, wire 999.5 <-> 999.14 supersedes
  pointer.

All three closes the v1.6.2 milestone planning round; execution can now
proceed via /gsd-execute-phase 999.16 (and others) without re-planning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
okohlbacher added a commit that referenced this pull request May 16, 2026
Round-1 of Phase 999.14 TRIAGE-01 categorization, scoped to external-author
items only (maintainer-team batch deferred per safety constraint — needs
explicit user confirmation before closing).

Inventory: 176 open issues + 5 open PRs (baselines snapshotted into
.planning/triage-999.14/{issues,prs}-baseline.json).

External items processed (16 items): 10 closed, 5 keep, 2 needs-investigation.
- close-as-fixed (2): #655, #661 (release request → v1.6.1 shipped 2026-05-16)
- close-as-obsolete (8): #543 #545 #558 #573 #654 #657 #658 + PR #600
  (tutorials → C++17 default; SIP-disabled items; FreeBSD unsupported;
  BALL 1.1.1 ancient; Travis-CI replaced by GitHub Actions)
- close-as-stale (2): #563 #575 (>9yr old, no maintainer interest)
- keep (5): #663 (sip6 → 999.15), #627 (Windows Directory → BALL 2.0),
  PRs #554 #550 #546 (5-PR legacy bundle, deferred to Phase 5.2)
- needs-investigation (2): #662 (live QMBasisSet.h missing-include bug),
  #659 (Python find_package — tied to 999.15 SIP decision)

Deferred for user confirmation:
- 160 maintainer-team-authored issues (anhi/tkemmer/dstoeckel/pbrach/Laura-K)
- 1 maintainer-team PR (#640 philthiel)
- Surface-scan flags ≥9 anhi items as RTfact-removed → easy obsoletes if
  batch confirmation comes through.

Not executed this round (deferred to coordinate with concurrent sessions):
- TRIAGE-02 (VERIFICATION.md ↔ HUMAN-UAT.md stale-docs audit)
- TRIAGE-03 (5-PR legacy bundle rebase work)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@okohlbacher
Copy link
Copy Markdown
Contributor

This was resolved by the v1.6 modernization work. Specifically: commit 45dce69 (feat(999.14-01): merge C++ slice of PRs #546 #554 #550) in Phase 999.14 (TRIAGE-03). The C++ portion of this PR (omega torsion angles in residueRotamerSet + the hasTorsionOmega() comment fix in residue.C) was cherry-picked onto v1.6-modernization. The SIP/Python portion is deferred to Phase 999.15 (PyBALL v2 rewrite with a modern binding generator). Thank you for the contribution.

okohlbacher added a commit that referenced this pull request May 16, 2026
…n C+D)

Cherry-picked and manually applied the C++ portions (SIP/.sip files excluded
per TRIAGE-03 plan; Phase 999.15 handles SIP/Python rewrite).

PR #546 (Residue insertion code FullName types, smoe, 2015):
- include/BALL/KERNEL/residue.h: add ADD_RESIDUE_ID_AND_INSERTION_CODE +
  ADD_VARIANT_EXTENSIONS_AND_ID_AND_INSERTION_CODE to FullNameType enum;
  fix enum comment doxygen alignment.
- source/KERNEL/residue.C: extend getFullName() to append insertion code
  when the new enum variants are used.

PR #554 (Omega torsion angles, smoe, 2015):
- include/BALL/STRUCTURE/residueRotamerSet.h: add hasTorsionOmega(),
  getTorsionOmega(), setTorsionOmega() declarations + has_torsion_omega_ +
  omega_ member vars.
- source/STRUCTURE/residueRotamerSet.C: implement omega torsion methods;
  initialise has_torsion_omega_(false)/omega_(0) in default + parameterised
  constructors and copy-constructor/operator=; add 3 method definitions.
- source/KERNEL/residue.C: fix wrong comment in hasTorsionOmega()
  ("phi...N-terminus" -> "omega...C-terminus").

PR #550 (Hydroxyproline HYP residue, smoe, 2015):
- source/KERNEL/residue.C: add error-logging else branches in getTorsionPsi()
  and getTorsionPhi() when hasTorsionXxx() returns false.
- source/STRUCTURE/peptideBuilder.C: treat HYP like PRO in the is_proline_
  flag (both have covalent backbone-sidechain ring).
- include/BALL/STRUCTURE/peptideBuilder.h: improve is_proline_ doc comment.
- source/STRUCTURE/peptides.C: extend one_letter_codes + three_letter_codes
  to cover ambiguity codes (ASX/GLX) and non-standard AAs (CIT/HEY/HYP/ORN/THX).
- data/fragments/PRO.db: add 1OB/1OH oxygen atoms + bonds 40/41; add HYP
  variant (deletes 2HB/OXT/1H/2H); add 2OB/2OH to Default/PRO-M/PRO-C/PRO-N
  delete lists.

Build: libBALL.dylib green (cmake --build build/ci-macos --target BALL -j 8).
okohlbacher added a commit that referenced this pull request May 16, 2026
… decisions.md

All 5 named PRs (#600 #640 #554 #546 #550) dispositioned:
- #600: already closed-as-obsolete (round-1)
- #640: merged via cherry-pick 9c6d868
- #554 #546 #550: C++ slice merged via 45dce69; SIP deferred to 999.15

Bundle-escape clause DID NOT FIRE — all 5 dispositioned in <1h.
okohlbacher added a commit that referenced this pull request May 16, 2026
…-01/02/03 complete

Phase 999.14 execution complete:

TRIAGE-01: 176 issues + 5 PRs categorized; 82 net closes (3-round pass);
99 kept; 2 needs-investigation parked. decisions.md audit trail covers
every baseline item.

TRIAGE-02: 7 VERIFICATION.md files audited; f176b8b stale-findings banner
already applied to 05-VERIFICATION.md; 0 new banners needed; STALE-DOCS-AUDIT.md
written.

TRIAGE-03: 5-PR bundle dispositioned:
  - #600 closed-as-obsolete (Travis-CI, prior session)
  - #640 merged via cherry-pick 9c6d868 (FindXDR refactor — XDR still in use)
  - #554/#546/#550 C++ slice merged 45dce69; SIP deferred to Phase 999.15
  Bundle-escape clause DID NOT FIRE.

Task 5: ROADMAP 999.14 Plans line updated; 999.5 ↔ 999.14 bidirectional
supersedes pointer confirmed.

REQUIREMENTS.md: TRIAGE-01/02/03 all marked Complete.
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.

2 participants