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 でバルク遺伝子共発現解析を行う研究者向けのスキルです。発現データの準備、ネットワークとモジュールの構築、モジュールと形質の関係やハブ遺伝子の確認を案内します。

主な機能

  1. 01変動性に基づく遺伝子の選別
  2. 02PyWGCNA による発現データの前処理
  3. 03重み付き共発現ネットワークの構築
  4. 04遺伝子モジュールの検出と確認
  5. 05モジュール・形質関係とハブ遺伝子の分析

活用シーン

  1. 01バルク発現データからモジュールを構築
  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"フィルタリング後の遺伝子数は {data.shape[0]} です。意味のあるモジュールを得るには WGCNA で 1000 個を超える遺伝子が必要です"
    # 発現値が数値で、かつ非負であることを確認する
    assert data.dtypes.apply(lambda d: d.kind in 'iuf').all(), "発現行列に数値以外の列が含まれています"
    # ネットワーク構築に十分な数のサンプルがあることを確認する
    assert data.shape[1] >= 6, f"サンプル数は {data.shape[1]} です。信頼性の高い共発現解析には WGCNA で 6 個以上のサンプルが必要です"
    
  12. トラブルシューティングのヒント
    • 大規模なデータセットでは、多数の中間ファイルの書き込みを避けるために save=False の設定が必要になる場合があります。
    • モジュール検出に失敗した場合は、MAD フィルタリング後に十分な数の遺伝子が残っていることを確認し、deepSplit または softPower を調整してください。
    • 固有遺伝子のヒートマップをプロットする前に、メタデータカテゴリに色が割り当てられていることを確認してください。

例

  • 「5xFAD データセットで WGCNA ネットワークを構築し、モジュールを可視化して、lightgreen モジュールからハブ遺伝子を抽出してください。」
  • 「サンプルのメタデータを読み込み、性別と遺伝子型の色を更新して、モジュール固有遺伝子のヒートマップをプロットしてください。」
  • 「相関しきい値を 0.2 にして、gold モジュールのサブネットワークをプロットしてください。」

References

コメント