Sha256: f201def4ff0abf25c42f7dab0d4ba5c5029717b57dda59608947275e3d0c2450

Contents?: true

Size: 1.03 KB

Versions: 13

Compression:

Stored size: 1.03 KB

Contents

#!/usr/bin/env ruby

require 'optparse'
require 'ostruct'

require 'bio-maf'
require 'bio-genomic-interval'

options = OpenStruct.new
options.p = { :threads => 1 }
options.passes = 1

OptionParser.new do |opts|
  opts.banner = "Usage: maf_extract_ranges_count [options] <maf> <index>"
  opts.separator ""
  opts.separator "Options:"
  opts.on("-t", "--threads N", "Parser threads") do |n|
    options.p[:threads] = n.to_i
  end
  opts.on("-p", "--passes N", "Number of passes") do |n|
    options.passes = n.to_i
  end
end.parse!(ARGV)

maf_p = ARGV.shift
index_p = ARGV.shift

parser = Bio::MAF::Parser.new(maf_p, options.p)
index = Bio::MAF::KyotoIndex.open(index_p)

def parse_interval(line)
  src, r_start_s, r_end_s, _ = line.split(nil, 4)
  r_start = r_start_s.to_i
  r_end = r_end_s.to_i
  return Bio::GenomicInterval.zero_based(src, r_start, r_end)
end

intervals = []
$stdin.each_line { |line| intervals << parse_interval(line) }

options.passes.times do
  blocks = index.find(intervals, parser)
  puts "TOTAL: #{blocks.count} blocks parsed."
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
bio-maf-1.0.1-java bin/maf_extract_ranges_count
bio-maf-1.0.1 bin/maf_extract_ranges_count
bio-maf-1.0.0-java bin/maf_extract_ranges_count
bio-maf-1.0.0 bin/maf_extract_ranges_count
bio-maf-0.3.2-java bin/maf_extract_ranges_count
bio-maf-0.3.2 bin/maf_extract_ranges_count
bio-maf-0.3.1 bin/maf_extract_ranges_count
bio-maf-0.3.0-java bin/maf_extract_ranges_count
bio-maf-0.3.0 bin/maf_extract_ranges_count
bio-maf-0.2.0-java bin/maf_extract_ranges_count
bio-maf-0.2.0 bin/maf_extract_ranges_count
bio-maf-0.1.0 bin/maf_extract_ranges_count
bio-maf-0.1.0-java bin/maf_extract_ranges_count