课前准备---实现多分组多重复的细胞通讯差异分析(封装版)

作者,Evil Genius

组织是一个有序的统一体,细胞与细胞之间不是割裂的存在,而是存在频繁的相互作用,这种相互作用,是通过配体细胞表达配体,配体作用于受体和受体细胞,从而引起受体细胞的生物学变化。正是因为这种频繁的相互作用,体现了细胞之间的有序统一,以及在受到疾病等外界刺激条件下对这种有序状态的影响和细胞之间交流的变化以应对这些刺激。为了分析细胞之间的相互作用,开发了很多方法,其中CellphoneDB、CellChat、NicheNet最为经典,极大地促进了细胞交流的研究。

细胞通讯导论

多细胞生物是由不同类型的细胞组成的“社会”,而且是一个开放的“社会”,这个“社会”中的每个细胞必须协调他们的行为,为此,细胞建立通讯联络是必须的。如生物体的生长发育、分化、各种组织器官的形成、组织的维持以及各种生理活动的协调,都需要高度精确和高效的细胞间的通讯机制。

细胞之间的相互通讯是一个极其复杂的过程,通常指一个细胞发出的信息通过介质传递到另一个细胞产生相应的反应。细胞通讯中有两个基本概念:细胞信号传导和信号转导,前者强调的产生与细胞间的传送,而信号转导是接受与接收后信号转换的方式途径和结果。细胞有三种通讯方式:第一种通过化学信号分子,这是动物和植物最普遍采用的通讯方式;第二种通过相邻细胞表面分子的粘着;第三种通过细胞与细胞外基质的粘着。

细胞通讯基本过程:①信号分子的合成:一般的细胞都合成信号分子,而内分泌细胞是信号分子的主要来源。②信号分子从信号生成细胞释放到周围环境中:这是一个相当复杂的过程,特别是蛋白质类的信号分子,要经过内膜系统的合成、加工、分选和分泌,最后释放到细胞外。③信号分子向靶细胞运输:运输的方式有很多种,激素类主要是通过血液循环系统运送到靶细胞,而致密组织的信号分析则是释放到周围环境中影响周围的细胞。④靶细胞对信号分子的识别和检测:主要通过位于细胞膜或细胞内受体蛋白的选择性的识别和结合。⑤细胞对细胞外信号进行跨膜转导,产生细胞内信号。⑥细胞内信号作用于效应分子,进行逐步放大的级联反应,引起细胞代谢、生长、基因表达等方面的一系列变化。

细胞完成信号应答之后,要进行信号解除,终止细胞应答,主要是通过对信号分子的修饰、水解或结合等方式降低信号分子的水平和浓度以终止反应。示意图如下:

而细胞之间的通讯,也成为了单细胞数据分析非常重要的一环。

现在的单细胞通讯都是都是以大样本量著称,其中往往存在多个分组,比如疾病组,对照组,治疗组等,多重复,比如疾病组含有多个样本等等,这就需要我们针对复杂的条件实现各个分组的比较分析,要超越两组比较。
例如三组多重复比较,就要实现三组之间的相互通讯差异分析,还有就是更多的分组,比如多个时间点等情况。

当信息来源越多的时候,得到的结果就越准确。

所以我们希望用一个脚本实现多分组的比较(单样本的通讯分析大家自己玩就行了)。

完整封装版的脚本如下,我们课上会讲解,有条件的大家多研究研究,脚本很长,需要耐心
#! usr/R
#####zhaoyunfei
#####20240625
#####https://nbviewer.org/github/saeyslab/multinichenetr/blob/main/vignettes/basic_analysis_steps_MISC.html

library(argparse)
parser = ArgumentParser()
parser$add_argument("--rds", help="rds file",required = T)
parser$add_argument("--cluster", help="cluster.csv")
parser$add_argument("--outdir", help="outdir,Absolute path",required =T)
parser$add_argument("--sample", help="sample name",required =T)
parser$add_argument("--species", help="the species",choices = c('human','mouse'),required =T)
args <- parser$parse_args()

suppressMessages({
library(SingleCellExperiment)
library(dplyr)
library(ggplot2)
library(nichenetr)
library(multinichenetr)
library(Seurat)
library(stringr)
})

rds = args$rds
cluster = args$cluster
outdir = args$outdir
sample = args$sample
organism = args$species

options(timeout = 120)

if(organism == "human"){
  
  lr_network_all = rea
  • 29
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值