여기에서는 R을 사용하여 마우스 피부 상처 치유의 단일 세포 시간 경과 전사체학 데이터 세트를 분석하기 위한 단계별 시각적 워크플로를 제시합니다. 이 프로토콜에는 Seurat를 사용한 데이터 세트 다운로드, 품질 관리, 시각화 및 세포 유형 주석과 CellChat을 사용한 세포-세포 상호 작용 분석을 위한 표준 파이프라인이 포함되어 있습니다.
Method Article
여기에서는 R을 사용하여 마우스 피부 상처 치유의 단일 세포 시간 경과 전사체학 데이터 세트를 분석하기 위한 단계별 시각적 워크플로를 제시합니다. 이 프로토콜에는 Seurat를 사용한 데이터 세트 다운로드, 품질 관리, 시각화 및 세포 유형 주석과 CellChat을 사용한 세포-세포 상호 작용 분석을 위한 표준 파이프라인이 포함되어 있습니다.
상처 치유 과정은 공간과 시간에 걸쳐 서로 다른 세포 유형 간의 복잡한 상호 작용에 의해 조절됩니다. 복잡한 환경 내에서 개별 세포의 프로파일링을 통해 단일 세포 전사체학 방법을 사용하면 세포 이질성, 세포 통신 네트워크 및 상처 치유 과정과 관련된 세포-세포 상호 작용을 조사할 수 있습니다. 그러나 많은 단일 세포 분석 도구는 컴퓨터 코딩 환경 내에서 실행되며 상처 치유 과학자들의 보다 광범위한 사용은 생물정보학 전문 지식의 명백한 부족으로 인해 방해를 받고 있습니다. 따라서 RStudio라는 그래픽 코딩 환경을 사용하여 측두적 마우스 절제 피부 상처 치유 데이터 세트의 기본 단일 세포 분석을 수행하는 방법을 보여주는 단계별 워크플로가 제시됩니다. 이 시각적 및 안내 프로토콜을 통해 생물정보학 배경 지식이 없는 과학자는 이전에 게시된 상처 치유 데이터 세트를 다운로드하고, 중요한 품질 관리 단계를 수행하고, Seurat를 사용하여 데이터 세트 시각화 및 세포 유형 주석을 포함한 표준 단일 세포 분석 워크플로를 실행하고, 세포 하위 유형 분석을 실행하고, 모듈 점수 분석을 실행하고, CellChat을 사용하여 세포-세포 상호 작용 분석을 실행하고, Seurat를 사용하여 여러 데이터 세트의 통합 분석을 수행할 수 있습니다. 프로토콜의 각 단계에 대한 설명이 제공되고 모든 코드 줄의 그래픽 결과가 표시되어 워크플로를 통해 사용자를 안전하게 안내합니다. 단일 세포 분석 파이프라인에 대한 이 시각적 소개의 목표는 더 많은 상처 치유 과학자가 자체 단일 세포 데이터 세트에 대한 심층 분석과 이전에 발표된 단일 세포 데이터 세트에 대한 보다 광범위한 재분석을 용이하게 하기 위해 자체 실험실에서 직접 생물 정보학 도구를 사용할 수 있도록 하는 것입니다.
상처 치유는 포유류 생물학에서 가장 복잡한 과정 중 하나이며 염증성, 증식성 및 해결 1,2의 세 가지 치유 단계를 포함합니다. 이러한 치유 단계는 상처 복구의 공간과 시간에 걸쳐 수십 가지 세포 유형과 수백 개의 분자 산물의 조정된 작용을 광범위하게 분류합니다3. 치유의 시간 경과에 걸쳐 상처 조직 샘플링을 기반으로 한 수십 년간의 조직학적 및 분자 연구는 조직 복구의 중요한 세포 패턴을 밝혔습니다3, 특히 절제 피부 상처 치유의 재현 가능한 마우스 모델에서 4,5,6. 지난 20년 동안에야 벌크 조직 7,8,9 및 세포 10,11,12,13,14의 규모에서 상처에 대한 고처리량 전사체 분석의 출현을 시작으로 상처 치유의 복잡성을 보다 완전히 이해하는 것이 가능해졌습니다. 가장 최근에는 여러 연구에서 단일 세포 수준에서 피부 상처를 전사적으로 프로파일링하여 새로운 상처 세포 아형을 식별하고 치유 중에 서로 상호 작용할 수 있는 방법을 보여주었습니다 15,16,17,18,19,20. Huet al. 혁신적인 공간 단일 세포 RNA 시퀀싱 접근법을 사용하여 상처 중심에서 여러 방사형 거리에서 치유 시간 동안 피부 상처를 프로파일링했으며, 이는 공간과 시간에 걸친 새로운 세포 간 및 분자 '움직임'을 밝혔습니다20. 이러한 연구는 상처 치유의 복잡성을 전례 없는 세부 사항으로 밝히고 있으며 엄청난 세포 및 분자 이질성의 그림을 그리기 시작했습니다.
생물정보학 분석 방법의 최근 주요 발전으로 상처 치유 연구 분야에서 생성되는 복잡한 다중 오믹 데이터 세트를 생물학적으로 이해할 수 있게 되었습니다. Seurat와 같은 단일 세포 분석 패키지는 상처와 같은 복잡한 조직의 세포 유형 분류를 포함하여 데이터 세트의 강력한 분석 및 통합을 위한 도구를 제공합니다21. 단일 세포 데이터의 다운스트림 해석을 위해 CellChat과 같은 도구를 사용하여 세포가 상처를 복구하기 위해 어떻게 조정하는지 설명할 수 있는 추정 세포-세포 상호 작용 프로그램을 식별합니다22. 이러한 도구는 잘 문서화되고 잘 인용되지만 유전체학 및 전사체학의 생물정보학 분야에서 가장 일반적으로 사용되는 통계 및 그래픽 프로그래밍 언어인 R과 같은 컴퓨터 코딩 환경 내에서 실행되어야 합니다. 상처 치유 분야의 생물학자와 임상의는 조직 복구를 연구하기 위해 단일 세포 접근법을 점점 더 많이 사용하고 있지만, 자체 실험실에서 직접 Seurat 및 CellChat과 같은 도구를 사용하는 데 필요한 생물정보학 교육을 받은 사람은 거의 없습니다. 이러한 생물정보학 도구를 사용하는 데 있어 이러한 장벽은 과학자들이 생물정보학자의 도움 없이 자신의 데이터 세트를 더 심층적으로 분석하는 것을 방해할 뿐만 아니라 과학자들이 다른 그룹에서 이미 발표한 풍부한 단일 세포 데이터를 안정적으로 재분석하는 것을 방해합니다.
따라서, 생물정보학 배경이 없는 과학자들이 이전에 발표되고 공개적으로 이용 가능한 단일 세포 상처 치유 데이터 세트(20)를 분석할 수 있도록 단계별 워크플로우가 여기에 제시된다. 이 프로토콜은 RStudio라는 널리 사용되는 무료 그래픽 R 코딩 환경을 사용하며, Seurat 및 CellChat을 사용하여 복잡한 단일 셀 데이터 세트의 기본 분석을 가능하게 하는 규정된 코드 줄을 실행하기 위해 이 환경을 탐색하는 방법을 보여줍니다. 이 프로토콜 내에서 상처 치유 연구와 관련된 7가지 주요 방법이 제시되며, 여기에는 1) 코딩 환경 설치, 2) 데이터 세트 및 중요한 품질 관리 단계 다운로드, 3) 시각화 및 세포 유형 주석을 포함한 단일 세포 분석 워크플로, 4) 세포 하위 유형 분석, 5) 모듈 점수 분석, 6) 세포-세포 상호 작용 분석, 7) 여러 데이터 세트의 통합 분석. 각 방법 내에서 사용자가 프로토콜과 나란히 실행할 수 있도록 실제 코드가 제공되며, 모든 코드 줄의 실제 그래픽 결과가 표시되어 워크플로를 통해 사용자를 안내합니다. RStudio에 대한 이 안내 및 시각적 소개 및 기본 단일 세포 분석 워크플로우의 주요 목표는 더 많은 상처 치유 과학자가 연구 분야에서 더 빠른 발전을 가능하게 하기 위해 이러한 강력한 도구를 직접 사용할 수 있도록 하는 것입니다.
메모: 7가지 생물정보학 방법을 자세히 설명하는 다음 워크플로에서 프로토콜의 모든 단계에는 나열된 순서대로 사용자 자신의 RStudio 인터페이스에서 직접 실행되어야 하는 해당 코드 블록이 함께 제공됩니다. 이 프로토콜을 가능한 한 사용자 친화적으로 만들기 위해 R 스크립트 파일(보충 파일 1: JoVE_Rscript.R)이 포함되어 있으며, 이 파일은 사용자의 RStudio 세션에 직접 로드될 수 있으므로 각 코드 줄을 간단히 실행할 수 있습니다. 이렇게 하면 사용자가 프로토콜 문서에서 코드를 입력하거나 복사하여 붙여넣을 필요가 없으므로 오류가 발생할 수 있습니다. 모든 프로토콜 지침은 각 주석 줄의 시작 부분에 해시태그 '#' 기호로 표시되는 주석 형식으로 R 스크립트 파일에 포함됩니다.
1. R, RStudio 및 단일 세포 분석 워크플로우에 필요한 R 패키지 설치
setwd("C:/[Directory]")setwd("~/[Directory]")getwd()install.packages("devtools")
install.packages("readxl")
install.packages("openxlsx")
install.packages("tidyverse")
install.packages("scCustomize")if (! requireNamespace("BiocManager", quietly = TRUE) )
install.packages("BiocManager")
BiocManager::install("NMF", update=F)
BiocManager::install("ComplexHeatmap", update=F)
BiocManager::install("BiocNeighbors", update=F)
BiocManager::install("SingleCellExperiment", update=F)
BiocManager::install("circlize", update=F)
BiocManager::install("edgeR", update=F)
BiocManager::install("scDblFinder", update=F)install.packages("Seurat")
devtools::install_github("jinworks/CellChat")library(readxl)
library(openxlsx)
library(tidyverse)
library(scCustomize)
library(edgeR)
library(scDblFinder)
library(Seurat)
library(CellChat)2. 단일 세포 상처 치유 데이터 세트에 로딩 및 품질 관리 단계 수행
메모: 이 생물정보학 워크플로를 위해 이전에 발표된 시공간 단일 세포 피부 상처 치유 실험의 재분석이 수행됩니다20. 데이터 세트 파일은 선별된 NCBI GEO(Gene Expression Omnibus) 저장소(https://www.ncbi.nlm.nih.gov/geo/)에 저장됩니다.
b1_data_dir <- file.path(getwd(), "b1")b1 <- Read10X_GEO(data_dir = b1_data_dir, gene.column = 2)dataset_rna_counts <- b1$GSM6190913_b1_$`Gene Expression`
dataset_barcodes <- b1$GSM6190913_b1_$`Antibody Capture`dataset <- CreateSeuratObject(counts = dataset_rna_counts, min.cells = 5, min.features = 200)dataset_rna_counts2 <- LayerData(dataset, data = "RNA")
dataset_joint.barcodes <- intersect(colnames(dataset_rna_counts2), colnames(dataset_barcodes))dataset_rna_counts2 <- dataset_rna_counts2[, dataset_joint.barcodes]
dataset_barcodes2 <- as.matrix(dataset_barcodes[, dataset_joint.barcodes])rownames(dataset_barcodes2)dataset_barcode_assay <- CreateAssayObject(counts = dataset_barcodes2)
dataset[["barcodes"]] <- dataset_barcode_assayDefaultAssay(dataset)dataset <- HTODemux(dataset, assay = "barcodes", positive.quantile = 0.99)Idents(dataset) <- "barcodes_classification.global"
dataset <- subset(dataset, idents = "Negative", invert = TRUE)Idents(dataset) <- "barcodes_maxID"VlnPlot(dataset, features = "nFeature_RNA", pt.size = 0.1, log = TRUE)Idents(dataset) <- "barcodes_maxID"
levels(dataset)
dataset <- RenameIdents(dataset,
"Barcode-1" ="D01_2mm",
"Barcode-2" ="D01_4mm",
"Barcode-3" ="D01_6mm",
"Barcode-4" ="D01_8mm",
"Barcode-5" ="D03_2mm",
"Barcode-6" ="D03_4mm",
"Barcode-7" ="D03_6mm",
"Barcode-8" ="D03_8mm",
"Barcode-9" ="D07_2mm",
"Barcode-10" ="D07_4mm",
"Barcode-11" ="D07_6mm",
"Barcode-12" ="D07_8mm",
"Barcode-13" ="D14_2mm",
"Barcode-14" ="D14_4mm",
"Barcode-15" ="D14_6mm",
"Barcode-16" ="D14_8mm",
"Barcode-17" ="UW")
levels(dataset)
dataset[["time_space"]] <- Idents(dataset)dataset <- CreateSeuratObject(counts = b1, min.cells = 5, min.features = 200)DefaultAssay(dataset) <- "RNA"
Idents(dataset) <- "data"dataset[["percent.mt"]] <- PercentageFeatureSet(dataset, pattern = "^mt-")plot1 <- FeatureScatter(dataset, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(dataset, feature1 = "nFeature_RNA", feature2 = " percent.mt ")
plot1 + plot2dataset <- subset(dataset, subset = nFeature_RNA > 200 & percent.mt < 25)plot1 <- FeatureScatter(dataset, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(dataset, feature1 = "nFeature_RNA", feature2 = " percent.mt ")
plot1 + plot2DefaultAssay(dataset) <- "RNA"
sce <- scDblFinder(GetAssayData(dataset, assay="RNA", slot="counts"), samples=Idents(dataset))dataset$scDblFinder.score <- sce$scDblFinder.scoreVlnPlot(dataset, features = "scDblFinder.score", raster=FALSE, pt.size=0.5)dataset <- subset(dataset, scDblFinder.score < 0.25)saveRDS(dataset, "dataset_post_Method2.rds")3. Seurat를 사용한 단일 세포 상처 치유 데이터 세트 분석
참고: (선택적 단계) 여기에서 워크플로를 시작하는 경우 저장된 RDS 파일을 Seurat 개체로 로드합니다.
dataset <- readRDS("dataset_post_Method2.rds")
dataset <- NormalizeData(object = dataset)
dataset <- FindVariableFeatures(object = dataset)
dataset <- ScaleData(object = dataset)
dataset <- RunPCA(object = dataset)ElbowPlot(dataset, reduction = "pca", ndims = 50)dataset <- FindNeighbors(dataset, verbose = TRUE, dims = 1:13)
dataset <- FindClusters(dataset, verbose = TRUE, resolution = 0.1)dataset <- RunUMAP(dataset, verbose = TRUE, dims = 1:13, seed.use = 123)DimPlot(dataset, group.by = "seurat_clusters", raster = FALSE, label = TRUE)DimPlot(dataset, group.by = "time_space", raster = FALSE, label = FALSE)table(dataset$time_space, dataset$seurat_clusters)Idents(dataset) <- "seurat_clusters"
Cell_markers <- FindAllMarkers(dataset, max.cells.per.ident = 500, only.pos = TRUE, min.pct = 0.10, logfc.threshold = 0.25)
write.csv(Cell_markers, file = file.path(getwd(), "dataset_cluster_markers.txt"))Idents(dataset) <- "seurat_clusters"
dataset[["cell_types"]] <- Idents(dataset)
Idents(dataset) <- "cell_types"
dataset <- RenameIdents(dataset,
"0" = "Macrophage",
"1" = "Neutrophil",
"2" = "Fibroblast",
"3" = "Epithelial cell",
"4" = "Endothelial cell",
"5" = "T cell",
"6" = "Fibroblast",
"7" = "Smooth muscle cell"
)
levels(dataset)
dataset[["cell_types"]] <- Idents(dataset)DimPlot(dataset, group.by = "cell_types", raster = FALSE, label = FALSE)DefaultAssay(dataset) <- "RNA"
FeaturePlot(dataset, features = c("Arg1", "Retnlg", "Fgf7", "Dsp", "Tie1", "Cd3g", "Cdh4", "Rgs5"), raster=FALSE, ncol = 4)DotPlot(dataset, group.by = "seurat_clusters", features = c("Arg1","Retnlg","Fgf7","Dsp","Tie1", "Cd3g","Cdh4","Rgs5")) + RotatedAxis() + scale_colour_gradient2(low = "blue", mid = "grey", high = "red")DotPlot(dataset, group.by = "cell_types", features = c("Arg1","Retnlg","Fgf7","Dsp","Tie1", "Cd3g","Cdh4","Rgs5")) + RotatedAxis() + scale_colour_gradient2(low = "blue", mid = "grey", high = "red")Idents(dataset) <- "time_space"
dataset[["DPW"]] <- Idents(dataset)
Idents(dataset) <- "DPW"
new.cluster.ids <- c("D1", "D1", "D1", "D1", "D3", "D3", "D3", "D3", "D7", "D7", "D7", "D7", "D14", "D14", "D14", "D14", "UW")
names(new.cluster.ids) <- levels(dataset)
dataset <- RenameIdents(dataset, new.cluster.ids)
dataset[["DPW"]] <- Idents(dataset)
Idents(dataset) <- "DPW"DimPlot(dataset, group.by = "DPW", raster = FALSE, label = FALSE)table(dataset$DPW, dataset$cell_types)
Idents(dataset) <- "DPW"
Cell_DPW_markers <- FindAllMarkers(dataset, max.cells.per.ident = 500, only.pos = TRUE, min.pct = 0.10, logfc.threshold = 0.25)
write.csv(Cell_DPW_markers, file = file.path(getwd(), "dataset_DPW_markers.txt"))pt1 <- table(dataset$DPW, dataset$cell_types)
pt1 <- as.data.frame(pt1)
pt1$Var1 <- as.character(pt1$Var1)
ggplot(pt1, aes(x = Var2, y = Freq, fill = Var1)) +
theme_bw(base_size = 15) +
geom_col(position = "fill", width = 0.5) +
xlab("Sample") + RotatedAxis() +
ylab("Proportion") +
theme(legend.title = element_blank())pt2 <- table(dataset$cell_types, dataset$DPW)
pt2 <- as.data.frame(pt2)
pt2$Var1 <- as.character(pt2$Var1)
ggplot(pt2, aes(x = Var2, y = Freq, fill = Var1)) +
theme_bw(base_size = 15) +
geom_col(position = "fill", width = 0.5) +
xlab("Sample") +
ylab("Proportion") +
theme(legend.title = element_blank())saveRDS(dataset, "dataset_post_Method3.rds")4. Seurat를 사용한 세포 아형 분석
메모: 단일 세포 분석의 힘은 위에서 분석한 주요 세포 유형 내에서 희귀 아형을 발견하고 분석할 수 있게 해줍니다. 이 예는 단일 범주로 결합되기 전에 처음에는 두 개의 Seurat 클러스터로 클러스터링된 섬유아세포에 초점을 맞춥니다. 프로토콜의 이 부분은 다른 모든 세포 유형을 제외하고 섬유아세포에 특히 초점을 맞추고 상처 치유 동안 섬유아세포의 정체성과 시간적 특성을 탐구합니다. 선택적 단계로, 필요한 경우 저장된 RDS 파일을 Seurat 객체로 로드합니다.
dataset <- readRDS("dataset_post_Method3.rds")
dataset_fibroblast <- subset(dataset, idents = "Fibroblast")dataset_fibroblast <- RunPCA(dataset_fibroblast, verbose = TRUE)
ElbowPlot(dataset_fibroblast, reduction = "pca", ndims = 50)dataset_fibroblast <- FindNeighbors(dataset_fibroblast, verbose = TRUE, dims = 1:9)
dataset_fibroblast <- FindClusters(dataset_fibroblast, verbose = TRUE, resolution = 0.1)dataset_fibroblast <- RunUMAP(dataset_fibroblast, verbose = TRUE, dims = 1:9, seed.use = 123)DimPlot(dataset_fibroblast, group.by = "seurat_clusters", raster = FALSE, label = TRUE)DimPlot(dataset_fibroblast, group.by = "DPW", raster = FALSE, label = FALSE)Idents(dataset_fibroblast) <- "seurat_clusters"
fibroblast_markers <- FindAllMarkers(dataset_fibroblast, max.cells.per.ident = 500, only.pos = TRUE, min.pct = 0.10, logfc.threshold = 0.25)
write.csv(fibroblast_markers, file = file.path(getwd(), "fibroblast_cluster_markers.txt"))FB_type_marker <- c("Plac8", "Cthrc1", "Adam12", "Ifi211", "Plat", "Cdh4", "Aldh3a1", "Ppp1r14a", "Oxtr", "Serpina3c", "Sostdc1", "Scube3", "Ptprz1", "Corin", "Alx4")DotPlot(dataset_fibroblast, group.by="seurat_clusters", features = FB_type_marker) + RotatedAxis() + scale_colour_gradient2(midpoint = 0, low = "blue", mid = "grey", high = "red")
DotPlot(dataset_fibroblast, group.by="DPW", features = FB_type_marker) + RotatedAxis() + scale_colour_gradient2(midpoint = 0, low = "blue", mid = "grey", high = "red")DotPlot(dataset, group.by="cell_types", features = FB_type_marker) + RotatedAxis() + scale_colour_gradient2(midpoint = 0, low = "blue", mid = "grey", high = "red")pt3 <- table(dataset_fibroblast$seurat_clusters, dataset_fibroblast$DPW)
pt3 <- as.data.frame(pt3)
pt3$Var1 <- as.character(pt3$Var1)
ggplot(pt3, aes(x = Var2, y = Freq, fill = Var1)) +
theme_bw(base_size = 15) +
geom_col(position = "fill", width = 0.5) +
xlab("Sample") +
ylab("Proportion") +
theme(legend.title = element_blank())pt4 <- table(dataset_fibroblast$DPW, dataset_fibroblast$seurat_clusters)
pt4 <- as.data.frame(pt4)
pt4$Var1 <- as.character(pt4$Var1)
ggplot(pt4, aes(x = Var2, y = Freq, fill = Var1)) +
theme_bw(base_size = 15) +
geom_col(position = "fill", width = 0.5) +
xlab("Sample") +
ylab("Proportion") +
theme(legend.title = element_blank())saveRDS(dataset_fibroblast, "dataset_fibroblast_post_Method4.rds")5. 모듈 채점을 통한 후속 분석 예시
메모: 단일 셀 데이터 세트를 분석하는 데 유용한 방법 중 하나는 모듈 스코어링입니다. 이 워크플로에서는 이전 지식에 따라 유전자 목록을 정의한 다음 모듈 점수를 계산하여 각 세포 내에서 유전자 목록의 잠재적 농축을 식별할 수 있습니다. 이러한 점수는 세포 주석 전반에 걸쳐 평균을 내어 잠재적인 농축 패턴을 드러낼 수 있습니다.
여기에서는 이전에 발표된 연구2의 유전자 목록을 사용하는데, 여기서 상처 치유 단계 특이적 유전자는 치유 연속체 전체에서 벌크 RNA 시퀀싱 샘플을 사용하여 식별되었습니다. 유전자 목록은 탭으로 구분된 텍스트 파일(보충 파일 2: JoVE_PhaseSpecificGenes.txt)에 저장되었으며, 이제 작업 디렉토리에 다운로드할 수 있으며 세 가지 주요 치유 단계를 식별하는 유전자 목록을 생성하는 데 사용할 수 있습니다.
PhaseSpecificGenes <- read_delim("JoVE_PhaseSpecificGenes.txt", delim="\t", col_names = T)PS_Inflammatory <- PhaseSpecificGenes[1]
PS_Inflammatory_ms <- lapply(PS_Inflammatory, str_to_sentence)
PS_Proliferative <- PhaseSpecificGenes[2]
PS_Proliferative_ms <- lapply(PS_Proliferative, str_to_sentence)
PS_Resolution <- PhaseSpecificGenes[3]
PS_Resolution_ms <- lapply(PS_Resolution, str_to_sentence)dataset <- readRDS("dataset_post_Method3.rds")dataset <- AddModuleScore(
object = dataset,
features = PS_Inflammatory_ms,
ctrl = 100,
name = 'Inflammatory'
)
dataset <- AddModuleScore(
object = dataset,
features = PS_Proliferative_ms,
ctrl = 100,
name = 'Proliferative'
dataset <- AddModuleScore(
object = dataset,
features = PS_Resolution_ms,
ctrl = 100,
name = 'Resolution'
)DotPlot(dataset, group.by="DPW", features = c("Inflammatory1","Proliferative1", "Resolution1")) + RotatedAxis() + scale_colour_gradient2(midpoint = 0, low = "blue", mid = "grey", high = "red")
DotPlot(dataset, group.by="cell_types", features = c("Inflammatory1","Proliferative1", "Resolution1")) + RotatedAxis() + scale_colour_gradient2(midpoint = 0, low = "blue", mid = "grey", high = "red")6. CellChat을 통한 후속 분석 예시
메모: 단일 세포 데이터 세트 분석을 위한 또 다른 유용하고 잘 인용되는 방법은 세포-세포 상호 작용을 추론하는 것입니다. 이 워크플로우에서, 세포군22 사이의 차등 리간드-수용체 상호작용을 분석하여 세포-세포 통신을 추론하는 CellChat 패키지를 사용한다. 최근 CellChat의 개발자는 일반화된 사용을 위한 자세한 단계별 프로토콜을 게시했으며24, 이는 사용자가 다음 워크플로를 통해 작업하고 이를 데이터 세트에 적용할 때 훌륭한 리소스입니다. 예를 들어, 다음 워크플로는 상처 후 1일 대 14일(DPW)에 상처에 있는 모든 주요 세포의 상호 작용을 비교합니다. 모든 단계는 공식 CellChat 간행물24 와 여기에 링크된 튜토리얼에 이미 설명되어 있기 때문에 각 단계는 자세히 설명되지 않습니다.
다음을 이용한 세포-세포 통신의 추론 및 분석
셀챗: https://github.com/jinworks/CellChat/blob/master/tutorial/CellChat-vignette.html
CellChat을 사용한 여러 데이터 세트의 비교 분석:
https://github.com/jinworks/CellChat/blob/master/tutorial/Comparison_analysis_of_multiple_datasets.html
선택적 단계: 필요한 경우 저장된 RDS 파일을 Seurat 객체로 로드합니다.
dataset <- readRDS("dataset_post_Method3.rds")
Idents(dataset) <- "DPW"
dataset_D1 <- subset(dataset, ident = "D1")
dataset_D14 <- subset(dataset, ident = "D14")Idents(dataset_D1) <- "cell_types"
Idents(dataset_D14) <- "cell_types"cellchat_D1 <- createCellChat(dataset_D1, group.by = "ident", assay = "RNA")
cellchat_D14 <- createCellChat(dataset_D14, group.by = "ident", assay = "RNA")
CellChatDB <- CellChatDB.mouse
CellChatDB.use <- CellChatDB
cellchat_D1@DB <- CellChatDB.use
cellchat_D14@DB <- CellChatDB.use
cellchat_D1 <- subsetData(cellchat_D1)
cellchat_D14 <- subsetData(cellchat_D14)
future::plan("multisession", workers = 4)
cellchat_D1 <- identifyOverExpressedGenes(cellchat_D1, do.fast = F)
cellchat_D14 <- identifyOverExpressedGenes(cellchat_D14, do.fast = F)
cellchat_D1 <- identifyOverExpressedInteractions(cellchat_D1)
cellchat_D14 <- identifyOverExpressedInteractions(cellchat_D14)
cellchat_D1 <- computeCommunProb(cellchat_D1, type = "triMean", population.size = TRUE)
cellchat_D14 <- computeCommunProb(cellchat_D14, type = "triMean", population.size = TRUE)
cellchat_D1 <- filterCommunication(cellchat_D1, min.cells = 10)
cellchat_D14 <- filterCommunication(cellchat_D14, min.cells = 10)
cellchat_D1 <- computeCommunProbPathway(cellchat_D1)
cellchat_D14 <- computeCommunProbPathway(cellchat_D14)
cellchat_D1 <- aggregateNet(cellchat_D1)
cellchat_D14 <- aggregateNet(cellchat_D14)
cellchat_D1 <- netAnalysis_computeCentrality(cellchat_D1, slot.name = "netP")
cellchat_D14 <- netAnalysis_computeCentrality(cellchat_D14, slot.name = "netP")netAnalysis_signalingRole_scatter(cellchat_D1)
netAnalysis_signalingRole_scatter(cellchat_D14)cellchat_D1@netP$pathways
cellchat_D14@netP$pathwayspathways.show <- c("COLLAGEN")par(mfrow=c(1,2))
netVisual_aggregate(cellchat_D1, signaling = pathways.show, layout = "circle")
netVisual_aggregate(cellchat_D14, signaling = pathways.show, layout = "circle")
par(mfrow=c(1,1))par(mfrow=c(1,2))
strwidth <- function(x) {0.5}
netVisual_aggregate(cellchat_D1, signaling = pathways.show, layout = "chord", vertex.label.cex = 0.6)
netVisual_aggregate(cellchat_D14, signaling = pathways.show, layout = "chord", vertex.label.cex = 0.6)
par(mfrow=c(1,1))par(mfrow=c(1,2))
strwidth <- function(x) {0.5}
netVisual_aggregate(cellchat_D1, signaling = pathways.show, layout = "chord", vertex.label.cex = 0.6, sources.use = 3)
netVisual_aggregate(cellchat_D14, signaling = pathways.show, layout = "chord", vertex.label.cex = 0.6, sources.use = 3)
par(mfrow=c(1,1))gg1 <- netVisual_bubble(cellchat_D1, sources.use = 3, targets.use = NULL, signaling = pathways.show, remove.isolate = FALSE)
gg2 <- netVisual_bubble(cellchat_D14, sources.use = 3, targets.use = NULL, signaling = pathways.show, remove.isolate = FALSE)
gg1 + gg2par(mfrow=c(1,2))
strwidth <- function(x) {0.4}
netVisual_chord_gene(cellchat_D1, sources.use = 3, targets.use = NULL, signaling = pathways.show, lab.cex = 0.6, show.legend= F)
netVisual_chord_gene(cellchat_D14, sources.use = 3, targets.use = NULL, signaling = pathways.show, lab.cex = 0.6, legend.pos.x = 60)
par(mfrow=c(1,1))LR.show <- "COL1A1_CD44"strwidth <- function(x) {0.5}
netVisual_individual(cellchat_D1, signaling = pathways.show, pairLR.use = LR.show, layout = "chord")
netVisual_individual(cellchat_D14, signaling = pathways.show, pairLR.use = LR.show, layout = "chord")object.list_D14_v_D1 <- list(D1 = cellchat_D1, D14 = cellchat_D14)
cellchat_D14_v_D1 <- mergeCellChat(object.list_D14_v_D1, add.names = names(object.list_D14_v_D1))gg1 <- compareInteractions(cellchat_D14_v_D1, show.legend = F)
gg2 <- compareInteractions(cellchat_D14_v_D1, show.legend = F, measure = "weight")
gg1 + gg2netVisual_diffInteraction(cellchat_D14_v_D1, weight.scale = T, measure = "weight")netVisual_heatmap(cellchat_D14_v_D1, measure = "weight")rankNet(cellchat_D14_v_D1, mode = "comparison", measure = "weight", sources.use = 3, targets.use = NULL, stacked = T, do.stat = TRUE)gg1 <- netVisual_bubble(cellchat_D14_v_D1, sources.use = 3, targets.use = NULL, signaling = pathways.show, comparison = c(1, 2), max.dataset = 2, title.name = "Increased signaling in D14", angle.x = 45, remove.isolate = F)
gg2 <- netVisual_bubble(cellchat_D14_v_D1, sources.use = 3, targets.use = NULL, signaling = pathways.show, comparison = c(1, 2), max.dataset = 1, title.name = "Decreased signaling in D14", angle.x = 45, remove.isolate = F)
gg1 + gg2saveRDS(cellchat_D1, "cellchat_D1.rds")
saveRDS(cellchat_D14, "cellchat_D14.rds")
saveRDS(cellchat_D14_v_D1, "cellchat_D14_v_D1.rds")cellchat_D1 <- readRDS("cellchat_D1.rds")
cellchat_D14 <- readRDS("cellchat_D14.rds")
cellchat_D14_v_D1 <- readRDS("cellchat_D14_v_D1.rds")7. 여러 단일 셀 데이터 세트를 결합한 통합 분석의 예
메모: 단일 셀 데이터 세트는 배치 또는 그룹으로 시퀀싱되었기 때문에 여러 파일로 분리되는 경우가 많습니다. 이 워크플로우는 상처 치유 데이터 세트 (20)의 5개 배치 중 2개를 통합하는 방법을 보여준다. 데이터 세트 통합을 위한 현재 방법은 다음 Seurat 삽화로 설명됩니다.
scRNA-seq 통합 소개:
https://satijalab.org/seurat/articles/integration_introduction
Seurat v5의 통합 분석:
https://satijalab.org/seurat/articles/seurat5_integration
메모: 수많은 단일 셀 데이터 세트 통합 방법이 있으며 각각 고유한 강점과 약점이 있습니다. 자세한 내용은 통합 방법25의 종합 벤치마크를 참조하십시오. 사용자가 하나의 통합 방법에 의존하기 전에 모든 관련 문서를 읽는 것이 중요합니다.
dataset <- readRDS("dataset_post_Method2.rds")
dataset_b3 <- readRDS("dataset_b3_post_Method2.rds")dataset@meta.data$batch <- "b1"
dataset_b3@meta.data$batch <- "b3"dataset_merged <- merge(x = dataset, y = c(dataset_b3), add.cell.ids = c("b1", "b3"), merge.data = TRUE)
DefaultAssay(dataset_merged) <- "RNA"
dataset_merged <- NormalizeData(dataset_merged)
dataset_merged <- FindVariableFeatures(dataset_merged)
dataset_merged <- ScaleData(dataset_merged)
dataset_merged <- RunPCA(dataset_merged)
ElbowPlot(dataset_merged, reduction = "pca", ndims = 50)dataset_merged <- FindNeighbors(dataset_merged, dims = 1:10, reduction = "pca")
dataset_merged <- FindClusters(dataset_merged, resolution = .1, cluster.name = "unintegrated_clusters")
dataset_merged <- RunUMAP(dataset_merged, dims = 1:10, seed.use = 123, reduction = "pca", reduction.name = "umap.unintegrated")DimPlot(dataset_merged, reduction = "umap.unintegrated", group.by = c("seurat_clusters", "batch"))table(dataset_merged$batch, dataset_merged$seurat_clusters)dataset_merged <- IntegrateLayers(
object = dataset_merged, method = RPCAIntegration,
orig.reduction = "pca", new.reduction = "integrated.rpca",
verbose = TRUE
)FindNeighbors(dataset_merged, dims = 1:10, reduction = "integrated.rpca")
dataset_merged <- FindClusters(dataset_merged, resolution = .1, cluster.name = "rpca_clusters")
dataset_merged <- RunUMAP(dataset_merged, dims = 1:10, seed.use = 123, reduction = "integrated.rpca", reduction.name = "umap.rpca")DimPlot(dataset_merged, reduction = "umap.rpca", group.by = c("seurat_clusters","batch"))table(dataset_merged$batch, dataset_merged$seurat_clusters)dataset_merged <- JoinLayers(dataset_merged)saveRDS(dataset_merged, "merged_dataset_post_Method7.rds")방법 #2부터 프로토콜은 단일 세포 상처 치유 데이터 세트에 대한 로드 및 품질 관리 단계를 수행하는 단계를 안내합니다. Seurat 객체를 생성한 후(단계 2.6.2), 일련의 단계는 데이터 세트 내의 두 분석(RNA 및 단백질, 단계 2.6.3-2.6.7)을 병합하고 시공간 바코드에 따라 단백질 분석의 복합체 제거를 수행합니다(단계 2.6.8-2.6.9). decomplexing 함수는 각 셀의 가장 가능성이 높은 시공간 바코드를 식별하는 "barcodes_maxID"을 포함하여 데이터 세트의 각 셀에 여러 메타데이터 레이블을 할당합니다(단계 2.6.10). 2.6.11 단계에서는 바이올린 플롯 기능을 수행하여 다중화된 바코드를 기반으로 세포에서 검출된 유전자의 분포를 시각화합니다. 이 단계의 대표적인 결과(보충 그림 1)는 각 바코드에 대해 검출된 유전자가 상당히 고르게 분포되어 있음을 보여주며, 이는 데이터 세트 무결성 및 상처 치유 시점의 다운스트림 분석에 중요합니다. 단백질 바코드에 적절한 라벨을 할당한 후(단계 2.6.12), 프로토콜은 각 세포에서 미토콘드리아 유전자의 백분율을 계산하는 것부터 시작하여 데이터 세트의 RNA 분석에 대한 품질 관리 단계를 수행하는 방법을 보여줍니다(단계 2.9). 2.10 단계에서는 모든 세포에서 검출된 유전자의 분포, RNA 수 및 미토콘드리아 백분율을 시각화하기 위해 특징 산점도 기능을 수행합니다. 이 단계의 대표적인 결과(보충 그림 2)는 미토콘드리아 함량이 큰 세포가 다수 있음을 보여주며, 이는 낮은 RNA 수와 상관관계가 있고 죽거나 죽어가는 세포를 식별합니다. RNA 수가 낮고 미토콘드리아 함량이 큰 세포를 제거한 후(단계 2.11), 단계 2.12에서 하위 집합 데이터 세트에서 또 다른 특징 산점도 함수가 수행되며, 이 단계의 대표적인 결과(보충 그림 3)는 검출된 유전자의 분포와 세포당 백분율 미토콘드리아 RNA가 이제 더 정상적임을 보여주며, 강력한 다운스트림 분석을 위한 길을 열어줍니다. 다음으로, 프로토콜은 데이터 세트에서 가능한 이중항을 식별하기 위해 scDblFinder 함수를 사용하고 각 셀에 "scDblFinder.score"라는 새 메타데이터를 할당하는 방법을 설명합니다(단계 2.13-2.14). 2.15 단계에서는 바이올린 플롯 함수를 수행하여 데이터 세트에서 이중항 점수의 분포를 시각화하고, 이 단계의 대표적인 결과(보충도 4)는 상대적으로 높은 이중항 점수를 가진 세포가 다수 존재하며, 0.25는 이중항 가능성이 있는 집단이 있는 자연 컷오프로 보인다는 것을 보여준다. 따라서 다음 단계에서는 이 매개변수를 사용하여 데이터 세트를 컷오프 아래의 셀로 하위 집합화하고(2.16단계) 이 단일 셀 데이터 세트에 대한 품질 관리 단계를 완료합니다.
방법 #3부터 프로토콜은 Seurat 패키지 및 워크플로를 사용하여 품질 제어 단일 세포 상처 치유 데이터 세트를 분석하는 단계를 안내합니다. RNA 데이터의 정규화 및 스케일링 후 PCA 분석이 수행됩니다(단계 3.1). 3.2 단계에서 엘보우 플롯 함수를 사용하여 처음 50개의 PCA 차원에 대한 데이터 세트 변동의 양을 시각화하고 이 단계의 대표 결과(보충 그림 5)는 주요 변동의 대부분이 그래프의 굴곡으로 식별되는 처음 13차원 내에서 발생한다는 것을 보여줍니다. 그런 다음 프로토콜은 처음 13개의 PCA 차원과 상대적으로 낮은 클러스터링 해상도 매개변수 0.1을 사용하여 데이터 세트의 이웃을 찾고 세포 클러스터링(단계 3.3) 및 UMAP 차원 축소(단계 3.4)를 수행하는 방법을 보여줍니다. 3.5 단계에서는 UMAP 플롯에서 셀의 클러스터링을 시각화하기 위해 차원 플롯 기능을 수행하고, 이 단계의 대표적인 결과(그림 1)는 데이터 세트의 모든 셀이 Windows(왼쪽)와 MacOS(오른쪽)를 실행하는 컴퓨터에서 얻은 UMAP 플롯이 약간 다른 8개의 주요 색상으로 구분된 Seurat 클러스터 그룹을 중심으로 클러스터링되어 있음을 보여줍니다. 3.6 단계에서는 세포의 상처 시간/공간 주석을 시각화하기 위해 또 다른 차원 플롯 기능을 수행하고, 이 단계의 대표적인 결과(그림 2)는 데이터 세트의 모든 셀이 시간/공간 원점에 따라 분산되어 있으며 시간/공간 주석에 따른 명백한 클러스터링이 없음을 보여줍니다. 다음으로, 프로토콜은 차등적으로 발현된 유전자의 목록을 얻어 텍스트 파일에 저장하고(단계 3.8), 스프레드시트에서 데이터 테이블을 열고, 각 세포 클러스터에 대해 상위 순위의 클러스터 마커를 얻기 위해 다양한 필터링 단계를 수행하는 방법을 설명합니다(단계 3.9-3.10.6). 이러한 단계의 대표적인 결과(보충표 1)은 순위가 매겨진 차등 발현 유전자의 전체 출력을 포함하는 최종 스프레드시트 파일이며, 또 다른 대표적인 결과(보충표 2)은 각 Seurat 클러스터에 대해 상위 5개의 상향 조절 및 발현 유전자를 보여주는 단순화된 표입니다. 그런 다음 프로토콜은 EnrichR이라는 웹 기반 기능 농축 분석 도구를 사용하여 상위 클러스터 마커 유전자(단계 3.11-3.12)에 따라 추정 세포 유형을 식별하는 방법과 이러한 단계의 대표적인 결과(그림 3)은 8개의 세포 클러스터 각각에 대해 가장 많이 강화된 세포 유형을 보여주는 EnrichR 출력의 잘린 스크린샷입니다. 그런 다음 프로토콜은 가장 풍부한 셀 유형 주석에 따라 각 Seurat 클러스터의 모든 셀에 "cell_types"이라는 새로운 메타데이터 레이블을 할당합니다(단계 3.14). 3.15 단계에서는 차원 플롯 기능을 수행하여 이름이 변경된 셀 클러스터를 UMAP 플롯에서 셀 유형 주석으로 시각화하고, 이 단계의 대표적인 결과(그림 4)는 데이터 세트의 모든 세포가 주요 색상으로 구분된 세포 유형을 중심으로 클러스터링되었음을 보여주었습니다. 3.16 단계에서, 특징 플롯 함수를 사용하여 일련의 UMAP 플롯에서 상위 클러스터 마커 유전자(보충 표 2에서)의 국소화를 시각화하고, 대표적인 결과(그림 5)는 각각의 주요 세포 유형 클러스터 위치 내에서 상위 세포 마커 유전자의 높은 발현을 보여주는 UMAP 플롯의 그리드입니다. 단계 3.17 및 3.18에서, 도트 플롯 기능을 수행하여 세포에서 상위 클러스터 마커 유전자의 상대적 발현 수준을 시각화했으며, 먼저 원래 Seurat 클러스터 번호로 그룹화되고(단계 3.17) 두 번째로 주석이 달린 세포 유형 레이블로 그룹화되었습니다(단계 3.18). 이러한 단계의 대표적인 결과는 각각의 Seurat 클러스터에서만 상위 세포 마커 유전자의 높은 수준의 발현을 확인했습니다(보충 그림 6) 및 각각의 주요 세포 유형(그림 6). 프로토콜의 다음 단계는 원래의 시공간 단백질 기반 라벨을 엄격한 시간적 주석으로 단순화하여 세포가 유래한 상처 후 일수(DPW)를 기반으로 세포를 식별합니다. 3.20 단계에서는 차원 플롯 기능을 수행하여 셀을 UMAP 플롯에서 DPW 주석으로 시각화하고, 이 단계의 대표적인 결과(보충 그림 7)는 단일 세포 상처 치유 데이터 세트에서 상처 시간 경과 주석의 국소화를 보여주었습니다. 예상대로 1일(D1) 주석은 호중구 및 대식세포 클러스터를 지배한 반면, 이후 상처 치유 시점은 다른 세포 유형에서 더 많이 나타났습니다. 프로토콜의 다음 단계에서는 누적 막대 플롯을 사용하여 먼저 다양한 세포 유형에 걸친 DPW의 비율을 시각화한 다음(단계 3.22) 다양한 시점에 걸쳐 세포 유형의 비율을 시각화했습니다(3.23). 이러한 단계의 대표적인 결과는 각 주요 세포 유형 범주(보충 그림 8) 및 각 DPW 범주의 주요 세포 유형의 상대적 수(그림 7). 이러한 결과는 면역 세포(호중구 및 대식세포)가 염증 단계의 초기 시점을 지배하고 다른 세포 유형(상피 세포 및 내피 세포)이 증식기 동안 나타나기 시작하며 섬유아세포는 상처 해소 중 후기 시점에서 특히 우세합니다.
방법 #4에서 시작하여 프로토콜은 상처 치유 동안 잠재적인 세포 하위 유형을 식별하기 위해 Seurat를 사용하여 단일 세포 데이터 세트의 개별 주요 세포 유형에 초점을 맞추는 단계를 간략하게 설명합니다. 이 프로토콜은 단일 범주로 결합되기 전에 처음에 두 개의 Seurat 클러스터로 클러스터링된 섬유아세포에 초점을 맞추고 원래 데이터 세트의 섬유아세포만 포함하는 새로운 Seurat 개체를 생성하는 방법을 설명합니다(4.1단계). Seurat 워크플로우는 이 섬유아세포 특정 데이터 세트(단계 4.2-4.4)에서 수행되며, 4.2단계에서는 섬유아세포 데이터 세트의 주요 변동의 대부분이 처음 9개의 PCA 차원 내에서 발생한다는 것을 보여주는 엘보우 플롯(보충 그림 9)이 생성됩니다. 4.5 단계에서는 UMAP 플롯에서 세포의 클러스터링을 시각화하기 위해 차원 플롯 기능을 수행하며, 이 단계의 대표적인 결과(그림 8)는 3개의 색상으로 구분된 세포 하위 유형을 중심으로 클러스터링된 데이터 세트의 섬유아세포를 보여주었습니다. DPW 주석(단계 4.6)에 따라 섬유아세포 데이터 세트를 시각화하면 DPW 주석에 따라 전체적으로 분포된 데이터 세트의 섬유아세포를 보여주는 UMAP 플롯(보충 그림 10)이 생성되었습니다. 다음으로, 프로토콜은 차등적으로 발현된 유전자의 목록을 얻어 텍스트 파일에 저장하는 방법(단계 4.7), Excel에서 데이터 테이블을 열고 각 세포 클러스터에 대해 상위 순위의 클러스터 마커를 얻기 위해 다양한 필터링 단계를 수행하는 방법(단계 4.8), "FB_type_marker"이라는 이름의 상위 섬유아세포 마커 유전자를 나열하는 새로운 변수를 할당하는 방법을 설명합니다(단계 4.9). 4.10 단계에서는 피처 파라미터에서 "FB_type_marker" 변수를 호출하여 섬유아세포 전용 데이터 세트의 목록 내 유전자를 시각화하기 위해 도트 플롯 함수를 사용하며, 이 단계의 대표적인 결과(그림 9)는 각각의 클러스터 범주(상단)에서만 섬유아세포 하위 유형 마커의 높은 발현을 확인하지만 DPW 범주(하단)에 걸쳐 상당히 분포되어 있는 도트 플롯입니다. 4.11 단계에서는 전체 상처 치유 데이터 세트에서 섬유아세포 마커 유전자를 시각화하기 위해 동일한 특징 변수를 호출하고, 대표적인 결과(보충도 11)는 원래의 섬유아세포에서 섬유아세포 아형 마커의 높은 발현을 확인한 도트 플롯이다. 마지막으로, 프로토콜의 다음 단계에서는 누적 막대 플롯을 사용하여 먼저 세 가지 섬유아세포 하위 유형에 걸쳐 DPW의 비율을 시각화한 다음(단계 4.12) 서로 다른 시점에 걸쳐 섬유아세포 하위 유형의 비율을 시각화했습니다(단계 4.13). 이러한 단계의 대표적인 결과는 각 섬유아세포 아형 범주에서 DPW 세포의 상대적 수(보충 그림 12) 및 각 DPW 범주에서 섬유아세포 아형의 상대적 수를 보여주는 비율 플롯입니다(보충 그림 13). 이러한 결과는 치유 시간 경과에 걸쳐 섬유아세포 하위 유형 비율의 상당한 변화를 가리키며, 첫 번째 섬유아세포 하위 유형(클러스터 0)은 초기 단계 상처(D1 및 D3)에서 크게 우세하고, 두 번째 하위 유형(클러스터 1)은 상처 해소(D14) 동안 우세하며, 세 번째 하위 유형(클러스터 2)은 상처 치유의 증식 단계(D7) 동안 가장 높습니다.
방법 #5부터 프로토콜은 Seurat의 모듈 스코어링 함수를 사용하여 단일 세포 상처 치유 데이터 세트를 분석하는 단계를 안내합니다. 프로토콜은 먼저 탭 삭제 텍스트 파일을 사용하여 유전자 세트를 R의 변수에 업로드하는 단계(단계 5.1-5.2)를 설명한 다음 상처 치유의 세 가지 주요 단계와 관련된 세 개의 유전자 세트에 모듈 점수 기능을 적용하는 단계(단계 5.3). 5.4 단계에서, 도트 플롯 함수는 두 개의 서로 다른 메타데이터 범주에 걸쳐 집계 모듈 점수를 시각화하는 데 사용되며, 이 단계의 대표적인 결과(그림 10)는 상처 후 범주(DPW, 오른쪽) 및 주요 세포 유형 범주(왼쪽)에서 세포 전체에 걸쳐 주요 치유 단계 모듈의 평균 발현을 보여주는 도트 플롯입니다. 이러한 결과는 대량 시퀀싱 기반 유전자 발현 프로파일을 단일 세포 발현 데이터 세트에 유사 벌크 방식으로 적용하는 것이 상처 치유 분야에서 이전에 발표된 데이터 세트를 활용하여 비교 생물정보학 접근법을 위한 강력한 방법임을 보여줍니다.
방법 #6부터 프로토콜은 초기 상처와 후기 상처에서 파생된 세포를 비교하는 특정 과학적 질문에 따라 CellChat 패키지 및 워크플로를 사용하여 Seurat 유래 단일 세포 상처 치유 데이터 세트를 분석하는 단계를 안내합니다. 프로토콜은 먼저 전체 Seurat 데이터 세트를 손상 후 염증 단계(1일(D1))와 상처 해결 기간(14일(D14))(단계 6.1)의 두 시점으로 하위 설정합니다. 두 개의 CellChat 객체가 생성되고 프로토콜은 CellChat 프로토콜의 모든 일반적인 기능을 통해 프로토콜의 방법 #3(단계 6.2-6.3)에서 식별된 세포 유형 간의 모든 추정 상호 작용을 계산합니다. 6.4 단계에서는 신호 산점도 기능을 수행하여 각 상처 치유 시점에서 모든 주요 세포 유형에서 들어오고 나가는 상호 작용 강도를 시각화합니다. 이 단계의 대표적인 결과(보충 그림 14)는 D1(왼쪽) 및 D14(오른쪽) 시점에서 주요 세포 유형에 대한 들어오는(y축) 및 나가는(x축) 상호 작용의 강도를 보여주는 산점도입니다. 이러한 결과는 호중구 및 대식세포와 같은 면역 세포가 염증 단계에서 가장 높은 세포-세포 상호 작용 강도를 보였지만 섬유아세포가 상처 해소 동안 세포-세포 상호 작용을 지배한다는 것을 보여주었으며, 이는 수십 년간의 상처 치유 연구를 확인시켜 줍니다. 다음 단계에서는 상당히 풍부한 경로 중 하나인 콜라겐 경로(단계 6.5-6.6)에 대한 분석에 초점을 맞춥니다. 6.7 단계에서는 두 시점에서 세포 유형 간의 콜라겐 신호 전달 경로 상호 작용을 시각화하기 위해 원 다이어그램 기능을 수행합니다. 이 단계의 대표적인 결과(보충 그림 15)은 D1(왼쪽)과 D14(오른쪽)에서 모든 세포 유형 간의 추론된 콜라겐 경로 신호 전달 상호 작용을 보여주는 원 플롯입니다. 6.8단계에서는 현 다이어그램 기능을 사용하여 동일한 상호 작용을 시각화하고 대표적인 결과(보충 그림 16)은 각 시점에서 모든 세포 유형 간의 추론된 콜라겐 경로 신호 전달 상호 작용을 보여주는 현 다이어그램입니다. 예상대로 이러한 결과는 섬유아세포가 콜라겐 신호 전달 경로의 주요 소스 세포임에도 불구하고 정보 흐름이 D14에 비해 D1에서 면역 세포로 더 제한되었음을 보여주었습니다. 세포-세포 상호작용에서 소스 세포로서 섬유아세포에 초점을 맞추기 위해, 단계 6.9는 소스 세포 매개변수를 추가하는 코드 다이어그램 함수를 반복하고, 대표적인 결과(보충 그림 17)는 각 시점에서 섬유아세포를 소스 세포로 삼는 유추된 콜라겐 경로 신호 전달 상호 작용을 보여주는 코드 다이어그램입니다. 6.10 단계에서, 섬유아세포를 소스 세포로 사용하여 콜라겐 신호 전달 경로에서 각 리간드-수용체 쌍의 기여도를 시각화하기 위해 두 가지 기능을 수행하는데, 하나는 버블 플롯을 사용하여(단계 6.10.1) 다른 하나는 코드 다이어그램을 사용하여(단계 6.10.2). 대표적인 결과는 두 버블 플롯(보충 그림 18) 및 코드 다이어그램(보충 그림 19). 이러한 결과는 D1에서 섬유아세포에서 나오는 콜라겐 경로가 Cd44 및 Sdc4 수용체가 우세한 호중구 및 대식세포로 제한되었지만 D14에서는 다른 세포가 인테그린을 포함한 다양한 수용체를 통해 수신자 역할을 한다는 것을 보여주었습니다. 섬유아세포 상호작용에서 강력한 강점을 보인 Col1a1-Cd44 리간드-수용체 상호작용에 초점을 맞추기 위해 매개변수를 설정하고(단계 6.11) 코드 다이어그램 함수에서 단계 6.12에서 사용하여 모든 세포 유형 간의 이 특정 리간드-수용체 상호작용을 시각화합니다.보충 그림 20)은 D1(왼쪽) 및 D14(오른쪽) 시점에서 모든 세포 유형 간의 추론된 Col1a1-Cd44 리간드-수용체 상호 작용을 보여주는 코드 다이어그램입니다. 이러한 결과는 D1에서 이러한 상호 작용이 소스 세포인 섬유아세포로 제한되는 반면, D14에서는 대식세포와 평활근 세포도 소스 세포로 작용한다는 것을 보여주었습니다. 다음으로, 프로토콜은 먼저 D1 및 D14 CellChat 객체를 병합하여 차등 CellChat 분석을 수행하는 방법을 설명합니다(단계 6.13). 6.14 단계에서, 비교 상호작용 기능을 수행하여 두 상처 치유 시점 사이의 세포-세포 상호작용의 총 수와 상대적 강도를 시각화하고, 대표적인 결과(보충 그림 21)는 D1 및 D14 상처를 포함하는 세포에서 추론된 상호 작용의 총 수(왼쪽)와 강도(오른쪽)를 보여주는 결과 막대 플롯이며, D1에서 상호 작용의 상대적 강도가 더 높은 반면 D14에서는 상호 작용 수가 더 많습니다. 6.15 및 6.16단계에서, 상처가 1일에서 14일로 전환될 때 각 세포 유형 간의 차등 세포-세포 상호작용 강도를 각각의 대표 결과와 함께 시각화하기 위해 두 가지 함수를 사용하며, 첫 번째는 원 플롯(단계 6.15, 보충 그림 22)이고 두 번째는 히트맵(단계 6.16, 보충 그림 23), D14에 비해 D1의 증가된 상호 작용은 빨간색으로 표시되고 감소된 상호 작용은 파란색으로 표시됩니다. 예상대로 호중구 및 대식세포 매개 상호작용은 D1에서 증가하고 섬유아세포 매개 상호작용은 D14에서 증가합니다. 6.17 단계에서, 순위 함수를 사용하여 D1과 비교하여 D14에서 소스 세포로서 섬유아세포와의 세포-세포 상호작용에 대한 개별 경로의 상대적 기여도를 순위를 매기는 플롯을 생성하고, 대표적인 결과(보충 그림 24)은 D1이 상단에 빨간색으로, D14가 하단에 파란색으로 표시되는 결과 순위 플롯을 보여주며, 여러 경로는 D1 또는 D14에서만 표시되고 다른 많은 경로는 활성화 기울기를 보여줍니다. 마지막으로, 6.18 단계에서, 두 개의 버블 플롯 함수를 사용하여 D1과 비교하여 D14에서 섬유아세포를 소스 세포로 사용하는 콜라겐 신호 전달 경로에서 개별 리간드-수용체 쌍의 상대적 기여도를 보여주고, 상응하는 대표적인 결과(보충 그림 25)는 x축의 많은 세포-세포 상호 작용에 걸쳐 D1에 비해 D14에서 증가(왼쪽) 및 감소(오른쪽) 신호 쌍을 보여줍니다. 예상대로 섬유아세포는 염증 단계 동안 의사소통이 호중구와 대식세포에 더 제한된 D1 상처에 비해 D14 상처의 여러 수용자 세포에 걸쳐 나가는 리간드-수용체 쌍 상호 작용이 훨씬 더 증가했습니다.
방법 #7부터 프로토콜은 Seurat를 사용하여 두 개의 단일 세포 상처 치유 데이터 세트를 통합하는 단계를 안내합니다. 이 프로토콜은 먼저 게시된 단일 셀 데이터 세트의 두 배치를 병합하고 병합된 데이터 세트에 표준 Seurat 워크플로를 적용하는 단계를 설명합니다(7.1-7.4단계). 7.5 단계에서, 차원 플롯 함수는 병합되었지만 아직 통합되지 않은 상처 치유 데이터 세트의 클러스터 및 배치 번호에 따라 UMAP 플롯을 시각화하는 데 사용된다. 이 단계의 대표적인 결과(보충 그림 26)는 Seurat 클러스터(왼쪽)와 배치 번호(오른쪽)의 분포를 시각화하는 UMAP 플롯으로, 데이터 통합 전에 이 두 데이터 세트에 대해 유의미한 배치 효과가 없는 것으로 보입니다. 그런 다음 프로토콜은 RPCA 방법과 통합 데이터 세트의 후속 Seurat 워크플로를 사용하여 데이터 통합을 수행합니다(7.7-7.8단계). 7.9 단계에서는 차원 플롯 함수를 사용하여 통합 상처 치유 데이터 세트의 클러스터 및 배치 번호에 따라 UMAP 플롯을 시각화합니다. 이 단계의 대표적인 결과(보충 그림 27)는 Seurat 클러스터(왼쪽)와 배치 번호(오른쪽)의 분포를 시각화하는 UMAP 플롯으로, 이제 서로 다른 클러스터에 걸쳐 두 배치 사이에 훨씬 더 큰 중복이 있음을 보여줍니다. 결과는 또한 데이터 통합 후 추가 클러스터의 출현을 보여주며, 이는 데이터 배치의 기술적 효과가 제어된 후 잠재적으로 중요한 세포 하위 유형을 식별하는 능력이 향상되었음을 가리킬 수 있습니다.

그림 1: 데이터 세트의 모든 셀이 8개의 주요 색상으로 구분된 클러스터 그룹을 중심으로 클러스터링된 것을 보여주는 UMAP 플롯. Windows(왼쪽) 및 MacOS(오른쪽)를 실행하는 컴퓨터에서 얻은 결과. 이 그림은 3.5단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 2: 시간/공간 주석에 따른 명백한 클러스터링 없이 데이터셋의 모든 셀이 시간/공간 원점에 따라 퍼져 있음을 보여주는 UMAP 플롯. 이 그림은 3.6단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 3: 각 세포 클러스터에 대해 가장 많이 농축된 세포 유형을 보여주는 EnrichR 출력의 잘린 스크린샷. 이 그림은 3.13단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 4: 주요 색상으로 구분된 세포 유형 주위에 클러스터된 데이터 세트의 모든 세포를 보여주는 UMAP 플롯. 이 수치는 3.15단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 5: 주요 세포 유형 클러스터 내에서 상위 세포 마커 유전자의 높은 발현을 보여주는 UMAP 플롯의 그리드. 이 그림은 3.16단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 6: 각각의 주요 세포 유형에서만 상위 세포 마커 유전자의 높은 수준의 발현을 확인하는 도트 플롯. 이 그림은 3.18단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 7: 각 DPW 범주에서 주요 세포 유형의 상대 수를 보여주는 비율 플롯. 이 그림은 3.23단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 8: 3가지 색상으로 구분된 세포 하위 유형을 중심으로 클러스터링된 데이터 세트의 섬유아세포를 보여주는 UMAP 플롯. 이 그림은 4.5단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 9: 각각의 클러스터 범주에서만 섬유아세포 하위 유형 마커의 높은 발현을 확인하지만 DPW 범주 전체에 걸쳐 공정하게 분포되어 있는 도트 플롯. 이 그림은 4.10단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.

그림 10: DPW 및 주요 세포 유형당 세포 전반에 걸쳐 주요 치유 단계 모듈의 평균 발현을 보여주는 도트 플롯. 이 그림은 5.4단계에 해당합니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.
보충 그림 1: 각 바코드에 대해 검출된 유전자가 상당히 고르게 분포되어 있음을 보여주는 결과로, 이는 데이터 세트 무결성 및 상처 치유 시점의 다운스트림 분석에 중요합니다. 이 그림은 2.6.11단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 2: 미토콘드리아 함량이 큰 세포가 많다는 것을 보여주는 산점도는 낮은 RNA 수와 상관관계가 --- 이들이 죽거나 죽어가는 세포입니다. 이 그림은 2.10단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 3: 검출된 유전자의 분포와 세포당 미토콘드리아 RNA 비율이 이제 더 정상적임을 보여주는 산점도는 강력한 다운스트림 분석을 위한 길을 열어줍니다. 이 그림은 2.12단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 4: 바이올린 플롯은 상대적으로 이중항 점수가 높은 세포가 많고 0.25가 자연 컷오프로 보이며 그 이상에는 이중항 가능성이 있는 집단이 있음을 보여줍니다. 이 그림은 2.15단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 5: 주요 변동의 대부분이 처음 13차원 내에서 발생한다는 것을 보여주는 엘보우 플롯. 이 그림은 3.2단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 6: 각각의 Seurat 클러스터에서만 상위 세포 마커 유전자의 높은 수준의 발현을 확인하는 도트 플롯. 이 그림은 3.17단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 7: 상처 치유 데이터 세트 전반에 걸쳐 상처 시간 경과 주석의 국소화를 보여주는 UMAP 플롯. 이 그림은 3.20단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 8: 각 주요 세포 유형 범주에서 DPW 세포의 상대적 수를 보여주는 비율 플롯. 이 그림은 3.22단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 9: 섬유아세포 데이터 세트의 주요 변이의 대부분이 처음 9차원 내에서 발생한다는 것을 보여주는 엘보우 플롯. 이 그림은 4.2단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 10: DPW 주석에 따라 전체에 분포된 데이터 세트의 섬유아세포를 보여주는 UMAP 플롯. 이 그림은 4.6단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 11: 원래의 섬유아세포 클러스터에서 주로 섬유아세포 아형 마커의 높은 발현을 확인하는 도트 플롯. 이 그림은 4.11단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 12: 각 DPW 범주에서 섬유아세포 하위 유형의 상대적 수를 보여주는 비율 플롯. 이 그림은 4.12단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 13: 각 섬유아세포 하위 유형 범주에서 DPW에 걸쳐 섬유아세포의 상대적 수를 보여주는 비율 플롯. 이 그림은 4.13단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 14: 1일차(D1, 왼쪽) 및 14일차(D14, 오른쪽) 시점에서 주요 세포 유형에 대한 들어오는(y축) 및 나가는(x축) 상호 작용의 강도를 보여주는 산점도. 이 그림은 6.4단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 15: 각 DPW 범주의 모든 세포 유형 간에 추론된 콜라겐 경로 신호 전달 상호 작용을 보여주는 원 플롯. 이 그림은 6.7단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 16: 각 DPW 범주의 모든 세포 유형 간의 추론된 콜라겐 경로 신호 전달 상호 작용을 보여주는 코드 다이어그램. 이 그림은 6.8단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 17: 각 DPW 범주에서 소스 세포로서 섬유아세포와의 추론된 콜라겐 경로 신호 전달 상호 작용을 보여주는 현 다이어그램. 이 그림은 6.9단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 18: 각 DPW 범주에서 섬유아세포를 소스 세포로 사용하여 콜라겐 경로 신호 전달에서 각 리간드-수용체 쌍의 추론된 기여도를 보여주는 버블 플롯. 이 그림은 6.10.1단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 19: 각 DPW 범주에서 섬유아세포를 소스 세포로 사용하여 콜라겐 경로 신호 전달에서 각 리간드-수용체 쌍의 추론된 기여도를 보여주는 코드 다이어그램. 이 그림은 6.10.2단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 20: 각 DPW 범주의 모든 세포 유형 간에 추론된 Col1a1-Cd44 리간드-수용체 상호작용을 보여주는 현 다이어그램. 이 그림은 6.12단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 21: 1일차 및 14일차 상처에서 추론된 상호 작용의 수(왼쪽)와 강도(오른쪽)를 보여주는 막대 플롯. 이 그림은 6.14단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 22: 상처가 1일(파란색)에서 14일(빨간색) DPW로 전환됨에 따라 각 세포 유형 간의 차등 세포-세포 상호 작용 강도를 보여주는 원 플롯. 이 그림은 6.15단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 23: 상처가 1일(파란색)에서 14일(빨간색) DPW로 전환됨에 따라 각 세포 유형 간의 차등 세포-세포 상호 작용 강도를 보여주는 히트맵. 이 그림은 6.16단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 24: 1일 대 14일 DPW에서 섬유아세포와 다른 세포 유형 사이의 세포-세포 상호 작용에 대한 개별 경로의 상대적 기여도를 보여주는 순위 플롯. 이 그림은 6.17단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 25: 1일 대 14일 DPW에서 섬유아세포를 소스 세포로 사용하는 콜라겐 신호 전달 경로에서 개별 리간드-수용체 쌍의 상대적 기여도를 보여주는 버블 플롯. 이 그림은 6.18단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 26: 데이터 통합 전 Seurat 클러스터(왼쪽)와 배치 번호(오른쪽)의 분포를 보여주는 UMAP 플롯. 이 그림은 7.5단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 그림 27: 데이터 통합 후 Seurat 클러스터(왼쪽)와 배치 번호(오른쪽)의 분포를 보여주는 UMAP 플롯. 이 그림은 7.9단계에 해당합니다. 이 그림을 다운로드하려면 여기를 클릭하십시오.
보충 파일 1: JoVE_Rscript.R: 프로토콜의 모든 부분에 대해 설명된 모든 단계와 설명이 포함된 기본 R 코드 스크립트 파일입니다. 이 파일을 다운로드하려면 여기를 클릭하십시오.
보충 파일 2: JoVE_PhaseSpecificGenes.txt. 프로토콜의 5.1단계에서 로드된 유전자 목록을 포함하는 탭으로 구분된 텍스트 파일입니다. 이 파일을 다운로드하려면 여기를 클릭하십시오.
보충 파일 3: JoVE_Rscript_b3.R. 프로토콜의 7.1단계에서 사용하기 위해 데이터 세트의 배치 #3을 분석하는 데 필요한 모든 단계와 설명이 포함된 보충 R 코드 스크립트 파일입니다. 이 파일을 다운로드하려면 여기를 클릭하십시오.
보충 표 1: JoVE_DEGs_cellMarkers.xlsx. 프로토콜의 3.10단계에서 사용된 순위가 매겨진 차등 발현 유전자의 전체 출력을 포함하는 Excel 파일입니다. 이 표를 다운로드하려면 여기를 클릭하십시오.
보충 표 2: 각 seurat 클러스터에 대해 상위 5개의 상향 조절 및 발현 유전자. 이 표를 다운로드하려면 여기를 클릭하십시오.
이 프로토콜에서 RStudio는 Seurat를 사용하여 복잡한 단일 셀 데이터 세트의 기본 분석을 가능하게 하는 규정된 코드 줄을 실행하는 데 사용됩니다. R 코딩 환경 설치, 이전에 게시된 단일 세포 상처 치유 데이터 세트 다운로드, 시각화, 주요 세포 유형 주석, 세포 하위 유형 분석 및 Seurat를 사용한 통합 분석을 포함한 중요한 품질 관리 단계 및 표준 단일 세포 분석 워크플로 수행, CellChat을 사용한 세포-세포 상호 작용 분석 수행 등 상처 치유 연구와 관련된 여러 방법이 제시됩니다.
여기에 소개된 방법은 R 및 인기 있는 오픈 소스 과학 패키지인 Seurat21 및 CellChat22를 사용하는 단일 세포 분석을 위한 일반적인 워크플로의 단순화된 삽화입니다. 실제로 워크플로는 복잡한 단일 세포 상처 치유 데이터 세트로 수행할 수 있는 분석 유형의 한 예일 뿐입니다. 이 방법에 대한 가능한 수정은 거의 무한하며, 유일한 제약은 사용자의 특정 과학적 탐구입니다. 예를 들어, 사용자는 이 데이터 세트에 대해 묻고자 할 수 있는 연구 질문에 따라 세포 유형 및 시점과 같은 일부 주요 매개변수를 변경할 수 있습니다. 저자는 또한 사용자가 이 워크플로를 관심 있는 단일 셀 데이터 세트에 적용할 수 있을 만큼 편안하기를 바랍니다. 그러나 이 워크플로를 사용하여 다른 데이터 세트를 분석할 때는 각 실험이 기술 및 샘플 준비 문제를 데이터 자체에 전파할 수 있으므로 주의해야 합니다. 따라서 사용자는 이전에 게시되고 재분석된 단일 셀 데이터 세트의 결과를 해석하기 전에 모든 실험 세부 사항을 읽고 이해하는 것이 중요합니다. 생물정보학 도구는 생물학적 과정 및 가설 생성을 탐색하기 위한 강력한 방법이며 결과에 대한 중요한 생물학적 해석은 후속 실험에서 검증되어야 한다는 점을 기억하는 것이 중요합니다.
프로토콜 전반에 걸쳐 다른 작업을 수행하기 위해 워크플로의 특정 영역에 대한 주요 수정이 이루어질 수 있습니다. 그러나 워크플로에 대한 가능한 모든 수정 조합에 대한 세부 사항은 이 원고의 범위를 벗어납니다. 예를 들어, 세포 클러스터링에 사용되는 해상도와 UMAP 분석에 사용되는 차원은 필연적으로 주관적이며, 여기에 제시된 도구는 대규모 분석(여기에서 광범위하게 정의된 주요 세포 유형에 대해 시연된 것처럼)과 더 큰 데이터 세트 내에서 세포를 더 희귀한 하위 집단으로 하위 클러스터링하는 것을 수반할 수 있는 매우 구체적인 분석을 모두 허용합니다. 단일 세포 분석 방법의 이러한 측면에 대한 자세한 내용과 단일 세포 분석 파이프라인에서 변경될 수 있는 다른 모든 매개변수에 대한 자세한 내용은 저자는 사용자에게 Seurat 간행물21,26 및 웹 사이트(https://satijalab.org/seurat/)를 참조하며, 여기서 이 진화하는 도구의 저자는 심층적인 설명, 삽화 및 튜토리얼을 제공합니다.
이 원고는 단일 세포 전사체학 문헌에서 가장 많이 인용되고 사용되는 도구 중 일부, 즉 각각 단일 세포 및 세포-세포 상호 작용 분석을 위한 Seurat21 및 CellChat22를 소개했습니다. 그러나 약간 다른 방식으로 유사한 기능을 수행하는 다른 도구가 존재합니다. 단일 셀 데이터 세트 분석을 위해 데이터 세트 통합을 위해 다양한 방법을 사용하는 Scran27, Scater 28 및 Python 기반 ScanPy29가 있습니다25. 이 프로토콜에서는 클러스터 세포 마커 농축을 해석하기 위한 사용자의 판단에 의존하는 세포 유형의 수동 주석이 시연되었지만, 현재 SingleR30 및 scGate31과 같은 세포 유형의 자동 분류를 가능하게 하는 다양한 도구가 존재합니다. 세포-세포 통신 분석을 위해 CellChat이 이 프로토콜에서 시연되었지만, CellPhoneDB32, Cytotalk33 및 LIANA(LIgand-receptor ANalysis framework) 합의 프레임워크34 내에서 구현되는 기타 리간드-수용체 데이터베이스를 포함하여 세포-세포 통신을 추정하기 위한 다른 도구가 존재합니다. 모든 생물정보학 도구는 고유하며 고유한 특성과 수정 가능한 매개변수가 있습니다. 따라서 사용자는 사용 시 생성된 출력을 해석하기 전에 미묘한 차이를 이해하기 위해 각 도구의 관련 문서를 주의 깊게 읽는 것이 중요합니다. 마지막으로, 어떤 생물정보학 도구를 사용하든 이러한 도구는 지속적으로 발전하고 있으며 패키지의 버전이 다르면 다른 결과물이 나올 수 있다는 점을 기억하는 것이 중요합니다.
R에서는 구문이 중요하며 구두점, 따옴표, 대괄호 또는 대문자가 잘못 배치되면 오류가 발생합니다. 따라서 사용자가 코드를 입력할 때 세부 사항에 주의를 기울이고 코드 줄을 복사할 때 새로운 과학적 질문과 데이터 세트에 적응하기 위해 특히 주의를 기울이는 것이 중요합니다. 발생할 수 있는 특정 오류를 해결하기 위해 저자는 가장 일반적으로 발생하는 오류는 지식이 풍부한 고급 사용자가 이미 답변했을 가능성이 높기 때문에 오류 메시지를 사용자가 즐겨 사용하는 웹 검색 엔진에 복사하여 붙여넣고 GitHub 및 Stack Overflow와 같은 생물정보학 포럼의 결과를 탐색하는 것이 좋습니다. 일부 포럼에서는 가장 성공적인 답변이 문제에 가장 적합한 솔루션을 찾은 다른 사용자에 의해 '찬성표'를 표합니다. 사용자는 이러한 프로그램이 악성일 가능성이 있으므로 인터넷에서 찾은 코드 줄을 단순히 복사하여 자신의 컴퓨터에 붙여넣지 않도록 주의해야 합니다(특히 솔루션에서 R 프로그래밍 언어 외부에서 시스템 설정을 변경해야 하는 경우). 코딩 오류를 해결하는 흥미로운 새로운 방법은 OpenAI의 ChatGPT, Microsoft의 Copilot 또는 Google의 Gemini와 같은 강력한 생성 대규모 언어 AI 모델을 사용하는 것입니다. 이러한 모델은 일반적으로 소프트웨어 엔지니어링, 특히 문제 해결에 특히 유용한 것으로 입증되었습니다. 이를 위해 사용자는 코드에 대한 사용자의 의도에 대한 간단한 프롬프트를 챗봇에 제공한 후 코드의 전체 줄을 복사하여 붙여넣을 수 있습니다. 이러한 모델이 완벽하지 않으며 사용자가 문제 해결에 적합한 답변을 생성하기 위해 여러 프롬프트를 시도해야 할 수도 있다는 일반적인 주의 사항이 있습니다.
저자는 공개할 이해 상충이 없습니다.
MS Wietecha의 실험실은 NIH/NIGMS 보조금 R35-GM154921, 상처 치유 학회 연구 보조금 및 UIC 치과 대학의 구강 생물학과로부터 자금을 지원받았습니다.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| 노트북 또는 데스크톱 컴퓨터 | 해당 사항 없음 | 해당 사항 없음 | Windows 또는 MacOS 실행 중 |
| R | 해당 사항 없음 | 버전 4.4.1 | https://cran.rstudio.com/ 에서 무료로 다운로드 |
| Rstudio (리스튜디오) | 포지트 소프트웨어, PBC | 버전 2024.09.0 | https://posit.co/download/rstudio-desktop/ 에서 무료로 다운로드 |
| 오피스 엑셀 | 마이크로소프트 | 모든 버전 | 테이블 데이터 분석용 |
| 인터넷 브라우저 | 해당 사항 없음 | 해당 사항 없음 | 웹 사이트로 이동하기 위해 |
| R 패키지 | 저장소 | 버전 | |
| 개발 도구 | 크 랑 | 2.4.5 | |
| 읽기 XL | 크 랑 | 1.4.3 | |
| openxlsx | 크 랑 | 4.2.7.1 | |
| 정리 | 크 랑 | 2.0.0 | |
| sc사용자 정의 | 크 랑 | 2.1.2 | |
| 바이오 매니저 | 생체전도체 | 1.30.25 | |
| NMF | 생체전도체 | 0.28 | |
| 컴플렉스 히트맵 | 생체전도체 | 2.20.0 | |
| 바이오 이웃 | 생체전도체 | 1.22.0 | |
| 단일 세포 실험 | 생체전도체 | 1.26.0 | |
| 순환 | 생체전도체 | 0.4.16 | |
| 저 | 생체전도체 | 4.2.1 | |
| scDbl파인더 | 생체전도체 | 1.18.0 | |
| 쇠라트 | 크 랑 | 5.1.0 | |
| 셀챗 | 기피 | 2.1.2 |
Request permission to reuse the text or figures of this JoVE article
Request Permission