From: martinahansen Date: Wed, 25 Sep 2013 19:50:03 +0000 (+0000) Subject: added gzip/bzip2 output option to write_fastq_files X-Git-Url: https://git.donarmstrong.com/?p=biopieces.git;a=commitdiff_plain;h=1c73534484e1f164e5025e1f6949e0d9cbfb0935 added gzip/bzip2 output option to write_fastq_files git-svn-id: http://biopieces.googlecode.com/svn/trunk@2214 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/bp_bin/write_fastq_files b/bp_bin/write_fastq_files index 0b50842..5e36a38 100755 --- a/bp_bin/write_fastq_files +++ b/bp_bin/write_fastq_files @@ -35,14 +35,16 @@ require 'pp' allowed_enc = 'base_33,base_64' 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=>'encoding', :short=>'e', :type=>'string', :mandatory=>false, :default=>'base_33', :allowed=>allowed_enc, :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: 'no_stream', short: 'x', type: 'flag', mandatory: false, default: nil, allowed: nil, disallowed: nil} +casts << {long: 'compress', short: 'Z', type: 'string', mandatory: false, default: nil, allowed: "gzip,bzip,bzip2", disallowed: nil} +casts << {long: 'encoding', short: 'e', type: 'string', mandatory: false, default: 'base_33', allowed: allowed_enc, disallowed: nil} options = Biopieces.options_parse(ARGV, casts) encoding = options[:encoding].to_sym +compress = options[:compress] ? options[:compress].to_sym : nil key = options[:key].to_sym @@ -58,7 +60,9 @@ Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| fastq_io = fh_hash[record[key].to_sym] else fastq_file = File.join(options[:dir], record[key] + ".fastq") - fastq_io = Fastq.open(fastq_file, "w") + fastq_file << ".gz" if compress == :gzip + fastq_file << ".bz2" if compress == :bzip or compress == :bzip2 + fastq_io = Fastq.open(fastq_file, "w", compress: compress) fh_hash[record[key].to_sym] = fastq_io end diff --git a/bp_test/test/test_write_fastq_files b/bp_test/test/test_write_fastq_files index 89442b6..7babe73 100755 --- a/bp_test/test/test_write_fastq_files +++ b/bp_test/test/test_write_fastq_files @@ -3,25 +3,33 @@ source "$BP_DIR/bp_test/lib/test.sh" mkdir $tmp_dir - run "$bp -I $in -d $tmp_dir -k SEQ_NAME -x" assert_no_diff_dir $tmp_dir $out.1 clean - rm -rf $tmp_dir mkdir $tmp_dir - run "$bp -I $in -e base_33 -d $tmp_dir -k SEQ_NAME -x" assert_no_diff_dir $tmp_dir $out.1 clean - rm -rf $tmp_dir mkdir $tmp_dir - run "$bp -I $in -e base_64 -d $tmp_dir -k SEQ_NAME -x" assert_no_diff_dir $tmp_dir $out.2 clean +rm -rf $tmp_dir + +mkdir $tmp_dir +run "$bp -I $in -e base_64 -d $tmp_dir -k SEQ_NAME -Z gzip -x" +gunzip $tmp_dir/*.gz +assert_no_diff_dir $tmp_dir $out.2 +clean +rm -rf $tmp_dir +mkdir $tmp_dir +run "$bp -I $in -e base_64 -d $tmp_dir -k SEQ_NAME -Z bzip2 -x" +bunzip2 $tmp_dir/*.bz2 +assert_no_diff_dir $tmp_dir $out.2 +clean rm -rf $tmp_dir