PCAfold is an open-source Python library for generating, analyzing and improving low-dimensional manifolds obtained via Principal Component Analysis (PCA). It incorporates a variety of data preprocessing tools (including data clustering and sampling), uses PCA as a dimensionality reduction technique and utilizes a novel approach to assess the quality of the obtained low-dimensional manifolds.
Citing PCAfold
PCAfold is published in the SoftwareX journal. If you use PCAfold in a scientific publication, you can cite the software as:
Zdybał, K., Armstrong, E., Parente, A. and Sutherland, J.C., 2020. PCAfold: Python software to generate, analyze and improve PCA-derived low-dimensional manifolds. SoftwareX, 12, p.100630.
or using BibTeX:
@article{pcafold2020,
title = "PCAfold: Python software to generate, analyze and improve PCA-derived low-dimensional manifolds",
journal = "SoftwareX",
volume = "12",
pages = "100630",
year = "2020",
issn = "2352-7110",
doi = "https://doi.org/10.1016/j.softx.2020.100630",
url = "http://www.sciencedirect.com/science/article/pii/S2352711020303435",
author = "Kamila Zdybał and Elizabeth Armstrong and Alessandro Parente and James C. Sutherland"
}
PCAfold documentation
PCAfold documentation contains a thorough user guide including equations, references and example code snippets. Numerous illustrative tutorials and demos are presented as well. The corresponding Jupyter notebooks can be found in the docs/tutorials directory.
Software architecture
A general overview for using PCAfold modules is presented in the diagram below:
Each module's functionalities can also be used as a standalone tool for performing a specific task and can easily combine with techniques outside of this software, such as K-Means algorithm or Artificial Neural Networks.
Installation
Dependencies
PCAfold requires python3.7 and the following packages:
Cythonmatplotlibnumpyscipytermcolor
Build from source
Clone the PCAfold repository and move into the PCAfold directory created:
git clone http://gitlab.multiscale.utah.edu/common/PCAfold.git
cd PCAfold
Run the setup.py script as below to complete the installation:
python3.7 setup.py build_ext --inplace
python3.7 setup.py install
You are ready to import PCAfold!
Testing
To run regression tests from the base repo directory run:
python3.7 -m unittest discover
To switch verbose on, use the -v flag.
All tests should be passing. If any of the tests is failing and you can’t sort out why, please open an issue on GitLab.
Authors and contacts
- Kamila Zdybał, Université Libre de Bruxelles,
[email protected] - Elizabeth Armstrong, The University of Utah,
[email protected] - Alessandro Parente, Université Libre de Bruxelles,
[email protected] - James C. Sutherland, The University of Utah,
[email protected]