Repository navigation
Prevent torsions and couplings across filtered residues - #63
choijein0410 wants to merge 1 commit into
Conversation
|
Thanks for rerunning CI. I reproduced the reported failures on the unmodified upstream base ( Reproduction run, logs, and artifacts · Comparison script and pinned packages The run used the same Ubuntu 24.04 x86_64 runner image (
The failures also match the original CI run:
As a separate control, I ran the eight new regression tests against upstream code: 5 failed and 3 passed in all three runnable environments. With the patch, all 8 passed in each environment. The artifacts contain full pytest logs, JUnit reports, source hashes, package lists, and machine-readable comparisons. The reproduction workflow's green status means the baseline failures matched; the full Barnaba suite still has the failures listed above. |
When
Nucleicskips an unknown residue or one missing the base atoms required for recognition, itsok_residueslist can place nonadjacent topology residues next to each other. The same-chain checks then construct alpha/epsilon/zeta and epsilon-based J-coupling quartets across the skipped residue, returning finite values for an invalid connection.Require adjacent original topology residue indices as well as the existing chain check in the four inter-residue paths. Invalid quartets retain the existing missing-value sentinel, so the public angle and J-coupling APIs return
NaN. PDB residue numbers and insertion codes do not determine adjacency.The regression tests use the existing
UUCG.pdbfixture and cover unknown names, missing base atoms, reordered residue selections, terminal/chain boundaries, nonconsecutive residue numbers, and PDB insertion codes. They also compare all unaffected values and existing NaNs.I additionally checked two public 20-model GCAA NMR bundles (source data). Their unrecognized
URI11caused G10's epsilon quartet to useG12:P. The patch marks G10 epsilon/zeta, G12 alpha, and the two affected G10 J-couplings as missing; all other outputs remain exactly unchanged. Chemistry-checked URI-to-U copies and a canonical-U MD control preserve their original outputs.Validation:
48ac4a9in the same environment:test_dsmotif,test_escore,test_rmsd_1, andtest_ssmotif. These are the existingnp.floatremoval and generated-PDB reference-comparison failures.E9,F63,F7,F82) reports zero errors.Related to #46, but this change specifically handles residues filtered out of an existing topology. It does not infer missing connectivity when a residue is absent from the topology itself, so it does not close that issue.