Superimposition Module

A Module to superimpose two protein chains.

class pdb_superimposer.superimposition.ChainSuperimposer(reference, other, other_struc)[source]

A class to organise the superimposition of two chains. First the atoms involved in the operation are selected. Then Bio.PDB.Superimposer.Superimposer is employed to do the superimposition.

__init__(reference, other, other_struc)[source]

Initialise the class.

Parameters
  • reference (Bio.PDB.Chain.Chain) – The chain used as a template in the superimposition.

  • other (Bio.PDB.Chain.Chain) – The chain to be transformed.

  • other_struc (Bio.PDB.Structure.Structure) – The structure object of the other chain. This enables the transformation matrix to be applied across the whole structure.

_residue_selection()[source]

A class method to do the essential residue filtering using the UniProt sequence positions.

  • Find intersecting sequence indices between the reference and other.

  • Remove index if at a given UniProt index the residue type in reference and other is not the same

  • Remove index if at a given UniProt index either the reference or other residue is incomplete

Returns

A set of sequence indices

Return type

set

static binding_site(chain, hetid, within=8.0)[source]

Detect binding site residues for a supplied hetid

Parameters
  • chain (Bio.PDB.Chain) – A protein chain

  • hetid (str) – A ligand identifier

  • within (float) – A cutoff distance

Returns

A boolean list denoting inclusion in the superimposition operation

Return type

list

>>> from pdb_superimposer import ChainSuperimposer, Helper
>>> ref = Helper.protein_from_file("2VTA", "2VTA.pdb")
>>> ref_chain = [c for c in ref[0]][0]
>>> ans = ChainSuperimposer.binding_site(ref_chain, "LZ1", 10.0)
{1, 2, 3, ...}
static is_residue_incomplete(res)[source]

Determine whether the residue is incomplete (i.e. whether there are missing residue atoms)

Parameters

res – A PDB residue

Type

Bio.PDB.Residue.Residue

Returns

A boolean expressing whether the residue is incomplete

Return type

bool

>>> from pdb_superimposer import ChainSuperimposer, Helper
>>> ref = Helper.protein_from_file("2VTA", "2VTA.pdb")
>>> ref_chain = [c for c in ref[0]][0]
>>> first_res = [r for r in ref_chain][0]
>>> bs = ChainSuperimposer.is_residue_incomplete(first_res)
False
superimpose(hetid=None, within=8.0)[source]

The superimposition method. If optional hetid is supplied, only binding site residues will used for the superimposition.

Parameters
  • hetid (str) – Ligand identifier

  • binding_site (bool) – flag

  • within (float) – binding site cutoff distance

# Example useage
from pdb_superimposer import ChainSuperimposer, Helper

ref = Helper.protein_from_file("2VTA", "2VTA.pdb")
ref_chain = [c for c in ref[0]][0]

other = Helper.protein_from_file("6YLK", "6YLK.pdb")
ref_chain = [c for c in other[0]][0]

cs = ChainSuperimposer(reference=ref_chain, other=other_chain, other_struc=other)
cs.superimpose()