国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

WGCNA分析,簡單全面的最新教程(在線做,但也需要懂原理)

共 25419字,需瀏覽 51分鐘

 ·

2021-04-06 15:58

生信學(xué)習(xí)的正確姿勢(第三版)

NGS系列文章包括NGS基礎(chǔ)、轉(zhuǎn)錄組分析 Nature重磅綜述|關(guān)于RNA-seq你想知道的全在這、ChIP-seq分析 ChIP-seq基本分析流程、單細(xì)胞測序分析 (重磅綜述:三萬字長文讀懂單細(xì)胞RNA測序分析的最佳實(shí)踐教程 (原理、代碼和評述))、DNA甲基化分析、重測序分析、GEO數(shù)據(jù)挖掘典型醫(yī)學(xué)設(shè)計(jì)實(shí)驗(yàn)GEO數(shù)據(jù)分析 (step-by-step) - Limma差異分析、火山圖、功能富集等內(nèi)容。

高顏值免費(fèi)在線繪圖工具升級版來了~~~可以在線做 WGCNA 分析

WGCNA基本概念

加權(quán)基因共表達(dá)網(wǎng)絡(luò)分析 (WGCNA, Weighted correlation network analysis)是用來描述不同樣品之間基因關(guān)聯(lián)模式的系統(tǒng)生物學(xué)方法,可以用來鑒定高度協(xié)同變化的基因集, 并根據(jù)基因集的內(nèi)連性和基因集與表型之間的關(guān)聯(lián)鑒定候補(bǔ)生物標(biāo)記基因或治療靶點(diǎn)。

相比于只關(guān)注差異表達(dá)的基因,WGCNA利用數(shù)千或近萬個(gè)變化最大的基因或全部基因的信息識別感興趣的基因集,并與表型進(jìn)行顯著性關(guān)聯(lián)分析。一是充分利用了信息,二是把數(shù)千個(gè)基因與表型的關(guān)聯(lián)轉(zhuǎn)換為數(shù)個(gè)基因集與表型的關(guān)聯(lián),免去了多重假設(shè)檢驗(yàn)校正的問題。

理解WGCNA,需要先理解下面幾個(gè)術(shù)語和它們在WGCNA中的定義。

  • 共表達(dá)網(wǎng)絡(luò):定義為加權(quán)基因網(wǎng)絡(luò)。點(diǎn)代表基因,邊代表基因表達(dá)相關(guān)性。加權(quán)是指對相關(guān)性值進(jìn)行冥次運(yùn)算(冥次的值也就是軟閾值 (power, pickSoftThreshold這個(gè)函數(shù)所做的就是確定合適的power))。無向網(wǎng)絡(luò)的邊屬性計(jì)算方式為abs(cor(genex, geney)) ^ power;有向網(wǎng)絡(luò)的邊屬性計(jì)算方式為(1+cor(genex, geney)/2) ^ power; sign hybrid的邊屬性計(jì)算方式為cor(genex, geney)^power if cor>0 else 0。這種處理方式強(qiáng)化了強(qiáng)相關(guān),弱化了弱相關(guān)或負(fù)相關(guān),使得相關(guān)性數(shù)值更符合無標(biāo)度網(wǎng)絡(luò)特征,更具有生物意義。如果沒有合適的power,一般是由于部分樣品與其它樣品因?yàn)槟撤N原因差別太大導(dǎo)致的,可根據(jù)具體問題移除部分樣品或查看后面的經(jīng)驗(yàn)值。

  • Module(模塊):高度內(nèi)連的基因集。在無向網(wǎng)絡(luò)中,模塊內(nèi)是高度相關(guān)的基因。在有向網(wǎng)絡(luò)中,模塊內(nèi)是高度正相關(guān)的基因。把基因聚類成模塊后,可以對每個(gè)模塊進(jìn)行三個(gè)層次的分析:1. 功能富集分析查看其功能特征是否與研究目的相符;2. 模塊與性狀進(jìn)行關(guān)聯(lián)分析,找出與關(guān)注性狀相關(guān)度最高的模塊;3. 模塊與樣本進(jìn)行關(guān)聯(lián)分析,找到樣品特異高表達(dá)的模塊。

    基因富集相關(guān)文章 去東方,最好用的在線GO富集分析工具;GO、GSEA富集分析一網(wǎng)打進(jìn)GSEA富集分析-界面操作。其它關(guān)聯(lián)后面都會(huì)提及。

  • Connectivity (連接度):類似于網(wǎng)絡(luò)中 “度” (degree)的概念。每個(gè)基因的連接度是與其相連的基因的邊屬性之和

  • Module eigengene E: 給定模型的第一主成分,代表整個(gè)模型的基因表達(dá)譜。這個(gè)是個(gè)很巧妙的梳理,我們之前講過PCA分析的降維作用,之前主要是拿來做可視化,現(xiàn)在用到這個(gè)地方,很好的用一個(gè)向量代替了一個(gè)矩陣,方便后期計(jì)算。(降維除了PCA,還可以看看tSNE)

  • Intramodular connectivity: 給定基因與給定模型內(nèi)其他基因的關(guān)聯(lián)度,判斷基因所屬關(guān)系。

  • Module membership: 給定基因表達(dá)譜與給定模型的eigengene的相關(guān)性。

  • Hub gene: 關(guān)鍵基因 (連接度最多或連接多個(gè)模塊的基因)。

  • Adjacency matrix (鄰接矩陣):基因和基因之間的加權(quán)相關(guān)性值構(gòu)成的矩陣。

  • TOM (Topological overlap matrix):把鄰接矩陣轉(zhuǎn)換為拓?fù)渲丿B矩陣,以降低噪音和假相關(guān),獲得的新距離矩陣,這個(gè)信息可拿來構(gòu)建網(wǎng)絡(luò)或繪制TOM圖。

基本分析流程

  1. 構(gòu)建基因共表達(dá)網(wǎng)絡(luò):使用加權(quán)的表達(dá)相關(guān)性。

  2. 識別基因集:基于加權(quán)相關(guān)性,進(jìn)行層級聚類分析,并根據(jù)設(shè)定標(biāo)準(zhǔn)切分聚類結(jié)果,獲得不同的基因模塊,用聚類樹的分枝和不同顏色表示。

  3. 如果有表型信息,計(jì)算基因模塊與表型的相關(guān)性,鑒定性狀相關(guān)的模塊。

  4. 研究模型之間的關(guān)系,從系統(tǒng)層面查看不同模型的互作網(wǎng)絡(luò)。

  5. 從關(guān)鍵模型中選擇感興趣的驅(qū)動(dòng)基因,或根據(jù)模型中已知基因的功能推測未知基因的功能。

  6. 導(dǎo)出TOM矩陣,繪制相關(guān)性圖。

WGCNA包實(shí)戰(zhàn)

R包WGCNA是用于計(jì)算各種加權(quán)關(guān)聯(lián)分析的功能集合,可用于網(wǎng)絡(luò)構(gòu)建,基因篩選,基因簇鑒定,拓?fù)涮卣饔?jì)算,數(shù)據(jù)模擬和可視化等。

