Git Product home page Git Product logo

nessie.jl's Introduction

Nonlocal Electrostatics in Structured Solvents

NESSie.jl is a software package for the popular Julia language, providing efficient numerical solvers for local and nonlocal protein electrostatics computations in structured solvents.

Installation

This version of NESSie.jl requires Julia 1.6 or above. In the Julia shell, switch to the Pkg shell by pressing ] and enter the following command:

pkg> add https://github.com/tkemmer/NESSie.jl

Analogously, the NESSie.jl can be removed at any time using the following command in the Pkg shell:

pkg> rm NESSie

Usage

Modules

All functionality is organized into separate modules:

Module Description
NESSie Models and utility functions
NESSie.BEM Local and nonlocal BEM solvers
NESSie.Format Input and output file formats
NESSie.TestModel Test models with analytical solutions

Example

The following Julia code shows how to compute and print the nonlocal reaction field energy of a single Na+ ion (modeled as a spherically-symmetric, vacuum-filled system) in water:

using NESSie
using NESSie.BEM
using NESSie.Format: readoff, readpqr

# I. Create model
model           = readoff("data/born/na.off")
model.charges   = readpqr("data/born/na.pqr")
model.params.εΩ = 1   # dielectric constant for vacuum model
model.params.εΣ = 78  # dielectric constant for water

# II. Apply nonlocal solver
bem = solve(NonlocalES, model)

# III. Apply postprocessor
val = rfenergy(bem)
println("Reaction field energy: $val kJ/mol")

More examples are available in the docs/examples/ directory.

Documentation

A detailed documentation of NESSie.jl is available online.

You can also build the same documentation manually using the following command in the docs/ directory:

shell> julia make.jl

Please note that this additionally requires the Documenter.jl package to be installed. This can be achieved by using the following command in the Pkg shell:

pkg> add Documenter

After the build process has finished successfully, the documentation can be found in the docs/build/ directory.

Testing

NESSie.jl provides tests for most of its functions. You can run the test suite with the following command in the Pkg shell:

pkg> test NESSie

Tools

NESSie.jl ships with the following extra tools:

  • Converter.jl, a simple Julia script to convert surface and volume meshes into different formats
  • Mesher, a wrapper application for the GAMer library to create surface and volume meshes from PDB files

Please refer to the respective tool's README file for more details.

Citing

If you use NESSie.jl in your research, please cite the following publication:

Kemmer, T, Rjasanow, S., Hildebrandt, A (2018). NESSie. jl - Efficient and Intuitive Finite Element and Boundary Element Methods for Nonlocal Protein Electrostatics in the Julia Language. Journal of Computational Science 28, 193-203.

If you use our implicit representations and solvers (solve_implicit), please also cite:

Kemmer, T (2021). Space-efficient and exact system representations for the nonlocal protein electrostatics problem. Ph. D. thesis, Johannes Gutenberg University Mainz. Mainz, Germany.

Citations items for BibTeX can be found in CITATION.bib.

nessie.jl's People

Contributors

tkemmer avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.