Etapa 1 — CPCA (Circular PCA)¶
Que hace este modulo¶
Dada una matriz de expresion normalizada (genes x muestras), CPCA obtiene un orden circular preliminar de las muestras proyectandolas sobre el circulo unitario mediante PCA, ademas de un filtrado.
Como funciona¶
Centrar cada gen (restar la media por filas).
Escalar cada muestra (dividir por RMS de columnas).
SVD truncada: extraer PC1 y PC2.
Proyectar cada muestra al circulo:
phi = arctan2(PC2, PC1).Detectar outliers (muestras con norma ||PC1, PC2|| pequeña).
Repetir sin outliers.
Ejemplo de uso¶
from circust.cpca import CPCA
from circust.core_genes import CoreGeneSelector
sel = CoreGeneSelector(preset="circust")
result = sel.select(prep.expr_norm)
cpca = CPCA(core_genes=result.genes)
result = cpca.run(expr_norm)
result.sample_order # indices que ordenan las muestras
result.circular_scale # angulos phi en [0, 2*pi)
result.samples_dropped # indices de outliers eliminados
Referencia API¶
Ver circust.cpca.