У меня есть рабочий код, который выполняет BLAST на сервере ncbi, а затем возвращает последовательности в формате xml. Он работает, но я хочу избежать создания новых файлов и распечатать результаты BLAST непосредственно на терминале. Это хорошее решение для этого? Я вставляю ниже мой код, который работает, но он создает новый файл.Взрыв без создания файла с использованием biopython
result_handle = NCBIWWW.qblast(
"blastx",
"nr",
sequences,
entrez_query = organism)
save_file = open("BLAST.xml", "w")
save_file.write(result_handle.read())
save_file.close()
result_handle.close()
result = open("BLAST.xml", "r")
records = NCBIXML.parse(result)
for i, record in enumerate(records):
if record.alignments == []:
print ("There is no BLAST result")
else:
for align in record.alignments:
print (align.hit_id)
break
Я хотел сделать что-то вроде этого:
result = result_handle.read()
record = NCBIXML.parse(result)
for i, record in enumerate(record):
Но это не работает.
Спасибо заранее!
* «не работает» * не является допустимым оператором проблемы. Пожалуйста, отредактируйте свой вопрос и объясните, что происходит, включая ** полный текст ** любых ошибок или трассировок. Кроме того, убедитесь, что ваш образец кода является [mcve], который может быть запущен кем угодно, и не зависит от ранее определенных переменных, таких как 'последовательностей' или' организм'. Также должны быть включены ваши заявления об импорте. – MattDMo