NAME

Chemistry::File::XYZ - XYZ molecule format reader/writer

SYNOPSIS

use Chemistry::File::XYZ;

# read an XYZ file
my $mol = Chemistry::Mol->read("myfile.xyz");

# write an XYZ file
$mol->write("out.xyz");

DESCRIPTION

This module reads XYZ files. It automatically registers the 'xyz' format with Chemistry::Mol, so that XYZ files may be identified and read by Chemistry::Mol->read().

The XYZ format is not strictly defined and there are various versions floating around; this module accepts the following:

First line: atom count (optional)

Second line: molecule name or comment (optional)

All other lines: (symbol or atomic number), x, y, and z coordinates separated by spaces, tabs, or commas.

If the first line doesn't look like a number, the atom count is deduced from the number of lines in the file. If the second line looks like it defines an atom, it is assumed that there was no name or comment.

OUTPUT OPTIONS

On writing, the default format is the following, giving H2 as an example.

2
Hydrogen molecule
H    0.0000   0.0000   0.0000
H    0.0000   0.7000   0.0000

That is: count line, name line, and atom lines (symbol, x, y, z). These format can be modified by means of certain options:

name

Control whether or not to include the name.

count

Control whether or not to include the count line.

symbol

If false, use the atomic numbers instead of the atomic symbols.

For example,

$mol->write("out.xyz", count => 0, name => 0, symbol => 0);

gives the following output:

1    0.0000   0.0000   0.0000
1    0.0000   0.7000   0.0000

VERSION

0.11

SEE ALSO

Chemistry::Mol, http://www.perlmol.org/.

AUTHOR

Ivan Tubert-Brohman <itub@cpan.org>