qual = self.qual[start .. stop] unless self.qual.nil?
end
- Seq.new(self.seq_name.dup, seq, self.type, qual)
+ Seq.new(self.seq_name, seq, self.type, qual) # TODO changed self.seq_name.dup to self.seq_name -> consequence?
end
# Method that replaces a sequence with a subsequence from a given start position
# and of a given length.
def subseq!(start, length = self.length - start)
- raise SeqError, "subsequence start: #{start} < 0" if start < 0
- raise SeqError, "subsequence length: #{length} < 0" if length < 0
- raise SeqError, "subsequence start + length > Seq.length: #{start} + #{length} > #{self.length}" if start + length > self.length
-
- if length == 0
- self.seq = ""
- self.qual = "" unless self.qual.nil?
- else
- stop = start + length - 1
+ s = subseq(start, length)
- self.seq = self.seq[start .. stop]
- self.qual = self.qual[start .. stop] unless self.qual.nil?
- end
+ self.seq_name = s.seq_name
+ self.seq = s.seq
+ self.type = s.type
+ self.qual = s.qual
self
end