スミス・ウォーターマンアルゴリズムは、局所的な配列アライメントを実行します。つまり、2つの核酸配列またはタンパク質配列間の類似領域を特定します。スミス・ウォーターマンアルゴリズムは、配列全体を調べるのではなく、あらゆる長さのセグメントを比較し、類似度を最適化します。
このアルゴリズムは、1981 年にTemple F. SmithとMichael S. Watermanによって初めて提案されました。 [ 1 ]変形であるNeedleman–Wunsch アルゴリズムと同様に、Smith–Waterman は動的計画法アルゴリズムです。そのため、使用されているスコアリング システム (置換行列とギャップ スコアリングスキームを含む) に関して最適な局所アライメントを見つけることが保証されるという望ましい特性があります。Needleman –Wunsch アルゴリズムとの主な違いは、負のスコアリング マトリックス セルがゼロに設定されることです。トレースバック手順は、最も高いスコアのマトリックス セルから開始され、スコアがゼロのセルに遭遇するまで進み、最も高いスコアの局所アライメントが得られます。その二次時間計算量のため、大規模な問題に実用的に適用できないことが多く、(Gotoh、1982)、[ 2 ] ( Altschulと Erickson、1986)、[ 3 ]および (Myers と Miller、1988) [ 4 ]などの計算効率の高い代替手段に置き換えられています。
1970年、ソール・B・ニードルマンとクリスチャン・D・ウンシュは、配列アライメントのためのヒューリスティック相同性アルゴリズム(ニードルマン・ウンシュアルゴリズムとも呼ばれる)を提案した。[ 5 ]これは、グローバルアライメントアルゴリズムであり、計算手順(そしては、整列される 2 つの配列の長さです。これは、グローバル整列を表示するために行列の反復計算を使用します。次の 10 年間、Sankoff [ 6 ]、Reichert [ 7 ] 、 Beyer [ 8 ]らは、遺伝子配列を分析するための代替ヒューリスティック アルゴリズムを考案しました。Sellers は、配列距離を測定するシステムを導入しました。[ 9 ] 1976 年、Waterman らは、元の測定システムにギャップの概念を追加しました。[ 10 ] 1981 年、Smith と Waterman は、ローカル整列を計算する Smith–Waterman アルゴリズムを発表しました。
スミス・ウォーターマンアルゴリズムは、かなり時間がかかります。長さの異なる 2 つのシーケンスを整列させるには、そして、時間が必要です。Gotoh [ 2 ]と Altschul [ 3 ]はアルゴリズムを最適化し、ステップ。空間計算量はMyersとMiller [ 4 ]によって最適化された。に(線形)は、多数の可能な最適アライメントのうちの 1 つだけが必要な場合の、より短いシーケンスの長さです。Chowdhury、Le、および Ramachandran [ 11 ]は後に、入力シーケンスの全長に対して空間使用量を線形に保ちながら、アルゴリズムのキャッシュパフォーマンスを最適化しました。
近年、様々な生物を対象としたゲノムプロジェクトにより、遺伝子やタンパク質の膨大な配列データが生成され、計算による解析が必要となっている。配列アライメントは、遺伝子間またはタンパク質間の関係性を示し、それらの相同性や機能性の理解を深めるのに役立つ。また、配列アライメントによって保存ドメインやモチーフを明らかにすることもできる。
局所アライメントの動機の一つは、遠縁の生物学的配列間の類似性が低い領域では、正しいアライメントを得ることが困難であるという点です。これは、進化の過程で突然変異によって「ノイズ」が過剰に蓄積され、これらの領域を意味のある形で比較することが不可能になっているためです。局所アライメントでは、このような領域を完全に回避し、正のスコアを持つ領域、つまり進化的に保存された類似性のシグナルを持つ領域に焦点を当てます。局所アライメントの前提条件は、負の期待値スコアです。期待値スコアは、スコアリングシステム(置換行列とギャップペナルティ)がランダムな配列に対して生成する平均スコアとして定義されます。
局所アライメントを使用するもう一つの動機は、最適な局所アライメントに関する信頼性の高い統計モデル(KarlinとAltschulによって開発された)が存在することです。無関係な配列のアライメントは、極値分布に従う最適な局所アライメントスコアを生成する傾向があります。この特性により、プログラムは2つの配列の最適な局所アライメントの期待値を生成できます。これは、無関係な2つの配列が、観測されたスコア以上のスコアを持つ最適な局所アライメントを生成する頻度を示す指標です。期待値が非常に低い場合は、問題の2つの配列が相同である可能性があり、共通の祖先を持つ可能性があることを示しています。

させてそしては整列される配列であり、そして長さはそしてそれぞれ。
スミス・ウォーターマンアルゴリズムは、一致/不一致(置換とも呼ばれる)、挿入、および削除によって2つの配列を整列させます。挿入と削除はどちらもギャップを導入する操作であり、ギャップはダッシュで表されます。スミス・ウォーターマンアルゴリズムにはいくつかのステップがあります。

スミス・ウォーターマンアルゴリズムは、類似性のある2つの配列のセグメントを検出するのに対し、ニードルマン・ウンシュアルゴリズムは、2つの完全な配列を整列させます。したがって、両者は異なる目的で使用されます。どちらのアルゴリズムも、置換行列、ギャップペナルティ関数、スコアリング行列、およびトレースバックプロセスの概念を使用します。主な違いは次の3点です。
最も重要な違いの一つは、スミス・ウォーターマンアルゴリズムのスコアリングシステムでは負のスコアが割り当てられないことであり、これにより局所的なアライメントが可能になります。いずれかの要素のスコアがゼロより低い場合、その位置までの配列には類似性がないことを意味します。この場合、その要素のスコアはゼロに設定され、以前のアライメントの影響が排除されます。このようにして、計算はその後任意の位置でアライメントを見つけるために継続されます。
Smith–Watermanアルゴリズムの初期スコアリングマトリックスでは、一方の配列の任意のセグメントを他方の配列の任意の位置にアライメントすることが可能です。しかし、Needleman–Wunschアルゴリズムでは、配列全体をアライメントするために、末端ギャップペナルティも考慮する必要があります。
各塩基置換またはアミノ酸置換にはスコアが割り当てられます。一般的に、一致には正のスコアが、不一致には比較的低いスコアが割り当てられます。DNA配列を例にとると、一致に+1、不一致に-1が割り当てられる場合、置換行列は次のようになります。
この置換行列は次のように表すことができます。
塩基置換やアミノ酸置換の種類によってスコアは異なります。アミノ酸の置換マトリックスは通常、塩基の置換マトリックスよりも複雑です。PAM 、 BLOSUMを参照してください。
ギャップペナルティは、挿入または削除に対するスコアを指定します。単純なギャップペナルティ戦略は、各ギャップに固定スコアを使用することです。しかし、生物学では、実際的な理由からスコアを異なる方法でカウントする必要があります。一方では、2 つの配列間の部分的な類似性は一般的な現象です。他方では、単一の遺伝子変異イベントによって、単一の長いギャップが挿入される可能性があります。したがって、長いギャップを形成する連結したギャップは、散在する複数の短いギャップよりも通常は好ましいです。この違いを考慮に入れるために、ギャップ開始とギャップ拡張の概念がスコアリングシステムに追加されました。ギャップ開始スコアは通常、ギャップ拡張スコアよりも高くなります。たとえば、EMBOSS Waterのデフォルトパラメータは、ギャップ開始 = 10、ギャップ拡張 = 0.5 です。
ここでは、ギャップペナルティの2つの一般的な戦略について説明します。その他の戦略については、 「ギャップペナルティ」を参照してください。長さのギャップに対するギャップペナルティ関数をとする。:

線形ギャップペナルティでは、ギャップを開く場合とギャップを広げる場合で同じスコアが適用されます。
、
どここれは、単一のギャップのコストです。
ギャップペナルティはギャップ長に正比例します。線形ギャップペナルティを使用する場合、スミス・ウォーターマンアルゴリズムは次のように簡略化できます。
簡略化されたアルゴリズムは手順。要素のスコアリングを行う際には、その要素に直接隣接する要素からのギャップペナルティのみを考慮する必要があります。
アフィンギャップペナルティは、ギャップの開始と拡張を別々に考慮します。
、
どこギャップオープニングペナルティであり、はギャップ延長ペナルティです。例えば、長さ2のギャップに対するペナルティは。
オリジナルのSmith–Watermanアルゴリズム論文では、任意のギャップペナルティが使用されていました。そのため、ステップ数が多く、かなりの時間を要します。Gotoh はアフィンギャップペナルティのステップ数を最適化し、[ 2 ]しかし、最適化されたアルゴリズムは最適なアライメントを1つだけ見つけようと試みるだけであり、最適なアライメントが見つかることは保証されていない。[ 3 ] Altschulは、計算複雑性を維持しながらすべての最適なアライメントを見つけるようにGotohのアルゴリズムを修正した。[ 3 ]その後、MyersとMillerは、GotohとAltschulのアルゴリズムは、1975年にHirschbergによって発表された方法に基づいてさらに修正できることを指摘し、[ 12 ]この方法を適用した。[ 4 ] MyersとMillerのアルゴリズムは、2つの配列をアライメントすることができる。スペース、短い方のシーケンスの長さである。Chowdhury、Le、およびRamachandran [ 11 ]は後に、Hirschberg が使用したものとは異なる再帰的な分割統治戦略を使用して、線形空間で Gotoh のアルゴリズムをキャッシュ効率よく実行する方法を示した。結果として得られたアルゴリズムは、キャッシュ性能が優れているため、実際には Myers と Miller のアルゴリズムよりも高速に実行される。[ 11 ]
配列TACGGGCCCGCTACとTAGCCCTATCGGTCAのアライメントを例にとります。線形ギャップペナルティ関数を使用した場合、結果は次のようになります (アライメントは EMBOSS Water によって実行されました。置換マトリックスは DNAfull (類似度スコア: 一致する文字には +5、それ以外は -4)。ギャップの開始と延長はそれぞれ 0.0 と 1.0 です)。
TACGGGCCCGCTA-CTA---G-CC-CTATC
アフィンギャップペナルティを使用した場合、結果は次のようになります(ギャップの開始と拡張はそれぞれ5.0と1.0です)。
TACGGGCCCGCTATA---GCC--CTA
この例は、アフィンギャップペナルティが散在する小さなギャップを回避するのに役立つことを示している。
スコアリングマトリックスの機能は、2つのシーケンス内のすべてのコンポーネントを1対1で比較し、最適なアライメント結果を記録することです。スコアリングプロセスは、動的計画法の概念を反映しています。最終的な最適なアライメントは、成長中の最適なアライメントを繰り返し拡張することによって見つけられます。言い換えれば、現在の最適なアライメントは、以前の最適なアライメントから最も高いスコアを与えるパス(一致/不一致またはギャップの挿入)を決定することによって生成されます。マトリックスのサイズは、一方のシーケンスの長さ+1×もう一方のシーケンスの長さ+1です。追加された最初の行と最初の列は、一方のシーケンスをもう一方のシーケンスの任意の位置にアライメントするために使用されます。最初の行と最初の列は両方とも0に設定されているため、末端ギャップはペナルティの対象になりません。初期スコアリングマトリックスは次のとおりです。
DNA配列TGTTACGGとGGTTGACTAのアライメントを例にとります。以下のスキームを使用してください。
下記に示すスコアリングマトリックスを初期化し、データを入力します。この図は、最初の3つの要素のスコアリングプロセスを示しています。黄色は、評価対象となる塩基を示しています。赤色は、評価対象の細胞における最高スコアを示しています。

完成したスコアリングマトリックスは、左下に示されています。青色は最高スコアを示しています。1つの要素が複数の要素からスコアを受け取る場合、その要素を遡るとそれぞれ異なるパスが形成されます。最高スコアが複数ある場合は、それぞれの最高スコアから遡って処理する必要があります。遡及処理は右下に示されています。最適なローカルアライメントは逆方向に生成されます。
アライメント結果は以下のとおりです。
GTT - AC GTTGAC
Smith–Waterman アルゴリズムの実装である SSEARCH は、UVA FASTA Downloadsから入手できるFASTA配列解析パッケージに含まれています。この実装には、 Wozniak (1997) のアプローチ[ 13 ]の修正と Farrar [ 14 ]によって開発された SSE2 ベクトル化を使用して比較を 10~20 倍高速化するPowerPC G4 および G5 プロセッサ用の Altivec アクセラレーション コードが含まれており、最適なタンパク質配列データベース検索が非常に実用的になっています。ライブラリ SSW は、Farrar の実装を拡張して、最適な Smith–Waterman スコアに加えてアライメント情報を返すようにしています。[ 15 ]
Crayは、 FPGAチップをベースとした再構成可能なコンピューティングプラットフォームを使用してSmith–Watermanアルゴリズムの高速化を実証し、標準的なマイクロプロセッサベースのソリューションと比較して最大28倍の高速化を実現しました。Smith–Watermanアルゴリズムの別のFPGAベースバージョンでは、 2.2GHz Opteronプロセッサと比較してFPGA(Virtex-4)による最大100倍の高速化が示されています[ 16 ]。[ 17 ] TimeLogic DeCypherおよびCodeQuestシステムも、PCIe FPGAカードを使用してSmith–WatermanおよびFramesearchを高速化しています。
2011年の修士論文[ 18 ]には、FPGAベースのSmith–Watermanアクセラレーションの分析が含まれています。
2016年の論文「Xilinx SDAccelでコンパイルされたOpenCLコードがゲノムシーケンスを高速化し、CPU/GPUの電力効率を12~21倍上回る」では、非常に効率的な実装が紹介されました。Xilinx Virtex-7 2000T FPGAを搭載した1枚のPCIe FPGAカードを使用することで、電力効率はCPU/GPUの12~21倍向上しました。
ローレンス・リバモア国立研究所と米国エネルギー省の共同ゲノム研究所は、グラフィックス処理ユニット(GPU)を使用してスミス・ウォーターマン局所配列アライメント検索の高速化バージョンを実装し、予備的な結果ではソフトウェア実装よりも2倍高速化されていることが示されています。[ 19 ]同様の方法は、1997年からBiofacetソフトウェアに既に実装されており、同じ高速化率となっています。[ 20 ]
NVIDIAのCUDA Cプラットフォームでは、このアルゴリズムのGPU実装もいくつか利用可能です。[ 21 ] Farrarによる最もよく知られているCPU実装(x86アーキテクチャのSIMD命令を使用)と比較すると、このソリューションの単一のNVidia GeForce 8800 GTXカードを使用したパフォーマンス テストでは、シーケンスが小さい場合はパフォーマンスがわずかに向上しますが、シーケンスが大きい場合はパフォーマンスがわずかに低下します。しかし、デュアルNVidia GeForce 8800 GTXカードで実行される同じテストでは、テストされたすべてのシーケンス サイズでFarrarの実装のほぼ2倍の速度になります。
SWの新しいGPU CUDA実装が利用可能になりました。これは以前のバージョンよりも高速で、クエリ長の制限も解除されています。CUDASW ++を参照してください。
CUDA上で11種類の異なるソフトウェア実装が報告されており、そのうち3つは30倍の高速化を報告している。[ 22 ]
最後に、Smith-Waterman法のGPUアクセラレーション実装は、NVIDIAのゲノム解析用ソフトウェアスイートであるNVIDIA Parabricksにも見られます。[ 23 ]
2000年、 RognesとSeebergは、 Intel Pentium MMXプロセッサで利用可能な単一命令複数データ(SIMD)技術および同様の技術を使用したSmith–Watermanアルゴリズムの高速実装について論文で発表した。[ 24 ] Wozniak(1997)のアプローチとは対照的に、この新しい実装は、対角ベクトルではなく、クエリシーケンスと並列なベクトルに基づいていた。Sencel Bioinformatics社はこのアプローチに関する特許を申請している。Sencel社はソフトウェアをさらに開発しており、学術用途向けに実行ファイルを無償で提供している。
このアルゴリズムの SSE2 ベクトル化 (Farrar、2007) が利用可能になり、SSE2 拡張機能を備えた Intel/AMD プロセッサで 8~16 倍の高速化が実現しました。[ 14 ] Coreマイクロアーキテクチャを使用する Intel プロセッサで実行すると、 SSE2 実装により 20 倍の高速化が達成されます。Farrar の SSE2 実装は、 FASTA配列比較パッケージの SSEARCH プログラムとして利用可能です。SSEARCH は、欧州バイオインフォマティクス研究所の類似性検索プログラム群に含まれています。
デンマークのバイオインフォマティクス企業CLC bioは、公開されているホワイトペーパー によると、Intel 2.17GHz Core 2 Duo CPU上でSSE2を使用することで、標準的なソフトウェア実装と比較して200倍近い高速化を達成した。
IntelおよびAdvanced Micro Devices(AMD)ベースのLinuxサーバー上で動作する、Smith–Watermanアルゴリズムの高速化バージョンは、 Biocceleration社が提供するGenCore 6パッケージによってサポートされています。このソフトウェアパッケージのパフォーマンスベンチマークでは、同じプロセッサ上での標準ソフトウェア実装と比較して、最大10倍の速度向上を実現しています。
現在、バイオインフォマティクス分野で唯一、Smith–Watermanを高速化するSSEとFPGAソリューションの両方を提供しているCLC bioは、 CLC Bioinformatics Cubeにより、標準的なソフトウェア実装と比較して110倍以上の高速化を実現しています。
SSSE3を搭載した CPU 上でアルゴリズムを実装した最速のものは、GNU Affero General Public Licenseの下で利用可能なSWIPE ソフトウェア (Rognes、2011) [ 25 ]です。このソフトウェアは、16 種類のデータベース配列の残基を 1 つのクエリ残基と並列に比較します。375 残基のクエリ配列を使用すると、デュアル Intel Xeon X5650 6 コアプロセッサ システムで毎秒 1060 億セル更新 (GCUPS) の速度が達成され、これは Farrar の「ストライプ」アプローチに基づくソフトウェアよりも 6 倍以上高速です。BLOSUM50マトリックスを使用する場合、BLASTよりも高速です。
C言語とC++で記述された、Smith–Watermanアルゴリズムの実装であるdiagonalswは、SIMD命令セット( x86プラットフォームではSSE4.1、PowerPCプラットフォームではAltiVec)を使用しています。これはオープンソースのMITライセンスの下で公開されています。
2008年、Farrar [ 26 ]は、Striped Smith–Waterman [ 14 ]をCell Broadband Engineに移植したことを報告し、 IBM QS20ブレードとSony PlayStation 3でそれぞれ32 GCUPSと12 GCUPSの速度を報告した。
遺伝子データの急速な増加は、既存のDNA配列アライメントアルゴリズムの処理速度に課題を突きつけている。効率的かつ正確なDNA変異検出手法には、リアルタイムでの並列処理を実現する革新的なアプローチが不可欠である。
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク){{cite web}}: CS1 maint: archived copy as title ( link ) , "Archived copy" (PDF)。2008-07-05にオリジナル(PDF)からアーカイブされました。2007-10-17に取得。{{cite web}}: CS1 maint: archived copy as title ( link )、および"Archived copy" (PDF)。2011-07-20にオリジナル(PDF)からアーカイブされました。2007-10-17に取得。{{cite web}}: CS1 maint: タイトルとしてアーカイブされたコピー (リンク){{cite journal}}:ヘルプ内の外部リンク|journal={{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ) CS1 メンテナンス: 非推奨のアーカイブ サービス (リンク)が必要です