scanpy_extractGenes
scanpy_extractGenes.py는 Scanpy를 이용한 전처리 및 정규화 과정 후, 분석에 사용되는 전체 유전자 목록을 추출하는 프로그램입니다. 이 스크립트는 특히 topGO 분석과 같은 하위 집합 기반 유전자 기능 분석에 필요한 입력 파일을 준비하는 과정에서 사용됩니다. 사용자는 먼저 scanpy_normalize를 통해 정규화된 AnnData 객체를 준비하고, 이를 기반으로 본 프로그램을 실행하여 전체 유전자의 리스트를 추출합니다. 추출된 유전자 리스트는 각 유전자에 대한 식별자 정보와 함께 CSV 또는 텍스트 파일 형태로 저장되며, 이후 topGO의 입력값으로 활용할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_subsetAnnData
scanpy_subsetAnnData는 특정 그룹 내 특정 카테고리의 세포들에 대해 raw UMI count matrix를 분리하고, 새로운 AnnData로 저장합니다. Subset 후 Normalization과 Scaling을 다시 수행하려면 원본 데이터(raw matrix)를 사용해야 합니다. 이미 가공된 데이터를 기반으로 subset을 수행하면, 기존 통계 정보가 남아 있어 새로운 subset에 적합하지 않은 결과가 나올 수 있습니다. 따라서 adata_qc_passed_concat.h5ad에 있는 가공되지 않은 원본 데이터로 subset을 수행해야 정확한 분석이 가능합니다. 이 프로그램은 특정 세포 유형(예: T 세포)이나 조건별 하위 집단만 별도로 분석하고자 할 때 사용되며, 원하는 subset을 추출한 뒤 해당 데이터에 맞추어 정규화, 스케일링을 포함한 후속 분석 전 과정을 다시 수행할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
topGO_GOanalysis
TopGO는 특정 유전자 목록을 기반으로 Gene Ontology(GO) 용어의 풍부도를 분석하는 R 패키지입니다. 이를 통해 차이가 있거나 관심 있는 유전자들이 GO의 어떤 기능 범주(Biological Process, Molecular Function, Cellular Component)에 과도하게 포함되어 있는지를 통계적으로 평가할 수 있습니다. GO의 계층 구조를 고려하여 부모-자식 노드 간 의존성을 반영한 보다 정확한 enrichment 분석이 가능하며, Fisher’s exact test, Kolmogorov-Smirnov test, weighted scoring 등 다양한 통계적 방법을 지원합니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_plotCellTypeProportion
scanpy_plotCellTypeProportion 함수는 AnnData 객체 내 두 개의 범주형 변수(예: 클러스터와 세포 유형)를 기반으로 교차 빈도표(contingency table)를 생성합니다. 이를 통해 첫 번째 그룹의 각 카테고리(예: 세포유형)에 속한 세포들이 두 번째 그룹(예: 클러스터)의 각 카테고리에 얼마나 포함되는지 계산할 수 있습니다. 계산된 값은 절대 빈도(absolute counts)와 상대 점유율(relative proportions)로 제공되며, 이를 막대그래프로 시각화하여 각 클러스터에서 어떤 세포 유형이 어느 정도 분포하는지 직관적으로 확인할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_plotGeneExpr
scanpy_plotGeneExprs 함수는 사용자가 지정한 유전자 발현을 scatter plot, dot plot, violin plot, 혹은 heatmap 형태로 시각화하는 기능을 제공합니다. 이 함수는 DEG(차등 발현 유전자)를 계산하지 않으며, 사용자가 직접 지정한 유전자 목록이나 사전에 수행된 DEG 분석 결과를 기반으로 발현 양상을 시각화합니다. 출력된 그래프는 자동으로 파일로 저장되며, 연구자는 이를 통해 각 세포 집단 간 발현 패턴을 직관적으로 비교하고 해석할 수 있습니다. 이러한 시각화는 후속 분석이나 결과 보고에 매우 유용하게 활용됩니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_findDEG
분석에 사용되는 AnnData 객체를 기반으로, 각 클러스터(그룹) 내 세포와 나머지 세포 간, 혹은 사용자가 지정한 두 클러스터(그룹) 간의 차별 발현 유전자(Differentially Expressed Gene, DEG)를 선별합니다. 이는 두 세포 집단의 유전자 발현량 차이를 Scanpy의 scanpy.tl.rank_genes_groups() 함수에 내장된 t-test, Wilcoxon rank sum test 등의 통계 기법으로 비교하여 수행됩니다. 결과 파일에서는 두 집단 간 발현 차이를 보이는 유전자 목록을 확인할 수 있으며, 이를 시각화하여 활용할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_runCellTypist
CellTypist는 단일세포 전사체 데이터에서 세포 유형을 자동으로 예측하고 주석을 달아주는 Python 기반 패키지입니다. 미리 학습된 reference 모델(예: Immune_All_Low, Immune_All_High, Lung_Immune, Brain_NonImmune, PBMC 등)을 활용하여 각 세포의 발현 패턴을 비교·분류합니다. 사용자는 AnnData 객체를 입력해 간단히 실행할 수 있으며, 결과는 각 세포별 세포 유형 정보로 추가됩니다. 직관적이고 빠른 분류가 가능해 대규모 단일세포 데이터 분석에 유용하며, 연구자의 해석을 보완하는 도구로 널리 활용됩니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_annotateClusters
Scanpy에서는 연구자가 특정 마커 유전자의 발현 패턴을 기준으로 직접 클러스터에 세포 유형을 부여할 수 있습니다. 예를 들어 T세포 마커(CD3D, CD3E), B세포 마커(MS4A1), 대식세포 마커(LYZ) 등의 발현을 확인하여 해당 클러스터가 어떤 세포 집단인지 판단합니다. 이후 클러스터 번호(예: 0, 1, 2…)에 연구자가 정의한 세포 유형 라벨을 매핑해 adata.obs['celltype'] 같은 새로운 열에 저장할 수 있습니다. 이 방법은 자동 주석 도구 대비 해석자의 전문 지식을 반영할 수 있어, 데이터 특성에 맞는 맞춤형 주석 작업이 가능하다는 장점이 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_BBKNNbatchCorrection
scRNA-seq 데이터는 기술적 요인(technical factors)의 영향을 받아 샘플 간 실제 생물학적 변이를 가릴 수 있으며, 이로 인해 연구 결과에 부정적인 영향을 미칠 수 있습니다. 대표적인 기술적 요인 중 하나인 batch effect는 샘플이 서로 다른 그룹이나 배치에서 처리될 때 발생할 수 있습니다. 이러한 영향을 최소화하기 위해 샘플을 동일한 날짜에 처리하고, 동일한 프로토콜과 장비를 사용하는 방법이 권장됩니다. 또한 batch effect correction을 위한 다양한 기법과 패키지(Harmony, MNN, ComBat 등)가 개발되어 있으며, Bio-Express에서는 Scanpy에 탑재된 BBKNN을 활용하여 batch effect correction 기능을 제공합니다. Batch correction 이후 scanpy_findNeighbors부터 scanpy_scatterPlot까지의 과정을 다시 수행해야 하며, 이를 통해 보정된 데이터 기반의 군집화 및 시각화 결과를 확인할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_scatterPlot
앞서 계산된 UMAP, t-SNE, 혹은 PCA 임베딩 결과를 활용하여 모든 세포에 대한 산점도를 시각화합니다. 이때 각 점은 하나의 세포를 나타내며, 샘플 정보나 findClusters 단계에서 얻은 클러스터 번호에 따라 색상 또는 모양으로 구분할 수 있습니다. 이러한 산점도는 군집 구조 확인을 넘어, 개별 세포 수준에서 특정 유전자의 발현 패턴을 탐색하는 데도 유용합니다. 예를 들어, raw count, log-normalized, scaled 등 다양한 데이터 변환 방식에 따른 발현 강도를 색상으로 표시하면 특정 유전자가 집단 특이적으로 발현되는지, 혹은 전반적으로 균일하게 분포하는지를 효과적으로 파악할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_findClusters
scanpy_findClusters 단계는 앞서 계산된 scRNA-seq 데이터의 neighbor graph(FindNeighbors 단계 결과)를 기반으로, 각 세포를 유사한 발현 패턴을 가진 그룹으로 묶는 클러스터링 과정을 수행합니다. 이때 Leiden 또는 Louvain 알고리즘을 사용하여 세포 집단을 자동으로 식별하며, 알고리즘은 세포 간 연결 강도와 구조를 고려하여 최적의 군집을 형성합니다. 클러스터 번호는 세포 수가 많은 그룹부터 0, 1, 2… 순으로 할당되며, 결과는 AnnData 객체의 obs에 저장되어 추후 시각화, 차원 축소(UMAP/t-SNE), 또는 집단 간 차이 분석에 활용할 수 있습니다. 이 과정은 scRNA-seq 데이터에서 세포 유형 및 상태를 탐색하는 핵심 단계입니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_runUMAP
runUMAP은 앞서 계산한 scRNA-seq 데이터의 neighborhood graph를 기반으로, 비선형 차원 축소 기법인 UMAP(Uniform Manifold Approximation and Projection)을 수행합니다. 이 과정은 고차원 유전자 발현 데이터를 저차원 공간으로 변환하면서, 데이터의 전반적인 구조와 세포 간 관계를 최대한 유지하도록 설계되었습니다. UMAP을 통해 얻은 임베딩은 각 세포의 위치 정보를 2차원 또는 3차원 공간에 나타낼 수 있으며, 이를 바탕으로 클러스터링, 시각화, 군집 간 관계 분석 등에 활용할 수 있습니다. 경우에 따라, UMAP 대신 scanpy_runTSNE 단계를 사용하여 국지적 구조를 강조한 비선형 임베딩을 수행할 수도 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_runTSNE
scanpy_runTSNE는 scRNA-seq 데이터에 대해, UMAP 등장 이전에 사용하던 비선형적 차원 축소 방식인 t-stochastic neighbor embedding(t-SNE)를 수행합니다. t-SNE는 고차원 공간에서 각 점과 그 이웃 간의 거리를 보존하는 저차원 공간을 찾습니다. 이를 통해 데이터의 국지적인 구조를 유지함으로써, 복잡한 집단에서 많은 서로 다른 클러스터를 2차원상에서 분리되도록 embedding합니다. 때에 따라 scanpy_runUMAP 단계로 대체할 수 있습니다. (UMAP은 전반적인 데이터의 구조를 유지하지만, t-SNE는 국지 구조만을 유지한다는 단점을 가집니다.)
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_findNeighbors
findNeighbors는 scRNA-seq 발현량 데이터를 기반으로 세포 간 유사성을 평가하여 neighbor graph를 구축하는 과정입니다. 각 세포는 유전자 발현 패턴이 비슷한 이웃 세포들과 연결되며, edge에는 발현 패턴의 유사도에 따라 가중치가 부여됩니다. 이를 통해 각 세포에 대해 유사도가 높은 세포들을 효율적으로 선별할 수 있으며, 생성된 neighbor graph는 후속 군집 분석(clustering), 차원 축소(UMAP, t-SNE) 및 다양한 downstream 분석에서 세포 간 구조를 반영하는 기초 자료로 활용됩니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_runPCA
scanpy_runPCA는 고차원 유전자 발현 데이터를 저차원으로 축소해 주요 패턴을 추출하는 과정입니다. scRNA-seq 데이터는 차원이 높고 노이즈가 많기 때문에, PCA(Principal Component Analysis, 주성분 분석)를 통해 변동성이 큰 방향을 찾아 요약합니다. 주로 HVG(Highly Variable Genes)를 기반으로 수행하여 생물학적으로 의미 있는 변동성을 반영합니다. 이렇게 얻은 주성분은 데이터의 구조를 유지하면서 계산 효율성을 높이고, 이후 클러스터링이나 시각화(UMAP, t-SNE) 같은 분석의 기초로 활용됩니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_scaleData
Log-normalization을 마친 AnnData 객체의 발현량을 바탕으로, 전체 세포 집단에서 각 유전자의 발현량을 Z-score 방식으로 표준화(z-scaling)합니다. 이 과정을 통해 유전자 간 발현량의 차이를 정규화하여, 특정 유전자가 PCA, UMAP, 클러스터링과 같은 downstream 분석에서 지나치게 큰 영향을 미치는 것을 방지합니다. 또한, 모든 유전자의 발현값이 동일한 척도로 변환됨으로써 분석 결과가 보다 공정하고 안정적으로 산출되며, 데이터의 변동성이 높은 유전자가 과도하게 결과에 영향을 주는 것을 막아 차원 축소 및 클러스터링 결과의 신뢰도를 높이는 데 기여합니다. 이 표준화된 데이터는 이후 분석에 최적화된 형태로 활용됩니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_findHVGs
단일 세포 발현 매트릭스는 수많은 세포와 유전자를 포함하기 때문에 매우 높은 차원을 가지며, 직접적인 분석은 계산량이 크고 해석이 어려울 수 있습니다. 이를 완화하기 위해, 전체 세포 집단에서 세포 간 발현 차이를 잘 설명할 수 있는 highly variable gene (HVG)를 선별하여 데이터 차원을 감소시키는 것이 일반적입니다. scanpy_findHVG는 log-normalized expression matrix를 기반으로, 각 유전자의 평균 발현량 대비 분산이 높은 유전자들을 HVG로 선정합니다. 선정된 HVG는 downstream 분석에서 주로 사용되며, 결과물로는 HVG가 포함된 AnnData 객체, HVG 리스트, 그리고 mean-dispersion plot이 제공됩니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_normalize
세포의 유형이나 크기에 따라 세포당 총 RNA 수는 크게 달라질 수 있으며, 이러한 차이는 scRNA-seq 데이터 분석에서 발현량 편향이나 downstream 분석 오류를 유발할 수 있습니다. 이러한 문제를 보정하기 위해 Bio-Express에서는 Scanpy에서 제공하는 count depth scaling 방법을 사용하여 각 세포의 총 UMI 수를 기준으로 발현량을 조정합니다. 모든 발현량 조정이 끝난 후에는 각 값에 1을 더하고 자연로그(log1p)를 취하여 발현량 분포의 왜도(skewness)를 완화하고, 극단값에 의한 영향을 줄입니다. 변환된 데이터는 AnnData 객체의 기본 위치(X) 또는 사용자가 지정한 layer에 저장되며, 이후 normalization이 필요한 분석 단계에서 그대로 활용할 수 있습니다. 이를 통해 서로 다른 세포 간의 발현량 비교를 보다 정확하게 수행할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
scanpy_applyQCthresholds
Scanpy applyQCthreshold는 QC 지표가 계산된 AnnData object(.h5ad 파일)를 불러와 사용자가 지정한 QC 범위에 따라 세포를 필터링합니다. 이 과정에서는 총 UMI 수, 세포별 발현 유전자 수, 미토콘드리아 유전자 비율 등을 기준으로 낮은 품질의 세포를 제거할 수 있습니다. 필터링된 세포는 샘플별 개별 AnnData로 저장하거나 모든 샘플을 통합한 AnnData로 저장할 수 있습니다. 임계값 적용 이후 각 샘플의 QC 지표(n_genes_by_counts, total_counts, pct_counts_mt) 분포는 히스토그램과 산점도 플롯으로 시각화되며, 이를 통해 사용자는 지정한 QC 기준이 적절하게 low-quality 세포를 제거하고, 고품질 세포를 유지했는지 직관적으로 검토할 수 있어 이후 분석의 신뢰성을 높일 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
dropletUtils_filterCells
DropletUtils의 filterCells는 sample_info.csv 파일을 불러온 뒤, 해당 파일에 기재된 각 샘플에 대해 비어 있는 droplet을 제거합니다. 구체적으로는 다음 절차를 거쳐 수행됩니다. 먼저, cellranger count의 산출물 중 filtering되지 않은 feature-barcode count matrix를 불러오고, 이 과정에서 각 droplet에 sample_info.csv에서 얻은 샘플 정보를 매핑하여 저장합니다. 이후 각 droplet의 총 UMI 수를 계산하여 기본값으로 100 이하인 경우를 비어 있는 droplet으로 간주합니다. 이러한 기준을 바탕으로 전체 droplet 중 실제로 empty droplet일 것으로 추정되는 경우를 선별하고, 반대로 비어 있지 않은 droplet은 실제 세포로 판단합니다. 실제 세포로 구분된 droplet의 count matrix는 추후 분석에 활용할 수 있도록 입력과 동일한 .mtx 형식으로 저장합니다. 또한 filtering되지 않은 전체 droplet을 대상으로 barcode rank plot을 작성하여 제거된 droplet의 UMI 분포와 rank 정보를 시각적으로 확인할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
cellranger_count
Cellranger count 단계는 Cell Ranger의 count 서브커맨드를 이용하여 단일 scRNA 샘플(single sample)에 대해 read alignment, barcode 및 UMI 처리, 유전자 발현 정량화, 품질 지표 생성 등 전체 분석 과정을 자동으로 수행합니다. 이 과정은 10X Chromium 플랫폼에서 제작된 scRNA-seq 라이브러리로부터 생성된 FASTQ 파일을 입력으로 받아, gene-by-cell expression matrix를 산출합니다. 또한 각 샘플의 메타데이터를 표 형식으로 저장하여 후속 분석에 활용할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17
cellranger_mkref
Cell Ranger는 10x Genomics 사의 single-cell library preparation kit로 제작된 scRNA-seq 라이브러리에서 생성된 FASTQ 파일을 처리하는 소프트웨어입니다. 후술할 cellranger count 단계에서는 read alignment를 수행하고 feature-by-barcode 기반의 UMI(unique molecular identifier) count matrix를 생성합니다. 이를 위해서는 reference genome (FASTA)과 gene annotation (GTF) 파일이 필요하며, 이 파일들을 Cell Ranger가 읽을 수 있도록 전용 형식으로 미리 변환되어야 합니다. 이 작업은 cellranger mkref 단계에서 수행됩니다. Bio-Express에는 GRCh38 (Homo sapiens) version 44와 GRCm39 (Mus musculus) version M33에 대한 reference가 이미 내장되어 있으므로, 해당 reference를 사용할 경우 runCellRanger_mkref 단계를 생략할 수 있습니다.
- 카테고리in-house script > scRNA-seq
- 수정일2025-09-17