Interface Structure

  • All Superinterfaces:
    java.lang.Cloneable
    All Known Implementing Classes:
    StructureImpl

    public interface Structure
    extends java.lang.Cloneable
    Interface for a structure object. Provides access to the data of a PDB file. A structure object allows to access the PDB header information as well as to the data from the ATOM records. The header information is currently available through the following objects: The structure object provides access to the data from the ATOM records through a hierarchy of sub-object:
     Structure
             |
             Chain
                 |
                 Group
                     |
                     Atom
     
    For more documentation on how to work with the Structure API please see http://biojava.org/wiki/BioJava:CookBook#Protein_Structure

    The tutorial for the BioJava structure modules can be found at github.


    Q: How can I get a Structure object from a PDB file?

    A:

     public Structure loadStructure(String pathToPDBFile){
                    PDBFileReader pdbreader = new PDBFileReader();
    
                    Structure structure = null;
                    try{
                            structure = pdbreader.getStructure(pathToPDBFile);
                            System.out.println(structure);
                    } catch (IOException e) {
                            e.printStackTrace();
                    }
                    return structure;
            }
      

    Q: How can I calculate Phi and Psi angles of AminoAcids?

    A:

     public void calcPhiPsi(Structure structure){
    
    
                    // get the first chain from the structure
    
                    Chain chain  = structure.getChain(0);
    
                    // A protein chain consists of a number of groups. These can be either
                    // AminoAcid, Hetatom or Nucleotide groups.
                    //
                    // Note: BioJava provides access to both the ATOM and SEQRES data in a PDB file.
                    // since we are interested in doing calculations here, we only request the groups
                    // from the ATOM records
    
                    //  get the Groups of the chain that are AminoAcids.
                    List groups = chain.getAtomGroups(GroupType.AMINOACID);
    
                    AminoAcid a;
                    AminoAcid b;
                    AminoAcid c ;
    
                    for ( int i=0; i < groups.size(); i++){
    
                            // since we requested only groups of type AMINOACID they will always be amino acids
                            // Nucleotide and Hetatom groups will not be present in the groups list.
    
                            b = (AminoAcid)groups.get(i);
    
                            double phi =360.0;
                            double psi =360.0;
    
                            if ( i > 0) {
                                    a = (AminoAcid)groups.get(i-1) ;
                                    try {
    
                                            // the Calc class provides utility methods for various calculations on
                                            // structures, groups and atoms
    
                                            phi = Calc.getPhi(a,b);
                                    } catch (StructureException e){
                                            e.printStackTrace();
                                            phi = 360.0 ;
                                    }
                            }
                            if ( i < groups.size()-1) {
                                    c = (AminoAcid)groups.get(i+1) ;
                                    try {
                                            psi = Calc.getPsi(b,c);
                                    }catch (StructureException e){
                                            e.printStackTrace();
                                            psi = 360.0 ;
                                    }
                            }
    
                            System.out.print(b.getPDBCode() + " " + b.getPDBName() + ":"  );
    
                            System.out.println(String.format("\tphi: %+7.2f psi: %+7.2f", phi, psi));
    
                    }
     

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

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      void addChain​(Chain chain)
      Add a new chain.
      void addChain​(Chain chain, int modelnr)
      Add a new chain, if several models are available.
      void addCompound​(Compound compound)
      Add a Compound to this Structure
      void addModel​(java.util.List<Chain> model)
      Add a new model.
      void addSSBond​(Bond ssbond)
      Add a single disulfide Bond to this structure
      Structure clone()
      Return an identical copy of this Structure object
      Chain findChain​(java.lang.String chainId)
      Request a particular chain from a structure.
      Chain findChain​(java.lang.String chainId, int modelnr)
      Request a particular chain from a particular model
      Group findGroup​(java.lang.String chainId, java.lang.String pdbResnum)
      Request a particular group from a structure.
      Group findGroup​(java.lang.String chainId, java.lang.String pdbResnum, int modelnr)
      Request a particular group from a structure.
      Chain getChain​(int pos)
      Retrieve a chain by its position within the Structure .
      Chain getChain​(int modelnr, int pos)
      Retrieve a chain by its position within the Structure and model number.
      Chain getChainByPDB​(java.lang.String chainId)
      Request a chain by its PDB code by default takes only the first model
      Chain getChainByPDB​(java.lang.String chainId, int modelnr)
      Request a chain by its PDB code by default takes only the first model
      java.util.List<Chain> getChains()
      Retrieve all chains - if it is a NMR structure will return the chains of the first model.
      java.util.List<Chain> getChains​(int modelnr)
      Retrieve all chains of a model.
      Compound getCompoundById​(int molId)
      Request a particular compound by its molId (entity_id in mmCIF dictionary)
      java.util.List<Compound> getCompounds()
      Get all the Compounds for this Structure.
      java.util.List<java.util.Map<java.lang.String,​java.lang.Integer>> getConnections()
      Deprecated.
      use Atom.getBonds() instead
      PDBCrystallographicInfo getCrystallographicInfo()
      Get crystallographic information for this structure
      java.util.List<DBRef> getDBRefs()
      Get the list of database references
      java.util.List<Group> getHetGroups()  
      java.lang.Long getId()
      Get the ID used by Hibernate
      java.lang.String getIdentifier()
      Get a string representing this structure's contents.
      JournalArticle getJournalArticle()
      Get the associated publication as defined by the JRNL records in a PDB file.
      java.util.List<Chain> getModel​(int modelnr)
      Retrieve all Chains belonging to a model .
      java.lang.String getName()
      Get biological name of Structure.
      java.lang.String getPDBCode()
      Get PDB code of structure.
      PDBHeader getPDBHeader()
      Return the header information for this PDB file
      java.lang.String getPdbId()
      Deprecated.
      From BioJava 4.2, use getPDBCode() or getStructureIdentifier().toCanonical().getPdbId()
      java.util.List<java.lang.String> getRanges()
      Deprecated.
      From BioJava 4.2, use getStructureIdentifier().toCanonical().getRanges()
      java.util.List<? extends ResidueRange> getResidueRanges()
      Deprecated.
      From BioJava 4.2, use getStructureIdentifier().toCanonical().getResidueRanges()
      java.util.List<Site> getSites()  
      java.util.List<Bond> getSSBonds()
      Get the list of disulfide Bonds as they have been defined in the PDB files
      StructureIdentifier getStructureIdentifier()
      Get an identifier corresponding to this structure
      boolean hasChain​(java.lang.String chainId)
      Check if a chain with the id chainId is contained in this structure.
      boolean hasJournalArticle()
      Return whether or not the entry has an associated journal article or publication.
      boolean isBiologicalAssembly()
      Get flag that indicates if this structure is a biological assembly
      boolean isCrystallographic()
      Test if this structure is a crystallographic structure, i.e.
      boolean isNmr()
      Test if this structure is an NMR structure.
      int nrModels()
      Return the number of models .
      void resetModels()
      Resets all models of this Structure
      void setBiologicalAssembly​(boolean biologicalAssembly)
      Set a flag to indicate if this structure is a biological assembly
      void setChains​(int modelnr, java.util.List<Chain> chains)
      Set the chains for a model
      void setChains​(java.util.List<Chain> chains)
      Set the chains of a structure, if this is a NMR structure, this will only set model 0.
      void setCompounds​(java.util.List<Compound> molList)
      Set the Compounds
      void setConnections​(java.util.List<java.util.Map<java.lang.String,​java.lang.Integer>> connections)
      Deprecated.
      use Atom.addBond(Bond) instead
      void setCrystallographicInfo​(PDBCrystallographicInfo crystallographicInfo)
      Set crystallographic information for this structure
      void setDBRefs​(java.util.List<DBRef> dbrefs)
      Set the list of database references for this structure
      void setId​(java.lang.Long id)
      set the ID used by Hibernate
      void setJournalArticle​(JournalArticle journalArticle)
      Set the associated publication as defined by the JRNL records in a PDB file.
      void setModel​(int position, java.util.List<Chain> model)
      A convenience function if one wants to edit and replace the models in a structure.
      void setName​(java.lang.String name)
      Set biological name of Structure .
      void setNmr​(boolean nmr)
      Deprecated.
      void setPDBCode​(java.lang.String pdb_id)
      Set PDB code of structure .
      void setPDBHeader​(PDBHeader header)
      Set the the header information for this PDB file
      void setSites​(java.util.List<Site> sites)  
      void setSSBonds​(java.util.List<Bond> ssbonds)
      Set the list of SSBonds for this structure
      void setStructureIdentifier​(StructureIdentifier structureIdentifier)
      Set the identifier corresponding to this structure
      int size()
      Return number of Chains in this Structure.
      int size​(int modelnr)
      Return number of chains of model.
      java.lang.String toMMCIF()
      Create a String that contains this Structure's contents in MMCIF file format.
      java.lang.String toPDB()
      Create a String that contains this Structure's contents in PDB file format.
      java.lang.String toString()
      String representation of object.
    • Method Detail

      • clone

        Structure clone()
        Return an identical copy of this Structure object
        Returns:
        identical copy of this Structure object
      • toString

        java.lang.String toString()
        String representation of object.
        Overrides:
        toString in class java.lang.Object
      • setPDBCode

        void setPDBCode​(java.lang.String pdb_id)
        Set PDB code of structure .
        Parameters:
        pdb_id - a String specifying the PDBCode
        See Also:
        getPDBCode()
      • getPDBCode

        java.lang.String getPDBCode()
        Get PDB code of structure.
        Returns:
        a String representing the PDBCode value
        See Also:
        setPDBCode(java.lang.String)
      • setName

        void setName​(java.lang.String name)
        Set biological name of Structure .
        Parameters:
        name - a String specifying the biological name of the Structure
        See Also:
        getName()
      • getName

        java.lang.String getName()
        Get biological name of Structure.
        Returns:
        a String representing the biological name of the Structure
        See Also:
        setName(java.lang.String)
      • getStructureIdentifier

        StructureIdentifier getStructureIdentifier()
        Get an identifier corresponding to this structure
        Returns:
        The StructureIdentifier used to create this structure
      • setStructureIdentifier

        void setStructureIdentifier​(StructureIdentifier structureIdentifier)
        Set the identifier corresponding to this structure
        Parameters:
        structureIdentifier - the structureIdentifier corresponding to this structure
      • setConnections

        @Deprecated
        void setConnections​(java.util.List<java.util.Map<java.lang.String,​java.lang.Integer>> connections)
        Deprecated.
        use Atom.addBond(Bond) instead
        sets/gets an List of Maps which corresponds to the CONECT lines in the PDB file:
                   COLUMNS         DATA TYPE        FIELD           DEFINITION
                   ---------------------------------------------------------------------------------
                        1 -  6         Record name      "CONECT"
                        7 - 11         Integer          serial          Atom serial number
                   12 - 16         Integer          serial          Serial number of bonded atom
                   17 - 21         Integer          serial          Serial number of bonded atom
                   22 - 26         Integer          serial          Serial number of bonded atom
                   27 - 31         Integer          serial          Serial number of bonded atom
                   32 - 36         Integer          serial          Serial number of hydrogen bonded
                   atom
                   37 - 41         Integer          serial          Serial number of hydrogen bonded
                   atom
                   42 - 46         Integer          serial          Serial number of salt bridged
                   atom
                   47 - 51         Integer          serial          Serial number of hydrogen bonded
                   atom
                   52 - 56         Integer          serial          Serial number of hydrogen bonded
                   atom
                   57 - 61         Integer          serial          Serial number of salt bridged
                   atom
                   
        the HashMap for a single CONECT line contains the following fields:
      • atomserial (mandatory) : Atom serial number
      • bond1 .. bond4 (optional): Serial number of bonded atom
      • hydrogen1 .. hydrogen4 (optional):Serial number of hydrogen bonded atom
      • salt1 .. salt2 (optional): Serial number of salt bridged atom
Parameters:
connections - a List object specifying the connections
See Also:
getConnections()