#!/usr/bin/perl -w

use strict;
use Getopt::Std;

my $list_file = "/home/bates/pka/drugs/phenols/listp";

my $line; my $li; # list item
my $nl; # number of line
my $charge_file;
my $pka_file;
my $pka;
my $H_charge; my $C1_charge; my $O_charge;
my $temp;
my @data;
our $opt_c;

getopt("c:");
$opt_c = "m" if($opt_c eq "");

open(LIST,$list_file);

while($li=<LIST>){
    chomp($li);
    
    #print $line."\n";
    
    $charge_file = $li.".".$opt_c."chrg";
    $pka_file = "/home/bates/pka/drugs/phenols/".$li.".pka";
    
    
    @data = split(";", qx%~/bin/phenols ../$li.sdf%);
    
    $data[2] = substr $data[2], 0, -1;

    open(PKA,$pka_file);
    chomp($pka=<PKA>);
    close(PKA);
    
    open(CHARGE,$charge_file);
    $nl=0;
    while($line=<CHARGE>){
	if($nl>1 and $line =~ /^\s*([0-9]+)\s*([a-zA-Z]{1,2})\s*([-]?[0-9]+[.][0-9]+)\s*$/){
	    if( ($nl-1) == $data[0]){ $H_charge =  $3; }
	    elsif( ($nl-1) == $data[1]){ $O_charge =  $3; }
	    elsif( ($nl-1) == $data[2]){ $C1_charge =  $3; }
	}
	$nl++;
    }
    close(CHARGE);
    
    print $li.";".$pka.";".$data[0].";".$H_charge.";".$data[1].";".$O_charge.";".$data[2].";".$C1_charge."\n";
}

close(LIST);
