strand = '+'
while (sum / self.seq.length) < max_cov
- if self.seq.size - size == 0
- start = 0
- else
- start = rand(self.seq.size - size)
- end
-
- stop = start + size - 1
- seq_name = self.seq_name + "[#{start + 1}-#{stop + 1}:#{strand}]"
- seq = self.seq[start .. stop]
- entry = Seq.new(seq_name, seq, 'dna')
-
- entry.revcomp if strand == '-'
+ entry = get_random_seq(size, strand)
if block_given?
yield entry
entries
end
+
+ private
+
+ # Method that picks a random subsequence of a given size from a sequence.
+ # The position of the subsequence is appended to the sequence name along
+ # with the strand. The sequence is reverse complemented in case of minus
+ # strand.
+ def get_random_seq(size, strand)
+ if self.seq.size - size == 0
+ start = 0
+ else
+ start = rand(self.seq.size - size)
+ end
+
+ stop = start + size - 1
+ seq_name = self.seq_name + "[#{start + 1}-#{stop + 1}:#{strand}]"
+ seq = self.seq[start .. stop]
+ entry = Seq.new(seq_name, seq, 'dna')
+
+ entry.revcomp if strand == '-'
+
+ entry
+ end
end
casts = []