## Atom.get_equivalent_atom() — get equivalent atom in another residue

`get_equivalent_atom(res)`

> Given another `Residue` object, this returns an `Atom` object representing the structurally equivalent atom in that residue, or `None` if no such atom can be found. (This is primarily used by Restraints.make_distance().) The rules for determining equivalency are:

- If either residue is non-standard, but is denoted as being 'similar' to a standard residue with the STD column in `'modlib/restyp.lib'`, treat it below as if it is the similar standard residue (e.g., ASX is treated like ASN).

- If the two residues are of the same type, or either residue has no topology (e.g., it is a BLK residue), find an atom with the same name.

- If the two residues are both standard amino acids, use the mapping defined in `'modlib/atmeqv.lib'` (this is not always a simple match on name; for example, CYS SG is equivalent to ASP CG, since they tend to be similarly placed in space).

- Otherwise, no atom is treated as equivalent (even if the names are the same; for example, the O atom in water residues is not equivalent to the backbone O in standard amino acids).