宏基因組之物種注釋(基于nr庫(kù))

昨天下午搗鼓了一下宏基因組物種注釋過(guò)程(基于nr庫(kù)),現(xiàn)在將整個(gè)流程記錄一下。
軟件需求:blast,diamond赛不,taxonkit(安裝自行百度)

構(gòu)建細(xì)菌子庫(kù)

blast方法可能會(huì)準(zhǔn)確點(diǎn),但是它的速度簡(jiǎn)直讓我懷疑人生罢洲,倆種軟件的方法我都說(shuō)下吧踢故,因?yàn)槲冶葘?duì)的主要是細(xì)菌文黎,我首先想到是干脆按照網(wǎng)上的方法構(gòu)建一個(gè)細(xì)菌的子庫(kù)可能速度會(huì)更快點(diǎn)~
說(shuō)干就干

參考連接:https://www.bioinfo-scrounger.com/archives/207/;
https://bioinf.shenwei.me/taxonkit/tutorial/

我最初想法是構(gòu)建一張表,第一列是taxid殿较,后面7列跟著門綱目科屬種的名稱耸峭,這樣的話我們根據(jù)比對(duì)結(jié)果中的taxid,就直接可以得到物種各層級(jí)的信息淋纲,相信這也是大多數(shù)人的想法劳闹,就像下圖這樣:


圖片.png

這里我們就可以使用taxonkit這個(gè)好輪子去方便的達(dá)成這一目的,代碼如下:

1.#輸出細(xì)菌的taxid
 taxonkit list --ids 2 --indent "" > bacteria.taxid.txt 
#33090為植物 2為細(xì)菌 2157為Archaea洽瞬;10239 為Viruses本涕;Eukaryota為2759;Fungi 4751
#有時(shí)間的話可以將這幾大類的id全都整合在一起伙窃,形成一張表
2.less bacteria.taxid.txt|taxonkit lineage |taxonkit reformat -f "{k}\t{p}\t{c}\t{o}\t{f}\t{g}\t{s}" -F |cut -f 1,3- | sed '1i\Taxid\tKingdom\tPhylum\tClass\tOrder\tFamily\tGenu\tSpecies' > Bacteria_taxid_Ano.txt

OK,現(xiàn)在已經(jīng)得到了這張表菩颖,接下來(lái)我們就要去比對(duì),得到每個(gè)基因的taxid

先來(lái)構(gòu)建細(xì)菌子庫(kù)吧

需要文件:
ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/accession2taxid/prot.accession2taxid.gz 蛋白acc號(hào)和taxid對(duì)應(yīng)文件
方法參考自爪哥文檔:https://bioinf.shenwei.me/taxonkit/tutorial/

#還是像上面那樣先得到細(xì)菌的taxid
taxonkit list --ids 2 --indent "" > bac.taxid.txt
#得到bac.taxid.acc.txt文件  
zcat prot.accession2taxid.gz |csvtk -t grep -f taxid -P bac.taxid.txt |csvtk -t cut -f accession.version >bac.taxid.acc.txt 

Option 1 :
#直接構(gòu)建(速度慢)
blastdbcmd -db /home/software/nr-2019-12-18/nr -entry_batch bac.taxid.acc.txt -out - | pigz -c > nr.$id.fa.gz

Option 2: 
#用blast配套工具(這里要注意blastdb_aliastool版本 低版本沒(méi)有seqidlist) 這步結(jié)果就只有一個(gè)pal文件
blastdb_aliastool -seqidlist bacteria.taxid.acc.txt -db /home/software/nr-2019-12-18/nr -out nr_bac -title nr_bac  

Option 3:
#采用了分割并行的策略加上爪哥自己寫的腳本为障,速度更加快晦闰,建議大家去看爪哥的源文檔,這里不再贅述.

序列比對(duì)

blastp

我們拿上面Option2得到的文件去進(jìn)行比對(duì)鳍怨,命令行如下:

blastp -query NR100pro.fasta -db /home/pub_guest/db/nr/nr_bac -out D1_nr.out -outfmt "6 qseqid qgi qacc qaccver qlen sseqid qseq sseq evalue  score length pident  staxids sscinames salltitles " -num_threads 16 -evalue 1e-5 -num_alignments 5
 #記得結(jié)果加上 staxid 得到物種taxid信息

diamond

由于索引庫(kù)不兼容呻右,我們將blastcmd抽提出來(lái)的nr庫(kù),用diamond先構(gòu)建索引庫(kù)
要想得到taxid和種名信息鞋喇,需要構(gòu)建的時(shí)候額外增加倆個(gè)參數(shù)--taxonmap和--taxonnodes
1是我們上述說(shuō)的 蛋白acc號(hào)和taxid的對(duì)應(yīng)文件prot.accession2taxid.gz
2是存儲(chǔ)有taxonomy數(shù)據(jù)庫(kù)的層級(jí)文件taxdmp.zip
注意wget的時(shí)候會(huì)出現(xiàn)連接超時(shí)情況声滥,多等幾次即可.

diamond makedb --in nr.fa -d Dimond_nr --taxonmap prot.accession2taxid.gz --taxonnodes nodes.dmp  
(#nodes.dmp文件是taxdmp.zip壓縮包內(nèi)的文件,這個(gè)地方直接跟這個(gè)文件即可,否則建庫(kù)不完整)
#比對(duì)
diamond blastp -p 8 --db Dimond_nr  -q NR100pro.fasta --outfmt 6 qseqid sseqid pident length qlen mismatch gapopen qstart qend evalue bitscore staxids stitle salltitles --max-target-seqs 5 -e 1e-5 -o NR.out

補(bǔ)充一點(diǎn)
我們可以先將有taixd也有種名信息的提取出來(lái)侦香,過(guò)濾掉沒(méi)有taxid和種名信息的基因醒串,因?yàn)槲募Y(jié)果中可能會(huì)出現(xiàn)一種情況是該基因比對(duì)結(jié)果沒(méi)有taxid,但是后面匹配到了種名信息鄙皇,這時(shí)候我們?cè)賮?lái)用taxonkit這個(gè)軟件根據(jù)種名去得到這些物種的taixid,這樣我們的結(jié)果里會(huì)多一點(diǎn)仰挣,這時(shí)候還沒(méi)有匹配到taxid的再將其過(guò)濾掉伴逸。
這里我將腳本貼出來(lái)

#!usr/bin env python
import re
import sys
#根據(jù)nr結(jié)果1,12,13列信息提取taxid,種名
input_file = sys.argv[1]
fr = open(input_file,'r')

pattern = "\[[^\]]+"
regexp = re.compile(pattern)

for line in fr:
        line = line.strip()
        gene = line.split('\t')[0]
        taxid = line.split('\t')[1]
        if '[' not in line.split('\t')[2]:
                sth = ''
        else:
                sth = regexp.findall(line.split('\t')[2])[0]
        print(f"{gene}\t{taxid}\t{sth}")
fr.close()

好了膘壶,上面兩種軟件得到結(jié)果都會(huì)有taxid信息和種名了错蝴,由于是比對(duì)的子庫(kù)文件,速度也會(huì)有所提升颓芭,我們可以拿著taxid去匹配最后那張表的信息就能匹配種水平上面幾個(gè)層級(jí)的taxonomy的信息顷锰,或者好好利用taxonkit這個(gè)好輪子也是可以得到的~~~

下面是剛創(chuàng)建個(gè)人公眾號(hào),會(huì)定時(shí)更新R亡问、linux官紫、python肛宋,組學(xué)方面的學(xué)習(xí)內(nèi)容,請(qǐng)多多支持呦~~


image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末束世,一起剝皮案震驚了整個(gè)濱河市酝陈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毁涉,老刑警劉巖沉帮,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贫堰,居然都是意外死亡穆壕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門其屏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)喇勋,“玉大人,你說(shuō)我怎么就攤上這事漫玄∏羊牵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵睦优,是天一觀的道長(zhǎng)渗常。 經(jīng)常有香客問(wèn)我,道長(zhǎng)汗盘,這世上最難降的妖魔是什么皱碘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮隐孽,結(jié)果婚禮上癌椿,老公的妹妹穿的比我還像新娘。我一直安慰自己菱阵,他們只是感情好踢俄,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著晴及,像睡著了一般都办。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上虑稼,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天琳钉,我揣著相機(jī)與錄音,去河邊找鬼蛛倦。 笑死歌懒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溯壶。 我是一名探鬼主播及皂,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼甫男,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了躲庄?” 一聲冷哼從身側(cè)響起查剖,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎噪窘,沒(méi)想到半個(gè)月后笋庄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倔监,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年直砂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浩习。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡静暂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谱秽,到底是詐尸還是另有隱情洽蛀,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布疟赊,位于F島的核電站郊供,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏近哟。R本人自食惡果不足惜驮审,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吉执。 院中可真熱鬧疯淫,春花似錦、人聲如沸戳玫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咕宿。三九已至币绩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荠列,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工载城, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肌似,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓诉瓦,卻偏偏與公主長(zhǎng)得像川队,于是被迫代替她去往敵國(guó)和親力细。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容