+ # Method to add two Seq objects.
+ def +(entry)
+ new_entry = Seq.new()
+ new_entry.seq = self.seq + entry.seq
+ new_entry.type = self.type if self.type == entry.type
+ new_entry.qual = self.qual + entry.qual if self.qual and entry.qual
+ new_entry
+ end
+
+ # Method to concatenate sequence entries.
+ def <<(entry)
+ raise SeqError, "sequences of different types" unless self.type == entry.type
+ raise SeqError, "qual is missing in one entry" unless self.qual.class == entry.qual.class
+
+ self.seq << entry.seq
+ self.qual << entry.qual unless entry.qual.nil?
+
+ self
+ end
+
+ # Index method for Seq objects.
+ def [](*args)
+ entry = Seq.new
+ entry.seq_name = self.seq_name
+ entry.seq = self.seq[*args]
+ entry.type = self.type
+ entry.qual = self.qual[*args] unless self.qual.nil?
+
+ entry
+ end
+
+ # Index assignment method for Seq objects.
+ def []=(*args, entry)
+ self.seq[*args] = entry.seq[*args]
+ self.qual[*args] = entry.qual[*args] unless self.qual.nil?
+
+ self
+ end
+