Skip to content

Report and log: no false positives when all restraints are consistent - #60

Merged
amjjbonvin merged 2 commits into
mainfrom
59-zscore-false-positives
Nov 10, 2026
Merged

amjjbonvin merged 2 commits into
mainfrom
59-zscore-false-positives

Conversation

@amjjbonvin

@amjjbonvin amjjbonvin commented Nov 10, 2026 •

Copy link
Copy Markdown
Member

What does this PR do and why?

When complexes are consistent with all restraints, the report and the log
flagged a restraint as a possible false positive, and the report left out the
violations of N = all restraints (#59).

  • report.html: the violations table shows every N with complexes, including
    the row for all restraints (all 0). The Z-score table highlights rows only
    when not all restraints are consistent; its title is then
    "Z-scores (above 1.0: possible false positive)", otherwise
    "Z-scores (all restraints are consistent)".
  • disvis.log: "Possible false-positive restraints (z-score > 1.0)" only when
    not all restraints are consistent.
  • README (z-score.out) and CHANGELOG updated.

The .out and .mrc files are unchanged.

Version 3.1.1, with the 3.1.0 changes under their own heading in CHANGELOG.md.

How was this tested?

  • tests/test_report.py: two assertions on the existing test data (all 7
    restraints consistent): the N = 7 row is shown and no row is highlighted.
    They fail without the fix. All 28 unit tests pass.
  • test-cases/check_test_cases.py (coarse, CPU): output files byte-identical.
  • Example results regenerated: PRE5-PUP2 cpu/coarse, cpu/coarse-is-oa and
    cpu/fine (macOS) and gpu/coarse, gpu/fine (tintin, RTX 6000 Ada) re-run,
    output files identical to the references, log without false positives;
    RNA polymerase II reports rebuilt from the existing files (only the title
    changes, restraints 7 and 8 still flagged).

Not tested: the web service; runs 1856848 and 1856846 were checked from their
output files only.

AI assistance

Written with Claude Code; checked as above.

Checklist

  • Tests cover the new and/or changed code
  • Documentation updated if needed (README.md, INSTALLATION.md)
  • Reference results in test-cases/*/example-results/ updated if the output changes

Related issues

Closes #59

Notes for reviewers

The log change has no unit test: the message is written in main(); it was
checked with the test-case runs above.

🤖 Generated with Claude Code

The violations table of report.html shows every N with complexes,
including the row for all restraints (all 0). When all restraints are
consistent, the report does not highlight Z-scores and disvis.log does
not list possible false positives: the Z-scores are relative, so one is
above 1 even then. Example results regenerated.

Closes #59

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@amjjbonvin
amjjbonvin requested a review from a team as a code owner November 10, 2026 07:02
@amjjbonvin
amjjbonvin merged commit e955979 into main Nov 10, 2026
28 checks passed
@amjjbonvin
amjjbonvin deleted the 59-zscore-false-positives branch November 10, 2026 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Report and log flag false positives when all restraints are consistent

1 participant