hmmscan命令中的reference_database.hmm,是否必须是本地化的蛋白质序列信息的数据库文件?如果可以不用本地化,该如何操作
时间: 2023-04-03 17:02:02 浏览: 69
可以不用本地化的蛋白质序列信息的数据库文件,可以使用远程数据库。在hmmscan命令中,使用--tblout选项指定输出文件,然后使用--domtblout选项指定输出文件,即可将结果输出到本地文件中。同时,使用--cpu选项指定使用的CPU数量,可以加快计算速度。
相关问题
import sys from hmmlearn.hmm import MultinomialHMM import numpy as np dice_num = 3 x_num = 8 dice_hmm = MultinomialHMM(n_components=3, n_trials=10) dice_hmm.startprob_ = np.ones(3) / 3.0 dice_hmm.transmat_ = np.ones((3, 3)) / 3.0 dice_hmm.emissionprob_ = np.array([[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0], [1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]]) dice_hmm.emissionprob_ /= dice_hmm.emissionprob_.sum(axis=1)[:, np.newaxis] X = np.array([[1], [6], [3], [5], [2], [7], [3], [5], [2], [4], [3], [6], [1], [5], [4]]) Z = dice_hmm.decode(X) # 问题A logprob = dice_hmm.score(X) # 问题B # 问题C x_next = np.dot(dice_hmm.transmat_, dice_hmm.emissionprob_) print("state: ", Z) print("logprob: ", logprob) print("prob of x_next: ", x_next)上面这个代码的参数哪里出错?
代码中没有明显的语法错误,但是有几个不合理的地方:
1. `n_components` 参数为 3,但是 `startprob_`、`transmat_` 和 `emissionprob_` 的维度都是 3x3,应该改为 `n_components` 为 3,`n_features` 为 8。
2. `n_trials` 参数默认为 10,但是在这里没有使用,可以将其删除。
3. `X` 变量中的观测值应该是 0~7 的整数,而不是 1~6。
修改后的代码如下:
```python
import sys
from hmmlearn.hmm import MultinomialHMM
import numpy as np
dice_num = 3
x_num = 8
dice_hmm = MultinomialHMM(n_components=3, n_features=8)
dice_hmm.startprob_ = np.ones(3) / 3.0
dice_hmm.transmat_ = np.ones((3, 3)) / 3.0
dice_hmm.emissionprob_ = np.array([[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0],
[1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0],
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]])
dice_hmm.emissionprob_ /= dice_hmm.emissionprob_.sum(axis=1)[:, np.newaxis]
X = np.array([[0], [5], [2], [4], [1], [6], [2], [4], [1], [3], [2], [5], [0], [4], [3]])
Z = dice_hmm.decode(X)
# 问题A
logprob = dice_hmm.score(X)
# 问题B
# 问题C
x_next = np.dot(dice_hmm.transmat_, dice_hmm.emissionprob_)
print("state: ", Z)
print("logprob: ", logprob)
print("prob of x_next: ", x_next)
```
其中,观测值从 1~6 改为了 0~7,以适配 `n_features` 参数为 8。
hmm_model.startprob_ = start_prob
这行代码是用来设置隐马尔可夫模型的初始状态概率分布的。start_prob 是一个一维数组,表示每个隐藏状态的初始概率。hmm_model.startprob_ 是隐马尔可夫模型的属性,用来存储初始状态概率分布。所以这行代码的作用是将 start_prob 中的概率分布赋值给 hmm_model.startprob_。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)