Sha256: 3ee0b7b44a9322a5314730e2ef8170c3db1870949e17975c13b8565fda804d65

Contents?: true

Size: 809 Bytes

Versions: 17

Compression:

Stored size: 809 Bytes

Contents

require 'parallel'
require 'pathname'

module Bio
  class Gadget < Thor

    namespace :bio

    desc 'fqxz', 'automatic (re)compression of *.fq(.gz|.bz2) files'
    def fqxz
      Parallel.map(Pathname.glob('*.fq{.gz,.bz2,}')) { |fqfilename|
        xzfilename = fqfilename.sub(/\.fq(\.(gz|bz2))*$/, '.fq.xz')
        if !xzfilename.exist?
          case fqfilename.extname
          when '.gz'
            decompressor = 'gunzip -c'
          when '.bz2'
            decompressor = 'bunzip2 -c'
          else
            decompressor = 'cat'
          end
          puts "compressing #{xzfilename}..."
          system "#{decompressor} #{fqfilename} | xz -z -e -c > #{xzfilename} 2> #{xzfilename}.log"
          system "xz -t #{xzfilename} >> #{xzfilename}.log 2>&1"
        end
      }
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
bio-gadget-0.4.8 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.7 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.6 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.5 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.4 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.3 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.2 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.1 lib/bio-gadget/fqxz.rb
bio-gadget-0.4.0 lib/bio-gadget/fqxz.rb
bio-gadget-0.3.1 lib/bio-gadget/fqxz.rb
bio-gadget-0.3.0 lib/bio-gadget/fqxz.rb
bio-gadget-0.2.6 lib/bio-gadget/fqxz.rb
bio-gadget-0.2.5 lib/bio-gadget/fqxz.rb
bio-gadget-0.2.4 lib/bio-gadget/fqxz.rb
bio-gadget-0.2.3 lib/bio-gadget/fqxz.rb
bio-gadget-0.2.2 lib/bio-gadget/fqxz.rb
bio-gadget-0.2.1 lib/bio-gadget/fqxz.rb