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

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

此包简单介绍:

当整个组织的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

主要功能:

  • 1.Transforming summary statistics of differentially expressed genes by cell-type specific information
    • scMappR_and_pathway_analysis()函数
    • two_method_pathway_enrichment()函数
    • cwFoldChange_evaluate()函数
  • 2.Enriching cell-type markers in a list of genes
  • 3.Processing scRNA-seq count data into a signature matrix

本教程需要使用的数据在: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,步骤如下:

  • scMappR 输入一个count矩阵列表(列表内可以是 list、 dCGMatrix 或matrix对象类型) ,使用Seurat V4 对其进行重新处理
  • 然后,基于 CellMarker 和 Panglao 数据库,使用 GSVA 和 Fisher精确检验方法查找细胞类型marker并识别潜在的细胞类型
  • 最后,使用odds ratios值与ranks值创建一个signature matrix
  • 这个包内置可选的组织数据有: “brain”, “epithelial”, “endothelial”, “blood”, “connective”,“eye”, “epidermis”, “Digestive”, “Immune”, “pancreas”, “liver”, “reproductive”, “kidney”, “respiratory”

主要使用的函数为: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对象,内容为:

  • wilcoxon_rank_mat_t:数据框,为signature matrix的ranks值,rank值为(-log10(Padj) * sign(fold-change))
image-20220330205627626.png
  • wilcoxon_rank_mat_or:数据框,signature matrix的odds-ratios值
image-20220330205655911.png

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

image-20220330211633415.png

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

  • generes:注释后的细胞类型差异表达结果,为list对象,每一个list为此细胞类型中的细胞相对于剩余所有细胞的差异表达结果
image-20220330205450711.png
  • cellLabel:细胞注释详细情况,由四种方法分别注释的结果CellMarkerFisher,PanglaoFisher,CellMarkerGSVA,PanglaoGSVA。以及the top 30 markers per cluser。
image-20220330205401206.png

其余情况

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容