×

TeraPCA

swMATH ID: 43148
Software Authors: Aritra Bose, Vassilis Kalantzis, Eugenia-Maria Kontopoulou, Mai Elkady, Peristera Paschou, Petros Drineas
Description: TeraPCA: a fast and scalable software package to study genetic variation in tera-scale genotypes. Motivation: Principal Component Analysis is a key tool in the study of population structure in human genetics. As modern datasets become increasingly larger in size, traditional approaches based on loading the entire dataset in the system memory (Random Access Memory) become impractical and out-of-core implementations are the only viable alternative. Results: We present TeraPCA, a C++ implementation of the Randomized Subspace Iteration method to perform Principal Component Analysis of large-scale datasets. TeraPCA can be applied both in-core and out-of-core and is able to successfully operate even on commodity hardware with a system memory of just a few gigabytes. Moreover, TeraPCA has minimal dependencies on external libraries and only requires a working installation of the BLAS and LAPACK libraries. When applied to a dataset containing a million individuals genotyped on a million markers, TeraPCA requires <5 h (in multi-threaded mode) to accurately compute the 10 leading principal components. An extensive experimental analysis shows that TeraPCA is both fast and accurate and is competitive with current state-of-the-art software for the same task. Availability and implementation: Source code and documentation are both available at https://github.com/aritra90/TeraPCA.
Homepage: https://academic.oup.com/bioinformatics/article/35/19/3679/5430929
Source Code:  https://github.com/aritra90/TeraPCA
Dependencies: C++
Related Software: Eigenstrat; GWAS Catalog; STRUCTURE; ThreSPCA; CluStrat; clusterProfiler; RandNLA; EVSL; CIRR; ILUM; SparseMatrix; ARPACK; FEAST; MatrixMarket; SLEPc
Cited in: 2 Publications

Citations by Year