Provide an implementation of the Flexible Block Method, a fast yet accurate approximation method for performing Normal Mode Analyses of biomolecules, for GPUs.
Normal Mode Analysis (NMA) is commonly used to analyze the motions of proteins. Examples include determining the effects of binding on proteins, determining pathways between two conformational states, and analyzing the lowest-frequency motions of proteins.
Unfortunately, NMA requires the diagonalization of a large 3N x 3N matrix. As diagonalization requires O(N^3) operations, it is not feasible to analyze medium to large proteins with NMA using full diagonalization.
The Flexible Block Method (FBM) is an approximate diagonalization method for performing NMA of proteins. FBM is much faster than the standard method of performing a full diagonalization, yet is able to recover the slow modes with reasonable accuracy.
The OpenMMFBM project develops an implementation of FBM for GPUs using OpenMM, common CPU math libraries, and custom GPU kernels. This particular implementation is not only fast, but it's easy to use as it does not require the, often messy, implementation of analytical equations of the Hessians.
We hope you'll give it a try and tell us what you think!