Sha256: 82c32eadb2699cb06c7d8b7b82a1df8079efc200953a23362b205fb4599c6114

Contents?: true

Size: 1.77 KB

Versions: 3

Compression:

Stored size: 1.77 KB

Contents

#! /usr/bin/env ruby

ROOT_PATH = File.dirname(__FILE__)
$: << File.expand_path(File.join(ROOT_PATH, '..', 'lib', 'pets'))

require 'optparse'
require 'generalMethods.rb'
require 'semtools'

##############################
#METHODS
##############################

def load_paco_files(path, hpo)
	patient_profiles = {}
  counter = 0
	Dir.glob(path).each do |input_file|
		File.open(input_file).each do |line|
			next if line.include?('patient_id')
			line.chomp!
      data = line.split("\t")
      phens = data.last.split('|').map{|a| a.to_sym}
      phens = hpo.clean_profile_hard(phens)
      patient_profiles[(data.first + counter.to_s).to_sym] = phens
      counter += 1
		end
	end
  return patient_profiles
end

##############################
#OPTPARSE
##############################

options = {}
OptionParser.new do |opts|
  opts.banner = "Usage: #{__FILE__} [options]"

  options[:hpo_file] = nil
  opts.on("-b", "--hpo_file PATH", "Input HPO obo file") do |hpo_file|
    options[:hpo_file] = hpo_file
  end

  options[:input_path] = nil
  opts.on("-i", "--input_path PATH", "Input path with files to combine") do |data|
    options[:input_path] = data
  end

  options[:output_file] = 'output.txt'
  opts.on("-o", "--output_file PATH", "Output file") do |data|
    options[:output_file] = data
  end

  opts.on_tail("-h", "--help", "Show this message") do
    puts opts
    exit
  end

end.parse!

##############################
#MAIN
##############################
hpo = Ontology.new(file: options[:hpo_file], load_file: true)

patient_profiles = load_paco_files(options[:input_path], hpo)
hpo.load_profiles(patient_profiles)
onto_ic, freq_ic = hpo.get_observed_ics_by_onto_and_freq
File.open(options[:output_file], 'w') do |f|
  freq_ic.each do |term, freq|
    f.puts "#{term.to_s}\t#{freq}"
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pets-0.2.5 bin/generate_HPO_IC_table.rb
pets-0.2.4 bin/generate_HPO_IC_table.rb
pets-0.2.3 bin/generate_HPO_IC_table.rb