У меня есть файл fasta, содержащий последовательности PapillomaViruses (целые геномы, частичные CDS, ....), и я использую biopython для извлечения целых геномов (около 7kb) из этих файлов, так вот мой код:IOError при извлечении последовательностей из файла fasta с использованием biopython
rec_dict = SeqIO.index("hpv_id_name_all.fasta","fasta")
for k in rec_dict.keys():
c=c+1
if len(rec_dict[k].seq)>7000:
handle=open(rec_dict[k].description+"_"+str(len(rec_dict[k].seq))+".fasta","w")
handle.write(">"+rec_dict[k].description+"\n"+str(rec_dict[k].seq)+"\n")
handle.close()
Я использую словарь для избежания загрузки всего в память. Переменные «с» используются, чтобы узнать, сколько итераций сделаны прежде, чем эта ошибка выскакивает:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
IOError: [Errno 2] No such file or directory: 'EU410347.1|Human papillomavirus FA75/KI88-03_7401.fasta'
когда я напечатаю значение «с», я получаю 9013, когда файл содержит 10447 последовательностей, то есть для цикл не прошел через все последовательности (счетчик выполняется до условия «if», поэтому я подсчитываю все итерации, а не только те, которые соответствуют условию). я не понимаю ошибку INPUT/OUTPUT, она должна создать файл «EU410347.1 | Файл папилломы человека FA75/KI88-03_7401.fasta» вместо проверки его существования, не так ли?
Это дубликатом вопрос на другом сайте: https://www.biostars.org/p/167918/ – peterjc
я задавал вопрос на обоих сайтах, потому что я был в спешке, и мне нужен был быстрый ответ –