輸入數(shù)據(jù)和參數(shù)選擇

  1. WGCNA本質(zhì)是基于相關(guān)系數(shù)的網(wǎng)絡(luò)分析方法,適用于多樣品數(shù)據(jù)模式,一般要求樣本數(shù)多于15個(gè)。樣本數(shù)多于20時(shí)效果更好,樣本越多,結(jié)果越穩(wěn)定。

  2. 基因表達(dá)矩陣: 常規(guī)表達(dá)矩陣即可,即基因在行,樣品在列,進(jìn)入分析前做一個(gè)轉(zhuǎn)置。RPKM、FPKM或其它標(biāo)準(zhǔn)化方法影響不大,推薦使用Deseq2的varianceStabilizingTransformationlog2(x+1)對標(biāo)準(zhǔn)化后的數(shù)據(jù)做個(gè)轉(zhuǎn)換。如果數(shù)據(jù)來自不同的批次,需要先移除批次效應(yīng) (記得上次轉(zhuǎn)錄組培訓(xùn)課講過如何操作)。如果數(shù)據(jù)存在系統(tǒng)偏移,需要做下quantile normalization

  3. 性狀矩陣:用于關(guān)聯(lián)分析的性狀必須是數(shù)值型特征 (如下面示例中的HeightWeight,Diameter)。如果是區(qū)域或分類變量,需要轉(zhuǎn)換為0-1矩陣的形式(1表示屬于此組或有此屬性,0表示不屬于此組或無此屬性,如樣品分組信息WT, KO, OE)。

    ID  WT  KO  OE Height Weight Diameter
    samp1   1   0   0   1   2   3
    samp2   1   0   0   2   4   6
    samp3   0   1   0   10  20  50
    samp4   0   1   0   15  30  80
    samp5   0   0   1   NA  9   8
    samp6   0   0   1   4   8   7
  4. 推薦使用Signed networkRobust correlation (bicor)。(這個(gè)根據(jù)自己的需要,看看上面寫的每個(gè)網(wǎng)絡(luò)怎么計(jì)算的,更知道怎么選擇)

  5. 無向網(wǎng)絡(luò)在power小于15或有向網(wǎng)絡(luò)power小于30內(nèi),沒有一個(gè)power值可以使無標(biāo)度網(wǎng)絡(luò)圖譜結(jié)構(gòu)R^2達(dá)到0.8或平均連接度降到100以下,可能是由于部分樣品與其他樣品差別太大造成的。這可能由批次效應(yīng)樣品異質(zhì)性實(shí)驗(yàn)條件對表達(dá)影響太大等造成, 可以通過繪制樣品聚類查看分組信息、關(guān)聯(lián)批次信息、處理信息和有無異常樣品 (可以使用之前講過的熱圖簡化,增加行或列屬性)。如果這確實(shí)是由有意義的生物變化引起的,也可以使用后面程序中的經(jīng)驗(yàn)power值。

安裝WGCNA

WGCNA依賴的包比較多,bioconductor上的包需要自己安裝,cran上依賴的包可以自動(dòng)安裝。通常在R中運(yùn)行下面4條語句就可以完成WGCNA的安裝。

建議在編譯安裝R時(shí)增加--with-blas --with-lapack提高矩陣運(yùn)算的速度,具體見R和Rstudio安裝。

#source("https://bioconductor.org/biocLite.R")
#biocLite(c("AnnotationDbi", "impute","GO.db", "preprocessCore"))
#site="https://mirrors.tuna.tsinghua.edu.cn/CRAN"
#install.packages(c("WGCNA", "stringr", "reshape2"), repos=site)

WGCNA實(shí)戰(zhàn)

實(shí)戰(zhàn)采用的是官方提供的清理后的矩陣,原矩陣信息太多,容易給人誤導(dǎo),后臺回復(fù)WGCNA 獲取數(shù)據(jù)。

數(shù)據(jù)讀入
library(WGCNA)

## Loading required package: dynamicTreeCut

## Loading required package: fastcluster

##
## Attaching package: 'fastcluster'

## The following object is masked from 'package:stats':
##
##     hclust

## ==========================================================================
## *
## *  Package WGCNA 1.63 loaded.
## *
## *    Important note: It appears that your system supports multi-threading,
## *    but it is not enabled within WGCNA in R.
## *    To allow multi-threading within WGCNA with all available cores, use
## *
## *          allowWGCNAThreads()
## *
## *    within R. Use disableWGCNAThreads() to disable threading if necessary.
## *    Alternatively, set the following environment variable on your system:
## *
## *          ALLOW_WGCNA_THREADS=<number_of_processors>
## *
## *    for example
## *
## *          ALLOW_WGCNA_THREADS=48
## *
## *    To set the environment variable in linux bash shell, type
## *
## *           export ALLOW_WGCNA_THREADS=48
## *
## *     before running R. Other operating systems or shells will
## *     have a similar command to achieve the same aim.
## *
## ==========================================================================

##
## Attaching package: 'WGCNA'

## The following object is masked from 'package:stats':
##
##     cor

library(reshape2)
library(stringr)

#
options(stringsAsFactors = FALSE)
# 打開多線程
enableWGCNAThreads()

## Allowing parallel execution with up to 47 working processes.

# 常規(guī)表達(dá)矩陣,log2轉(zhuǎn)換后或
# Deseq2的varianceStabilizingTransformation轉(zhuǎn)換的數(shù)據(jù)
# 如果有批次效應(yīng),需要事先移除,可使用removeBatchEffect
# 如果有系統(tǒng)偏移(可用boxplot查看基因表達(dá)分布是否一致),
# 需要quantile normalization

exprMat <- "WGCNA/LiverFemaleClean.txt"

# 官方推薦 "signed" 或 "signed hybrid"
# 為與原文檔一致,故未修改
type = "unsigned"

# 相關(guān)性計(jì)算
# 官方推薦 biweight mid-correlation & bicor
# corType: pearson or bicor
# 為與原文檔一致,故未修改
corType = "pearson"

corFnc = ifelse(corType=="pearson", cor, bicor)
# 對二元變量,如樣本性狀信息計(jì)算相關(guān)性時(shí),
# 或基因表達(dá)嚴(yán)重依賴于疾病狀態(tài)時(shí),需設(shè)置下面參數(shù)
maxPOutliers = ifelse(corType=="pearson",1,0.05)

# 關(guān)聯(lián)樣品性狀的二元變量時(shí),設(shè)置
robustY = ifelse(corType=="pearson",T,F)

##導(dǎo)入數(shù)據(jù)##
dataExpr <- read.table(exprMat, sep='\t', row.names=1, header=T,
                    quote="", comment="", check.names=F)

dim(dataExpr)

## [1] 3600  134

head(dataExpr)[,1:8]

##                 F2_2    F2_3     F2_14    F2_15    F2_19       F2_20
## MMT00000044 -0.01810  0.0642  6.44e-05 -0.05800  0.04830 -0.15197410
## MMT00000046 -0.07730 -0.0297  1.12e-01 -0.05890  0.04430 -0.09380000
## MMT00000051 -0.02260  0.0617 -1.29e-01  0.08710 -0.11500 -0.06502607
## MMT00000076 -0.00924 -0.1450  2.87e-02 -0.04390  0.00425 -0.23610000
## MMT00000080 -0.04870  0.0582 -4.83e-02 -0.03710  0.02510  0.08504274
## MMT00000102  0.17600 -0.1890 -6.50e-02 -0.00846 -0.00574 -0.01807182
##                F2_23    F2_24
## MMT00000044 -0.00129 -0.23600
## MMT00000046  0.09340  0.02690
## MMT00000051  0.00249 -0.10200
## MMT00000076 -0.06900  0.01440
## MMT00000080  0.04450  0.00167
## MMT00000102 -0.12500 -0.06820

數(shù)據(jù)篩選

