关于 bulk-wgcna-analysis-with-omicverse
面向使用 omicverse 和 PyWGCNA 开展 bulk 基因共表达分析的研究者。该技能指导表达数据准备、网络与模块构建,并分析模块—性状关系和枢纽基因。
主要功能
- 01按变异度筛选基因
- 02使用 PyWGCNA 预处理表达数据
- 03构建加权共表达网络
- 04检测并检查基因模块
- 05分析模块—性状关系与枢纽基因
适用场景
- 01从 bulk 表达数据构建模块
- 02绘制特征基因与样本性状关系
- 03提取枢纽基因或模块子网络
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ omicverse/ omicverse --skill bulk-wgcna-analysis-with-omicverse安装后在 Claude Code 中输入/bulk-wgcna-analysis-with-omicverse确认已加载。
附带文件reference.md
详细介绍
使用 omicverse 进行批量 WGCNA 分析
概述
对于想要复现 t_wgcna.ipynb 中 WGCNA 工作流的用户,请启用此技能。它将引导你加载表达数据、配置 PyWGCNA、构建加权基因共表达网络,并检查感兴趣的模块。
说明
- 准备环境
- 导入
omicverse as ov、scanpy as sc、matplotlib.pyplot as plt和pandas as pd。 - 通过
ov.plot_set()设置绘图默认值。
- 导入
- 加载并筛选表达数据
- 读取表达矩阵(例如,来自
expressionList.csv)。 - 使用
from statsmodels import robust和gene_mad = data.apply(robust.mad)计算中位数绝对偏差。 - 保留变异度最高的基因(例如,
data = data.T.loc[gene_mad.sort_values(ascending=False).index[:2000]])。
- 读取表达矩阵(例如,来自
- 初始化 PyWGCNA
- 创建
pyWGCNA_5xFAD = ov.bulk.pyWGCNA(name=..., species='mus musculus', geneExp=data.T, outputPath='', save=True)。 - 继续操作前,确认
pyWGCNA_5xFAD.geneExpr看起来正确。
- 创建
- 预处理数据集
- 运行
pyWGCNA_5xFAD.preprocess(),去除低表达基因和有问题的样本。
- 运行
- 构建共表达网络
- 评估软阈值功率:
pyWGCNA_5xFAD.calculate_soft_threshold()。 - 通过
calculating_adjacency_matrix()和calculating_TOM_similarity_matrix()构建邻接矩阵和 TOM 矩阵。
- 评估软阈值功率:
- 检测基因模块
- 生成树状图并检测模块:
calculate_geneTree()、calculate_dynamicMods(kwargs_function={'cutreeHybrid': {...}})。 - 使用
calculate_gene_module(kwargs_function={'moduleEigengenes': {'softPower': 8}})计算模块特征基因。 - 如有需要,使用
plot_matrix(save=False)可视化邻接矩阵/TOM 热图。
- 生成树状图并检测模块:
- 检查特定模块
- 使用
get_sub_module([...], mod_type='module_color')从模块中提取基因。 - 使用
get_sub_network(mod_list=[...], mod_type='module_color', correlation_threshold=0.2)构建子网络,并通过plot_sub_network(...)绘制。
- 使用
- 更新下游分析所用的样本元数据
- 加载样本注释:
updateSampleInfo(path='.../sampleInfo.csv', sep=',')。 - 使用
setMetadataColor(...)为元数据类别指定颜色映射。
- 加载样本注释:
- 分析模块与性状的关系
- 运行
analyseWGCNA()计算模块与性状的统计数据。 - 使用
plotModuleEigenGene(module, metadata, show=True)和barplotModuleEigenGene(...)绘制模块特征基因热图和柱状图。
- 运行
- 查找枢纽基因
- 使用
top_n_hub_genes(moduleName='lightgreen', n=10)找出每个模块的排名靠前的枢纽基因。
- 使用
- 防御性验证
# WGCNA 之前:确认经过 MAD 筛选后仍有足够多的基因 assert data.shape[0] >= 1000, f"Only {data.shape[0]} genes after filtering — WGCNA needs >1000 for meaningful modules" # 确认表达值为数值型且非负 assert data.dtypes.apply(lambda d: d.kind in 'iuf').all(), "Expression matrix contains non-numeric columns" # 确认有足够多的样本用于构建网络 assert data.shape[1] >= 6, f"Only {data.shape[1]} samples — WGCNA needs >=6 samples for reliable co-expression" - 故障排除提示
- 大型数据集可能需要将
save=False调高,以避免写入大量中间文件。 - 如果模块检测失败,请确认 MAD 筛选后仍有足够多的基因,并调整
deepSplit或softPower。 - 绘制特征基因热图前,请确保元数据类别已指定颜色。
- 大型数据集可能需要将
示例
- “在 5xFAD 数据集上构建 WGCNA 网络、可视化模块,并从 lightgreen 模块中提取枢纽基因。”
- “加载样本元数据,为性别和基因型更新颜色,并绘制模块特征基因热图。”
- “使用 0.2 的相关性阈值,为 gold 模块创建子网络图。”
References
- Tutorial notebook:
t_wgcna.ipynb - Tutorial dataset:
data/5xFAD_paper/ - Quick copy/paste commands:
reference.md
评论
支持 Markdown