핵심 요약
단일 세포 RNA 시퀀싱(scRNA-seq) 데이터는 세포 수준의 이질성을 이해하는 데 필수적이지만, 복잡한 전처리 과정이 필요하다. 이 튜토리얼은 파이썬의 Scanpy 라이브러리를 사용하여 PBMC 3k 데이터셋을 분석하는 전체 과정을 다룬다. 데이터 로딩, 품질 관리(QC), 정규화, 차원 축소(PCA/UMAP), 클러스터링 및 마커 유전자 기반의 세포 유형 주석 단계를 상세히 설명한다. 최종적으로 분석된 데이터를 저장하고 시각화하여 생물학적 해석이 가능한 형태로 도출하는 방법을 제시한다.
배경
Python 프로그래밍 기초, Pandas 및 NumPy 라이브러리 사용법, 기본적인 생물학적 유전체 지식, Jupyter Notebook 환경
대상 독자
생물정보학 연구자, 데이터 과학자, 유전체 분석 파이프라인 개발자
의미 / 영향
이 워크플로는 대규모 단일 세포 데이터를 효율적으로 처리할 수 있는 표준화된 파이프라인을 제공한다. 연구자들이 실험 데이터에서 빠르게 생물학적 통찰을 얻고, 재사용 가능한 데이터 구조를 통해 협업 및 후속 연구의 효율성을 극대화할 수 있게 돕는다.
섹션별 상세
환경 설정 및 데이터 로딩 단계에서 scanpy, anndata, leidenalg 등 필수 라이브러리를 설치하고 3,000개의 말초 혈액 단핵 세포(PBMC) 데이터셋을 로드한다. AnnData 객체를 생성하여 발현 행렬과 메타데이터를 통합 관리하며, 나중에 원본 데이터를 참조할 수 있도록 counts 레이어를 별도로 저장한다.
품질 관리(QC) 및 필터링을 통해 데이터의 신뢰성을 확보한다. 미토콘드리아 유전자 비율(MT- 유전자)이 5% 이상이거나 검출된 유전자 수가 200개 미만 또는 2,500개 이상인 세포를 제거하여 손상된 세포나 이중선(Doublet) 가능성을 배제한다.
데이터 정규화 및 고변동 유전자(HVG) 식별을 수행한다. 세포 간 시퀀싱 깊이 차이를 보정하기 위해 총 카운트를 10,000으로 정규화하고 로그 변환을 적용한 후, 생물학적 변별력이 높은 유전자들만 선별하여 이후 계산 효율성을 높인다.
차원 축소 및 클러스터링 과정에서 PCA를 통해 데이터의 주요 변동성을 추출하고 이웃 그래프를 구축한다. Leiden 알고리즘을 적용하여 유사한 발현 패턴을 가진 세포들을 군집화하며, UMAP 임베딩을 통해 고차원적인 세포 간 관계를 2차원 평면에 시각화한다.
마커 유전자 발견 및 세포 유형 주석을 통해 각 클러스터의 생물학적 정체성을 규명한다. Wilcoxon rank-sum 검정을 사용하여 클러스터별 차등 발현 유전자를 찾고, 알려진 마커 유전자 점수를 기반으로 B-cell, T-cell 등의 세포 유형을 자동으로 할당한다.
분석 결과 저장 및 시각화 단계에서 처리된 AnnData 객체를 .h5ad 형식으로 저장하고 마커 유전자 목록을 CSV로 출력한다. 최종적으로 UMAP 플롯과 세포 유형 비율 바 차트를 생성하여 데이터셋의 생물학적 구성을 한눈에 파악할 수 있도록 한다.
실무 Takeaway
- Scanpy의 pp.calculate_qc_metrics를 활용하여 미토콘드리아 유전자 비율이 높은 손상된 세포를 효과적으로 필터링하여 데이터 품질을 높일 수 있다.
- sc.tl.rank_genes_groups 함수를 통해 각 클러스터를 정의하는 통계적으로 유의미한 마커 유전자를 식별하여 생물학적 의미를 부여할 수 있다.
- 분석 결과는 .h5ad 형식의 AnnData 객체로 저장하여 대규모 데이터셋의 효율적인 관리와 분석 재현성을 보장할 수 있다.
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료