NAME
Chemistry::OpenSMILES::Writer - OpenSMILES format writer
SYNOPSIS
use Graph::Undirected;
use Chemistry::OpenSMILES::Writer qw( write_SMILES );
my $g = Graph::Undirected->new;
$g->add_edge( { symbol => 'C' }, { symbol => 'O' } );
print write_SMILES( [ $g ] );
DESCRIPTION
Chemistry::OpenSMILES::Writer
is writer for molecular graph objects created by Chemistry::OpenSMILES::Parser or other means. It exports a single subroutine, write_SMILES()
, which is given an array of molecular graph objects and outputs a SMILES representation of them.
METHODS
write_SMILES( \@molecules, \%options )
@molecules
is an array of molecular graph objects.
Options
explicit_aromatic_bonds
-
Boolean flag instructing the writer to output all aromatic bonds as ':'. Off by default.
explicit_parentheses
-
Boolean flag instructing the writer to always enclose "children" atoms in parentheses. Off by default.
immediately_reuse_ring_numbers
-
Boolean flag instructing the writer to immediately reuse ring closure numbers. On by default. Immediately reused ring numbers might cause some confusion for human readers, but the benefit of reuse is the ability to have more open rings at once.
remove_implicit_hydrogens
-
Boolean flag instructing the writer to remove hydrogens, expressed as atom properties, when their number can be unambiguously derived from normal valency. On by default.
unsprout_hydrogens
-
Boolean flag instructing the writer to demote explicit hydrogens ("atoms on their own", "sprouted") to atom properties of their parent heavy atom. On by default. Not all hydrogens can be demoted.
order_sub
-
Subroutine reference used to determine the next atom in order upon ambiguity. If none is provided, input order is retained whenever possible. It should be noted, however, that
write_SMILES()
does not necessary respect the order subroutine: if performs DFS merely guided by the requested order. Thus before callingwrite_SMILES()
the exact postorder is not known. Only preorder is known, thus relative properties, such as cis/trans markers, have to be adjusted to preorder. Other order-dependent markers have to be adjusted to preorder as well.
AUTHORS
Andrius Merkys, <merkys@cpan.org>