单细胞蛋白质活性推断流程 (Protein Activity Inference in Single Cells (PISCES),PISCES) 是一种基于调节网络的方法,用于分析单细胞基因表达谱。
PISCES 将高度可变且嘈杂的单细胞基因表达谱转化为稳健且可重复的蛋白质活性谱。PISCES 以两个关键算法为中心:重建精确细胞内网络的算法 ARACNe(Algorithm for the Reconstruction of Accurate Cellular Networks );以及通过富集调节子分析 (VIPER/metaVIPER) 对蛋白质活性进行虚拟推理的算法 。
简而言之,ARACNe 算法是从基因表达数据推断转录相互作用的最广泛使用的方法之一。VIPER 算法使用给定蛋白质的 ARACNe 推断的调节目标的表达,例如转录因子 (TF) 的目标,作为其活性的准确报告者。
通常,PISCES 可以从单细胞基因表达谱中准确评估多达 6000 种调节蛋白的活性,从而显着提高分析基因产物的生物学功能和相关性的能力,这些基因产物的 mRNA 在单个细胞中无法检测到(dropout)。
前言 本教程的特点在于帮助有需求,但是基础一般的个人,掌握哥大的这套PISCES流程 ,并且用示例帮助大家深刻理解这样的算法的奇特之处。助力大家进入单细胞蛋白活性的新天地。
首先你需要到github下载所需的文件,https://github.com/califano-lab/single-cell-pipeline,
如果大家的github网络不行,可以联系管理员索要网盘文件 !
另外,本教程免费,只需要再朋友圈集齐10赞即可获得所有内容
致谢哥伦比亚大学作者的分享
Lukas Vlahos: lv2395@cumc.columbia.edu
Pasquale Laise: pl2959@cumc.columbia.edu
Andrea Califano: ac2248@cumc.columbia.edu
准备工作 PISCES 需要以下包:
viper (v1.18.1)
cluster
ggplot2
ggpubr
umap
pheatmap
RColorBrewer
Matrix
biomaRt
psych
MUDAN
1 #装包大全 2 ## install packages from CRAN 3 install.packages('devtools' ) 4 install.packages('BiocManager' ) 5 install.packages('dplyr' ) 6 install.packages('Matrix' ) 7 install.packages('gdata' ) 8 install.packages('scater' ) 9 install.packages('knitr' )10 install.packages('kableExtra' )11 install.packages('reshape2' )12 install.packages('ggpubr' )13 install.packages('RcolorBrewer' )14 install.packages('umap' )15 install.packages('ggplot2' )16 install.packages('optparse' )17 ## install packages from BioConductor 18 BiocManager::install("DropletUtils" )19 BiocManager::install("EnsDb.Hsapiens.v86" )20 BiocManager::install("viper" )21 22 ## install packages from Github 23 #MUDAN包安装若出现Matrix版本报错, 重装Matrix1.2-18 24 devtools::install_local('d:/R/MUDAN-master.zip' )
1 #设定工作目录,设定自己的 2 setwd('d:/R/single-cell-pipeline-master/' ) 3 4 #载入几个配置好的脚本,不深究 5 source ('functions/process-utils.R' ) 6 source ('functions/cluster-functions.R' ) 7 source ('functions/viper-utils.R' ) 8 9 #加载R包,没有的自己装 10 library (ggplot2)11 library (ggpubr)12 library (viper)13 library (pheatmap)14 library (RColorBrewer)15 library (MUDAN)16 library (umap)17 raw.mat <- readRDS('tutorial/pbmc.rds' )18 19 #作者贴心给出了10X数据的读取方式(如果数据已经是 .rds 格式,就本教程而言,此步骤不需要运行!) 20 #raw.mat <- read10X('data-dir')
数据很多都是0,所存在dropout的可能
预处理 1 #质量控制,PISCES 提供的'mt-geneList.csv',非常贴心: 2 mt.genes <- read.table('mt-genes.csv' , header = TRUE , sep = ',' , stringsAsFactors = FALSE ) 3 hum.mt <- mt.genes$hum.ensg 4 QCPlots(raw.mat, hum.mt) 5 #没有表达的基因(所有细胞的读数为零)被删除 6 #少于 1000 个 UMI 或超过 100000 个 UMI 的单元格被认为是低质量的,也会被删除。 7 #如果细胞群的线粒体基因明显更多(通常超过 10%),使用 MTFilter 功能去除这些细胞。 8 mt.mat <- MTFilter(raw.mat, hum.mt) 9 #应针对你的数据调整 QCTransform 和 MTFilter 函数的参数(怕烦的就别调了) 10 #过滤数据集后,将使用 CPM 对其进行标准化。最后,然后生成rank.mat: 11 filt.mat <- QCTransform(mt.mat)12 cpm.mat <- CPMTransform(filt.mat)13 rank.mat <- RankTransform(cpm.mat)14 #rank.mat是通过执行“双秩”变换生成的:使用数据集的中值基因表达作为内部参考 15 ##当然,各位无脑跑代码即可
调控网络生成(ARACNe) ARACNe-AP 的详细教程,请参阅github:https://github.com/califano-lab/ARACNe-AP/blob/master/README.md,本教程先使用已经整理好的ARACNe的互作列表pbmc_r1-net-final.tsv。
1 #指定生成文件为tutorial/pbmc-cpm.tsv 2 ARACNeTable(cpm.mat, 'tutorial/pbmc-cpm.tsv' )
1 #执行ARACNe,pbmc_r1-net-final.tsv是自带的,ARACNe 针对每个调节器(TF、COTF 和信号蛋白)独立运行 2 RegProcess('tutorial/pbmc_r1-net-final.tsv' , cpm.mat, out.dir = 'tutorial/' , out.name = 'pbmc_r1-net-' )
如果要自己运行ARACNe,进去ARACNe文件夹,参照下面教程(第一次运行可以 跳过黄色底部分 ,直接到下面VIPER部分)
作者贴心地已经制作好了可执行的java脚本 ,所以不用自己装了
注意:推荐,先跑作者跑好的东西,等到理解时再回到这一部分 ,自己构建网络!!!!
放好文件(表达矩阵),普通调节因子列表(在human_ensg)里面有,打开cmd,不要害怕 ,根据下面教程来
三步走:
计算阈值
1 java -Xmx5G -jar aracne-ap.jar -e matrix.txt -o . --tfs tf.txt --pvalue 1E-8 --seed 1 \ --calculateThreshold
完后会生成一个MI文件,计算出一个阈值
运行,运行时间有点长,耐心等待
1 java -Xmx5G -jar aracne-ap.jar -e matrix.txt -o . --tfs tf.txt --pvalue 1E-8 --seed 1