算法、统计与计算基础¶
生物信息学把生命现象转化为可以计算的对象,计算则贯穿样本编号、数据表示、计分函数、正确性标准和资源约束。相同的数据交给不同的表示、目标函数和验证方案,可能得到看似矛盾的结果;理解这些中间层,才能判断差异来自生物学、统计波动还是计算设定。
这套基础由算法、概率统计和计算实践共同构成。算法说明怎样从输入得到输出,统计模型说明数据中的变异怎样与结论相连,计算实践则限定过程能否扩展和重现。国际计算生物学学会(International Society for Computational Biology,ISCB)的生物信息学能力框架也将生命科学、数据科学、计算机科学和专业实践并列为互相依赖的能力领域,软件使用只是其中一项实践能力。1
生物学问题的计算表达¶
一个计算问题首先需要明确对象、关系和目标。以“寻找一个基因的同源序列”为例,对象可以是完整基因、转录本、蛋白质或某个结构域;关系可以由共同祖先、序列相似、结构相似或功能注释表达;目标则可能是找回尽量多的候选、控制假阳性,或得到可解释的进化关系。算法选择需要在这些对象和目标确定之后进行,否则正确执行也可能回答另一个问题。
计算表示会保留某些属性,同时舍弃另一些属性。序列字符串保留字符顺序,测序质量和样本来源需要附加记录;表达矩阵保留样本与特征的数值关系,也可能已经经过归一化和特征筛选;图能够表达基因、蛋白质或代谢物之间的连接,而方向、强度和因果性质取决于边的定义及证据。表示方式应与后续运算匹配,并与生物数据、格式与数据库中记录的版本、单位和来源共同保存。
| 生物学对象 | 常用计算表示 | 适合的基本运算 | 表示中容易遗失的信息 |
|---|---|---|---|
| 脱氧核糖核酸(deoxyribonucleic acid,DNA)、核糖核酸(ribonucleic acid,RNA)、蛋白质序列 | 有限字母表上的字符串、位置计数矩阵、向量嵌入 | 子串查找、比对、距离、卷积或注意力计算 | 样本语境、修饰、构象和实验质量 |
| 基因表达与组学测量 | 样本 × 特征矩阵、稀疏矩阵、张量 | 线性代数、降维、聚类、回归和分类 | 原始计数尺度、检测下限、批次与层级结构 |
| 基因组注释和变异 | 带参考版本的区间、记录表、索引 | 区间相交、排序、连接和聚合 | 坐标制度、等位基因方向和未映射区段 |
| 系统发育、互作和通路 | 树、加权图、有向图或超图 | 遍历、最短路、聚类、传播和拓扑统计 | 边的证据类型、时间顺序和未观测节点 |
| 隐含生物状态 | 概率分布、状态空间模型、生成模型 | 似然计算、解码、参数估计和模拟 | 模型未表示的机制与群体异质性 |
数组适合按位置快速访问,哈希表适合按键查找,树表达层级与分叉,图表达多对多关系,稀疏矩阵则避免为大量零值分配完整空间。数据结构的选择会改变算法代价。例如从未排序列表中逐项寻找标识符,代价随列表长度增长;先建立哈希索引后,单次查询通常更快,却需要额外内存和建索引时间。这里的“更快”必须连同输入规模、硬件、预处理和查询次数一起说明。
算法、正确性与复杂度¶
算法是一组有限而明确的步骤,其规格至少包括允许的输入、承诺的输出和适用前提。正确性表示在这些前提满足时,算法的输出符合规格;运行成功则表示程序完成了执行。输入坐标版本错误、距离不满足方法假设或图中边的方向被忽略时,程序仍可能给出格式完好但不符合研究对象的答案。
复杂度描述资源消耗怎样随问题规模增长。渐近记号忽略特定机器上的常数,关注输入扩大时的增长级别:遍历长度为 \(n\) 的序列通常是 \(O(n)\),比较所有对象对通常达到 \(O(n^2)\),一些组合搜索则可能指数增长。空间复杂度同样重要,因为中间矩阵、索引和模型参数常比输入文件占用更多内存。MIT 的算法课程将数据结构、图算法、动态规划和复杂度放在同一体系内,正是为了把求解策略与可扩展性同时考察。2
| 增长形式 | 典型计算 | 规模扩大时的含义 |
|---|---|---|
| \(O(1)\)、\(O(\log n)\) | 已建索引中的定址、平衡树查找 | 输入增大时单次操作增长缓慢,但索引本身仍有构建成本 |
| \(O(n)\)、\(O(n\log n)\) | 单次扫描、通用比较排序 | 常可处理大规模数据,实际速度仍受文件读写和常数影响 |
| \(O(n^2)\)、\(O(n^3)\) | 全对象对距离、某些矩阵与状态空间计算 | 输入扩大十倍可能带来百倍或千倍工作量 |
| \(O(2^n)\)、\(O(n!)\) | 穷举子集或排列 | 中等规模即可失去可行性,通常需要约束、近似或启发式策略 |
递归、记忆化与动态规划¶
许多生物信息问题具有重叠子问题。动态规划先定义能够概括部分输入的“状态”,再写出状态之间的递推关系,按依赖顺序保存和复用中间结果。若状态 \(x\) 的前驱集合为 \(\operatorname{Pred}(x)\),一种通用的最优值递推可以写成:
其中“取优”可以是最小或最大,\(c(y,x)\) 是从前驱状态转移到当前状态的代价。完整设计还需要状态含义、边界条件、无环的计算次序以及从最优值恢复具体解的回溯信息。自顶向下的递归配合记忆化只计算实际访问的状态,自底向上的表格法按拓扑次序填充状态;二者实现路径不同,所表达的递推可以相同。3
双序列比对可把状态设为两个序列前缀的长度 \((i,j)\),再比较字符配对和空位转移。由此产生的状态表通常有 \(m\times n\) 个单元,其时间和直接存表的空间代价都随两条序列长度的乘积增长。替换计分、空位模型和全局/局部边界条件使它区别于只寻找最长公共子序列的问题;具体递推和计分将在序列比对与数据库搜索中展开。
精确算法、近似算法与启发式算法¶
精确算法在给定模型内保证满足规格或得到最优解,近似算法通常还能给出与最优解的误差界,启发式算法则利用问题结构快速找到有用候选,却未必保证全局最优或完整召回。三者以承诺强度和资源成本区分,并不构成简单的质量排序。动态规划可以给出特定计分模型下的最优比对;面对大型数据库,种子索引、剪枝和优先扩展能显著加速搜索,但敏感性会随字长、阈值和低复杂度处理而变化。
算法评估因此需要同时报告正确性目标、资源成本和近似边界。运行时间只有在输入过滤、候选空间和成功标准相同或差异明确时才可比较。对随机算法还要说明随机种子、重复次数和结果分布;对启发式算法则应在具有代表性的困难样本上检查漏检模式。
目标函数、优化与数值计算¶
许多算法把问题写成目标函数的最小化或最大化。序列比对最大化计分,回归模型最小化误差或负对数似然,聚类在某种距离下压缩组内差异,神经网络通过损失函数更新大量参数。目标函数规定了什么被奖励,约束规定了哪些解允许出现,正则化则通过惩罚过度复杂的解来调节拟合与泛化。改变任何一项,都可能使“最佳结果”的含义发生变化。
参数是在训练或拟合过程中从数据估计的量,超参数则在拟合之外控制模型结构或学习过程,例如树深、正则化强度和学习率。使用验证数据选择超参数后,验证集已经参与模型决策,最终泛化评估需要另设未参与选择的测试集。目标函数在非凸问题中可能存在许多局部极值;初始化、样本批次次序和优化器会影响到达的解,因此只报告一次最优运行会低估训练的不稳定性。
数值计算还受到有限精度的约束。极小概率连乘可能下溢,常改在对数尺度上求和;差值接近的浮点数相减会损失有效位;矩阵条件数过大时,输入的微小扰动可能被放大。数据缩放、稳定的数学变换、收敛诊断和合理容差属于算法的一部分。不同硬件、并行归约次序或数学库产生末位差异很常见,结论是否稳健应由对这些扰动的敏感性判断。
概率模型与隐含状态¶
概率模型把不确定性写入对象之间的关系。随机变量描述可能取值,概率分布说明这些取值在模型中的相对可能性,条件概率表达已知某些信息后的不确定性。贝叶斯公式把先验信息与数据的似然结合:
这里 \(P(D\mid\theta)\) 是参数 \(\theta\) 下观察到数据 \(D\) 的似然,\(P(\theta\mid D)\) 是观察数据后的后验分布。似然把数据视为已观察、比较不同参数的支持程度;概率密度或质量函数则在参数给定时描述数据。最大似然估计、贝叶斯推断和预测分布由此共享语言,但对参数不确定性和先验信息的处理不同。
隐马尔可夫模型¶
隐马尔可夫模型(hidden Markov model,HMM)用一串不可直接观察的状态生成可观察符号。相邻隐状态由转移概率连接,每个状态通过发射概率产生碱基、氨基酸或连续测量;“马尔可夫”假设把下一状态的分布限定为依赖当前状态,而非完整历史。生物序列中的编码区、剪接位点、蛋白质家族位置和结构状态都可以在相应假设下用这种模型表达。4
HMM 的常见计算任务包括:对一条观测序列求总似然,在所有可能状态路径中寻找概率最高的路径,以及从训练数据估计转移和发射参数。前向算法和 Viterbi 解码都复用相邻位置的子问题,因而也是动态规划;参数估计还要面对局部最优、数据量和模型可识别性。一个状态名称由研究者赋予,模型学到的隐状态只有在外部证据支持时才具有相应生物学含义。
随机抽样与模拟提供另一条计算路径。置换检验在零假设允许的交换规则下重排标签,自助法(bootstrap)从观测单位中重抽样,蒙特卡洛方法(Monte Carlo method)用大量随机样本近似积分或分布。重抽样单位必须与实验设计一致:对同一个体的技术重复逐行抽样,会把依赖观测误当成独立信息。模拟结果也只对设定的数据生成机制、参数范围和随机数实现成立。
统计推断与多重比较¶
统计分析从研究设计开始。实验单位是能够独立接受处理或代表独立抽样的最小单位,技术重复主要刻画测量过程,生物学重复才承载个体或培养物之间的变异。批次、家系、时间、空间和群体结构会造成相关性;若模型按独立观测处理这些层级,标准误和有效样本量都会被误估。应在分析前写明研究对象、抽样机制、主要比较、协变量和计划估计的效应量。
效应估计说明差异有多大,区间估计表达在模型与抽样假设下的不确定范围,假设检验则衡量数据与特定零假设模型的相容程度。\(p\) 值是在指定统计模型及零假设成立时,得到当前或更极端统计量的概率;它不是零假设为真的概率,也不表示效应大小或生物学重要性。ASA 的正式声明还强调,数据分析与科学结论需要完整报告和透明推理,不能由单一阈值替代。5
组学研究常同时检验成千上万个特征。若每项都按相同阈值独立判断,至少一次假阳性的机会会随检验数增长。家族错误率(family-wise error rate,FWER)控制关注一组检验中出现任意假拒绝的概率;错误发现率(false discovery rate,FDR)则关注被判为发现的结果中,假发现比例的期望。Benjamini–Hochberg 方法在其适用的依赖条件下提供经典的 FDR 控制程序,校正所针对的检验族需要事先定义并保持一致。6
统计学科将分别展开概率与概率分布、抽样、参数估计与置信区间、假设检验和实验设计、效能与可重复统计。在计算模型中,算法得分、概率、后验、\(p\) 值和校正值属于不同对象,其解释由各自定义而非数值大小决定。
机器学习的数据划分与评估¶
机器学习通过数据估计能够预测、分类、排序或发现结构的函数。监督学习使用已知标签学习输入到输出的映射;无监督学习在没有目标标签时寻找低维结构、簇或潜在因子;自监督学习从数据本身构造预测任务,常用于预训练序列或图的表示。回归、树模型、核方法、神经网络和集成模型属于不同函数家族,它们共同面对数据代表性、目标定义、过拟合和验证问题。
训练、验证与测试¶
训练集用于估计参数,验证集用于选择超参数、特征、阈值或模型,测试集只用于模型确定后的泛化评估。交叉验证让不同子集轮流承担验证角色,适合数据有限时估计模型选择过程的波动;若交叉验证同时承担超参数搜索和最终性能报告,嵌套交叉验证或独立测试更能隔离选择偏差。
随机逐行划分只适用于观测近似独立且未来数据来自同一分布的情形。生物数据常具有个体、家系、批次、研究中心、时间、物种或序列同源簇等层级,同一层级的近邻分散到训练和测试两侧,会让测试集包含训练对象的近似副本。划分应按真正独立的部署单位成组进行;若目标是预测未来年份、另一中心或未见物种,时间外推、中心外部验证或系统发育隔离的测试集更接近实际任务。
数据泄漏还会发生在划分之外。用全体数据计算归一化参数、缺失值填补、特征筛选、降维或类别重采样,都可能把测试信息带入训练过程。正确顺序是先锁定数据划分,再只用每个训练折拟合预处理步骤,并把已拟合的变换应用到对应验证或测试数据。scikit-learn 的官方指南用随机标签示例展示了先全数据筛选特征怎样产生虚高准确率;生物机器学习的 DOME 建议也把数据独立性、优化、模型和评估作为一体化报告对象。78
分类指标、阈值与类别不平衡¶
二分类结果可以分成真阳性(true positive,TP)、假阳性(false positive,FP)、真阴性(true negative,TN)和假阴性(false negative,FN)。不同指标回答不同问题:
| 指标 | 定义 | 主要解释 |
|---|---|---|
| 敏感性/召回率 | \(TP/(TP+FN)\) | 实际阳性中有多少被找回 |
| 特异性 | \(TN/(TN+FP)\) | 实际阴性中有多少被排除 |
| 精确率/阳性预测值 | \(TP/(TP+FP)\) | 判为阳性的结果中有多少为真 |
| 准确率 | \((TP+TN)/(TP+FP+TN+FN)\) | 全部样本中分类正确的比例 |
| F1 分数 | 精确率与召回率的调和平均 | 在一个数值中平衡两类阳性错误,但不含真阴性 |
指标必须与错误代价和类别比例共同选择。在阳性极少的数据中,把所有对象都判为阴性也可能得到很高准确率;受试者工作特征(receiver operating characteristic,ROC)曲线展示不同阈值下敏感性与假阳性率的关系,精确率—召回率(precision–recall,PR)曲线则直接呈现找回阳性与阳性预测可靠度的权衡,其随机基线会随阳性比例改变。跨数据集比较 PR 曲线下面积(area under the precision–recall curve,AUPRC)时必须同时报告类别流行率。概率预测还应检查校准,即预测为 0.8 的对象在相应群体中是否大约有八成发生目标事件。9
适用阈值应在验证数据上依据明确用途选择,并在独立测试集上报告混淆矩阵、置信区间和亚组表现。筛查、候选实验验证和临床决策对假阳性、假阴性与资源成本的容忍不同;ROC 曲线下面积(area under the ROC curve,AUROC)、AUPRC 和 F1 描述总体或特定维度的分类表现,具体决策点的净收益还取决于阈值、流行率和错误代价。
基准集、外部验证与模型边界¶
可信评估需要简单基线、公开划分规则和独立数据。复杂模型应与类别先验、线性模型、最近邻或领域已有方法比较;性能差异应连同重复划分或重抽样的不确定性报告。测试结果一旦用于模型修改,测试集便参与了选择过程,需要另设独立数据完成最终评估。最终模型还应在来源、时间或生物背景不同的数据上检验分布漂移,并记录哪些样本超出训练域。
深度学习通过多层参数化函数学习表示,序列语言模型和其他基础模型还能利用大规模无标签数据预训练,再通过微调、提示或零样本评分迁移到具体任务。预训练规模扩大了可用信息,也扩大了发现数据重叠的难度:训练库中的同源序列、结构模板或未来测试对象可能形成隐性泄漏。模型生成的嵌入、置信度和注意力权重是计算对象,其生物学解释需要独立数据、扰动实验和机制证据收束。DOME 的报告框架尤其强调数据、优化、模型和评估的透明描述,适用于判断复杂模型是否真的提高了可迁移能力。8
计算规模、随机性与复现¶
实际运行时间由算法复杂度、实现、输入输出、内存层级和硬件共同决定。稀疏表示、分块、流式处理和索引可以减少内存或磁盘访问,向量化与并行计算可以提高吞吐量;图形处理器(graphics processing unit,GPU)等加速器适合大量规则的矩阵运算,指数级搜索的增长级别则仍由算法结构决定。优化时应先识别瓶颈,分别测量计算、内存和文件读写,代码行数或硬件型号本身不能代表实际性能。
随机种子能够帮助重放一次伪随机序列;并行线程调度、GPU 算子、软件版本、浮点精度和输入排序还可能引入差异。实践中应区分位级重现、数值近似重现和科学结论重现:前者要求环境与执行路径高度固定,后两者更关心容差内的数值和主要结论是否稳定。随机算法应报告种子、重复运行的分布以及对初始化的敏感性。
软件环境、版本控制、自动化测试、容器、工作流引擎和计算资源记录将在命令行、工作流与可重复研究中展开。输入表示、算法版本、参数、随机过程或硬件语义的变化都可能改变计算结果,这些记录据此成为复现链的一部分。
计算结果的证据边界¶
一个计算结果是数据、表示、模型、算法实现和评估方案共同作用的产物。最优解只在指定目标函数内最优,高预测分数只说明模型输出与标签之间的某种关系,统计显著性只在模型与检验族成立时具有相应解释。把这些条件逐层写明,可以区分算法错误、统计不确定性、数据偏差和真正的生物学差异。
计算分析形成可信证据,需要一条可追溯的链:原始样本与元数据界定研究对象,预处理和表示保存必要语义,算法与参数说明怎样得到结果,验证数据证明结果能否外推,最后由实验、独立队列或机制研究判断生物学解释。人工智能扩展了可处理的数据规模与表示能力,模型越复杂,这条证据链越需要清楚记录。
参考资料与延伸阅读¶
- Brooksbank C, et al. The ISCB competency framework v. 3: a revised and extended standard for bioinformatics education and training. Bioinformatics Advances. 2024;4(1):vbae166.
- MIT OpenCourseWare. 6.006 Introduction to Algorithms.
- Durbin R, Eddy SR, Krogh A, Mitchison G. Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids. Cambridge University Press; 1998.
- Wasserstein RL, Lazar NA. The ASA Statement on p-Values: Context, Process, and Purpose. The American Statistician. 2016;70(2):129–133.
- Benjamini Y, Hochberg Y. Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing. Journal of the Royal Statistical Society: Series B. 1995;57(1):289–300.
- Walsh I, et al. DOME: recommendations for supervised machine learning validation in biology. Nature Methods. 2021;18:1122–1127.
- Saito T, Rehmsmeier M. The Precision-Recall Plot Is More Informative than the ROC Plot When Evaluating Binary Classifiers on Imbalanced Datasets. PLOS ONE. 2015;10(3):e0118432.
-
Brooksbank 等提出的 ISCB Competency Framework v3包含生命科学、数据准备、适合数据规模与复杂度的数据科学方法、软件工具、数据管理和专业实践等 13 项能力,为计算基础的跨领域边界提供依据。 ↩
-
MIT OpenCourseWare 的 6.006 Introduction to Algorithms系统组织数据结构、排序、图、动态规划和复杂度;渐近分析用于比较资源消耗随输入规模的增长,而不是预测某台机器上的精确秒数。 ↩
-
MIT 6.006 的动态规划讲义将子问题定义、递推关系、依赖的拓扑次序、边界条件、原问题恢复和时间分析列为完整设计步骤。 ↩
-
Eddy SR. What is a hidden Markov model?. Nature Biotechnology. 2004;22:1315–1316;该文以剪接位点为例说明状态、转移、发射和序列概率在计算生物学中的作用。 ↩
-
Wasserstein 与 Lazar 的 ASA p 值声明给出六项原则:\(p\) 值只表示数据与指定模型的不相容程度,不能单独衡量假设为真的概率、效应大小或证据强度,结论也不应只由阈值决定。 ↩
-
Benjamini 与 Hochberg 的原始论文定义了以错误拒绝占全部拒绝比例的期望为目标的 FDR,并在独立检验条件下证明经典逐步程序的控制性质。 ↩
-
scikit-learn 的数据泄漏指南说明,测试数据参与预处理、特征选择或模型选择会产生过于乐观的泛化估计,并建议先划分数据、只在训练数据上拟合所有变换。 ↩
-
Walsh 等提出的 DOME 建议按 Data、Optimization、Model、Evaluation 组织生物学监督学习的报告与审查,要求说明数据独立性、类别不平衡、优化过程、基线、性能指标、外部测试、解释性和可复现性。 ↩↩
-
Saito 与 Rehmsmeier 的比较研究说明 ROC 与精确率—召回率曲线观察的是不同权衡;PR 曲线的基线等于阳性比例,因此在类别不平衡的生物分类任务中必须连同流行率解读。 ↩
页面讨论
使用 GitHub 登录后可参与整页讨论;评论独立保存在 GitHub Discussions 中。