Class StructureImpl

  • All Implemented Interfaces:
    Serializable, Cloneable, Structure

    public class StructureImpl
    extends Object
    implements Structure
    Implementation of a PDB Structure. This class provides the data contained in a PDB file. to get structure objects from different sources see io package.
    Since:
    1.4
    Version:
    %I% %G%
    Author:
    Andreas Prlic, Jules Jacobsen
    See Also:
    Serialized Form
    • Constructor Detail

      • StructureImpl

        public StructureImpl()
        Constructs a StructureImpl object.
      • StructureImpl

        public StructureImpl​(Group g)
        Construct a Structure object that only contains a single group
        Parameters:
        g - group object
      • StructureImpl

        public StructureImpl​(Chain c)
        construct a Structure object that contains a particular chain
        Parameters:
        c - chain
    • Method Detail

      • getId

        public Long getId()
        get the ID used by Hibernate
        Specified by:
        getId in interface Structure
        Returns:
        the ID used by Hibernate
      • setId

        public void setId​(Long id)
        set the ID used by Hibernate
        Specified by:
        setId in interface Structure
        Parameters:
        id - the hibernate ID
      • clone

        public Structure clone()
        returns an identical copy of this structure .
        Specified by:
        clone in interface Structure
        Overrides:
        clone in class Object
        Returns:
        an identical Structure object
      • findGroup

        public Group findGroup​(String chainName,
                               String pdbResnum,
                               int modelnr)
                        throws StructureException
        Request a particular group from a structure. considers only model nr X. count starts with 0.
        Specified by:
        findGroup in interface Structure
        Parameters:
        chainName - the chain name of the chain to use
        pdbResnum - the PDB residue number of the requested group
        modelnr - the number of the model to use
        Returns:
        Group the requested Group
        Throws:
        StructureException
      • findGroup

        public Group findGroup​(String chainName,
                               String pdbResnum)
                        throws StructureException
        Request a particular group from a structure. by default considers only the first model in the structure.
        Specified by:
        findGroup in interface Structure
        Parameters:
        chainName - the name of the chain to use
        pdbResnum - the PDB residue number of the requested group
        Returns:
        Group the requested Group
        Throws:
        StructureException
      • addChain

        public void addChain​(Chain chain)
        Add a new chain to the first model
        Specified by:
        addChain in interface Structure
        Parameters:
        chain - a Chain object
      • addChain

        public void addChain​(Chain chain,
                             int modelnr)
        Add a new chain to the model specified by the given index
        Specified by:
        addChain in interface Structure
        Parameters:
        chain - a Chain object
        modelnr - an int specifying to which model the Chain should be added
      • getChainByIndex

        public Chain getChainByIndex​(int number)
        Retrieve a chain by its index within the Structure .
        Specified by:
        getChainByIndex in interface Structure
        Parameters:
        number - the index of the desired chain in the structure
        Returns:
        a Chain object
      • getChainByIndex

        public Chain getChainByIndex​(int modelnr,
                                     int number)
        Retrieve a chain by its indices within the Structure and model.
        Specified by:
        getChainByIndex in interface Structure
        Parameters:
        modelnr - the model the desired chain is in
        number - the index of the desired chain in the structure
        Returns:
        a Chain object
      • addModel

        public void addModel​(List<Chain> modelChains)
        Add a new model.
        Specified by:
        addModel in interface Structure
        Parameters:
        modelChains - a List object containing the Chains of the new Model
      • setModel

        public void setModel​(int position,
                             List<Chain> modelChains)
        A convenience function if one wants to edit and replace the models in a structure. Allows to set (replace) the model at position with the new List of Chains.
        Specified by:
        setModel in interface Structure
        Parameters:
        position - starting at 0
        modelChains - list of chains representing a model
      • size

        public int size()
        Description copied from interface: Structure
        Return number of polymer Chains in this Structure for first model.
        Specified by:
        size in interface Structure
        Returns:
        the number of polymer Chains in this Structure
      • size

        public int size​(int modelnr)
        return number of chains of model.
        Specified by:
        size in interface Structure
        Parameters:
        modelnr - an int specifying the number of the Model that should be used
        Returns:
        an int representing the number of Chains in this Model
      • isCrystallographic

        public boolean isCrystallographic()
        Whether this Structure is a crystallographic structure or not. It will first check the experimental technique and if not present it will try to guess from the presence of a space group and sensible cell parameters
        Specified by:
        isCrystallographic in interface Structure
        Returns:
        true if crystallographic, false otherwise
      • isNmr

        public boolean isNmr()
        Whether this Structure is a NMR structure or not. It will first check the experimental technique and if not present it will try to guess from the presence of more than 1 model and from b-factors being 0 in first chain of first model
        Specified by:
        isNmr in interface Structure
        Returns:
        true if NMR, false otherwise
        See Also:
        Structure.nrModels()
      • getPolyChains

        public List<ChaingetPolyChains​(int modelIdx)
        Description copied from interface: Structure
        Return all polymeric chains for the given model index.
        Specified by:
        getPolyChains in interface Structure
        Parameters:
        modelIdx - the model index
        Returns:
        all polymeric chains.
      • getNonPolyChains

        public List<ChaingetNonPolyChains​(int modelIdx)
        Description copied from interface: Structure
        Return all non-polymeric chains for the given model index.
        Specified by:
        getNonPolyChains in interface Structure
        Parameters:
        modelIdx - the model index
        Returns:
        all non-polymeric chains.
      • setChains

        public void setChains​(int modelnr,
                              List<Chain> chains)
        Set the chains for a model
        Specified by:
        setChains in interface Structure
        Parameters:
        modelnr - the number of the model
        chains - the chains for a model
      • getChainByPDB

        public Chain getChainByPDB​(String authId,
                                   int modelnr)
                            throws StructureException
        Request a chain by its public id (author id) for the given model index. Before 5.0 it returned a Chain that had both polymeric and non-polymeric groups following the PDB-file data model. Since 5.0 it only returns the polymeric part of the chain.
        Specified by:
        getChainByPDB in interface Structure
        Parameters:
        authId - the author id (chainName, public chain id)
        modelnr - the index of the required model (0-based)
        Returns:
        the Chain that matches the authId in the model
        Throws:
        StructureException - if chain can't be found
      • getChainByPDB

        public Chain getChainByPDB​(String chainId)
                            throws StructureException
        Request a chain by its public id (author id) for the first model. Before 5.0 it returned a Chain that had both polymeric and non-polymeric groups following the PDB-file data model. Since 5.0 it only returns the polymeric part of the chain.
        Specified by:
        getChainByPDB in interface Structure
        Parameters:
        chainId - the author id (chainName, public chain id)
        Returns:
        the Chain that matches the authId
        Throws:
        StructureException - if chain can't be found
      • getPolyChain

        public Chain getPolyChain​(String asymId,
                                  int modelIdx)
        Description copied from interface: Structure
        Retrieve a polymeric Chain based on the 'internal' chain id (asymId) for the given model index

        See Structure.getPolyChainByPDB(String, int) for a similar method using the chain name (authId).

        Specified by:
        getPolyChain in interface Structure
        Parameters:
        asymId - the asymId (chainId)
        modelIdx - the index of the required model (0-based)
        Returns:
        a polymeric Chain or null if it can't be found
      • getNonPolyChain

        public Chain getNonPolyChain​(String asymId)
        Description copied from interface: Structure
        Retrieve a non-polymeric Chain based on the 'internal' chain id (asymId) for the first model
        Specified by:
        getNonPolyChain in interface Structure
        Parameters:
        asymId - the asymId (chainId)
        Returns:
        a non-polymeric chain or null if it can't be found
      • getNonPolyChain

        public Chain getNonPolyChain​(String asymId,
                                     int modelIdx)
        Description copied from interface: Structure
        Retrieve a non-polymeric Chain based on the 'internal' chain id (asymId) for the given model index
        Specified by:
        getNonPolyChain in interface Structure
        Parameters:
        asymId - the asymId (chainId)
        modelIdx - the index of the required model (0-based)
        Returns:
        a non-polymeric Chain or null if it can't be found
      • getPolyChainByPDB

        public Chain getPolyChainByPDB​(String authId)
        Description copied from interface: Structure
        Retrieve a polymeric Chain based on the 'public' chain name (authId) for the first model

        See Structure.getPolyChain(String) for a similar method using the chain id (asymId).

        Specified by:
        getPolyChainByPDB in interface Structure
        Parameters:
        authId - the author id (chainName, public chain id)
        Returns:
        a polymeric Chain or null if it can't be found
      • getPolyChainByPDB

        public Chain getPolyChainByPDB​(String authId,
                                       int modelIdx)
        Description copied from interface: Structure
        Retrieve a polymeric Chain based on the 'public' chain name (authId) for the given model index.

        See Structure.getPolyChain(String, int) for a similar method using the chain id (asymId).

        Specified by:
        getPolyChainByPDB in interface Structure
        Parameters:
        authId - the author id (chainName, public chain id)
        modelIdx - the index of the required model (0-based)
        Returns:
        a polymeric Chain or null if it can't be found
      • getNonPolyChainsByPDB

        public List<ChaingetNonPolyChainsByPDB​(String authId)
        Description copied from interface: Structure
        Retrieve all non-polymeric Chains corresponding to the given 'public' chain name (authId) for the first model.
        Specified by:
        getNonPolyChainsByPDB in interface Structure
        Parameters:
        authId - the author id (chainName, public chain id)
        Returns:
        a list of non-polymeric Chains, if none found the list will be empty
      • getNonPolyChainsByPDB

        public List<ChaingetNonPolyChainsByPDB​(String authId,
                                                 int modelIdx)
        Description copied from interface: Structure
        Retrieve all non-polymeric Chains corresponding to the 'public' chain name (authId) and the given model index.
        Specified by:
        getNonPolyChainsByPDB in interface Structure
        Parameters:
        authId - the author id (chainName, public chain id)
        modelIdx - the index of the required model (0-based)
        Returns:
        a list of non-polymeric Chains, if none found the list will be empty
      • getWaterChain

        public Chain getWaterChain​(String asymId)
        Description copied from interface: Structure
        Retrieve a water Chain based on the 'internal' chain id (asymId) for the first model
        Specified by:
        getWaterChain in interface Structure
        Parameters:
        asymId - the asymId (chainId)
        Returns:
        a water Chain or null if it can't be found
      • getWaterChain

        public Chain getWaterChain​(String asymId,
                                   int modelIdx)
        Description copied from interface: Structure
        Retrieve a water chain based on the 'internal' chain id (asymId) for the given model index
        Specified by:
        getWaterChain in interface Structure
        Parameters:
        asymId - the asymId (chainId)
        modelIdx - the index of the required model (0-based)
        Returns:
      • getWaterChainByPDB

        public Chain getWaterChainByPDB​(String authId)
        Description copied from interface: Structure
        Retrieve a water Chain based on the 'public' chain name (authId) for the first model
        Specified by:
        getWaterChainByPDB in interface Structure
        Parameters:
        authId - the author id (chainName, public chain id)
        Returns:
      • getWaterChainByPDB

        public Chain getWaterChainByPDB​(String authId,
                                        int modelIdx)
        Description copied from interface: Structure
        Retrieve a water Chain based on the 'public' chain name (authId) for the given model index
        Specified by:
        getWaterChainByPDB in interface Structure
        Parameters:
        authId - the author id (chainName, public chain id)
        modelIdx - the index of the required model (0-based)
        Returns:
      • toPDB

        public String toPDB()
        Create a String that contains this Structure's contents in PDB file format.
        Specified by:
        toPDB in interface Structure
        Returns:
        a String that looks like a PDB file
        See Also:
        FileConvert
      • toMMCIF

        public String toMMCIF()
        Create a String that contains this Structure's contents in MMCIF file format.
        Specified by:
        toMMCIF in interface Structure
        Returns:
        a String representation of the Structure object in mmCIF.
      • hasChain

        public boolean hasChain​(String authId)
        Check if a chain with the chainId aymId is contained in this structure.
        Specified by:
        hasChain in interface Structure
        Parameters:
        authId - the Id of the chain
        Returns:
        true if a chain with the id asymId is found
      • hasNonPolyChain

        public boolean hasNonPolyChain​(String asymId)
        Check if a non polymeric chain with chainId asymId is contained in the structure.
        Specified by:
        hasNonPolyChain in interface Structure
        Parameters:
        asymId - the id of the chain
        Returns:
        true if a nonpolymeric chain with the asymId is found
      • hasPdbChain

        public boolean hasPdbChain​(String authId)
        Check if a chain with chain name authId is contained in the structure
        Specified by:
        hasPdbChain in interface Structure
        Parameters:
        authId - the chain name
        Returns:
        true if a chain with the name authId is found
      • getCompoundById

        public EntityInfo getCompoundById​(int molId)
        Request a particular entity by its entity id (mol id in legacy PDB format)
        Specified by:
        getCompoundById in interface Structure
        Parameters:
        molId - the number of the entity
        Returns:
        a entityInfo
      • getEntityById

        public EntityInfo getEntityById​(int entityId)
        Request a particular entity by its entity id (mol id in legacy PDB format)
        Specified by:
        getEntityById in interface Structure
        Parameters:
        entityId - the number of the entity
        Returns:
        an entity, or null if the molId was not found
      • setDBRefs

        public void setDBRefs​(List<DBRef> dbrefs)
        Set the list of database references for this structure
        Specified by:
        setDBRefs in interface Structure
        Parameters:
        dbrefs - list of DBRef objects
      • setPDBHeader

        public void setPDBHeader​(PDBHeader pdbHeader)
        Set the the header information for this PDB file
        Specified by:
        setPDBHeader in interface Structure
        Parameters:
        pdbHeader - the PDBHeader object
      • getSSBonds

        public List<BondgetSSBonds()
        Get the list of disulfide Bonds as they have been defined in the PDB files
        Specified by:
        getSSBonds in interface Structure
        Returns:
        a list of Bonds
      • addSSBond

        public void addSSBond​(Bond ssbond)
        Adds a single disulfide Bond to this structure
        Specified by:
        addSSBond in interface Structure
        Parameters:
        ssbond - the SSBond.
      • hasJournalArticle

        public boolean hasJournalArticle()
        Return whether or not the entry has an associated journal article or publication. The JRNL section is not mandatory and thus may not be present.
        Specified by:
        hasJournalArticle in interface Structure
        Returns:
        flag if a JournalArticle could be found.
      • setBiologicalAssembly

        public void setBiologicalAssembly​(boolean biologicalAssembly)
        Sets a flag to indicate if this structure is a biological assembly
        Specified by:
        setBiologicalAssembly in interface Structure
        Parameters:
        biologicalAssembly - true if biological assembly, otherwise false
        Since:
        3.2
      • isBiologicalAssembly

        public boolean isBiologicalAssembly()
        Gets flag that indicates if this structure is a biological assembly
        Specified by:
        isBiologicalAssembly in interface Structure
        Returns:
        the sites contained in this structure
        Since:
        3.2
      • getRanges

        @Deprecated
        public List<StringgetRanges()
        Deprecated.
        Returns a list of residue ranges. For example:
         getRanges().get(0): 'A'
         getRanges().get(1): 'B_5-100'
         
        This is a unique representation.
        Specified by:
        getRanges in interface Structure