Interface Structure

All Superinterfaces:
Cloneable
All Known Implementing Classes:
StructureImpl

public interface Structure extends 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 Details

    • clone

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

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

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

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

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

      String getName()
      Get biological name of Structure.
      Returns:
      a String representing the biological name of the Structure
      See Also:
    • 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(List<Map<String,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

      @Deprecated List<Map<String,Integer>> getConnections()
      Deprecated.
      use Atom.getBonds() instead
      Return the connections value.
      Returns:
      a List object representing the connections value
      See Also:
    • size

      int size()
      Return number of Chains in this Structure.
      Returns:
      an int representing the number of Chains in this Structure
    • size

      int size(int modelnr)
      Return number of chains of model.
      Parameters:
      modelnr - an int specifying the number of the Model that should be used
      Returns:
      an int representing the number of Chains in this Model
    • nrModels

      int nrModels()
      Return the number of models . In this implementation also XRAY structures have "1 model", since model is the container for the chains. to test if a Structure is an NMR structure use isNmr().
      Returns:
      an int representing the number of models in this Structure
      See Also:
    • isNmr

      boolean isNmr()
      Test if this structure is an NMR structure.
      Returns:
      true if this Structure has been solved by NMR
      See Also:
    • isCrystallographic

      boolean isCrystallographic()
      Test if this structure is a crystallographic structure, i.e. it is an asymmetric unit from which it is possible to reconstruct the crystal lattice given cell parameters and space group.
      Returns:
      true if crystallographic, false otherwise
    • setNmr

      @Deprecated void setNmr(boolean nmr)
      Deprecated.
      set NMR flag.
      Parameters:
      nmr - true to declare that this Structure has been solved by NMR.
    • addModel

      void addModel(List<Chain> model)
      Add a new model.
      Parameters:
      model - a List object containing the Chains of the new Model
    • setModel

      void setModel(int position, List<Chain> model)
      A convenience function if one wants to edit and replace the models in a structure. Allows to set (replace) the model at position with the new List of Chains.
      Parameters:
      position - starting at 0
      model -
    • getModel

      List<Chain> getModel(int modelnr)
      Retrieve all Chains belonging to a model .
      Parameters:
      modelnr - an int
      Returns:
      a List object containing the Chains of Model nr. modelnr
      See Also:
    • getChains

      List<Chain> getChains()
      Retrieve all chains - if it is a NMR structure will return the chains of the first model. This is the same as getChains(0);
      Returns:
      a List object containing the Chains of Model nr. modelnr
      See Also:
    • setChains

      void setChains(List<Chain> chains)
      Set the chains of a structure, if this is a NMR structure, this will only set model 0.
      Parameters:
      chains - the list of chains for this structure.
      See Also:
    • getChains

      List<Chain> getChains(int modelnr)
      Retrieve all chains of a model.
      Parameters:
      modelnr - an int
      Returns:
      a List object containing the Chains of Model nr. modelnr
      See Also:
    • setChains

      void setChains(int modelnr, List<Chain> chains)
      Set the chains for a model
      Parameters:
      chains -
      modelnr -
    • addChain

      void addChain(Chain chain)
      Add a new chain.
      Parameters:
      chain - a Chain object
    • addChain

      void addChain(Chain chain, int modelnr)
      Add a new chain, if several models are available.
      Parameters:
      chain - a Chain object
      modelnr - an int specifying to which model the Chain should be added
    • getChain

      Chain getChain(int pos)
      Retrieve a chain by its position within the Structure .
      Parameters:
      pos - an int for the position in the List of Chains.
      Returns:
      a Chain object
    • getChain

      Chain getChain(int modelnr, int pos)
      Retrieve a chain by its position within the Structure and model number.
      Parameters:
      pos - an int
      modelnr - an int
      Returns:
      a Chain object
    • findChain

      Chain findChain(String chainId) throws StructureException
      Request a particular chain from a structure. by default considers only the first model.
      Parameters:
      chainId - the ID of a chain that should be returned
      Returns:
      Chain the requested chain
      Throws:
      StructureException
    • hasChain

      boolean hasChain(String chainId)
      Check if a chain with the id chainId is contained in this structure.
      Parameters:
      chainId - the name of the chain
      Returns:
      true if a chain with the id (name) chainId is found
    • findChain

      Chain findChain(String chainId, int modelnr) throws StructureException
      Request a particular chain from a particular model
      Parameters:
      modelnr - the number of the model to use
      chainId - the ID of a chain that should be returned
      Returns:
      Chain the requested chain
      Throws:
      StructureException
    • findGroup

      Group findGroup(String chainId, String pdbResnum) throws StructureException
      Request a particular group from a structure. by default considers only the first model in the structure.
      Parameters:
      chainId - the ID of the chain to use
      pdbResnum - the PDB residue number of the requested group
      Returns:
      Group the requested Group
      Throws:
      StructureException
    • findGroup

      Group findGroup(String chainId, String pdbResnum, int modelnr) throws StructureException
      Request a particular group from a structure. considers only model nr X. count starts with 0.
      Parameters:
      chainId - the ID of the chain to use
      pdbResnum - the PDB residue number of the requested group
      modelnr - the number of the model to use
      Returns:
      Group the requested Group
      Throws:
      StructureException
    • getChainByPDB

      Chain getChainByPDB(String chainId) throws StructureException
      Request a chain by its PDB code by default takes only the first model
      Parameters:
      chainId - the chain identifier
      Returns:
      the Chain that matches the chainID
      Throws:
      StructureException
    • getChainByPDB

      Chain getChainByPDB(String chainId, int modelnr) throws StructureException
      Request a chain by its PDB code by default takes only the first model
      Parameters:
      chainId - the chain identifier
      modelnr - request a particular model;
      Returns:
      the Chain that matches the chainID in the model
      Throws:
      StructureException
    • toPDB

      String toPDB()
      Create a String that contains this Structure's contents in PDB file format.
      Returns:
      a String that looks like a PDB file
      See Also:
    • toMMCIF

      String toMMCIF()
      Create a String that contains this Structure's contents in MMCIF file format.
      Returns:
    • setCompounds

      void setCompounds(List<Compound> molList)
      Set the Compounds
      Parameters:
      molList -
    • getCompounds

      List<Compound> getCompounds()
      Get all the Compounds for this Structure. Compounds are called Entities in mmCIF dictionary.
      Returns:
      a list of Compounds
    • addCompound

      void addCompound(Compound compound)
      Add a Compound to this Structure
    • setDBRefs

      void setDBRefs(List<DBRef> dbrefs)
      Set the list of database references for this structure
      Parameters:
      dbrefs - list of DBRef objects
    • getDBRefs

      List<DBRef> getDBRefs()
      Get the list of database references
      Returns:
      list of DBRef objects
    • getCompoundById

      Compound getCompoundById(int molId)
      Request a particular compound by its molId (entity_id in mmCIF dictionary)
      Parameters:
      molId -
      Returns:
      a compound
    • getPDBHeader

      PDBHeader getPDBHeader()
      Return the header information for this PDB file
      Returns:
      the PDBHeader object
    • hasJournalArticle

      boolean hasJournalArticle()
      Return whether or not the entry has an associated journal article or publication. The JRNL section is not mandatory and thus may not be present.
      Returns:
      flag if a JournalArticle has been found.
    • getJournalArticle

      JournalArticle getJournalArticle()
      Get the associated publication as defined by the JRNL records in a PDB file.
      Returns:
      a JournalArticle
    • setJournalArticle

      void setJournalArticle(JournalArticle journalArticle)
      Set the associated publication as defined by the JRNL records in a PDB file.
      Parameters:
      journalArticle -
    • getSSBonds

      List<Bond> getSSBonds()
      Get the list of disulfide Bonds as they have been defined in the PDB files
      Returns:
      a list of Bonds
    • setSSBonds

      void setSSBonds(List<Bond> ssbonds)
      Set the list of SSBonds for this structure
      Parameters:
      ssbonds -
    • addSSBond

      void addSSBond(Bond ssbond)
      Add a single disulfide Bond to this structure
      Parameters:
      ssbond -
    • setPDBHeader

      void setPDBHeader(PDBHeader header)
      Set the the header information for this PDB file
      Parameters:
      header - the PDBHeader object
    • getId

      Long getId()
      Get the ID used by Hibernate
      Returns:
      the ID used by Hibernate
    • setId

      void setId(Long id)
      set the ID used by Hibernate
      Parameters:
      id -
    • setSites

      void setSites(List<Site> sites)
      Parameters:
      sites - the sites to set in the structure
    • getSites

      List<Site> getSites()
      Returns:
      the sites contained in this structure
    • getHetGroups

      List<Group> getHetGroups()
    • setBiologicalAssembly

      void setBiologicalAssembly(boolean biologicalAssembly)
      Set a flag to indicate if this structure is a biological assembly
      Parameters:
      biologicalAssembly - true if biological assembly, otherwise false
      Since:
      3.2
    • isBiologicalAssembly

      boolean isBiologicalAssembly()
      Get flag that indicates if this structure is a biological assembly
      Returns:
      true if biological assembly, otherwise false
      Since:
      3.2
    • setCrystallographicInfo

      void setCrystallographicInfo(PDBCrystallographicInfo crystallographicInfo)
      Set crystallographic information for this structure
      Parameters:
      PDBCrystallographicInfo - crystallographic information
      Since:
      3.2
    • getCrystallographicInfo

      PDBCrystallographicInfo getCrystallographicInfo()
      Get crystallographic information for this structure
      Returns:
      PDBCrystallographicInfo crystallographic information
      Since:
      3.2
    • resetModels

      void resetModels()
      Resets all models of this Structure
      Since:
      4.0.1
    • getPdbId

      @Deprecated String getPdbId()
      Deprecated.
      From BioJava 4.2, use getPDBCode() or getStructureIdentifier().toCanonical().getPdbId()
      Returns the PDB identifier associated with this StructureIdentifier.
    • getResidueRanges

      @Deprecated List<? extends ResidueRange> getResidueRanges()
      Deprecated.
      From BioJava 4.2, use getStructureIdentifier().toCanonical().getResidueRanges()
      Returns the list of ResidueRanges that this StructureIdentifier defines. This is a unique representation.
    • getRanges

      @Deprecated List<String> getRanges()
      Deprecated.
      From BioJava 4.2, use getStructureIdentifier().toCanonical().getRanges()
      Returns a list of residue ranges. For example:
       getRanges().get(0): 'A'
       getRanges().get(1): 'B_5-100'
       
      This is a unique representation.
    • getIdentifier

      String getIdentifier()
      Get a string representing this structure's contents. The following places are searched for a non-null value, with the first being returned:
      1. getStructureIdentifier().getIdentifier(), which should give the string originally used to create the structure
      2. getName()
      3. A combination of getPDBCode() with a heuristic description of the residue ranges, in SubstructureIdentifier format.
      Returns:
      A SubstructureIdentifier-format string describing the residue ranges in this structure
      Since:
      The behavior of this method changed in BioJava 4.2. Previously it returned the same value as getPDBCode()