Interface Chain

All Superinterfaces:
Serializable
All Known Implementing Classes:
ChainImpl

public interface Chain extends Serializable

Defines the interface for a Chain. A Chain corresponds to a Chain in a PDB file. A chain consists 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 Link icon

    • clone Link icon

      Returns an identical copy of this Chain.
      Returns:
      an identical copy of this Chain
    • addGroup Link icon

      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 Link icon

      Get the 'private' asymId (internal chain IDs in mmCif) for this chain.
      Returns:
      the asymId
      See Also:
    • setId Link icon

      void setId(String asymId)
      Set the 'private' asymId (internal chain IDs in mmCif) for this chain.
      Parameters:
      asymId - the internal chain Id
    • setName Link icon

      void setName(String authId)
      Set the 'public' authId (chain ID in PDB file)
      Parameters:
      authId - the 'public' authId (chain ID in PDB file)
      See Also:
    • getName Link icon

      Get the 'public' authId (chain ID in PDB file)
      Returns:
      the authId for this chain.
      See Also:
    • getAtomGroup Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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. If null, defaults to the chain start.
      pdbresnumEnd - PDB residue number of end. If null, defaults to the chain end.
      Returns:
      Groups in between. or throws a StructureException if either start or end can not be found,
      Throws:
      StructureException
    • getGroupsByPDB Link icon

      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. If null, defaults to the chain start.
      pdbresnumEnd - PDB residue number of end. If null, defaults to the chain 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 Link icon

      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 Link icon

      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:
    • setEntityInfo Link icon

      void setEntityInfo(EntityInfo entityInfo)
      Sets the Entity information
      Parameters:
      entityInfo - the EntityInfo
      See Also:
    • getEntityInfo Link icon

      Returns the EntityInfo for this chain.
      Returns:
      the EntityInfo object
      See Also:
    • toString Link icon

      Overrides:
      toString in class Object
    • getBJSequence Link icon

      Converts the SEQRES groups of a Chain to a Biojava Sequence object.
      Returns:
      the SEQRES groups of the Chain as a Sequence object.
    • getAtomSequence Link icon

      Returns the sequence of amino acids as it has been provided in the ATOM records.
      Returns:
      amino acid sequence as string
      See Also:
    • getSeqResSequence Link icon

      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:
    • getSeqResGroups Link icon

      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 Link icon

      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 Link icon

      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:
    • setStructure Link icon

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

      Returns the parent Structure of this chain.
      Returns:
      the parent Structure object
      See Also:
    • toPDB Link icon

      Convert this Chain to a String in PDB format
      Returns:
    • toMMCIF Link icon

      Convert this Chain to a String in mmCIF format
      Returns:
    • setSeqMisMatches Link icon

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

      Gets annotated sequence mismatches for this chain. This is based on the STRUCT_REF_SEQ_DIF mmCif category
      Returns:
      a list of sequence mismatches (or null if none found)
    • getEntityType Link icon

      Returns the EntityType of this chain. Equivalent to getEntityInfo().getType()
      Returns:
      See Also:
    • isWaterOnly Link icon

      boolean isWaterOnly()
      Tests if a chain is consisting of water molecules only
      Returns:
      true if there are only solvent molecules in this chain.
    • isPureNonPolymer Link icon

      boolean isPureNonPolymer()
      Returns true if the given chain is composed of non-polymeric (including water) groups only.
      Returns:
      true if only non-polymeric groups in this chain.
    • getPredominantGroupType Link icon

      Get the predominant GroupType for a given Chain, following these rules:
      • if the ratio of number of residues of a certain GroupType to total non-water residues is above the threshold 0.95, then that GroupType is returned
      • if there is no GroupType that is above the threshold then the GroupType with most members is chosen, logging it

      See also ChemComp.getPolymerType() and ChemComp.getResidueType() which follow the PDB chemical component dictionary and provide a much more accurate description of groups and their linking.

      Returns:
      the predominant group type
    • isProtein Link icon

      boolean isProtein()
      Tell whether given chain is a protein chain
      Returns:
      true if protein, false if nucleotide or ligand
      See Also:
    • isNucleicAcid Link icon

      boolean isNucleicAcid()
      Tell whether given chain is DNA or RNA
      Returns:
      true if nucleic acid, false if protein or ligand
      See Also: