Annotated Data

Junho_Mun·2025년 12월 19일

1. Anndata

Anndata(Annotated Data) 는 유전자 발현량과 같은 행렬 데이터와 그에 대한 주석(Annotation)을 하나로 묶어 관리하기 위해 설계된 데이터 구조이다.

아래에서 설명될 내용이지만, 만약 obs에서 특정 조건에 의해 필터링하면, 다른 계층에 있는 (X, obsm, layers 등) 모든 연관 데이터가 자동으로 함께 잘려나간다.

2. Anndata 구조

  1. X - Main matrix
  • 실제 데이터(발현량 등)가 저장되는 영역
  • 보통 Cells X Genes 의 크기를 가지며, 메모리 절약을 위해 0이 많은 경우 Sparse Matrix형태로 저장된다.
  1. obs - Observations
  • 행에 관한 정보인 Cell에 대한 annotated가 담겨있다.
  • 보통 세포ID, 샘플 그룹, 클러스터 번호, 세포 종류가 기록된다.
  1. var - Variables
  • 열에 대한 정보인 Gene에 대한 annotated가 담겨있다.
  • 보통 유전자 이름, 미토콘드리아 유전자 여부 등이 기록되어있다.
  1. obsm, varm - Multi-dimensional Annotation
  • 2차원 이상의 다차원 데이터를 저장한다.
  • obsm의 경우 PCA, UMAP, t-SNE 좌표값처럼 각 세포가 여러 값을 갖는 데이터가 들어간다.
  • varm은 각 유전자가 가지는 다차원 정보를 가진다.
  1. uns - Unstructured
  • 행렬 형태가 아닌 비정형 데이터를 저장한다.
  • 예시로 분석에 사용한 파라미터 정보, 클러스터별 지정 색상 등
  1. layers - Data의 여러 버전 관리
  • 동일한 차원의 데이터를 여러 버전으로 저장할 수 있다.
  1. obsp - Pairwise Annotation
  • 세포와 세포사이의 관계를 저장하는 행렬이다.

3. 살펴보기

다음은 본인이 실제로 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'
profile
Bioinformatics and Data science

0개의 댓글