## 篩選中位絕對偏差前75%的基因,至少M(fèi)AD大于0.01
## 篩選后會(huì)降低運(yùn)算量,也會(huì)失去部分信息
## 也可不做篩選,使MAD大于0即可
m.mad <- apply(dataExpr,1,mad)
dataExprVar <- dataExpr[which(m.mad >
                max(quantile(m.mad, probs=seq(0, 1, 0.25))[2],0.01)),]

## 轉(zhuǎn)換為樣品在行,基因在列的矩陣
dataExpr <- as.data.frame(t(dataExprVar))

## 檢測缺失值
gsg = goodSamplesGenes(dataExpr, verbose = 3)

##  Flagging genes and samples with too many missing values...
##   ..step 1

if (!gsg$allOK){
 # Optionally, print the gene and sample names that were removed:
 if (sum(!gsg$goodGenes)>0)
   printFlush(paste("Removing genes:",
                    paste(names(dataExpr)[!gsg$goodGenes], collapse = ",")));
 if (sum(!gsg$goodSamples)>0)
   printFlush(paste("Removing samples:",
                    paste(rownames(dataExpr)[!gsg$goodSamples], collapse = ",")));
 # Remove the offending genes and samples from the data:
 dataExpr = dataExpr[gsg$goodSamples, gsg$goodGenes]
}

nGenes = ncol(dataExpr)
nSamples = nrow(dataExpr)

dim(dataExpr)

## [1]  134 2697

head(dataExpr)[,1:8]

##       MMT00000051 MMT00000080 MMT00000102 MMT00000149 MMT00000159
## F2_2  -0.02260000 -0.04870000  0.17600000  0.07680000 -0.14800000
## F2_3   0.06170000  0.05820000 -0.18900000  0.18600000  0.17700000
## F2_14 -0.12900000 -0.04830000 -0.06500000  0.21400000 -0.13200000
## F2_15  0.08710000 -0.03710000 -0.00846000  0.12000000  0.10700000
## F2_19 -0.11500000  0.02510000 -0.00574000  0.02100000 -0.11900000
## F2_20 -0.06502607  0.08504274 -0.01807182  0.06222751 -0.05497686
##       MMT00000207 MMT00000212 MMT00000241
## F2_2   0.06870000  0.06090000 -0.01770000
## F2_3   0.10100000  0.05570000 -0.03690000
## F2_14  0.10900000  0.19100000 -0.15700000
## F2_15 -0.00858000 -0.12100000  0.06290000
## F2_19  0.10500000  0.05410000 -0.17300000
## F2_20 -0.02441415  0.06343181  0.06627665
軟閾值篩選
## 查看是否有離群樣品
sampleTree = hclust(dist(dataExpr), method = "average")
plot(sampleTree, main = "Sample clustering to detect outliers", sub="", xlab="")

軟閾值的篩選原則是使構(gòu)建的網(wǎng)絡(luò)更符合無標(biāo)度網(wǎng)絡(luò)特征。

powers = c(c(1:10), seq(from = 12, to=30, by=2))
sft = pickSoftThreshold(dataExpr, powerVector=powers,
                      networkType=type, verbose=5)

## pickSoftThreshold: will use block size 2697.
## pickSoftThreshold: calculating connectivity for given powers...
##   ..working on genes 1 through 2697 of 2697
##   Power SFT.R.sq slope truncated.R.sq mean.k. median.k. max.k.
## 1     1   0.1370  0.825          0.412 587.000 5.95e+02 922.0
## 2     2   0.0416 -0.332          0.630 206.000 2.02e+02 443.0
## 3     3   0.2280 -0.747          0.920 91.500 8.43e+01 247.0
## 4     4   0.3910 -1.120          0.908 47.400 4.02e+01 154.0
## 5     5   0.7320 -1.230          0.958 27.400 2.14e+01 102.0
## 6     6   0.8810 -1.490          0.916 17.200 1.22e+01   83.7
## 7     7   0.8940 -1.640          0.869 11.600 7.29e+00   75.4
## 8     8   0.8620 -1.660          0.827   8.250 4.56e+00   69.2
## 9     9   0.8200 -1.600          0.810   6.160 2.97e+00   64.2
## 10   10   0.8390 -1.560          0.855   4.780 2.01e+00   60.1
## 11   12   0.8020 -1.410          0.866   3.160 9.61e-01   53.2
## 12   14   0.8470 -1.340          0.909   2.280 4.84e-01   47.7
## 13   16   0.8850 -1.250          0.932   1.750 2.64e-01   43.1
## 14   18   0.8830 -1.210          0.922   1.400 1.46e-01   39.1
## 15   20   0.9110 -1.180          0.926   1.150 8.35e-02   35.6
## 16   22   0.9160 -1.140          0.927   0.968 5.02e-02   32.6
## 17   24   0.9520 -1.120          0.961   0.828 2.89e-02   29.9
## 18   26   0.9520 -1.120          0.944   0.716 1.77e-02   27.5
## 19   28   0.9380 -1.120          0.922   0.626 1.08e-02   25.4
## 20   30   0.9620 -1.110          0.951   0.551 6.49e-03   23.5

par(mfrow = c(1,2))
cex1 = 0.9
# 橫軸是Soft threshold (power),縱軸是無標(biāo)度網(wǎng)絡(luò)的評估參數(shù),數(shù)值越高,
# 網(wǎng)絡(luò)越符合無標(biāo)度特征 (non-scale)
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")
# 篩選標(biāo)準(zhǔn)。R-square=0.85
abline(h=0.85,col="red")

# Soft threshold與平均連通性
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")

power = sft$powerEstimate
power

## [1] 6
經(jīng)驗(yàn)power (無滿足條件的power時(shí)選用)
# 無向網(wǎng)絡(luò)在power小于15或有向網(wǎng)絡(luò)power小于30內(nèi),沒有一個(gè)power值可以使
# 無標(biāo)度網(wǎng)絡(luò)圖譜結(jié)構(gòu)R^2達(dá)到0.8,平均連接度較高如在100以上,可能是由于
# 部分樣品與其他樣品差別太大。這可能由批次效應(yīng)、樣品異質(zhì)性或?qū)嶒?yàn)條件對
# 表達(dá)影響太大等造成??梢酝ㄟ^繪制樣品聚類查看分組信息和有無異常樣品。
# 如果這確實(shí)是由有意義的生物變化引起的,也可以使用下面的經(jīng)驗(yàn)power值。
if (is.na(power)){
power = ifelse(nSamples<20, ifelse(type == "unsigned", 9, 18),
        ifelse(nSamples<30, ifelse(type == "unsigned", 8, 16),
        ifelse(nSamples<40, ifelse(type == "unsigned", 7, 14),
        ifelse(type == "unsigned", 6, 12))      
         )
         )
}
網(wǎng)絡(luò)構(gòu)建
##一步法網(wǎng)絡(luò)構(gòu)建:One-step network construction and module detection##
# power: 上一步計(jì)算的軟閾值
# maxBlockSize: 計(jì)算機(jī)能處理的最大模塊的基因數(shù)量 (默認(rèn)5000);
# 4G內(nèi)存電腦可處理8000-10000個(gè),16G內(nèi)存電腦可以處理2萬個(gè),32G內(nèi)存電腦可
#  以處理3萬個(gè)
#  計(jì)算資源允許的情況下最好放在一個(gè)block里面。
# corType: pearson or bicor
# numericLabels: 返回?cái)?shù)字而不是顏色作為模塊的名字,后面可以再轉(zhuǎn)換為顏色
# saveTOMs:最耗費(fèi)時(shí)間的計(jì)算,存儲(chǔ)起來,供后續(xù)使用
# mergeCutHeight: 合并模塊的閾值,越大模塊越少
net = blockwiseModules(dataExpr, power = power, maxBlockSize = nGenes,
                      TOMType = type, minModuleSize = 30,
                      reassignThreshold = 0, mergeCutHeight = 0.25,
                      numericLabels = TRUE, pamRespectsDendro = FALSE,
                      saveTOMs=TRUE, corType = corType,
                      maxPOutliers=maxPOutliers, loadTOMs=TRUE,
                      saveTOMFileBase = paste0(exprMat, ".tom"),
                      verbose = 3)

