SequenceAlignment

SequenceAlignment[s1,s2]

找出字符串、列表或生物分子序列 s1s2 中最佳的元素对齐序列,产生一个连续匹配和相异序列的列表.

更多信息和选项

  • SequenceAlignment[s1,s2] 给出形式为 {seg1,seg2,} 的列表,其中每个 segi 是单个字符串或列表元素 u 的序列,表示一个匹配的片段,或一对 {u1,u2},表示 si 之间不同的片段.
  • 可以给出下列选项:
  • GapPenalty 0每次排列间隙的其它代价
    IgnoreCase False是否忽略字符串中的大小写
    MergeDifferences True是否组合相邻差异
    Method "Global"使用的对齐排列算法
    SimilarityRules Automatic元素间相似的规则
  • SequenceAlignment 尝试找出一个对齐方式,使总的相似性积分最大.
  • 默认情况下,SequenceAlignment 会找出整个字符串或列表 s1s2 的全局 NeedlemanWunsch 对齐.
  • 在选项设置 Method->"Local" 下,会找出局部的 SmithWaterman 对齐.
  • 对于足够相似的字符串或列表,局部或全局对齐方法给出相同的结果.
  • SequenceAlignment 还支持 "AlignByLongestCommonSequence""AlignByLongestSubsequences" 方法,前提是 GapPenaltyMergeDifferencesSimilarityRules 都被设为各自的默认值.
  • "Global""Local" 方法都最大化相似性分数,"AlignByLongestCommonSequence" 则最大化两个序列共有的字符或列表元素的数量.
  • "AlignByLongestSubsequences" 实际上是一种分而治之的启发式近似,按最长的公共(不一定是连续的)序列进行对齐,牺牲准确性换取速度. 当序列相当接近时,对齐质量将会很好,速度比其他方法高出两个数量级.
  • 在缺省设置 SimilarityRules->Automatic 下,两个元素之间的每次完全匹配会使得总的相似性积分加 1,而每次不匹配、插入或删除则使得总的相似性积分 -1.
  • 支持不同名称的相似矩阵,就像在 SimilarityRules 中指定的一样.

范例

打开所有单元关闭所有单元

基本范例  (2)

全局对齐两个相似字符串:

全局对齐两个 BioSequence

选项  (8)

GapPenalty  (1)

默认情况下,对齐有两个间隙:

增加对间隙的惩罚会迫使达到间隙更少的对齐:

IgnoreCase  (1)

SequenceAlignment 对字符串输入区分大小写:

如果设置 IgnoreCaseTrueSequenceAlignment 在对齐之前将两个字符串转换为小写:

MergeDifferences  (1)

下面分别给出给出插入、删除和替换的情况:

Method  (3)

两个字符串的默认全局对齐:

同一字符串的本地对齐:

取两个生物序列:

"AlignByLongestCommonSequence" 方法最大化两个序列共有的字符或列表元素的数量:

获取两段文本,删除它们的变音符号并转换为小写:

对于相似的序列,"AlignByLongestSubsequences" 方法显然更快,但它给出明显更小的匹配字符集:

SimilarityRules  (2)

对齐两个简短的蛋白质序列:

对于删除 "V" 给出负分,会得出一个不同的对齐:

用针对特定类型的相似性规则(用来对齐简并字母)对齐:

如果没有简并相似性规则,就会错过简并对齐:

应用  (4)

出两个相似字符串的全局对齐:

这显示全局或局部字符串排列之间的不同:

获取人类和黑猩猩的参考 BRCA1 基因序列:

检查它们的长度是否相似:

用默认的 ("Global") 方法对齐,用 ByteCount 检查结果的大小:

"Local" 方法比较慢,尽管给出的结果更简洁:

使用共有的最长序列进行对齐:

这种情况下,"AlignByLongestSubsequences" 方法最快,给出的结果最小:

匹配片段的总长度接近,用最长的公共序列进行对齐,结果中有最大的匹配字符集:

获取《联合国世界人权宣言》的两个斯堪的纳维亚语版本:

使用默认和最长公共子序列方法进行对齐,并按字节数进行比较:

全局方法在匹配部分中包含大约 60% 的字符:

更快的启发式方法在匹配部分中则包含了大约 57% 的字符:

可能存在的问题  (1)

对齐嵌套列表时,第一级列表可以是输入列表的公共元素:

或者第一级列表可能表示两个输入列表之间的差异:

由于两个输出相同,因此输出不能用于消除两种情况的歧义:

互动范例  (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 年

BibTeX

@misc{reference.wolfram_2024_sequencealignment, author="Wolfram Research", title="{SequenceAlignment}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/SequenceAlignment.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_sequencealignment, organization={Wolfram Research}, title={SequenceAlignment}, year={2024}, url={https://reference.wolfram.com/language/ref/SequenceAlignment.html}, note=[Accessed: 17-November-2024 ]}