R包fastWGCNA - 快速执行WGCNA分析和下游分析可视化

  • 最新版本: 1.0.0
  • 可以对着视频教程学习和使用:然而还没录呢, 关注B站等我更新

R包介绍

开发背景

  • WGCNA是转录组或芯片表达谱数据常用得分析, 可用来鉴定跟分组或表型相关得模块基因和核心基因
  • 但其步骤非常之多, 每次运行起来很是费劲, 但需要修改的参数并不多
  • 所以完全可以编写成一站式流程, 直接从表达谱和表型得到所有结果
  • 另外得到模块基因后, 后续还有PPI和Cytoscape的分析

功能简介

  • 一站式实现WGCNA, 只需要输入表达谱和分组或表型文件, 即可完成分析
  • 保存各种结果文件, 如每个模块基因、hub基因、显著性结果、MM/GS评分等等
  • 可视化内容: 散点图、相关性热图重绘、相关性蝴蝶图
  • 下游分析: Cytoscape的MCODE和cytoHubba结果的提取和可视化

安装

  • 没有安装包的需要付费获取安装包:

    • 直接添加微信转账100, 发送fastR(依赖包)和fastWGCNA的压缩包
    • 如果购买过R包fastGEO, 可以半价购买fastWGCNA包!
    • 很多资料后面都会慢慢涨价, 早买会便宜很多!
    • 购买后可进入交流群,后续版本更新和问题答疑都在群里进行
  • R包fastGEO目前售价调整为100, 以前为20, 逐步涨价到50, 现在是100

  • 两包合购限时优惠150, 限时多久看心情

  • 所有R包随着功能增加价格必然会上调, 早买早享受, 且免费获取最新版本

# 依赖包
install_if_missing <- function(pkg, repos = getOption("repos")) {
    if (!requireNamespace(pkg, quietly = TRUE)) {
        install.packages(pkg, repos = repos)
    }
}

install_if_missing("WGCNA")
install_if_missing("linkET")
install_if_missing("dplyr")
install_if_missing("pdftools")
install_if_missing("UpSetR")
install_if_missing("VennDiagram")
install_if_missing("gridExtra")


# 如果不存在fastR包或版本过低则进行安装
file_pkgs = grep("^fastR.*\\.gz$", dir(), value = TRUE)
if(!require("fastR", quietly = TRUE) || packageVersion("fastR") < strsplit(file_pkgs, "_|\\.tar")[[1]][2]){
    install.packages(file_pkgs, repos = NULL, upgrade = FALSE, force = TRUE)
}
# 如果不存在fastWGCNA包或版本过低则进行安装
file_pkgs = grep("^fastWGCNA.*\\.gz$", dir(), value = TRUE)
if(!require("fastWGCNA", quietly = TRUE) || packageVersion("fastWGCNA") < strsplit(file_pkgs, "_|\\.tar")[[1]][2]){
    install.packages(file_pkgs, repos = NULL, upgrade = FALSE, force = TRUE)
}
========================================
  欢迎使用 fastWGCNA (版本 1.0.0)
  - 作者: 生信摆渡
  - 微信: bioinfobaidu1
  - 帮助文档: help(package = fastWGCNA)
======================================== 

功能演示

library(fastWGCNA)
# 准备数据, 没有购买fastGEO的可以联系我购买或跳过此步
# 此步仅是数据准备, 也可以自行准备, 然后运行 run_WGCNA
library(fastGEO)
========================================
  欢迎使用 fastGEO (版本 1.7.0)
  - 作者: 生信摆渡
  - 微信: bioinfobaidu1
  - 帮助文档: help(package = fastGEO)
========================================


