mirror of
https://github.com/rdk/p2rank.git
synced 2026-06-04 12:44:24 +08:00
Bug fix: - PrincipalMomentsDescriptor.clampNonNegative now also clamps NaN. The v<0 check was false for NaN, so a NaN eigenvalue (possible if a future code path bypasses GridGenerator.isFiniteBox) would have propagated to the CSV output. Doc refresh: - breaking-changes.md: 2.6 entry for the multi-column descriptor migration + the -vis_pocket_grid / pocket_grid_vis_* renames. - export-pocket-descriptors.md: step 4 rewrites a self-contradicting rationale — adding to the default list IS a breaking change for index-based parsers; recommends parse-by-name + breaking-changes.md note for future additions. - export-pocket-grid.md: added "Adding a new per-grid-point descriptor" recipe (parallel to the per-pocket one); unified √3/2 precision to 0.866 across docs and Params.groovy. - README.md: added an "Opt-in tabular exports" subsection mentioning -export_pocket_descriptors, -export_pocket_grid, -vis_pocket_grid. - testsets.sh "Full descriptor menu" now lists all seven shipped descriptors (was six). Exception taxonomy: - PocketDescriptorsRows.groovy and PocketGridBuilder.java now throw PrankException (was IllegalArgumentException) for user-facing config errors, matching the rest of the codebase. Registry hardening: - Both PocketDescriptorRegistry and PocketGridPointDescriptorRegistry now assert columnNames.size() == columnTypes.size() in register(). A future descriptor with mismatched lists fails fast at class-load. Quality fixes: - PocketGridRows.getColumn uses BASE_COLS-1 instead of literal 3 for the pocket column. Removed dead 2-arg PocketGridRows constructor (only 3 test sites used it; now inlined). - PocketGridPointContext gets a compact-constructor validator that rejects negative pointIndex/pocketRank, limiting blast radius of an int-arg swap. Test hardening: - VolsiteSmoothGridPointDescriptorTest + VolsiteGridPointDescriptorTest now pin sigma/radius in @BeforeEach AND restore in @AfterEach, so the Params singleton is clean for subsequent test classes. - New tests: HIS ND1 double-flag (single atom setting donor+acceptor), PrincipalMoments at cardinality=2, PrincipalMoments two coincident points, GridGenerator NaN-box throw, PocketDescriptorRegistry register/unregister round-trip, MorphologicalCloser maxIters=1. - Renamed respectsMaxIters → maxItersZeroIsNoOp (the test only covered the maxIters=0 case despite the general name); added maxIters=1 companion that verifies one iteration of fill actually runs. - Extracted RendererTestFixtures.tinyGrid (was byte-identical in both renderer test files); unified the volsite atomAt signatures so the parameter order can't get swapped between the two volsite tests.
4.3 KiB
4.3 KiB
Breaking changes
Introduction
This file collects backwards incompatible changes that have potential to break code that uses P2Rank.
These include:
- changes in the command line interface
- changes in the input/output format
- changes in default behaviour
All changes of that type should be rare and should be all listed here.
List of changes
2.6
Evaluation
- Ligand detection was fixed (
e7fc457f) to include nucleotide ligands (GDP, GTP, ATP — classified by BioJava asNUCLEOTIDE) and amino-acid-derivative ligands (SHR-like — classified asAMINOACID) that were previously skipped because onlyGroupType.HETATMqualified. Any non-water group in a NONPOLYMER chain now qualifies regardless of GroupType. This changes the relevant-ligand set on datasets containing such ligands, which moves DCA/DCC numerator and denominator and thus the reported success rates. - For additional internal evaluation-criterion fixes during the 2.6 dev cycle see
documentation/dev/evaluation-metric-fixes-2.6.md.
Pocket-descriptors export (opt-in feature)
- Per-pocket descriptors
-export_pocket_descriptorsunderwent a multi-column interface migration. The shipped default list now contains seven descriptors (previously six), addsprincipal_moments(a 3-column descriptor emittingprincipal_moments.lambda1/lambda2/lambda3), and reorders the existing six sonum_*come first. Scripts parsing the descriptors CSV/Arrow/Parquet output by column name are unaffected; scripts parsing by column index need updating. Seedocumentation/export-pocket-descriptors.md. - New opt-in
-vis_pocket_grid(renamed from-export_pocket_grid_pml) emits both PyMOL.pmland ChimeraX.cxcoverlay scripts. The two viz-tuning knobs were renamed for namespace consistency:pocket_grid_vis_volume_radius→vis_pocket_grid_volume_radiusandpocket_grid_vis_gaussian_iso→vis_pocket_grid_gaussian_iso. Old names hard-fail at startup with no aliases.
2.5.1
none
2.5
none
2.4.2
none
2.4.1
Prediction
- Scripts that execute P2Rank (shell script
distro/prankanddistro/prank.bat) no longer redirect log (stderr stream) to the filedistro/log/prank.log. Instead, they write stderr to the console. This was done to avoid P2Rank writing to the installation directory by default, which may be forbidden on some systems. See issue #59.
Training new models
- Type of parameter
-ignore_het_groupschanged fromSet<String>toList<String>
2.4
Prediction
none
Training new models
- Removed deprecated parameters
-conservation_originand-load_conservation_paths
2.3
Prediction
none
Training new models
- parameter
-extra_featureswas renamed to-features - command line format of parameters values with type
List<String>andList<List<String>>has changed- now only comas
,are delimeters and inner parentheses are respected - before
.was used as an alternative delimeter and delimeter for inner lists, now it is part of element value - Examples:
'(a.b.c)'was interpreted as list of 3 elements, now it defines list of 1 element:a.b.c- list of lists value
'((a.b.c),(d.e))'should be changed to'((a,b,c),(d,e))'
- now only comas
- Changes in
csv_file_feature- renamed to
csv - introduced parameter
-feat_csv_columns(type:List<String>). Names of enabled value columns from csv files must be listed here. Columns not listed are ignored.- Example: if you were working with one directory of csv files with one value column named
pdbekb_conservation, you must now run the program with-feat_csv_columns '(pdbekb_conservation)'
- Example: if you were working with one directory of csv files with one value column named
- introduced parameter
-feat_csv_ignore_missing(type:boolean, default:false). If true, then feature ignores:- missing csv files for proteins
- missing value columns
- missing rows for atoms and residues
- renamed to
2.2
- parameter
-conservation_dir(type:String) was renamed to-conservation_dirs(type:List<String>) - column
probabilitywas added to*_predictions.csvoutput file