Featurizing 3D Molecules as Point Clouds

I’m interested in working with 3D molecular poses as point clouds.

This has been done in at least one paper (https://arxiv.org/abs/1908.11267) but the authors don’t provide code to replicate the point cloud creation process.

The ideal data format would be a list of tuples (x, y, z, c1, ... cn) where x, y, z are the coordinates of a given point and c1 .. cn and properties calculated at that point (electron density, etc). A simple example might be calculating electrostatic potential along the solvent accessible surface of a molecule.

Does anyone know a set of Python tools to do this? Currently the best I’ve got is using proprietary software to generate ESP surfaces which are saved to a CCP4 file (which is basically a voxelized density grid), loading that CCP4 file into Python and extracting an isosurface from the density grid. Pretty round about.


I haven’t tried this myself yet, but perhaps https://github.com/PyMesh/PyMesh could be useful? This was the approached used for the protein surface interaction fingeprints. They compute electrostatics along the solvent accessible surfaces of proteins. Their source code is Python at https://github.com/lpdi-epfl/masif and Apache licensed.