Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/lj3i62g6dk4q/public_html/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91
Biomolecular electrostatics :: Lorena A. Barba Group

Lorena A. Barba group

Biomolecular electrostatics

Surface charge plot on a lysozyme molecule, obtained using the PyGBe code.

Surface charge plot on a lysozyme molecule, obtained using the PyGBe code.

It is fascinating to realize that, at a microscopic level, the processes of life all come down to chemistry, physics and thermodynamics.

For example, electrostatics plays an important role in the structure and function of biological molecules—from enzyme catalysis to the binding of ligands and proteins. In fact, almost all biological processes are controlled by electrostatics.

The classical approach for computing biomolecular electrostatic interactions is molecular dynamics (MD), which is powerful and very detailed. To investigate very large systems, however, the computing requirements of MD become prohibitive and simplifications are still necessary. One approach is to model the water that surrounds a biomolecule as a continuum dielectric substance. This model leads to a boundary integral equation for surface charge, which is solved using the boundary element method (BEM). With a multipole-based fast summation, and hardware acceleration using GPUs, we obtain reasonable time-to-solution even on single workstations.

In July 2012, we released the PyGBe code, which solves the Poisson-Boltzmann equation for biomolecular electrostatics using a boundary element method, a treecode for acceleration, and GPU hardware via Cuda. The user-visible code is all Python, which makes for an easy-to-use modelling tool which can be used for quick numerical experimentation. The code is open source under the MIT license.

References