FreeSASA

FreeSASA is a command line tool, C-library and Python module for calculating solvent accessible surface areas (SASA). Casual users can calculate SASA directly from a PDB file with no configuration overhead using sensible default parameters. Advanced users can configure all calculation parameters and also use the C and Python APIs to perform calculations directly on arrays of coordinates.

Build from source

Download the latest archive, expand it, and run

./configure
make
sudo make install

This installs the binary freesasa to your path, the header freesasa.h, the library libfreesasa and a man page.

If you got the code directly from the git repo, first run autoreconf -i to create the configure script (this requires autotools).

Tarballs for older versions are attached to the GitHub-releases

Install using package managers

You can install binaries that have already been built using package managers for some platforms.

Homebrew

With homebrew on MacOS (amd64, arm64) or Linux (amd64):

brew install brewsci/bio/freesasa

Conda, mamba or pixi

With conda, mamba or pixi on Linux (amd64, arm64, ppc64le) or MacOS (amd64, arm64):

# conda
conda install -c conda-forge freesasa-c

# mamba
mamba install -c conda-forge freesasa-c

# pixi
pixi add freesasa-c

Running FreeSASA

After building the package, calling

freesasa -h

explains how the command line interface (CLI) can be used. If the man pages are installed more info is available through

man freesasa

Demo

Test FreeSASA using web assembly in the browser at the demo page.

Python bindings

From version 2.0.3 the Python bindings are released as a separate module. They can be installed using

# PyPI
pip install freesasa

# conda
conda install -c conda-forge freesasa

Documentation

There is reference documentation for the CLI and the C API, and some implementation details, and for the Python module.

Citing FreeSASA

Simon Mitternacht (2016) FreeSASA: An open source C library for solvent accessible surface area calculation. F1000Research 5:189 (doi: 10.12688/f1000research.7931.1)

Legacy versions

Version 2 breaks a few parts of the interface. Tarballs for most older versions can be downloaded from the GitHub releases. The documentation and tarball for v1.1 are available at this site.