Skip to content

Python library for finding the optimal transformation(s) that makes two matrices as close as possible to each other.

License

Notifications You must be signed in to change notification settings

theochem/procrustes

Repository files navigation

Procrustes

This project supports Python 3.6+ GPLv3 License GitHub Actions CI Tox Status Documentation Status codecov Binder Language grade: Python

The Procrustes library provides a set of functions for transforming a matrix to make it as similar as possible to a target matrix. For more information, visit Procrustes Documentation.

Citation

Please use the following citation in any publication using Procrustes library:

@article{Meng2022procrustes,
    title = {Procrustes: A python library to find transformations that maximize the similarity between matrices},
    author = {Fanwang Meng and Michael Richer and Alireza Tehrani and Jonathan La and Taewon David Kim and Paul W. Ayers and Farnaz Heidar-Zadeh},
    journal = {Computer Physics Communications},
    volume = {276},
    number = {108334},
    pages = {1--37},
    year = {2022},
    issn = {0010-4655},
    doi = {https://doi.org/10.1016/j.cpc.2022.108334},
    url = {https://www.sciencedirect.com/science/article/pii/S0010465522000522},
    keywords = {Procrustes analysis, Orthogonal, Symmetric, Rotational, Permutation, Softassign},
}

Dependencies

The following dependencies are required to run Procrustes properly,

Installation

To install Procrustes using the conda package management system, install miniconda or anaconda first, and then:

# Create and activate myenv conda environment (optional, but recommended)
conda create -n myenv python=3.6
conda activate myenv

# Install the stable release.
conda install -c theochem qc-procrustes

To install Procrustes with pip, you may want to create a virtual environment, and then:

# Install the stable release.
pip install qc-procrustes

See https://procrustes.qcdevs.org/usr_doc_installization.html for full details.