NAME
Chemistry::Mok - molecular awk interpreter
SYNOPSIS
use Chemistry::Mok;
$code = '/CS/g{ $n++; $l += $match->bond_map(0)->length }
END { printf "Average C-S bond length: %.3f\n", $l/$n; }';
my $mok = Chemistry::Mok->new($code);
$mok->run({ format => mdlmol }, glob("*.mol"));
DESCRIPTION
This module is the engine behind the mok program. See mok(1) for a detailed description of the language. Mok is part of the PerlMol project, http://www.perlmol.org.
METHODS
- Chemistry::Mok->new($code, %options)
-
Compile the code and return a Chemistry::Mok object. Available options:
package
-
If the
package
option is given, the code runs in the Chemistry::Mok::UserCode::$options{package} package instead of the Chemistry::Mok::UserCode::Default package. Specifying a package name is recommended if you have more than one mok object and you are using global varaibles, in order to avoid namespace clashes. pattern_format
-
The name of the format which will be used for parsing slash-delimited patterns. Mok versions until 0.16 only used the 'smiles' format, but newer versions can use the 'smarts' format as well.
- $mok->run($options, @args)
-
Run the code on the filenames contained in @args. $options is a hash reference with runtime options. Available options:
- mol_class
-
The molecule class used for reading the files. Defaults to Chemistry::Mol.
- format
-
The format used when calling $mol_class->read. If not given, $mol_class->read tries to identify the format automatically.
- find_bonds
-
If set to a true value, find bonds. Use it when reading files with no bond information but 3D coordinates to detect the bonds if needed (for example, if you want to do match a pattern that includes bonds). If the file has explicit bonds, mok will not try to find the bonds, but it will reassign the bond orders from scratch.
VERSION
0.20
SEE ALSO
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.