Irida,

> I am looking for a free program 
> or script that can calculate all sulfur-sulfur distances in 
> pdb files from the Protein Data Bank.

This is the kind of problem you can solve in PyMOL with just a few lines
of Python code.  For example:

from pymol import cmd
from glob import glob

for file in glob("*.pdb"):
    print file
    cmd.load(file,'prot')
    for a in cmd.index("elem s and bound_to elem s"):
        if cmd.select("s1","%s`%d"%a) and \
           cmd.select("s2","elem s and bound_to %s`%d"%a):
            if cmd.select("(s1|s2) and not ?skip"):
                cmd.iterate("s1|s2","print ' ',chain,resn,resi,name")
                print '   ',round(cmd.dist("tmp","s1","s2"),3)
                cmd.select("skip","s1|s2|?skip")
    cmd.delete("all")
    
Would generate the following output in a directory with pdb files:

1alk.pdb
  A CYS 168 SG
  A CYS 178 SG
    1.975
  A CYS 286 SG
  A CYS 336 SG
    1.995
  B CYS 168 SG
  B CYS 178 SG
    1.996
  B CYS 286 SG
  B CYS 336 SG
    2.032
1btu.pdb
   CYS 42 SG
   CYS 58 SG
    2.039
   CYS 136 SG
   CYS 201 SG
    2.031
   CYS 168 SG
   CYS 182 SG
    2.001
   CYS 191 SG
   CYS 220 SG
    2.019
...

Note that the above is for bonded sulfurs in disulfides.  For all
intra-cysteine gamma sulfur distances, you'd want to do something more
like:

from pymol import cmd
from glob import glob

for file in glob("*.pdb"):
    print file
    cmd.load(file,'prot')
    for a in cmd.index("CYS/SG"):
        for b in cmd.index("CYS/SG"):
            if a[1]<b[1]:
                cmd.select("s1","%s`%d"%a)
                cmd.select("s2","%s`%d"%b)
                if cmd.select("(s1|s2) and not ?skip"):
                    cmd.iterate("s1|s2","print '
',chain,resn,resi,name")
                    print '   ',round(cmd.dist("tmp","s1","s2"),3)
                    cmd.select("skip","s1|s2|?skip")
    cmd.delete("all")

1alk.pdb
  A CYS 168 SG
  A CYS 178 SG
    1.975
  A CYS 168 SG
  A CYS 286 SG
    35.845
  A CYS 168 SG
  A CYS 336 SG
    35.029
  A CYS 168 SG
  B CYS 168 SG
    63.64
  A CYS 168 SG
  B CYS 178 SG
    63.775
  A CYS 168 SG
  B CYS 286 SG
    39.02
  A CYS 168 SG
  B CYS 336 SG
    39.314
1btu.pdb
   CYS 42 SG
   CYS 58 SG
    2.039
   CYS 42 SG
   CYS 136 SG
...


http://delsci.com/pymol

Cheers,
Warren

--
Warren L. DeLano, Ph.D.                     
Principal Scientist

. DeLano Scientific LLC  
. 400 Oyster Point Blvd., Suite 213           
. South San Francisco, CA 94080 USA   
. Biz:(650)-872-0942  Tech:(650)-872-0834     
. Fax:(650)-872-0273  Cell:(650)-346-1154
. mailto:war...@delsci.com      
 

> -----Original Message-----
> From: owner-chemis...@ccl.net [mailto:owner-chemis...@ccl.net] 
> Sent: Wednesday, January 18, 2006 6:03 PM
> To: Warren DeLano
> Subject: CCL: Program or Script to Calculate Atom-Atom 
> Distances in pdb files
> 
> Sent to CCL by: "Irida  Kastrati" [ikastr2[a]uic.edu]
> Hello CCLers,
> Because of some excellent feedback I received when I asked 
> for help about a year ago, I thought of using the CCL members 
> expertise again this time.  I am looking for a free program 
> or script that can calculate all sulfur-sulfur distances in 
> pdb files from the Protein Data Bank. The program or script 
> should be able to read the massive database of protein 
> structures from the Protein Data Bank, or a local copy of PDB 
> files. Then, pinpoint S-S distances within a certain value, 
> or calculate the actual distance. I have access to SYBYL.
> Any suggestion is very welcome!
> Thank you in advance for your time and help.
> 
> Sincerely,
> Irida Kastrati
> e-mail: ikastr2{=}uic.edu
> University of IL at Chicago
> College of Pharmacy, Medicinal Chemistry
> 
> 
> 
> -= This is automatically added to each message by the mailing 
> script =-
> To recover the email address of the author of the message, 
> please change
> the strange characters on the top line to the @ sign. You can also
> look up the X-Original-From: line in the mail header.
> 
> E-mail to subscribers: chemis...@ccl.net or use:
>       http://www.ccl.net/cgi-bin/ccl/send_ccl_message
> 
> E-mail to administrators: chemistry-requ...@ccl.net or use
>       http://www.ccl.net/cgi-bin/ccl/send_ccl_message
> 
> Subscribe/Unsubscribe: 
>       http://www.ccl.net/chemistry/sub_unsub.shtml
> 
> Before posting, check wait time at: http://www.ccl.net
> 
> Job: http://www.ccl.net/jobs 
> Conferences: 
> http://server.ccl.net/chemistry/announcements/conferences/
> 
> Search Messages: http://www.ccl.net/htdig  (login: ccl, 
> Password: search)
> 
> If your mail bounces from CCL with 5.7.1 error, check:
>       http://www.ccl.net/spammers.txt
> 
> RTFI: http://www.ccl.net/chemistry/aboutccl/instructions/
> 
> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> -+-+-+-+-+
> 
> 
> 
> 
> 
> 
> 

Reply via email to