org.biojava.bio.program.ssaha
Class MappedDataStoreFactory

java.lang.Object
  extended byorg.biojava.bio.program.ssaha.MappedDataStoreFactory
All Implemented Interfaces:
DataStoreFactory

public class MappedDataStoreFactory
extends java.lang.Object
implements DataStoreFactory

Builder for a data store that is backed by a java.nio.MappedByteBuffer. This has a limitation that the total size of the mapped buffer and therefore the hash table can not exceed 2 gigs.

The data store file has the following structure.

 file: header, hash table, nameArray, nameTable, hitTable

 header:
   int hashTablePos, // byte offset in file
   int hitTablePos,  // byte offset in file
   int nameArrayPos, // byte offset in file
   int nameTablePos, // byte offset in file
   int wordLength,
   int serializedPackingLength,
   byte[] serializedPacking

   hash table:
     int hashTableLength,
     int[hashTableLength] hits // index into hitTable

  nameArray:
    int nameArrayLength,
    int[nameArrayLength] nameArray // byte offset into nameTable

  nameTable:
    int nameTableSize, // size in bytes
    (short nameLength, char[nameLength] name)[nameTableSize] names

  hitTable:
    int hitTableSize, // size in bytes
    hitTableRecord[hitTableSize] hits

  hitTableRecord:
    int hitCount,
    hitRecord[hitCount] hit

  hit:
    int seqIndex, // index into nameArray
    int offset    // offset into the sequence
 

Author:
Matthew Pocock

Constructor Summary
MappedDataStoreFactory()
           
 
Method Summary
 DataStore buildDataStore(java.io.File storeFile, SequenceDB seqDB, Packing packing, int wordLength, int threshold)
          Build a new DataStore.
 DataStore getDataStore(java.io.File storeFile)
          Get a pre-built data store associated with a file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MappedDataStoreFactory

public MappedDataStoreFactory()
Method Detail

getDataStore

public DataStore getDataStore(java.io.File storeFile)
                       throws java.io.IOException
Description copied from interface: DataStoreFactory
Get a pre-built data store associated with a file.

Specified by:
getDataStore in interface DataStoreFactory
Parameters:
storeFile - the File to map in as a data store
Returns:
the DataStore made by mapping the file
Throws:
java.io.IOException - if the file could not be mapped

buildDataStore

public DataStore buildDataStore(java.io.File storeFile,
                                SequenceDB seqDB,
                                Packing packing,
                                int wordLength,
                                int threshold)
                         throws IllegalAlphabetException,
                                java.io.IOException,
                                BioException
Description copied from interface: DataStoreFactory
Build a new DataStore.

Specified by:
buildDataStore in interface DataStoreFactory
Parameters:
storeFile - the file to store the data store
seqDB - the SequenceDB to store in the data store
packing - the Packing used to bit-encode the sequences
wordLength - the number of symbols per word
threshold - the number of times a word must appear to be ignored
Throws:
IllegalAlphabetException - if the packing does not agree with the sequences
BioException - if there is a problem building the data store
java.io.IOException