#! /bin/sh # Mike Oz McGill University August 2003 # Caveat assumes first residue in sequence file is # numbered as 1, any other referencing need to alter value of i in the line with #"while (getline" command "resnuma[i] = i" e.g. as 'resnuma[i] = i+5" if [ $# != 2 ] then echo "usage: nmr2bmrb.s " exit 1 fi nawk ' BEGIN{ OFS=" " FS=" " RS = "\n" # print "#Res \t S2(exp) \t\t dS2(exp) " # file1 =ARGV[1] # ARGV[1]="" # file2 =ARGV[2] # ARGV[2]="" i=0 j=0 while (getline < ARGV[1] > 0){ i++; resnama[i] = $1;split($1,p1,":");resnuma[i] = i; atnama[i] = $1; mike[i]= toupper(atnama[i]) } nra=i while (getline < ARGV[2] > 0){ j++;sub(/\./," ");gsub(/HN/,"H "); resnamb[j] = $1;split($1,p2,":");resnumb[j] = $1; atnamb[j] = $2; atnamc[j] = $3 ; atnamd[j] = $4 } nrb=j } END{ for (i = 1; i <= nra; i++){ for (j = 1; j <= nrb; j++){ #if (atnamb[j] == "CA" || atnamb[j] == "CB" ){ #print atnamb[j] if (atnamb[j] ~ "C" ){ wank[i] = "C" fuck[i] = "0.25" } if (atnamb[j] ~ "H" && atnamb[j] !~ "N"){ wank[i] = "H" fuck[i] = "0.03" } if (atnamb[j] ~ "N" ){ wank[i] = "N" fuck[i] = "0.15" } # print resnuma[i] if (resnuma[i] == resnumb[j]){ printf("%-3s%5s %-6s%3s %-5.2f %5s%5s\n", resnumb[j],mike[i],atnamb[j],wank[i],atnamc[j],fuck[i],atnamd[j]) } } } } ' $1 $2 |\ nawk '{print NR, $0}'