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.
Features
- Protein Interactions:
- A 6-12 Lennard-Jones Potential.
- A repulsive potential that is proportional to the overlapping volume.
- Specific interactions defined using precomputed potentials. More documentation can be found here.
- Coulombic interactions [EXPERIMENTAL].
- 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, geometric measurements) available on the command line and under a Python API.
- Extensive test suite including checks of FFEA's simulation output against analytical results.
Publications
- Methodology
- Solernou A., Hanson B. S., Richardson R. A., Welch R., Harris S. A., Read D. J., Harlen O. G. "Fluctuating Finite Element Analysis (FFEA): A continuum mechanics software tool for mesoscale simulation of biomolecules" (2017) Submitted.
- 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.
- Applications
- 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: Struct., Funct., Bioinf., 82, 3298-3311.
- Reviews
- 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", 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.
Technology
- 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.
- RngStreams1,2 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_tet3 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) [OPTIONAL] can be used, using the plugin we provide, to visualise FFEA systems and trajectories as well as molecular and EM systems.
- mtTkinter (0.4) is shipped with FFEA and used in the PyMOL plugin, allowing safe threading.
- 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.
1: P L'Ecuyer, "Good Parameter Sets for Combined Multiple Recursive Random Number Generators", (1999) Oper Res, 47(1):159-164.
2: P L'Ecuyer et al. "An Objected-Oriented Random-Number Package with Many Long Streams and Substreams", (2002) Oper Res, 50(6):1073-1075.
3: F Ganovelli, et al. "Fast tetrahedron-tetrahedron overlap algorithm", (2002) J.Graphics Tools. 7(2):17-25.
Contribute
FFEA is maintained by a small but dedicated team at the University of Leeds. If you want to see where we can take FFEA, then you can:
- Use the software for something cool
- Send bug reports and feature requests to our issue tracker
- Fork us
FFEA Team
Code:
- Albert Solernou
- Ben Hanson
- Robin Richardson
- Rob Welch
Theory:
Thanks
We want to thank everybody who has helped in making FFEA possible, from summer students, to experimental professors, we would not be here without you:
- Stan Burgess
- Stephen Muench
- Kerrie Smith
- Joanna Leng
- Thijs van der Heijden
- Kees Storm
- Paul van der Schoot
- Toni Collis
- Neelofer Banglawala
- Jana Boltersdorf
- Ondřej Vysocký
- Guanhao Lu
- Jonathan Boyle
- Mike Croucher
- Christopher Woods
- Katrina Goldman
- Matthew Faulkner
- Ashley Fenton