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:
Cython
matplotlib
numpy
scipy
termcolor
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]