superimpose_homologs
#
- biotite.structure.superimpose_homologs(fixed, mobile, substitution_matrix=None, gap_penalty=-10, min_anchors=3, terminal_penalty=False, **kwargs)[source]#
Superimpose a protein or nucleotide structure onto another one, considering sequence differences and conformational outliers.
The method finds corresponding residues by sequence alignment and selects their \(C_{\alpha}\) or \(P\) atoms as superimposition anchors. Then iteratively the anchor atoms are superimposed and outliers are removed.
- Parameters:
- fixedAtomArray, shape(n,) or AtomArrayStack, shape(m,n)
The fixed structure(s).
- mobileAtomArray, shape(n,) or AtomArrayStack, shape(m,n)
The structure(s) which is/are superimposed on the fixed structure. Must contain the same number of chains as fixed with corresponding chains being in the same order. The specific chain IDs can be different.
- substitution_matrixstr or SubstitutionMatrix, optional
The (name of the) substitution matrix used for sequence alignment. Must fit the chain type. By default,
"BLOSUM62"
and"NUC"
are used respectively. Only aligned residues with a positive score are considered as initial anchors.- gap_penaltyint or tuple of int, optional
The gap penalty for sequence alignment. A single value indicates a linear penalty, while a tuple indicates an affine penalty.
- min_anchorsint, optional
If less than min_anchors anchors are found by sequence alignment, the method ditches the alignment and matches all anchor atoms. If the number of anchor atoms is not equal in fixed and mobile in this fallback case, an exception is raised. Furthermore, the outlier removal is stopped, if less than min_anchors anchors would be left.
- terminal_penaltybool, optional
If set to true, gap penalties are applied to terminal gaps in the sequence alignment.
- **kwargs
Additional parameters for
superimpose_without_outliers()
.
- Returns:
- fittedAtomArray or AtomArrayStack
A copy of the mobile structure(s), superimposed on the fixed structure(s).
- transformAffineTransformation
This object contains the affine transformation(s) that were applied on mobile.
AffineTransformation.apply()
can be used to transform another AtomArray in the same way.- fixed_anchor_indices, mobile_anchor_indicesndarray, shape(k,), dtype=int
The indices of the anchor atoms in the fixed and mobile structure, respectively. These atoms were used for the superimposition.
See also
superimpose
Superimposition without outlier removal.
superimpose_without_outliers
Internally used for outlier removal.
superimpose_structural_homologs
Better suited for low sequence similarity.
Notes
As this method relies on sequence alignment, it works only for proteins/nucleic acids with decent sequence homology.