Communitygithub.com

JianYang-Lab/SMR

教導 AI 編碼代理如何有效地與 SMR(基於摘要數據的孟德爾隨機化)C++ 程式碼庫協作。涵蓋架構、資料格式、建置系統、統計方法及常見陷阱。

SMR 是什麼?

此技能旨在教導 AI 編碼代理有效駕馭 JianYang-Lab/SMR C++ 程式碼庫,該程式碼庫專注於基於摘要數據的孟德爾隨機化(SMR)方法。它深入涵蓋程式碼的整體架構,包括主要模組及資料流;說明關鍵的資料格式,如 BESD 和 MA 檔案;並詳細介紹建置系統(基於 CMake)的配置與用法。此外,它還解釋了所用的統計方法(如 IVW、MR-Egger)及常見的實作陷阱,以幫助代理避免常見錯誤。支援的平台包括 Linux 和 macOS,並可整合至 Cursor、Codex 等 AI 輔助開發環境中。透過提供結構化的知識指引,此技能能顯著提升代理在該領域程式碼撰寫、除錯及程式碼審查的效率。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add JianYang-Lab/SMR

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

SMR 是做什麼的?

指導 AI 編碼代理如何有效地與 SMR(基於摘要數據的孟德爾隨機化)C++ 程式碼庫協作。涵蓋架構、資料格式、建置系統、統計方法及常見陷阱。

概述

SMR 是一個用於進行基於摘要數據的孟德爾隨機化分析的 C++ 工具。本指南為 AI 代理提供有效導航與貢獻此程式碼庫所需的背景知識。

架構

程式碼庫主要分為以下模組:

  • src/smr.cpp:主程式入口,負責參數解析與執行流程控制
  • src/io/:處理 BESD 及 MA 格式檔案的輸入/輸出
  • src/stats/:統計方法實作,包括 IVW、MR-Egger、加權中位數法等
  • src/utils/:通用工具函數,如記憶體管理與字串處理

資料格式

BESD 格式

用於儲存 SNP 效應值與標準誤的二元格式。每個 SNP 記錄包含染色體、位置、效應等位基因、Beta 值及 SE。

MA 格式

以文字為基礎的格式,包含 SNP 名稱、效應等位基因頻率(EAF)、Beta 值及 P 值。常見於 GWAS 摘要統計。

建置系統

使用 CMake 進行建置。基本用法:

mkdir build && cd build
cmake ..
make

需確保系統已安裝 C++17 相容的編譯器(如 GCC >= 7 或 Clang >= 5)。

統計方法

  • IVW(逆變異數加權法):預設方法,加權各 SNP 效應值。
  • MR-Egger:對水平多效性進行校正,需注意截距項的顯著性檢定。
  • 加權中位數法:提供穩健估計,即使部分 SNP 違反假設仍適用。

常見陷阱

  1. 資料對齊:確保效應等位基因在暴露與結果數據集中一致。
  2. 缺失值處理:若 SNP 在結果數據中缺失,預設會排除該 SNP。
  3. 記憶體管理:處理大規模 GWAS 數據時可能耗用大量 RAM;建議使用 -m 參數限制記憶體使用。
  4. 版本相容性:BESD 格式會隨版本演進,請參考 docs/format.md 確認版本對應。

使用範例

./smr --bfile example --gwas-summary exposure.ma --out output

此命令會從 PLINK 二元檔案讀取 LD 參考,並使用 exposure.ma 進行 SMR 分析,結果輸出至 output.txt。

若要深入了解,請參閱 docs/ 目錄下的說明文件。

相關技能