parmed.topologyobjects.Atom

class parmed.topologyobjects.Atom(list=None, atomic_number=0, name='', type='', charge=None, mass=0.0, nb_idx=0, solvent_radius=0.0, screen=0.0, tree='BLA', join=0.0, irotat=0.0, occupancy=0.0, bfactor=0.0, altloc='', number=- 1, rmin=None, epsilon=None, rmin14=None, epsilon14=None)[source]

An atom. Only use these as elements in AtomList instances, since AtomList will keep track of when indexes and other stuff needs to be updated. All parameters are optional.

Parameters
atomic_numberint

The atomic number of this atom

namestr

The name of this atom

typestr

The type name of this atom

chargefloat

The partial atomic charge of this atom in fractions of an electron

massfloat

The atomic mass of this atom in daltons

nb_idxint

The nonbonded index. This is a pointer that is relevant in the context of an Amber topology file and identifies its Lennard-Jones atom type

solvent_radiusfloat

The intrinsic solvation radius of this atom.

screenfloat

The Generalized Born screening factor for this atom.

occupancyfloat

The occupancy of the atom (see PDB file)

bfactorfloat

The B-factor of the atom (see PDB file)

altlocstr

Alternate location indicator (see PDB file)

Other Parameters
listAtomList

The AtomList that this atom belongs to. If None, this atom does not belong to any list. This can be any iterable, but should typically be an AtomList or None

treestr

The tree chain identifier assigned to this atom. Relevant in the context of an Amber topology file, and not used for very much.

joinint

The ‘join` property of atoms stored in the Amber topology file. At the time of writing this class, join is unused, but still oddly required. Add support for future-proofing

irotatint

The irotat property of atoms stored in the Amber topology file. Unused, but included for future-proofing.

numberint

The serial number given to the atom (see PDB file)

rminfloat

The Rmin/2 Lennard-Jones parameter for this atom. Default evaluates to 0

epsilonfloat

The epsilon (well depth) Lennard-Jones parameter for this atom. Default evaluates to 0

rmin14float

The Rmin/2 Lennard-Jones parameter for this atom in 1-4 interactions. Default evaluates to 0

epsilon14float

The epsilon (well depth) Lennard-Jones parameter for this atom in 1-4 interactions. Default evaluates to 0

Notes

The bond_partners, angle_partners, dihedral_partners, and exclusion_partners arrays are actually generated as properties by taking differences of sets and sorting them. As a result, accessing this attribute constantly can be less efficient than you would expect. Iterating over them in a loop requires minimal overhead. But if frequent access is needed and these sets are guaranteed not to change, you should save a reference to the object and use that instead.

Binary comparisons are done by atom index and are used primarily for sorting sublists of atoms. The == operator is not defined, so Atom equality should be done using the is operator. This allows Atom instances to be hashable (and so used as dict keys and put in `set`s)

Examples

>>> a1 = Atom(name='CO', type='C', charge=0.5, mass=12.01)
>>> a2 = Atom(name='OC', type='O', charge=-0.5, mass=12.01)
>>> a1.bond_to(a2)
>>> a1 in a2.bond_partners and a2 in a1.bond_partners
True
>>> a1.idx # Not part of a container
-1

This object also supports automatic indexing when it is part of a container

>>> atom_list = []
>>> atom_list.append(Atom(list=atom_list, name='CO', charge=0.5))
>>> atom_list.append(Atom(list=atom_list, name='OC', charge=-0.5))
>>> atom_list[0].idx
0
>>> atom_list[1].idx
1
Attributes
angle_partners

List of all angle partners that are NOT bond partners

bond_partners

Go through all bonded partners

charge
dihedral_partners

List of all dihedral partners that are NOT angle or bond partners

element
element_name
epsilon

Lennard-Jones epsilon parameter (the Lennard-Jones well depth)

epsilon_14

The 1-4 Lennard-Jones epsilon parameter

exclusion_partners

List of all exclusions not otherwise excluded by bonds/angles/torsions

idx
rmin

Lennard-Jones Rmin/2 parameter (the Lennard-Jones radius)

rmin_14

The 1-4 Lennard-Jones Rmin/2 parameter

sigma

Lennard-Jones sigma parameter – directly related to Rmin

sigma_14

Lennard-Jones sigma parameter – directly related to Rmin

tortor_partners

List of all 1-5 partners that are NOT in angle or bond partners.

ucharge

Charge with units

uepsilon

Lennard-Jones epsilon parameter with units

uepsilon_14

The 1-4 Lennard-Jones epsilon parameter

umass
urmin

Lennard-Jones Rmin/2 parameter with units

urmin_14

The 1-4 Lennard-Jones Rmin/2 parameter with units

usigma

Lennard-Jones sigma parameter with units

usigma_14

The 1-4 Lennard-Jones sigma parameter with units

usolvent_radius

Solvation radius with units attached

Methods

angle_to(other)

Log this atom as angled to another atom.

bond_to(other)

Log this atom as bonded to another atom.

dihedral_to(other)

Log this atom as dihedral-ed to another atom.

exclude(other)

Add one atom to my arbitrary exclusion list

nonbonded_exclusions([only_greater, index_from])

Returns the total number of nonbonded atom exclusions for this atom.

prune_exclusions()

For extra points, the exclusion partners may be filled before the bond, angle, dihedral, and tortor partners.

tortor_to(other)

Log this atom as 1-5 partners to another atom

__init__(list=None, atomic_number=0, name='', type='', charge=None, mass=0.0, nb_idx=0, solvent_radius=0.0, screen=0.0, tree='BLA', join=0.0, irotat=0.0, occupancy=0.0, bfactor=0.0, altloc='', number=- 1, rmin=None, epsilon=None, rmin14=None, epsilon14=None)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__([list, atomic_number, name, type, …])

Initialize self.

angle_to(other)

Log this atom as angled to another atom.

bond_to(other)

Log this atom as bonded to another atom.

dihedral_to(other)

Log this atom as dihedral-ed to another atom.

exclude(other)

Add one atom to my arbitrary exclusion list

nonbonded_exclusions([only_greater, index_from])

Returns the total number of nonbonded atom exclusions for this atom.

prune_exclusions()

For extra points, the exclusion partners may be filled before the bond, angle, dihedral, and tortor partners.

tortor_to(other)

Log this atom as 1-5 partners to another atom

Attributes

angle_partners

List of all angle partners that are NOT bond partners

bond_partners

Go through all bonded partners

charge

dihedral_partners

List of all dihedral partners that are NOT angle or bond partners

element

element_name

epsilon

Lennard-Jones epsilon parameter (the Lennard-Jones well depth)

epsilon_14

The 1-4 Lennard-Jones epsilon parameter

exclusion_partners

List of all exclusions not otherwise excluded by bonds/angles/torsions

idx

rmin

Lennard-Jones Rmin/2 parameter (the Lennard-Jones radius)

rmin_14

The 1-4 Lennard-Jones Rmin/2 parameter

sigma

Lennard-Jones sigma parameter – directly related to Rmin

sigma_14

Lennard-Jones sigma parameter – directly related to Rmin

tortor_partners

List of all 1-5 partners that are NOT in angle or bond partners.

ucharge

Charge with units

uepsilon

Lennard-Jones epsilon parameter with units

uepsilon_14

The 1-4 Lennard-Jones epsilon parameter

umass

urmin

Lennard-Jones Rmin/2 parameter with units

urmin_14

The 1-4 Lennard-Jones Rmin/2 parameter with units

usigma

Lennard-Jones sigma parameter with units

usigma_14

The 1-4 Lennard-Jones sigma parameter with units

usolvent_radius

Solvation radius with units attached