BioF3 组学数据分析

编程基础:R、Python、Bash 学习路径

导出日期:2026年5月11日

编程基础:R、Python、Bash 学习路径

做组学数据分析,编程不是目标,而是工具。你不需要一开始就成为程序员,但必须能读懂脚本、修改参数、运行流程、定位报错,并把结果整理成可重复的分析记录。

本章给出 BioF3 推荐的最小学习路径:先建立 R / Python / Bash 的基础能力,再用 AI 工具提高学习和开发效率。

为什么必须学编程

组学数据通常有三个特点:

如果只靠点鼠标,很难回答下面这些问题:

编程的价值在于把分析过程写下来,让它可以检查、重复、修改和共享。

BioF3 推荐工具栈

R:单细胞分析和统计可视化主力

优先学习 R,因为 BioF3 的许多单细胞实践会用到 R 生态。

常见场景:

最低要求:

Python:数据处理、机器学习和 Scanpy 生态

Python 适合处理大规模数据、机器学习和工程化流程。

常见场景:

最低要求:

Bash:服务器和生信流程的入口

很多生信工具首先是命令行工具。不会 Bash,就很难稳定使用服务器和高通量流程。

常见场景:

最低要求:

AI:助教、解释器和开发助手

AI 工具可以帮助你更快进入状态,但不要把它当成分析负责人。

适合让 AI 做:

不适合完全交给 AI 的事情:

更完整的工具介绍见:AI 辅助编程与智能体工具

学习顺序

第 1 步:先学会运行和修改现有代码

新手最容易陷入“先系统学完整门语言”的误区。对组学分析来说,更有效的方式是先跑通已有脚本。

目标:

练习:

运行一个教程脚本,把输入文件路径改成自己的目录,把输出目录改成 results/。

第 2 步:R 入门到可用

先掌握下面这些能力。

# 变量和向量
genes <- c("TP53", "BRCA1", "EGFR")
expr <- c(5.2, 3.8, 7.1)

# 数据框
gene_data <- data.frame(
  gene = genes,
  expression = expr
)

# 查看数据
head(gene_data)
str(gene_data)
summary(gene_data)

# 筛选
high_expr <- gene_data[gene_data$expression > 5, ]

再学习 dplyr 风格的数据处理。

library(dplyr)

gene_data <- gene_data %>%
  mutate(log_expression = log2(expression + 1)) %>%
  arrange(desc(expression))

最后学习 ggplot2。

library(ggplot2)

ggplot(gene_data, aes(x = gene, y = expression)) +
  geom_col(fill = "#3B82F6") +
  labs(x = "Gene", y = "Expression") +
  theme_classic()

R 阶段的 BioF3 目标不是语法完美,而是能读懂 Seurat 教程里的对象、函数和参数。

第 3 步:Python 入门到可用

Python 先从 pandas 开始。

import pandas as pd
import numpy as np

data = pd.DataFrame({
    "gene": ["TP53", "BRCA1", "EGFR"],
    "expression": [5.2, 3.8, 7.1],
})

data["log_expression"] = np.log2(data["expression"] + 1)
high_expr = data[data["expression"] > 5]
summary = data["expression"].mean()

print(high_expr)
print(summary)

画图先掌握 matplotlib 和 seaborn。

import seaborn as sns
import matplotlib.pyplot as plt

sns.barplot(data=data, x="gene", y="expression", color="#3B82F6")
plt.xlabel("Gene")
plt.ylabel("Expression")
plt.tight_layout()
plt.show()

Python 阶段的 BioF3 目标是能处理表格数据、理解 Scanpy / AnnData 的基本对象,并能写小型自动化脚本。

第 4 步:Bash 入门到可用

先掌握文件和目录。

pwd
ls -lh
mkdir -p results/qc
cp data/sample.csv results/

再掌握查看文件。

head expression.tsv
tail -n 20 run.log
wc -l expression.tsv
less run.log

然后学习批量处理。

mkdir -p qc_results

for file in data/*.fastq.gz; do
  echo "Processing $file"
  fastqc "$file" -o qc_results/
done

最后学习远程服务器。

ssh aliyun
scp results/report.html aliyun:/opt/project/results/

Bash 阶段的 BioF3 目标是能在服务器上找到文件、运行工具、检查日志和批量处理样本。

AI 辅助学习

用 AI 做解释器、排错助手、草稿生成器,可以显著提升学习效率。具体用法、提示词模板和安全边界详见 AI 辅助编程与智能体工具

一个最小可复现项目结构

建议从一开始就把分析项目整理成固定结构。

project/
├── data/
│   ├── raw/
│   └── processed/
├── scripts/
│   ├── 01_qc.R
│   ├── 02_normalize.R
│   └── 03_plot.R
├── results/
│   ├── figures/
│   └── tables/
├── logs/
└── README.md

基本原则:

8 周学习路线

时间 目标 练习
第 1 周 会运行 R / Python / Bash 运行教程代码,修改路径和输出目录
第 2 周 R 基础数据结构 读取表达表,筛选高表达基因
第 3 周 ggplot2 可视化 画柱状图、散点图、小提琴图
第 4 周 Python pandas 读取表格,分组统计,导出结果
第 5 周 Bash 文件处理 批量统计文件行数,检查日志
第 6 周 服务器基础 ssh 登录,上传下载文件,后台运行任务
第 7 周 AI 辅助调试 用 AI 解释报错并人工验证
第 8 周 小项目整合 完成一个从输入到图表输出的可复现分析

常见问题

没有编程基础,先学 R 还是 Python?

如果目标是尽快进入单细胞分析,先学 R。BioF3 的单细胞实践主要依赖 R / Seurat。Python 可以在后续学习 Scanpy、机器学习和自动化时补上。

Bash 一定要学吗?

要学最基础的。你不需要成为 Linux 专家,但要能在服务器上找到文件、运行命令、查看日志。否则很多上游流程会卡住。

可以全靠 AI 写代码吗?

不建议。AI 可以写草稿,但你必须确认输入数据、列名、统计方法、输出结果和生物学解释。尤其是涉及临床数据和未公开项目时,不要把原始数据直接上传给外部 AI 服务。

报错时应该怎么处理?

推荐顺序:

  1. 复制完整报错,不只看最后一行
  2. 确认对象是否存在、路径是否正确、包是否加载
  3. 用小数据集复现问题
  4. 搜索错误信息
  5. 让 AI 根据代码、报错和环境信息给排查步骤
  6. 修复后记录原因

学到什么程度可以开始跑单细胞教程?

能做到下面几件事就可以开始:

下一步

完成本章后,建议继续学习:

编程能力不是背语法背出来的,而是在真实任务中练出来的。最好的开始方式是选一个小数据表,完成读取、筛选、绘图和保存结果这四件事。