def _get_matched_locations(seq, locations, min_length): "It returns a seq iterator from a seq. To split the seq it uses the" for i, (start, end) in enumerate(locations): seq1 = seq.seq[start : end + 1] if len(seq1) < min_length: continue if seq.qual is not None: qual = seq.qual[start : end + 1] else: qual = None if seq.name is not None: name = "%s_%d" % (seq.name, i + 1) yield copy_seq_with_quality(seq, seq=seq1, qual=qual, name=name)
def _mask_sequence(sequence, segments): "It mask the given segments of the sequence" if not segments: return sequence segments = _get_all_segments(segments, len(sequence)) seq = str(sequence.seq) new_seq = "" for segment in segments: start = segment[0][0] end = segment[0][1] + 1 seq_ = seq[start:end] if segment[1]: seq_ = seq_.lower() new_seq += seq_ return copy_seq_with_quality(sequence, seq=Seq(new_seq, sequence.seq.alphabet))
def mapper(sequence): "the mapper" if not sequence: return None recoded_seq = double_encode_color_space(str(sequence.seq)) return copy_seq_with_quality(sequence, Seq(recoded_seq))