一文看懂WGCNA 分析(2019更新版)

2021-01-19 生信技能樹

發現我這個4年前的WGCNA分析教程可以排在自己最受歡迎的前10個教程裡面了,而且直接以我這個授課代碼出的SCI文章就有38篇了,當然不排除很多學員使用我的代碼卻不告知我,也不會致謝我。

不過,我這點戰績根本就算不上什麼,其實這個WGCNA包已經是十多年前發表的了,仍然是廣受好評及引用量一直在增加,破萬也是指日可待。

大家首先可以看到3個教程:

2016-WGCNA-HCC-hub-gene.pdf 中文文章範例)

WGCNA_GBMTutorialHorvath.pdf    

WGCNA_YeastTutorialHorvath.pdf

其中第一個是我4年前的WGCNA分析教程最主要的參考文獻,後面兩個是英文教程,我相信你大概率是不會去看的,不過,我還是放在這裡了。(還是需要強調,這兩個英文教程完整的展現了WGCNA的全部用法)

然後你只需要簡單瀏覽本文檔,就可以在rstudio裡面打開後綴是proj的文件,打開R代碼,一步步跟著學習啦!

基本概念

WGCNA其譯為加權基因共表達網絡分析。該分析方法旨在尋找協同表達的基因模塊(module),並探索基因網絡與關注的表型之間的關聯關係,以及網絡中的核心基因。

適用於複雜的數據模式,推薦5組(或者15個樣品)以上的數據。一般可應用的研究方向有:不同器官或組織類型發育調控、同一組織不同發育調控、非生物脅迫不同時間點應答、病原菌侵染後不同時間點應答。

基本原理

從方法上來講,WGCNA分為表達量聚類分析和表型關聯兩部分,主要包括基因之間相關係數計算、基因模塊的確定、共表達網絡、模塊與性狀關聯四個步驟。

第一步計算任意兩個基因之間的相關係數(Person Coefficient)。為了衡量兩個基因是否具有相似表達模式,一般需要設置閾值來篩選,高於閾值的則認為是相似的。但是這樣如果將閾值設為0.8,那麼很難說明0.8和0.79兩個是有顯著差別的。因此,WGCNA分析時採用相關係數加權值,即對基因相關係數取N次冪,使得網絡中的基因之間的連接服從無尺度網絡分布(scale-freenetworks),這種算法更具生物學意義。

第二步通過基因之間的相關係數構建分層聚類樹,聚類樹的不同分支代表不同的基因模塊,不同顏色代表不同的模塊。基於基因的加權相關係數,將基因按照表達模式進行分類,將模式相似的基因歸為一個模塊。這樣就可以將幾萬個基因通過基因表達模式被分成了幾十個模塊,是一個提取歸納信息的過程。

WGCNA術語權重(weghted)

基因之間不僅僅是相關與否,還記錄著它們的相關性數值,數值就是基因之間的聯繫的權重(相關性)。

Module

模塊(module):表達模式相似的基因分為一類,這樣的一類基因成為模塊;

Eigengene

Eigengene(eigen  +‎ gene):基因和樣本構成的矩陣,https://en.wiktionary.org/wiki/eigengene

Adjacency Matrix

鄰近矩陣:是圖的一種存儲形式,用一個一維數組存放圖中所有頂點數據;用一個二維數組存放頂點間關係(邊或弧)的數據,這個二維數組稱為鄰接矩陣;在WGCNA分析裡面指的是基因與基因之間的相關性係數矩陣。 如果用了閾值來判斷基因相關與否,那麼這個鄰近矩陣就是0/1矩陣,只記錄基因相關與否。但是WGCNA沒有用閾值來卡基因的相關性,而是記錄了所有基因之間的相關性。

Topological Overlap Matrix (TOM)

WGNA認為基因之間的簡單的相關性不足以計算共表達,所以它利用上面的鄰近矩陣,又計算了一個新的鄰近矩陣。一般來說,TOM就是WGCNA分析的最終結果,後續的只是對TOM的下遊注釋。

下遊分析得到模塊之後的分析有:

1.模塊的功能富集

2.模塊與性狀之間的相關性

3.模塊與樣本間的相關係數

