Ivan Tubert-Brohman > Chemistry-Smiles-0.13 > Chemistry::Smiles

Download:
Chemistry-Smiles-0.13.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.13   Source  

NAME ^

Chemistry::Smiles - SMILES parser (deprecated)

SYNOPSYS ^

    #!/usr/bin/perl
    use Chemistry::Smiles;

    my $s = 'C1C[13C]1(=O)[O-]';

    # Default use - Requires Chemistry::Mol
    my $default_parser = new Chemistry::Smiles;
    my $mol = $default_parser->parse($s, new Chemistry::Mol);
    print $mol->print;

    # Callback use
    my $i = 0;
    my $callback_parser = new Chemistry::Smiles(
        add_atom => sub {print "ATOM(@_)\n"; ++$i},
        add_bond => sub {print "BOND(@_)\n"}
    );
    $callback_parser->parse($s, 'mol');

DESCRIPTION ^

NOTE: THIS MODULE IS DEPRECATED! Use Chemistry::File::SMILES instead.

This object-oriented module parses a SMILES (Simplified Molecular Input Line Entry Specification) string. It can either return the molecule as a Chemistry::Mol object or be used via callback functions.

METHODS ^

Chemistry::Smiles->new([add_atom => \&sub1, add_bond => \&sub2])

Create a SMILES parser. If the add_atom and add_bond subroutine references are given, they will be called whenever an atom or a bond needs to be added to the molecule. If they are not specified, default methods, which create a Chemistry::Mol object, will be used.

$obj->parse($string, $mol)

Parse a Smiles $string. $mol is a "molecule state object". It can be anything; the parser doesn't do anything with it except sending it as the first parameter to the callback functions. If callback functions were not provided when constructing the parser object, $mol must be a Chemistry::Mol object, because that's what the default callback functions require.

CALLBACK FUNCTIONS ^

$atom = add_atom($mol, $iso, $sym, $chir, $hcount, $chg)

Called by the parser whenever an atom is found. The first parameter is the state object given to $obj->parse(). The other parameters are the isotope, symbol, chirality, hydrogen count, and charge of the atom. Only the symbol is guaranteed to be defined. Mnemonic: the parameters are given in the same order that is used in a SMILES string (such as [18OH-]). This callback is expected to return something that uniquely identifies the atom that was created (it might be a number, a string, or an object).

add_bond($mol, $type, $a1, $a2)

Called by the parser whenever an bond needs to be created. The first parameter is the state object given to $obj->parse(). The other parameters are the bond type and the two atoms that need to be bonded. The atoms are identified using the return values from the add_atom() callback.

SEE ALSO ^

The SMILES Home Page at http://www.daylight.com/dayhtml/smiles/ The Daylight Theory Manual at http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html

BUGS ^

The SMILES specification is not fully implemented yet. For example, branches that start before an atom (such as (OC)C, which should be equivalent to C(CO) and COC).

AUTHOR ^

Ivan Tubert <itub@cpan.org>

COPYRIGHT ^

Copyright (c) 2004 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.

syntax highlighting: