Class ChainImpl

java.lang.Object
org.biojava.nbio.structure.ChainImpl
All Implemented Interfaces:
Serializable, Chain

public class ChainImpl extends Object implements Chain, Serializable
A Chain in a PDB file. It contains several groups which can be of one of the types defined in the GroupType constants.
Since:
1.4
Author:
Andreas Prlic, Jules Jacobsen
See Also:
  • Field Details

    • DEFAULT_CHAIN_ID

      public static String DEFAULT_CHAIN_ID
      The default chain identifier used to be an empty space
  • Constructor Details

    • ChainImpl

      public ChainImpl()
      Constructs a ChainImpl object.
  • Method Details

    • getId

      public Long getId()
      Get the ID used by Hibernate.
      Specified by:
      getId in interface Chain
      Returns:
      the ID used by Hibernate
      See Also:
    • setId

      public void setId(Long id)
      Set the ID used by Hibernate.
      Specified by:
      setId in interface Chain
      Parameters:
      id - assigned by Hibernate
      See Also:
    • setParent

      @Deprecated public void setParent(Structure parent)
      Deprecated.
      Sets the back-reference to its parent Structure.
      Specified by:
      setParent in interface Chain
      Parameters:
      parent - the parent Structure object for this Chain
      See Also:
    • setStructure

      public void setStructure(Structure parent)
      Sets the back-reference to its parent Structure.
      Specified by:
      setStructure in interface Chain
    • getStructure

      public Structure getStructure()
      Returns the parent Structure of this chain.
      Specified by:
      getStructure in interface Chain
      Returns:
      the parent Structure object
      See Also:
    • getParent

      @Deprecated public Structure getParent()
      Deprecated.
      use getStructure instead.
      Returns the parent Structure of this chain.
      Specified by:
      getParent in interface Chain
      Returns:
      the parent Structure object
      See Also:
    • clone

      public Object clone()
      Returns an identical copy of this Chain .
      Specified by:
      clone in interface Chain
      Overrides:
      clone in class Object
      Returns:
      an identical copy of this Chain
    • setCompound

      public void setCompound(Compound mol)
      Sets the Compound
      Specified by:
      setCompound in interface Chain
      Parameters:
      mol - the Compound
      See Also:
    • getCompound

      public Compound getCompound()
      Returns the Compound for this chain.
      Specified by:
      getCompound in interface Chain
      Returns:
      the Compound object
      See Also:
    • setSwissprotId

      public void setSwissprotId(String sp_id)
      set the Swissprot id of this chains .
      Specified by:
      setSwissprotId in interface Chain
      Parameters:
      sp_id - a String specifying the swissprot id value
      See Also:
    • getSwissprotId

      public String getSwissprotId()
      get the Swissprot id of this chains .
      Specified by:
      getSwissprotId in interface Chain
      Returns:
      a String representing the swissprot id value
      See Also:
    • addGroup

      public 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.
      Specified by:
      addGroup in interface Chain
      Parameters:
      group - a Group object
    • getAtomGroup

      public 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.
      Specified by:
      getAtomGroup in interface Chain
      Parameters:
      position - an int
      Returns:
      a Group object
      See Also:
    • getAtomGroups

      public 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.
      Specified by:
      getAtomGroups in interface Chain
      Parameters:
      type - GroupType
      Returns:
      a List object
      See Also:
    • getAtomGroups

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

      public 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.
      Specified by:
      setAtomGroups in interface Chain
      Parameters:
      groups - a List object representing the Groups of this Chain.
      See Also:
    • getGroupsByPDB

      @Deprecated public Group[] getGroupsByPDB(ResidueNumber start, ResidueNumber end, boolean ignoreMissing) throws StructureException
      Deprecated.
      Description copied from interface: Chain
      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.
      Specified by:
      getGroupsByPDB in interface Chain
      Parameters:
      start - PDB residue number of start
      end - 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
    • getGroupByPDB

      public 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.
      Specified by:
      getGroupByPDB in interface Chain
      Parameters:
      resNum - the PDB residue number of the group
      Returns:
      the matching group
      Throws:
      StructureException
    • getGroupsByPDB

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

      public int getSeqResLength()
      Returns the number of groups in the SEQRES records of the chain, i.e. the number of aminoacids/nucleotides in the construct
      Specified by:
      getSeqResLength in interface Chain
      Returns:
      the length
      See Also:
    • setChainID

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

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

      public String toString()
      String representation.
      Specified by:
      toString in interface Chain
      Overrides:
      toString in class Object
      Returns:
      String representation of the Chain
    • getBJSequence

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

      public 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.
      Specified by:
      getAtomSequence in interface Chain
      Returns:
      amino acid sequence as string
      See Also:
    • getSeqResSequence

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

      public 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.
      Specified by:
      getSeqResGroup in interface Chain
      Parameters:
      position - an int
      Returns:
      a Group object
      See Also:
    • getSeqResGroups

      public 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.
      Specified by:
      getSeqResGroups in interface Chain
      Parameters:
      type - a GroupType
      Returns:
      an List object
      See Also:
    • getSeqResGroups

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

      public void setSeqResGroups(List<Group> groups)
      Sets the list of SeqResGroups for this chain.
      Specified by:
      setSeqResGroups in interface Chain
      Parameters:
      groups - a List of Group objects that from the SEQRES groups of this chain.
      See Also:
    • addSeqResGroup

      protected void addSeqResGroup(Group g)
    • getAtomLength

      public 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
      Specified by:
      getAtomLength in interface Chain
      Returns:
      the length
      See Also:
    • getAtomLigands

      public 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.
      Specified by:
      getAtomLigands in interface Chain
      Returns:
      list of Groups that are ligands
    • getInternalChainID

      public String getInternalChainID()
      Description copied from interface: Chain
      If available, returns the internal chain ID that is used in mmCIF files (asym_id), otherwise null
      Specified by:
      getInternalChainID in interface Chain
      Returns:
      String or null
    • setInternalChainID

      public void setInternalChainID(String internalChainID)
      Description copied from interface: Chain
      Sets the internal chain ID that is used in mmCif files
      Specified by:
      setInternalChainID in interface Chain
    • toPDB

      public String toPDB()
      Description copied from interface: Chain
      Convert this Chain to a String in PDB format
      Specified by:
      toPDB in interface Chain
      Returns:
    • toMMCIF

      public String toMMCIF()
      Description copied from interface: Chain
      Convert this Chain to a String in mmCIF format
      Specified by:
      toMMCIF in interface Chain
      Returns:
    • setSeqMisMatches

      public void setSeqMisMatches(List<SeqMisMatch> seqMisMatches)
      Description copied from interface: Chain
      Set annotated sequence mismatches for this chain. This is based on the STRUCT_REF_SEQ_DIF mmCif category
      Specified by:
      setSeqMisMatches in interface Chain
    • getSeqMisMatches

      public List<SeqMisMatch> getSeqMisMatches()
      Description copied from interface: Chain
      Get annotated sequence mismatches for this chain. This is based on the STRUCT_REF_SEQ_DIF mmCif category
      Specified by:
      getSeqMisMatches in interface Chain