## org.biojava.bio.proteomics.aaindex
Class AAindexStreamReader

    java.lang.Object
      org.biojava.bio.proteomics.aaindex.AAindexStreamReader

All Implemented Interfaces:
  SymbolPropertyTableIterator

    public class AAindexStreamReader

extends Object
implements SymbolPropertyTableIterator

Iterator over `AAindex` objects that are stored in a stream in the AAindex1 file format. The format of such an Amino Acid Index Database file is described in the AAindex manual . The `nextTable()` method returns objects of type `AAindex`. See this class also for further informations. To hold an AAindex1 file in memory for random access use the `SimpleSymbolPropertyTableDB` class:

     SimpleSymbolPropertyTableDB db = new SimpleSymbolPropertyTableDB(
             new AAindexStreamReader(new FileReader("aaindex1")));
     AAindex hydrophobicity = (AAindex) db.table("CIDH920105");
     SymbolList symbols = ProteinTools.createProtein(
         "ARNDCEQGHILKMFPSTWYV");
     double hp = 0.0;
     for (int i = 1; i <= symbols.length(); i++) {
         hp += hydrophobicity.getDoubleValue(symbols.symbolAt(i));
     }
     System.out.println("Average hydrophobicity: " + Double.toString(
             hp / symbols.length()));

References:

AAindex web site.

Kawashima, S. and Kanehisa, M.; AAindex: amino acid index database. Nucleic Acids Res. 28, 374 (2000).

Tomii, K. and Kanehisa, M.; Analysis of amino acid indices and mutation matrices for sequence comparison and structure prediction of proteins. Protein Eng. 9, 27-36 (1996).

Nakai, K., Kidera, A., and Kanehisa, M.; Cluster analysis of amino acid indices for prediction of protein structure and function. Protein Eng. 2, 93-100 (1988)

Version:
  $Revision: 3601 $
Author:
  Martin Szugat

Constructor Summary
`AAindexStreamReader(BufferedReader reader)` Initializes the iterator.
`AAindexStreamReader(Reader reader)` Initializes the iterator.

Method Summary
`boolean` `eof()` Checks if the end of the file or stream is reached.
`boolean` `hasNext()` Checks if there is a further `SymbolPropertyTable` object.
`SymbolPropertyTable` `nextTable()` Returns the next `SymbolPropertyTable` object.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AAindexStreamReader

    public AAindexStreamReader(Reader reader)
                        throws IOException,
                               NullPointerException

  Initializes the iterator.

  Parameters:
    `reader` - reader over a stream in the AAindex file format.
  Throws:
    `IOException` - if the stream could not be read.
    `NullPointerException` - if `reader` is `null`.

### AAindexStreamReader

    public AAindexStreamReader(BufferedReader reader)
                        throws IOException,
                               NullPointerException

  Initializes the iterator.

  Parameters:
    `reader` - buffered reader over a stream in the AAindex file format.
  Throws:
    `IOException` - if the stream could not be read.
    `NullPointerException` - if `reader` is `null`.

Method Detail

### eof

    public boolean eof()

  Checks if the end of the file or stream is reached.

  Returns:
    `true` if the end of the file is reached, `false` otherwise.

### hasNext

    public boolean hasNext()

  Checks if there is a further `SymbolPropertyTable` object.

  Specified by:
    `hasNext` in interface `SymbolPropertyTableIterator`
  Returns:
    `true` if a call to the `SymbolPropertyTableIterator.nextTable()` method is valid, `false` otherwise.

### nextTable

    public SymbolPropertyTable nextTable()
                                  throws BioException

  Returns the next `SymbolPropertyTable` object.

  Specified by:
    `nextTable` in interface `SymbolPropertyTableIterator`
  Returns:
    a symbol property table
  Throws:
    `BioException` - if the next symbol property table could not be retrieved.