biotite.structure.connect_via_distances(atoms, distance_range=None, atom_mask=None, inter_residue=True)[source]

Create a BondList for a given atom array, based on pairwise atom distances.

A BondType.ANY, bond is created for two atoms within the same residue, if the distance between them is within the expected bond distance range. Bonds between two adjacent residues are created for the atoms expected to connect these residues, i.e. 'C' and 'N' for peptides and "O3'" and 'P' for nucleotides.


The structure to create the BondList for.

distance_rangedict of tuple(str, str) -> tuple(float, float), optional

Custom minimum and maximum bond distances. The dictionary keys are tuples of chemical elements representing the atoms to be potentially bonded. The order of elements within each tuple does not matter. The dictionary values are the minimum and maximum bond distance, respectively, for the given combination of elements. This parameter updates the default dictionary. Hence, the default bond distances for missing element pairs are still taken from the default dictionary. The default bond distances are taken from 1.

atom_maskndarray, dtype=bool, shape=(n,), optional

If set, only the atoms, where this mask is True, are connected.

inter_residuebool, optional

If true, connections between consecutive amino acids and nucleotides are also added.


The created bond list.


This method might miss bonds, if the bond distance is unexpectedly high or low, or it might create false bonds, if two atoms within a residue are accidentally in the right distance. A more accurate method for determining bonds is connect_via_residue_names().



F. H. Allen, O. Kennard, D. G. Watson, L. Brammer, A. G. Orpen, R. Taylor, “Tables of bond lengths determined by X-ray and neutron diffraction. Part 1. Bond lengths in organic compounds,” Journal of the Chemical Society, Perkin Transactions 2, pp. S1-S19, January 1987. doi: 10.1039/P298700000S1