#!/usr/bin/env ruby require_relative "../lib/compound" read_result = false sdf = "" feature_name = "" compound = nil features = {} table = [["ID","SMILES"]] File.readlines(ARGV[0]).each do |line| if line.match %r{\$\$\$\$} sdf << line id = sdf.split("\n").first.chomp compound = Compound.from_sdf sdf row = [id,compound.smiles] features.each do |f,v| table[0] << f unless table[0].include? f row[table[0].index(f)] = v end table << row sdf = "" features = {} elsif line.match(/^>\s+\s+<(.*)>/)[1] read_result = true else if read_result value = line.chomp features[feature_name] = value read_result = false else sdf << line end end end table.each{|row| puts row.join(",")}