pos = self.length - pos # pos offset from the right end
end
- match = adaptor_find_simple(adaptor_disamb, pos) or
- adaptor_find_complex(adaptor, pos, ed_percent) or
- adaptor_partial_find_complex(adaptor, ed_percent)
-
- match
+ if match = adaptor_find_simple(adaptor_disamb, pos)
+ return match
+ elsif match = adaptor_find_complex(adaptor, pos, ed_percent)
+ return match
+ elsif match = adaptor_partial_find_complex(adaptor, ed_percent)
+ return match
+ end
end
private
def adaptor_find_complex(adaptor, pos, ed_percent)
ed_max = (adaptor.length * ed_percent * 0.01).round
- self.scan(adaptor, pos, ed_max).each do |match|
- return match
- end
+ match = self.match(adaptor, pos, ed_max)
+
+ match
end
# Method to find part of an adaptor at the right end of a sequence taking
if record.has_key? :SEQ
entry = Seq.new(record[:SEQ_NAME], record[:SEQ], "dna", record[:SCORES])
- if match = entry.adaptor_find(adaptor, adaptor_disamb, options[:pos], options[:edit_distance])
+ if match = entry.adaptor_find(adaptor, adaptor_disamb, pos, options[:edit_distance])
record[:ADAPTOR_POS] = match.pos
record[:ADAPTOR_LEN] = match.length
record[:ADAPTOR_MATCH] = match.match