挖掘模塊的關鍵信息:

1.找到模塊的核心基因

2.利用關係預測基因功能

代碼示例

其中第一步數據準備反而是最複雜的,取決於大家的R語言水平,這個數據GSE48213-wgcna-input.RData我已經保存下來咯,如果大家不會做,又想體驗一下這個WGCNA流程,就可以直接load我保存好的數據文件即可。

step1: 輸入數據的準備

這裡主要是表達矩陣, 如果是晶片數據,那麼常規的歸一化矩陣即可,如果是轉錄組數據,最好是RPKM/TPM值或者其它歸一化好的表達量。然後就是臨床信息或者其它表型,總之就是樣本的屬性

為了保證後續腳本的統一性,表達矩陣統一用datExpr標識,臨床 信息統一用datTraits標識。(PS: 如果你R語言很差,變量名不要輕易修改)

library(WGCNA)
RNAseq_voom <- fpkm 

WGCNA_matrix = t(RNAseq_voom[order(apply(RNAseq_voom,1,mad), decreasing = T)[1:5000],])
datExpr0 <- WGCNA_matrix  
datExpr <- datExpr0 


sampleNames = rownames(datExpr);
traitRows = match(sampleNames, datTraits$gsm)  
rownames(datTraits) = datTraits[traitRows, 1] 

上面代碼裡面的rpkm就是我們的轉錄組數據的表達矩陣,以rpkm為單位。而datTraits就是所有樣本對應的表型信息。需要自己製作,這個是學習WGCNA的基礎,本次實例代碼都是基於這兩個數據。至於如何做出上面代碼的兩個例子,取決於大家自己的項目,我這裡給出自己的代碼,僅供參考哈!

setwd('WGCNA/')

if(F){
  
  
  
  
  
  
  
  
  
  
  a=read.table('GSE48213_RAW/tmp.txt',sep = '\t',stringsAsFactors = F)
  library(reshape2)
  fpkm <- dcast(a,formula = V2~V1)
  rownames(fpkm)=fpkm[,1]
  fpkm=fpkm[,-1]
  colnames(fpkm)=sapply(colnames(fpkm),function(x) strsplit(x,"_")[[1]][1])

  library(GEOquery)
  a=getGEO('GSE48213')
  metadata=pData(a[[1]])[,c(2,10,12)]
  datTraits = data.frame(gsm=metadata[,1],
             cellline=trimws(sapply(as.character(metadata$characteristics_ch1),function(x) strsplit(x,":")[[1]][2])),
             subtype=trimws(sapply(as.character(metadata$characteristics_ch1.2),function(x) strsplit(x,":")[[1]][2]))
             )
save(fpkm,datTraits,file = 'GSE48213-wgcna-input.RData')
}

很明顯,這個數據GSE48213-wgcna-input.RData我已經保存下來咯,如果大家不會做,又想體驗一下這個WGCNA流程,那麼可以找我email求取這個數據哦。我的郵箱是jmzeng1314@163.com

我給大家演示的示例數據大概是下面這個樣子:

> head(datTraits)  ## 56 個細胞系的分類信息,表型
                  gsm cellline       subtype
GSM1172844 GSM1172844    184A1 Non-malignant
GSM1172845 GSM1172845    184B5 Non-malignant
GSM1172846 GSM1172846    21MT1         Basal
GSM1172847 GSM1172847    21MT2         Basal
GSM1172848 GSM1172848     21NT         Basal
GSM1172849 GSM1172849     21PT         Basal
> fpkm[1:4,1:4]  ## 56個細胞系的36953個基因的表達矩陣
                GSM1172844 GSM1172845 GSM1172846  GSM1172847
ENSG00000000003   95.21255   95.69868   19.99467  65.6863763
ENSG00000000005    0.00000    0.00000    0.00000   0.1492021
ENSG00000000419  453.20831  243.64804  142.05818 200.4131493
ENSG00000000457   18.10439   26.56661   16.12776  12.0873135