## Calculating module eigengenes block-wise from all genes
##   Flagging genes and samples with too many missing values...
##     ..step 1
## ..Working on block 1 .
##     TOM calculation: adjacency..
##     ..will use 47 parallel threads.
##     Fraction of slow calculations: 0.000000
##     ..connectivity..
##     ..matrix multiplication (system BLAS)..
##     ..normalization..
##     ..done.
##   ..saving TOM for block 1 into file WGCNA/LiverFemaleClean.txt.tom-block.1.RData
## ....clustering..
## ....detecting modules..
## ....calculating module eigengenes..
## ....checking kME in modules..
##     ..removing 3 genes from module 1 because their KME is too low.
##     ..removing 5 genes from module 12 because their KME is too low.
##     ..removing 1 genes from module 14 because their KME is too low.
## ..merging modules that are too close..
##     mergeCloseModules: Merging modules whose distance is less than 0.25
##       Calculating new MEs...

# 根據(jù)模塊中基因數(shù)目的多少,降序排列,依次編號為 `1-最大模塊數(shù)`。
# **0 (grey)**表示**未**分入任何模塊的基因。
table(net$colors)

##
##   0   1   2   3   4   5   6   7   8   9 10 11 12 13
## 135 472 356 333 307 303 177 158 102 94 69 66 63 62
層級聚類樹展示各個(gè)模塊
## 灰色的為**未分類**到模塊的基因。
# Convert labels to colors for plotting
moduleLabels = net$colors
moduleColors = labels2colors(moduleLabels)
# Plot the dendrogram and the module colors underneath
# 如果對結(jié)果不滿意,還可以recutBlockwiseTrees,節(jié)省計(jì)算時(shí)間
plotDendroAndColors(net$dendrograms[[1]], moduleColors[net$blockGenes[[1]]],
                   "Module colors",
                  dendroLabels = FALSE, hang = 0.03,
                  addGuide = TRUE, guideHang = 0.05)

繪制模塊之間相關(guān)性圖
# module eigengene, 可以繪制線圖,作為每個(gè)模塊的基因表達(dá)趨勢的展示
MEs = net$MEs

### 不需要重新計(jì)算,改下列名字就好
### 官方教程是重新計(jì)算的,起始可以不用這么麻煩
MEs_col = MEs
colnames(MEs_col) = paste0("ME", labels2colors(
 as.numeric(str_replace_all(colnames(MEs),"ME",""))))
MEs_col = orderMEs(MEs_col)

# 根據(jù)基因間表達(dá)量進(jìn)行聚類所得到的各模塊間的相關(guān)性圖
# marDendro/marHeatmap 設(shè)置下、左、上、右的邊距
plotEigengeneNetworks(MEs_col, "Eigengene adjacency heatmap",
                     marDendro = c(3,3,2,4),
                     marHeatmap = c(3,4,2,2), plotDendrograms = T,
                     xLabelsAngle = 90)

## 如果有表型數(shù)據(jù),也可以跟ME數(shù)據(jù)放一起,一起出圖
#MEs_colpheno = orderMEs(cbind(MEs_col, traitData))
#plotEigengeneNetworks(MEs_colpheno, "Eigengene adjacency heatmap",
#                      marDendro = c(3,3,2,4),
#                      marHeatmap = c(3,4,2,2), plotDendrograms = T,
#                      xLabelsAngle = 90)
可視化基因網(wǎng)絡(luò) (TOM plot)
# 如果采用分步計(jì)算,或設(shè)置的blocksize>=總基因數(shù),直接load計(jì)算好的TOM結(jié)果
# 否則需要再計(jì)算一遍,比較耗費(fèi)時(shí)間
# TOM = TOMsimilarityFromExpr(dataExpr, power=power, corType=corType, networkType=type)
load(net$TOMFiles[1], verbose=T)

## Loading objects:
##   TOM

TOM <- as.matrix(TOM)

dissTOM = 1-TOM
# Transform dissTOM with a power to make moderately strong
# connections more visible in the heatmap
plotTOM = dissTOM^7
# Set diagonal to NA for a nicer plot
diag(plotTOM) = NA
# Call the plot function

# 這一部分特別耗時(shí),行列同時(shí)做層級聚類
TOMplot(plotTOM, net$dendrograms, moduleColors,
       main = "Network heatmap plot, all genes")

導(dǎo)出網(wǎng)絡(luò)用于Cytoscape

Cytoscape繪制網(wǎng)絡(luò)圖見我們更新版的視頻教程或https://bioinfo.ke.qq.com/。

probes = colnames(dataExpr)
dimnames(TOM) <- list(probes, probes)

# Export the network into edge and node list files Cytoscape can read
# threshold 默認(rèn)為0.5, 可以根據(jù)自己的需要調(diào)整,也可以都導(dǎo)出后在
# cytoscape中再調(diào)整
cyt = exportNetworkToCytoscape(TOM,
            edgeFile = paste(exprMat, ".edges.txt", sep=""),
            nodeFile = paste(exprMat, ".nodes.txt", sep=""),
            weighted = TRUE, threshold = 0,
            nodeNames = probes, nodeAttr = moduleColors)

關(guān)聯(lián)表型數(shù)據(jù)
trait <- "WGCNA/TraitsClean.txt"
# 讀入表型數(shù)據(jù),不是必須的
if(trait != "") {
 traitData <- read.table(file=trait, sep='\t', header=T, row.names=1,
                         check.names=FALSE, comment='',quote="")
 sampleName = rownames(dataExpr)
 traitData = traitData[match(sampleName, rownames(traitData)), ]
}

### 模塊與表型數(shù)據(jù)關(guān)聯(lián)
if (corType=="pearsoon") {
 modTraitCor = cor(MEs_col, traitData, use = "p")
 modTraitP = corPvalueStudent(modTraitCor, nSamples)
} else {
 modTraitCorP = bicorAndPvalue(MEs_col, traitData, robustY=robustY)
 modTraitCor = modTraitCorP$bicor
 modTraitP   = modTraitCorP$p
}

## Warning in bicor(x, y, use = use, ...): bicor: zero MAD in variable 'y'.
## Pearson correlation was used for individual columns with zero (or missing)
## MAD.

# signif表示保留幾位小數(shù)
textMatrix = paste(signif(modTraitCor, 2), "\n(", signif(modTraitP, 1), ")", sep = "")
dim(textMatrix) = dim(modTraitCor)
labeledHeatmap(Matrix = modTraitCor, xLabels = colnames(traitData),
              yLabels = colnames(MEs_col),
              cex.lab = 0.5,
              ySymbols = colnames(MEs_col), colorLabels = FALSE,
              colors = blueWhiteRed(50),
              textMatrix = textMatrix, setStdMargins = FALSE,
              cex.text = 0.5, zlim = c(-1,1),
              main = paste("Module-trait relationships"))

模塊內(nèi)基因與表型數(shù)據(jù)關(guān)聯(lián), 從上圖可以看到MEmagentaInsulin_ug_l相關(guān),選取這兩部分進(jìn)行分析。

## 從上圖可以看到MEmagenta與Insulin_ug_l相關(guān)

