https://github.com/jhbadger/APIS
Revision cedb1bbca42dd06094db03ac0b517a889d4b8b4c authored by Jonathan Badger on 17 August 2011, 19:32:14 UTC, committed by Jonathan Badger on 17 August 2011, 19:32:14 UTC
1 parent 67d3efe
Raw File
Tip revision: cedb1bbca42dd06094db03ac0b517a889d4b8b4c authored by Jonathan Badger on 17 August 2011, 19:32:14 UTC
remove apisRun, _input from dataset name on grid
Tip revision: cedb1bb
reannotateAPIS
#!/usr/bin/env ruby

require 'optparse'
require 'apis'
require 'ostruct'

opt = OpenStruct.new
opt.database = "phylodb"
opt.storage = "misc_apis"
opt.host = "mysql-lan-pro"
opt.all = false

ARGV.options {|opts|
  opts.banner << " [dataset... dataset...]"
  opts.on("-a", "--all", "process all datasets") {|t| opt.all = t}
  opts.on("-d ", "--database ", String, 
         "query database (default #{opt.database})") {|t| opt.database = t}
  opts.on("-s ", "--storage ", String, "storage database (default #{opt.storage})") {|t| opt.storage = t}
  opts.on("-h ", "--host ", String, "database host (default #{opt.host})") {|t| opt.host = t}
  begin
    opts.parse!
  rescue
    STDERR.puts $!.message
    STDERR.puts opts
    exit(1)
  end
  if (ARGV.size < 1 && !opt.all)
    STDERR.puts opts
    exit(1)
  end
}

if (opt.storage == "")
  STDERR.printf("A storage database must be specified\n")
  exit(1)
end

storage = MyDB.new(opt.host, opt.storage, "apis", "apis_user", opt.database)


if (opt.all)
  storage.query("select dataset from dataset").each {|dataset|
    ARGV.push(dataset[0])
  }
end

ARGV.each {|dataset|
  count = 0
  trees = storage.count("tree where dataset='#{dataset}'")
  storage.query("select seq_name, tree from tree where dataset='#{dataset}'").each {|row|
    name, tree = row
    storage.createAnnotation(NewickTree.new(tree), name, dataset)
    count += 1
    STDERR.printf("%4.2f%% done...\n", count*100.0/trees) if (count % 1000 == 0)
  }
}
back to top