/procrustes

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

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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.