X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fanalyze_assembly;h=614a9e54d8e85bc00e84e2a6deab96049c0ddb5d;hb=2f0fd91b461033529a4a72e161bd133252a22eb6;hp=d6b65a6d7bd4c4fc6e514df2126234724efc1d34;hpb=7c9d00c225de4c434f1ad292b6764bae9a05b73c;p=biopieces.git diff --git a/bp_bin/analyze_assembly b/bp_bin/analyze_assembly index d6b65a6..614a9e5 100755 --- a/bp_bin/analyze_assembly +++ b/bp_bin/analyze_assembly @@ -29,37 +29,40 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -require 'biopieces' -require 'fasta' -require 'prodigal' +require 'maasha/biopieces' +require 'maasha/fasta' +require 'maasha/prodigal' require 'pp' casts = [] -casts << {:long=>'gene_cov', :short=>'g', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil} -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} +casts << {:long=>'gene_cov', :short=>'g', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil} +casts << {:long=>'procedure', :short=>'p', :type=>'string', :mandatory=>true, :default=>'single', :allowed=>'single,meta', :disallowed=>nil} +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, "w") do |fasta_output| + Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| + input.each_record do |record| + if record[: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 @@ -81,8 +84,6 @@ lengths.sort.reverse.each do |length| end end -bp.out = Stream.write(options[:data_out]) if options[:data_out] - new_record = {} new_record[:N50] = n50 new_record[:MAX] = lengths.max @@ -90,13 +91,12 @@ new_record[:MIN] = lengths.min new_record[:MEAN] = (total.to_f / lengths.size.to_f).to_i new_record[:TOTAL] = total new_record[:COUNT] = lengths.size +new_record[:GENE_COV] = gene_cov if options[:gene_cov] -if options[:gene_cov] - new_record[:GENE_COV] = gene_cov - new_record[:GENE_RATIO] = (gene_cov.to_f / (2 * total.to_f)).round(3) +Biopieces.open(nil, options[:data_out]) do |input, output| + output.puts new_record end -bp.puts new_record # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<