casts << {:long=>'no_stream', :short=>'x', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
casts << {:long=>'data_out', :short=>'o', :type=>'file', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-bp = Biopieces.new
-
-options = bp.parse(ARGV, casts)
+options = Biopieces.options_parse(ARGV, casts)
options[:full] = true;
total = 0
lengths = []
-tmpdir = bp.mktmpdir
-infile = "#{tmpdir}/in.fna"
-outfile = "#{tmpdir}/out.prodigal"
-
-Fasta.open(infile, mode="w") do |fasta_io|
- bp.each_record do |record|
- if record.has_key? :SEQ
- total += record[:SEQ].length
- lengths << record[:SEQ].length
+tmpdir = Biopieces.mktmpdir
+infile = File.join(tmpdir, "in.fna")
+outfile = File.join(tmpdir, "out.prodigal")
+
+Fasta.open(infile, mode="w") do |fasta_output|
+ Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
+ input.each_record do |record|
+ if record.has_key? :SEQ
+ seq = Seq.new_bp(record)
+
+ total += record[:SEQ].length
+ lengths << record[:SEQ].length
+ end
+
+ output.puts record unless options[:no_stream]
+ fasta_output.puts seq.to_fasta
end
-
- bp.puts record unless options[:no_stream]
- fasta_io.puts record
end
end
end
end
-bp.out = Stream.write(options[:data_out]) if options[:data_out]
-
new_record = {}
new_record[:N50] = n50
new_record[:MAX] = lengths.max
new_record[:COUNT] = lengths.size
new_record[:GENE_COV] = gene_cov if options[:gene_cov]
-bp.puts new_record
+Biopieces.open(nil, options[:data_out]) do |input, output|
+ output.puts new_record
+end
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<