메뉴 바로가기 본문 바로가기 하단 바로가기
Single-cell RNA Sequencing Pipeline
  • 카테고리Transcriptomics > Single-cell-transcriptomics
  • 수정일2025-09-17 22:29:03
Single-cell RNA-seqScanpyCell rangerCellTypistgProfiler

 Single-cell RNA sequencing pipeline은 10X Genomics의 Cell Ranger, python 패키지인 Scanpy를 이용하여 단일 세포 수준의 유전자 발현 데이터를 분석하기 위한 파이프라인입니다.

 본 파이프라인은 raw sequencing data(FASTQ 파일)과 함께 각 library가 유래한 샘플의 정보를 함께 입력받습니다. 이후 count matrix 생성, data preprocessing, normalize and scaling, dimension reduction and clustering, annotation, differential gene expression analysis 및 functional analysis 등을 수행합니다. 결과물로 cell-by-gene expression matrix 및 이로부터 파생된 분석 결과 테이블, 시각화한 그래프 등을 얻을 수 있습니다.

 

  • 모식도 이미지
  • 분석 프로그램

    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 단계를 생략할 수 있습니다. 

    주요사항

    • 10x Genomics에서 제공하는 공식 reference (GRCh38, mm10 등)는 인간과 마우스에 한정되기 때문에 cellranger mkref를 사용하면 임의의 유전체 + GTF 파일을 기반으로 커스텀 reference를 생성할 수 있어, 비모델 생물(non-model species), 박테리아, 곰팡이, 어류 등에도 적용 가능합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    cellranger mkref --genome=“custom” --fasta=/path/to/genome.fa --genes=/path/to/genes.gtf

    실행 스크립트

    • 실행 스크립트가 없습니다.

    파라미터

    옵션 유형 명칭 설명 필수값
    Input String genome custom 결과 파일들이 담길 폴더의 이름 (알파벳, 숫자, “_”, “-”로만 조합하여 작성)
    Input File fasta genome.fasta FASTA 파일의 경로
    Input File genes genome.gtf GTF 파일의 경로
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String ref_version v1 Reference 내에 저장될 reference 버전 정보.

    결과

    • result image

      cellranger mkref 결과 폴더 구조

    • result image

      reference.json 파일 내용. 이 파일은 mkref 실행에 관련된 메타데이터 정보를 보여 줌

    cellranger_count

    Cellranger count 단계는 Cell Ranger의 count 서브커맨드를 이용하여 단일 scRNA 샘플(single sample)에 대해  read alignment, barcode 및 UMI 처리, 유전자 발현 정량화, 품질 지표 생성 등 전체 분석 과정을 자동으로 수행합니다.

    이 과정은 10X Chromium 플랫폼에서 제작된 scRNA-seq 라이브러리로부터 생성된 FASTQ 파일을 입력으로 받아, gene-by-cell expression matrix를 산출합니다. 또한 각 샘플의 메타데이터를 표 형식으로 저장하여 후속 분석에 활용할 수 있습니다.

    주요사항

    • cellranger count는 --id=output_dir_name 옵션으로 출력 디렉토리 이름만 지정할 수 있으며, 경로 지정은 지원하지 않습니다. 따라서 실행 결과는 output_dir/id 위치에서 확인이 가능합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    cellranger count --id pbmc_1k_v3,Brain_Tumor_3p --sample pbmc_1k_v3,Brain_Tumor_3p \ --fastqs /path/to/input_dir \ --transcriptome /path/to/input_dir \ --output_dir /path/to/output_dir \ --add_condition condition,group1,group2

    실행 스크립트

    • 실행 스크립트가 없습니다.

    파라미터

    옵션 유형 명칭 설명 필수값
    Input String id pbmc_1k_v3,Brain_Tumor_3p (여러 샘플의 경우 공백 없이 쉼표로 구분) 고유한 실행 ID 문자열 (예: sample345). 이 이름은 임의로 지정할 수 있으며, 모든 출력 파일을 포함하는 디렉토리 이름으로 사용됨. 영문자, 숫자, 밑줄(_), 하이픈(-)만 허용되며, 샘플 당 최대 64자까지 가능
    Input String sample pbmc_1k_v3,Brain_Tumor_3p (여러 샘플의 경우 공백 없이 쉼표로 구분) 선택할 FASTQ 파일의 파일명 접두어
    Input Folder fastqs /path/to/input_dir (여러 샘플의 경우 공백 없이 쉼표로 구분) 입력 FASTQ 데이터의 경로. 전체 경로에는 쉼표를 포함할 수 없음
    Input String transcriptome /path/to/input_dir cellranger mkref를 통해 생성된 reference 파일이 포함된 디렉토리 경로. 값이 None이면서 species가 human 혹은 mouse인 경우 Bio-Express 내 reference 파일을 사용함
    Input String species human 생물 종 선택: 'human' 또는 'mouse' [transcriptome]을 지정하지 않은 경우 필수
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String add_condition condition,group1,group2 (공백 없이 쉼표로 구분) 샘플에 대한 사용자 정의 메타데이터. 예를 들어, 두 가지의 메타데이터 정보와 네 개의 샘플에 대하여, 'disease,cancer,cancer,normal,normal,batch,1,2,3,4'를 입력하는 경우 disease 필드와 batch 정보에 cancer/normal 혹은 1~4의 batch 정보를 tabular format으로 생성함

    결과

    • result image

      sample_info.csv 파일 내용. 샘플별 사용자 정의 메타데이터를 포함하는 CSV 파일

    • result image

      web_summary.html 파일 내용. cellranger count 명령어 결과 요약 리포트로 파일은 분석된 단일 세포 RNA 시퀀싱 데이터에 대한 주요 품질 지표 및 요약 정보를 시각적으로 제공함

    • result image

      raw_feature_bc_matrix 폴더 내용. 분석용 발현 행렬로 세포 바코드 목록(barcodes.tsv.gz), 유전자(또는 feature) 정보(features.tsv.gz), 세포 x 유전자 발현 데이터(matrix.mtx.gz)로 구성됨

    • result image

      cellranger count 결과 폴더 구조

    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 정보를 시각적으로 확인할 수 있습니다.

    주요사항

    • DropletUtils::read10xCounts() 또는 read10xRaw()는 10X Genomics 형식에 최적화되어 있으므로, 비표준 형식(예: custom scRNA-seq protocol)을 사용하는 경우 별도 전처리가 필요합니다. 또한 입력 데이터 포맷으로 cellranger count의 unfiltered matrix (raw_feature_bc_matrix)를 사용해야 합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    Rscript DropletUtils_filterCells.r --input_dir=/path/to/input_dir --output_dir=/path/to/output_dir

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 cellranger count 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Integer lower 100 총 UMI count의 하한값. 이 값 이하의 barcode는 빈 droplet(empty droplet)으로 간주함
    Option Integer niters 10000 Monte Carlo p-value 계산을 위한 반복 횟수
    Option Boolean test_ambient False True인 경우 lower 값 이하의 barcode도 검정에 포함하여 결과를 반환함
    Option Integer ignore NULL 총 UMI count의 하한을 지정, 이 값 이하인 barcode는 무시됨
    Option Integer retain NULL 총 UMI count의 이 값을 초과하는 barcode는 세포를 포함한다고 가정
    Option String fdr_thr 0.05 Monte Carlo test로 산출된 p-value에 기반해 low-quality cell을 필터링할 때 사용하는 FDR 임계값

    결과

    • result image

      Brain_Tumor_3p(왼쪽)와 PBMC_1k_v3(오른쪽)의 바코드 랭크 플롯. 샘플 내 droplet들을 filtering 이전 UMI 수(y축)에 따라 정렬하여 시각화한 것으로, 붉은 점선(FDR 0.05) 아래의 droplet은 empty로 간주되어 제거됨 점선은 실제 세포와 비세포 바코드를 구분하기 위한 knee(카운트가 급격히 감소하는 지점), inflection(보다 보수적인 기준), FDR 0.05(emptyDrops에서 계산된 통계적 기준)을 나타냄

    • result image

      dropletUtils filterCells 결과 폴더 구조

    scanpy_plotQCmetrics

    scanpy plotQCmatrics는 필터링된 발현 데이터(.mtx 파일 및 두 개의 .tsv.gz 파일)와 샘플 정보를 불러와 AnnData object를 생성합니다. 모든 세포에 대해 3가지 품질 관리(QC) 지표(n_genes_by_counts, total_counts, pct_counts_mt`)를 계산합니다.
    - n_genes_by_counts: 각 세포에서 발현된 유전자 수. 너무 적으면 세포가 죽었거나 capture 실패 가능성이 있으며, 너무 많으면 doublet(두 세포가 하나로 합쳐진 경우) 가능성이 있습니다.
    - total_counts: 각 세포의 총 UMI 수. 낮으면 라이브러리 제작 실패 가능성이 있고, 높은 경우 doublet일 수 있습니다.
    - pct_counts_mt: 미토콘드리아 유전자 발현 비율. 높으면 세포 스트레스나 손상 가능성이 높음을 의미합니다.
    계산된 QC 척도는 AnnData object에 저장되며, 이후 .h5ad 파일로 내보냅니다. 또한, 각 샘플별 QC 척도 분포를 히스토그램 플롯(histogram plot)으로 시각화하여 저장함으로써, 실험 품질과 데이터 신뢰성을 직관적으로 평가할 수 있습니다.

    주요사항

    • 해당 프로그램은 각 QC 지표의 전체 분포를 히스토그램 플롯(histogram plot) 형태로 시각화합니다. 이를 통해 사용자는 다음 applyQCthresholds 단계에서 QC 기준(threshold)을 설정할 수 있으며, 최소 유전자 수가 부족한 세포나 발현이 거의 없는 유전자를 제거할 수 있도록 시각적으로 지원합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_plotQCmetrics.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir

    실행 스크립트

    • 실행 스크립트가 없습니다.

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 dropletUtils_filterCells 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로

    결과

    • result image

      Brain_Tumor_3p(왼쪽)와 PBMC_1k_v3(오른쪽)의 히스토그램 플롯. 세포 품질 평가는 총 UMI 수, 발현 유전자 수, 미토콘드리아 유전자 비율을 기준으로 시각화함

    • result image

      sample_info.csv 파일 내용. 샘플의 메타데이터 정보를 보여 줌

    • result image

      adata_qc_metrics_pbmc_1k_v3.h5ad 파일 일부 내용. 1,206개의 세포와 36,601개의 유전자에 대한 발현 데이터를 포함한 AnnData 객체로, 샘플 정보, 세포 품질 지표, 유전자 수준의 발현 통계값을 포함함

    • result image

      scanpy plotQCmetrics 결과 폴더 구조

    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 세포를 제거하고, 고품질 세포를 유지했는지 직관적으로 검토할 수 있어 이후 분석의 신뢰성을 높일 수 있습니다.

     

    주요사항

    • lower_log1p_total_counts, lower_log1p_n_genes_by_counts, upper_pct_counts_mito 등을 직접 지정하여 데이터 특성과 연구 목적에 맞게 품질 기준을 조정할 수 있습니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_applyQCthresholds.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir \ --lower_log1p_total_counts 0,0 --lower_log1p_n_genes_by_counts 0,0 --upper_pct_counts_mito 100,100 \ --plotting-only False --concat-samples True

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_plotQCmetrics 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String lower_log1p_total_counts 0 샘플별 log1p_total_counts의 하한값으로, 이 값 이하의 세포를 low-quality로 필터링하는 기준값. 여러 샘플일 경우 쉼표로 구분
    Option String lower_log1p_n_genes_by_counts 0 샘플별 log1p_n_genes_by_counts의 하한값으로, 이 값 이하의 세포를 low-quality로 필터링하는 기준값. 여러 샘플일 경우 쉼표로 구분
    Option String upper_pct_counts_mito 100 샘플별 pct_counts_mito의 상한값으로, 이 값 이상인 세포를 low-quality로 필터링하는 기준값. 여러 샘플일 경우 쉼표로 구분
    Option Boolean plotting_only True True: 시각화 파일만을 저장, False: 시각화 파일 및 QC를 마친 AnnData를 저장
    Option Boolean concat_samples True True: 여러 샘플에 대한 AnnData를 병합하여 저장 False: 각각의 샘플에 대한 AnnData를 저장

    결과

    • result image

      Brain_Tumor_3p(왼쪽)와 PBMC_1k_v3(오른쪽)의 히스토그램 및 산점도 플롯. 설정한 QC 임계값을 적용한 후 남은 세포들의 품질을 시각화하여, 사용자가 지정한 기준에 따라 low-quality 세포가 효과적으로 제거되었는지 확인 가능

    • result image

      adata_qc_passed _concat.h5ad 파일 내용. 3,176개의 세포와 36,601개의 유전자에 대한 발현 데이터를 포함한 AnnData 객체로, 샘플 정보, 세포 품질 지표, 유전자 수준의 발현 통계값 및 QC 통과 여부를 포함함

    • result image

      scanpy applyQCthresholds 결과 폴더 구조

    scanpy_normalize

    세포의 유형이나 크기에 따라 세포당 총 RNA 수는 크게 달라질 수 있으며, 이러한 차이는 scRNA-seq 데이터 분석에서 발현량 편향이나 downstream 분석 오류를 유발할 수 있습니다. 이러한 문제를 보정하기 위해 Bio-Express에서는 Scanpy에서 제공하는 count depth scaling 방법을 사용하여 각 세포의 총 UMI 수를 기준으로 발현량을 조정합니다. 모든 발현량 조정이 끝난 후에는 각 값에 1을 더하고 자연로그(log1p)를 취하여 발현량 분포의 왜도(skewness)를 완화하고, 극단값에 의한 영향을 줄입니다. 변환된 데이터는 AnnData 객체의 기본 위치(X) 또는 사용자가 지정한 layer에 저장되며, 이후 normalization이 필요한 분석 단계에서 그대로 활용할 수 있습니다. 이를 통해 서로 다른 세포 간의 발현량 비교를 보다 정확하게 수행할 수 있습니다.

    주요사항

    • scanpy.pp.normalize_total() 함수에서 target_sum 옵션은 각 세포마다 총 발현량(UMI 총합)을 동일하게 정규화하는 기준값을 의미합니다. 이 옵션을 잘못 설정하면 downstream 분석에 영향을 줄 수 있습니다. target_sum 값은 분석 목적에 따라 1e4는 scRNA-seq에서 표준적으로 가장 많이 사용되며, 1e6값은 bulk RNA-seq과 같은 TPM 스타일의 정규화 방식과 유사합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_normalize.py --input_dir /path/to/input_dir --output-dir /path/to/output_dir

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_applyQCthresholds 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Float target_sum 10000 Normalization 후 각 세포 내 총 UMI count가 target_sum 값과 동일하게 함. None인 경우normalization 이전 각 세포 내 의 총 UMI count의 중앙값과 같도록 함
    Option Boolean exclude-highly-expressed FALSE 각 세포의 normalization 계산 시, 한 세포에서 너무 높은 비율로 발현되는 유전자를 제외할지 여부. 제외되지 않은 유전자 합은 target_sum이 됨
    Option String key-added None 계산된 normalization factor를 저장할 adata.obs 내 필드 이름
    Option String layer None Normalization을 수행할 layer 지정. None이면 기본 X를 normalization함

    결과

    • result image

      adata_normalized.h5ad 파일 내용. Normalization 후, 모든 발현량에 1을 더하고 자연로그(log1p)를 취한 발현값이 포함된 AnnData 객체

    scanpy_findHVGs

    단일 세포 발현 매트릭스는 수많은 세포와 유전자를 포함하기 때문에 매우 높은 차원을 가지며, 직접적인 분석은 계산량이 크고 해석이 어려울 수 있습니다. 이를 완화하기 위해, 전체 세포 집단에서 세포 간 발현 차이를 잘 설명할 수 있는 highly variable gene (HVG)를 선별하여 데이터 차원을 감소시키는 것이 일반적입니다. scanpy_findHVG는 log-normalized expression matrix를 기반으로, 각 유전자의 평균 발현량 대비 분산이 높은 유전자들을 HVG로 선정합니다. 선정된 HVG는 downstream 분석에서 주로 사용되며, 결과물로는 HVG가 포함된 AnnData 객체, HVG 리스트, 그리고 mean-dispersion plot이 제공됩니다.

    주요사항

    • 반드시 Normalization (sc.pp.normalize_total() 및 sc.pp.log1p() ) 수행 후에 실행해야 합니다.
    • subset=True 옵션 설정 시 선택된 HVG만 남고 나머지 유전자는 AnnData에서 삭제됩니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_findHVGs.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_normalize 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String flavor seurat HVG를 식별하는 방법 선택. Seurat은 dispersion의 cutoff 사용, Cell Ranger는 dispersion 기반 상위 n개의 유전자를 선별함. [가능한 값: "seurat", "cell_ranger"]
    Option Integer n_top_genes none 유지할 상위 HVG의 수.
    Option String layer none HVG를 계산의 대상이 될 AnnData 내 발현량의 layer. None인 경우 AnnData의 X를 사용함. (추후 PCA가 X를 이용하여 진행되므로, [layer] 별도 설정을 권장하지 않음)
    Option String min_mean 0.0125 HVG 선정에 사용되는 발현량의 mean 최소값
    Option String max_mean 3 HVG 선정에 사용되는 발현량의 mean 최대값
    Option String min_disp 0.5 HVG 선정에 사용되는 발현량의 dispersion의 최소 값
    Option String max_disp Inf HVG 선정에 사용되는 발현량의 dispersion의 최대 값
    Option String span 0.3 loess 모델 fitting에서 dispersion을 추정할 때 사용되는 데이터(세포)의 비율
    Option Integer n_bins 20 평균 발현량을 binning할 때 사용할 구간 수. 각 구간에 대해 normalization이 수행됨. 특정 구간에 1개의 유전자만 포함되면, 그 유전자의 normalized dispersion은 1로 강제 설정됨
    Option Boolean subset FALSE 전체 유전자가 아닌 HVG에 대한 AnnData를 저장함. (True인 경우 이후 분석 및 시각화에 유의 필요)

    결과

    • result image

      adata_hvg.h5ad 파일 내용. HVGs만 포함된 발현 데이터를 저장한 AnnData 객체. Normalized 결과와 비교하였을 때 'highly_variable', 'means', 'dispersions', 'dispersions_norm' 변수가 추가됨

    • result image

      HVG scatter 플롯 내용. 전체 유전자에 대한 평균 발현량 대비 분산을 시각화한 그래프. HVG는 평균 대비 분산이 높아, plot 상에서 상단 또는 특정 cutoff 영역에 표시되므로 이를 통해 HVG 선별 과정이 적절했는지 직관적으로 확인 가능

    • result image

      hvg_list.csv 파일 내용. HVG로 선정된 유전자 목록을 담은 파일로 downstream 분석에서 차원 축소(PCA, UMAP 등)나 클러스터링에 사용됨

    scanpy_scaleData

    Log-normalization을 마친 AnnData 객체의 발현량을 바탕으로, 전체 세포 집단에서 각 유전자의 발현량을 Z-score 방식으로 표준화(z-scaling)합니다. 이 과정을 통해 유전자 간 발현량의 차이를 정규화하여, 특정 유전자가 PCA, UMAP, 클러스터링과 같은 downstream 분석에서 지나치게 큰 영향을 미치는 것을 방지합니다. 또한, 모든 유전자의 발현값이 동일한 척도로 변환됨으로써 분석 결과가 보다 공정하고 안정적으로 산출되며, 데이터의 변동성이 높은 유전자가 과도하게 결과에 영향을 주는 것을 막아 차원 축소 및 클러스터링 결과의 신뢰도를 높이는 데 기여합니다. 이 표준화된 데이터는 이후 분석에 최적화된 형태로 활용됩니다.

    주요사항

    • 극단치(outlier)는 Z-scaling에 영향을 줄 수 있어, 일반적으로 max_value=10으로 제한합니다. 너무 낮게 설정하면 고발현 유전자(HVGs)가 잘릴 수 있으므로 주의가 필요합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_scaleData.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_findHVGs 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Boolean zero_center True False일 경우, zero-centering variable을 생략하여 sparse한 data(0이 많은 expression matrix)를 효율적으로 처리 가능
    Option Integer max_value None Scaling 이후 [max_value] 이상의 값을 [max_value]로 치환함. None인 경우 치환하지 않음
    Option String layer None Scaling의 대상이 될 AnnData 내 발현량의 layer. None인 경우 AnnData의 X를 사용함. (추후 PCA가 X를 이용하여 진행되므로, layer 별도 설정을 권장하지 않음)

    결과

    • result image

      adata_scaled.h5ad 파일 내용. 유전자의 발현값을 Z-score 방식으로 표준화(z-scaling)하여 저장한 AnnData 객체. HVG 선정 결과와 비교하였을 때 'mean', 'std' 변수가 추가됨

    scanpy_runPCA

    scanpy_runPCA는 고차원 유전자 발현 데이터를 저차원으로 축소해 주요 패턴을 추출하는 과정입니다. scRNA-seq 데이터는 차원이 높고 노이즈가 많기 때문에, PCA(Principal Component Analysis, 주성분 분석)를 통해 변동성이 큰 방향을 찾아 요약합니다. 주로 HVG(Highly Variable Genes)를 기반으로 수행하여 생물학적으로 의미 있는 변동성을 반영합니다. 이렇게 얻은 주성분은 데이터의 구조를 유지하면서 계산 효율성을 높이고, 이후 클러스터링이나 시각화(UMAP, t-SNE) 같은 분석의 기초로 활용됩니다.

    주요사항

    • PCA가 의미 있게 작동하려면 정규화, 로그 변환, HVG 선정, 스케일링 작업이 선행되어야 힙니다. 특히 스케일링을 하지 않으면 분산이 큰 유전자만 PCA에 과도하게 기여합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_runPCA.py --input_dir /path/to/input_dir --output_dir/path/to/output_dir --svd_solver auto --n_comps 50 --zero_center True --chunked False --chunk_size None --random_state 0

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_scaleData 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Integer n_comps 50 계산할 principal component의 수. 1을 입력하면 계산 가능한 최소 차원으로 계산됨.
    Option Boolean zero_center True True: 공분산 행렬을 통해 표준 PCA를 계산; False: zero-centering을 하지 않고 TruncatedSVD 방식(scikit-learn 또는 dask-ml에서 제공)을 사용. 희소(sparse) 데이터일 때 메모리와 속도 면에서 훨씬 효율적임; None: 데이터가 희소인지 아닌지를 자동으로 판단하여 처리
    Option String svd_solver auto 사용할 SVD solver 선택. 가능한 값: "arpack", "randomized", "auto", 기본값: "auto" ; Auto: scanpy가 자동으로 지정; Arpack: SciPy의 ARPACK wrapper (svds()) 사용하며 dask array에 대해 사용 불가; Randomized: Halko의 randomized 알고리즘 사용
    Option Boolean chunked False True: sklearn IncrementalPCA나 dask-ml IncrementalPCA를 이용해 chunk_size 크기의 segment 단위로 PCA 수행 (자동으로 데이터의 평균을 0으로 만들고, random_seed와 svd_solver 설정을 무시); False: sklearn PCA나 dask-ml PCA를 이용해 full PCA 수행
    Option Integer chunk_size None 각 chunk에 포함할 관측값의 수입니다. ([chunked]=True인 경우 필수)
    Option Integer random_state 0 랜덤 시드 값

    결과

    • result image

      Scree 플롯 내용. PCA 후 각 주성분이 설명하는 분산 비율을 보여주는 그래프로 x축은 주성분 번호, y축은 분산 비율이며, 주성분 개수를 결정할 때 참고

    • result image

      adata_scaled.h5ad 파일 내용. Z-score로 표준화된 발현 데이터를 기반으로 PCA(주성분 분석)를 수행한 결과를 저장한 AnnData 객체로, obsm['X_pca']에는 각 세포의 주성분 점수(PC scores)가, varm['PCs']에는 각 유전자의 주성분 로딩(PC loadings) 정보가 저장되어 있습니다. 또한 uns['pca']에는 분산 비율(explained variance ratio) 등 PCA 관련 요약 정보가 포함됨

    • result image

      PCA_embedding.csv 파일 내용. 각 세포(barcode)의 PCA 점수를 저장한 파일로, 이후 클러스터링이나 UMAP/t-SNE 시각화에 사용

    scanpy_findNeighbors

    findNeighbors는 scRNA-seq 발현량 데이터를 기반으로 세포 간 유사성을 평가하여 neighbor graph를 구축하는 과정입니다. 각 세포는 유전자 발현 패턴이 비슷한 이웃 세포들과 연결되며, edge에는 발현 패턴의 유사도에 따라 가중치가 부여됩니다. 이를 통해 각 세포에 대해 유사도가 높은 세포들을 효율적으로 선별할 수 있으며, 생성된 neighbor graph는 후속 군집 분석(clustering), 차원 축소(UMAP, t-SNE) 및 다양한 downstream 분석에서 세포 간 구조를 반영하는 기초 자료로 활용됩니다.

    주요사항

    • sc.pp.neighbors()는 주로 PCA 결과(obsm['X_pca'])를 사용하므로, PCA를 먼저 수행해야 합니다. PCA 없이 호출하면 adata.X로 계산되어 효율이 떨어지고 결과가 왜곡될 수 있습니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_findNeighbors.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir \ --n_neighbors 15 --n_pcs 50 --use_rep None --knn True --method umap --metric euclidean --random_state 0

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_runPCA 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Integer n_neighbors 15 각 세포 주변을 살펴볼 이웃의 수로, 값이 클수록 전체 구조를, 작을수록 국소 구조를 반영함. knn=True이면 지정한 수만큼의 이웃만 고려하고, knn=False이면 Gaussian kernel을 이용해 이웃 거리에 따라 가중치를 부여
    Option Integer n_pcs 50 Neighbor graph 계산에 사용할 주성분의 수. [n_pcs]=0일 경우 [use_rep]가 None이면 원본 데이터(.X)를 사용
    Option String use_rep None Neighbor graph 계산에 사용할 데이터 지정. X: 원본 발현 데이터 사용; X_pca: PCA로 축소한 발현 데이터 사용; None: scanpy가 자동으로 결정
    Option Boolean knn True True: 이웃의 수를 [n_neighbors]로 제한하기 위해 hard threshold를 사용함 (k-NN graph 고려); False: Gaussian kernel을 사용하여 [n_neighbors] 이웃보다 더 먼 이웃에 대해 낮은 가중치 할당
    Option String method umap Connectivity를 계산할 때 사용할 방법 지정. 기본값: "umap"; 가능한 값: "umap", "gauss"
    Option String metric euclidean 데이터 간의 Distance를 계산하는 metric 명이나 함수 지정. 기본값: 'euclidean'; 가능한 값: 'cityblock', 'cosine', 'euclidean', 'l1', 'l2', 'manhattan', 'braycurtis', 'canberra', 'chebyshev', 'correlation', 'dice', 'hamming', 'jaccard', 'kulsinski', 'mahalanobis', 'minkowski', 'rogerstanimoto', 'russellrao', 'seuclidean', 'sokalmichener', 'sokalsneath', 'sqeuclidean', 'yule'
    Option Integer random_state 0 랜덤 시드 값

    결과

    • result image

      adata_scaled.h5ad 파일 내용. 세포 간 이웃 정보를 계산하여 저장한 AnnData 객체로, 각 세포의 neighbor graph 정보(obsp['connectivities'], obsp['distances'])가 포함됨

    scanpy_runTSNE

    scanpy_runTSNE는 scRNA-seq 데이터에 대해, UMAP 등장 이전에 사용하던 비선형적 차원 축소 방식인 t-stochastic neighbor embedding(t-SNE)를 수행합니다. t-SNE는 고차원 공간에서 각 점과 그 이웃 간의 거리를 보존하는 저차원 공간을 찾습니다. 이를 통해 데이터의 국지적인 구조를 유지함으로써, 복잡한 집단에서 많은 서로 다른 클러스터를 2차원상에서 분리되도록 embedding합니다. 때에 따라 scanpy_runUMAP 단계로 대체할 수 있습니다. (UMAP은 전반적인 데이터의 구조를 유지하지만, t-SNE는 국지 구조만을 유지한다는 단점을 가집니다.)

    주요사항

    • t-SNE는 확률 분포 기반 유사도를 보존하여 임베딩을 수행하며, 특히 클러스터 내부의 거리와 형태 해석에 신뢰성이 높습니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_runTSNE.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir --perplexity 30 --early_exaggeration 12 --learning_rate 1000 --random_state 0

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_findNeighbors 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Integer n_pcs 50 t-SNE를 계산하기 위해 사용할 주성분의 수. [n_pcs]=0일 경우 [use_rep]가 None이면 원본 데이터(.X)를 사용
    Option String use_rep none t-SNE 계산에 사용할 데이터 선택. X: 원본 발현 데이터 사용; X_pca: PCA로 축소한 발현 데이터 사용; None: scanpy가 자동으로 결정
    Option Integer perplexity 30 데이터 포인트가 고려하는 이웃 수 조절, 5~50 권장
    Option Integer early_exaggeration 12 초기 클러스터 간 거리 확대, 값이 클수록 간격 증가
    Option Integer learning_rate 1000 최적화를 위한 학습률. 보통 100과 1000 사이의 값을 권장.
    Option Integer random_state 0 랜덤 시드 값

    결과

    • result image

      adata_scaled.h5ad 파일 내용. t-SNE를 수행한 결과를 저장한 AnnData 객체로, 각 세포의 저차원 임베딩 정보(obsm['X_tsne'])가 포함됨

    • result image

      tSNE_embedding.csv 파일 내용. 각 세포(barcode)의 t-SNE 좌표를 저장한 파일로, 이후 클러스터링 또는 시각화에 사용됨

    scanpy_runUMAP

    runUMAP은 앞서 계산한 scRNA-seq 데이터의 neighborhood graph를 기반으로, 비선형 차원 축소 기법인 UMAP(Uniform Manifold Approximation and Projection)을 수행합니다. 이 과정은 고차원 유전자 발현 데이터를 저차원 공간으로 변환하면서, 데이터의 전반적인 구조와 세포 간 관계를 최대한 유지하도록 설계되었습니다. UMAP을 통해 얻은 임베딩은 각 세포의 위치 정보를 2차원 또는 3차원 공간에 나타낼 수 있으며, 이를 바탕으로 클러스터링, 시각화, 군집 간 관계 분석 등에 활용할 수 있습니다. 경우에 따라, UMAP 대신 scanpy_runTSNE 단계를 사용하여 국지적 구조를 강조한 비선형 임베딩을 수행할 수도 있습니다.

    주요사항

    • UMAP은 sc.pp.neighbors()에서 계산한 KNN 그래프(connectivities)를 입력으로 사용하여, 고차원 데이터의 지역 구조(local structure)와 전역 구조(global structure)를 모두 보존하도록 저차원 공간에 임베딩 합니다. 이때 점(세포) 간 거리는 유전자 발현 패턴의 유사성을 반영하며, 가까운 점은 유사한 세포, 먼 점은 발현 패턴이 다른 세포를 의미합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_runUMAP.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_findNeighbors 또는 scanpy_runTSNE 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Float min_dist 0.5 임베딩된 점(세포)들 간의 최소 거리. 작은 값은 더 밀집된 cluster를 만들고, 클수록 점들이 더 고르게 분포됨. [spread]와의 조합으로 점의 밀집도를 조절함. umap-learn 패키지에서 기본값은 0.1.
    Option Float spread 1.0 [min_dist]와 함께 클러스터링의 밀집 정도를 지정, 값이 클수록 넓게 퍼짐
    Option Integer n_components 2 임베딩할 차원 수
    Option Integer maxiter none 최적화를 위한 반복 횟수(epochs). 기존 UMAP에서는 [n_epochs]로 표기됨.
    Option Float alpha 1.0 임베딩 최적화의 초기 학습률
    Option Float gamma 1.0 임베딩 최적화 시 negative sample에 적용되는 가중치. 값이 1보다 크면 negative sample에 더 큰 가중치가 부여됨
    Option String negative_sample_rate 5 저차원 임베딩을 최적화할 때, 유사하다고 판단된 세포 쌍(positive edge) 하나당 사용할 유사하지 않은 세포 쌍(negative edge)의 수
    Option String init_pos random 임베딩의 초기화 방법. 기본값: 'random'; 가능한 값: 'paga', 'spectral', 'random'
    Option Integer random_state 0 랜덤 시드 값
    Option Float a none 임베딩을 제어하는 더 구체적인 parameter. None일 경우 [min_dist]와 [spread]에 의해 자동으로 설정
    Option Float b none 임베딩을 제어하는 더 구체적인 parameter. None일 경우 [min_dist]와 [spread]에 의해 자동으로 설정

    결과

    • result image

      adata_scaled.h5ad 파일 내용. UMAP을 수행한 결과를 저장한 AnnData 객체로, 각 세포의 저차원 임베딩 정보(obsm['X_umap'])가 포함됨

    • result image

      umap_embedding.csv 파일 내용. 각 세포(barcode)의 UMAP 좌표를 저장한 파일로, 이후 클러스터링 또는 시각화에 사용됨

    scanpy_findClusters

    scanpy_findClusters 단계는 앞서 계산된 scRNA-seq 데이터의 neighbor graph(FindNeighbors 단계 결과)를 기반으로, 각 세포를 유사한 발현 패턴을 가진 그룹으로 묶는 클러스터링 과정을 수행합니다. 이때 Leiden 또는 Louvain 알고리즘을 사용하여 세포 집단을 자동으로 식별하며, 알고리즘은 세포 간 연결 강도와 구조를 고려하여 최적의 군집을 형성합니다. 클러스터 번호는 세포 수가 많은 그룹부터 0, 1, 2… 순으로 할당되며, 결과는 AnnData 객체의 obs에 저장되어 추후 시각화, 차원 축소(UMAP/t-SNE), 또는 집단 간 차이 분석에 활용할 수 있습니다. 이 과정은 scRNA-seq 데이터에서 세포 유형 및 상태를 탐색하는 핵심 단계입니다.

    주요사항

    • sc.tl.leiden()과 sc.tl.louvain()은 이웃 그래프를 기반으로 세포 간 유사도에 따라 군집을 나누는 방법입니다. Louvain은 빠르지만 분할이 불안정할 수 있고, Leiden은 이를 개선하여 더 안정적이고 해석력이 높아 Scanpy에서 주로 권장됩니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_findClusters.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir --algo leiden --resolution 1.0 --use_weights True --random_state 0 --directed none --leiden_n_iter -1

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_runTSNE 또는 scanpy_runUMAP 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String algo leiden Clustering에 사용할 알고리즘으로 선택한 알고리즘에 따라 일부 파라미터의 기본값이 달라짐. 기본값: "leiden"; 가능한 값: "louvain", "leiden"
    Option Float resolution 1.0 Clustering의 세밀도를 조절하는 파라미터. 높을수록 더 많은 cluster를 생성
    Option Boolean use_weights True k-NN graph의 가중치의 사용 여부. True일 경우 edge weight를 계산에 사용
    Option Integer random_state 0 최적화를 위한 초기값
    Option Boolean directed none adjacency matrix을 directional graph로 해석할지 여부 설정
    Option String flavor vtraag (Louvain) 클러스터링 계산을 위한 패키지 선택. 기본값: "vtraag":, 가능한 값: "vtraag", "igraph"
    Option Integer leiden_n_iter -1 (Leiden) 알고리즘을 몇 번 반복할지 설정. - 2 이상의 양수: 총 반복 횟수 - -1: 알고리즘이 최적의 클러스터링에 도달할 때까지 실행

    결과

    • result image

      adata_scaled.h5ad 파일 내용. 클러스터링을 수행한 결과를 저장한 AnnData 객체로, 세포별 클러스터 정보(obs['leiden'])가 포함됨

    • result image

      cluster_info_leiden.csv 파일 내용. 각 세포에 대해 할당된 Leiden 클러스터 정보를 담은 표

    scanpy_scatterPlot

    앞서 계산된 UMAP, t-SNE, 혹은 PCA 임베딩 결과를 활용하여 모든 세포에 대한 산점도를 시각화합니다. 이때 각 점은 하나의 세포를 나타내며, 샘플 정보나 findClusters 단계에서 얻은 클러스터 번호에 따라 색상 또는 모양으로 구분할 수 있습니다. 이러한 산점도는 군집 구조 확인을 넘어, 개별 세포 수준에서 특정 유전자의 발현 패턴을 탐색하는 데도 유용합니다. 예를 들어, raw count, log-normalized, scaled 등 다양한 데이터 변환 방식에 따른 발현 강도를 색상으로 표시하면 특정 유전자가 집단 특이적으로 발현되는지, 혹은 전반적으로 균일하게 분포하는지를 효과적으로 파악할 수 있습니다.

    주요사항

    • 시각화 하고자 하는 적절한 차원 축소방식을 선택해야 합니다. PCA는 전반적 구조 파악에, t-SNE는 국지적 구조 보존에, UMAP은 국지적·전역적 구조를 모두 반영하며 재현성과 속도가 뛰어나 최근 가장 널리 활용됩니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_scatterPlot.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir --basis umap --layer scaled --color_keys leiden,sample_id --annotated False \ --edges False --edges_width 0.1 --edgens_color grey --legend_loc "right maring" --legend_fontsize none --size none

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_findCluster, scanpy_BBKNNbatchCorrection, scanpy_annotateClusters, scanpy_runCellTypist 등의 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option Boolean annotated False 세포 유형의 라벨링이 완료된 AnnData 객체(adata_cellType_annotated.h5ad)를 불러올지 여부. 기본값으로는 'adata_scaled.h5ad'을 로드하며, 이 경우 세포 유형은 시각화할 수 없음
    Option String basis umap 시각화에 사용할 임베딩 선택. 기본값: "umap"; 가능한 값: "umap", "tsne", "pca"
    Option String color_keys sample_id 시각화할 색상을 기준으로 사용할 이름 (runCellRanger_count의 [add_condition]을 통해 설정한 condition 이름도 가능함). 예시로 'leiden' 또는 'leiden,condition', runCellTypist를 이용해 세포 유형을 부여한 경우 'CellTypist'를 포함 가능
    Option String layer normalized 시각화할 AnnData의 발현 layer 선택. 가능한 값: "raw", "normalized", "scaled"
    Option Boolean edges False 세포 간 edge를 표시 여부
    Option Float edges_width 0.1 edge의 선 두께
    Option String edges_color grey edge의 색상, 기본값: "grey"
    Option String legend_loc "right maring" 범례 위치. 가능한 값: "on data", "right margin", None 또는 matplotlib legend 위치 키워드 가능
    Option Float legend_fontsize none 범례 글꼴의 크기 (pt 단위)
    Option Float size none 점의 크기. None일 경우 자동으로 120000 / n_cells로 계산.
    Option String save .pdf 출력할 그림 파일의 확장자 지정. 기본값: ".pdf"

    결과

    • result image

      산점도 플롯. scRNA-seq 데이터의 UMAP 결과로, 각 점은 하나의 세포를 나타내고 leiden 클러스터링, sample_id에 따라 서로 다른 색상으로 구분됨. 위는 Batch correction 전, 아래는 Batch correction 이후 결과임

    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까지의 과정을 다시 수행해야 하며, 이를 통해 보정된 데이터 기반의 군집화 및 시각화 결과를 확인할 수 있습니다.

    주요사항

    • use_rep='X_pca'가 기본값이므로, PCA (sc.tl.pca())를 선행하여 AnnData 객체 내 obsm['X_pca']가 반드시 존재해야 합니다.
    • 배치 정보 조건으로 batch_key가 adata.obs 내에 존재해야 하며, 최소 2개 이상의 배치 값이 필요합니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_BBKNNbatchCorrection.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir --batch_key sample_id --use_rep X_pca --n_pcs 50

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로, PCA 결과를 포함하는 scanpy_runPCA, scanpy_Neighbors, scanpy_runTSNE, scanpy_runUMAP, scanpy_findClusters 등의 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String batch_key sample_id adata.obs 내에서 서로 다른 배치를 구분하는 컬럼 이름
    Option String use_rep X_pca 이웃을 찾기 위해 사용할 데이터 선택. 기본값: "X_pca"
    Option Integer n_pcs 50 분석에 사용할 차원 수 (PCA의 경우 주성분 수)
    Option Boolean approx True True: 가까운 세포를 찾기 위하여 annoy 또는 PyNNDescent 사용 (큰 데이터셋에서 실행 시간 단축, Batch correction 증가)
    Option Boolean use_annoy True [approx]=True일 때만 사용됨. True: annoy를 사용하여 neighbor finding 수행; False: pyNNDescent 사용
    Option String metric euclidean 사용할 distance metric. Neighbor algorithm에 따라 옵션이 달라짐. 기본값:"euclidean"; Annoy의 가능한 값: 'angular', 'euclidean'; PyNNDescent의 가능한 값: 'euclidean', 'manhattan', 'hamming', 'l2', 'sqeuclidean', 'taxicab', 'l1', 'chebyshev', 'linfinity', 'linfty', 'linf', 'minkowski', 'seuclidean', 'standardised_euclidean', 'wminkowski'
    Option Integer neighbors_within_batch 3 각 배치에 대해 몇 개의 상위 이웃을 report할지 설정
    Option Integer trim none 각 세포의 이웃을 상위 [trim]개로 제한하여 클러스터링을 명확하게 함. 값이 작을수록 배치효과가 남고 population이 독립적으로 간주됨. None이면 [neighbors_within_batch] 값에 데이터 내 batch 수를 곱한 값의 10배로 자동 설정
    Option Integer anny_n_trees 10 (Annoy) Annoy forest에서 생성할 tree의 수. 클수록 정확도가 올라가지만 실행 시간 증가
    Option Integer pynndescent_n_neighbors 30 (pyNNDescent) 근사 그래프를 만들 때 고려할 이웃의 수. 클수록 정확도가 올라가지만 실행 시간 증가
    Option Integer pynndescent_random_state 0 (pyNNDescent) 그래프 생성 시 사용할 랜덤 시드 값
    Option Boolean use_faiss True [approx]=False, [metric]=“euclidean”일 때, neighbor 계산에 faiss를 사용하여 약간의 성능 향상
    Option Float set_op_mix_ratio 1.0 UMAP connectivity 계산을 위한 파라미터. 0과 1 사이의 실수
    Option Integer local_connectivity 1 UMAP connectivity 계산을 위한 파라미터, 각 세포에 대해 몇 개의 이웃이 완전히 연결된 것으로 가정되는지 설정

    결과

    • result image

      adata_scaled.h5ad 파일 내용. 세포 간 이웃 정보를 배치별로 균등하게 계산하여 저장한 AnnData 객체로, 원본 발현 데이터(.X)는 변하지 않지만, 각 세포의 neighbor graph 정보(obsp['connectivities'], obsp['distances'])는 배치 보정된 결과가 반영됨

    scanpy_annotateClusters

    Scanpy에서는 연구자가 특정 마커 유전자의 발현 패턴을 기준으로 직접 클러스터에 세포 유형을 부여할 수 있습니다. 예를 들어 T세포 마커(CD3D, CD3E), B세포 마커(MS4A1), 대식세포 마커(LYZ) 등의 발현을 확인하여 해당 클러스터가 어떤 세포 집단인지 판단합니다. 이후 클러스터 번호(예: 0, 1, 2…)에 연구자가 정의한 세포 유형 라벨을 매핑해 adata.obs['celltype'] 같은 새로운 열에 저장할 수 있습니다. 이 방법은 자동 주석 도구 대비 해석자의 전문 지식을 반영할 수 있어, 데이터 특성에 맞는 맞춤형 주석 작업이 가능하다는 장점이 있습니다.

    주요사항

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_annotateClusters.py --input_dir /path/to/input_dir --hvg_path /path/to/input_dir --output_dir /path/to/output_dir \ --query_obs leiden --query_cat 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 \ --append_obs celltype --append_cat T,T,T,Macrophages,Monocytes,T,Epithelial,Epithelial,Macrophages,Macrophages,B,Monocytes,NK,Macrophages,Macrophages,Macrophages,MAIT,Fibroblasts,Fibroblasts,B,Fibroblasts,Monocytes,T,Fibroblasts,Fibroblasts

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input String input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로, PCA 결과를 포함하는 scanpy_findClusters, scanpy_BBKNNbatchCorrection 등의 결과 폴더임
    Input String hvg_path /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_findHVGs 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String query_obs leiden 기준이 되는 adata.obs의 컬럼 이름을 지정
    Option String query_cat none 선택할 카테고리 값을 쉼표로 지정 (예시: 1,2,3,4)
    Option String append_obs celltype 새로운 주석 정보를 추가할 adata.obs의 컬럼 이름을 지정
    Option String append_cat none 새롭게 추가할 카테고리 값을 쉼표로 지정 (예시: T-cell,B-cell,Myeloid,Myeloid)
    Option String append_cat_order none pandas.Categorical 형식으로 저장할 때 사용할 카테고리 순서를 쉼표로 구분해 지정합니다. 중복되지 않은 값만 입력해야 함

    결과

    • result image

      adata_cellType_annotated 파일 내용. 각 클러스터(leiden 등)를 기준으로, 연구자가 직접 세포 유형을 지정하여 주석(annotation)을 추가한 AnnData 객체로, 각 세포의 발현 데이터와 클러스터 정보뿐만 아니라, 사용자가 클러스터별로 지정한 세포 유형 정보(obs['celltype'])를 포함

    scanpy_runCellTypist

    CellTypist는 단일세포 전사체 데이터에서 세포 유형을 자동으로 예측하고 주석을 달아주는 Python 기반 패키지입니다. 미리 학습된 reference 모델(예: Immune_All_Low, Immune_All_High, Lung_Immune, Brain_NonImmune, PBMC 등)을 활용하여 각 세포의 발현 패턴을 비교·분류합니다. 사용자는 AnnData 객체를 입력해 간단히 실행할 수 있으며, 결과는 각 세포별 세포 유형 정보로 추가됩니다. 직관적이고 빠른 분류가 가능해 대규모 단일세포 데이터 분석에 유용하며, 연구자의 해석을 보완하는 도구로 널리 활용됩니다.

    주요사항

    • 모델 목록은 https://www.celltypist.org/models 또는 celltypist.models.models_description() 같은 함수를 통해 확인할 수 있습니다.

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_runCellTypist.py --input_dir /path/to/input_dir --hvg_path /path/to/input_dir --output_dir /path/to/output_dir \ --model Immune_All_Low --majority_voting True --over_clustering True

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로, PCA 결과를 포함하는 scanpy_findClusters, scanpy_BBKNNbatchCorrection 등의 결과 폴더임
    Input Folder hvg_path /path/to/input_dir 입력 파일이 저장된 디렉토리 경로로 scanpy_findHVGs 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String model Immune_All_Low AnnData 내 세포 유형을 예측하는 데 사용되는 모델. listCellTypistModels 을 통해 얻은 경우 celltypist_models.csv 내 파일 목록에서 .pkl 문자열은 제외하여 작성
    Option Boolean majority_voting True Over-clustering 후 majority voting을 시행하여, 예측된 라벨링으로 보정할지 여부
    Option Boolean over_clustering False 이전 clustering 결과에 대해 라벨링할지 여부. False이고 [majority_voting]=True일 경우 입력된 데이터 크기에 따라 heuristic over-clustering 방식을 적용하며, [majority_voting]=False인 경우 이 옵션은 무시됨

    결과

    • result image

      산점도 플롯. scRNA-seq 데이터의 UMAP 결과로, 각 점은 하나의 세포를 나타내고 CellTypist가 예측한 세퍼 유형에 따라 서로 다른 색상으로 구분됨

    • result image

      adata_cellType_annotated 파일 내용. 세포 유형 주석이 추가된 AnnData 객체로, 각 세포의 발현 데이터와 클러스터 정보뿐만 아니라, CellTypist를 통해 예측된 세포 유형 정보(obs['CellTypist']가 포함

    • result image

      matrix.csv 파일 내용. decision_matrix.csv는 각 세포가 모든 후보 세포 유형에 대해 갖는 의사결정 점수(logit 값) 를 담고 있으며, 값이 클수록 해당 세포 유형일 가능성이 높음을 의미함. probability_matrix.csv는 이 점수를 소프트맥스 변환하여 확률(0~1) 형태로 나타낸 것으로, 각 세포에 대해 모든 세포 유형의 확률 분포를 확인할 수 있음

    • result image

      predicted_labels.csv 파일 내용. 각 세포에 대해 최종적으로 할당된 세포 유형(label) 을 기록한 파일임. 여기에는 기본 모델 예측(predicted_labels), over-clustering 기반 그룹 번호(over_clustering), majority voting 보정 결과(majority_voting)가 함께 제공되어, 라벨링 과정을 단계별로 추적할 수 있음

    scanpy_findDEG

    분석에 사용되는 AnnData 객체를 기반으로, 각 클러스터(그룹) 내 세포와 나머지 세포 간, 혹은 사용자가 지정한 두 클러스터(그룹) 간의 차별 발현 유전자(Differentially Expressed Gene, DEG)를 선별합니다. 이는 두 세포 집단의 유전자 발현량 차이를 Scanpy의 scanpy.tl.rank_genes_groups() 함수에 내장된 t-test, Wilcoxon rank sum test 등의 통계 기법으로 비교하여 수행됩니다. 결과 파일에서는 두 집단 간 발현 차이를 보이는 유전자 목록을 확인할 수 있으며, 이를 시각화하여 활용할 수 있습니다.

    주요사항

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_findDEG.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir \ --groupby leiden --groups all --method t-test --corr_method benjamini-hochberg \ --log2fc_abs_thr 0.25 --pval_cutoff 0.05 --plot_volcano False

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일을 담고 있는 디렉토리 경로로 scanpy_findClusters, scanpy_BBKNNbatchCorrection, runcelltyplist, scanpy_runCellTypist, scanpy_annotateClusters 등의 결과 폴더임
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String groupby leiden 차등 발현 분석을 수행하기 위해 세포를 구분하는 그룹(예: 클러스터, 조건) 지정
    Option String groups all 비교할 대상이 될 [groupby]의 하위 카테고리로 복수 시 공백 없이 쉼표로 구분 (예: 'g1,g2' 또는 'all'(기본값)). [groups]의 첫 번째 항목은 volcano plot을 그릴 때 control로 사용
    Option Integer n_genes none 반환된 테이블에 나타날 유전자 수로 기본값은 'all'
    Option String method t-test 통계기법 선택. 기본값: 't-test'; 가능한 값: 't-test', 't-test_overestim_var', 'wilcoxon', 'logreg'
    Option String corr_method benjamini-hochberg p-value 보정 방법. 't-test', 't-test_overestim_var', 'wilcoxon'에만 사용. 가능한 값: 'benjamini-hochberg'(기본값), 'bonferroni'
    Option Boolean tie_correct False (Wilcoxon) Wilcoxon 점수에 대해 tie correction을 적용할지 여부
    Option Boolean pts False 유전자를 발현하는 세포의 비율을 계산할지 여부.
    Option Float pval_cutoff 0.05 보정된 p-value의 cutoff. 이 값 이하인 유전자만 반환
    Option Float log2fc_abs_thr 0 반환할 log2(Fold Change) 절댓값의 threshold.
    Option Boolean plot_volcano False 두 그룹 간의 DEG를 volcano plot을 통해 시각화할지 여부. [groups]의 그룹 수가 2인 경우 또는 [groups]=all이면서 [groupby] 내 카테고리의 수가 2인 경우 True 선택 가능
    Option Integer clip_yaxis 300 Volcano plot에서 y축 (-log10 p-value) 최댓값. 이 값 이상은 잘림
    Option String repel_genes none Volcano plot에 표시할 유전자 목록으로 공백없이 쉼표로 구분
    Option Integer plot_width 9 Volcano plot의 너비
    Option Integer plot_height 6 Volcano plot의 높이

    결과

    • result image

      [groupby]_[groups list]_DEG_[method].csv 파일 내용. 이 파일은 클러스터/조건에서 다른 세포 집단과 비교했을 때 발현이 유의하게 달라지는 유전자, 즉 차등 발현 유전자(DEG)를 정리한 것으로 각 유전자에 대해 이름, 통계값, 발현 차이(log2 fold change), 원시 및 보정 p값, 해당 클러스터 ID 등의 정보가 포함

    • result image

      볼케이노 플롯. 두 그룹 간 차등 발현 유전자를 시각화한 그림으로, 각 점은 하나의 유전자를 나타내며 x축은 log2 fold change, y축은 -log10 보정 p값을 의미함. 이 그림은 그룹 수가 2개일 때만 생성 가능하므로, 여기서는 sample_id를 기준으로 두 그룹 간 발현 차이를 비교하여 DEGs를 시각화함

    scanpy_plotGeneExpr

     

    scanpy_plotGeneExprs 함수는 사용자가 지정한 유전자 발현을 scatter plot, dot plot, violin plot, 혹은 heatmap 형태로 시각화하는 기능을 제공합니다. 이 함수는 DEG(차등 발현 유전자)를 계산하지 않으며, 사용자가 직접 지정한 유전자 목록이나 사전에 수행된 DEG 분석 결과를 기반으로 발현 양상을 시각화합니다. 출력된 그래프는 자동으로 파일로 저장되며, 연구자는 이를 통해 각 세포 집단 간 발현 패턴을 직관적으로 비교하고 해석할 수 있습니다. 이러한 시각화는 후속 분석이나 결과 보고에 매우 유용하게 활용됩니다.

     

    주요사항

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_plotGeneExprs.py --input_dir /path/to/input_dir --output_dir/path/to/output_dir --feature FYN,DLG2,PLP1,CD74 --plot_type scatter

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일을 담고 있는 디렉토리 경로
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String feature none 쉼표로 구분된 문자열로 그릴 유전자 목록을 지정. (예: Pdcd1,Lag3) None이면 각 카테고리당 3개의 up/downregulated gene이 표시됨
    Option String plot_type scatter 유전자 발현을 시각화할 plot 유형 지정. [가능한 값: “scatter”, "dot", "violin", "heatmap"]
    Option String scatter_basis umap ([plot_type]이 scatter인 경우) 시각화에 사용할 임베딩 선택. 기본값: "umap"; 가능한 값: "umap", "tsne", "pca"
    Option Boolean dendrogram False ([plot_type]이 dot/violin/heatmap인 경우) True인 경우, [groupby] 내 hierarchical clustering에 기반한 dendrogram 추가
    Option Boolean stack_violin False ([plot_type]이 violin이고 [feature] 내 유전자가 2개 이상인 경우) - True: 여러 개의 violin plot을 하나의 plot 안에 시각화 - False: 유전자별로 시각화
    Option String groupby leiden ([plot_type]이 dot/violin/heatmap인 경우) 시각화 시 세포를 구분하는 그룹(예: 클러스터, 조건)을 지정
    Option String layer normalized/ scaled 시각화할 AnnData 내 expression matrix의 type. [가능한 값: "raw", "normalized", "scaled"] - [plot_type]이 scatter, violin: 기본값으로 log-normalized expression이 시각화됨. - [plot_type]이 dot, heatmap: 기본값으로 z-scaled expression이 시각화됨
    Option String thres none ([layer]이 scaled 이고 [plot_type]이 dot 또는 heatmap인 경우)) 시각화할 발현값의 절댓값 cutoff 지정
    Option String save .pdf 출력할 그림 파일의 확장자 지정. 기본값: ".pdf"

    결과

    • result image

      히트맵. 특정 유전자 (예: LYZ, CST3, MALAT1, CD3E)의 z-scaled 발현을 색상으로 한 눈에 비교

    • result image

      닷 플롯. 특정 유전자 (예: LYZ, CST3, MALAT1, CD3E)의 z-scaled 발현 수준을 점 크기와 색상으로 시각화

    • result image

      누적 바이올린 플롯. 특정 유전자 (예: LYZ, CST3, MALAT1, CD3E)의 log-normalized 발현 분포를 층별로 비교

    • result image

      산점도 플롯. 특정 유전자 (예: LYZ, CST3, MALAT1, CD3E)의 log-normalized 발현 분포와 수준(level)을 세포 단위로 확인

    scanpy_plotCellTypeProportion

     

    scanpy_plotCellTypeProportion 함수는 AnnData 객체 내 두 개의 범주형 변수(예: 클러스터와 세포 유형)를 기반으로 교차 빈도표(contingency table)를 생성합니다. 이를 통해 첫 번째 그룹의 각 카테고리(예: 세포유형)에 속한 세포들이 두 번째 그룹(예: 클러스터)의 각 카테고리에 얼마나 포함되는지 계산할 수 있습니다. 계산된 값은 절대 빈도(absolute counts)와 상대 점유율(relative proportions)로 제공되며, 이를 막대그래프로 시각화하여 각 클러스터에서 어떤 세포 유형이 어느 정도 분포하는지 직관적으로 확인할 수 있습니다. 

     

     

    주요사항

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_plotCellTypeProportion.py --input_dir /path/to/input_dir --output_dir /path/to/output_dir --group1 sample_id \ --group2 CellTypist

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일을 담고 있는 디렉토리 경로
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String group1 none AnnData 내 첫 번째로 세포를 구분하는 그룹(예: 클러스터, 조건)을 지정
    Option String group2 none AnnData 내 두 번째로 세포를 구분하는 그룹(예: 클러스터, 조건)을 지정
    Option Integer plot_width 9 Bar plot의 너비
    Option Integer plot_height 6 Bar plot의 높이

    결과

    • result image

      상대 점유율 표에 대한 막대 플롯. Group2 (예: sample_id) 에서 예측된 Group1 (예: CellTypist)별 세포 비율을 시각화

    • result image

      [ContTable/ConfMtx]_[group1]_[group2]_[Frequency/Occupany].csv 파일 내용. Group2 (예: sample_id) 에서 예측된 Group1 (예: CellTypist)별 세포 분포 및 비율을 정리한 표

    • result image

      절대 빈도 표에 대한 막대 플롯. Group2 (예: sample_id) 에서 예측된 Group1 (예: CellTypist)별 세포 분포를 시각화

    scanpy_extractGenes

    scanpy_extractGenes.py는 Scanpy를 이용한 전처리 및 정규화 과정 후, 분석에 사용되는 전체 유전자 목록을 추출하는 프로그램입니다. 이 스크립트는 특히 topGO 분석과 같은 하위 집합 기반 유전자 기능 분석에 필요한 입력 파일을 준비하는 과정에서 사용됩니다. 사용자는 먼저 scanpy_normalize를 통해 정규화된 AnnData 객체를 준비하고, 이를 기반으로 본 프로그램을 실행하여 전체 유전자의 리스트를 추출합니다. 추출된 유전자 리스트는 각 유전자에 대한 식별자 정보와 함께 CSV 또는 텍스트 파일 형태로 저장되며, 이후 topGO의 입력값으로 활용할 수 있습니다.

    주요사항

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    scanpy_extractGenes --input_dir /path/to/input_dir --output_dir /path/to/output_dir

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 입력 파일을 담고 있는 디렉토리 경로
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String test test 테스트

    결과

    • result image

      detected_gene_list.csv 파일 내용. scanpy_normalize 결과로부터 추출된 전체 유전자 목록

    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 등 다양한 통계적 방법을 지원합니다.

    주요사항

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    Rscript topGO_GOanalysis.r \ --input_dir /path/to/input_dir --gene_list_dir /path/to/input_dir \ --output_dir /path/to/output_dir \ --species human --subont BP --p_cutoff 0.05 --plot True --groupby leiden

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir 차등 발현 유전자(DEG) 목록 파일들이 저장되어 있는 디렉토리 경로
    Input Folder gene_list_dir /path/to/input_dir 분석에서 참조로 사용할 전체 유전자 목록 파일들이 저장되어 있는 디렉토리 경로
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String species human 현재 "mouse"(Mus musculus)와 "human"(Homo sapiens)을 지원함
    Option Float deg_pval_cutoff 0.05 GO 분석에 사용할 계산된 DEG의 조정된 P-value의 임계값 지정
    Option Float deg_logfc_abs_thr 0.5 GO 분석에 사용할 계산된 DEG의 조정된 logFC 절댓값의 임계값 지정
    Option String subont BP Gene Ontology의 서브 온톨로지. "BP"(Biological Process), "CC"(Cellular Component), "MF"(Molecular Function) 중 선택
    Option Float p_cutoff 0.05 계산된 Gene Ontology의 P-value(Fisher's exact test 사용) 임계값으로 이 값 이하의 항목은 저장되지 않음
    Option Boolean plot TRUE 계산된 GO term에 대한 막대그래프를 저장할지 여부. 상위 5개의 up/downregulated term 포함
    Option String groupby leiden 세포를 구분하는 그룹(예: 클러스터, 조건) 지정
    Option String plot_go_id FALSE 막대그래프 축 눈금에 GO ID 사용 여부
    Option Integer plot_width 16 그래프 파일의 가로 길이
    Option Integer plot_height 9 그래프 파일의 세로 길이

    결과

    • result image

      GO[subont]_[Down/Up]_reg_[groupby]-[group name].csv 파일 내용. 특정 클러스터([groupby]-[group name])에서 상향 또는 하향 조절된 유전자와 관련된 GO 항목의 ID, 용어, 주석된 유전자 수, 유의한 유전자 수, 기대값, Fisher.elim p-value를 포함한 표 형식 데이터

    • result image

      BarPlot_GO[subont]_[groupby]-[group name].png 파일. topGO 분석 결과(csv)에서 클러스터별 상향(Up) 및 하향(Down) 조절 유전자와 관련된 GO 항목 중 상위 5개를 추출하고, -log10(p-value) 기준으로 정렬하여 막대그래프 형태로 시각화한 PNG 파일

    scanpy_subsetAnnData

    scanpy_subsetAnnData는 특정 그룹 내 특정 카테고리의 세포들에 대해 raw UMI count matrix를 분리하고, 새로운 AnnData로 저장합니다. Subset 후 Normalization과 Scaling을 다시 수행하려면 원본 데이터(raw matrix)를 사용해야 합니다. 이미 가공된 데이터를 기반으로 subset을 수행하면, 기존 통계 정보가 남아 있어 새로운 subset에 적합하지 않은 결과가 나올 수 있습니다. 따라서 adata_qc_passed_concat.h5ad에 있는 가공되지 않은 원본 데이터로 subset을 수행해야 정확한 분석이 가능합니다.

    이 프로그램은 특정 세포 유형(예: T 세포)이나 조건별 하위 집단만 별도로 분석하고자 할 때 사용되며, 원하는 subset을 추출한 뒤 해당 데이터에 맞추어 정규화, 스케일링을 포함한 후속 분석 전 과정을 다시 수행할 수 있습니다.

     

    주요사항

    입력 데이터 예제

    • 예제 데이터가 없습니다.

    실행 명령어 예시

    python scanpy_subsetAnnData.py \ --input_dir /path/to/input_dir --merged_in /path/to/input_dir \ --output_dir /path/to/output_dir \ --groupby CellTypist --groups "Classical monocytes"

    실행 스크립트

    										  
    										  
    										

    파라미터

    옵션 유형 명칭 설명 필수값
    Input Folder input_dir /path/to/input_dir adata_cellType_annotated.h5ad 등의 입력 파일이 저장된 디렉토리 경로
    Input Folder merged_input_dir /path/to/input_dir QC 후 가공되지 않은 AnnData object(adata_qc_passed_concat.h5ad)가 저장된 디렉토리 경로
    Output Folder output_dir /path/to/output_dir 결과 파일이 저장될 디렉토리 경로
    Option String groupby CellTypist 추출하고자 하는 세포의 AnnData object 내 변수(컬럼) 이름
    Option String groups "Classical monocytes" 추출하고자 하는 세포의 AnnData object 내 변수(컬럼)의 특정 값. 다수일 경우 쉼표로 구분

    결과

    • result image

      adata_subset_CellTypist_Classical monocytes.h5ad 파일 내용. 특정 그룹/카테고리의 세포를 추출하여 생성한 AnnData 객체