-Fasta.open(file_fasta, mode="w") do |fasta_io|
- bp.each_record do |record|
- fasta_io.puts record
- end
-end
-
-unless File.size(file_fasta) == 0
- output = File.join(options[:directory], "IDBA")
-
- commands = []
- commands << "nice -n 19"
- commands << "idba"
- commands << "--read #{file_fasta}"
- commands << "--output #{output}"
- commands << "--scaffold" if options[:scaffold]
- commands << "--mink #{options[:kmer_min]}"
- commands << "--maxk #{options[:kmer_max]}"
- commands << "--minCount #{options[:count_min]}"
- commands << "--cover #{options[:cover]}"
- commands << "--minPairs #{options[:pairs_min]}"
- commands << "--prefixLength #{options[:prefix_len]}"
- commands << "> /dev/null 2>&1" unless options[:verbose]
-
- command = commands.join(" ")
-
- begin
- system(command)
- raise "Command failed: #{command}" unless $?.success?
- rescue
- $stderr.puts "Command failed: #{command}"
- end
-
- file_contig = File.join(options[:directory], "IDBA") + "-contig.fa"
-
- Fasta.open(file_contig, mode="r") do |fasta_io|
- fasta_io.each do |entry|
- bp.puts entry.to_bp
- end
- end
+Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
+ Fasta.open(file_fasta, mode="w") do |fasta_io|
+ input.each_record do |record|
+ fasta_io.puts record
+ end
+ end
+
+ unless File.size(file_fasta) == 0
+ prefix = File.join(options[:directory], "IDBA")
+
+ commands = []
+ commands << "nice -n 19"
+ commands << "idba"
+ commands << "--read #{file_fasta}"
+ commands << "--output #{prefix}"
+ commands << "--scaffold" if options[:scaffold]
+ commands << "--mink #{options[:kmer_min]}"
+ commands << "--maxk #{options[:kmer_max]}"
+ commands << "--minCount #{options[:count_min]}"
+ commands << "--cover #{options[:cover]}"
+ commands << "--minPairs #{options[:pairs_min]}"
+ commands << "--prefixLength #{options[:prefix_len]}"
+ commands << "> /dev/null 2>&1" unless options[:verbose]
+
+ command = commands.join(" ")
+
+ begin
+ system(command)
+ raise "Command failed: #{command}" unless $?.success?
+ rescue
+ $stderr.puts "Command failed: #{command}"
+ end
+
+ file_contig = File.join(options[:directory], "IDBA") + "-contig.fa"
+
+ Fasta.open(file_contig, mode="r") do |fasta_io|
+ fasta_io.each do |entry|
+ output.puts entry.to_bp
+ end
+ end
+ end