美文网首页
空间转录组-多样本数据合并分析

空间转录组-多样本数据合并分析

作者: 大魔王鱼鱼鱼 | 来源:发表于2023-11-20 17:22 被阅读0次

    1. 读入单个样本

    for (samp in samples){
      prefix <- paste0("Data_",samp)
      sample.cr.dir <- paste0("Cellranger/",
                              samp,"/FF/outs/")
      seurat_data <- Load10X_Spatial(
            data.dir = sample.cr.dir,# 默认filtered_feature_bc_matrix.h5文件为输入
            assay = "Spatial",
            slice = samp,
            filter.matrix = TRUE,
            to.upper = FALSE)
      #给cellid增加样本名,避免合并时barcode重复,不加的话Seurat会自动给barcode加后缀避免重复
      # seurat_data <- RenameCells(seurat_data, add.cell.id = prefix) 
      seurat_data <- seurat_data[,seurat_data$nCount_Spatial>0]
      seurat_data$orig.ident <- samp
      seurat_data <- SCTransform(seurat_data,assay = "Spatial",verbose = FALSE) #合并样本时必须都有SCT这个assay才能合并
      seurat_data <- FindVariableFeatures(seurat_data) #合并后的数据hvg来自单样本hvg数据
      assign(prefix,seurat_data)
    }
    

    2. 合并数据

    if (length(samples)>1){
        other <- ls(pattern="Data_")[-1]
        m <- function(x){eval(as.name(x))}
        data <- merge(x = get(ls(pattern="MergeData_")[1]),
                      y = c(lapply(X = other, function(x) m(x))))
      }
    data$Sample <- data$orig.ident
    merged.hvg <- c(lapply(X=ls(pattern="Data_"),function(x) VariableFeatures(x)))
    VariableFeatures(data) <- unique(merged.hvg)
    DefaultAssay(data) <- "SCT"
    

    Tips

    (1)合并后的数据如何删除部分样本

    selected_sample_names <- c("Sample1","Sample2","Sample3","Sample4","Sample5","Sample6")
    sample6 <- subset(sample7,cells = rownames(sample7@meta.data[sample7$Sample %in% selected_sample_names,]))
    sample6@images <- sample6@images[selected_sample_names]
    sample6[["SCT"]]@SCTModel.list <- sample6[["SCT"]]@SCTModel.list[1:6]#需要手动先看一下哪个model list是空的
    

    (2)HE图片背景不干净如何修改后替换

    需要注意⚠️修图后保存的时候图片的长宽要和原图一致
    可使用图片预览工具,上方打开“工具-修改尺寸“


    image.png
    library(png)
    #将修改好的图片读入
    new_image <- readPNG(paste0("../HEimage_adjusted/",samp,".tissue_lowres_image.png")) 
    # 从image替换掉
    visium_data[["Sample1"]]@image= new_image
    

    (3)删除部分spot

    有时候会有少数spot脱离组织,散落在片子空白区域,我们不想将其纳入分析。

    • 可以使用10x软件loupe browser读取cloupe文件,手动选取要删除的spot,将其输出保存未csv文件:


      delete_spot.csv
    • 对样本rds中对应spot进行删除处理
    del_spots <- read.csv("delete_spot.csv")
    delspots <- del_spots$Barcode
    sample1.f <- sample1[,setdiff(colnames(sample1),delspots)]
    

    相关文章

      网友评论

          本文标题:空间转录组-多样本数据合并分析

          本文链接:https://www.haomeiwen.com/subject/zrmvwdtx.html