SequenceAlignment
SequenceAlignment[s1,s2]
文字列,リストあるいは生体分子配列 s1と s2中の一連の要素の選択的なアライメントを求め,連続して一致する文字列と異なる文字列のリストを返す.
詳細とオプション
- SequenceAlignment[s1,s2]は{seg1,seg2,…}の形式のリストを返す.ただし,segiはマッチするセグメントを表す単一の文字列かリスト要素の連続 u,si間で異なるセグメントを表すペアの{u1,u2}である.
- 次は,使用可能なオプションである.
-
GapPenalty 0 各アラインメントギャップについての追加コスト IgnoreCase False 文字列中の大文字小文字の違いを無視するかどうか MergeDifferences True 隣接する差分を結合するかどうか Method "Global" 使用するアラインメントアルゴリズム SimilarityRules Automatic 要素間の類似度についての規則 - SequenceAlignmentは,全体的な類似度スコアを最大にするようなアラインメントを求めようとする.
- SequenceAlignmentは,デフォルトで,完全な文字列またはリスト s1とリスト s2の大域的Needleman–Wunsch 配列を求める.
- オプション設定をMethod->"Local"とすると,局所的Smith–Waterman配列が求まる.
- 十分によく似ている文字列またはリストの場合,局所的配列法と大域的配列法は同じ結果を返す.
- SequenceAlignmentは,GapPenalty,MergeDifferences,SimilarityRulesがすべてそれぞれのデフォルトに設定されていることを条件に,"AlignByLongestCommonSequence"法と"AlignByLongestSubsequences"法もサポートする.
- "Global"法と"Local"法はどちらも類似度スコアを最大にするのに対し,"AlignByLongestCommonSequence"は両方の文字列に共通の文字数またはリスト要素の数を最大にする.
- "AlignByLongestSubsequences"は,事実上,分離統括ヒューリスティック近似で(必ずしも隣接ではない)最長の共通文字列を並べるもので,高速化するために確実さを犠牲にする.文字列がかなり近い場合はアラインメントの質がよくなり,速度も他の方法に比べて最大2桁速くなる.
- デフォルト設定のSimilarityRules->Automaticでは,2つの要素間の各マッチは全体的な類似度スコアを1大きくし,ミスマッチ,挿入,削除はそれぞれスコアを1小さくする.
- SimilarityRulesのノートで指摘されているように,さまざまな名前付き類似行列がサポートされている.
例題
すべて開くすべて閉じる例 (2)
オプション (8)
IgnoreCase (1)
SequenceAlignmentは,文字列の大文字小文字の違いを考慮する:
IgnoreCaseTrueとすると,SequenceAlignmentはアラインメントの前に両方の文字列の文字を小文字に変換する:
Method (3)
アプリケーション (4)
これは,大域的文字列アライメントと局所的文字列アライメントを示している:
デフォルトの"Global"法を使って両者を並べ,ByteCountを使って結果の大きさを確認する:
この場合は"AlignByLongestSubsequences"法が最も速く,最小の結果を与える:
一致する部分の合計の長さは近く,最も長い共通配列を使用したアラインメントでは最大の一致部分がある:
考えられる問題 (1)
おもしろい例題 (1)
Diffを使って違いをグラフィカルに見る:
テキスト
Wolfram Research (2008), SequenceAlignment, Wolfram言語関数, https://reference.wolfram.com/language/ref/SequenceAlignment.html (2024年に更新).
CMS
Wolfram Language. 2008. "SequenceAlignment." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/SequenceAlignment.html.
APA
Wolfram Language. (2008). SequenceAlignment. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SequenceAlignment.html