Source code for mgkit.io.glimmer
from mgkit.io import open_file
[docs]def parse_glimmer3(file_handle):
"""
Parses an ouput file from glimmer3 and yields the header and prediction
lines. Used to feed the :func:`mgkit.io.gff.from_glimmer3` function.
Arguments:
file_handle (str, file): file name or file handle to read from
Yields:
tuple: first element is the sequence of the predicted gene and the
second is the prediction line
"""
if isinstance(file_handle, str):
file_handle = open_file(file_handle, 'r')
curr_seq = ''
predictions = []
for line in file_handle:
line = line.strip()
if line.startswith('>'):
if len(predictions) > 0:
for prediction in predictions:
yield curr_seq, prediction
curr_seq = line[1:]
predictions = []
else:
if line != '':
predictions.append(line)
else:
if len(predictions) > 0:
for prediction in predictions:
yield curr_seq, prediction