医学生/临床科研人员进阶编程技能图谱
适用对象:已掌握 Python/R,希望进阶处理大数据、提升算法效率、并把结果做成“可复现、可协作、可展示”的医学科研人员
核心目标:从“会写代码”进阶为“具备工程化能力的计算生物学家 / 临床数据科学家”
Contents
📅 第一梯队:基础设施与数据管理(必修)
1) Linux Shell / Bash(上服务器、跑生信、自动化流程)
为什么值得学(医学科研视角)
- 生信工具(PLINK/BCFtools/GCTA 等)基本都在 Linux 环境跑
- 与 HPC 集群交互(Slurm/PBS)离不开命令行
- 你要把“手动点来点去”变成“可复现一键跑完”的流程脚本
主线学习
- The Linux Command Line(中文版,经典通读):https://billie66.github.io/TLCL/
- Software Carpentry: The Unix Shell(科学家友好、练习驱动):https://swcarpentry.github.io/shell-novice/
- MIT The Missing Semester(工具链补全:shell、脚本、git、调试等):https://missing.csail.mit.edu/
HPC/集群(Slurm)实战入口
- Slurm 文档主页:https://slurm.schedmd.com/documentation.html
- Slurm Quick Start:https://slurm.schedmd.com/quickstart.html
- sbatch 提交脚本:https://slurm.schedmd.com/sbatch.html
2) SQL(临床数据库抽取 & 大表筛选)
为什么值得学
- MIMIC-IV、UKB、医院 HIS/EMR 的底层很多是关系型数据库
- 关键能力是“在数据库端筛选”,避免把几十 GB 数据一次性读进内存
主线学习
- SQLZoo(交互练习):https://sqlzoo.net/
- PostgreSQL 文档(科研常用):https://www.postgresql.org/docs/
- W3Schools SQL(速查):https://www.w3schools.com/sql/
临床数据实战入口(强烈推荐)
- MIMIC Code Repository(大量现成 cohort/变量抽取 SQL):https://github.com/MIT-LCP/mimic-code
- OHDSI/OMOP(真实世界研究的标准与生态)
- The Book of OHDSI(在线书):https://ohdsi.github.io/TheBookOfOhdsi/
“不把 100GB CSV 读进内存”的升级
- DuckDB(本地直接 SQL 查 CSV/Parquet):https://duckdb.org/docs/stable/
- Apache Arrow(R/Python 都能用的列式数据生态)
- Arrow 总览:https://arrow.apache.org/docs/index.html
- Arrow R 包:https://arrow.apache.org/docs/r/
🚀 第二梯队:版本控制与协作(强烈推荐)
3) Git(科研可复现 & 多人协作的底座)
为什么值得学
- 代码“后悔药”(回退、对比、追踪改动)
- 多端同步(医院电脑/服务器/个人电脑)
- 写方法学代码、做可复现项目,Git 是基本功
主线学习
- Pro Git(官方书,中文版):https://git-scm.com/book/zh/v2
- Happy Git and GitHub for the useR(R 用户最友好):https://happygitwithr.com/
- GitHub Skills(官方互动课程):https://skills.github.com/
- Missing Semester:Git 讲义:https://missing.csail.mit.edu/2020/version-control/
🧰 第二梯队加分项:可复现科研“工程化四件套”(强烈推荐)
这部分学完,你的项目会明显更“像论文/像平台”:别人能复现、你自己半年后也能一键跑通。
A) 可复现与协作规范(从项目结构到开放科学)
- The Turing Way(可复现科研最佳实践):https://book.the-turing-way.org/
- The Turing Way(GitHub 仓库):https://github.com/the-turing-way/the-turing-way
B) 报告/论文/网站一体化输出(把分析做成“能投稿/能汇报/能复现”的作品)
- Quarto 官方 Guide:https://quarto.org/docs/guide/
- Quarto Get Started:https://quarto.org/docs/get-started/
- R4DS(2e)Quarto 章节(把科研报告做成可复现文档):https://r4ds.hadley.nz/quarto.html
C) 环境与依赖锁定(避免“我这能跑你那不能跑”)
- conda 文档:https://docs.conda.io/
- renv(R 项目依赖锁定):https://rstudio.github.io/renv/
D) 容器(审稿复现/服务器部署/HPC 跑同一环境)
- Docker Get Started:https://docs.docker.com/get-started/
- Apptainer(HPC 常用容器):https://apptainer.org/docs/user/main/
E) 测试(让代码“越改越稳”,尤其方法学/包开发)
- pytest:https://pytest.org/
- testthat:https://testthat.r-lib.org/
⚙️ 第三梯队:工作流与大规模计算(进阶)
4) 工作流管理(把“很多步分析”变成可复现流水线)
为什么值得学
- 一次分析=几十步命令 + 多参数重复跑
- 工作流能自动管理依赖、并行、失败重跑、记录版本(非常适合组学/批量 MR/GWAS)
主线学习
- Snakemake 文档:https://snakemake.readthedocs.io/
- Snakemake 教程(入门必看):https://snakemake.readthedocs.io/en/stable/tutorial/tutorial.html
- Nextflow 文档:https://www.nextflow.io/docs/latest/
- nf-core(社区标准化 Nextflow 流水线,很多现成 pipeline):https://nf-co.re/docs/
⚡ 第四梯队:性能优化与“把代码做成工具”(进阶)
5) C++(via Rcpp)— R 的加速器 / 方法学开发
为什么值得学
- 把 R 中最慢的循环/瓶颈用 C++ 改写,常见 10–100 倍加速
- 未来写 R 包、做方法学工具,属于必经之路
主线学习
- Rcpp Gallery(最适合模仿的加速案例库):https://gallery.rcpp.org/
- cppreference(C++ 语法字典):https://zh.cppreference.com/
6) R 包化(把你的方法/流程变成“别人一行安装就能用”)
- R Packages(2e,在线书):https://r-pkgs.org/
- Advanced R(提升代码设计与工程化思维):https://adv-r.hadley.nz/
🎨 第五梯队:论文级可视化与展示(成果表达)
7) R 可视化(从“能画”到“顶刊风格”)
为什么值得学
- 医学论文非常吃“图的表达力”:信息密度、可读性、可复现代码都很关键
主线学习
- R Graph Gallery(图型最全、可复制代码):https://r-graph-gallery.com/
- R Graph Gallery(源码仓库):https://github.com/holtzy/R-graph-gallery
- Fundamentals of Data Visualization(讲原则:怎样更科学/清晰):https://clauswilke.com/dataviz/
导航清单(需要什么图就来翻)
- awesome-ggplot2:https://github.com/erikgahner/awesome-ggplot2
- awesome-r-dataviz:https://github.com/krzjoa/awesome-r-dataviz
🧬 组学/遗传统计专项(常见高阶分支)
8) GWAS / Sumstats 清洗与作图
- GWASLab(文档):https://cloufield.github.io/gwaslab/
- GWASLab(GitHub):https://github.com/Cloufield/gwaslab
- GWAS Tutorial for Beginners(从命令行到 GWAS 全流程):https://github.com/Cloufield/GWASTutorial
9) Mendelian Randomization(MR)
- TwoSampleMR(GitHub):https://github.com/MRCIEU/TwoSampleMR
- TwoSampleMR 入门文档:https://mrcieu.github.io/TwoSampleMR/articles/introduction.html
10) 超大规模基因组平台(几十万~百万样本时考虑)
- Hail 文档:https://hail.is/docs/0.2/
📚 一键导航型 GitHub 资源库(遇到新需求先来这里搜)
- Awesome R:https://github.com/uhub/awesome-r
- Awesome Bioinformatics:https://github.com/danielecook/Awesome-Bioinformatics
- Awesome R Learning Resources:https://github.com/iamericfletcher/awesome-r-learning-resources
✅ 推荐学习顺序(医学科研“投入产出比”版)
- Shell + Git(服务器 & 可复现基础)
- SQL + DuckDB/Arrow(临床/大表抽取与筛选)
- Quarto + renv/conda + Docker/Apptainer + 测试(工程化四件套)
- 工作流(Snakemake 或 Nextflow/nf-core)
- 组学专项(GWASLab / TwoSampleMR / Hail)
- 性能与工具化(Rcpp/C++、R 包化)
- 论文级展示(R Graph Gallery + 可视化原则)
