Interface Chain

  • All Superinterfaces:
    java.io.Serializable
    All Known Implementing Classes:
    ChainImpl

    public interface Chain
    extends java.io.Serializable

    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 Detail

      • clone

        java.lang.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

        java.lang.String getId()
        Get the 'private' asymId (internal chain IDs in mmCif) for this chain.
        Returns:
        the asymId
        See Also:
        setId(String), getName()
      • setId

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

        void setName​(java.lang.String authId)
        Set the 'public' authId (chain ID in PDB file)
        Parameters:
        authId - the 'public' authId (chain ID in PDB file)
        See Also:
        getId()
      • getName

        java.lang.String getName()
        Get the 'public' authId (chain ID in PDB file)
        Returns:
        the authId for this chain.
        See Also:
        getId()
      • 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:
        getAtomLength(), getAtomGroups(), getSeqResGroup(int)
      • 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:
        getSeqResLength(), getSeqResGroups(), getAtomGroup(int)
      • getAtomGroups

        java.util.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(List), getAtomLength(), getSeqResGroups()
      • setAtomGroups

        void setAtomGroups​(java.util.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()
      • 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. 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

        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

        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:
        getAtomGroup(int), getAtomGroups()
      • setEntityInfo

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

        @Deprecated
        void setChainID​(java.lang.String asymId)
        Deprecated.
        Sets the 'private' asymId of this chain (Chain id in PDB file ).
        Parameters:
        asymId - a String specifying the name value
        See Also:
        getChainID()
      • getChainID

        @Deprecated
        java.lang.String getChainID()
        Deprecated.
        use getId() instead
        Gets the 'private' asymId of this chain.
        Returns:
        a String representing the name value
        See Also:
        setChainID(String)
      • getInternalChainID

        java.lang.String getInternalChainID()
        Deprecated.
        use getId() instead
        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​(java.lang.String internalChainID)
        Deprecated.
        use #setId() instead
        Sets the internal chain ID that is used in mmCif files
        Parameters:
        internalChainID -
        Since:
        3.0.5
      • toString

        java.lang.String toString()
        Overrides:
        toString in class java.lang.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

        java.lang.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()
      • getSeqResSequence

        java.lang.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:
        getAtomSequence()
      • setSwissprotId

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

        java.lang.String getSwissprotId()
        Gets the Swissprot id of this chain.
        Returns:
        a String representing the swissprot id value
        See Also:
        setSwissprotId(String sp_id)
      • setSeqResGroups

        void setSeqResGroups​(java.util.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:
        getSeqResGroups()
      • 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:
        getStructure()
      • 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:
        setStructure(Structure)
      • getAtomLigands

        @Deprecated
        java.util.List<Group> getAtomLigands()
        Deprecated.
        since biojava 5.0 this does not apply anymore. Chains contain either polymeric groups or non-polymeric groups
        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

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

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

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

        java.util.List<SeqMisMatch> getSeqMisMatches()
        Gets annotated sequence mismatches for this chain. This is based on the STRUCT_REF_SEQ_DIF mmCif category
      • getEntityType

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

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

        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

        GroupType getPredominantGroupType()
        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 {@value #org.biojava.nbio.structure.StructureTools.RATIO_RESIDUES_TO_TOTAL}, 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: