attr_accessor :seq_name, :seq, :type, :qual
- # Method that generates all possible oligos of a specifed length and type.
+ # Class method to instantiate a new Sequence object given
+ # a Biopiece record.
+ def self.new_bp(record)
+ seq_name = record[:SEQ_NAME]
+ seq = record[:SEQ]
+ type = record[:SEQ_TYPE]
+ qual = record[:SCORES]
+
+ self.new(seq_name, seq, type, qual)
+ end
+
+ # Class method that generates all possible oligos of a specifed length and type.
def self.generate_oligos(length, type)
raise SeqError, "Cannot generate negative oligo length: #{length}" if length <= 0
raise SeqError, "Missing seq_name" if self.seq_name.nil?
raise SeqError, "Missing seq" if self.seq.nil?
- seq_name = self.seq_name
- seq = self.seq
+ seq_name = self.seq_name.to_s
+ seq = self.seq.to_s
unless wrap.nil?
seq.gsub!(/(.{#{wrap}})/) do |match|
- match << "\n"
+ match << $/
end
seq.chomp!
end
- ">#{seq_name}\n#{seq}\n"
+ ">" + seq_name + $/ + seq + $/
+ end
+
+ # Method that given a Seq entry returns a FASTQ entry (a string).
+ def to_fastq
+ raise SeqError, "Missing seq_name" if self.seq_name.nil?
+ raise SeqError, "Missing seq" if self.seq.nil?
+ raise SeqError, "Missing qual" if self.qual.nil?
+
+ seq_name = self.seq_name.to_s
+ seq = self.seq.to_s
+ qual = self.qual.to_s
+
+ "@" + seq_name + $/ + seq + $/ + "+" + $/ + qual + $/
end
# Method that generates a unique key for a