Skip to content

Should we allow custom functions for calculating solvation shells at the RDF step? #55

@hmacdope

Description

@hmacdope

I am thinking that we might want to add more flexibility at the level above analysing the RDF itself. Ie, should we allow custom functions to calculate shells that don't rely on the RDF?

This would allow generalisation of the problem to any classifier which I hope would find uses in analysing more complex solvation behaviour. More complex functions like NNs may be able to identify second solvation shells and correlated motions better than a simple 1D function (the RDF).

Our current workflow goes:

trajectory -> RDF() -> Radii() -> Solvation_data

Really the RDF and Radii steps can be merged to make it look like:

trajectory -> some_classifier() -> Solvation_data

We currently allow flexibility at the Radii step, but not at the RDF step, ie the user cannot provide a non-RDF based method to then determine radii.

Do we think this would be a good addition? It is a bit complex and would require a bit of a refactor so I would be happy to push down the track.

I am thinking that perhaps we turn the middle step into a class that must be subclassed so that it can be easily switched out. i.e the user would provide the implementation they wanted. The default setup we use at the moment would then look like:

class RDF_Univariate_Spline_Kernel(SolvationKernelBase):

 def compute():
     ...
     return radii


class Solution(solvation_kernel=RDF_Univariate_Spline_Kernel):

   solvation_kernel.compute()
...

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions