The function WritePDB from module PDB can write a ASE Listofatoms object in the the Protein Data Band (PDB)file format.

The WritePDB function is used like:

>>> from ASE.IO.PDB import WritePDB
>>> WritePDB(listofatoms,filename)

The module converts to the Angstrom length unit used in the PDB file format. ...

Gaussian Cube file format

The Gaussian Cube file format describes volumetric data as well as atom positions, it originates from the Gaussian software package. The ASE.IO.Cube module contains a function WriteCube for writing a Cube file corresponding to a ASE ListOfAtoms and a numerical array. The volume data should be a 3 dimension numerical array of real numbers, describing the volumetric data for the unit cell, given in the ListOfAtoms.

The WriteCube function is used like:

>>> from ASE.IO.Cube import WriteCube
>>> WriteCube(listofatoms,numarray,filename)

The Cube file format is added here mainly as input to VMD, which supports this format, see the ASE VMD page

The volumetric data in the Cube file are real numbers, if a complex numarray is given to WriteCube ,it will write two Cube files, one for the absolute value and one for the phase. The phase information can be used for coloring the isosurface plot in VMD, read more here.


The function WriteXYZ from module xyz can write a ASE Listofatoms or a trajectory in the the xyz file format.

The WriteXYZ function is used like:

>>> from ASE.IO.xyz import WriteXYZ
>>> WriteXYZ(filename,atoms=listofatoms)

for writing a single frame xyz file, or it can be used like:

>>> from ASE.IO.xyz import WriteXYZ
>>> WriteXYZ(filename,trajectory=trajectory)

for writing a multiple frame xyz file.

The ReadXYZ function will read an xyz-file and return ListOfAtoms object.