#!/usr/bin/env ruby smiles = {} lines = File.readlines(ARGV[1]) lines.shift lines.each do |line| cid,smi = line.chomp.split(",") smiles[cid] = smi end lines = File.readlines(ARGV[0]) lines.shift lines.each do |line| id,prob = line.chomp.split(",") prob.to_f < 0.5 ? pred = 0 : pred = 1 if id.match(/^\d+$/) puts [smiles[id],pred].join(",") else if smiles.values.include? id puts [id,pred].join(",") else cansmi = `echo "#{id}" | obabel -ismi - -ocan | tr -d "\t"`.chomp puts [cansmi,pred].join(",") end end end