## 模塊內(nèi)基因與表型數(shù)據(jù)關(guān)聯(lián)

# 性狀跟模塊雖然求出了相關(guān)性,可以挑選最相關(guān)的那些模塊來分析,
# 但是模塊本身仍然包含非常多的基因,還需進(jìn)一步的尋找最重要的基因。
# 所有的模塊都可以跟基因算出相關(guān)系數(shù),所有的連續(xù)型性狀也可以跟基因的表達(dá)
# 值算出相關(guān)系數(shù)。
# 如果跟性狀顯著相關(guān)基因也跟某個(gè)模塊顯著相關(guān),那么這些基因可能就非常重要
# 。

### 計(jì)算模塊與基因的相關(guān)性矩陣

if (corType=="pearsoon") {
geneModuleMembership = as.data.frame(cor(dataExpr, MEs_col, use = "p"))
MMPvalue = as.data.frame(corPvalueStudent(
            as.matrix(geneModuleMembership), nSamples))
} else {
geneModuleMembershipA = bicorAndPvalue(dataExpr, MEs_col, robustY=robustY)
geneModuleMembership = geneModuleMembershipA$bicor
MMPvalue   = geneModuleMembershipA$p
}

# 計(jì)算性狀與基因的相關(guān)性矩陣

## 只有連續(xù)型性狀才能進(jìn)行計(jì)算,如果是離散變量,在構(gòu)建樣品表時(shí)就轉(zhuǎn)為0-1矩陣。

if (corType=="pearsoon") {
geneTraitCor = as.data.frame(cor(dataExpr, traitData, use = "p"))
geneTraitP = as.data.frame(corPvalueStudent(
            as.matrix(geneTraitCor), nSamples))
} else {
geneTraitCorA = bicorAndPvalue(dataExpr, traitData, robustY=robustY)
geneTraitCor = as.data.frame(geneTraitCorA$bicor)
geneTraitP   = as.data.frame(geneTraitCorA$p)
}

## Warning in bicor(x, y, use = use, ...): bicor: zero MAD in variable 'y'.
## Pearson correlation was used for individual columns with zero (or missing)
## MAD.

# 最后把兩個(gè)相關(guān)性矩陣聯(lián)合起來,指定感興趣模塊進(jìn)行分析
module = "magenta"
pheno = "Insulin_ug_l"
modNames = substring(colnames(MEs_col), 3)
# 獲取關(guān)注的列
module_column = match(module, modNames)
pheno_column = match(pheno,colnames(traitData))
# 獲取模塊內(nèi)的基因
moduleGenes = moduleColors == module

sizeGrWindow(7, 7)
par(mfrow = c(1,1))
# 與性狀高度相關(guān)的基因,也是與性狀相關(guān)的模型的關(guān)鍵基因
verboseScatterplot(abs(geneModuleMembership[moduleGenes, module_column]),
                  abs(geneTraitCor[moduleGenes, pheno_column]),
                  xlab = paste("Module Membership in", module, "module"),
                  ylab = paste("Gene significance for", pheno),
                  main = paste("Module membership vs. gene significance\n"),
                  cex.main = 1.2, cex.lab = 1.2, cex.axis = 1.2, col = module)

分步法展示每一步都做了什么
### 計(jì)算鄰接矩陣
adjacency = adjacency(dataExpr, power = power)

### 把鄰接矩陣轉(zhuǎn)換為拓?fù)渲丿B矩陣,以降低噪音和假相關(guān),獲得距離矩陣。
TOM = TOMsimilarity(adjacency)
dissTOM = 1-TOM

### 層級聚類計(jì)算基因之間的距離樹
geneTree = hclust(as.dist(dissTOM), method = "average")

### 模塊合并
# We like large modules, so we set the minimum module size relatively high:
minModuleSize = 30
# Module identification using dynamic tree cut:
dynamicMods = cutreeDynamic(dendro = geneTree, distM = dissTOM,
                          deepSplit = 2, pamRespectsDendro = FALSE,
                          minClusterSize = minModuleSize)
# Convert numeric lables into colors
dynamicColors = labels2colors(dynamicMods)

### 通過計(jì)算模塊的代表性模式和模塊之間的定量相似性評估,合并表達(dá)圖譜相似
的模塊
MEList = moduleEigengenes(datExpr, colors = dynamicColors)
MEs = MEList$eigengenes
# Calculate dissimilarity of module eigengenes
MEDiss = 1-cor(MEs)
# Cluster module eigengenes
METree = hclust(as.dist(MEDiss), method = "average")
MEDissThres = 0.25

# Call an automatic merging function
merge = mergeCloseModules(datExpr, dynamicColors, cutHeight = MEDissThres, verbose = 3)
# The merged module colors
mergedColors = merge$colors;
# Eigengenes of the new merged

## 分步法完結(jié)

Reference:

  1. 官網(wǎng):https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/Tutorials/

  2. 術(shù)語解釋:https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/Tutorials/Simulated-00-Background.pdf

  3. FAQ:https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/faq.html

  4. 生信博客:http://blog.genesino.com

  5. 高顏值免費(fèi)在線繪圖工具升級版來了~~~可以在線做 WGCNA 分析)


你可能還想看


往期精品(點(diǎn)擊圖片直達(dá)文字對應(yīng)教程)


后臺回復(fù)“生信寶典福利第一波”或點(diǎn)擊閱讀原文獲取教程合集




