在生物序列分析中,位置特异性评分矩阵(PSSM)被广泛用于表示序列基序。我们提出了一种新的非启发式算法,称为ESAsearch,以有效地在大型数据库中查找此类矩阵的匹配。我们的方法对搜索空间进行预处理,例如一个完整的基因组或一组蛋白质序列,并构建一个存储在文件中的增强后缀数组。增强的后缀数组每个输入符号只需要9个字节,并允许在次线性预期时间内使用PSSM搜索数据库。由于ESA搜索得益于小字母,我们提出了一种对根据简化字母表重新编码的序列进行操作的变体。我们还通过开发一种方法来解决PSSM分数不可比较的问题,该方法允许有效计算给定E值或P值的PSSM矩阵相似阈值。我们的方法基于动态规划。与其他方法相比,它使用动态编程矩阵的惰性计算:它只计算那些导出所寻求的相似性阈值所必需的矩阵条目。
这个PoSSuM搜索PoSSuM软件发行版中包含的程序实现了算法Simplesearch、Lookaheadsearch、ESAsearch和Lazydistrib。用户可以在mkvtree从VMATCH包(也包含在PoSSuM软件发行版)构建的增强后缀数组中搜索PSSM,以及在Fasta、GENBANK、EMBL、,或SPROT格式。可以从命令行中选择搜索算法。
PSSM以简单的纯文本格式指定,其中一个文件可能包含多个PSSM。PSSM引用的字母表和PSSM列分配的字母字符可以在每个PSSM的基础上指定,以获得最灵活的字母表支持。所有实现的算法都支持字母表转换。PSSM可以包含整数和浮点分数。为了防止基于整数的PSSM出现舍入错误,PoSSuMsearch使用整数算法进行舍入,从而在大多数CPU架构上提高了速度。根据Watson-Crick碱基配对,通过PSSM转换实现对核苷酸序列反向链的搜索。因此,只为一条链构建增强后缀阵列就足够了。然后可以用它来搜索两条线。
截止值可以指定为p值、E值、MSS(矩阵相似性得分)或原始得分阈值。如果只需要知道得分最高的最佳匹配,那么可以要求PoSSuMsearch只报告得分最高的k个匹配,甚至不指定明确的截止值。为此,搜索算法在搜索过程中动态调整阈值。当使用p值或E值时,得分阈值由本贡献中引入的惰性动态编程算法确定,或者从存储完整的预先计算的概率分布的文件中读取。背景分布可以由用户任意指定,也可以从给定的序列数据库中确定。我们提供了一个工具PoSSuMdist,用于生成一个压缩文件,其中包含一组PSSM的完整预计算概率分布。
截止值可以指定为p值、E值、MSS(矩阵相似性得分)或原始得分阈值。如果只需要知道得分最高的最佳匹配,那么可以要求PoSSuMsearch只报告得分最高的k个匹配,甚至不指定明确的截止值。为此,搜索算法在搜索过程中动态调整阈值。当使用p值或E值时,得分阈值由本贡献中引入的惰性动态编程算法确定,或者从存储完整的预先计算的概率分布的文件中读取。背景分布可以由用户任意指定,也可以从给定的序列数据库中确定。我们提供了一个工具PoSSuMdist,用于生成一个压缩文件,其中包含一组PSSM的完整预计算概率分布。
可利用性:非商业研究机构可以免费获得PoSSuM软件包,包括实现ESA搜索算法的程序PoSSuMsearch