這個數據集裡面的56種細胞系被分成了5組,如果要分開兩兩做差異分析,有10種組合,也就是說需要做10次差異分析,每個差異分析結果都需要去注釋,會比較麻煩,這個時候WGCNA就派上用場啦。當然,如果你一定要去做差異分析,我也給你代碼:https://github.com/jmzeng1314/my-R/blob/master/10-RNA-seq-3-groups/hisat2_mm10_htseq.R

實際上多個分組,差異分析策略是非常個性化的, 比如:https://mp.weixin.qq.com/s/hc6JkKxyelc7b1M1MRiHRQ

step2:確定最佳beta值

選擇合適「軟閥值(soft thresholding power)」beta,同樣的,也是使用教程標準代碼即可:

powers = c(c(1:10), seq(from = 12, to=20, by=2))

sft = pickSoftThreshold(datExpr, powerVector = powers, verbose = 5)


  
  
  par(mfrow = c(1,2));
  cex1 = 0.9;
  
  plot(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2],
       xlab="Soft Threshold (power)",ylab="Scale Free Topology Model Fit,signed R^2",type="n",
       main = paste("Scale independence"));
  text(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2],
       labels=powers,cex=cex1,col="red");
  
  abline(h=0.90,col="red")
  
  plot(sft$fitIndices[,1], sft$fitIndices[,5],
       xlab="Soft Threshold (power)",ylab="Mean Connectivity", type="n",
       main = paste("Mean connectivity"))
  text(sft$fitIndices[,1], sft$fitIndices[,5], labels=powers, cex=cex1,col="red")

關鍵就是理解pickSoftThreshold函數及其返回的對象,最佳的beta值就是sft$powerEstimate

最佳beta值

參數beta取值默認是1到30,上述圖形的橫軸均代表權重參數β,左圖縱軸代表對應的網絡中log(k)與log(p(k))相關係數的平方。相關係數的平方越高,說明該網絡越逼近無網路尺度的分布。右圖的縱軸代表對應的基因模塊中所有基因鄰接函數的均值。最佳的beta值就是sft$powerEstimate,已經被保存到變量了,不需要知道具體是什麼,後面的代碼都用這個即可,在本例子裡面是6。

即使你不理解它,也可以使用代碼拿到合適「軟閥值(soft thresholding power)」beta進行後續分析。

step3:一步法構建共表達矩陣

有了表達矩陣和估計好的最佳beta值,就可以直接構建共表達矩陣了。

net = blockwiseModules(
                 datExpr,
                 power = sft$powerEstimate,
                 maxBlockSize = 6000,
                 TOMType = "unsigned", minModuleSize = 30,
                 reassignThreshold = 0, mergeCutHeight = 0.25,
                 numericLabels = TRUE, pamRespectsDendro = FALSE,
                 saveTOMs = F, 
                 verbose = 3
 )
 table(net$colors) 

所有的核心就在這一步,把輸入的表達矩陣的幾千個基因組歸類成了幾十個模塊。大體思路:計算基因間的鄰接性,根據鄰接性計算基因間的相似性,然後推出基因間的相異性係數,並據此得到基因間的系統聚類樹。然後按照混合動態剪切樹的標準,設置每個基因模塊最少的基因數目為30。

根據動態剪切法確定基因模塊後,再次分析,依次計算每個模塊的特徵向量值,然後對模塊進行聚類分析,將距離較近的模塊合併為新的模塊。

step4: 模塊可視化

這裡用不同的顏色來代表那些所有的模塊,其中灰色默認是無法歸類於任何模塊的那些基因,如果灰色模塊裡面的基因太多,那麼前期對表達矩陣挑選基因的步驟可能就不太合適。


mergedColors = labels2colors(net$colors)
table(mergedColors)

plotDendroAndColors(net$dendrograms[[1]], mergedColors[net$blockGenes[[1]]],
                    "Module colors",
                    dendroLabels = FALSE, hang = 0.03,
                    addGuide = TRUE, guideHang = 0.05)


基因的模塊可視化

這裡的重點就是plotDendroAndColors函數,它接受一個聚類的對象,以及該對象裡面包含的所有個體所對應的顏色。比如對表達矩陣進行hclust之後,加上表達矩陣裡面所有樣本的分組信息對應的顏色,也是可以用plotDendroAndColors函數可視化的,比如下面的樣品圖:


nGenes = ncol(datExpr)
nSamples = nrow(datExpr)

datExpr_tree<-hclust(dist(datExpr), method = "average")
par(mar = c(0,5,2,0))
plot(datExpr_tree, main = "Sample clustering", sub="", xlab="", cex.lab = 2, 
     cex.axis = 1, cex.main = 1,cex.lab=1)


sample_colors <- numbers2colors(as.numeric(factor(datTraits$Tumor.Type)), 
                                colors = c("white","blue","red","green"),signed = FALSE)




par(mar = c(1,4,3,1),cex=0.8)
plotDendroAndColors(datExpr_tree, sample_colors,
                    groupLabels = colnames(sample),
                    cex.dendroLabels = 0.8,
                    marAll = c(1, 4, 3, 1),
                    cex.rowText = 0.01,
                    main = "Sample dendrogram and trait heatmap")

上面給樣本進行聚類的代碼可以不運行,其實跟WGCNA本身關係不大。

樣本的聚類可視化

可以看到這些乳腺癌的細胞系的表達譜聚類情況並不是完全與其分類匹配,所以僅僅是根據樣本的分組信息做差異分析並不完全準確。

step5:模塊和性狀的關係



table(datTraits$subtype)
if(T){
  nGenes = ncol(datExpr)
  nSamples = nrow(datExpr)
  design=model.matrix(~0+ datTraits$subtype)
  colnames(design)=levels(datTraits$subtype)
  moduleColors <- labels2colors(net$colors)
  
  MEs0 = moduleEigengenes(datExpr, moduleColors)$eigengenes
  MEs = orderMEs(MEs0); 
  moduleTraitCor = cor(MEs, design , use = "p");
  moduleTraitPvalue = corPvalueStudent(moduleTraitCor, nSamples)

  sizeGrWindow(10,6)
  
  textMatrix = paste(signif(moduleTraitCor, 2), "\n(",
                     signif(moduleTraitPvalue, 1), ")", sep = "");
  dim(textMatrix) = dim(moduleTraitCor)
  png("step5-Module-trait-relationships.png",width = 800,height = 1200,res = 120)
  par(mar = c(6, 8.5, 3, 3));
  
  labeledHeatmap(Matrix = moduleTraitCor,
                 xLabels = colnames(design),
                 yLabels = names(MEs),
                 ySymbols = names(MEs),
                 colorLabels = FALSE,
                 colors = greenWhiteRed(50),
                 textMatrix = textMatrix,
                 setStdMargins = FALSE,
                 cex.text = 0.5,
                 zlim = c(-1,1),
                 main = paste("Module-trait relationships"))
  dev.off()

  
  
  
  Luminal = as.data.frame(design[,3]);
  names(Luminal) = "Luminal"
  y=Luminal
  GS1=as.numeric(cor(y,datExpr, use="p"))
  GeneSignificance=abs(GS1)
  
  ModuleSignificance=tapply(GeneSignificance,
                            moduleColors, mean, na.rm=T)
  sizeGrWindow(8,7)
  par(mfrow = c(1,1))
  
  
  plotModuleSignificance(GeneSignificance,moduleColors)

}

通過模塊與各種表型的相關係數,可以很清楚的挑選自己感興趣的模塊進行下遊分析了。這個圖就是把moduleTraitCor這個矩陣給用熱圖可視化一下。

模塊和性狀的關係

因為一些歷史遺留問題,這個圖片缺乏X軸的標記。

從上圖已經可以看到跟乳腺癌分類相關的基因模塊了,包括"Basal" "Claudin-low" "Luminal" "Non-malignant" "unknown" 這5類所對應的不同模塊的基因列表。可以看到每一種乳腺癌都有跟它強烈相關的模塊,可以作為它的表達signature,模塊裡面的基因可以拿去做下遊分析。我們看到Luminal表型棕色的模塊相關性高達0.86,而且極其顯著的相關,所以值得我們挖掘,這個模塊裡面的基因是什麼,為什麼如此的相關呢?

step6:感興趣性狀的模塊的具體基因分析