run_WGCNA

  • 一站式运行WGCNA, 需要输入表达谱(expM)和分组向量(group)或表型数据框(pheno)

  • 其他重要参数

    • dir: 输出文件夹
    • case_name: 实验组的名称
    • pheno_name: 表型的名称, 会在图中显示
    • ntop: 选取方差最大的前多少基因构建网络, 越少运行速度越快。当模块数或结果基因较少时, 可以调多一点, 默认5000
    • npower: 软阈值计算的最大值, 默认是20, 一般就够了, 样本太少时可能需要调到30才会满足构建网络的需求
    • cut: 去除离群样本的聚类数的高度, 大于该高度的会被去除, 默认不去
    • soft: 选择的软阈值, 默认使用推荐的软阈值, 也可手动指定
    • zlim: 相关性热图的相关性范围, 当相关性不高时, 范围调窄点会更好看些
    • minModuleSize: 每个模块最小的基因数, 默认30, 最低了
    • deepSplit: 数值越大(通常0-4),模块划分越精细,会产生更多更小的模块, 默认2
    • reassignThreshold: 基因重新分配的阈值, 影响模块的纯度,较高的阈值可能保留更多模糊归属的基因, 默认0
    • mergeCutHeight: 基于模块间的相关性进行合并,值越大,合并的模块越多, 默认0.25
    • corr_cutoff: 判定模块显著性的相关系数, 默认为0, 只要P值<0.05就行, 最低阈值
    • pvalue_cutoff: 判定模块显著性的P值, 默认0.05
    • MM_cutoff: MM阈值, 默认0.8
    • GS_cutoff: GS阈值, 默认0.3
  • 如果没有得到显著的模块, 可以调整以下参数:

    • ntop调大, 最大为nrow(expM), 即所有基因
    • deepSplit调大
    • mergeCutHeight调小
  • 如果没有得到hub基因或太少, 可以调整以下参数:

    • MM调低,最小为0.3
    • GS调低,最小为0.3
obj = download_GEO("GSE30999", out_dir = "test/00_GEO_data_GSE30999")
INFO [2025-08-27 11:17:17] Step1: Download GEO data ...
INFO [2025-08-27 11:17:17] Querying dataset: GSE30999 ...
	- Use local curl
	- Found 1 GPL
	- Found 170 samples, 39 metas.
	- Writting sample_anno to test/00_GEO_data_GSE30999/GSE30999_sample_anno.csv 
	- Normalize between arrays ...
	- Successed, file save to test/00_GEO_data_GSE30999/GSE30999_GPL570.RData.
INFO [2025-08-27 11:17:44] Step2: Annotate probe GPL570 ...
INFO [2025-08-27 11:17:45] Use built-in annotation file ...
- All porbes matched!
- All porbes annotated!
INFO [2025-08-27 11:17:46] Removing duplicated genes by method: max ...
INFO [2025-08-27 11:18:29] Done.
gruop_list = get_GEO_group(obj, group_name = "source_name_ch1", "NL" = "Control", "LS" = "Psoriasis")
expM = gruop_list$expM
group = gruop_list$group
hd(expM)
Type: data.frame  Dim: 22881 × 170 
         GSM767976 GSM767978 GSM767980 GSM767982 GSM767984
A1BG      2.085353  2.079059  2.086824  2.081765  2.082029
A1BG-AS1  3.634412  2.953882  4.084853  3.958588  4.157088
A1CF      2.433706  2.395676  2.432235  2.381176  2.414382
A2M      13.489853 12.870176 12.957765 13.594529 13.878676
A2M-AS1   5.659882  4.673235  4.218735  5.400971  6.311412
table(group)
group
  Control Psoriasis 
       85        85 
# expM和group可自行准备
WGCNA_res = run_WGCNA(expM, group, case_name = "Psoriasis", pheno_name = "Psoriasis", dir = "test/GSE30999_WGCNA")
Select top 5000 genes with largest variation ...

Check data integrity ...

	This a good data, nothing to do!

Detect outlier samples ...

Show_outlier samples

	Remove 0 sample(s)

Cluster with pheno

Determine soft threshold ...

Warning message:
"executing %dopar% sequentially: no parallel backend registered"
	Not specify soft threshold, using estimated: 6

	Scale independence

	Mean connectivity

Build modules ...

Plot Cluster dendrogram ...

Plot eigengene dendrogram ...

Show correlation and P-value between modules and phenos ...

Plot butterfly corrplot ...

Convert pdf to png ...



  • 输出对象
str(WGCNA_res)
List of 12
 $ datExpr         : num [1:170, 1:5000] 2.27 8.36 2.68 2.62 9.24 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:170] "GSM767976" "GSM767978" "GSM767980" "GSM767982" ...
  .. ..$ : chr [1:5000] "SERPINB4" "S100A12" "TCN1" "XIST" ...
 $ datTraits       :'data.frame':	170 obs. of  2 variables:
  ..$ Psoriasis: num [1:170] 0 0 0 0 0 0 0 0 0 0 ...
  ..$ Control  : num [1:170] 1 1 1 1 1 1 1 1 1 1 ...
 $ MEs             :'data.frame':	170 obs. of  14 variables:
  ..$ MEblue       : num [1:170] -0.0477 -0.169 -0.1571 -0.1265 -0.0532 ...
  ..$ MEgreen      :
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值