生物信息学R语言源码单细胞Bio_Methods

外泌体多组学03-scMappR包:制造signature ma

2022-04-11  本文已影响0人  信你个鬼

老规矩,推荐大家看官网,资料:

此包简单介绍:

当整个组织的RNA-seq(bulk RNA-seq)完成时,确定基因表达的变化在多大程度上是由于细胞类型比例的变化往往是一个挑战。这一挑战可以通过单细胞RNA-seq(scRNA-seq)方法来解决,该方法在单细胞分辨率下测量基因表达,利用scRNA-seq从bulk RNA-seq中了解细胞类型比例(RNA-seq反褶积)。

scMappR(single cell Mapper),通过利用scRNAseq和现有的反褶积方法生成细胞类型表达数据,为从bulk RNA-seq中获得的DEGs分配细胞类型特异性评分。

scMappR能同时推断哪些细胞类型驱动特定DEG的表达,并利用推断的DEG细胞类型特异性来完成细胞类型特异性通路分析。

原理图:

为了推断哪些细胞类型驱动了特定DEG的表达,scMappR工作流首先使用已建立的反褶积工具来推断细胞类型的比例。

1640433453444-7dbed853-b389-4922-ae7a-935b6b2187e0.png

主要功能:

本教程需要使用的数据在:https://github.com/wilsonlabgroup/scMappR_Data,可前往自行下载下来保存到本地。

环境准备

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
if (!requireNamespace("devtools", quietly = TRUE))
    install.packages("devtools")

BiocManager::install("pcaMethods")
BiocManager::install("GSVA")

devtools::install_github("wilsonlabgroup/scMappR")
library(scMappR)

signature matrix构建过程

我主要比较关心cell-type signature matrix是如何构建的~

文章中主要使用scMappR构建了一个cell-type signature matrix,然后使用CIBERSORT:(https://cibersortx.stanford.edu/) 进行尿液外泌体的细胞类型溯源。

image-20220326013452045.png

溯源结果如下:

image-20220326013642200.png

那么这里的关键就是:cell-type signature matrix的构建。

scMappR包可以将单细胞count矩阵转化为signature matrix,步骤如下:

主要使用的函数为:process_dgTMatrix_lists

去这个包内部一探究竟:

image-20220328232035651.png image-20220328232144880.png

这个函数内部使用Seurat包处理单细胞数据,进行注释等操作。

只有一个样本的情况

只有一个样本时,不需要进行样本整合。
sm示例数据包含752个基因,236个细胞,组织类型为小鼠的眼睛。

rm(list=ls())

library(scMappR)
library(ggplot2)
library(RColorBrewer)
library(tidyverse)

# 参考数据例子
data(sm)
class(sm)
colnames(sm)
rownames(sm)
dim(sm)
sm[1:4,1:4]
4 x 4 sparse Matrix of class "dgCMatrix"
           TCTCTAACACAGGCCT GTTAAGCTCAAGGTAA ATTCTACGTAAGGGAA TAAGCGTCAAGCTGTT
Abi1                      .                7                1                1
AC026478.1                1                8                2                1
AC102483.1                7                2                3                7
AC120860.1                .                1                1                1

# 转成list对象
toProcess <- list(example = sm)

# 一键生成signature matrix
tst1 <- process_dgTMatrix_lists(toProcess, name = "testProcess", species_name = "mouse",
                                naming_preference = "eye", rda_path = "scMappR_Data-master/", 
                                toSave = TRUE, saveSCObject = TRUE, path = "./")

# 探索一下数据结果
str(tst1)
tst1$wilcoxon_rank_mat_t[1:4,1:4]
tst1$wilcoxon_rank_mat_or[1:4,1:4]
str(tst1$generes)
tst1$cellLabel

这个步骤有用到一个marker数据,为包中:mouse_cell_markers.rda:https://github.com/wilsonlabgroup/scMappR_Data

lname <- load("scMappR_Data-master/mouse_cell_markers.rda")
lname
str(gmt_list,max.level = 1)
List of 5
 $ gmt_both      :List of 721
 $ gmt_cellmarker:List of 579
 $ gmt_gobp      :List of 19394
 $ gmt_panglao   :List of 142
 $ gmt_subtype   :List of 19

总共有5个来源的常见细胞类型marker库

# CellMarker数据库marker
head(gmt_list$gmt_cellmarker)

$`Human: Kidney: Proximal tubular cell`
[1] "Akp3"   "Alppl2" "Alpi"  

$`Human: Liver: Ito cell (hepatic stellate cell)`
character(0)

$`Human: Endometrium: Trophoblast cell`
 [1] "Psg16"    "Psg23"    "Ceacam2"  "Ceacam13" "Psg22"    "Psg26"    "Ceacam14" "Psg21"    "Ceacam12" "Psg29"    "Ceacam3"  "Psg20"    "Psg25"   
[14] "Ceacam5"  "Psg19"    "Ceacam1"  "Psg27"    "Psg18"    "Psg28"    "Ceacam10" "Psg17"    "Gm5155"   "Ceacam11"

$`Human: Germ: Primordial germ cell`
[1] "Ddx4"

$`Human: Corneal epithelium: Epithelial cell`
[1] "Klf6"

$`Human: Placenta: Cytotrophoblast`
[1] "Fgf10"

# 看看有多少种组织
names(gmt_list$gmt_cellmarker)

[1] "Human: Kidney: Proximal tubular cell"
...
[565] "Human: Fetal liver: Lymphoblast"                                                 
[566] "Human: Fetal liver: Erythroblast"                                                
[567] "Human: Fetal liver: Endothelial cell"                                            
[568] "Human: Fetal liver: Kupffer cell"                                                
[569] "Human: Fetal liver: Mesenchymal cell"                                            
[570] "Human: Fetal liver: Hepatocyte"                                                  
[571] "Mouse: Liver: Hepatocyte"                                                        
[572] "Human: Lung: Basal cell"                                                         
[573] "Human: Lung: Secretory cell"                                                     
[574] "Human: Lung: Ciliated cell"                                                      
[575] "Human: Lung: Brush cell (Tuft cell)"                                             
[576] "Human: Lung: Neuroendocrine cell"                                                
[577] "Human: Lung: Ionocyte cell"                                                      
[578] "Mouse: Trachea: Basal cell"                                                      
[579] "Mouse: Trachea: Cycling basal cell"                                              

根据上面的process_dgTMatrix_lists函数,生成一个tst1对象,内容为:

image-20220330205627626.png image-20220330205655911.png

ranks值与or值的核心代码:所以,以后如果需要比较灵活的生成signature matrix,直接用下面的公式就可以了。

image-20220330211633415.png

对于signature matrix,行是marker基因,列是注释的cell-type

image-20220330205450711.png image-20220330205401206.png

其余情况

这个包还有列出有多个样本时和已经有注释的Seurat对象如果操作,那么,到这里,知道了ranks值与or值的核心代码,其实就可以脱离这个包自己造signature matrix了。

上一篇 下一篇

猜你喜欢

热点阅读