0

在 Mathematica 的选项SimilarityRules http://reference.wolfram.com/mathematica/ref/SimilarityRules.html for SequenceAlignment http://reference.wolfram.com/mathematica/ref/SequenceAlignment.html 是推相似矩阵的可能性 - 比如“爆炸”“BLOSUM62”“BLOSUM80”“PAM30”“PAM70”“PAM250”。如果我想使用自己的怎么办?我是否必须为每个字母组合使用 {{a_,a_}->1,{a_,b_}->-1} 等来定义它?或者是否有可能编写我自己的并将其存储为矩阵,而不是导入它?使用mathematica 矩阵定义此类对象的最快选择是什么?

任何帮助将不胜感激,

干杯,米。

4

1 回答 1

1

我对“BLOSUM”(命名的相似性规则矩阵之一)进行了 grep,以查看它的定义位置,并希望发现其实现机制。我发现它似乎是在一个名为 SimilarityScoreMatrices.mx 的文件中定义的,这是一个二进制 Mathematica 文件,大致相当于编译语言中的目标文件。我还查找了其中包含“BLOSUM”的文件,但没有找到。所有这一切都是说 Wolfram 似乎不打算扩展这些名称,因为如果他们这样做,该机制可能会在文档中发现,或者至少可以在文档中发现通过我所做的那种狩猎。

但是,您仍然可以为所欲为。如果您构建规则列表,您可以使用DumpSave[]将其写入二进制图像,并使用Get[]将它们读回。

最后一点,SimilarityRules 看起来非常像 Mathematica 的SparseArray规则。如果发现命名的相似性规则矩阵实际上只是 SparseArrays,我不会感到太惊讶。这可能是因为您在传递规则方面没有失去任何效率,因为 Mathematica 对矩阵所做的事情。它甚至可能是你可以传入一个 SpareArray,但它没有以这种方式记录,我也没有尝试过。

于 2013-07-24T02:05:32.967 回答