BLAST(Altschul et al., 1990, J Mol Biol; 1997 Gapped BLAST and PSI-BLAST, Nucleic Acids Res)是啟發式序列搜尋的標竿,其演算法設計體現了計算效率與統計嚴謹性的平衡。
演算法細節與複雜度分析
經典 BLAST 使用有限自動機(finite automaton)或雜湊表(hash table)進行種子搜尋,時間複雜度與資料庫大小 n 呈線性 O(n)。2004 年的 BLAST+(Camacho et al., 2009)引入 NCBI C++ Toolkit 重構,改善了多執行緒支援和記憶體管理。
Megablast 針對高相似度核酸比對優化,使用較長的 word(w=28)和不連續種子(discontiguous seed),在高度相似序列(如不同菌株比較)中效率極高。對於遠距同源偵測,使用連續種子會降低靈敏度——Ma et al.(2002, Bioinformatics)的 PatternHunter 證明不連續種子(spaced seed)可以用相同的種子長度達到更高的命中機率。
PSI-BLAST 與 PSSM 建構
PSI-BLAST 的迭代搜尋流程:(1) 初始 blastp 搜尋 (2) 收集 E-value 低於包含閾值(預設 0.005)的比對 (3) 建構多序列比對 (4) 計算 PSSM:每個位置的分數反映該位置在同源家族中的保守性,結合虛擬計數(pseudocounts)避免零頻率問題 (5) 用 PSSM 替代固定替代矩陣進行下一輪搜尋。通常 3-5 輪迭代後收斂。
PSI-BLAST 的主要風險是「profile drift」——若早期迭代包含假陽性,PSSM 會被污染,導致後續迭代偏離真正的同源家族。解決策略包括設定更嚴格的包含閾值和手動檢查比對結果。
統計框架的延伸
BLAST+ 的合成分數(composition-based statistics, Schaffer et al., 2001)校正了不同序列胺基酸組成偏差對 E-value 的影響。條件組成調整(conditional compositional adjustment)進一步考慮了蛋白質特定位置的組成變異。
對於短序列或 RNAi 片段的搜尋,標準 Karlin-Altschul 統計的漸進假設不成立,需使用有限尺寸校正或模擬方法。blastn-short 模式(word size 7, E-value 1000)專門處理此類場景。
現代替代工具與比較
- DIAMOND(Buchfink et al., 2015, Nat Methods):使用雙重索引(double indexing)和精簡字母表(reduced alphabet),速度比 BLAST 快 100-20000 倍,適合宏基因體學的大規模蛋白質搜尋
- MMseqs2(Steinegger & Söding, 2017, Nat Biotechnol):迭代的 k-mer 搜尋加預過濾,在聚類和搜尋上均超越 BLAST 的速度,且靈敏度接近
- HMMER(Eddy, 2011):基於 profile HMM 的搜尋,理論上比 PSSM 更精確地捕捉序列家族的統計特徵
儘管有更快的替代工具,BLAST 因其穩健性、易用性和完善的統計框架,仍然是基因體註釋和初步同源搜尋的首選。NCBI BLAST 網站的月搜尋量仍在百萬級別。
