def _read_seqrecords(fhands, file_format=GUESS_FORMAT): 'It returns an iterator of seqrecords' seq_iters = [] for fhand in fhands: if file_format == GUESS_FORMAT or file_format is None: fmt = guess_format(fhand) else: fmt = file_format fmt = remove_multiline(fmt) if fmt in ('fasta', 'qual') or 'fastq' in fmt: title = title2ids if fmt == 'fasta': seq_iter = FastaIterator(fhand, title2ids=title) elif fmt == 'qual': seq_iter = QualPhredIterator(fhand, title2ids=title) elif fmt == 'fastq' or fmt == 'fastq-sanger': seq_iter = FastqPhredIterator(fhand, title2ids=title) elif fmt == 'fastq-solexa': seq_iter = FastqSolexaIterator(fhand, title2ids=title) elif fmt == 'fastq-illumina': seq_iter = FastqIlluminaIterator(fhand, title2ids=title) else: seq_iter = parse_into_seqrecs(fhand, fmt) seq_iters.append(seq_iter) return chain.from_iterable(seq_iters)
def _read_seqrecords(fhands): 'It returns an iterator of seqrecords' seq_iters = [] for fhand in fhands: fmt = get_format(fhand) if fmt in ('fasta', 'qual') or 'fastq' in fmt: title = title2ids if fmt == 'fasta': seq_iter = FastaIterator(fhand, title2ids=title) elif fmt == 'qual': seq_iter = QualPhredIterator(fhand, title2ids=title) elif fmt == 'fastq' or fmt == 'fastq-sanger': seq_iter = FastqPhredIterator(fhand, title2ids=title) elif fmt == 'fastq-solexa': seq_iter = FastqSolexaIterator(fhand, title2ids=title) elif fmt == 'fastq-illumina': seq_iter = FastqIlluminaIterator(fhand, title2ids=title) else: seq_iter = parse_into_seqrecs(fhand, fmt) seq_iters.append(seq_iter) return chain.from_iterable(seq_iters)
def _get_lengths(fhand): lengths = {} for seq in parse_into_seqrecs(fhand, 'fasta'): lengths[seq.id] = len(seq) return lengths