Anndata(Annotated Data) 는 유전자 발현량과 같은 행렬 데이터와 그에 대한 주석(Annotation)을 하나로 묶어 관리하기 위해 설계된 데이터 구조이다.
아래에서 설명될 내용이지만, 만약 obs에서 특정 조건에 의해 필터링하면, 다른 계층에 있는 (X, obsm, layers 등) 모든 연관 데이터가 자동으로 함께 잘려나간다.
X - Main matrixobs - Observationsvar - Variablesobsm, varm - Multi-dimensional Annotationobsm의 경우 PCA, UMAP, t-SNE 좌표값처럼 각 세포가 여러 값을 갖는 데이터가 들어간다.varm은 각 유전자가 가지는 다차원 정보를 가진다.uns - Unstructuredlayers - Data의 여러 버전 관리obsp - Pairwise Annotation다음은 본인이 실제로 Covid19 - Single cell RNA seq 를 진행하던 anndata를 살펴보았다.
print(adata)
AnnData object with n_obs × n_vars = 16716 × 15002
obs: 'n_genes', 'samples', 'n_genes_by_counts', 'log1p_n_genes_by_counts', 'total_counts', 'log1p_total_counts', 'pct_counts_in_top_50_genes', 'pct_counts_in_top_100_genes', 'pct_counts_in_top_200_genes', 'pct_counts_in_top_500_genes', 'total_counts_mt', 'log1p_total_counts_mt', 'pct_counts_mt', 'total_counts_ribo', 'log1p_total_counts_ribo', 'pct_counts_ribo', 'total_counts_hb', 'log1p_total_counts_hb', 'pct_counts_hb', 'doublet_score', 'predicted_doublet', 'leiden05', 'cell_type', 'condition'
var: 'mt', 'ribo', 'hb', 'n_cells_by_counts', 'mean_counts', 'log1p_mean_counts', 'pct_dropout_by_counts', 'total_counts', 'log1p_total_counts', 'highly_variable', 'highly_variable_rank', 'means', 'variances', 'variances_norm', 'mean', 'std'
uns: 'cell_type_colors', 'dendrogram_leiden05', 'hvg', 'leiden05', 'leiden05_colors', 'leiden05_rank', 'log1p', 'neighbors', 'pca', 'scrublet', 'umap'
obsm: 'X_pca', 'X_umap'
varm: 'PCs'
layers: 'counts', 'lognorm'
obsp: 'connectivities', 'distances'