用途:使用 Biopython 的 Bio.Align.PairwiseAligner 对两条序列做成对比对,通过动态规划算法计算最优比对。全局模式对应 Needleman-Wunsch,适合长度相近序列的全长比对;局部模式对应 Smith-Waterman,适合寻找最佳匹配区域或长度差异较大的序列。
主要能力:可创建并配置比对器,设置 mode、match_score、mismatch_score、open_gap_score、extend_gap_score,或加载替换矩阵(如 BLOSUM62、BLOSUM80、PAM250)用于蛋白质比对。调用 aligner.align(seq1, seq2) 获取全部最优比对,或用 aligner.score() 仅取分数。比对结果可读取 score、shape、len、aligned、coordinates,以及带空位的目标与查询序列;counts() 提供 identities、mismatches、gaps,可据此计算百分比一致性。还支持 substitutions 统计、max_alignments 限制返回数量,以及导出 fasta、clustal、psl、sam 等格式。
使用方式:先导入 from Bio.Align import PairwiseAligner、from Bio.Seq import Seq、from Bio import SeqIO;创建 PairwiseAligner 并按需配置打分;对 Seq 或 SeqRecord 的序列执行 align 或 score;再访问比对属性或格式化输出。半全局比对可通过将 query 左右端 open/extend gap 分数设为 0 实现,常用于引物比对。
适用场景:两条 DNA/RNA/蛋白质序列比较、寻找最优比对、计算一致性与空位、蛋白质同源比对、引物或重叠区比对。
限制:资料未提供安装命令、收费、平台与性能数据;最优比对过多可能触发 OverflowError,需设置 max_alignments;局部模式若打分全为负可能无结果,需保证 match_score 大于 0;蛋白质比对应使用替换矩阵而非简单 match/mismatch 打分。