가끔씩 Blast를 수행하고자 formatdb를 수행 할 때,
다음과 같은 에러를 접한 적이 있으리라 본다.
[formatdb] WARNING: Cannot add sequence number XXXXX XX.XXX.XXX.
because it has zero-length.
[formatdb] FATAL ERROR: Fatal error when adding sequence to BLAST database.
formatdb를 수행하려는 fasta 서열에
빈 서열을 가지고 있기 때문에 나오는 에러로
빈 서열을 제거하면 OK!
vi check.py
import glob,sys
from Bio import SeqIO
file = sys.argv[1]
ow = open(file.split('.')[0]+'.check','w')
seqs = SeqIO.parse(open(file), format='fasta')
for rec in seqs:
name = rec.description
seq = rec.seq.tostring()
if len(seq.strip()) != 0:
ow.write('>'+name+'\n')
ow.write(seq+'\n')
ow.close()
[test]$python check.py test.fasta
댓글 없음:
댓글 쓰기