Back to Download Form

Surface Database Initial Results

Note: jpeg images used here, loads faster


As discussed in an earlier page, pdb_proc is run from a script using a set of source files. Each reference pdb file is scanned for surfaces and the features are output into text files. For this test, the output files were prefixed with "zz" and named for the pdb number ( ie zz1ac4 ).


$ ./auto_script pdb_list_new
 

invokes pdb_proc as follows,
./pdb_proc -source g1.src -pdb $fn -source generic.src -v 1 -out "$TDEST" -pfx "$pfx" -source g2db.src

The generated surface description files are then loaded into an "in memory" database against which a query pdb file is run. This is illustrated using a pre-parsed query but the parsing is fairly quick and could be done in reasonable time. The nay_db_driver program below performs a query on 2it5:


$ cat tget/zz* | ./nay_db_driver -v -1 -load - -query ./tget/zzzz2it5 | awk '{print $3}' | sort | uniq -c
recursive_nay_index.h142 loaded 26733 entries
recursive_nay_index.h152 open query file ./tget/zzzz2it5
recursive_nay_index.h198 done with 476 queries
      4 1ezf
      3 2aq2
    477 2it5
      1 2per
      5 2vl0
      3 2zcp
      1 3ci8
$ cat tget/zz* | ./nay_db_driver -v -1 -load - -name 2it5 -format 0 -query ./tget/zzzz2it5 | grep -v " 2it5"
recursive_nay_index.h142 loaded 26733 entries
recursive_nay_index.h152 open query file ./tget/zzzz2it5
recursive_nay_index.h198 done with 476 queries
CCCCCCNCCC hits 2vl0 149.975
CCCCCCNCCC hits 2vl0 130.866
CCCCCCNCCC hits 2vl0 183.366
CCCCCCNCCC hits 2vl0 170.593
CCCCCCNCCC hits 2vl0 161.427
CCCCCCNCCC hits 2zcp 26.8866
CCCCCCCNCCC hits 2zcp 54.4978
CCONOCCCOCOCCCC hits 2aq2 12.4643
OCOCNCOCC hits 2zcp 52.6464
CNNNCCCCO hits 3ci8 40.9046
NCNNCCCC hits 1ezf 53.6454
NCNNCCCC hits 2aq2 61.8096
NCNNCCCC hits 2per 44.8549
NCNNCCCCC hits 1ezf 29.3284
NCNNCCCCC hits 1ezf 108.441
CCCCOCONCCCC hits 1ezf 73.4681
NCNNCCCOC hits 2aq2 15.4752
$ cat tget/zz* | ./nay_db_driver -v -1 -load - -name 2it5 -format 1 -query ./tget/zzzz2it5 | grep -v " 2it5"
recursive_nay_index.h142 loaded 26733 entries
recursive_nay_index.h152 open query file ./tget/zzzz2it5
2it5 27.807 28.37 18.564 2vl0 -88.822 -58.002 -19.253
2it5 27.807 28.37 18.564 2vl0 -81.651 -28.698 -24.888
2it5 27.807 28.37 18.564 2vl0 -57.023 -128.934 -22.451
2it5 27.807 28.37 18.564 2vl0 -62.451 -94.299 -58.298
2it5 27.807 28.37 18.564 2vl0 -63.703 -101.791 -8.689
2it5 27.807 28.37 18.564 2zcp 50.084 14.159 13.597
2it5 27.877 28.12 17.177 2zcp 54.773 -19.131 20.913
2it5 0.567 34.368 4.83 2aq2 -1.496 32.88 -7.372
2it5 3.467 41.745 7.62 2zcp 51.738 28.694 24.089
2it5 21.023 41.017 -1.54 3ci8 -6.054 23.271 23.462
2it5 21.96 40.837 -0.616 1ezf -22.377 49.971 28.17
2it5 21.96 40.837 -0.616 2aq2 -38.04 37.255 -15.024
2it5 21.96 40.837 -0.616 2per -12.342 24.11 22.954
2it5 20.452 42.208 -1.669 1ezf 0.958 59.657 11.585
2it5 20.452 42.208 -1.669 1ezf -36.533 80.174 82.419
2it5 -6.406 23.552 2.183 1ezf -25.62 76.777 49.039
2it5 6.495 36.326 -20.82 2aq2 17.23 25.851 -24.63
recursive_nay_index.h198 done with 476 queries


This last form can be used to feed a molecule viewer script to view the hits and put them into a somewhat formatted image for comparison. Saving the above results in file "xxx", it is easy to generate a temporary file "tx" with display parameters for the viewer:


