Сохранить вывод из объекта биопиона в файл?
Здесь у меня есть код, написанный для извлечения "locus_tag" из гена, используя "id". Как я могу сохранить выходные данные из этого в файл в формате с разделенными вкладками???? код принят и изменен https://www.biostars.org/p/110284/
from Bio import SeqIO
foo = open("geneid.txt")
lines = foo.read().splitlines()
genbank_file = open("example.gbk")
for record in SeqIO.parse(genbank_file, "genbank"):
for f in record.features:
if f.type == "CDS" and "protein_id" in f.qualifiers:
protein_id = f.qualifiers["protein_id"][0]
if protein_id in lines:
print f.qualifiers["protein_id"][0],f.qualifiers["locus_tag"][0]
1 ответ
Попробуйте добавить что-то вроде этого - но вам нужно убедиться, что отступы верны с кодом, который вы уже написали.
with open(your_outputFileName, 'w') as outputFile:
string = '\t'.join([f.qualifiers['protein_id'][0],f.qualifiers['locus_tag'][0]])
outputFile.write(string + '\n')
Вам также следует рассмотреть возможность открытия исходного файла с помощью "с". Это автоматически закроет файл, когда вы закончите с ним - в противном случае - обязательно закройте файл (например, foo.close()).
for record in SeqIO.parse(genbank_file, 'genbank'):
for f in record.features:
if f.type == 'CDS' and 'protein_id' in f.qualifiers:
protein_id = f.qualifiers['protein_id'][0]
if protein_id in lines:
print f.qualifiers['protein_id'][0],f.qualifiers['locus_tag'][0]
with open('your_outputFileName', 'w') as outputFile:
string = '\t'.join([f.qualifiers['protein_id'][0],f.qualifiers['locus_tag'][0]]) + '\n'
outputFile.write(string)