Chemistry::OpenSMILES::Writer(3pm)

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 calling write_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.

"write_atom_sub"
    Subroutine reference used to depict an atom in the output SMILES. Takes three parameters: atom hash, molecular graph and option hash. Must return string. Caveat: interface might change.

AUTHORS
Andrius Merkys, <merkys@cpan.org>