美文网首页单细胞转录组r
scMLnet 包:使用单细胞测序数据推断细胞通讯中的“配体-受

scMLnet 包:使用单细胞测序数据推断细胞通讯中的“配体-受

作者: 春秋至 | 来源:发表于2022-06-13 20:58 被阅读0次

    生信碱移

    scMLnet 使用笔记

    本文将介绍如何使用 scMLnet 从单细胞 RNA 测序数据推断细胞通讯中的调控网络

    中山大学 孙小强 教授团队于2020年开发了一种 scRNA-seq 数据驱动的多层网络方法 (scMLnet)。scMLnet不仅可以模拟细胞间通信,还可以模拟细胞内基因调控网络。其基于细胞类型特异性基因表达、先验网络信息和统计推断,整合了细胞间通路(配体-受体相互作用)和细胞内子网络(受体-TF 通路和 TF-靶基因相互作用)。这意味着,scMLnet 可用于使用 scRNA-seq 数据预测细胞内基因表达的微环境调节因子,并了解细胞间通讯的功能作用。

    文章截图

    github项目地址:

    https://github.com/SunXQlab/scMLnet

    软件包与输入的配置

    首先需要在R语言中安装 scMLnet 包

    install.packages("devtools")
    library(devtools)
    devtools::install_github("YUZIXD/scMLnet")
    

    同时需要进行python及多层网络分析相关库的安装:

    多层网络主页

    ①pip的安装:通过 https://pypi.python.org/pypi/pip#downloads 网址安装pip管理工具,下载压缩包,解压后使用cmd命令窗口进入解压文件夹目录如下图,运行 python setup.py install 即可

    安装包解压示意

    ②相关库的安装:打开cmd命令行运行以下代码安装 networkx、matplotlib、scipy、pymnet

    pip install networkx
    pip install matplotlib
    pip install git+https://github.com/bolozna/Multilayer-networks-library
    pip install scipy
    

    ③工作目录下提前放好codedatabase两个文件夹:

    例图

    这两个文件直接在github上下载就好了:

    项目github主页

    注意一下,database的文件是可以自己准备的,是配体-受体受体-TFTF-mRNA的互作信息

    正式运行

    #引用R包
    library(dplyr)
    library(Seurat)
    library(patchwork)
    library(ggplot2)
    library(SingleR)
    library(cowplot)
    library(tidyverse)
    library(scMLnet)
    

    seurat对象的构建:

    #设置目录并读取data文件夹下的10X文件
    data_dir <- paste0(getwd(),"/data")  #路径必须中文
    samples=list.files(data_dir)
    dir=file.path(data_dir,samples)
    afdata <- Read10X(data.dir = dir)
    # 简单创建一个seurat对象“sample”,每个feature至少在3细胞中表达同时每个细胞中至少200个feature被检测到
    sample <- Seurat::CreateSeuratObject(counts = afdata, 
                                         project = "SeuratObject", 
                                         min.cells = 3,
                                         min.features = 200)
    # 计算一下线粒体与核糖体基因的百分比,在sample@meta.data添加列名"percent.mt"与"percent.rb"
    sample <- Seurat::PercentageFeatureSet(sample, pattern = "^MT-", col.name = "percent.mt")
    sample <- Seurat::PercentageFeatureSet(sample, pattern = "^RP", col.name = "percent.rb")
    # 质控
    mask1 <- sample$nCount_RNA >= 1000
    mask2 <- sample$nFeature_RNA >= 500
    mask3 <- sample$percent.mt <= 20
    mask <- mask1 & mask2 & mask3
    sample <- sample[, mask]
    # 标准化
    sample <- Seurat::SCTransform(sample)
    # 简单降个维
    sample <- Seurat::RunPCA(sample)
    sample <- Seurat::RunUMAP(sample, dims = 1:30)
    sample <- Seurat::RunTSNE(sample, dims = 1:30)
    # 分一下cluster
    sample <- Seurat::FindNeighbors(sample, dims = 1:30)
    sample <- Seurat::FindClusters(sample, resolution = 1.2)
    #singleR简单注释一下
    refdata=celldex::HumanPrimaryCellAtlasData() 
    afdata <- GetAssayData(sample, slot="data")
    cellpred <- SingleR(test = afdata,  
                        ref = refdata, 
                        labels = refdata$label.main,
                        method = "cluster", 
                        clusters = sample@meta.data$seurat_clusters)
    metadata <- cellpred@metadata
    celltype = data.frame(ClusterID = rownames(cellpred), 
                          celltype = cellpred$labels, 
                          stringsAsFactors = F)
    #########细胞注释后结果可视化
    newLabels=celltype$celltype
    names(newLabels)=levels(sample)
    sample=RenameIdents(sample, newLabels)
    

    简单可视化一下:

    #简单可视化一下
    p1<-DimPlot(sample, reduction = "pca")
    p2<-DimPlot(sample, reduction = "tsne")
    p3<-DimPlot(sample, reduction = "umap")
    p1+p2+p3
    
    三种降维方法汇总

    参数设置与输入文件的准备:

    #增加一列细胞属性到meta文件里
    afcell=as.data.frame(sample@active.ident)
    afcell=afcell[rownames(sample@meta.data),,drop=F]
    sample$cell=afcell[,1]
    #参数设置
    pval <- 0.05
    logfc <- 0.15
    LigClu <- "T_cells"       #研究关注提供配体的细胞亚群
    RecClu <- "monocyte"     #研究关注提供受体的细胞亚群
    workdir <- "sample/Macrophage_Neutrophils" #结果路径
    PyHome <- "D:/Python/python.exe" #python软件路径
    #生成输入文件
    BarCluFile=as.data.frame(sample@meta.data[,"cell",drop=F])
    colnames(BarCluFile)="Cluster"
    out=cbind(Barcode=rownames(BarCluFile),BarCluFile)
    write.table(out,file="cellType.txt",sep="\t",quote=F,row.names=F)
    

    我的python安装在D盘,所以 python.exe 的路径就好设置了:

    python路径

    构建配体-受体-TF-mRNA多层网络:

    #计算配体-受体-TF-mRNA多层网络
    netList <- RunMLnet(sample@assays$RNA, "cellType.txt", RecClu, LigClu,pval, logfc)
    #可视化
    DrawMLnet(netList,LigClu,RecClu,workdir,PyHome,plotMLnet = T)
    
    结果展示

    就分享到这里了

    示例文件跟上篇单细胞推文一样(公众号:生信碱移)

    有问题可以后台咨询

    短时间没有回复请各位见谅,说不定正在忙

    doge

    相关文章

      网友评论

        本文标题:scMLnet 包:使用单细胞测序数据推断细胞通讯中的“配体-受

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