单细胞Seurat标准分析流程R语言封装
发布时间
阅读量:
阅读量
单细胞Seurat标准分析流程R语言封装
- 数据预处理与质控(线粒体基因比例计算、QC图表生成)
- 标准化与高变基因筛选
- PCA/UMAP降维与聚类分析 差异表达分析模块
- 自动化输出PNG可视化图表(质控小提琴图、UMAP聚类图)
- 结果将保存在results/和figures/目录下(RDS对象、差异基因CSV表格)
R语言分析方法
# scRAN.R
# 单细胞测序标准分析流程
# 依赖包安装检查
if (!requireNamespace('BiocManager', quietly = TRUE))
install.packages('BiocManager')
required_packages <- c('Seurat', 'SingleCellExperiment', 'ggplot2', 'dplyr', 'Matrix', 'cowplot', 'RColorBrewer')
new_packages <- required_packages[!required_packages %in% installed.packages()[,"Package"]]
if(length(new_packages))
BiocManager::install(new_packages)
# 质控模块函数
add_mito_ratio <- function(obj){
obj[["percent.mt"]] <- PercentageFeatureSet(obj, pattern = "^MT-")
return(obj)
}
# QC小提琴绘图函数
qc_plots <- function(obj){
plots <- VlnPlot(obj, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)
ggsave("figures/QC_violin.png", plot = plots, width = 12, height = 6)
}
# 标准化流程函数
standard_analysis <- function(obj){
obj <- NormalizeData(obj)
obj <- FindVariableFeatures(obj, selection.method = "vst", nfeatures = 2000)
obj <- ScaleData(obj, vars.to.regress = "percent.mt")
obj <- RunPCA(obj)
obj <- RunUMAP(obj, dims = 1:30)
obj <- FindNeighbors(obj, dims = 1:30)
obj <- FindClusters(obj, resolution = 0.8)
return(obj)
}
# 结果保存函数
save_results <- function(obj){
# 差异表达分析
markers <- FindAllMarkers(obj, only.pos = TRUE, min.pct = 0.25)
write.csv(markers, "results/differential_genes.csv")
# 可视化输出
DimPlot(obj, reduction = "umap", label = TRUE) +
theme_minimal()
ggsave("figures/UMAP_clusters.png", width = 10, height = 8)
# 保存完整对象
saveRDS(obj, file = "results/final_analysis_object.rds")
}
# 初始化目录结构
output_dirs <- c('results', 'figures')
sapply(output_dirs, dir.create, showWarnings = FALSE)
# 数据导入,修改输入路径即可
input_data <- Read10X(data.dir = "data_path")
seurat_obj <- CreateSeuratObject(counts = input_data, project = "scRNA_seq")
# 执行流程
seurat_obj <- add_mito_ratio(seurat_obj)
qc_plots(seurat_obj)
seurat_obj <- subset(seurat_obj, subset = nFeature_RNA > 200 & percent.mt < 20)
seurat_obj <- standard_analysis(seurat_obj)
save_results(seurat_obj)
全部评论 (0)
还没有任何评论哟~
