Class StructureImpl

java.lang.Object
org.biojava.nbio.structure.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:
  • Constructor Details

    • 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 Details

    • 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
    • setName

      public void setName(String nam)
      Set biological name of Structure .
      Specified by:
      setName in interface Structure
      Parameters:
      nam - a String specifying the biological name of the Structure
      See Also:
    • getName

      public String getName()
      Get biological name of Structure.
      Specified by:
      getName in interface Structure
      Returns:
      a String representing the biological name of the Structure
      See Also:
    • getStructureIdentifier

      Description copied from interface: Structure
      Get an identifier corresponding to this structure
      Specified by:
      getStructureIdentifier in interface Structure
      Returns:
      The StructureIdentifier used to create this structure
    • setStructureIdentifier

      public void setStructureIdentifier(StructureIdentifier structureIdentifier)
      Description copied from interface: Structure
      Set the identifier corresponding to this structure
      Specified by:
      setStructureIdentifier in interface Structure
      Parameters:
      structureIdentifier - the structureIdentifier corresponding to this structure
    • 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
    • setChains

      public void setChains(List<Chain> chains)
      Set the chains of a structure, if this is a NMR structure, this will only set model 0.
      Specified by:
      setChains in interface Structure
      Parameters:
      chains - the list of chains for this structure.
      See Also:
    • 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
    • toString

      public String toString()
      String representation.
      Specified by:
      toString in interface Structure
      Overrides:
      toString in class Object
    • 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
    • nrModels

      public int nrModels()
      return number of models.
      Specified by:
      nrModels in interface Structure
      Returns:
      an int representing the number of models in this Structure
      See Also:
    • 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:
    • getChains

      public List<Chain> getChains(int modelIdx)
      Retrieve all chains of a model.
      Specified by:
      getChains in interface Structure
      Parameters:
      modelIdx - an int
      Returns:
      a List object containing the Chains of Model nr. modelnr
      See Also:
    • getChains

      public List<Chain> getChains()
      Retrieve all chains for the first model. This is the same as getChains(0);
      Specified by:
      getChains in interface Structure
      Returns:
      a List object containing the Chains of Model nr. modelnr
      See Also:
    • getPolyChains

      Description copied from interface: Structure
      Return all polymeric chains for the first model
      Specified by:
      getPolyChains in interface Structure
      Returns:
      all polymeric chains.
    • getPolyChains

      public List<Chain> getPolyChains(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

      Description copied from interface: Structure
      Return all non-polymeric chains for the first model
      Specified by:
      getNonPolyChains in interface Structure
      Returns:
      all non-polymeric chains.
    • getNonPolyChains

      public List<Chain> getNonPolyChains(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.
    • getWaterChains

      Description copied from interface: Structure
      Return all water chains for the first model
      Specified by:
      getWaterChains in interface Structure
      Returns:
    • getWaterChains

      public List<Chain> getWaterChains(int modelIdx)
      Description copied from interface: Structure
      Return all water chains for the given model index
      Specified by:
      getWaterChains in interface Structure
      Parameters:
      modelIdx -
      Returns:
    • 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
    • getModel

      public List<Chain> getModel(int modelnr)
      Retrieve all Chains belonging to a model .
      Specified by:
      getModel in interface Structure
      Parameters:
      modelnr - an int
      Returns:
      a List object
      See Also:
    • getChain

      public Chain getChain(String asymId, int modelnr)
      Retrieve a Chain (polymeric, non-polymeric or water) based on the 'internal' chain id (asymId) for the given model index
      Specified by:
      getChain in interface Structure
      Parameters:
      asymId - the asymId (chainId)
      modelnr - the index of the required model (0-based)
      Returns:
      See Also:
    • getChain

      public Chain getChain(String asymId)
      Retrieve a Chain (polymeric, non-polymeric or water) based on the 'internal' chain id (asymId) for the first model
      Specified by:
      getChain in interface Structure
      Parameters:
      asymId - the asymId (chainId)
      Returns:
      See Also:
    • getPolyChain

      public Chain getPolyChain(String asymId)
      Description copied from interface: Structure
      Retrieve a polymeric Chain based on the 'internal' chain id (asymId) for the first model

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

      Specified by:
      getPolyChain in interface Structure
      Parameters:
      asymId - the asymId (chainId)
      Returns:
      a polymeric Chain or null if it 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

      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<Chain> getNonPolyChainsByPDB(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:
    • 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
    • setEntityInfos

      public void setEntityInfos(List<EntityInfo> molList)
      Set the EntityInfo
      Specified by:
      setEntityInfos in interface Structure
      Parameters:
      molList - list of entityinfo objects
    • addEntityInfo

      public void addEntityInfo(EntityInfo entityInfo)
      Add an EntityInfo to this Structure
      Specified by:
      addEntityInfo in interface Structure
    • getEntityInfos

      Get all the EntityInfo for this Structure.
      Specified by:
      getEntityInfos in interface Structure
      Returns:
      a list of EntityInfos
    • 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
    • getDBRefs

      public List<DBRef> getDBRefs()
      Get the list of database references
      Specified by:
      getDBRefs in interface Structure
      Returns:
      list of DBRef objects
    • 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
    • getPDBHeader

      Return the header information for this PDB file. N.B. Take care when you blindly use the returned object from this method, because it might be null in some cases.
      Specified by:
      getPDBHeader in interface Structure
      Returns:
      the PDBHeader object
    • 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<Bond> getSSBonds()
      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
    • setSSBonds

      public void setSSBonds(List<Bond> ssbonds)
      Set the list of SSBonds for this structure
      Specified by:
      setSSBonds in interface Structure
      Parameters:
      ssbonds -
    • 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.
    • getJournalArticle

      get the associated publication as defined by the JRNL records in a PDB file.
      Specified by:
      getJournalArticle in interface Structure
      Returns:
      a JournalArticle
    • setJournalArticle

      public void setJournalArticle(JournalArticle journalArticle)
      set the associated publication as defined by the JRNL records in a PDB file.
      Specified by:
      setJournalArticle in interface Structure
      Parameters:
      journalArticle - the article
    • getSites

      public List<Site> getSites()
      Specified by:
      getSites in interface Structure
      Returns:
      the sites contained in this structure
    • setSites

      public void setSites(List<Site> sites)
      Specified by:
      setSites in interface Structure
      Parameters:
      sites - the sites to set in the structure
    • 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
    • setCrystallographicInfo

      public void setCrystallographicInfo(PDBCrystallographicInfo crystallographicInfo)
      Sets crystallographic information for this structure
      Specified by:
      setCrystallographicInfo in interface Structure
      Parameters:
      crystallographicInfo - crystallographic information
      Since:
      3.2
    • getCrystallographicInfo

      Gets crystallographic information for this structure
      Specified by:
      getCrystallographicInfo in interface Structure
      Returns:
      PDBCrystallographicInfo crystallographic information
      Since:
      3.2
    • getIdentifier

      Get a string representing this structure's contents. The following places are searched for a non-null value, with the first being returned:
      1. Structure.getStructureIdentifier().getIdentifier(), which should give the string originally used to create the structure
      2. Structure.getName()
      3. A combination of Structure.getPDBCode() with a heuristic description of the residue ranges, in SubstructureIdentifier format.
      Specified by:
      getIdentifier in interface Structure
      Returns:
      A SubstructureIdentifier-format string describing the residue ranges in this structure
    • getPDBCode

      Deprecated.
      use getPdbId() to get a PdbId object or getPdbId().getId() to get a String
      Get PDB code of structure.
      Specified by:
      getPDBCode in interface Structure
      Returns:
      a String representing the PDBCode value
      See Also:
    • setPDBCode

      @Deprecated public void setPDBCode(String pdb_id)
      Deprecated.
      Set PDB code of structure .
      Specified by:
      setPDBCode in interface Structure
      Parameters:
      pdb_id - a String specifying the PDBCode
      See Also:
    • getPdbId

      public PdbId getPdbId()
      Returns the PDB identifier associated with this StructureIdentifier.
      Specified by:
      getPdbId in interface Structure
      Returns:
      the PdbId object
      Since:
      6.0.0
    • setPdbId

      public void setPdbId(PdbId pdbId)
      Sets the PdbId identifier associated with this structure.
      Specified by:
      setPdbId in interface Structure
      Parameters:
      pdbId - the PdbId identifier object to set
      Since:
      6.0.0
    • resetModels

      public void resetModels()
      Description copied from interface: Structure
      Resets all models of this Structure
      Specified by:
      resetModels in interface Structure