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.

Quick-start guide

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

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


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

pip install freesasa


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.