一个跨物种研究关联基因表达模式的好方法

作者:oct
审稿:童蒙
编辑:amethyst

一、基本概念

WGCNA( Weighted correlation network analysis)译为加权基因共表达网络分析,是一种经常用于基因组和系统生物学研究中的网络分析方法。在对一般的数据挖掘分享中,用来发现大量变量的成对关系,例如利用基因表达数据,来构建基因共表达网络,得到基因互作的关系。

在许多WGCNA中,需要对网络中各个模块的特性,以及随着不同情况下的变化,模块的变化情况进行研究。比如,可以研究不同组织或不同物种之间的模块保存程度(module preservation)。模块保存程度统计信息(Preservation Statistic)旨在量化参考数据集和测试数据集之间模块保存情况。WGCNA R包中的函数modulePreservation用于计算不同数据集之间的模块保存统计信息。modulePreservation函数用法可以参考网页:https://rdrr.io/cran/WGCNA/man/modulePreservation.html

以往的模块保存程度统计信息可以分为四大类:

  • 交叉列表统计信息(Cross-tabulation):会比较参考数据集和测试数据集中的聚类情况(即模块类别分配),因此它们需要将聚类过程也应用于测试数据。
  • 密度统计信息(Density):不需要在测试数据集中分配模块标签。
  • 可分离性统计信息(separability):不需要在测试数据集中分配模块标签。
  • 稳定性统计信息( stability):当将一定数量的人工噪声添加到数据中时,稳定性统计通常研究数据集的稳定性,很少用在量化模块保存程度。

在以往分类的基础上,基于量化模块保存度,目前又细分为以下五类:

  • 交叉列表统计信息(Cross-tabulation);
  • 密度统计信息(Density);
  • 可分离性统计信息(separability);
  • 连通性统计信息(Connectivity):用于确定参考网络基因之间的连接模式是否类似于测试网络中的连接模式;
  • 综合统计信息(Composite):整合密度统计信息与连通性统计信息,综合评估模块保存度。

这些统计数据通常通过每个数据集中相似对象(通常是基因)的数量或每个数据集之间不相似对象的数量来评估数据集。

modulePreservation函数,一般会统计以下列表的统计信息,其中Type列为每类统计量的类别,Network列为每类统计量使用的网络类型,*input列表示需要输入的数据类型,输入数据需要以下类别:

  • Lbl:module label;
  • Adj:general network adjacency;
  • datX:numeric data from which a correlation network is constructed。

二、适用的场景

转录组或芯片数据在数据库中存在大量类似的研究结果,那么这些结果之间的相容性如何?WGCNA中modulePreservation函数用于阐述不同实验结果的基因表达模式的关联;

不同物种之间基因表达模式的分析也是多数文章的研究方向,WGCNA中modulePreservation函数同样也适用于阐述不同物种的基因表达模式的关联,比如人与黑猩猩基因表达模块之间的基因保存性,类似的分析有很多,比如人与牛,人与猪等。

三、modulePreservation 函数实践

以下命令用于演示在黑猩猩数据集中人脑共表达模块的保存情况。

1. 配置R运行环境

启动R之后,设置工作目录并加载所需的包。

# Display the current working directory
getwd()
# If necessary, change the path below to the directory where the data files are stored.
# "." means current directory. On Windows use a forward slash / instead of the usual 
workingDir = "."
setwd(workingDir)
# Load the package
library(WGCNA);
# The following setting is important, do not omit.
options(stringsAsFactors = FALSE)

2. 导入输入数据

2.1 输入表达矩阵

首先下载数据,存放在本地目录中,表达矩阵数据存放在在Dataset 1 (network construction).csv.bz2中。

# data input
file = bzfile("Dataset 1 (network construction).csv.bz2")
dat1 = read.csv(file, header=T)

Dataset 1 (network construction).csv数据展示:

注:为展示方便,该数据共39列,中间省略32列。

表达矩阵包含36个样本,每一行对应一个基因/探针,每一列对应一个样本或辅助信息,我们需要删除辅助信息,并转置表达矩阵用于后续分析。我们只保留BrainvariantH列>0的基因/探针。

dim(dat1)
names(dat1)
datExpr=data.frame(t(dat1[dat1$Brain_variant_H>0,2:39]))
indexHuman=c(19:36)
indexChimp=c(1:18)

现在我们设置多组表达数据和相应的模块颜色。

# Number of data sets that we work with
nSets = 2
# Object that will contain the expression data
multiExpr = list()
multiExpr[[1]] = list(data = datExpr[indexHuman, ])
multiExpr[[2]] = list(data = datExpr[indexChimp, ])
# Names for the two sets
setLabels = c("Human", "Chimp")
# Important: components of multiExpr must carry identificating names
names(multiExpr) = setLabels
# Display the dimensions of the expression data (if you are confused by this construct, ignore it):
lapply(multiExpr, lapply, dim)

最后一条命令的输出确认有两个表达数据集,每个数据集包含18个样本中4000个基因的表达测量值。

注意multiExpr的结构:它是一个列表,每个输入数据集必须包含一个称为data的组件并且包含表达数据。外部列表必须具有适当的名称,以便表达式数据可以与我们接下来创建的模块标签匹配。

2.2 加载模块标签

WGCNA分析中,通过构建共表达矩阵,计算基因间的相似性,确定基因模块,通常用不同的颜色来代表模块,即每个模块中的基因对应同一种color,方便后续的模块可视化。后续会分享该部分的相关内容。

