Selecting atoms
The most basic operations in the MagresPython library are to select groups of atoms in a molecule or crystal. This tutorial will go through a few common operations.
First, we import the MagresAtoms
class from the library. This is a container
for a bunch of atoms.
from magres.atoms import MagresAtoms
Then, using the MagresAtoms
class, we load and parse an output file.
atoms = MagresAtoms.load_magres('../samples/ethanol-all.magres')
atoms
is now a collection containing all the atoms in the system
atoms
<magres.atom.MagresAtoms - 9 atoms>
MagresPython has been designed to be pythonic, meaning that it behaves as
similarly to native Python as possible. MagresAtoms
behaves like a list
, you
can use standard builtin functions like len
on it, which returns the number of
atoms
len(atoms)
9
And, like a list
, you can iterate over all the atoms
for atom in atoms:
print atom
1H1 1H2 1H3 1H4 1H5 1H6 13C1 13C2 17O1
There are shortcuts for selecting a particular atom of a particular species. The following code picks out the first carbon atom
atoms.C1
<magres.atom.MagresAtom - 13C1>
Atoms are objects and have properties, such as position
, which is returned as
a numpy array
print atoms.C1.position
[-0.004 -0.004 -0.004]
You can select subsets of atoms, which also behave like lists. For example, to select all hydrogen atoms in the system
atoms.species("H")
<magres.atom.MagresAtomsView - 6 atoms>
You can select all atoms within a certain distance of each other. The following code selects all atoms within 2 Angstrom of the H1 atom.
atoms.within(atoms.H1, 2.0)
<magres.atom.MagresAtomsView - 4 atoms>