今天復(fù)習(xí)中途順便在幫張阿姨用prokka做原核contig注釋,但是第一個contig的fa文件就出問題了髓帽!
[03:47:20] Contig ID must <= 20 chars long: B12_L1.R1.clean_(paired)_contig_1
[03:47:20] Please rename your contigs or use --centre XXX to generate clean contig names.
作為一個碼農(nóng)的基本素質(zhì)菠赚,觀看報錯,好的說是contig名字太長了郑藏。
查了半天沒搞懂--centre怎么用衡查。
算了重命名吧哭哭!
先看看張阿姨的fa文件格式:
也不算很長吧译秦,不知道搞什么峡捡。但人家說不行就不行咯。
100多個文件筑悴,寫個腳本來換吧!
先把你要縮短名字的fa文件放到一個目錄下们拙,新建一個目的目錄。
然后利用以下腳本阁吝。
import os
#from collections import OrderedDict
mylist = os.listdir("/home/lfp/bacteria/AB/ABshunde/AB_fa/allfa")#批量讀取文件名“”內(nèi)是你的輸入目錄
#al = OrderedDict()
for i in mylist:
file=open("/home/lfp/bacteria/AB/ABshunde/AB_fa/allfa/"+i,'r')
naloc = i.find(".fa")
new_file = i[:naloc] + "_new.fa"
out_file=open("/home/lfp/bacteria/AB/ABshunde/AB_fa/new_fa/"+ new_file,"w") # “”內(nèi)是你的輸出目錄
for c in file.readlines():
c = c.strip()
if c.startswith(">"):
location = c.find("ig")
contigname = ">" + i[:naloc] + c[location+2:]
print(contigname,file = out_file)
else:
print(c,file = out_file)
file.close()
out_file.close()
print(i + "finish")
輸入文件:
輸出文件:
新contig名字
再跑prokka砚婆。
成功!開心!
ps:直接利用conda安裝prokka為1.145版装盯,依賴2.8+版本blast坷虑,但conda裝的blast是2.71版的(最高!委屈臉),好吧作為一個社會主義接班人我才懶得編譯呢埂奈,直接退回了1.1版本的prokka