commands << "-j #{@infile2}"
commands << "-o #{@outfile}"
commands << "-p #{@program}"
+ commands << "-W #{options[:word_size]}" if options[:word_size]
commands << "-D 1" # tabular output
commands << "-e #{options[:e_val]}"
commands << (options[:megablast] ? "-m T" : "-m F")
def each
record = {}
- File.open(@outfile, mode="r") do |ios|
+ File.open(@outfile, 'r') do |ios|
ios.each_line do |line|
if line !~ /^#/
fields = line.chomp.split("\t")
casts << {:long=>'filter', :short=>'f', :type=>'string', :mandatory=>false, :default=>'no', :allowed=>'yes,no', :disallowed=>nil}
casts << {:long=>'megablast', :short=>'m', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
casts << {:long=>'no_gaps', :short=>'G', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'word_size', :short=>'w', :type=>'uint', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
options = Biopieces.options_parse(ARGV, casts)
infile2 = File.join(tmpdir, "in2.fna")
outfile = File.join(tmpdir, "blast.out")
-got1 = false
-got2 = false
+got1 = nil
+got2 = nil
type1 = ""
type2 = ""
if record[:SEQ_NAME] and record[:SEQ]
seq = Seq.new_bp(record)
- unless got1
- Fasta.open(infile1, mode="w") do |fasta_io|
+ if got1.nil?
+ Fasta.open(infile1, "w") do |fasta_io|
fasta_io.puts seq.to_fasta
end
got1 = true
- type1 = Seq.new(nil, record[:SEQ][0 ... 100]).type_guess
- next
- end
-
- unless got2
- Fasta.open(infile2, mode="w") do |fasta_io|
+ type1 = Seq.new(seq: record[:SEQ][0 ... 100]).type_guess
+ elsif got2.nil?
+ Fasta.open(infile2, "w") do |fasta_io|
fasta_io.puts seq.to_fasta
end
got2 = true
- type2 = Seq.new(nil, record[:SEQ][0 ... 100]).type_guess
+ type2 = Seq.new(seq: record[:SEQ][0 ... 100]).type_guess
end
- end
- end
- if got1 and got2
- blast = Blast.new(infile1, infile2, outfile)
- blast.program_set(type1, type2, options[:program])
- blast.run(options)
+ if got1 and got2
+ blast = Blast.new(infile1, infile2, outfile)
+ blast.program_set(type1, type2, options[:program])
+ blast.run(options)
- blast.each do |record|
- output.puts record
+ blast.each do |new_record|
+ output.puts new_record
+ end
+
+ got1 = nil
+ got2 = nil
+ end
end
end
+
end