$ i=0; cat ./hybrids/xxx | while read ; do echo "./pdb/" ".pdb" $REPLY 7 y$i.jpg > tx; i=$[$i +1 ]; ./main atom ./hybrids/qfparam.dat ; done
$ cat qfparam.dat
DxEBUG
color_file colbr.dat
radius_file radii.dat
# This is needed to load the color and radius files..
SCRIPT source,./qftgtparam.dat

The above script invokes a much longer script that isolates to areas of interest and arranges them for best view and finally "prints" the result to a jpeg image and quits ( commented out below in this example).


$cat ../qftgtparam.dat


#loado ./pdb/2it5.pdb
#loado ./pdb/2aq2.pdb
#$let xa 0-1.5
#$let ya 0+32
#$let za 0-7.32
#$let rad 10
#$let xb 0.5
#$let yb 34
#$let zb 4.8
# the original test used this format
#$readln qfdat.surf fn fm xa ya za xb yb zb rad fd
# this however should match the output of nay_db_driver/
$readln tx  pa ps fn xa ya za fm xb yb zb rad fd
loado $pa$fm$ps
loado $pa$fn$ps
zoom 10
stree 1>hide 1
stree 0>hide 1
# the syntax was ad hoc and finally ran into a limit
# at worst, I could expand an array with leading + but this 
# seemed easier... 
#select 1 atm segment_count=0 selradius=$rad origin=-1.5+32-7.32
select 1 atm segment_count=0 selradius=$rad ox=$xa oy=$ya oz=$za
#quit
stree 0 2tint .1 +.1 +.1 1
#stree 0 3>tint +.1 .1 .1 1
stree 0+light 3
# think, doh - this is 3 D 
# I want them to be close but the radius is a SELECTION radius
# so both sides can extend to be larger than rad. Overlap is  confusing... 
$let ds $rad*1+2
$let mx $ds*0-$xa
$let my $ds*1-$ya
$let mz $ds*0-$za
$let nx 0-$xb-$ds*0
$let ny 0-$yb-$ds*1
$let nz 0-$zb-$ds*0
modify 2 mx=$mx my=$my mz=$mz
modify 3 mx=$nx my=$ny mz=$nz
#modify 2 move=-10-10+20
#modify 3 move=-20-20-20
stree 0+style 1
stree 0+substyle 3
$sub rot3
l1:
modify 3 ex=.1 ey=.15 ez=.2
move 0 0
$if l1 1=1
$end
$sub rot3s
l1:
# these should be incommensurate angles
# but the orbits appear to be periodic????? 
modify 2 ex=.1 ey=.15 ez=.2 roty=$ds
$let ds2 0-$ds
modify 3 ex=.15 ey=.16 ez=.32 roty=$ds2
# this should IIRC call postredisplay to update.
move 0 0
$if l1 1=0
$end
$sub center
$let coxx 0
label1:
screen bounds=x
$let marginh $screenheight-100
$let marginw $screenwidth-100
$let dy (0-$x[0]-$x[2]+$screenheight)/4
$let dx (0-$x[1]-$x[3]+$screenwidth)/4
$echo $dx
$echo $dy
move $dx $dy
$let sm 0
$if label2 ($x[0]-$x[2])>$marginh
$if label2 ($x[1]-$x[3])>$marginw
$let coxx $coxx+1
$if lendd $coxx<100
quit
lendd:
$let sm 1
zoom 50
label2:
$if label3 (($x[0]-$x[2])<($marginh+30))&(($x[1]-$x[3])<($marginw+30))
$let sm 1
zoom -62
label3:
$if label1 ($dx >10 )|($dx<-10)|($dy>10)|($dy<-10)
$if label1 $sm
prop 0 centroid=a
rotcen $a[0] $a[1] $a[2]
$end
#set rotation center
$sub rott
prop 0 centroid=a
rotcen $a[0] $a[1] $a[2]
$end

$call center
rotcen 0 0 0

#print $fd
#quit


Some related results from 3ci8 are shown below.


39  CC hits 3c1j 37.9231
40  NCCCCCCOCC hits cd25e 38.8004
41  CNNNCCCCO hits 2it5 40.9046
42  NCNNCCC hits 1r5w 57.6384
43  NCNNCCC hits 1r5w 66.8902
44  NCNNCCC hits 2aq2 52.4452

This appears to be have been a fairly unique "CC" feature meaning that only two atoms were together and accessible to a 1.7A radius probe.




This suggests a but more complicated pattern but it came up a couple of times. Presumably, the N( green ) are inidcated in the pattern. Note that all atoms within the radius, not just the notable ones, are shown.