base_stacking
#
- biotite.structure.base_stacking(atom_array, min_atoms_per_base=3)[source]#
Find pi-stacking interactions between aromatic rings in nucleic acids.
The presence of base stacking is assumed if the following criteria are met [1]:
Distance between aromatic ring centers <=4.5 Å
Angle between the ring normal vectors <=23°
Angle between normalized distance vector between two ring centers and both bases’ normal vectors <=40°
- Parameters:
- atom_arrayAtomArray
The
AtomArray
to find stacked bases in.- min_atoms_per_baseinteger, optional (default: 3)
The number of atoms a nucleotides’ base must have to be considered a candidate for a stacking interaction.
- Returns:
- stacked_basesndarray, dtype=int, shape=(n,2)
Each row is equivalent to one pair of stacked bases and contains the indices to the first atom for each one of both paired residues.
Notes
Please note that ring normal vectors are assumed to be equal to the base normal vectors.
References
Examples
Compute the stacking interactions for a DNA-double-helix (PDB ID 1BNA):
>>> from os.path import join >>> dna_helix = load_structure( ... join(path_to_structures, "base_pairs", "1bna.pdb") ... ) >>> stacking_interactions = base_stacking(dna_helix) >>> print(dna_helix[stacking_interactions].res_id) [[ 1 2] [ 2 3] [ 3 4] [ 4 5] [ 5 6] [ 6 7] [ 7 8] [ 8 9] [ 9 10] [11 12] [14 15] [15 16] [16 17] [17 18] [18 19] [19 20] [20 21] [21 22] [22 23] [23 24]]