❝1、《KS科研分享与服务》公众号有QQ交流群,但是进入门槛是20元,请考虑清楚。群里有推文的注释代码和示例数据,付费内容半价,还可以与大家交流。 2、单细胞转录组全流程代码需收费,收费代码包含公众号付费内容,也有很多新增加的内容。需进群或者需单细胞代码的小伙伴请添加作者微信了解,请备注目的,除此之外请勿添加,谢谢! 3、付费文章集合有打包价哦! 详情请联系作者: ❞ 单细胞转录组常见主流(依据是近三年高分文章,例如nature系列SCI使用)细胞通讯方式我们已经几乎将所有涉及到了,Nichenet算是最后一个吧,当然后期有更好更新的还是会继续更新: NicheNet利用同源配体、受体、信号通路和基因组靶点的表达信息来推断特定查询基因集的细胞通信模式。Nichenet和其他的通讯分析不一样,它是根据先验知识,也就是已经构建好了互作数据库,在分析时调用它构建好的数据库,通过基因表达强弱相关,去推断确认细胞通讯!这种方法弥补了仅分析受配体相互作用的局限性。具体的原理方法的使用感兴趣的可参考原作者文章和源代码:https://www./articles/s41592-019-0667-5?utm_source=xmol&utm_medium=affiliate&utm_content=meta&utm_campaign=DDCN_1_GL01_metadatahttps://github.com/saeyslab/nichenetr首先是文件准备,nichenet先验模型数据下载,之前它提供的链接我这里进不去了,后来网上找到了另外的链接,可直接下载到本地后读入:
#ligand_target_matrix下载地址:https://zenodo./record/5518463/files/ligand_target_matrix.rds?download=1 ligand_target_matrix <- readRDS("ligand_target_matrix.rds") ligand_target_matrix[1:5,1:5] # #lr_network下载地址:https://zenodo./record/5518463/files/lr_network.rds?download=1 lr_network <- readRDS("lr_network.rds") head(lr_network) # #weighted_networks下载地址:https://zenodo./record/5518463/files/weighted_networks.rds?download=1 weighted_networks <- readRDS("weighted_networks.rds") weighted_networks_lr = weighted_networks$lr_sig %>% inner_join(lr_network %>% distinct(from,to), by = c("from","to"))
#安装 # install.packages("devtools") devtools::install_github("saeyslab/nichenetr") library(Seurat) library(nichenetr) library(pheatmap) library(tidyverse) library(RColorBrewer) setwd("D:/KS项目/公众号文章/单细胞nichenet") human_data <- readRDS("./单细胞nichenet/human_data.rds") https://www./index.php?c=show&id=676, 本示例数据有两个分组,GM、BM,可以简单理解为实验组和对照组,或者说正常和疾病!中心粒细胞(Neutrophil)在这两组中有明显的变化(可以从细胞比例和差异基因上看出),那么我们想通过细胞互作去研究neu在这两组条件下的基因表达模式差异(感兴趣的基因集),是由于什么互作受配体导致基因表达模式的变化,我们就可以使用nchenet进行分析!那么Neutrophil是受体细胞,其他细胞是sender。nichenet提供了一步法的函数进行分析,这里我们使用nichenet_seuratobj_aggregate函数示例,这里的参数我们使用默认,一些top ligand、target的数量是可以调整的。
#本例中,Mast细胞数量太少,不符合分析要求,故而不参与 table(human_data$celltype) table(human_data$group) nichenet_output = nichenet_seuratobj_aggregate( seurat_obj = human_data, receiver = "Neutrophil", condition_colname = "group",#分组 condition_oi = "GM", #实验组 condition_reference = "BM", #对照组 sender = c("Macrophage","T cell", "mDC"), ligand_target_matrix = ligand_target_matrix, lr_network = lr_network, weighted_networks = weighted_networks, organism = "human", assay_oi='RNA') 直接查看list就会自动出图,不过我们还是一步步从上到下看看结果吧。首先是ligand_activities,及配体活性,nichenet使用person对这些配体排序,使用nichenet_output$ligand_activities可查看具体的配体信息。可以看看主要影响受体细胞Neutrophil的配体在sender细胞中的表达情况:nichenet_output$ligand_activities nichenet_output$top_ligands#top20的ligands DotPlot(human_data[, Idents(human_data) %in% c( "Macrophage" , "T cell" , 'mDC')], features = nichenet_output$top_ligands %>% rev())+ theme(axis.text.x = element_text(angle = 45, hjust = 1)) 看看这些ligand是否在处理前后有变化差异。可以看到,很多ligands在不同的细胞中有很大的差异,有些配体在处理后显著上调,那么这些ligands可能需要收到关注,因为ligands的变化影响受体细胞的基因表达。nichenet_output$ligand_differential_expression_heatmap 查看推断活跃的受配体对,top配体对应的受体基因:可以看到每个ligands具体调控的基因,那么可以去继续研究感兴趣的ligands的target基因。
nichenet_output$ligand_target_matrix nichenet_output$ligand_target_df
nichenet_output$ligand_target_heatmap + scale_fill_gradient2(low = "whitesmoke", high = "royalblue") 看看这些target在receiver细胞中处理前后的表达变化:
VlnPlot(human_data %>% subset(idents = "Neutrophil"), features = nichenet_output$top_targets, split.by = "group", pt.size = 0, combine = FALSE, stack = T)+ theme(axis.title.y = element_blank(), axis.ticks = element_blank(), axis.text.x = element_blank()) nichenet可一次性完成以上所有的图(ligand和target):不过没必要,看自己需求!nichenet_output$ligand_activity_target_heatmap 和上面一样,查看output文件中的ligands-receptor结果。受体-配体互作:
nichenet_output$ligand_receptor_heatmap
nichenet_output$ligand_receptor_heatmap_bonafide 好了,这就是本节内容了,需要消化的还是挺多的,毕竟应用需要条件。当然了,要有具体的需求才能使用,得到好的结果。后期我们会演示下受配体circle plot以及逐步法进行的受配体分析(涉及pseudobulk差异分析)。
|