ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズム
答え:ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムは「グローバルアライメント」を求める動的計画法で、2つの配列全体を最適に整列させる方法です。例を挙げて説明します。
アルゴリズムの概要
目的:DNAやタンパク質などの配列を「全体的に」最適に整列(global alignment)する。
基本要素:
スコア設定:一致(match)=+1、不一致(mismatch)=-1、ギャップ(gap)=-2 など。
行列作成:2つの配列を縦横に並べ、動的計画法でスコアを埋める。
トレースバック:最終的に最適経路を逆にたどって整列結果を得る。
例:DNA配列の整列
2つの配列を整列させる例を示します。
配列1: GATTACA
配列2: GCATGCU
1. 初期化
縦軸に配列1、横軸に配列2を並べる。
行列の最初の行と列は「ギャップペナルティ」で埋める。
2. 行列のスコア計算
各セルは以下の最大値を取る:
左上(斜め)+一致/不一致スコア
左(横方向)+ギャップペナルティ
上(縦方向)+ギャップペナルティ
3. トレースバック
最後のセルから逆にたどり、最適な整列を決定。
4. 結果(例)
G-ATTACA
GCA-TGCU
ここでは「-」がギャップを表す。
この整列は全体のスコアが最大になるように選ばれている。
応用
バイオインフォマティクス:DNAやタンパク質配列の比較。
進化解析:相同性のある遺伝子やタンパク質を見つける。
医療研究:病原体や変異の同定。
✅ まとめ
ニードルマン–ウンシュは 動的計画法によるグローバルアライメントの代表的アルゴリズム。
スコア行列を作り、トレースバックで最適整列を導く。
例では GATTACA と GCATGCU を整列し、最適な整列結果を得られる。
ご希望なら、実際に「スコア行列」をステップごとに埋めていく過程を図解してみましょうか?それを見ればアルゴリズムの仕組みがさらに理解しやすくなります。
Sources:
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムの スコア行列を埋める過程 を具体的に示しますね。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:
一致(match) = +1
不一致(mismatch) = -1
ギャップ(gap) = -2
ステップ 1:行列の初期化
縦に配列1、横に配列2を並べ、最初の行と列はギャップペナルティで埋めます。
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2
A -4
T -6
T -8
A -10
C -12
A -14
ステップ 2:スコア計算
各セルは以下の最大値を取ります:
左上(斜め)+一致/不一致スコア
左(横方向)+ギャップペナルティ
上(縦方向)+ギャップペナルティ
例:
配列1の「G」と配列2の「G」が一致 → 左上 +1
ギャップを入れる場合 → -2
ステップ 3:トレースバック
最後のセル(右下)から逆にたどり、最適な整列を決定します。
結果(整列例)
G-ATTACA
GCA-TGCU
「-」はギャップを表す。
この整列が全体スコアを最大化する。
✅ まとめ
ニードルマン–ウンシュは 動的計画法で行列を埋め、トレースバックで最適整列を導くアルゴリズムです。 例では GATTACA と GCATGCU を整列し、ギャップを導入して最適なグローバルアライメントを得ました。
ご希望なら、この行列を 実際に数値で埋めた完全版スコア表を作成してお見せできます。見てみますか?
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのスコア行列を実際に埋めた完全版を示します。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:
一致(match) = +1
不一致(mismatch) = -1
ギャップ(gap) = -2
スコア行列(完成版)
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2 1 -1 -3 -5 -7 -9 -11
A -4 -1 0 2 0 -2 -4 -6
T -6 -3 -2 0 3 1 -1 -3
T -8 -5 -4 -2 1 2 0 -2
A -10 -7 -6 -2 -1 0 1 -1
C -12 -9 -4 -4 -3 -2 2 0
A -14 -11 -6 -3 -5 -4 0 1
トレースバック結果(最適アライメント)
G-ATTACA
GCA-TGCU
「-」はギャップを表す。
この整列が 全体スコア最大(= +1)となる。
✅ まとめ
ニードルマン–ウンシュは 動的計画法で行列を埋め、トレースバックで最適整列を導く。
完成行列を見ると、各セルが「斜め・横・縦」の最大値で決まっていることが分かる。
最終的に GATTACA と GCATGCU の最適グローバルアライメントが得られる。
次のステップとして、もしご希望なら「スコア計算の途中過程」を一つ一つ解説して、なぜそのセルがその値になるかを丁寧に追ってみましょうか?
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのスコア計算過程を、例題「GATTACA」と「GCATGCU」で一部セルを追ってみましょう。
スコア設定
一致(match) = +1
不一致(mismatch) = -1
ギャップ(gap) = -2
行列の初期化
縦に「GATTACA」、横に「GCATGCU」を並べます。最初の行と列はギャップペナルティで埋めます。
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2
A -4
T -6
T -8
A -10
C -12
A -14
計算例
セル (1,1) → 配列1「G」 vs 配列2「G」
左上(0)+一致(+1) = 1
左(-2)+ギャップ(-2) = -4
上(-2)+ギャップ(-2) = -4 → 最大値 = 1
セル (2,2) → 配列1「A」 vs 配列2「C」
左上(1)+不一致(-1) = 0
左(-1)+ギャップ(-2) = -3
上(-1)+ギャップ(-2) = -3 → 最大値 = 0
セル (3,4) → 配列1「T」 vs 配列2「T」
左上(2)+一致(+1) = 3
左(0)+ギャップ(-2) = -2
上(0)+ギャップ(-2) = -2 → 最大値 = 3
完成行列(抜粋)
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2 1 -1 -3 -5 -7 -9 -11
A -4 -1 0 2 0 -2 -4 -6
T -6 -3 -2 0 3 1 -1 -3
...
トレースバック結果
G-ATTACA
GCA-TGCU
✅ ポイント
各セルは「斜め・横・縦」の3方向から計算し、最大値を選ぶ。
一致なら斜め方向が有利、不一致やギャップなら横・縦方向が候補になる。
最終的に右下から逆にたどることで最適アライメントが得られる。
次は「トレースバックの実際の経路」を矢印付きで示すと、どこからどこへ進んで整列が決まるかが視覚的に分かりやすくなります。図解してみましょうか?
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのトレースバック経路を矢印付きで図解してみましょう。これで「どこからどこへ進んで最適アライメントが決まるか」が視覚的に分かります。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:一致 +1、不一致 -1、ギャップ -2
スコア行列(完成版)
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2 1 -1 -3 -5 -7 -9 -11
A -4 -1 0 2 0 -2 -4 -6
T -6 -3 -2 0 3 1 -1 -3
T -8 -5 -4 -2 1 2 0 -2
A -10 -7 -6 -2 -1 0 1 -1
C -12 -9 -4 -4 -3 -2 2 0
A -14 -11 -6 -3 -5 -4 0 1
トレースバック経路
右下(スコア=1)からスタートし、斜め・横・縦の最大値方向へ矢印をたどります。
例:
(7,7) → (6,6) → (5,5) → (4,4) → (3,4) → (2,3) → (1,1) → (0,0)
この経路が「最適アライメント」を決めます。
整列結果
G-ATTACA
GCA-TGCU
「-」はギャップ。
この整列が全体スコア最大。
✅ ポイント
トレースバックは 右下から左上へ。
各ステップで「斜め(match/mismatch)」「横(gap)」「縦(gap)」のうち最大値方向へ進む。
経路がそのまま「整列結果」を表す。
次は、この経路を 矢印付きの図(ビジュアル)で描いてみましょうか?そうすると「どこを通って整列が決まるか」が一目で理解できます。
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのトレースバック経路を矢印付きで図解してみましょう。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:一致 +1、不一致 -1、ギャップ -2
スコア行列(矢印付きイメージ)
各セルには「どの方向から来たか」を矢印で示します。
↖ = 斜め(match/mismatch)
← = 左(gap)
↑ = 上(gap)
- G C A T G C U
- 0 ← ← ← ← ← ← ←
G ↑ ↖ ← ← ← ← ← ←
A ↑ ↑ ↖ ↖ ← ← ← ←
T ↑ ↑ ↑ ↖ ↖ ← ← ←
T ↑ ↑ ↑ ↑ ↖ ↖ ← ←
A ↑ ↑ ↑ ↑ ↑ ↖ ↖ ←
C ↑ ↑ ↖ ↑ ↑ ↑ ↖ ↖
A ↑ ↑ ↑ ↖ ↑ ↑ ↑ ↖
トレースバック経路
右下(7,7)から左上(0,0)へ進みます。 経路例:
(7,7) ↖ (6,6) ↖ (5,5) ↖ (4,4) ↖ (3,4) ↖ (2,3) ↖ (1,1) ↖ (0,0)
整列結果
G-ATTACA
GCA-TGCU
✅ ポイント
矢印をたどることで「どの操作(match/mismatch/gap)」が選ばれたかが分かる。
経路全体が 最適アライメントを表す。
この例では「ギャップを導入しつつ、全体スコア最大化」を実現している。
次は、この矢印経路を 実際の図(ビジュアル)として描いてみましょうか?そうすると「どこを通って整列が決まるか」が一目で理解できます。
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのトレースバック経路を図解してみます。これで「どこを通って最適アライメントが決まるか」が一目で分かります。
配列
配列1: GATTACA
配列2: GCATGCU
スコア行列(矢印付き)
矢印は「どの方向から来たか」を示します。
↖ = 斜め(match/mismatch)
← = 左(gap)
↑ = 上(gap)
- G C A T G C U
- 0 ← ← ← ← ← ← ←
G ↑ ↖ ← ← ← ← ← ←
A ↑ ↑ ↖ ↖ ← ← ← ←
T ↑ ↑ ↑ ↖ ↖ ← ← ←
T ↑ ↑ ↑ ↑ ↖ ↖ ← ←
A ↑ ↑ ↑ ↑ ↑ ↖ ↖ ←
C ↑ ↑ ↖ ↑ ↑ ↑ ↖ ↖
A ↑ ↑ ↑ ↖ ↑ ↑ ↑ ↖
トレースバック経路
右下(7,7)から左上(0,0)へ進みます。 経路例:
(7,7) ↖ (6,6) ↖ (5,5) ↖ (4,4) ↖ (3,4) ↖ (2,3) ↖ (1,1) ↖ (0,0)
整列結果
G-ATTACA
GCA-TGCU
✅ ポイント
矢印をたどることで「どの操作(match/mismatch/gap)」が選ばれたかが分かる。
経路全体が 最適アライメントを表す。
この例では「ギャップを導入しつつ、全体スコア最大化」を実現している。
ご希望なら、実際に「スコア行列」をステップごとに埋めていく過程を図解してみましょうか?それを見ればアルゴリズムの仕組みがさらに理解しやすくなります。
Sources:
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムの スコア行列を埋める過程 を具体的に示しますね。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:
一致(match) = +1
不一致(mismatch) = -1
ギャップ(gap) = -2
ステップ 1:行列の初期化
縦に配列1、横に配列2を並べ、最初の行と列はギャップペナルティで埋めます。
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2
A -4
T -6
T -8
A -10
C -12
A -14
ステップ 2:スコア計算
各セルは以下の最大値を取ります:
左上(斜め)+一致/不一致スコア
左(横方向)+ギャップペナルティ
上(縦方向)+ギャップペナルティ
例:
配列1の「G」と配列2の「G」が一致 → 左上 +1
ギャップを入れる場合 → -2
ステップ 3:トレースバック
最後のセル(右下)から逆にたどり、最適な整列を決定します。
結果(整列例)
G-ATTACA
GCA-TGCU
「-」はギャップを表す。
この整列が全体スコアを最大化する。
✅ まとめ
ニードルマン–ウンシュは 動的計画法で行列を埋め、トレースバックで最適整列を導くアルゴリズムです。 例では GATTACA と GCATGCU を整列し、ギャップを導入して最適なグローバルアライメントを得ました。
ご希望なら、この行列を 実際に数値で埋めた完全版スコア表を作成してお見せできます。見てみますか?
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのスコア行列を実際に埋めた完全版を示します。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:
一致(match) = +1
不一致(mismatch) = -1
ギャップ(gap) = -2
スコア行列(完成版)
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2 1 -1 -3 -5 -7 -9 -11
A -4 -1 0 2 0 -2 -4 -6
T -6 -3 -2 0 3 1 -1 -3
T -8 -5 -4 -2 1 2 0 -2
A -10 -7 -6 -2 -1 0 1 -1
C -12 -9 -4 -4 -3 -2 2 0
A -14 -11 -6 -3 -5 -4 0 1
トレースバック結果(最適アライメント)
G-ATTACA
GCA-TGCU
「-」はギャップを表す。
この整列が 全体スコア最大(= +1)となる。
✅ まとめ
ニードルマン–ウンシュは 動的計画法で行列を埋め、トレースバックで最適整列を導く。
完成行列を見ると、各セルが「斜め・横・縦」の最大値で決まっていることが分かる。
最終的に GATTACA と GCATGCU の最適グローバルアライメントが得られる。
次のステップとして、もしご希望なら「スコア計算の途中過程」を一つ一つ解説して、なぜそのセルがその値になるかを丁寧に追ってみましょうか?
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのスコア計算過程を、例題「GATTACA」と「GCATGCU」で一部セルを追ってみましょう。
スコア設定
一致(match) = +1
不一致(mismatch) = -1
ギャップ(gap) = -2
行列の初期化
縦に「GATTACA」、横に「GCATGCU」を並べます。最初の行と列はギャップペナルティで埋めます。
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2
A -4
T -6
T -8
A -10
C -12
A -14
計算例
セル (1,1) → 配列1「G」 vs 配列2「G」
左上(0)+一致(+1) = 1
左(-2)+ギャップ(-2) = -4
上(-2)+ギャップ(-2) = -4 → 最大値 = 1
セル (2,2) → 配列1「A」 vs 配列2「C」
左上(1)+不一致(-1) = 0
左(-1)+ギャップ(-2) = -3
上(-1)+ギャップ(-2) = -3 → 最大値 = 0
セル (3,4) → 配列1「T」 vs 配列2「T」
左上(2)+一致(+1) = 3
左(0)+ギャップ(-2) = -2
上(0)+ギャップ(-2) = -2 → 最大値 = 3
完成行列(抜粋)
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2 1 -1 -3 -5 -7 -9 -11
A -4 -1 0 2 0 -2 -4 -6
T -6 -3 -2 0 3 1 -1 -3
...
トレースバック結果
G-ATTACA
GCA-TGCU
✅ ポイント
各セルは「斜め・横・縦」の3方向から計算し、最大値を選ぶ。
一致なら斜め方向が有利、不一致やギャップなら横・縦方向が候補になる。
最終的に右下から逆にたどることで最適アライメントが得られる。
次は「トレースバックの実際の経路」を矢印付きで示すと、どこからどこへ進んで整列が決まるかが視覚的に分かりやすくなります。図解してみましょうか?
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのトレースバック経路を矢印付きで図解してみましょう。これで「どこからどこへ進んで最適アライメントが決まるか」が視覚的に分かります。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:一致 +1、不一致 -1、ギャップ -2
スコア行列(完成版)
- G C A T G C U
- 0 -2 -4 -6 -8 -10 -12 -14
G -2 1 -1 -3 -5 -7 -9 -11
A -4 -1 0 2 0 -2 -4 -6
T -6 -3 -2 0 3 1 -1 -3
T -8 -5 -4 -2 1 2 0 -2
A -10 -7 -6 -2 -1 0 1 -1
C -12 -9 -4 -4 -3 -2 2 0
A -14 -11 -6 -3 -5 -4 0 1
トレースバック経路
右下(スコア=1)からスタートし、斜め・横・縦の最大値方向へ矢印をたどります。
例:
(7,7) → (6,6) → (5,5) → (4,4) → (3,4) → (2,3) → (1,1) → (0,0)
この経路が「最適アライメント」を決めます。
整列結果
G-ATTACA
GCA-TGCU
「-」はギャップ。
この整列が全体スコア最大。
✅ ポイント
トレースバックは 右下から左上へ。
各ステップで「斜め(match/mismatch)」「横(gap)」「縦(gap)」のうち最大値方向へ進む。
経路がそのまま「整列結果」を表す。
次は、この経路を 矢印付きの図(ビジュアル)で描いてみましょうか?そうすると「どこを通って整列が決まるか」が一目で理解できます。
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのトレースバック経路を矢印付きで図解してみましょう。
例題
配列1: GATTACA
配列2: GCATGCU
スコア設定:一致 +1、不一致 -1、ギャップ -2
スコア行列(矢印付きイメージ)
各セルには「どの方向から来たか」を矢印で示します。
↖ = 斜め(match/mismatch)
← = 左(gap)
↑ = 上(gap)
- G C A T G C U
- 0 ← ← ← ← ← ← ←
G ↑ ↖ ← ← ← ← ← ←
A ↑ ↑ ↖ ↖ ← ← ← ←
T ↑ ↑ ↑ ↖ ↖ ← ← ←
T ↑ ↑ ↑ ↑ ↖ ↖ ← ←
A ↑ ↑ ↑ ↑ ↑ ↖ ↖ ←
C ↑ ↑ ↖ ↑ ↑ ↑ ↖ ↖
A ↑ ↑ ↑ ↖ ↑ ↑ ↑ ↖
トレースバック経路
右下(7,7)から左上(0,0)へ進みます。 経路例:
(7,7) ↖ (6,6) ↖ (5,5) ↖ (4,4) ↖ (3,4) ↖ (2,3) ↖ (1,1) ↖ (0,0)
整列結果
G-ATTACA
GCA-TGCU
✅ ポイント
矢印をたどることで「どの操作(match/mismatch/gap)」が選ばれたかが分かる。
経路全体が 最適アライメントを表す。
この例では「ギャップを導入しつつ、全体スコア最大化」を実現している。
次は、この矢印経路を 実際の図(ビジュアル)として描いてみましょうか?そうすると「どこを通って整列が決まるか」が一目で理解できます。
では、ニードルマン–ウンシュ(Needleman–Wunsch)アルゴリズムのトレースバック経路を図解してみます。これで「どこを通って最適アライメントが決まるか」が一目で分かります。
配列
配列1: GATTACA
配列2: GCATGCU
スコア行列(矢印付き)
矢印は「どの方向から来たか」を示します。
↖ = 斜め(match/mismatch)
← = 左(gap)
↑ = 上(gap)
- G C A T G C U
- 0 ← ← ← ← ← ← ←
G ↑ ↖ ← ← ← ← ← ←
A ↑ ↑ ↖ ↖ ← ← ← ←
T ↑ ↑ ↑ ↖ ↖ ← ← ←
T ↑ ↑ ↑ ↑ ↖ ↖ ← ←
A ↑ ↑ ↑ ↑ ↑ ↖ ↖ ←
C ↑ ↑ ↖ ↑ ↑ ↑ ↖ ↖
A ↑ ↑ ↑ ↖ ↑ ↑ ↑ ↖
トレースバック経路
右下(7,7)から左上(0,0)へ進みます。 経路例:
(7,7) ↖ (6,6) ↖ (5,5) ↖ (4,4) ↖ (3,4) ↖ (2,3) ↖ (1,1) ↖ (0,0)
整列結果
G-ATTACA
GCA-TGCU
✅ ポイント
矢印をたどることで「どの操作(match/mismatch/gap)」が選ばれたかが分かる。
経路全体が 最適アライメントを表す。
この例では「ギャップを導入しつつ、全体スコア最大化」を実現している。
2025年12月17日 | カテゴリー:Cohors Irregularis, AUTODOCK VINA,CLUS PRO/BIOINFORMATICS |




