Interface Chain

All Known Implementing Classes:
ChainImpl

public interface Chain

Defines the interface for a Chain. A Chain corresponds to a Chain in a PDB file. A chain consists out of a list of Group objects. A Group can either be an AminoAcid, Hetatom or Nucleotide.

The BioJava API provides access to both the ATOM and SEQRES records in a PDB file. During parsing of a PDB file it aligns the ATOM and SEQRES groups and joins them. The SEQRES sequence can be accessed via getSeqResGroups() and the ATOM groups via getAtomGroups(). Groups that have been observed (i.e. they are in the ATOM records) can be detected by Group.has3D()

Since:
1.4
Version:
%I% %G%
Author:
Andreas Prlic
  • Method Details

    • clone

      Object clone()
      returns an identical copy of this Chain.
      Returns:
      an identical copy of this Chain
    • addGroup

      void addGroup(Group group)
      add a group to the list of ATOM record group of this chain. To add SEQRES records a more complex alignment between ATOM and SEQRES residues is required, please see SeqRes2AtomAligner for more details on that.
      Parameters:
      group - a Group object
    • getId

      Long getId()
      Get the ID used by Hibernate.
      Returns:
      the ID used by Hibernate
      See Also:
    • setId

      void setId(Long id)
      Set the ID used by Hibernate.
      Parameters:
      id - assigned by Hibernate
      See Also:
    • getAtomGroup

      Group getAtomGroup(int position)
      Return the Group at given position, from within Groups with observed density in the chain, i.e. those with coordinates in ATOM and HETATMS (including waters) records.
      Parameters:
      position - an int
      Returns:
      a Group object
      See Also:
    • getSeqResGroup

      Group getSeqResGroup(int position)
      Return the Group at given position, from within groups in the SEQRES records of the chain, i.e. the aminoacids/nucleotides in the construct.
      Parameters:
      position - an int
      Returns:
      a Group object
      See Also:
    • getAtomGroups

      List<Group> getAtomGroups()
      Return all Groups with observed density in the chain, i.e. those with coordinates in ATOM and HETATMS (including waters) records.
      Returns:
      a List object representing the Groups of this Chain.
      See Also:
    • setAtomGroups

      void setAtomGroups(List<Group> groups)
      Set all Groups with observed density in the chain, i.e. those with coordinates in ATOM and HETATMs (including waters) records.
      Parameters:
      groups - a List object representing the Groups of this Chain.
      See Also:
    • getAtomGroups

      List<Group> getAtomGroups(GroupType type)
      Return a List of all (observed) Groups of a special type, one of: GroupType.AMINOACID, GroupType.HETATM or GroupType.NUCLEOTIDE. Note that if a standard aminoacid appears as a HETATM (because it is part of a ligand) then it is still considered as GroupType.AMINOACID and not as GroupType.HETATM.
      Parameters:
      type - GroupType
      Returns:
      a List object
      See Also:
    • getGroupByPDB

      Group getGroupByPDB(ResidueNumber resNum) throws StructureException
      Get a group by its PDB residue numbering. If the PDB residue number is not known, throws a StructureException.
      Parameters:
      resNum - the PDB residue number of the group
      Returns:
      the matching group
      Throws:
      StructureException
    • getGroupsByPDB

      Group[] getGroupsByPDB(ResidueNumber pdbresnumStart, ResidueNumber pdbresnumEnd) throws StructureException
      Get all groups that are located between two PDB residue numbers.
      Parameters:
      pdbresnumStart - PDB residue number of start
      pdbresnumEnd - PDB residue number of end
      Returns:
      Groups in between. or throws a StructureException if either start or end can not be found,
      Throws:
      StructureException
    • getGroupsByPDB

      Group[] getGroupsByPDB(ResidueNumber pdbresnumStart, ResidueNumber pdbresnumEnd, boolean ignoreMissing) throws StructureException
      Get all groups that are located between two PDB residue numbers. In contrast to getGroupsByPDB this method call ignores if the exact outer groups are not found. This is useful e.g. when requesting the range of groups as specified by the DBREF records - these frequently are rather inaccurate.
      Parameters:
      pdbresnumStart - PDB residue number of start
      pdbresnumEnd - PDB residue number of end
      ignoreMissing - ignore missing groups in this range.
      Returns:
      Groups in between. or throws a StructureException if either start or end can not be found,
      Throws:
      StructureException
    • getAtomLength

      int getAtomLength()
      Returns the number of Groups with observed density in the chain, i.e. those with coordinates in ATOM and HETATMs (including waters) records
      Returns:
      the length
      See Also:
    • getSeqResLength

      int getSeqResLength()
      Returns the number of groups in the SEQRES records of the chain, i.e. the number of aminoacids/nucleotides in the construct
      Returns:
      the length
      See Also:
    • setCompound

      void setCompound(Compound compound)
      Sets the Compound
      Parameters:
      compound - the Compound
      See Also:
    • getCompound

      Compound getCompound()
      Returns the Compound for this chain.
      Returns:
      the Compound object
      See Also:
    • setChainID

      void setChainID(String name)
      Sets the name of this chain (Chain id in PDB file ).
      Parameters:
      name - a String specifying the name value
      See Also:
    • getChainID

      String getChainID()
      Gets the name of this chain (Chain id in PDB file ).
      Returns:
      a String representing the name value
      See Also:
    • getInternalChainID

      String getInternalChainID()
      If available, returns the internal chain ID that is used in mmCIF files (asym_id), otherwise null
      Returns:
      String or null
      Since:
      3.0.5
    • setInternalChainID

      void setInternalChainID(String internalChainID)
      Sets the internal chain ID that is used in mmCif files
      Parameters:
      internalChainID -
      Since:
      3.0.5
    • toString

      String toString()
      Overrides:
      toString in class Object
    • getBJSequence

      Sequence<?> getBJSequence()
      Converts the SEQRES groups of a Chain to a Biojava Sequence object.
      Returns:
      the SEQRES groups of the Chain as a Sequence object.
    • getAtomSequence

      String getAtomSequence()
      Returns the sequence of amino acids as it has been provided in the ATOM records. Non-standard residues will be present in the string only if the property has been set.
      Returns:
      amino acid sequence as string
      See Also:
    • getSeqResSequence

      String getSeqResSequence()
      Returns the PDB SEQRES sequence as a one-letter sequence string. Non-standard residues are represented by an "X".
      Returns:
      one-letter PDB SEQRES sequence as string
      See Also:
    • setSwissprotId

      void setSwissprotId(String sp_id)
      Sets the Swissprot id of this chain.
      Parameters:
      sp_id - a String specifying the swissprot id value
      See Also:
    • getSwissprotId

      String getSwissprotId()
      Gets the Swissprot id of this chain.
      Returns:
      a String representing the swissprot id value
      See Also:
    • getSeqResGroups

      List<Group> getSeqResGroups(GroupType type)
      Returns a List of all SEQRES groups of a special type, one of: GroupType.AMINOACID, GroupType.HETATM or GroupType.NUCLEOTIDE.
      Parameters:
      type - a GroupType
      Returns:
      an List object
      See Also:
    • getSeqResGroups

      List<Group> getSeqResGroups()
      Returns a list of all groups in SEQRES records of the chain, i.e. the aminoacids/nucleotides in the construct.
      Returns:
      a List of all Group objects of this chain
      See Also:
    • setSeqResGroups

      void setSeqResGroups(List<Group> seqResGroups)
      Sets the list of SeqResGroups for this chain.
      Parameters:
      seqResGroups - a List of Group objects that from the SEQRES groups of this chain.
      See Also:
    • setParent

      @Deprecated void setParent(Structure parent)
      Deprecated.
      use setStructure instead
      Sets the back-reference to its parent Structure.
      Parameters:
      parent - the parent Structure object for this Chain
      See Also:
    • setStructure

      void setStructure(Structure parent)
      Sets the back-reference to its parent Structure.
      Parameters:
      parent -
    • getParent

      @Deprecated Structure getParent()
      Deprecated.
      use getStructure(Structure) instead.
      Returns the parent Structure of this chain.
      Returns:
      the parent Structure object
      See Also:
    • getStructure

      Structure getStructure()
      Returns the parent Structure of this chain.
      Returns:
      the parent Structure object
      See Also:
    • getAtomLigands

      List<Group> getAtomLigands()
      Gets all groups that are not polymer groups and that are not solvent groups. Will automatically fetch Chemical Component files from the PDB web site, even if FileParsingParameters#setLoadChemCompInfo(boolean) has not been set to true. Otherwise the Ligands could not correctly be identified.
      Returns:
      list of Groups that are ligands
    • toPDB

      String toPDB()
      Convert this Chain to a String in PDB format
      Returns:
    • toMMCIF

      String toMMCIF()
      Convert this Chain to a String in mmCIF format
      Returns:
    • setSeqMisMatches

      void setSeqMisMatches(List<SeqMisMatch> seqMisMatches)
      Set annotated sequence mismatches for this chain. This is based on the STRUCT_REF_SEQ_DIF mmCif category
      Parameters:
      seqMisMatches -
    • getSeqMisMatches

      List<SeqMisMatch> getSeqMisMatches()
      Get annotated sequence mismatches for this chain. This is based on the STRUCT_REF_SEQ_DIF mmCif category