Skip to content

MR 流水线 · 新手快速上手(登录 RStudio 后照着做) ​

这份是"手把手点一遍"的动手版。建议先看 分析方法通俗解释 弄懂概念,再回来照着跑。 配置字段细节见 config 配置详解 与 使用教程。

两种运行方式别搞混

  • 单条精细分析(一个暴露×少数结局,出完整报告+共定位)→ run_all.R + 改 config.yaml(本页教的就是这个)
  • 批量筛查(一个蛋白扫几十个病)→ analysis/01_screen.R + 改 outcome_manifest.csv(见 批量筛查,本课题实际用这个)

第 0 步:登录 ​

  1. 浏览器打开 https://rstudio.stlog.cn
  2. 账号 research 密码 〈密码·见Vaultwarden〉
  3. 进去后你看到的就是 RStudio。项目已经装好在你的主目录里:~/mr-pipeline(~ 就是 /home/research)。

认识界面(只需记住 3 个地方) ​

区域位置干什么用
Console(控制台)左边,> 提示符敲 R 命令
Terminal(终端)和 Console 同一块,点上面 Terminal 标签敲 Linux 命令(我们运行流水线用这个)
Files(文件)右下角浏览/上传/打开文件

找不到 Terminal 标签?菜单 Tools → Terminal → New Terminal 就有了。


先看效果:打开已有的示例报告 ​

项目里已经用假数据跑好了一份示例报告,先打开看看成品长啥样:

  1. 右下 Files 面板 → 点进 mr-pipeline → results → report
  2. 点 MR_report.html → 在弹出的小菜单选 View in Web Browser
  3. 新标签页就打开了报告:方法学、结果表、散点/森林/漏斗图、共定位、参考文献……

⚠️ 这是假数据的演示,数字没意义,只是让你知道最终产物长什么样。下面换成你的真实数据。


五步跑你自己的分析 ​

第 1 步 把项目设为工作目录 ​

点 Terminal 标签,敲(cd 就是"进入文件夹"):

bash
cd ~/mr-pipeline

第 2 步 上传你的数据 ​

  1. 右下 Files → 进入 mr-pipeline → data → exposure(暴露文件放这)
  2. 点 Files 面板上方的 Upload 按钮 → 选你电脑里的暴露文件(如 protein_info.csv)→ 上传
  3. 同样地,把结局文件(如 FinnGen 的 .gz)上传到 data → outcome

大文件(几百 MB)上传慢是正常的,等进度条走完。

第 3 步 改配置 config.yaml(关键,只改这一个文件) ​

  1. Files 面板回到 mr-pipeline,点 config.yaml 打开(在左上编辑区)
  2. 找到 exposures: 和 outcomes: 两段,把里面的 file:(文件名)、trait:(名称)、sample_size / ncase / ncontrol(样本量)、build:(基因组版本,一般 GRCh38)改成你的
  3. 列名对不上时,在该条目的 column_map: 里写映射(详见 config 配置详解)
  4. 改完 Ctrl+S 保存

拿不准就先照着里面 IL6R / FinnGen 的示例格式改,字段含义见 config 配置详解。

第 4 步 运行(一行命令) ​

回到 Terminal,敲:

bash
Rscript run_all.R

回车后它会自动跑:读数据 → 选工具变量 → MR → 敏感性 → 共定位 → 出报告。 屏幕会滚动打印进度(SNP flow、完成 N 个暴露-结局对、报告已生成)。第一次因为要加载 LD 面板,clumping 那步会停几秒,正常。

跑完看到 run_all 完成。 就成功了。

第 5 步 看你的报告和结果 ​

  • 报告:Files → results → report → MR_report.html → View in Web Browser
  • 主结果表:results/mr_all_pairs_primary.csv(点它选 View 或下载)
  • 每个暴露-结局对的明细:results/pairs/<暴露>__<结局>/

📖 这些表和图每一列怎么读、什么结果算数 → 结果怎么看


想重新跑 / 换数据 ​

  • 换了数据或改了 config 想重跑干净的:Terminal 里先删旧结果再跑
    bash
    rm -rf results && Rscript run_all.R
  • 只补跑没算过的部分(断点续跑):config.yaml 里 resume: true 时,直接 Rscript run_all.R 会复用已算好的,不重头来。

常见问题 ​

现象怎么办
报 require_rsid ... 但仅 X% 是 rsID你的 SNP 列不是 rsID,去 column_map 把 SNP: 指到 rsID 那列
报 build 不一致暴露和结局的 build: 要一致(都填 GRCh38 最省事)
报 列自动探测失败,缺 XXX在该数据集的 column_map: 里显式写 XXX: 你文件里的真实列名
p 值全变成 1 或极端该数据 p 值是 -log10(如 FinnGen mlogp、UKB log10p),把 pval_encoding: 改成 neglog10
效应量是 OR 不是 beta把 effect_type: 改成 OR(会自动取 log)
Terminal 里 Rscript 说命令找不到先确认你在项目目录:cd ~/mr-pipeline
报告里图没显示重跑一次 rm -rf results && Rscript run_all.R,图会重新生成并内嵌

记不住时 ​

  • 配置字段含义、列名映射、cis/genome_wide 区别 → 看 config 配置详解 与 使用教程。
  • 只要记住一句话:把数据放 data/,改 config.yaml,Terminal 里 Rscript run_all.R,去 results/report/MR_report.html 看报告。

个人科研与运维文档 · 内容持续修订