性狀跟模塊雖然求出了相關性,可以挑選最相關的那些模塊來分析,但是模塊本身仍然包含非常多的基因,還需進一步的尋找最重要的基因。所有的模塊都可以跟基因算出相關係數,所有的連續型性狀也可以跟基因的表達值算出相關係數。主要參考資料:PDF document, R script  如果跟性狀顯著相關基因也跟某個模塊顯著相關,那麼這些基因可能就非常重要。

首先計算模塊與基因的相關性矩陣


modNames = substring(names(MEs), 3)
geneModuleMembership = as.data.frame(cor(datExpr, MEs, use = "p"));



MMPvalue = as.data.frame(corPvalueStudent(as.matrix(geneModuleMembership), nSamples));
names(geneModuleMembership) = paste("MM", modNames, sep="");
names(MMPvalue) = paste("p.MM", modNames, sep="");

再計算性狀與基因的相關性矩陣

  
  
  Luminal = as.data.frame(design[,3]);
  names(Luminal) = "Luminal"
  geneTraitSignificance = as.data.frame(cor(datExpr, Luminal, use = "p"));
  GSPvalue = as.data.frame(corPvalueStudent(as.matrix(geneTraitSignificance), nSamples));
  names(geneTraitSignificance) = paste("GS.", names(Luminal), sep="");
  names(GSPvalue) = paste("p.GS.", names(Luminal), sep="");

最後把兩個相關性矩陣聯合起來,指定感興趣模塊進行分析

 module = "brown"
  column = match(module, modNames);
  moduleGenes = moduleColors==module;
  sizeGrWindow(7, 7);
  par(mfrow = c(1,1));
  verboseScatterplot(abs(geneModuleMembership[moduleGenes, column]),
                     abs(geneTraitSignificance[moduleGenes, 1]),
                     xlab = paste("Module Membership in", module, "module"),
                     ylab = "Gene significance for Luminal",
                     main = paste("Module membership vs. gene significance\n"),
                     cex.main = 1.2, cex.lab = 1.2, cex.axis = 1.2, col = module)

模塊和性狀裡面的指定基因的相關性比較

可以看到這些基因不僅僅是跟其對應的模塊高度相關,而且是跟其對應的性狀高度相關,進一步說明了基因值得深度探究。

step7:網絡的可視化

主要參考資料:PDF document, R script

首先針對所有基因畫熱圖





if(T){
  nGenes = ncol(datExpr)
  nSamples = nrow(datExpr)
  geneTree = net$dendrograms[[1]]; 
  dissTOM = 1-TOMsimilarityFromExpr(datExpr, power = 6); 
  plotTOM = dissTOM^7; 
  diag(plotTOM) = NA; 
  
  nSelect = 400
  
  set.seed(10);
  select = sample(nGenes, size = nSelect);
  selectTOM = dissTOM[select, select];
  
  selectTree = hclust(as.dist(selectTOM), method = "average")
  selectColors = moduleColors[select];
  
  sizeGrWindow(9,9)
  
  
  plotDiss = selectTOM^7;
  diag(plotDiss) = NA;

  png("step7-Network-heatmap.png",width = 800,height = 600)
  TOMplot(plotDiss, selectTree, selectColors, main = "Network heatmap plot, selected genes")
  dev.off()

  
  MEs = moduleEigengenes(datExpr, moduleColors)$eigengenes
  
  
  Luminal = as.data.frame(design[,3]);
  names(Luminal) = "Luminal"
  
  MET = orderMEs(cbind(MEs, Luminal))
  
  sizeGrWindow(5,7.5);

  par(cex = 0.9)
  png("step7-Eigengene-dendrogram.png",width = 800,height = 600)
  plotEigengeneNetworks(MET, "", marDendro = c(0,4,1,2), marHeatmap = c(3,4,1,2), cex.lab = 0.8, xLabelsAngle
                        = 90)
  dev.off()

  
  sizeGrWindow(6,6);
  par(cex = 1.0)
  
  png("step7-Eigengene-dendrogram-hclust.png",width = 800,height = 600)
  plotEigengeneNetworks(MET, "Eigengene dendrogram", marDendro = c(0,4,2,0),
                        plotHeatmaps = FALSE)
  dev.off()
  
  par(cex = 1.0)
  

  png("step7-Eigengene-adjacency-heatmap.png",width = 800,height = 600)
  plotEigengeneNetworks(MET, "Eigengene adjacency heatmap", marHeatmap = c(3,4,2,2),
                        plotDendrograms = FALSE, xLabelsAngle = 90)
  dev.off()

}

