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

    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("amino");
    
                    AminoAcid a;
                    AminoAcid b;
                    AminoAcid c ;
    
                    for ( int i=0; i < groups.size(); i++){
    
                            // since we requested only groups of type "amino" 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 addModel​(java.util.List<Chain> model)
      add a new model.
      void addSSBond​(SSBond ssbond)
      add a single SSBond to this structure
      Structure clone()
      returns 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 it's position within the Structure .
      Chain getChain​(int pos, int modelnr)
      retrieve a chain by it's position within the Structure and model number.
      Chain getChainByPDB​(java.lang.String chainId)
      request a chain by it's PDB code by default takes only the first model
      Chain getChainByPDB​(java.lang.String chainId, int modelnr)
      request a chain by it's 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​(java.lang.String molId)
      request a particular compound by its id
      java.util.List<Compound> getCompounds()
      get all the Compounds that are defined in the PDB Header
      java.util.List<java.util.Map<java.lang.String,​java.lang.Integer>> getConnections()
      Returns the connections value.
      java.util.List<DBRef> getDBRefs()
      get the list of database references
      java.util.Map<java.lang.String,​java.lang.Object> getHeader()
      Deprecated.
      use getPDBHeader instead
      java.lang.Long getId()
      get the ID used by Hibernate
      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.util.List<SSBond> getSSBonds()
      get the list of SSBonds as they have been defined in the PDB files
      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 isNmr()
      test if this structure is an nmr structure.
      int nrModels()
      return number of models .
      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 compounts
      void setConnections​(java.util.List<java.util.Map<java.lang.String,​java.lang.Integer>> connections)
      sets/gets an List of Maps which corresponds to the CONECT lines in the PDB file:
      void setDBRefs​(java.util.List<DBRef> dbrefs)
      set the list of database references for this structure
      void setHeader​(java.util.Map<java.lang.String,​java.lang.Object> h)
      set the Header data .
      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)
      set NMR flag.
      void setPDBCode​(java.lang.String pdb_id)
      set PDB code of structure .
      void setPDBHeader​(PDBHeader header)
      the the header information for this PDB file
      void setSSBonds​(java.util.List<SSBond> ssbonds)
      set the list of SSBonds for this structure
      int size()
      return number of Chains in this Structure.
      int size​(int modelnr)
      return number of chains of model.
      java.lang.String toPDB()
      create a String that contains the contents of a PDB file .
      java.lang.String toString()
      String representation of object.
    • Method Detail

      • clone

        Structure clone()
        returns 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)
      • setHeader

        void setHeader​(java.util.Map<java.lang.String,​java.lang.Object> h)
        set the Header data .
        Parameters:
        h - a Map object specifying the header
        See Also:
        getHeader()
      • setConnections

        void setConnections​(java.util.List<java.util.Map<java.lang.String,​java.lang.Integer>> connections)
        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()