#!/usr/bin/perl # Randal R. Ketchem, Ph.D. 619.784.9879 (voice1) # Department of Molecular Biology, MB-9 619.784.8754 (voice2) # The Scripps Research Institute 619.784.9985 (FAX) # 10550 N. Torrey Pines Road ketchemr@scripps.edu (email) # La Jolla, CA 92037-1027 http://www.scripps.edu/~ketchemr if($#ARGV < 5 || $#ARGV > 6) { $prgName = `basename $0`; chop($prgName); die < out] EOHELP } require "getopt.pl"; &Getopt('fmt'); $csFile = $opt_f; $aNameFile = $opt_m; $type = $opt_t; open(ANAMEFILE, $aNameFile) || die("Can't open $aNameFile: $!\n"); while() { next if(/^\s*#/); next if(/^\s*$/); ($resName, $oldName, $newName) = split; $aNameMap{"$resName $oldName"} = $newName; } &ReadFelixCS if($type eq "felix"); &ReadGenxpkCS if($type eq "genxpk"); exit; while(<>) { print if(/^\s*#/); next if(/^\s*#/); next if(/^\s*$/); chomp; @words = split(' '); $print = 1; $print = 0; print "$_\n" if($print); } sub ReadFelixCS { open(CSFILE, $csFile) || die("Can't open $csFile: $!\n"); LINE: while() { next if(/^\s*#/); next if(/^\s*$/); next unless(/hncacb/ && /cnoe/ && /noehsqc/); while($nextLine = ) { next LINE unless($nextLine =~ /\d/); next if($nextLine =~ /null/); chomp $nextLine; @words = split(' ', $nextLine); ($garb, $res, $atomName) = split(/:/, $words[7]); ($resName, $resNum) = split(/_/, $res); $resName = substr($resName, 0, 3); #print "$atomName\n" unless($aNameMap{"$resName $atomName"}); $atomName = $aNameMap{"$resName $atomName"}; # die("Program failure. Duplicate found:\n$nextLine\n") # if($csHash{"$resNum $resName $atomName"}); $csHash{"$resNum $resName $atomName"} = $words[3]; #print "$resNum $resName $atomName: $words[3]\n"; } } close(CSFILE); } sub ReadGenxpkCS { open(CSFILE, $csFile) || die("Can't open $csFile: $!\n"); while() { next if(/^\s*#/); next if(/^\s*$/); ($resNum, $resName, $atomName, $cs) = split(' '); $resName = substr($resName, 0, 3); $atomName = $aNameMap{"$resName $atomName"}; # die("Program failure. Duplicate found:\n$nextLine\n") # if($csHash{"$resNum $resName $atomName"}); $csHash{"$resNum, $resName, $atomName"} = $cs; #print "$resNum $resName $atomName: $cs\n"; } close(CSFILE); }