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.
- 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.
- Prediction and rescoring now validate that the loaded model's stored feature header (
features.txt) matches the feature header produced by the current configuration. On mismatch the run fails fast with an actionable error (expected vs actual features) instead of silently producing incorrect predictions. This is controlled by the newfail_on_model_feature_mismatchparameter (defaulttrue); set-fail_on_model_feature_mismatch 0to downgrade the failure to a warning. Legacy models without a stored header (v1/v2 files, or v3 directories lackingfeatures.txt) are not affected. All bundled models match their shipped configs, so default usage is unaffected.
- Prediction and rescoring commands now validate that the chosen config's declared purpose
(
config_purpose, set topredictionorrescoringin the shipped configs) matches the command. A mismatch (e.g.prank rescore -c alphafold, or a rescoring config used withprank predict) fails fast with an actionable error. This is controlled by the newfail_on_wrong_configparameter (defaulttrue); set-fail_on_wrong_config 0to downgrade to a warning. Configs withoutconfig_purpose(custom configs, dev/training configs) are unrestricted, so they are unaffected.
- Per-pocket descriptors
-export_pocket_descriptorsunderwent a multi-column interface migration. The built-in default list now contains ten descriptors (previously six), addsprincipal_moments(a 3-column descriptor emittingprincipal_moments.lambda1/lambda2/lambda3) and three electrostatic descriptors (pocket_net_charge,pocket_charge_polaritywith 3 sub-columns positive/negative/ratio, andpocket_dipole_magnitude), 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.
- The
-pocket_grid_point_descriptorsdefault was previously empty (no per-point columns appended to the grid CSV). It now contains all three registered per-grid-point descriptors:volsite(6 cols),volsite_smooth(6 cols),electrostatics(5 cols) — 17 extra columns per (point, pocket) row when-export_pocket_grid 1. To restore the prior bare x/y/z/pocket schema, pass-pocket_grid_point_descriptors ''. Seedocumentation/export-pocket-grid.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.
Several feature calculators changed their numeric output (or width) during the 2.6 dev cycle. The model/feature-header check above catches a width change at load time, but value-only changes are silent: a model trained on 2.5.1 feature vectors sees shifted inputs at prediction time. Retrain models that use these features (the listed research configs).
duplets(sequence duplet propensity) widened from a singleproductcolumn to three (avg,max,product). Models usingduplets_sas/duplets_atomic(e.g. config/ions, config/pept) must be retrained.cres(contact-residue) contact-atom distance changed from 3.3 to 3.5 A (ContactResiduesRF.CONTACT_ATOM_DIST), shiftingcresvalues for any model using it (config/dna, config/ions, config/pept).cr1pos.CAmCBnow reflects the truedca - dcbfor every residue. Previously a value-ordering bug subtracteddcbbefore it was assigned (sodcbwas 0), makingCAmCBequaldca(the CA distance) in the common case. Models trained on the oldcr1posmust be retrained.asa(solvent-accessible surface) now includes cofactor HETATM atoms when-cofactorsis enabled (switched fromgetAllNonHAtomArray(hetAtoms=false)to the protein heavy-atom set). Only affects runs using cofactor-as-surface.
- Structures that deposit microheterogeneity as separate superimposed whole chains, each tagged with a single
non-blank altLoc letter (e.g. PDB
6een, chains A/B/C/D being the same polymer ~0.002 A apart), now have the redundant alternate chains dropped at load time, keeping only the primary conformation. Controlled by the newreduce_alternate_conformation_chainsparameter (defaulttrue); set-reduce_alternate_conformation_chains 0for legacy behaviour (all alternate chains loaded). This changes the surface, features, and predictions for such structures (the previous output was computed on ~Nx-overlapping atoms and was inflated). Ordinary within-residue altLocs are already collapsed by the parser and are unaffected. The pattern is rare (~3/10000 structures on a PDB-wide sample, 1 of them materially), so aggregate benchmark metrics are unchanged within noise. Seecz.siret.prank.geom.AlternateChainReducer.
none
none
none
- 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.
- Type of parameter
-ignore_het_groupschanged fromSet<String>toList<String>
none
- Removed deprecated parameters
-conservation_originand-load_conservation_paths
none
- 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
- parameter
-conservation_dir(type:String) was renamed to-conservation_dirs(type:List<String>) - column
probabilitywas added to*_predictions.csvoutput file