MolecularNodes
MolecularNodes copied to clipboard
Problem with Surface Style
Hi Brady
I tried to mimic your tutorial “Blender for Biochemists | Fundamentals of 3D” with MolecularNodes today, but I found a problem with the surface style. It doesn't seem to be the same as the surface produced by pymol. MolecularNodes create larger surfaces that encapsulate small molecule. (pdb:6LU7)
Atom Style (Using MolecularNodes)
Surface Style (Using MolecularNodes)
In the surface style, the small molecule and the protein surface are overlaped.(pdb:6LU7)
You are right in that the default surface isn't the same. You'll want to play around with the settings on the surface node, try changing the radius down to 1 and the playing around with the other settings.
Because the surface isn't exactly the same as how it is done in PyMol it will never be exactly the same, but you can get pretty close by tweaking the settings. I'll add this to the list of things to do an explanatory video on.
Thank you for your answer.
I found a new problem when adjusting the parameters. The “Voxel Size” cannot be 0, otherwise it will cause jamming. I often adjust parameters through the left and right buttons, which easily leads to this problem.
Yes that's blender freezing when trying to compute too much data from the lower voxel size. I need to set some more sensible defauls I think for the surface node, and maybe limit it to a couple of options. I will have a play around with it soon.
I used "bio blender" before, which seems to generate protein surface by calling PyMOL. Unfortunately, this add-on does not support versions above 3.0.
Hi Brady
Do you plan to add more surface styles in the future? Such as calling the open source version of pymol or something else. Current surface styles are not accurate enough if I need to show molecular docking.
I do plan on adding them, but how this will be possible is still kind of an unknown. Currently the surfaces are generated using volumes via Geometry Nodes. To generate more 'accurate' surfaces, I would likely need to leverage external python libraries (like pymol etc).
I haven't tried using pymol etc yet because it adds yet another dependency and yet another thing to install and maintain for the user, complicating everything a bit more.
If you have suggestions on how to approach it, then you can let me know. There is upgraded volumes in Blender 3.3 which I will be implementing which should improve the surface representations a bit, but it'll still be somewhat limited.
The new surface style in MolecularNodes v2 now makes this a lot more similar to PyMol. Seems to work on your example PDB!
It's still not quite the same algorithm as PyMol, but this uses the same approach of creating a grid of points, and measuring the minimum distance for each point to the atoms, then generates the mesh based on that.