数学系学生进计算基因组学,优势很明显:概率、线性代数、优化、图论、算法底子好 ;短板通常是分子生物学语境 + Linux/生信工具链 + 组学数据格式。所以入门策略不是"从零学生物",而是:
用数理基础做杠杆,先建立"生物学问题 → 数学模型 → 算法/统计方法 → 代码实现"的闭环。
一、先补"最少必要生物知识"
不用先啃完一整本《分子生物学》,先搞懂这些就够跑流程:
-
中心法则:DNA → RNA → 蛋白质
-
基因组基本结构:基因、外显子/内含子、启动子、UTR、重复序列
-
测序是什么:Sanger、Illumina/NGS、长读长(PacBio/Oxford Nanopore)
-
常见数据类型:
-
序列:FASTA / FASTQ
-
比对结果:SAM / BAM / CRAM
-
变异:VCF
-
注释:GTF / GFF
-
表达矩阵:counts matrix
-
-
常见组学:基因组、转录组(RNA-seq)、表观组(ChIP-seq / ATAC-seq / bisulfite)、单细胞、群体遗传/GWAS、癌症基因组
推荐速成材料:
-
Alberts《Molecular Biology of the Cell》挑前几章
-
《Genomics Class》(Harvard):genomicsclass.github.io
-
NCBI / Ensembl / UCSC Genome Browser 随便点一遍
二、计算机/工程侧:数学系最常忽略但最关键
数学系学生容易"模型懂,但数据搬不动"。必须补:
1. Linux + Shell
-
文件/路径、pipe、
grep/awk/sed/sort/uniq -
在服务器/HPC 上跑任务
-
任务调度:Slurm / PBS(后期)
2. Python + R 二选一为主,另一个够用
-
Python:pandas / numpy / scipy / scikit-learn / Biopython / pysam
-
R:tidyverse / ggplot2 / DESeq2 / edgeR / limma / Bioconductor
-
生信里现实是:Python 做流程/工程,R 做统计/可视化
3. 可重复分析
-
Git
-
Conda / Docker / Singularity
-
Snakemake / Nextflow(后期很重要)
三、核心课:计算基因组学主干
数学系可以按"算法 + 概率模型 + 统计学习"三条线推进。
1. 序列与算法
-
全局/局部比对:Needleman--Wunsch、Smith--Waterman
-
BLAST、k-mer、后缀树/后缀数组、Burrows--Wheeler Transform
-
de Bruijn graph 组装
-
短读长比对:BWA、Bowtie2、minimap2
书:
-
Pevzner《Bioinformatics Algorithms: An Active Learning Approach》
-
Gusfield《Algorithms on Strings, Trees, and Sequences》
-
Mäkinen 等《Genome-Scale Algorithm Design》
2. 概率模型与序列分析
-
马尔可夫链、隐马尔可夫模型 HMM
-
Viterbi / Forward-Backward / Baum--Welch
-
序列进化模型、替换矩阵
-
系统发育:距离法、最大简约、最大似然、贝叶斯
书:
-
Durbin 等《Biological Sequence Analysis》← 数学系会很有亲切感
-
Felsenstein《Inferring Phylogenies》
3. 统计与组学数据
-
归一化、批次效应
-
差异表达:负二项分布模型(DESeq2/edgeR)
-
多重检验校正:FDR / BH
-
PCA、UMAP、t-SNE、聚类
-
单细胞:降维、cell type annotation、trajectory
-
GWAS:回归、曼哈顿图、LD、population structure
-
癌症基因组:somatic variant、driver mutation、拷贝数、克隆结构
书/资源:
-
《Computational Genomics with R》
-
Ewens & Grant《Statistical Methods in Bioinformatics》
-
JHU Coursera:Genomic Data Science Specialization
-
Data Carpentry: Genomics
四、推荐学习路线(6--12 个月)
阶段 0:1--2 个月,跑通一个真实流程
目标:不再怕"生物数据"。
-
装 Linux/WSL 或服务器环境
-
学 Python 或 R 基础
-
下载一个小型 RNA-seq 数据集
-
跑:
-
FastQC → Trimmomatic/Cutadapt
-
HISAT2/STAR 比对
-
featureCounts/Salmon 定量
-
DESeq2 差异分析
-
GO/KEGG 富集 + 火山图/热图
-
数学系别一上来只推公式,要先有"数据长什么样"的体感。
阶段 1:3--6 个月,补理论与模型
-
序列比对与 HMM
-
基础群体遗传:Hardy--Weinberg、FST、LD、选择信号
-
统计学习:回归、GLM、正则化、EM、MCMC 基础
-
读论文:RNA-seq 差异分析、variant calling、scRNA-seq 聚类
可跟课:
-
CMU 03-511/711 Computational Molecular Biology and Genomics
-
Stanford / MIT / ETH 的 Computational Genomics 课程大纲
-
Rosalind.info(生信版 LeetCode)
阶段 2:6--12 个月,做项目/进组
数学系最适合切入的方向:
-
序列模型:HMM、language model for DNA
-
变异检测中的统计模型
-
单细胞数据的概率模型 / 降维 / 轨迹推断
-
多组学整合:矩阵分解、图模型
-
群体遗传中的推断:ABC、MCMC、selection scan
-
深度学习:CNN/Transformer 做 promoter / TF binding / variant effect
项目来源:
-
GEO / SRA / TCGA / 1000 Genomes / GTEx
-
复现一篇论文
-
帮生物实验室做数据分析
-
找导师/组会:统计系、计算机系、生科院交叉组都行
五、数学系容易踩的坑
-
只学模型不碰数据:结果是对数线性模型懂了,但 BAM 文件不会读。
-
轻视生物学问题:生信不是"数据够大就能训出来",生物学机制决定哪些假设合理。
-
只会调包不理解统计:p-value、FDR、归一化、批次效应不懂,结论可能是幻觉。
-
过早卷深度学习:传统统计和图/串算法反而更能拉开数学系差距。
六、一句路线总结
Linux + Python/R → 跑通 RNA-seq → 补分子生物学 → 学序列算法/HMM → 学组学统计 → 做复现项目 → 进交叉组做模型/算法。