command = "scan_for_matches"
# command << " -c"
+ command << " -o 1"
command << " #{pat_file}"
command << " < #{@infile}"
command << " > #{outfile}"
end
casts = []
-casts << {:long=>'forward', :short=>'f', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}
-casts << {:long=>'reverse', :short=>'r', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}
-casts << {:long=>'max_dist', :short=>'m', :type=>'uint', :mandatory=>true, :default=>5000, :allowed=>nil, :disallowed=>"0"}
+casts << {:long=>'forward', :short=>'f', :type=>'string', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'forward_rc', :short=>'F', :type=>'string', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'reverse', :short=>'r', :type=>'string', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'reverse_rc', :short=>'R', :type=>'string', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'max_dist', :short=>'m', :type=>'uint', :mandatory=>true, :default=>5000, :allowed=>nil, :disallowed=>"0"}
options = Biopieces.options_parse(ARGV, casts)
tmpdir = Biopieces.mktmpdir
infile = File.join(tmpdir, "in.fna")
+if options[:forward_rc]
+ options[:forward] = Seq.new("test", options[:forward_rc], 'dna').revcomp.seq
+end
+
+if options[:reverse_rc]
+ options[:reverse] = Seq.new("test", options[:reverse_rc], 'dna').revcomp.seq
+end
+
+raise ArgumentError, "no adaptor specified" unless options[:forward] or options[:reverse]
Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
Fasta.open(infile, mode="w") do |ios|
input.each_record do |record|
output.puts record
- ios.puts record
+
+ if record.has_key? :SEQ
+ entry = Seq.new_bp(record)
+ ios.puts entry.to_fasta
+ end
end
end
record[:TYPE] = File.basename(outfile).sub(".fna", "").upcase
record[:SEQ_NAME].match(/(.+):\[(\d+),(\d+)\]$/)
record[:SEQ_NAME] = $1
- record[:PCR_BEG] = $2
- record[:PCR_END] = $3
+ record[:PCR_BEG] = $2.to_i
+ record[:PCR_END] = $3.to_i
if record[:PCR_BEG] > record[:PCR_END]
record[:PCR_BEG], record[:PCR_END] = record[:PCR_END], record[:PCR_BEG]