Fluctuating Finite Element Analysis is a new molecular modelling technique, built from the ground-up to support systems that are larger and more complex than those modelled by atomistic molecular dynamics. Instead of modelling biological systems as a collection of connected atoms, it models them as 3D volumes comprised of tetrahedrons. Unlike previous coarse-grained models, the models FFEA generates are visco-elastic continuum solids. Unlike other applications of Finite Element Analysis, these systems are subject to thermal fluctuations.
This technique has the potential to model large, complex systems, made of many molecules, and complex processes at the frontiers of molecular biology. As it does not not require an atomistic level of detail, it can also be used to simulate biological molecules that cannot be imaged using X-ray crystallography.
- Protein interactions:
- Kinetic state changes can be simulated together with the continuum model to account for conformational changes and binding events.
- Conversion tools for EM density data and atomistic structures into FFEA simulations.
- A plugin for PyMOL, allowing the visualisation of FFEA systems and trajectories.
- Analysis tools (equilibration, Euler characteristic, principal component analysis, gemoetric measurements) available on the command line and under a Python API.
- Extensive test suite including checks of FFEA's simulation output against analytical results.
- Solernou A., Hanson B., Richardson R. A., Welch R., Read D. J., Harlen O. G. & Harris S. A. "Fluctuating Finite Element Analysis (FFEA): A continuum mechanics software tool for mesoscale simulation of biomolecules" (2018) PLOS Computational Biology 14(3): e1005897.
- Oliver R., Read D. J., Harlen O. G. & Harris S. A. "A Stochastic finite element model for the dynamics of globular macromolecules" (2013) J. Comp. Phys. 239, 147-165.
- Patargias G. N., Harris S. A. & Harding J. "A demonstration of the inhomogeneity of the local dielectric response of proteins by molecular dynamics simulations." (2010) J. Chem. Phys. 132, 235103.
- Richardson R., Papachristos K., Read D. J., Harlen O. G., Harrison M. A., Paci E., Muench S. P. & Harris S. A "Understanding the apparent stator-rotor connections in the rotary ATPase family using coarse-grained computer modelling" (2014), Proteins: Structure, Function, Bioinformatics, 82, 3298-3311.
- Gray A., Harlen O. G., Harris S. A., Khalid S., Leung Y. M., Lonsdale R., Mulholland A. J., Pearson A. R., Read D. J. & Richardson R. A. "In pursuit of an accurate spatial and temporal model of biomolecules at the atomistic level: a perspective on computer simulation", Acta Cryst. (2015) D71, 162-172.
- Oliver R. , Richardson R. A., Hanson B., Kendrick K., Read D. J., Harlen O. G. &Harris S. A. "Modelling the Dynamic Architecture of Biomaterials Using Continuum Mechanics", in Protein Modelling, G. Náray-Szabó, Editor. (2014) Springer International Publishing. p. 175-197.
- Hanson B., Richardson R., Oliver R., Read D. J., Harlen O. & Harris S. "Modelling biomacromolecular assemblies with continuum mechanics" Biochem. Soc. Trans. (2015), 43, 186-192.
- Boost (>=1.54.0) is used for ease of programming at the initialisation phase. Modules "system", "filesystem" and "program-options" are required. A bundle of version 1.63 is shipped with FFEA.
- Eigen (>=3.2.1). FFEA uses Eigen to calculate and solve linear approximations to the model i.e. Elastic / Dynamic Network Models. CMake will download and use Eigen 3.3.2 if not told otherwise.
- RNGStreams is shipped with FFEA and used as Random Number Generator (RNG). RngStreams allows the FFEA to safely generate random numbers when running on a number of threads, as well as safe restarts, recovering the state of the RNGs in the last saved time step.
- tet_a_tet is shipped with FFEA and used to detect element overlapping in the steric repulsion module.
- Doxygen (>= 1.8) [OPTIONAL] is used to generate the documentation.
- PyMOL (>=1.8) can be used, using the plugin we provide, to visualise FFEA systems and trajectories as well as molecular and EM systems.
- mtTkinter is recommended for stability.
- GTS (>=0.7.6)[OPTIONAL]. The GNU Triangulated Surface Libraries allowing the manipulation and coarsening of surface profiles.
- NETGEN or TETGEN [OPTIONAL]. Programs which convert surface profile into volumetric meshes to be used by FFEA.
- pyPcazip [OPTIONAL] Some of the Python FFEA analysis tools interact with these Principal Component Analysis library in order to generate the standard PCA output (eigensystems, projections, animations etc) obtained from standard from equivalent MD simulations.
FFEA is maintained by a small but dedicated team at the University of Leeds. Want to help out?