Surfa is a collection of Python utilities for medical image analysis and mesh-based surface processing. It provides tools that operate on 3D image arrays and triangular meshes with consideration of their representation in a world (or scanner) coordinate system. While broad in scope, surfa is developed with particular emphasis on neuroimaging applications. To install, run:
pip install surfa
Note: The above command should run smoothly and require no further steps, but if your system does not have a c compiler installed it will throw an error. To resolve this potential issue, review the suggested steps in the compiling section.
The surfa documentation and API reference is currently a work-in-progress, and any additions are welcome. The documentation source code lives under the docs
subdirectory.
Pull requests are always welcome! For local development of the codebase, be sure to build the .pyx
files in the package before importing:
python setup.py build_ext --inplace
Feel free to open an issue if you encounter a bug or have a feature request.
Surfa was originally built in part for the development of learning-based cortical surface reconstruction and it is a derivation of the FreeSurfer software suite. If you find this package useful in your analysis, please cite:
Hoopes et al. "TopoFit: Rapid Reconstruction of Topologically-Correct Cortical Surfaces." Medical Imaging with Deep Learning (2021)
Fischl. "FreeSurfer." NeuroImage vol. 62,2 (2012)