這個非常消耗計算資源和時間,所以建議選取其中部分基因作圖即可,我就沒有畫,而且根據下面的代碼選取部分基因來作圖!

然後隨機選取部分基因作圖

nSelect = 400

set.seed(10);
select = sample(nGenes, size = nSelect);
selectTOM = dissTOM[select, select];

selectTree = hclust(as.dist(selectTOM), method = "average")
selectColors = moduleColors[select];

sizeGrWindow(9,9)


plotDiss = selectTOM^7;
diag(plotDiss) = NA;
TOMplot(plotDiss, selectTree, selectColors, main = "Network heatmap plot, selected genes")

模塊熱圖


這個圖湊數的意義居多,如果是把全部基因畫上去,可以很清楚的看到各個區塊顏色差異。

最後畫模塊和性狀的關係

 
  MEs = moduleEigengenes(datExpr, moduleColors)$eigengenes
  
  
  Luminal = as.data.frame(design[,3]);
  names(Luminal) = "Luminal"
  
  MET = orderMEs(cbind(MEs, Luminal))
  
  sizeGrWindow(5,7.5);
  par(cex = 0.9)
  plotEigengeneNetworks(MET, "", marDendro = c(0,4,1,2), marHeatmap = c(3,4,1,2), cex.lab = 0.8, xLabelsAngle
                        = 90)
  
  sizeGrWindow(6,6);
  par(cex = 1.0)
  
  plotEigengeneNetworks(MET, "Eigengene dendrogram", marDendro = c(0,4,2,0),
                        plotHeatmaps = FALSE)
  
  par(cex = 1.0)
  
  plotEigengeneNetworks(MET, "Eigengene adjacency heatmap", marHeatmap = c(3,4,2,2),
                        plotDendrograms = FALSE, xLabelsAngle = 90)

性狀與模塊熱圖


step8:提取指定模塊的基因名



if(T){
  
  module = "brown";
  
  probes = colnames(datExpr) 
  inModule = (moduleColors==module);
  modProbes = probes[inModule]; 
  head(modProbes)

  
  which.module="brown";
  dat=datExpr[,moduleColors==which.module ] 
  plotMat(t(scale(dat)),nrgcols=30,rlabels=T,
          clabels=T,rcols=which.module,
          title=which.module )
  datExpr[1:4,1:4]
  dat=t(datExpr[,moduleColors==which.module ] )
  library(pheatmap)
  pheatmap(dat ,show_colnames =F,show_rownames = F) 
  n=t(scale(t(log(dat+1)))) 
  n[n>2]=2 
  n[n< -2]= -2
  n[1:4,1:4]
  pheatmap(n,show_colnames =F,show_rownames = F)
  group_list=datTraits$subtype
  ac=data.frame(g=group_list)
  rownames(ac)=colnames(n) 
  pheatmap(n,show_colnames =F,show_rownames = F,
           annotation_col=ac )
  
  
}

有了基因信息,下遊分析就很簡單了。包括GO/KEGG等功能資料庫的注釋

Step9: 模塊的導出

主要模塊裡面的基因直接的相互作用關係信息可以導出到cytoscape,VisANT等網絡可視化軟體。


TOM = TOMsimilarityFromExpr(datExpr, power = 6); 

module = "brown";

probes = colnames(datExpr) 
inModule = (moduleColors==module);
modProbes = probes[inModule]; 


modTOM = TOM[inModule, inModule];
dimnames(modTOM) = list(modProbes, modProbes)

首先是導出到VisANT

vis = exportNetworkToVisANT(modTOM,
file = paste("VisANTInput-", module, ".txt", sep=""),
weighted = TRUE,
threshold = 0)

