def _parse_csfasta_with_qual(csfasta, qual): ffh = seek_to_start(csfasta) qfh = seek_to_start(qual) for fasta, qual in izip(ffh, qfh): fasta = fasta.strip() fnew = fasta.startswith(">") qual = qual.strip() qnew = qual.startswith(">") if fnew ^ qnew: # xor raise Exception("Mismatched files: id and info not aligned") elif fnew and qnew: fid = fasta[1:] qid = qual[1:] if fid != qid: raise Exception("Mismatched files: id's do not match") # record = {'id' : fid, 'sequence' : None, 'quality' : None} record = SolidRead(fid) else: record.sequence = fasta record.quality = qual yield record ffh.close() qfh.close() raise StopIteration("Parsing finished")
def _parse_csfasta_with_qual(csfasta, qual): ffh = seek_to_start(csfasta) qfh = seek_to_start(qual) for fasta,qual in izip(ffh, qfh): fasta = fasta.strip() fnew = fasta.startswith(">") qual = qual.strip() qnew = qual.startswith(">") if fnew ^ qnew: # xor raise Exception("Mismatched files: id and info not aligned") elif fnew and qnew: fid = fasta[1:] qid = qual[1:] if fid != qid: raise Exception("Mismatched files: id's do not match") # record = {'id' : fid, 'sequence' : None, 'quality' : None} record = SolidRead(fid) else: record.sequence = fasta record.quality = qual yield record ffh.close() qfh.close() raise StopIteration("Parsing finished")
def _parse_csfasta_only(csfasta): ffh = seek_to_start(csfasta) for fasta in ffh: fasta = fasta.strip() fnew = fasta.startswith(">") if fnew: fid = fasta[1:] # record = {'id' : fid, 'sequence' : None, 'quality' : None} record = SolidRead(fid) else: record.sequence = fasta yield record ffh.close() raise StopIteration("Parsing finished")