Subject: bond lenghts

From: Martijn Zwijnenburg <[email-masked]>
Date: Mon, 20 May 2002 14:53:03 +0200

Hi,

I'm looking for a program which can read in the structure of a 
molecule (as pdb or xyz) and output a table of bond-lengths (or 
atom-atom distances for what it's worth). No difficult analysis 
methods needed, just one structure. I'm thinking of an output like:

Si1-O4 1.644
Si1-O5 1.643
etc. etc.

I can do this by hand in almost any viewer but since my molecules 
are rather big I'm looking for a more efficient solution.

Regards,

Martijn Zwijnenburg
-------------------------------------------------------------------------
Martijn Zwijnenburg
Lab. of Applied Organic Chemistry and Catalysis
Delft University of Technology
Julianalaan 136
2628 BL Delft
The Netherlands
Tel: 0031-(0)152782691
Fax: 0031-(0)152784700
e-mail: [email-masked]
web page: http://come.to/tock

---

From: Ruth Tanner <[email-masked]>
Date: Mon, 20 May 2002 09:58:59 -0400 (EDT)

Perl or Awk could be used to write a script to do such a thing,
but I don't know of one presently in existance.  Anyone?

Ruth

On Mon, 20 May 2002, Martijn Zwijnenburg wrote:

> -= This is automatically added to each message by mailing script =-
> [email-masked] -- To Everybody  | [email-masked] -- To Admins
> [email-masked] -- HELP CHEMISTRY or HELP SEARCH
> [email-masked] -- archive search    |    Gopher: gopher.ccl.net 70
> Ftp: ftp.ccl.net  |  WWW: http://www.ccl.net/chemistry/   | Jan: [email-masked]
> 
> 
> 
> 
> 

--------------------------------------------------------------------
Ruth Tanner                                      [email-masked]
--------------------------------------------------------------------
"Love's way of dealing with us is different from conscience's way.
Conscience commands; love inspires. What we do out of love, we do 
because we want to do it."  --- A.J. Toynbee
====================================================================

---

From: Konrad Hinsen <[email-masked]>
Date: 20 May 2002 16:50:55 +0200

> are rather big I'm looking for a more efficient solution.

Here's the program you are looking for:

----------------------------------------------------------------------
> from Scientific.IO.PDB import Structure

s = Structure('molecule.pdb')

for molecule in s.residues:
    print
    print molecule.name
    pairs = []
    for atom1 in molecule.atoms.values():
        for atom2 in molecule.atoms.values():
            if atom1 != atom2:
                distance = (atom1.position-atom2.position).length()
                pairs.append((atom1.name, atom2.name, distance))
    pairs.sort(lambda a, b: cmp(a[2], b[2]))
    for atom1, atom2, distance in pairs:
        print "%4s - %4s: %f" % (atom1, atom2, distance)
----------------------------------------------------------------------

As a bonus, you get the pairs sorted by increasing distance.
Requirements: Python (www.python.org) and ScientificPython
              (dirac.cnrs-orleans.fr/ScientifciPython/)

-- 
-------------------------------------------------------------------------------
Konrad Hinsen                            | E-Mail: [email-masked]
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.56.24
Rue Charles Sadron                       | Fax:  +33-2.38.63.15.17
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais
-------------------------------------------------------------------------------

---

From: Geoff Hutchison <[email-masked]>
Date: Mon, 20 May 2002 08:41:24 -0500

> methods needed, just one structure. I'm thinking of an output like:

Yes, the original Babel has always been able to do this. It's the 
"report" file format.

<http://www.eyesopen.com/babel.html>

(Open Babel can do this too, but it's still in development towards a 
stable release.) <http://openbabel.sourceforge.net/>

-------
-Geoff Hutchison	<[email-masked]>
Ratner/Marks Groups	(847) 491-3295
Northwestern Chemistry	http://www.chem.nwu.edu/

---

From: Ioannis Kerkines <[email-masked]>
Date: Mon, 20 May 2002 17:25:40 +0300 (EET DST)

I think this can be easily done with the (commercial) program Chem3D (part
of the Chemoffice suite). After importing the initial structure, you can
view the coordinates in many ways, one of which is a table of internal
coordinates which should be enough to specify the full structure of your
molecule.

You can then e.g. copy + paste this table to other applications like Word
or Excel and apply any desired modifications.

Best
Ioannis