BiochemicalAlgorithms.jl

The Biochemical Algorithms Library in Julia
Author hildebrandtlab
Popularity
13 Stars
Updated Last
24 Days Ago
Started In
April 2022

BiochemicalAlgorithms

Stable Dev Build Status

BiochemicalAlgorithms.jl is a redesign of the popular Biochemical Algorithms Library (BALL), the largest open source C++-framework of its kind. We focused on three main design goals: efficiency, ease of use and rapid application development (RAD). Our library provides functionality for file I/O, molecular modeling, molecular mechanics methods, and molecular visualization, and hence can serve as a foundation for developing applications within the Julia ecosystem.

Installation

To install BiochemicalAlgorithms, open a Julia REPL, switch to the package mode by pressing ], and type

pkg> add BiochemicalAlgorithms

Usage

Here is a simple impression of what you can do with BiochemicalAlgorithms.jl. Central to every application is a System, which is filled with structures by reading in atom coordinates from PDB or PubChem JSON files. The system is preprocessed by the FragmentDB performing three steps: name normalization, reconstruction of missing atoms, and the construction of atomic bonds. The energy of the structure is evaluated using Amber forcefield. With the help of BiochemicalVisualization.jl the structure can be visualized as a ball-and-stick model.

using BiochemicalAlgorithms

# Read PDB file from the BiochemicalAlgorithms.jl repository
sys = load_pdb(ball_data_path("../test/data/AlaAla.pdb"))

println("Number of atoms: ", natoms(sys))
println("Number of bonds: ", nbonds(sys))

# Prepare molecule
fdb = FragmentDB()
normalize_names!(sys, fdb)
reconstruct_fragments!(sys, fdb)
build_bonds!(sys, fdb)
println("Number of bonds: ", nbonds(sys))

# Create Amber force field and compute the energy of the system
amber = AmberFF(sys)
compute_energy!(amber)
println(amber.energy)

Documentation

If the previous section whetted your appetite, have a look at our tutorials to get started.

Contributing

You have ideas for improvements, criticism, or ran into problems? You are looking for a feature that you know from BALL? Feedback and contributions are very welcome. Check out our guidelines and use our issue tracker or contact us via e-mail.