options = Biopieces.options_parse(ARGV, casts)
if options[:forward_rc]
- options[:forward] = Seq.new("test", options[:forward_rc], 'dna').revcomp.seq
+ options[:forward] = Seq.new("test", options[:forward_rc], :dna).reverse.complement.seq
end
if options[:reverse_rc]
- options[:reverse] = Seq.new("test", options[:reverse_rc], 'dna').revcomp.seq
+ options[:reverse] = Seq.new("test", options[:reverse_rc], :dna).reverse.complement.seq
end
raise ArgumentError, "no adaptor specified" unless options[:forward] or options[:reverse]
Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
input.each do |record|
- if record[:SEQ] and record[:SEQ].length > 0
+ if record[:SEQ]
entry = Seq.new_bp(record)
- if options[:forward]
+ if options[:forward] and record[:SEQ].length >= options[:forward].length
if m = entry.patmatch(options[:forward], 0, fmis, fins, fdel)
record[:ADAPTOR_POS_LEFT] = m.pos
record[:ADAPTOR_LEN_LEFT] = m.length
fdel = percent2real(len, options[:deletions])
pat = pat[1 ... pat.length]
-$stderr.puts pat
-$stderr.puts entry.seq[0 ... len]
+
if m = entry.patmatch(pat, [0, len], fmis, fins, fdel)
record[:ADAPTOR_POS_LEFT] = m.pos
record[:ADAPTOR_LEN_LEFT] = m.length
end
end
- if options[:reverse]
+ if options[:reverse] and record[:SEQ].length >= options[:reverse].length
if m = entry.patmatch(options[:reverse], 0, rmis, rins, rdel)
record[:ADAPTOR_POS_RIGHT] = m.pos
record[:ADAPTOR_LEN_RIGHT] = m.length