## org.biojava.bio.structure
Interface Structure

All Known Implementing Classes:
  StructureImpl

    public interface Structure

Interface for a structure object. Provides access to the data of a PDB file.

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

A:

     String filename =  "path/to/pdbfile.ent" ;

     PDBFileReader pdbreader = new PDBFileReader();

     try{
            Structure struc = pdbreader.getStructure(filename);
            System.out.println(struc);
     } catch (Exception e) {
            e.printStackTrace();
     }

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

A:

            ArrayList chains = (ArrayList)struc.getModel(0);
            Chain tmpchn  = (Chain)chains.get(0) ;
            ArrayList aminos = tmpchn.getGroups("amino");

            AminoAcid a;
            AminoAcid b;
            AminoAcid c ;

            for ( int i=0; i < aminos.size(); i++){

                b = (AminoAcid)aminos.get(i);
                double phi =360.0;
                double psi =360.0;

                if ( i > 0) {
                    a = (AminoAcid)aminos.get(i-1) ;
                    try {
                        phi = Calc.getPhi(a,b);
                    } catch (StructureException e){
                        e.printStackTrace();
                        phi = 360.0 ;
                    }
                }
                if ( i < aminos.size()-1) {
                    c = (AminoAcid)aminos.get(i+1) ;
                    try {
                        psi = Calc.getPsi(b,c);
                    }catch (StructureException e){
                        e.printStackTrace();
                        psi = 360.0 ;
                    }
                }

                String str = b.getPDBCode() + " " + b.getPDBName() + ":"  ;
                str += "\tphi: " + phi + "\tpsi: " + psi;
                System.out.println(str);

Since:
  1.4
Version:
  %I% %G%
Author:
  Andreas Prlic

Method Summary
`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 model)` add a new model.
`java.lang.Object` `clone()` returns an identical copy of this structure .
`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` `getChains(int modelnr)` retrieve all chains of a model.
`java.util.List` `getConnections()` Returns the connections value.
`java.util.Map` `getHeader()` get Header data .
`java.util.List` `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.
`boolean` `hasChain(java.lang.String chainId)` check if a chain with the id chainId is contained in this structure.
`boolean` `isNmr()` test if this structure is an nmr structure.
`int` `nrModels()` return number of models .
`void` `setConnections(java.util.List connections)` sets/gets an List of Maps which corresponds to the CONECT lines in the PDB file:
`void` `setHeader(java.util.Map h)` set the Header data .
`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 .
`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

    java.lang.Object clone()

  returns an identical copy of this structure .

  Returns:
    an identical 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 h)

  set the Header data .

  Parameters:
    `h` - a Map object specifying the header
  See Also:
    `getHeader()`

### getHeader

    java.util.Map getHeader()

  get Header data .

  Returns:
    a Map object representing the header value
  See Also:
    `setHeader(java.util.Map)`

### setConnections

    void setConnections(java.util.List 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()`

### getConnections

    java.util.List getConnections()

  Returns the connections value.

  Returns:
    a List object representing the connections value
  See Also:
    `setConnections(java.util.List)`

### 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 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 @see isNMR , since this is based on the info in the PDB file header.

  Returns:
    an int representing the number of models in this Structure

### isNmr

    boolean isNmr()

  test if this structure is an nmr structure.

  Returns:
    true if this Structure has been resolved by NMR

### setNmr

    void setNmr(boolean nmr)

  set NMR flag.

  Parameters:
    `nmr` - true to declare that this Structure has been solved by NMR.

### addModel

    void addModel(java.util.List model)

  add a new model.

  Parameters:
    `model` - a List object containing the Chains of the new Model

### getModel

    java.util.List 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(int)`

### getChains

    java.util.List 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:
    `getModel(int)`

### 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 it's position within the Structure .

  Parameters:
    `pos` - an int for the position in the List of Chains.
  Returns:
    a Chain object

### getChain

    Chain getChain(int pos,
                   int modelnr)

  retrieve a chain by it's position within the Structure and model number.

  Parameters:
    `pos` - an int
    `modelnr` - an int
  Returns:
    a Chain object

### findChain

    Chain findChain(java.lang.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(java.lang.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(java.lang.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(java.lang.String chainId,
                    java.lang.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(java.lang.String chainId,
                    java.lang.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(java.lang.String chainId)
                        throws StructureException

  request a chain by it's 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(java.lang.String chainId,
                        int modelnr)
                        throws StructureException

  request a chain by it's 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

    java.lang.String toPDB()

  create a String that contains the contents of a PDB file .

  Returns:
    a String that looks like a PDB file