ehrapy.preprocessing.pca

ehrapy.preprocessing.pca(data, n_comps=None, zero_center=True, svd_solver='arpack', random_state=0, return_info=False, dtype='float32', copy=False, chunked=False, chunk_size=None)[source]

Computes a principal component analysis.

Computes PCA coordinates, loadings and variance decomposition. Uses the implementation of scikit-learn.

Parameters:
  • data (Union[AnnData, ndarray, spmatrix]) – The (annotated) data matrix of shape n_obs × n_vars. Rows correspond to observations and columns to features.

  • n_comps (Optional[int]) – Number of principal components to compute. Defaults to 50, or 1 - minimum dimension size of selected representation.

  • zero_center (Optional[bool]) – If True, compute standard PCA from covariance matrix. If False, omit zero-centering variables (uses TruncatedSVD), which allows to handle sparse input efficiently. Passing None decides automatically based on sparseness of the data.

  • svd_solver (str) –

    SVD solver to use:

    • ’arpack’ (the default) for the ARPACK wrapper in SciPy (svds())

    • ’randomized’ for the randomized algorithm due to Halko (2009).

    • ’auto’ chooses automatically depending on the size of the problem.

    • ’lobpcg’ An alternative SciPy solver.

    Efficient computation of the principal components of a sparse matrix currently only works with the ‘arpack’ or ‘lobpcg’ solvers.

  • random_state (Union[int, RandomState, None]) – Change to use different initial states for the optimization. Defaults to 0 .

  • return_info (bool) – Only relevant when not passing an AnnData: see “Returns”.

  • dtype (str) – Numpy data type string to which to convert the result. Defaults to float32 .

  • copy (bool) – If an AnnData is passed, determines whether a copy is returned. Is ignored otherwise.

  • chunked (bool) – If True, perform an incremental PCA on segments of chunk_size. The incremental PCA automatically zero centers and ignores settings of random_seed and svd_solver. If False, perform a full PCA.

  • chunk_size (Optional[int]) – Number of observations to include in each chunk. Required if chunked=True was passed.

Return type:

Union[AnnData, ndarray, spmatrix]

Returns:

X_pca: spmatrix, ndarray

If data is array-like and return_info=False was passed, this function only returns X_pca

adata : AnnData

…otherwise if copy=True it returns or else adds fields to adata:

.obsm[‘X_pca’] PCA representation of data.

.varm[‘PCs’] The principal components containing the loadings.

.uns[‘pca’][‘variance_ratio’] Ratio of explained variance.

.uns[‘pca’][‘variance’] Explained variance, equivalent to the eigenvalues of the covariance matrix.