Advertisement

单细胞Seurat标准分析流程R语言封装

阅读量:

单细胞Seurat标准分析流程R语言封装

  1. 数据预处理与质控(线粒体基因比例计算、QC图表生成)
  2. 标准化与高变基因筛选
  3. PCA/UMAP降维与聚类分析 差异表达分析模块
  4. 自动化输出PNG可视化图表(质控小提琴图、UMAP聚类图)
  5. 结果将保存在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)

还没有任何评论哟~