This is what SMARTS searching does.

rings = {*}.find("SMARTS","c1ccccc1", true)  // an array of atom sets
centers = rings.xyz   // centers of those atom sets; still an array
print centers[1]
print centers[2]
...


On Tue, Feb 10, 2015 at 3:59 PM, Eric Martz <ema...@microbio.umass.edu>
wrote:

> I would like to generate a list of distances between the centers of
> aromatic rings, identifying the pair of residues that each distance
> represents.
>
> I believe the following reports the center of the 6-carbon ring of Tyr3
> in 1pgb:
>
>
$ load =1pgb
IMMUNOGLOBULIN BINDING PROTEIN          23-NOV-93   1PGB
TWO CRYSTAL STRUCTURES OF THE B1 IMMUNOGLOBULIN-BINDING
DOMAIN OF STREPTOCCOCAL PROTEIN G AND COMPARISON WITH NMR
found biomolecule 1: A

// all rings:

$ rings = {*}.find("SMARTS","c1ccccc1", true)
$ print rings.xyz
{13.123668 14.505501 26.274666}
{7.7295 15.019166 20.959}
{1.7821666 16.910334 17.072166}
{7.07 8.775001 16.5255}
{15.482834 9.6655 22.505835}
{11.408334 10.879166 21.280832}

// just tyr

$ rings = {tyr}.find("SMARTS","c1ccccc1", true)
$ print rings.xyz
{13.123668 14.505501 26.274666}
{1.7821666 16.910334 17.072166}
{15.482834 9.6655 22.505835}

// with labels

for (var i = 1; i <= rings.length; i++) {
 print (rings[i])[1].label("%n%r") + " " + rings[i].xyz
}

TYR3 {13.123668 14.505501 26.274666}
TYR33 {1.7821666 16.910334 17.072166}
TYR45 {15.482834 9.6655 22.505835}

If I had such lists, how would I generate a list of distances between

> the ring-centers, being able to identify the two residues for each
> distance?
>
>
// use .xyz.distance  (average position...distance....)

 for (var i = 1; i <= rings.length; i++) {
  for (var j = i + 1; j <= rings.length; j++) {
    print (rings[i])[1].label("%n%r") + "\t" + (rings[j])[1].label("%n%r")
+ "\t" + rings[i].xyz.distance(rings[j].xyz).format("%6.3f")
  }
}

TYR3    TYR33    14.802
TYR3    TYR45     6.572
TYR33    TYR45    16.423


:)
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to