rdk / p2rank

P2Rank: Protein-ligand binding site prediction tool based on machine learning. Stand-alone command line program / Java library for predicting ligand binding pockets from protein structure.
https://rdk.github.io/p2rank/
MIT License
242 stars 34 forks source link

Feature implementation not found: conserv #38

Closed skodapetr closed 3 years ago

skodapetr commented 4 years ago

There are several conservation features named:

However, not all of then works, for conserv I got:

java.lang.IllegalStateException: Feature implementation not found: conserv

I do not see a difference between the features - is there a description somewhere? As far as I know, there is also no recommendation of which feature should be used.

rdk commented 4 years ago

Where are they named?

List of currently available conservation based features is:

You can see that in cz.siret.prank.features.api.FeatureRegistry. First triplet are original features by Lukas and are described in his Bc. thesis (https://is.cuni.cz/webapps/zzp/detail/189243/41539668). Second triplet is new cleaner implementation by me that serve also as an example of using Residue/SAS/Atomic features framework and converters.

There is no recommendation which to use. Comprehensive experiments have not been performed, although I think you might find some comparison and discussion in Lukas's Bc. thesis. It is not hard to compare their contribution on your development dataset, either by calculating feature importances or comparing them one-by-one. My expectation would be that the difference between them is not substantial. They all start with the same information but map it onto SAS points in slightly different ways. Personally I would use second triplet in combination with tuning conserv_cloud_radius parameter.

rdk commented 3 years ago

@skodapetr, is the explanation sufficient?

skodapetr commented 3 years ago

The aim of the question was to found out why there is a class https://github.com/rdk/p2rank/blob/develop/src/main/groovy/cz/siret/prank/features/implementation/conservation/ConservRF.groovy with conservatio name conserv that when used throws java.lang.IllegalStateException: Feature implementation not found: conserv.

I would expect to be able to get the information you mention in your respojnse from a comment in the code or documentation. As now I know, but other person may not ... but at least there is chance that they may find this issue.