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 Python Library

This project supports Python 3.9+ GPLv3 License CI Tox docs codecov Binder

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,

To test Procrustes, the following dependencies are required,

Installation

It is recommended to install qc-procrustes within a virtual environment.To create a virtual environment, we can use the venv module (Python 3.3+, https://docs.python.org/3/tutorial/venv.html), miniconda (https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html), or pipenv (https://pipenv.pypa.io/en/latest/).

Installing from PyPI

To install procrustes with pip, we can install the latest stable release from the Python Package Index (PyPI) as follows:

    # install the stable release.
    pip install qc-procrustes

Installing from The Prebuild Wheel Files

To download the prebuilt wheel files, visit the PyPI page and GitHub releases.

    # download the wheel file first to your local machine
    # then install the wheel file
    pip install file_path/qc_procrustes-1.0.2a1-py3-none-any.whl

Installing from the Source Code

In addition, we can install the latest development version from the GitHub repository as follows:

    # install the latest development version
    pip install git+https://github.com/theochem/procrustes.git

We can also clone the repository to access the latest development version, test it and install it as follows:

    # clone the repository
    git clone git@github.com:theochem/procrustes.git

    # change into the working directory
    cd procrustes
    # run the tests
    python -m pytest .

    # install the package
    pip install .

More

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