Would it be okay to switch:
|
if n_components > pca_dimensions and pca_dimensions != 0: |
|
logger.debug( |
|
f"Performing decomposition with PCA (seed {seed}): {n_components} to {pca_dimensions} dims" |
|
) |
|
X = PCA(n_components=pca_dimensions, random_state=random_state).fit_transform(X) |
|
# X = PCA(n_components='mle').fit_transform(X) |
|
n_samples, n_components = X.shape |
to adapt to a lower pca dimension when there aren't enough contigs/kmers
if n_components > pca_dimensions and pca_dimensions != 0:
if n_samples < pca_dimensions:
logging.warning(f"n_samples ({n_samples}) is less than pca_dimensions ({pca_dimensions}), lowering pca_dimensions to {min(n_samples, n_components)} .")
pca_dimensions = min(n_samples, n_components)
logger.debug(
f"Performing decomposition with PCA (seed {seed}): {n_components} to {pca_dimensions} dims"
)
X = PCA(n_components=pca_dimensions, random_state=random_state).fit_transform(X)
n_samples, n_components = X.shape
Would it be okay to switch:
Autometa/autometa/common/kmers.py
Lines 601 to 607 in 0d9028c
to adapt to a lower pca dimension when there aren't enough contigs/kmers