HumanChimp-OldhamAnalysis-colorHuman-colorChimp-inNetwork.RData中包含黑猩猩表达矩阵中每个基因的模块颜色信息(colorChimp)以及人表达矩阵中每个基因的模块颜色信息(colorHuman)。

# 加载从网络分析获得的模块标签,并创建一个列表。
x = load("HumanChimp-OldhamAnalysis-colorHuman-colorChimp-inNetwork.RData") # Create an object (list) holding the module labels for each set:
colorList = list(colorHuman, colorChimp)
# Components of the list must be named so that the names can be matched to the names of multiExpr
names(colorList) = setLabel

注意,multiExpr的名称和multiColor(即这里的colorList)的名称必须对应。

3. 对模块保存程度进行统计分析

这里使用modulePreservation进行模块保存性计算,运行后将结果保存为Rdata,下次可直接加载,节省时间。

system.time( {
 mp = modulePreservation(multiExpr, colorList,
             referenceNetworks = c(1:2),
             loadPermutedStatistics = FALSE,
             nPermutations = 200,
             verbose = 3)
} )

save(mp, file = "HumanChimp-HumanSpecific-modulePreservation.RData")

该函数输出的是一个嵌套列表,包括quality,preservation,accracy,permutationDetails,referenceSeparability和testSeparability,每个列表分别包含4或5个组成部分,包含:

  • observed(观察值);
  • Z(Z得分);
  • log.p(以10为底的p值的对数);
  • log.pBonf(Bonferoni校正后的p值的以10为底的对数);
  • q(可选,q值)。

每个列表包含Z,log.p,log.pBonf(可选的q值),accuracy中包含的observedOverlapCounts和observedFisherPvalues被构造为2级列表,其中外部组件对应于参考集,内部组件对应于测试集。例如,preservation$observed[[1]] [[2]]包含用于保存测试集中参考集的密度和保存性等保存统计信息,1是参考集,2是测试集。

4. 对模块保存程度进行结果展示

ref = 1 # Select the human data as reference
test = 2 # Select the chimp data as test
statsObs = cbind(mp$quality$observed[[ref]][[test]][, -1], mp$preservation$observed[[ref]][[test]][, -1])
statsZ = cbind(mp$quality$Z[[ref]][[test]][, -1], mp$preservation$Z[[ref]][[test]][, -1])

我们看主要输出Zsummary评分。

print(signif(statsZ[, "Zsummary.pres", drop = FALSE],2))

一般文献中认为:

  • Zsummary>10:高度保存;
  • 2<Zsummary<10:弱保存;
  • Zsummary<2:无保存证据。

查看不同物种的不同模块之间的overlap基因数与overlap pvalue。

overlap = cbind(mp$accuracy$observedCounts[[1]][[2]], mp$accuracy$observedFisherPvalues[[1]][[2]])
print(overlap)

输出结果的前8列为overlap基因数,后8列为 overlap pvalue。

参考文献

  • Jiang Z, Sun J, Dong H, Luo O, Zheng X, Obergfell C, Tang Y, Bi J, O'Neill R, Ruan Y, Chen J, Tian XC. Transcriptional profiles of bovine in vivo pre-implantation development. BMC Genomics. 2014 Sep 4;15(1):756. doi: 10.1186/1471-2164-15-756. PMID: 25185836; PMCID: PMC4162962.
  • Langfelder P, Luo R, Oldham MC, Horvath S. Is my network module preserved and reproducible? PLoS Comput Biol. 2011 Jan 20;7(1):e1001057. doi: 10.1371/journal.pcbi.1001057. PMID: 21283776; PMCID: PMC3024255.
  • Khan FA, Liu H, Zhou H, Wang K, Qamar MTU, Pandupuspitasari NS, Shujun Z. Analysis of Bos taurus and Sus scrofa X and Y chromosome transcriptome highlights reproductive driver genes. Oncotarget. 2017 Apr 13;8(33):54416-54433. doi: 10.18632/oncotarget.17081. PMID: 28903352; PMCID: PMC5589591.
  • Li Y, Sun J, Ling Y, Ming H, Chen Z, Fang F, Liu Y, Cao H, Ding J, Cao Z, Zhang X, Bondioli K, Jiang Z, Zhang Y. Transcription profiles of oocytes during maturation and embryos during preimplantation development in vivo in the goat. Reprod Fertil Dev. 2020 Apr;32(7):714-725. doi: 10.1071/RD19391. PMID: 32317096.
  • Xue Z, Huang K, Cai C, Cai L, Jiang CY, Feng Y, Liu Z, Zeng Q, Cheng L, Sun YE, Liu JY, Horvath S, Fan G. Genetic programs in human and mouse early embryos revealed by single-cell RNA sequencing. Nature. 2013 Aug 29;500(7464):593-7. doi: 10.1038/nature12364. Epub 2013 Jul 28. PMID: 23892778; PMCID: PMC4950944.
  • Miller JA, Horvath S, Geschwind DH. Divergence of human and mouse brain transcriptome highlights Alzheimer disease pathways. Proc Natl Acad Sci U S A. 2010 Jul * 13;107(28):12698-703. doi: 10.1073/pnas.0914257107. Epub 2010 Jun 25. PMID: 20616000; PMCID: PMC2906579.
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容