Deep learning has revolutionized image and speech processing. In our lab, we’re applying these techniques to small molecule drug discovery.
A by-product of the revolution in deep learning has been several high-quality open-source machine-learning frameworks that can compute gradients of arbitrary operations. You can easily imagine framing the prediction of small molecule binding energies as a learning problem; but can we leverage some of the deep learning advances for molecular dynamics?
A common operation in biophysics is computing the similarity of two protein poses with the RMSD distance metric. In this post, I’ll walk you through my implementation of RMSD first as a composition of normal “Ops” and then via writing a custom Op. As an example, I find a consensus structure and a KMeans-inspired RMSD-based clustering algorithm.
There are an abundance of “scientific workflow” frameworks, job schedulers, queuing systems, MPI implementations, and language-level primitives for multiprocessing. Sometimes, though, you just have to do a task a bunch of times. Here, I introduce GNU
parallel for a simple task and a more advanced task.
The NSF recently announced a new initiative to support the development of scientific software. One of my renderings (in this case, voltage gated sodium channel) was used as the press image! Unfortunately, the image is credited to Virginia Tech… Update: the attribution has been fixed. Thanks to all involved for the speedy correction.</p>
Jupyter Notebook is essential for interacting with data. Even better, you can run it on a server (that has your data, more processors, more RAM, …) but access it from anywhere. By default, Jupyter only serves data to
localhost on port 8888.
Instead of opening your notebook server to the world, you can set up port forwarding over ssh to piggy-back on the security it provides. In this post, we’ll set up a persistent port-forwarding connection in the background.
When you have proteins in space evolving over time, you have to make a movie. VMD is a love-hate program that is very capable of nice renders of biophysical systems. I like to have more control over the transformation of each rendered frame into a movie file.
ffmpeg is a command-line program that can do this. If you try with the default options, your movie will have lots of compression scarring and may not play in most contexts.