Contenuto principale

pdbsuperpose

Superpose 3-D structures of two proteins

    Description

    pdbsuperpose(PDB1,PDB2) computes and applies a linear transformation to superpose the coordinates of the protein structure represented in PDB2 to the coordinates of the protein structure represented in PDB1.

    Alpha carbon atom coordinates of single chains for each structure are considered to compute the linear transformation (translation, reflection, orthogonal rotation, and scaling). By default, the first chain in each structure is considered to compute the transformation, and the transformation is applied to the entire molecule.

    example

    Dist = pdbsuperpose(PDB1,PDB2) returns a dissimilarity measure given by the sum of the squared errors between PDB1 and PDB2. For more information, see procrustes.

    [Dist,RMSD] = pdbsuperpose(PDB1,PDB2) also returns the root mean square distance between the coordinates of the PDB1 structure and the transformed PDB2 structure, considering only the atoms used to compute the linear transformation.

    example

    [Dist,RMSD,Transf] = pdbsuperpose(PDB1,PDB2) also returns the linear transformation computed to superpose the chain of PDB2 to the chain of PDB1.

    Only alpha carbon atom coordinates are used to compute the linear transformation.

    [Dist,RMSD,Transf,PDB2TX] = pdbsuperpose(PDB1,PDB2) also returns the coordinates in the transformed PDB2 protein structure.

    ___ = pdbsuperpose(PDB1,PDB2,Name=Value) specifies options using one or more name-value arguments in addition to the arguments in previous syntaxes.

    example

    Examples

    collapse all

    Superpose two calmodulin structures according to the linear transformation obtained using two 20 residue-long segments.

    pdbsuperpose("1a29","1cll",Segment={"10-30:A","10-30:A"})
    ans = 
    0.0015
    

    Use the getpdb function to retrieve protein structure data from the Protein Data Bank (PDB) database for two hemoglobin structures.

    str1 = getpdb("1dke");
    str2 = getpdb("4hhb");

    Superpose the first model of the two hemoglobin structures, applying the transformation to the entire molecule.

    d = pdbsuperpose(str1,str2);

    Superpose the two hemoglobin structures (each containing four chains), computing and applying the linear transformation chain-by-chain.

    strtx = str2;
    chainList1 = {str1.Sequence.ChainID};
    chainList2 = {str2.Sequence.ChainID};
    for i = 1:4
        [d(i),rmsd(i),tr(i),strtx] = ...
            pdbsuperpose(str1,strtx, ...
            Segment={chainList1{i}; chainList2{i}}, ...
            Apply="chain");
    end

    Superpose chain B on chain A of a thioredoxin structure (PDBID = 2yn1), and then apply the transformation only to chain B.

    str1 = getpdb('2yn1');
    [d,rmsd,tr] = ...
        pdbsuperpose(str1,str1, ...
                     Segment={"A","B"}, ...
                     Apply="chain")
    d = 
    2.7548e-04
    
    rmsd = 
    0.2044
    
    tr = struct with fields:
        T: [3×3 double]
        b: 1
        c: [105×3 double]
    
    

    Input Arguments

    collapse all

    Protein structure, specified as one of these values:

    • Character vector or string specifying a unique identifier for a protein structure record in the Protein Data Bank (PDB) database.

    • Variable containing a PDB-formatted MATLAB® structure, such as returned by getpdb or pdbread.

    • Character vector or string specifying a file name or, a path and file name. The referenced file is a PDB-formatted file. If you specify only a file name, that file must be on the MATLAB search path or in the MATLAB Current Folder.

    Protein structure, specified as one of these values:

    • Character vector or string specifying a unique identifier for a protein structure record in the Protein Data Bank (PDB) database.

    • Variable containing a PDB-formatted MATLAB structure, such as returned by getpdb or pdbread.

    • Character vector or string specifying a file name or, a path and file name. The referenced file is a PDB-formatted file. If you specify only a file name, that file must be on the MATLAB search path or in the MATLAB Current Folder.

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: pdbsuperpose(str1,str1,Segment={"A","B"},Apply="chain")

    Models to consider in superposition, specified as a two-element numeric array whose elements correspond to models in PDB1 and PDB2 respectively when PDB1 or PDB2 contains multiple models. By default, the first model in each structure is considered.

    Data Types: double

    Indicator to include a scaling component in the linear transformation, specified as true or false.

    Data Types: logical

    Indicator to include a translation component in the linear transformation, specified as true or false.

    Data Types: logical

    Indicator to include a reflection component in the linear transformation, specified as true, false, or "best". The default value is "best", and it includes or excludes a reflection component depending on the best fit solution.

    Data Types: logical | char | string

    Indicator to perform a local sequence alignment and then use only the portions of the structures corresponding to the segments that align to compute the linear transformation, specified as true or false.

    If you set SeqAlign to true, you can also specify the these arguments used by the swalign function:

    • ScoringMatrix

    • GapOpen

    • ExtendGap

    For more information on these properties, see swalign.

    Data Types: logical

    Boundaries and the chain of two subsequences to consider for computing the linear transformation, specified as a cell array of character vectors with the following format: {'start1-stop1:chain1','start2-stop2:chain2'}.

    You can omit the boundaries to indicate the entire chain, such as in {'chain1','start2-stop2:chain2'}. You can specify only one pair of segments at any given time, and the specified segments are assumed to contain the same number of alpha carbon atoms.

    Data Types: cell

    Extent to apply the linear transformation, specified as "all", "segment", or "chain".

    • "all" — Apply the linear transformation to the entire PDB2 structure.

    • "chain" — Apply the linear transformation to the specified chain only.

    • "segment" — Apply the linear transformation to the specified segment only.

    Data Types: char | string

    Output Arguments

    collapse all

    Dissimilarity measure given by the sum of the squared errors between PDB1 and PDB2, returned as a number. For more information, see procrustes.

    Root mean square distance between the coordinates of the PDB1 structure and the transformed PDB2 structure, considering only the atoms used to compute the linear transformation, returned as a number.

    Linear transformation computed to superpose the chain of PDB2 to the chain of PDB1, returned as a structure array with these fields:

    • T — Orthogonal rotation and reflection component.

    • b — Scale component.

    • c — Translation component.

    Only alpha carbon atom coordinates are used to compute the linear transformation.

    You can use the Transf output as input to the pdbtransform function.

    Coordinates in the transformed PDB2 protein structure, returned as a PDB-formatted structure array.

    Version History

    Introduced in R2008b

    expand all