网页版blast构建
之前做網站,要構建一個網頁版的blast,我是一臉懵逼,這東西咋做,我只會在NCBI上用啊,網上找的資料基本還都是如何使用blast我就更懵逼了,問了同學,打開了思路,biopython上有相關函數但是好慢好卡,還容易崩,我又問問了,在本地下載個blast+再寫個函數,跑就完事了,最后分析下結果,反正能比對就ok了,按著這思路,就做了如下的工作。
1.下載blast+
ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 下載對應的版本并進行安裝
2.網頁部分的構建
因為只需要blastn的功能,所以仿照blastn界面謝了一個界面
2.1 涉及到參數及設計
序列輸入? =》 -query <file_in> 輸入你要查找的序列,將上傳的序列文件名放進去,最好是絕對路徑
查詢范圍? =》 -query_loc <n-x> 需要查找的位置(start-stop) ps:start/stop輸入是數字型
查詢類型? =》 -task <string> 選擇查詢的類型,blastn下有好幾種類型"blastn","blastn-short","megablast"各有有缺
保留閾值? =》 -evalue 保留匹配的閾值,自己設定,一般默認是10
匹配長度? =》 -word_size <integer,>=4> 設置最佳匹配長度
匹配得分? =》 -reward <int,>=0> 匹配上的得分
錯配罰分? =》 -penalty <int,>=0> 錯配的罰分
open gap? =》 -gapopen<int> open gap 分數
extend gap =》 -gapextend<int> extend gap分數
篩選? ? =》 -dust<str> "yes"or"no" 篩選低復雜區域
結果輸出? =》 -outfmt 輸出結果格式
我用的是 -6 用"\t"格式分割? -7 用"\t"分割,包含注釋
輸出還有一些列格式,沒怎么用到,所以不贅述
-6 輸出一般是12列
Queryid(查詢id) Subject id(比對上的id) identity(配對一致性%) alignment length(比對上的區域長度) mismatches(錯配數)
gap open q.start(匹配上的查詢序列起點) q.end(匹配上查詢序列終點) s.start(匹配上目標序列的起點) s.end(匹配上目標序列的終點)
e-value bitscore(比對上的的得分)
3.構建自己的庫
載入自己的需要的fa數據作為庫 blastn 只要nucl庫
命令:makeblastdb.exe -in 基因組genomic.fna -parse_seqids -hash_index -dbtype nucl -out 自定義庫名
4.寫程序獲取上傳的信息
我用的是python,切換到blast+所在文件夾/bin/下
"""blastn -query %s? -db %s -out %s -task %s -evalue %d -word_size %d -reward %d -penalty %d -gapopen %d -gapextend %d -dust %s -outfmt 6 """%(inname,db,outname,task,evalue,word_size,reward,penalty,gapopen,gapextend,dust)
設置好語句,就可以跑了
5.獲取到結果,將結果循環展示到結果界面上
?
大概的構建過程就是這樣,見仁見智。。記錄一下,沒白看。。。。
轉載于:https://www.cnblogs.com/pipix/p/9929642.html
總結
以上是生活随笔為你收集整理的网页版blast构建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 列表推导式
- 下一篇: ActiveMQ 发送和接收消息