在基因家族分析中,hmmsearch用来在很多候选序列中寻找具有某种基因家族结构域的蛋白。在寻找时,需要提供基因家族对应的隐马模型。前段时间给大家介绍了pfam数据库更新后hmm文件不能使用的问题,有粉丝给出了如下解决方案,下载的文件是压缩格式,将文件添加.gz后缀后,解压即可。hmmsearch之前介绍过,今天主要给大家介绍输出结果。
part1. 参数说明
# hmmsearch :: search profile(s) against a sequence database
# HMMER 3.0 (March 2010); http://hmmer.org/
# Copyright (C) 2010 Howard Hughes Medical Institute.
# Freely distributed under the GNU General Public License (GPLv3).
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# query HMM file: query.hmm
# target sequence database: target.fasta
# sequence reporting threshold: E-value <= 1e-05
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
这里面主要是说明用了哪个模型、输入序列以及设置的参数阈值,这里只设置了evalue一个参数,E-value <= 1e-05。
part2. 筛选结果
Query: target.test.aln [M=583]
Scores for complete sequences (score includes all domains):
--- full sequence --- --- best 1 domain --- -#dom-
E-value score bias E-value score bias exp N Sequence Description
------- ------ ----- ------- ------ ----- ---- -- -------- -----------
6.5e-165 551.5 0.1 8.6e-165 551.1 0.0 1.0 1 test.query01G2293 gene=test.query01G2293
1.8e-162 543.5 0.0 2.3e-162 543.1 0.0 1.1 1 test.query05G2589 gene=test.query05G2589
6.8e-162 541.6 0.0 9.1e-162 541.2 0.0 1.1 1 test.query03G0799 gene=test.query03G0799
4.1e-159 532.4 0.0 5.4e-159 532.0 0.0 1.0 1 test.query07G1076 gene=test.query07G1076
8.6e-158 528.0 0.0 1.1e-157 527.7 0.0 1.1 1 test.query07G1966 gene=test.query07G1966
使用hmmsearch筛选的时候目的很明确,就是确定哪些序列中包含目标结构域,这个统计表很直观。统计结果中会统计全部序列和结构域比对的结果,每个都有对应的E-value、score和bias三个统计结果,最后是拥有该结构域的候选序列。
part3. 比对结果
这部分首先是输出每条序列中筛选获得的所有结构域比对统计结果,之后给出每个结构域与query序列详细的序列比对结果。
- 统计结果
>> test.query01G2293 gene=test.query01G2293
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
1 ! 10.7 0.0 0.00082 0.4 212 263 .. 9 61 .. 2 75 .. 0.88
2 ! 41.6 0.1 3.5e-13 1.7e-10 310 473 .. 97 261 .. 90 266 .. 0.84
3 ! 21.4 0.0 4.6e-07 0.00022 507 582 .. 286 361 .. 282 364 .. 0.90
上面的结果显示test.query01G2293序列中存在3个结构域。
第一列的!表示该结构域全部或者部分存在于比对全序列及结构中,如果不存在,表示为?。
对于c-Evalue和i-Evalue,c表示conditional,计算时假定全序列都是同源序列进行比对,i表示independent E-value,无前面的假设。part2比对结果中的E-value为i-Evalue。
后面几列是比对区间,hmm为模型文件中的比对区间,ali为输入序列中的比对区间,env为输入序列中结构域的区间。
acc为准确度
- 比对结果
之前没有注意过这个结果,发现这里面的东西还挺多,详细说一下。
Alignments for each domain:
== domain 1 score: 10.7 bits; conditional E-value: 0.00082
target.test.aln 212 lrelLvecaeavsednlelaqellarlselsSpegn.pseRlaayfaeaLear 263
+lL++ca+a++ ++l+ a ll + l+ + + Rl++yfa+aL r
test.query01G2293 9 ALRLLLSCAKAIEDGDLKSADALLHIILVLADERPYlYESRLVKYFADALVRR 61
5689***********************9999988887889**********987 PP
== domain 2 score: 41.6 bits; conditional E-value: 3.5e-13
target.test.aln 310 ilealenedrvHiiDfdisqGlQwpsLlqeLasrsnkspslriTgigepesgvrseeglretgdrLaqfaeelnvpfe..f 388
i +al ++ r+H iDf i + + s l++L + s+ + +r+ i +p + + e ++ + L++ a +lnv++e
test.query01G2293 97 IDDALMGNRRLHLIDFSIPYENFEGSVLRTLPTFSGDPLPVRVSYILPPFLK-KYVESFSQM-EFLTKDAMNLNVKLEaeL 175
558999999**************************************99998.445555544.679999999998886115 PP
target.test.aln 389 navvs.kledirlesLkv...kegEtvaVnlvfqlhklldesVtesardelLrlikslnPkvvvlaeqeantndasFltrf 465
++v l +++ +L++ +e+E v+V f+l kll ++ +a+++ L ++k++nP +v++ + n+ + Flt +
test.query01G2293 176 KVVYAnSLAEVDEYKLDFkrrREDEMVVVYYKFKLDKLLTDG---KAMERELVRLKEINPTIVIMLDFYSNHTHSNFLTCL 253
56666677778888887633369*****************96...5555556679************************** PP
target.test.aln 466 iealeyYs 473
++ +yYs
test.query01G2293 254 EHSFQYYS 261
*******9 PP
==后面的内容为每个结构域的统计结果,下方是序列的比对结果。
第一行为数据库中的序列,.表示在输入序列中存在插入,大写的氨基酸表示该位置高度保守(emission probability比较高,隐马模型中术语,具体原理及算法有兴趣的可以查阅相关资料)。第三行为输入的待测序列,-表示相对于数据库序列,输入序列中存在缺失。
最后一行为后验概率值,区间从0-9,0表示0-5%,1表示5-15%,以此类推,*表示95-100%。
两条序列中间为一致性序列(consensus sequence),字母的大小写与数据库中序列保持一致,+表示保守型置换(conservative substitution)。这里并不是说一对相同的氨基酸只要出现就被定义为保守置换(示例如下)。
17 sllsssrk.........................llsdalaaqakeksl.....................vqhP......lr 45
+ +s++ + +++d+la+qa+eksl v+ P +
79 DTFSPTDDtdvsdtvlkyisqvlleeemeekpcMFHDSLALQAAEKSLyevlgesypprdqapvcvdpsVESPdncsfgTS 159
556666666666666666666666677778888********************8888885555544444444476666633 PP
第二位和倒数第二位都是l-->T,第二个为保守性置换。这是因为在计算时,只有该位点emission probability大于背景频率才会定义成保守性置换。
part4. summary结果
Internal pipeline statistics summary:
-------------------------------------
Query model(s): 1 (583 nodes)
Target sequences: 40960 (16088871 residues)
Passed MSV filter: 2227 (0.0543701); expected 819.2 (0.02)
Passed bias filter: 1064 (0.0259766); expected 819.2 (0.02)
Passed Vit filter: 179 (0.00437012); expected 41.0 (0.001)
Passed Fwd filter: 90 (0.00219727); expected 0.4 (1e-05)
Initial search space (Z): 40960 [actual number of targets]
Domain search space (domZ): 84 [number of targets reported over threshold]
# CPU time: 2.95u 0.08s 00:00:03.03 Elapsed: 00:00:00.51
# Mc/sec: 18355.80
对于整个筛选过程,先后经过MSV、bias、Vit以及Fwd过滤,具体原理及算法可以查看官方文档[1]。summary中Domain search space (domZ)为最终筛选后获得的序列,有84条。