Sha256: 16bfb13e4ef415923fe124d0ecb1fe5c21ecf6237600200565dcb5197c9526d0
Contents?: true
Size: 1.99 KB
Versions: 2
Compression:
Stored size: 1.99 KB
Contents
#!/usr/bin/env ruby require 'benchmark' require 'bio-maf' require 'optparse' require 'ostruct' PRINTERS = { 'flat' => :FlatPrinter, 'stack' => :CallStackPrinter, 'graph' => :GraphHtmlPrinter } $options = OpenStruct.new $options.mode = :build $options.ref_only = true def build_index(maf, index) parser = Bio::MAF::Parser.new(maf, :parse_extended => false) idx = Bio::MAF::KyotoIndex.build(parser, index, $options.ref_only) idx.close end op = OptionParser.new do |opts| opts.banner = "Usage: maf_index [options] <maf> <index>" opts.separator "" opts.separator "Options:" opts.on("-a", "--all", "Index all sequences, not just reference seq") do $options.ref_only = false end Bio::MAF::handle_logging_options(opts) opts.on("--time", "print elapsed time") do $options.bench = true end opts.on("-d", "--dump", "Dump contents of given INDEX") do $options.mode = :dump end opts.on("--ruby-prof PATH", "Profile with ruby-prof") do |pspec| require 'ruby-prof' if pspec =~ /(\w+):(.+)/ $options.ruby_prof_printer = RubyProf.const_get(PRINTERS.fetch($1)) $options.ruby_prof_path = $2 else $options.ruby_prof_printer = Ruby_Prof::FlatPrinter $options.ruby_prof_path = pspec end end end op.parse!(ARGV) Bio::Log::CLI.configure('bio-maf') maf_p = ARGV.shift if $options.mode == :build index_p = ARGV.shift unless (maf_p || $options.mode == :dump) && index_p $stderr.puts op exit 1 end if $options.ruby_prof_path RubyProf.start end case $options.mode when :build if ! $options.bench build_index(maf_p, index_p) else bm_res = Benchmark.measure do build_index(maf_p, index_p) end puts bm_res end when :dump idx = Bio::MAF::KyotoIndex.open(index_p) idx.dump else raise "Unsupported mode: #{$options.mode}" end if $options.ruby_prof_path res = RubyProf.stop printer = $options.ruby_prof_printer.new(res) File.open($options.ruby_prof_path, 'w') do |f| printer.print(f) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bio-maf-1.0.0-java | bin/maf_index |
bio-maf-1.0.0 | bin/maf_index |