然後是導出到cytoscape

  cyt = exportNetworkToCytoscape(
       modTOM,
      edgeFile = paste("CytoscapeInput-edges-", paste(module, collapse="-"), ".txt", sep=""),
      nodeFile = paste("CytoscapeInput-nodes-", paste(module, collapse="-"), ".txt", sep=""),
      weighted = TRUE,
      threshold = 0.02,
      nodeNames = modProbes, 
      nodeAttr = moduleColors[inModule]
                                );

如果模塊包含的基因太多,網絡太複雜,還可以進行篩選,比如:

nTop = 30;
IMConn = softConnectivity(datExpr[, modProbes]);
top = (rank(-IMConn) <= nTop)
filter <- modTOM[top, top]

後面就是cytoscape自身的教程了,這裡不再贅述,我博客有比較詳盡的介紹。

如果你完全看不懂本文,下面的課程你可能會需要! 

如果你精選10篇我們生信技能樹2019對你幫助最大的推文教程,發到我郵箱 jmzeng1314@163.com 並且寫出你的故事,就有驚喜哦!

相關焦點

  • 科普丨一文看懂數字孿生—相關概念及內涵
    科普丨一文看懂數字孿生—相關概念及內涵 2020-11-24 10:43 來源:澎湃新聞·澎湃號·政務
  • 一文看懂通信網絡未來發展趨勢
    打開APP 一文看懂通信網絡未來發展趨勢 發表於 2019-07-13 09:02:57 基於英特爾架構的解決方案正使網絡功能虛擬化(NFV)定義網絡成為現實,同時為支持5G時代大規模物聯網連接奠定基礎,日新月異的通信網絡格局需要採用多種技術支持,英特爾整合了處理、存儲、內存、虛擬化、安全性、I/O、加速、管理和分析功能
  • 一文看懂煙感報警器原理
    打開APP 一文看懂煙感報警器原理 發表於 2019-09-05 17:12:44   煙感報警器原理   煙感報警器其實是煙感或煙霧報警器的別稱
  • 一文看懂!杭州城市大腦是這樣煉成的
    主要目標到2022年,全省各設區市「城市大腦」通用平臺基本建成,信息孤島基本消除,數據資源實現共享,基於人工智慧的感知、分析、決策能力取得突破,自主可控的技術產業體系基本形成,城市整體運行的數字映射基本得以實時呈現,形成一批基於「城市大腦」的特色應用,並在交通、平安、城管、經濟、健康、環保、文旅等領域實現綜合應用,「城市大腦」應用成效顯現,「最多跑一次
  • 深度報告:一文看懂生物晶片產業【附下載】
    深度報告:一文看懂生物晶片產業【附下載】 2020-06-30 14:26 來源:澎湃新聞·澎湃號·湃客
  • 一文看懂取樣電阻的工作原理
    打開APP 一文看懂取樣電阻的工作原理 發表於 2019-08-18 11:16:35   一,電流檢測電阻的基本原理   根據歐姆定律
  • 一文看懂光貓和企業路由器的區別
    打開APP 一文看懂光貓和企業路由器的區別 電工之家 發表於 2019-09-07 09:26:37   光貓
  • 一文看懂軟性線路板工藝要求及流程
    打開APP 一文看懂軟性線路板工藝要求及流程 發表於 2018-03-11 09:01:29   推薦閱讀:   軟性線路板生產廠家匯總分析   一文看懂軟性線路板行業發展趨勢
  • 一文看懂硬體環境和軟體環境是什麼
    打開APP 一文看懂硬體環境和軟體環境是什麼 發表於 2018-04-02 18:42:13 DOS系統——從1981年問世至今的17年中,DOS經歷了7 次大的版本升級,從1.0 版到現在的 7.0 版,不斷地改進和完善。Windows系統——Windows是Microsoft公司在1985年11月發表的第一代窗口視覺界面,使 PC 機開始進入了所謂的圖形用戶界面(GUI:Graphical User Interface)階段。Unix系統。Unix系統最初是在中小型機上運用。
  • 一文看懂鋁基板和pcb板的區別
    打開APP 一文看懂鋁基板和pcb板的區別 發表於 2019-05-13 11:18:06   鋁基板和pcb板的區別   對於一些剛剛從事鋁基板行業的小夥伴總會有這樣的疑問,那就是鋁基板與pcb板有什麼區別,針對與這個疑問下面小編就具體的給大家說一說兩者之間到底有那些區別
  • 一文看懂MSDS
    看懂MSDS的重要性---有些朋友會提及在中國做化工等危險品產品的出口運輸,一般都需要上海化工研究院或北京迪捷姆(北京DGM)等出具專業危險品分析報告,另外MSDS在中國也有造假情況,所以能否看懂MSDS不是太重要。
  • 一文看懂數字孿生—概述
    ,另一個留在地球上用於反映太空中太空飛行器在任務期間的工作狀態,從而輔助工程師分析處理太空中出現的緊急事件。數字孿生模型基於跨一系列維度的大規模,累積,實時,真實世界的數據測量 。企業的定義:數字孿生是資產和流程的軟體表示,用於理解、預測和優化績效以實現改善的業務成果。數字孿生由三部分組成:數據模型,一組分析或算法,以及知識 。數字孿生公司早已在行業中立足,它在整個價值鏈中革新了流程。
  • WGCNA新手入門筆記(含代碼和數據)
    network analysis)是一個很火的生信分析方法,高分文章很多。其實,WGCNA用起來也沒那麼難,今天給大家分享一下新手學習WGCNA的經驗、常見問題的解決辦法,以及如何理解WGCNA分析流程中的關鍵點,以達到應用的目的。讓大家能夠入門WGCNA進行實操是我整理這一學習筆記的最終目的。筆記內容涉及到WGCNA的簡介,安裝運行,代碼解析和靈活變換,跑出的圖有什麼意義等,準備分3-4次說。
  • 一文看懂斷相保護器接線圖解說明
    打開APP 一文看懂斷相保護器接線圖解說明 發表於 2019-07-31 11:41:50   斷相保護原理   斷相保護是依靠多相電路的一相導線中電流的消失而斷開被保護設備或依靠多相系統的一相或幾相失壓來防止將電源施加到被保護設備上的一種保護方式。
  • 2019版EAU腎細胞癌指南更新 暫不推薦VEGFR-TKI輔助治療
    2019版EAU腎細胞癌指南更新要點根據2018版指南,2019年腎細胞癌指南的所有章節都已更新,整個文件中都添加了參考文獻,以下各節中包含了新數據和管理建議:3.5 其他腎臟腫瘤的管理建議
  • 2019年50本計劃讀一讀的書單(下)
    掃碼文末二維碼即可加入羅輯醫療知識星球19年連結1500位醫健精英
  • WGCNA分析詳解專題(一)
    此次分析詳解專題將講述以下內容,老規矩,如有理解錯誤,還請各位大俠批評指正!我該選取哪些基因進入分析?是全部的基因還是只用差異表達的基因?WGCNA分析應用(一):發育調控此次講解應用的文章信息如下:Title:A novel microglial subset plays a key role in myelinogenesis in
  • 一文講解WGCNA的前世今生
    同時也促進了各種深入挖掘轉錄組測序數據分析方法的應用。其中最為有效的是「WGCNA分析」。什麼是WGCNA分析WGCNA分析的全稱是加權基因共表達網絡分析(Weighted correlation network analysis),是用來描述不同樣品之間基因關聯模式的生物信息學分析方法。可將表達模式相似的基因進行聚類,並分析模塊與特定性狀或表型之間的關聯關係。
  • 一文看懂磁控管好壞判斷方法
    打開APP 一文看懂磁控管好壞判斷方法 發表於 2019-08-02 11:25:18   什麼是磁控管   磁控管是一種用來產生微波能的電真空器件
  • 科普丨一文看懂數字孿生—應用發展綜述(四)
    這為中國下一階段的城市和基礎設施發展奠定了基礎 。2019 年中國新型智慧城市規模超過 9000 億元,未來幾年將保持較快速度增長,預計到 2023 年市場規模將超過 1.3 萬億元。當前,安全綜治、智慧園區、智慧交通是智慧城市建設投入的重點,三大細分場景規模佔智慧城市建設總規模的 71%,而城市級平臺、機器人等新技術和產品則在快速落地,被更多城市建設方採納和應用 。