GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  CHEMISTRY::CANONICALIZE (3)

.ds Aq ’

NAME

Chemistry::Canonicalize - Number the atoms in a molecule in a unique way

CONTENTS

SYNOPSIS



    use Chemistry::Canonicalize :all;

    # $mol is a Chemistry::Mol object
    canonicalize($mol);
    print "The canonical number for atom 1 is: ",
        $mol->atoms(1)->attr("canon/class");
    print "The symmetry class for for atom 1 is: ",
        $mol->atoms(1)->attr("canon/symmetry_class");



DESCRIPTION

This module provides functions for canonicalizing a molecular structure; that is, to number the atoms in a unique way regardless of the input order.

The canonicalization algorithm is based on: Weininger, et. al., J. Chem. Inf. Comp. Sci. 29[2], 97-101 (1989)

This module is part of the PerlMol project, <http://www.perlmol.org/>.

ATOM ATTRIBUTES

During the canonicalization process, the following attributes are set on each atom:
canon/class The unique canonical number; it is an integer going from 1 to the number of atoms.
canon/symmetry_class The symmetry class number. Atoms that have the same symmetry class are considered to be topologicaly equivalent. For example, the two methyl carbons on 2-propanol would have the same symmetry class.

FUNCTIONS

These functions may be exported, although nothing is exported by default.
canonicalize($mol, %opts) Canonicalizes the molecule. It adds the canon/class and canon/symmetry class to every atom, as discussed above. This function may take the following options:
sort If true, sort the atoms in the molecule in ascending canonical number order.
invariants This should be a subroutine reference that takes an atom and returns a number. These number should be based on the topological invariant properties of the atom, such as symbol, charge, number of bonds, etc.

VERSION

0.11

TO DO

Add some tests.

CAVEATS

Currently there is an atom limit of about 430 atoms.

These algorithm is known to fail to discriminate between non-equivalent atoms for some complicated cases. These are usually highly bridged structures explicitly designed to break canonicalization algorithms; I don’t know of any real-looking structure (meaning something that someone would actually synthesize or find in nature) that fails, but don’t say I didn’t warn you!

SEE ALSO

Chemistry::Mol, Chemistry::Atom, Chemistry::Obj, <http://www.perlmol.org/>.

AUTHOR

Ivan Tubert <itub@cpan.org>

COPYRIGHT

Copyright (c) 2009 Ivan Tubert. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 CANONICALIZE (3) 2009-05-10

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.