SequenceAlignment
SequenceAlignment[s1,s2]
找出字符串、列表或生物分子序列 s1 和 s2 中最佳的元素对齐序列,产生一个连续匹配和相异序列的列表.
更多信息和选项
- SequenceAlignment[s1,s2] 给出形式为 {seg1,seg2,…} 的列表,其中每个 segi 是单个字符串或列表元素 u 的序列,表示一个匹配的片段,或一对 {u1,u2},表示 si 之间不同的片段.
- 可以给出下列选项:
-
GapPenalty 0 每次排列间隙的其它代价 IgnoreCase False 是否忽略字符串中的大小写 MergeDifferences True 是否组合相邻差异 Method "Global" 使用的对齐排列算法 SimilarityRules Automatic 元素间相似的规则 - SequenceAlignment 尝试找出一个对齐方式,使总的相似性积分最大.
- 默认情况下,SequenceAlignment 会找出整个字符串或列表 s1 和 s2 的全局 Needleman–Wunsch 对齐.
- 在选项设置 Method->"Local" 下,会找出局部的 Smith–Waterman 对齐.
- 对于足够相似的字符串或列表,局部或全局对齐方法给出相同的结果.
- SequenceAlignment 还支持 "AlignByLongestCommonSequence" 和 "AlignByLongestSubsequences" 方法,前提是 GapPenalty、MergeDifferences 和 SimilarityRules 都被设为各自的默认值.
- "Global" 和 "Local" 方法都最大化相似性分数,"AlignByLongestCommonSequence" 则最大化两个序列共有的字符或列表元素的数量.
- "AlignByLongestSubsequences" 实际上是一种分而治之的启发式近似,按最长的公共(不一定是连续的)序列进行对齐,牺牲准确性换取速度. 当序列相当接近时,对齐质量将会很好,速度比其他方法高出两个数量级.
- 在缺省设置 SimilarityRules->Automatic 下,两个元素之间的每次完全匹配会使得总的相似性积分加 1,而每次不匹配、插入或删除则使得总的相似性积分 -1.
- 支持不同名称的相似矩阵,就像在 SimilarityRules 中指定的一样.
范例
打开所有单元关闭所有单元基本范例 (2)
选项 (8)
IgnoreCase (1)
SequenceAlignment 对字符串输入区分大小写:
如果设置 IgnoreCaseTrue,SequenceAlignment 在对齐之前将两个字符串转换为小写:
Method (3)
应用 (4)
用默认的 ("Global") 方法对齐,用 ByteCount 检查结果的大小:
这种情况下,"AlignByLongestSubsequences" 方法最快,给出的结果最小:
互动范例 (1)
通过 Diff 用图形查看差异:
Wolfram Research (2008),SequenceAlignment,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SequenceAlignment.html (更新于 2024 年).
文本
Wolfram Research (2008),SequenceAlignment,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SequenceAlignment.html (更新于 2024 年).
CMS
Wolfram 语言. 2008. "SequenceAlignment." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/SequenceAlignment.html.
APA
Wolfram 语言. (2008). SequenceAlignment. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SequenceAlignment.html 年