hmmer下載與安裝
對於Mac OS/X, Linux, UNIX系統,用原始碼編譯安裝:
% wget ftp://selab.janelia.org/pub/software/hmmer3/3.0/hmmer-3.0.tar.gz % tar zxf hmmer-3.0.tar.gz % cd hmmer-3.0 % ./configure % make % make check
windows系統,直接下載二進位壓縮包,解壓縮就可以使用。
hmmer包含的程式
phmmer: 與Blastp類似,使用一個蛋白質序列搜尋蛋白質序列庫;
>phmmer tutorial/HBB HUMAN uniprot sprot.fa
jackhmmer: 與psiBlast類似,蛋白質序列迭代搜尋蛋白質序列庫;
>jackhmmer tutorial/HBB HUMAN uniprot sprot.fa
hmmbuild: 用多重比對序列建構HMM模型;
hmmsearch: 使用HMM模型搜尋序列庫;
hmmscan: 使用序列搜尋HMM函式庫;
hmmalign: 使用HMM為線索,建構多重比對序列;
>hmmalign globins4.hmm tutorial/globins45.fa
hmmconvert: 轉換HMM格式
hmmemit: 從HMM模型中,得到一個模式序列;
hmmfetch: 透過名字或接受號從HMM庫取回一個HMM模型;
hmmpress:格式化HMM資料庫,以便於hmmscan搜尋使用;
hmmstat:顯示HMM資料庫的統計資料;
使用HMM模型搜尋序列資料庫
使用hmmbuild建構HMM模型,輸入為Stockholm格式或FASTA格式的多重比對序列檔(如:tutorial/globins4.sto),指令如下:
>hmmbuild globins4.hmm tutorial/globins4.sto
globins4.hmm為輸出的HMM模型
使用hmmsearch搜尋蛋白質序列資料庫,蛋白質序列資料庫為FASTA格式,指令如下:
>hmmsearch globins4.hmm uniprot sprot.fasta >globins4.out
globins4.out為輸出的結果文件,如下:
*範例使用官方教學中的範例
使用蛋白質序列搜尋HMM資料庫
建立HMM資料庫,HMM資料庫是包含多個HMM模型的文件,可以從Pfam、SMART、TIGRFams下載,也可以自己由多重比對序列集中構建,如:
>hmmbuild globins4.hmm tutorial/globins4.sto
>hmmbuild fn3.hmm tutorial/fn3.sto
>hmmbuild Pkinase.hmm tutorial/Pkinase.sto
>cat globins4.hmm fn3.hmm Pkinase.hmm >minifam
#使用hmmpress格式化資料庫,包括壓縮以及建立索引,指令如下:
>hmmpress minifam
這個步驟可以很快的執行完成,輸出的內容如下:
Working… done.
Pressed and indexed 3 HMMs (3 names and 2 accessions).
Models pressed into binary file: minifam.h3m
SSI index for binary model file: minifam.h3i
Profiles (MSV part) pressed into: minifam.h3f
Profiles (remainder) pressed into: minifam.h3p
使用hmmscan搜尋HMM資料庫,指令如下:
>hmmscan minifam tutorial/7LESS_DROME
這問題我也遇到了,網路找半天沒找到合適的方案,於是自己寫了一個,程式碼如下
import glob # 都是標準函式庫的東西
import os
# 把你想建造hmm的fasta檔案(比對好的)和本程式放在同一個資料夾裡,然後執行本程式直接跑hmmbuild
os.chdir(os.path.dirname(__file__))
fs = glob.glob('*.fasta') # 取得每個fasta文件,如果你的fasta檔案裡有不是.fasta後綴名的,可以改這裡,或直接改成'*.fa*'
for f in fs:
hmm = os.path.splitext(f)[0] '.hmm'
stockholm = os.path.splitext(f)[0] '.sto'
with open(f, 'r') as fhandle: # 這個是讀fasta檔案用的,把所有fasta檔案都存到列表裡
fastas = ['>' tmp.replace('\n', '\r', 1).replace('\n', '').replace('\r', '\n') for tmp in tuple(filter(None, (fhandle.read().split('>'))))]
for i in range(len(fastas)):
fastas[i] = fastas[i].split('\n')
fastas[i][0] = fastas[i][0].split()[0][1:10]
tmp = []
for j in range(len(fastas[i][1]) // 80 1):
tmp.append(fastas[i][1][80 * j : 80 * j 80])
fastas[i][1] = tmp
with open(stockholm, 'w') as out: # 這裡在寫sto檔案
out.write('# STOCKHOLM 1.0\n\n')
for j in range(len(fastas[0][1]) - 1):
for i in range(len(fastas)):
out.write('% -12s%s\n' % (fastas[i][0], fastas[i][1][j]))
out.write('\n')
for i in range(len(fastas)):
out.write('% -12s%s\n' % (fastas[i][0], fastas[i][1][-1]))
out.write('//')
os.system('hmmbuild --amino %s %s' % (hmm, stockholm)) # 這裡在跑hmmbuild,你可以自行修改裡面的參數
1,從現有的生物資訊工具開始,要熟悉如何利用先用的軟體、網路伺服器、資料庫等等,為生物研究服務,不要做重複工作,能用現成的就不自己開發。
2,熟悉命令列的作業系統,DOS,Linux,可以寫簡單的shell;進而安裝命令列層級的程序,跑一些常規的流程。要學習如何尋找和安裝軟體,這是最重要且最基本的技能。其實很多問題,如果找到合適的軟體包,都是迎刃而解的。
3,熟悉一種簡單的腳本語言,個人推薦用python,具體原因可以見我的貼文。在沒有現成工具時,或需要資料格式轉換時,小的腳本是非常有用的。一般的應用程式不需要自己寫太多的程式碼,要相信我們通常遇到的問題,別的高手可能早就遇到了,所以網路上有大量的工具包。至於更多的程式語言,一門精則門門通,R,perl等都是類似的。
4,熟悉簡單的演算法和資料結構的知識,這樣就可以理解許多程式的內在機制,進而知道它們的優點和缺點,對自己寫程式也有幫助。有精力的話,進而學習統計、機器學習等。 。
5,在自己的生物領域內擴展,調查,分析,開發。
以上是能否在Windows系統上安裝HMMER軟體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!