X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fwrite_fasta_files;h=a0e20a50545643b2183ee2fdf229ba08ab2d68df;hb=3ef3037a8bdfca6bb16fdd4455e1c9218352ad3a;hp=36011ed411fad74d891f2f12f7108bfc02eb91a2;hpb=5a4454dbd14c55fca0c2c350975972b14949ab5b;p=biopieces.git diff --git a/bp_bin/write_fasta_files b/bp_bin/write_fasta_files index 36011ed..a0e20a5 100755 --- a/bp_bin/write_fasta_files +++ b/bp_bin/write_fasta_files @@ -33,15 +33,17 @@ require 'maasha/fasta' require 'pp' casts = [] -casts << {:long=>'key', :short=>'k', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil} -casts << {:long=>'dir', :short=>'d', :type=>'dir!', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil} -casts << {:long=>'no_stream', :short=>'x', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil} +casts << {long: 'key', short: 'k', type: 'string', mandatory: true, default: nil, allowed: nil, disallowed: nil} +casts << {long: 'dir', short: 'd', type: 'dir!', mandatory: true, default: nil, allowed: nil, disallowed: nil} +casts << {long: 'wrap', short: 'w', type: 'uint', mandatory: false, default: nil, allowed: nil, disallowed: "0"} +casts << {long: 'compress', short: 'Z', type: 'string', mandatory: false, default: nil, allowed: "gzip,bzip,bzip2", disallowed: nil} +casts << {long: 'no_stream', short: 'x', type: 'flag', mandatory: false, default: nil, allowed: nil, disallowed: nil} options = Biopieces.options_parse(ARGV, casts) -key = options[:key].to_sym - -fh_hash = {} +key = options[:key].to_sym +compress = options[:compress] ? options[:compress].to_sym : nil +fh_hash = {} Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| input.each_record do |record| @@ -52,11 +54,13 @@ Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| fasta_io = fh_hash[record[key].to_sym] else fasta_file = File.join(options[:dir], record[key] + ".fasta") - fasta_io = Fasta.open(fasta_file, "w") + fasta_file << ".gz" if compress == :gzip + fasta_file << ".bz2" if compress == :bzip or compress == :bzip2 + fasta_io = Fasta.open(fasta_file, "w", compress: compress) fh_hash[record[key].to_sym] = fasta_io end - fasta_io.puts seq.to_fasta + fasta_io.puts seq.to_fasta(options[:wrap]) end output.puts record unless options[:no_stream]