Through the molecular visualization work that we have been doing, a number of processes have been explored that may be worthwhile sharing with the broader science visualization community. Here are two tutorials that explore the use of Molecular Maya to help visualize macromolecules.
For an upcoming Molecular Visualization Principle, I decided to include a small molecule, which is something new for the series.
Small molecules typically use CPK space-filling or ball and stick representations, because surface meshes aren’t very informative. It’s more interesting to see structures like benzene rings when present. In order to bring the associated small molecule in with the protein structure I was importing using Molecular Maya, it was necessary to ensure that the HETATMs option was checked in the import options.
For the protein component, I kept the established simplified surface mesh used in the series so far. I decided on a modified ball and stick representation with pinched bonds, which Molecular Maya is capable of generating. The requirements of the animation and rendering process were such that I really needed regular geometry for the atoms and bonds, respectively balls and sticks. However, in the version of the software I was using, these structures were built with spherical particles and geometry instanced to particles. Maya unfortunately doesn’t have a particle instance to regular geometry conversion tool, so I was left to find my own workaround for this task. I’m confident that in the future, either or both of Autodesk Maya and Molecular Maya will have the capability of automatically performing the following, but at the time, this process was not implemented in the software.
First, I needed access to the underlying nodes in the mMaya hierarchy. I did this by selecting the mMaya node prefixed with pdbMolStruc_ and running the below code.
Note: this webpage has likely converted the regular quote marks to “smart quotes”, which will need to be replaced in your script editor with “straight quotes”.
As part of one of the Molecular Visualization Principles, I am attempting to design a simulation of molecular water with correct scale, density, and an approximation of brownian motion.
I began by creating a very simple water molecule model, ensuring that the dimensions were accurate. Okay, the bond angles might be very slightly out, but who would ever be able to tell? I knew there were going to be a huge number of copies, so keeping the poly count low was a must.
When making the simulation, I decided to ignore hydrogen bonding interactions, but I did use the bonding radius for the collision radius, which created a natural looking separation between the molecules.
In order to determine how the simulation would look once rendered, I made a small cube’s worth of molecules at the size, speed, and resolution I would be using for the final animation. This is the reason it takes up only a small part of the frame. If the result was a fuzzy blurry mess, I would know that changes were required.
A used a hand animated sphere as a collider and included noisy turbulence to induce brownian motion. The final animation will include a lateral wipe to show and hide the water, so I made sure to include a simple test of that. The result is below, and I think it is successful enough to move on to the full scale simulation.
Measured bond length: 0.9584 Angstroms
Measured bond angle: 107.9 degrees
One of the Molecular Visualization Principles I am currently developing is “avoiding snake motion”. This refers to the depiction of long polymer motion, typically mRNA and DNA. To illustrate this principle, we decided to use a short linear strand of DNA.
I wanted to maintain consistency of style with the other principles, so I was aiming for a specific representation that was an interesting challenge to achieve.
I generated a mesh using Molecular Maya, and then decided to retopologize it by hand in order to create clean topology that was based on the atomic structure. Each nucleotide was made from two face loops. Edge loops were continuous along the long axis & backbone as well.