瀏覽 54
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 91九色91蝌蚪91窝成人| 污视频在线| 欧洲精品在线观看| 亚洲AV永久无码精品| 人妻无码一区二区| 在线观看日韩视频| 免费无码婬片AAAAA片| 欧美日韩中国操逼打炮| 欧美三级片视频| www.国产视频| 丰满人妻一区二区三区精品高| 日本一本草久p| 国产系列第一页| 黄色视频免费在线看| 欧美毛视频| 国产77777| 国产特级毛片| 人妻一区| 欧美性猛交XXXX乱大交| 蜜臀AV在线播放| 狠狠躁日日躁夜夜躁A片男男视频| 婷婷伊人久操网| 日本黄色的视频| 97视频| 怡红院AV| 17c精品麻豆一区二区免费| 大香蕉超碰在线| 国产av地址| 人人色在线观看| 欧美日韩性色无码免费| 密臀91| 国产精品久久久91| 亚洲色婷婷综合| 亚洲欧美视频一区| 日韩中文字幕有码| 日韩91在线| 婷婷成人视频| 色婷婷香蕉在线一区二区| 日本三级片网站在线观看| 豆花视频| 日韩一级电影在线观看| 一级黄色电影免费观看| 午夜av在线免费观看| 免费A片在线| 性饥渴欧美老妇XXXXX| 天天色天天| 18禁一区二区三区| 韩国无码一区二区三区| 日韩精品一区二区三区中文在线| 欧美综合亚洲| 牛牛在线精品视频| av电影在线免费观看| 久久a久久| 91丝袜一区二区| 婷婷五月天社区| 无码一区三区| 国产一级女婬乱免费看| 成人动漫在线观看| 天堂av在线免费观看| 欧美日韩国产91| 超碰人人人| 欧美视频在线免费| 黄色在线欣赏| 国产精品在线观看| 日韩三级片网站| 亚洲精品大片| 中文字幕久久人妻无码精品蜜桃| 婷婷深爱五月| 天堂a在线| 日韩免费精品视频| 另类BBwBBw| 二级黄色视频| 国产精品一级A片| 91成人篇| 久久青留社区金玉| 久色性爱视频| 午夜黄色| 成人怡红院| 黄色一级录像| 日韩人妻精品无码制服| 亚洲三级久久| 美女天天肏| 无码秘人妻一区二区三-百度 | 中文无码日本一级A片人| 黄色不卡| 亚洲无码图| 日韩无码AV一区二区三区| AV天堂中文字幕| 久久久精品中文字幕麻豆发布| 夜夜撸夜夜操| 国产在线观看mv免费全集电视剧大全| 色色色999| 先锋影音一区二区三区| 日本人人操人人摸| 久久久久久久久久国产精品免费观看-百度| 五月丁香婷婷综合| 中文字幕有码在线观看| 亚洲一区视频| 91无码精品| 亚洲欧洲免费视频| 91视频一区二区三区| 日本精品二区| 午夜无码在线| 91探花视频精选在线播放| 极品人妻疯狂3p超刺激| 亚洲无码影片| 尹人成人| 亚洲最大的成人网站| 壁特壁视频在线观看| 欧美高潮喷水| 911精品国产一区二区在线| 狠狠狠狠狠狠狠| 一级片成人| 国产秘精品一区二区三区免费| 婷婷99狠狠躁天天| 搡女人视频国产一级午夜片| 亚洲精品秘一区二区三小| 91碰碰| 中文成人无字幕乱码精品区| 婷婷狠狠干| 中文无码日本一级A片人| 99热5| 青草草在线| 久久韩国| 欧美一级网| 亚洲精品一区二区三区在线观看 | 天天爽天天搞| 精品一区二区三区四| 黄页视频网站| 午夜啪啪视频| 成人动漫在线观看| 成人a视频| 91资源在线观看| 成片免费观看视频大全| 青娱乐99| 亚洲欧洲在线视频| 欧美成人A片| 亚洲欧美美国产| WWW.豆花视频精品| 国产成人电影一区二区| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇| 丰满人妻一区二区三区46| 艹逼视频| 九一亚洲精品| 国产操逼免费视频| 91福利视频网站| 欧美午夜在线| 777久久| 亚洲久热| 国产一级A片| 久久99高清视频| 欧美肏屄网| 成人免费一级视频| 日韩人妻系列| 又黄又湿的视频| 亚洲无码在线播放视频| 大香蕉伊人AV| 青青草免费在线| 五月婷婷在线视频| 国产色婷婷| 三级电影久久麻豆| A免费观看| 丁香一区二区| 亚洲欧美成人在线视频| 婷婷五月丁香色| 亚洲毛片视频| 久久国内视频| 精品一区二区三区四区| 人妻少妇中文字幕久久牛牛| www.91在线视频| 午夜亚洲精品| 操屄视频网站| 六月婷婷久久| 手机看片久久| 亚洲大哥天天干| 污视频在线免费| 国产乱子伦一区二区三区视频| 中韩日美免费看的电影| 天天干无码| 黄色成人网站在线观看免费| 欧美男人天堂| 福利一区二区| 91亚洲在线观看| 蜜桃久久精品成人无码AV| 亚洲伊人成人| 成人动漫一区二区| 极品另类| 内射午夜福利在线免费观看视频 | 国产精品在线观看| 久久久精品久久| 国产性生活视频| 亚洲免费a| 91热热| 一区二区三区在线免费观看| 无码日逼| 人人操人人干人人操| 国产嫩草影院| 影音先锋成人AV资源| 99热在线观看免费精品| 亚洲一区| 国产成人精品视频免费看| 日韩色图在线观看| 精品久久免费视频| 激情丁香婷婷| 亚洲女人被黑人巨大进入| 久草中文在线| 欧美激情婷婷| 国产精品久久久久久无人区| 影音先锋av资源在线| 操小骚逼视频| 无码免费一区二区三区| 一牛影视精品av| 17c白丝喷水自慰| 色婷婷影音| 97碰碰碰| 巨乳国产一区| 特黄视频在线观看| 成人无码免费视频| 午夜激情视频网站| 91AV视频在线观看| 国产精品探花熟女| 高清视频无码| 精品视频免费| 亚洲日韩AV在线| 欧美精品18videosex性欧美| 色资源在线观看| 亚洲人天堂| 黄色性爱小说| 在线免费观看国产| 亚洲毛片亚洲毛片亚洲毛片| 开心老牛熟| 欧美性爱免费网站| 国产激情欧洲在线观看一区二区三区| 特黄视频在线观看| 亚洲精品成人无码AV在线| 婷婷午夜精品久久久久久性色AV| 91激情| 久久五月天视频| www狠狠| 超碰在线看| 91一区二区三区| 日本欧美成人片AAAA| 麻豆视频免费观看| 一区二区三区在线免费观看| 国产精品天天AVJ精麻传媒| 黄色一级电影网| 潮喷在线观看| 成人国产精品| 成人在线观看无码| 高清视频一区| 日本成人三级片| 男女操逼网站| 人妖和人妖互交性XXXX视频 | 亚洲欧美大香蕉视频网| 日韩在线视频第一页| 猫咪AV大香蕉| 国产一区二区无码| 国产精品一级无码免费播放| 黄网站在线免费| 午夜激情视频网站| 兔子先生和優奈玩游戲脫衣服,運氣報表優奈輸到脫精光 | 国产亚洲无码激情前后夹击| 黄色网页在线免费观看| 日韩做爱视频| 伊人五月丁香| 国产成人无码AⅤ片免费播放| 日韩无码小电影| 精品国产自| 新中文字幕| 三级片无码视频| 色色网欧美| 亚洲色涩| 五月天开心网| 日韩一级一片| 91一起草高清资源| 亚洲无码影片| 最新国产激情视频| 婷婷五月天丁香在线| 农村少妇久久久久久久| 亚洲欧美日韩黑料吃瓜在线观看 | 五月丁香天堂| 色婷婷中文| 久久精品视频免费| 性欧美丰满熟妇XXXX性久久久 | 精品无码蜜桃| 中文av在线播放| 婷婷五月999| 三级91| 人人妻人人| 国产美女久久久| 另类欧美色图| 黄色三级视频在线观看| 国产成人V在线精品一区| 午夜爽爽爽| 大香蕉视频在线观看| 亚洲成人在线视频免费观看 | 插吧插吧网| 久久五月天视频| 超碰93| 午夜激情网站| 欧美高清一区二区| 亚洲无码影片| 久久精品色| AV在线免费网站| 91在线无码| www.插逼| 亚洲精品999| 无限高潮| 精品国内自产拍在线观看视频| 亚洲骚逼| 先锋影音一区| 嫩草视频在线观看| 欧美黄色站| 东京热A片| 亚洲无码高清视频在线观看| 中国老熟女2老女人| 免费AV在线播放| 全部免费黄色视频| 婷婷色中文网| 国产欧美日本| 777国产盗摄偷窥精品0000| 9热精品| 五月丁香啪| 99热精品2| 国产精品久久久久久久久久久久久久 | 在线观看免费A片| 亚洲成人少妇老妇a视频在线 | 成人A片免费在线观看| 亚洲精品人伦一区二区| 精品欧美片在线观看步骤| 日韩日韩日韩日韩| 欧美在线中文字幕| 成人A片免费在线观看| 2017天天干| 成人黄色性视频| 婷婷五月无码| 人人操人人妻| 夫妻-ThePorn| 日本人妻视频| av网站免费在线观看| 国产成人91| 亚洲午夜影院在线| 久久精品中文| 第四色网站| 成人A片免费视频| 人妻精品一卡二卡| 国外成人性视频免费| 婷婷久久久| 成人777777免费视频色| 国产成人无码一区二区在线| 一区无码精品| 国产又爽又黄A片| 十八禁福利网站| 无码成人A片在线观看| 欧美特级黄片| 免费看黄色一级片| 一品国精和二品国精的文化意义| AV网站免费在线观看| 国产三四区久久| 狼友综合| 青青草原在线视频| 性爱黄色视频| 亚洲激情在线| 婷婷操逼网| 国产精品资源| 噜噜噜在线视频| 九九九国产| 中文字幕成人网站| 99大香蕉| 天堂中文资源在线观看| 亚洲中文字幕2025| 国产香蕉AV| 国产精品片| 日韩V片| 欧美国产日韩在线| 日韩黄色片在线观看| 91在线视频精品| 秘蜜桃色一区二区三区在线观看 | AAA片视频| 国产一区不卡| 影音先锋男人网| 国产视频久久久| 一区二区三区不卡在线| 日韩av在线免费观看| 人妻av中文无码| 在线看片a| 国产无套进入免费| 五月天激情午夜福利| 久久草在线播放| 亚洲成人69| 毛片91| 西西西444www无码视频| 色欲av伊人久久大香线蕉影院 | 亚洲无码黄色电影| 国产成人精品123区免费视频| 国产成人在线精品| 3344gc在线观看入口| 亚洲内射无码| 黄色视频网站国产| 欧美黄片无码| 草逼的视频| 美女操b| 亚洲永久| 日本理论片一道本| 色色网欧美| 国产黄色性爱视频| 五月天丁香婷婷视频| 特黄aaaaaaaa真人毛片| 色草视频| 波多野结衣不卡| 国产精品无码中文在线| 亚洲免费在线婷婷| 手机av免费| 又爽又黄免费网站97双女| 伊人天天干| 日韩欧美亚洲一区二区三区| 亚洲色影院| 国产亚洲91| 亚洲美女网站在线观看| 亚洲成人视频免费观看| 狠狠狠狠狠狠狠狠狠狠| 日日撸夜夜撸| 牛牛精品一区| 91成人免费电影片| 豆花视频logo进入官网| 99热这里只有精品999| 俺去俺来也www色视频| 色色色欧美| 操屄视频播放| 蜜桃BBwBBWBBwBBw| 无码熟妇人妻无码AV在线天堂| 久久免费精品| 日产精品久久久久| 国产成人AV免费观看| 激情成人五月天| 91人体视频| 日日干天天| 囯产一级a一级a免费视频| 大橡胶伊人网| 天天综合天天做天天综合| 蜜桃久久精品成人无码AV| 欧美一区二区在线观看| 操B视频在线播放| 四虎高清无码| 少婦揉BBBB揉BBBB揉| 久久精品免费| 老女人日逼视频| 久久成人影音先锋| 中文无码AV| 日本中文字幕不卡| 午夜免费福利视频| 亚洲专区免费| 成人在线免费电影| 级婬片AAAAAAA免费| 午夜福利片| 无码专区中文字幕| 少妇二区| 久久成人免费| v天堂| 人成免费网站| 中文字幕在线网站| 国产亲子乱XXXXimim/| 欧美激情性爱网站| 天天视频色| 欧美中文字幕| 无码视屏| 三级片中文字幕| 亚洲人操逼视频| 俺也去色色| 在线观看国产视频| 欧美中文字幕在线播放| 色优久久| 精品第一页| 欧美精品第一页| 啪啪91| 88AV视频| 91福利导航| 成人免费网站在线| 在线操B视频| 中文字幕人妻无码| 亚洲精品国偷拍自产在线观看蜜桃| 亚洲一级婬片A片AAAA网址| 久久综合99| 亚洲成人免费观看| 狼友免费视频| 亚洲欧美成人| 婷婷五月天国产| 国产精品秘ThePorn| 91re| 日韩中文字幕av| 日韩一级二级三级| 狠狠干B| 91av视频| 免费成人黄色网址| 大香蕉黄色片| 人人操人人看人人干| 婷婷久久综合久色| 国产日韩欧美一区二区| 久久97人妻AⅤ无码一区| 午夜成人福利视频在线观看| 丁香五月激情网| 97中文字幕在线| 大色鬼在线天堂精品| 亚洲第一黄色| 一卡二卡无码| 日韩久久中文字幕| 少妇高潮av久久久久久| 草视频| 色婷婷影音| 88av在线播放| 久久99高清视频| 成人在线一区二区| 亚洲五月天婷婷| 亚洲AV无码久久久| 麻豆视频在线免费观看| 大香蕉手机视频| 亚洲福利在线观看视频| 中文字幕在线码| 一本色道久久综合熟妇人妻| 日韩免费视频在线观看| a片在线免费看| 中文字幕视频免费| 自拍视频在线| 在线免费看黄色| 人人澡人人爽人人精品| 黄色不卡| 日本A∨在线| 五月影院| 久久国产AV| 国产三级午夜理伦三级| 久操网在线| 无码人妻丰满熟妇啪啪| 杨晨晨不雅视频| 精品1234| 先锋影音成人| 成人精品一区日本无码网站suv| 日本少妇bbw| 免费亚洲视频| 日本不卡中文字幕| 欧美日韩激情视频| 黄片网站免费在线观看| AV天堂手机| 久久国产V一级毛多内射| 97精品在线| 操逼福利视频| 日韩人妻在线播放| 国产激情视频在线免费观看| 91国产爽黄| 在线播放一区| 激情综合网站| 久久国产香蕉| 中文无码熟妇一区二区| 少妇高潮视频| 欧美群交在线| 2018人人操| 吹潮喷水高潮HD| 中文字幕性爱电影| 婷婷五月999| 日韩一级黄色电影| 久久视频免费观看| 天天色天天爱| 校园春色亚洲无码| 韩国gogogo高清在线完整版| av黄色网| 久久久久久国际四虎免费精品视频| 青青草视频在线免费观看| 国产成人va| 国产九九在线视频| 色婷婷一二三精品A片| 国产女人18| 人妻77777| 丁香六月| 中文字幕日韩在线观看| 欧美啪啪啪| 国产乱码一区二区三区的区别| 日韩精品极品视频在线观看免费| 欧美特黄AAA| 约操少妇| av在线天堂| 大香蕉在线精品视频| 被黑人猛躁10次高潮视频| 熟女人妻ThePorn| 大香蕉青娱乐| jizz在线视频| 毛片黄片| 免费无码视频一区二区| 午夜AV在线| 一级A爱爱| 日韩一片| 国产成人精品一区二区三区视频| 午夜福利日本| 国产卡一卡二在线观看| 亚洲欧洲有码在线| 一级欧美一级日韩| 亚洲一二三四| 99热91| 成人午夜黄片| 91中文字幕在线播放| 婷婷五月天激情电影| 激情五月天在线视频| 巨爆乳肉感一区二区三区视频| 欧美日韩有码视频网址大全| 无码激情视频| 久久久91| 伊人天天干| 精品乱子伦一区二区三区免费播成 | 日韩欧美中文| 欧美在线不卡| 国产亚洲欧美在线| 9i看片成人免费视频| 在线看国产| 天天爱天天爽| 在线观看视频亚洲| 国产女人高潮毛片| 91无码精品国产AⅤ| 国产免费AV片在线无码| 中文A片| 密臀福利导航| 日韩大片免费观看| 逼特逼| 男女拍拍| 午夜伊人| 操逼网页| 小處女末发育嫩苞AV| 综合夜夜| 色呦呦一区二区三区| 影音先锋AV在线资源| 精品人妻无码一区二区三区四川人| 久久久91人妻无码精品蜜桃ID| 国产精品色色色| 五月天丁香成人| 日本黄A级A片国产免费| 国产A片录制现场妹子都很多| 日韩成人无码一区二区视频| 精品视频久久| 人人色人人爱| 无码高清一区二区| 亚洲免费视频在线| 午夜香蕉视频| 高清无码在线免费| 国产精品无码白浆高潮| 久久久久伊人| 强伦轩一区二区三区四区| 日韩一二三四区| 黄色av免费观看| 精品国产成人a在线观看| 黄视频在线观看免费| 丰满人妻一区二区三区免费| 五月天婷婷激情视频| 无码欧美成人AAAA三区在线| 亚洲日韩在线中文字幕| 亚洲精品国产精品国自产| 日本黄色a片| 99热只有精| 一级a一级a免费观看免免黄‘/| 伊人激情五月| 亚洲三级黄片| 国产区在线视频| AV手机天堂| av天堂资源| 搡BBB搡BBBB搡BBBB'| 996精品视频| 国产美女自拍| 婷婷情色| 欧美日韩一区二区在线| 久久在线| 91九色蝌蚪91POR成人| 熟女少妇一区二区| 国产免费一级特黄A片| www.AV在线| 1区2区视频| 国产免费福利| 蜜臀av在线免费观看| 操逼逼网站| 国产精品无码免费视频| 夜夜爽妓女77777毛片A片| 亚洲AV黄色| 麻豆自拍偷拍视频| 亚洲一区二区在线播放| 亚洲草逼| 成人高清无码在线观看| 波多野结衣日韩| ww久久| 午夜久久久| 午夜不卡视频| 亚洲精品视频在线播放| 麻豆av无码| 加勒比综合在线| 人妖黄片| 国内毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 欧美国产激情| 超碰国产在线| 日韩AV电影在线观看| 日韩精品无码一区二区| 波多野结衣无码高清| 午夜毛片| 综合欧美国产视频二区| 黄色av无码| 91人妻一区二区三区无不码超满| 国产AV无码影院| 亚洲黄色在线播放| 色综合色综合色综合| 天天色天| 亚洲AV综合网| 奇米99| 免费av在线播放| 91在线无码精品秘| 人妻互换一二三区免费| 日韩三级片网站| 无码三级| 亚州AV天堂| 色五月婷婷五月天激情| 日韩日逼网站| 人人草人人舔| av女人的天堂| 国产精品中文| 一级黄色视频免费看| 一级片免费视频| 黄色免费在线观看视频| 日本不卡在线| 开心四房播播第四婷婷| 亚洲高清视频一区| 日韩久操| 男人的天堂一区| 亚洲av大全| 日韩啊v| 熟女人妻ThePorn| 网站毛片| 91豆花成人网站| 北条麻妃无码在线播放| 国产成人精品AV| 美女黄色视频永费在线观看网站 | 亚洲日本三级片| 九九色在线视频| 欧亚一区二区| 91人妻人人澡人人添人人爽 | 狠狠热视频| 蜜桃Av噜噜一区| 精品一区二区ww| 婷婷中文在线| 欧美激情综合| 日韩视频免费观看高清完整版在线观 | 久久三级| 亚洲无码激情在线| 凸凹翔田千里无码| 俺去啦俺去啦| 亚洲日产专区| 无码成人A片在线观看| 91av| 日韩欧美视频| 成人在线18禁| 18禁网站在线播放| 中文字幕在线免费观看电影| 九九视频免费观看| 国产精品视频久久久| 97超碰在线免费观看| 丁香花在线小说免费全文| 农村一级婬片A片| 夜夜嗨av一区二区三区| 成人丁香五月| 青草青在线视频| 黄片高清无码| 亚洲天堂自拍| 熟女少妇网站| 自慰喷水在线观看| 日韩色婷婷| 亚洲专区中文字幕| 亚洲AV成人片无码网站网蜜柚 | 午夜成人精品| 午夜视频在线播放| 国产精品无码一区二区在线欢| 综合网伊人| 999久久久久| 日韩欧美性爱视频| 中文字幕在线日本| 国产精品1区2区| 天天操中文字幕| 亚州毛多色色精品| 无码国精品一区二区免费蜜桃| 亚洲AⅤ无码一区二区波多野按摩 69国产成人综合久久精品欧美 | 操逼黄视频| 嫩草久久99www亚洲红桃 | 露脸丨91丨九色露脸| 久久青青婷婷| 久久免费成人电影| 成人免费一区| www.6969成人片亚洲| 成人福利在线| 西西4444www无码精品| 国产精品欧美日韩| 欧美婬乱片A片AAA毛片地址| 欧美精品第一页| 激情欧美| 蜜臀av一区二区三区| 日韩A片免费观看| 高清无码网址| 色999| 无码免费一区二区三区| 山东乱子伦视频国产| 久本草精品| 黑人大荫蒂女同互磨| 精品黑人| 图片区视频区小说区| www.zaixianshipin| 色婷婷7777| 俄罗斯白嫩BBwBBwBBw91| 爆乳尤物一区二区三区| 久久毛片| 日韩无码破解| 97精品人妻一区二区三区香蕉| 蜜桃视频一区二区三区四区使用方法 | 国产高清AV在线| 黄色电影视频网站| 精品偷拍视频| 伊人成人视频在线观看| 人人爽人人爽人人| 91av免费在线观看| 国产在线资源| 啪啪成人网| 偷拍视频图片综合网| 国产传媒精品| 精品国产91| 国产免费一区二区三区免费视频 | 99re视频播放| 色色免费| 成人四区| 69av在线播放| 黄色成人视频网站在线观看| jt33免费观看高清| 最新av| 69无码| 久久久精品少妇| 国产成人AV免费无码| 最新中文字幕在线视频| 手机看片午夜福利网| 69久久成人精品| 国产麻豆性爱视频| 精品在线免费观看| 亚洲北条麻妃一级A片| 丁香五月天天| AV免费在线播放| 逼特逼视频| 91区视频| www.狠狠爱| 你懂的视频在线| 高潮视频在线| 熟妇槡BBBB槡BBBB图| 亚洲激情婷婷| 国产一级影院| 国产一级片免费| 香蕉操逼视频| 色色色色色欧美| 仓井空一区二区三区| а天堂中文在线资源| 黄色激情五月天| 91大神在线免费观看| 三级片日韩| 偷拍99| 国产成人自拍视频在线| 亚洲成人综合网站| 色中文字幕| 91精品国产一区二区三区四区大| 88AV在线视频| 大香蕉视频网| 国产寡妇亲子伦一区二区三区四区 | 亚洲精品久久久久久久久豆丁网| 韩国毛片| 国产suv精品一区二区6精华液 | 呦呦av| 日本一本在线| 99久久精品国产一区色| 久久久久人| ww毛片| 青青草成人网| 日狠狠| 91亚洲综合| 亚洲热视频| 91香蕉在线看| 日本一区二区三区免费观看| 无码不卡视频| 动漫人物插画动漫人物的视频软件| 岛国av免费看| 综合婷婷| 黄色一级小说| 亚洲欧美日韩综合| 国产精品HongKong麻豆 | 深爱五月网| 精品一区国产探花| 日逼视| 亚洲免费观看高清完整版在va线观 | 精品二区| 五月丁香激情四射| 日韩在线视频91| 日韩一级黄片| 91久久婷婷亚洲精品成人| 美女黄色视频网站| AAA三级视频| 日韩欧美成人在线视频| 91av电影| 欧美试看|