網頁版blast構建

  以前作網站,要構建一個網頁版的blast,我是一臉懵逼,這東西咋作,我只會在NCBI上用啊,網上找的資料基本還都是如何使用blast我就更懵逼了,問了同窗,打開了思路,biopython上有相關函數可是好慢好卡,還容易崩,我又問問了,在本地下載個blast+再寫個函數,跑就完事了,最後分析下結果,反正能比對就ok了,按着這思路,就作了以下的工做。python

  1.下載blast+ide

   ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 下載對應的版本並進行安裝函數

  2.網頁部分的構建網站

   由於只須要blastn的功能,因此仿照blastn界面謝了一個界面spa

   2.1 涉及到參數及設計設計

    序列輸入  =》 -query <file_in> 輸入你要查找的序列,將上傳的序列文件名放進去,最好是絕對路徑string

    查詢範圍  =》 -query_loc <n-x> 須要查找的位置(start-stop) ps:start/stop輸入是數字型hash

    查詢類型  =》 -task <string> 選擇查詢的類型,blastn下有好幾種類型"blastn","blastn-short","megablast"各有有缺it

    保留閾值  =》 -evalue 保留匹配的閾值,本身設定,通常默認是10io

    匹配長度  =》 -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.獲取到結果,將結果循環展現到結果界面上

 

  大概的構建過程就是這樣,見仁見智。。記錄一下,沒白看。。。。

相關文章
相關標籤/搜索