🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第一步-数据整理)

写在前面

最近实在是忙的不行,根本没时间更新,一到家就只想睡觉。🥹

今天写个最近用到的分析方法,Weighted correlation network analysis (WGCNA),是非常经典的生信分析方法了,现在被引有9913次了,马上就要破万啦。😘

网上相关的教程也是不胜枚举,但多多少少是有些不尽人意的地方,有的少步骤,有的代码不全。😅
这里在仔细阅读了官方手册后,在这里和大家一起认真地step by step研究一下,查缺补漏吧。🥰

用到的包

rm(list = ls())
library(tidyverse)
library(WGCNA)

示例数据

数据是雌性小鼠肝脏的基因表达谱,来自这篇paper:👇


Ghazalpour A, Doss S, Zhang B, et al. Integrating genetic and network analysis to characterize genes related to mouse weight. PLoS Genet. 2006;2(8):e130. doi:10.1371/journal.pgen.0020130


dat <-  read.csv("./FemaleLiver-Data/LiverFemale3600.csv")

DT::datatable(dat)

整理数据

我们先提取表达矩阵,这里是需要转置的。😅

datExpr0 <-  as.data.frame(t(dat[, -c(1:8)]))
names(datExpr0) <-  dat$substanceBXH
rownames(datExpr0) <-  names(dat)[-c(1:8)]

DT::datatable(datExpr0)

基因或样本过滤

有一些表达值过低的基因或样本,我们是需要过滤掉的,包里也是提供了相应的函数,我们看一下吧。😂

5.1 查看是否有不好的基因或样本

我们的数据里没有不好的基因或者样本。😘

gsg <-  goodSamplesGenes(datExpr0, verbose = 3);
gsg$allOK

5.2 自动化过滤

这里提供一个if语句,显示不好的基因或者样本,进行自动化过滤。🥳

if (!gsg$allOK)
{
  ## 打印已删除的基因和样本名称
  if (sum(!gsg$goodGenes)>0) 
     printFlush(paste("Removing genes:", paste(names(datExpr0)[!gsg$goodGenes], collapse = ", ")));
  if (sum(!gsg$goodSamples)>0) 
     printFlush(paste("Removing samples:", paste(rownames(datExpr0)[!gsg$goodSamples], collapse = ", ")));
  datExpr0 = datExpr0[gsg$goodSamples, gsg$goodGenes]
}

样本聚类

接着我们需要对样本进行聚类,有一些outlier的样本可能还需要去除掉。🤨

6.1 绘制聚类树

聚类的方法很多,这里整理一下:👇

  • ward.D", "ward.D2", "single", "complete", "average", "mcquitty", "median", "centroid"
sampleTree <-  hclust(dist(datExpr0), method = "average");
plot(sampleTree, 
     main = "Sample clustering to detect outliers", 
     sub="", 
     xlab="", 
     cex.lab = 1.5, cex.axis = 1.5, cex.main = 2)

6.2 画个红线

这里我们有一个聚类比较差的样本,我们把它去掉吧。🥹

plo9888888=t(sampleTree, 
     main = "Sample clustering to detect outliers", 
     sub="", 
     xlab="", 
     cex.lab = 1.5, cex.axis = 1.5, cex.main = 2
     )

abline(h = 15, col = "red")

6.3 去除聚类异常的样本

clust <-  cutreeStatic(sampleTree, cutHeight = 15, minSize = 10)
table(clust)

6.4 提取过滤后矩阵

keepSamples <-  (clust == 1)
datExpr <-  datExpr0[keepSamples, ]
nGenes <-  ncol(datExpr)
nSamples <-  nrow(datExpr)

DT::datatable(datExpr)

加载临床/性状数据

接着我们把临床或性状数据(traits)导入进来,和前面的聚类树一起绘图。🥳

7.1 读入traits

traitData <-  read.csv("./FemaleLiver-Data/ClinicalTraits.csv");

DT::datatable(traitData)

7.2 整理traits

我们把一些不需要的traits去掉,只保留我们自己需要的,这里需要和样本名一一对应上。🤪

allTraits <-  traitData[, -c(31, 16)]
allTraits <-  allTraits[, c(2, 11:36) ]

femaleSamples <-  rownames(datExpr)
traitRows <-  match(femaleSamples, allTraits$Mice)
datTraits <-  allTraits[traitRows, -1]
rownames(datTraits) <-  allTraits[traitRows, 1]
collectGarbage()

DT::datatable(datTraits)

绘制最终聚类树

sampleTree2 <-  hclust(dist(datExpr), method = "average")
traitColors <-  numbers2colors(datTraits, 
                               signed = F,
                               colors = greenWhiteRed(100)
                               )

plotDendroAndColors(sampleTree2,
                    traitColors,
                    groupLabels =  names(datTraits),
                    main = "Sample dendrogram and trait heatmap")

save一下

这里我们保存一下数据,下期继续。😘

save(datExpr, datTraits, file = "FemaleLiver-01-dataInput.RData")

补充一下

现在很多paper都是先做差异基因分析,然后将DEGs提取出来做WGCNA,其实这种方法原作者并不推荐,还是推荐大家将所有基因初步过滤后进行WGCNA的分析,原文如下:👇

  • "We do not recommend filtering genes by differential expression. WGCNA is designed to be an unsupervised analysis method that clusters genes based on their expression profiles. Filtering genes by differential expression will lead to a set of correlated genes that will essentially form a single (or a few highly correlated) modules."

如何引用

📍
Langfelder, P., Horvath, S. WGCNA: an R package for weighted correlation network analysis. BMC Bioinformatics 9, 559 (2008). https://doi.org/10.1186/1471-2105-9-559


<center>最后祝大家早日不卷!~</center>


点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

<center> <b>📍 往期精彩 <b> </center>

📍 <font size=1>🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!</font>
📍 <font size=1>🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?</font>
📍 <font size=1>🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)</font>
📍 <font size=1>🤩 scRNA-seq | 吐血整理的单细胞入门教程</font>
📍 <font size=1>🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~</font>
📍 <font size=1>🤩 RColorBrewer | 再多的配色也能轻松搞定!~</font>
📍 <font size=1>🧐 rms | 批量完成你的线性回归</font>
📍 <font size=1>🤩 CMplot | 完美复刻Nature上的曼哈顿图</font>
📍 <font size=1>🤠 Network | 高颜值动态网络可视化工具</font>
📍 <font size=1>🤗 boxjitter | 完美复刻Nature上的高颜值统计图</font>
📍 <font size=1>🤫 linkET | 完美解决ggcor安装失败方案(附教程)</font>
📍 <font size=1>......</font>

本文由mdnice多平台发布

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

推荐阅读更多精彩内容