mcpField
B
bulk-wgcna-analysis-with-omicverse

bulk-wgcna-analysis-with-omicverse

github.com/omicverse数据与数据库1.4k41 次安装2 天前更新
代码仓库

关于 bulk-wgcna-analysis-with-omicverse

面向使用 omicverse 和 PyWGCNA 开展 bulk 基因共表达分析的研究者。该技能指导表达数据准备、网络与模块构建,并分析模块—性状关系和枢纽基因。

主要功能

  1. 01按变异度筛选基因
  2. 02使用 PyWGCNA 预处理表达数据
  3. 03构建加权共表达网络
  4. 04检测并检查基因模块
  5. 05分析模块—性状关系与枢纽基因

适用场景

  1. 01从 bulk 表达数据构建模块
  2. 02绘制特征基因与样本性状关系
  3. 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、构建加权基因共表达网络,并检查感兴趣的模块。

说明

  1. 准备环境
    • 导入 omicverse as ov、scanpy as sc、matplotlib.pyplot as plt 和 pandas as pd。
    • 通过 ov.plot_set() 设置绘图默认值。
  2. 加载并筛选表达数据
    • 读取表达矩阵(例如,来自 expressionList.csv)。
    • 使用 from statsmodels import robust 和 gene_mad = data.apply(robust.mad) 计算中位数绝对偏差。
    • 保留变异度最高的基因(例如,data = data.T.loc[gene_mad.sort_values(ascending=False).index[:2000]])。
  3. 初始化 PyWGCNA
    • 创建 pyWGCNA_5xFAD = ov.bulk.pyWGCNA(name=..., species='mus musculus', geneExp=data.T, outputPath='', save=True)。
    • 继续操作前,确认 pyWGCNA_5xFAD.geneExpr 看起来正确。
  4. 预处理数据集
    • 运行 pyWGCNA_5xFAD.preprocess(),去除低表达基因和有问题的样本。
  5. 构建共表达网络
    • 评估软阈值功率:pyWGCNA_5xFAD.calculate_soft_threshold()。
    • 通过 calculating_adjacency_matrix() 和 calculating_TOM_similarity_matrix() 构建邻接矩阵和 TOM 矩阵。
  6. 检测基因模块
    • 生成树状图并检测模块:calculate_geneTree()、calculate_dynamicMods(kwargs_function={'cutreeHybrid': {...}})。
    • 使用 calculate_gene_module(kwargs_function={'moduleEigengenes': {'softPower': 8}}) 计算模块特征基因。
    • 如有需要,使用 plot_matrix(save=False) 可视化邻接矩阵/TOM 热图。
  7. 检查特定模块
    • 使用 get_sub_module([...], mod_type='module_color') 从模块中提取基因。
    • 使用 get_sub_network(mod_list=[...], mod_type='module_color', correlation_threshold=0.2) 构建子网络,并通过 plot_sub_network(...) 绘制。
  8. 更新下游分析所用的样本元数据
    • 加载样本注释:updateSampleInfo(path='.../sampleInfo.csv', sep=',')。
    • 使用 setMetadataColor(...) 为元数据类别指定颜色映射。
  9. 分析模块与性状的关系
    • 运行 analyseWGCNA() 计算模块与性状的统计数据。
    • 使用 plotModuleEigenGene(module, metadata, show=True) 和 barplotModuleEigenGene(...) 绘制模块特征基因热图和柱状图。
  10. 查找枢纽基因
    • 使用 top_n_hub_genes(moduleName='lightgreen', n=10) 找出每个模块的排名靠前的枢纽基因。
  11. 防御性验证
    # 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"
    
  12. 故障排除提示
    • 大型数据集可能需要将 save=False 调高,以避免写入大量中间文件。
    • 如果模块检测失败,请确认 MAD 筛选后仍有足够多的基因,并调整 deepSplit 或 softPower。
    • 绘制特征基因热图前,请确保元数据类别已指定颜色。

示例

  • “在 5xFAD 数据集上构建 WGCNA 网络、可视化模块,并从 lightgreen 模块中提取枢纽基因。”
  • “加载样本元数据,为性别和基因型更新颜色,并绘制模块特征基因热图。”
  • “使用 0.2 的相关性阈值,为 gold 模块创建子网络图。”

References

评论

支持 Markdown