Package org.biojava.bio.program.ssaha
Class CompactedDataStoreFactory
java.lang.Object
org.biojava.bio.program.ssaha.CompactedDataStoreFactory
- All Implemented Interfaces:
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] nameRecord // byte offset into nameTable
nameRecord:
int nameTableOffset
int sequenceStartOffset
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 offset // offset into the sequence
- Author:
- Matthew Pocock, Thomas Down
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuildDataStore(File storeFile, SequenceStreamer streamer, Packing packing, int wordLength, int stepSize, int threshold) buildDataStore(File storeFile, SequenceDB seqDB, Packing packing, int wordLength, int threshold) Build a new DataStore.getDataStore(File storeFile) Get a pre-built data store associated with a file.
-
Constructor Details
-
CompactedDataStoreFactory
public CompactedDataStoreFactory()
-
-
Method Details
-
getDataStore
Description copied from interface:DataStoreFactoryGet a pre-built data store associated with a file.- Specified by:
getDataStorein interfaceDataStoreFactory- Parameters:
storeFile- the File to map in as a data store- Returns:
- the DataStore made by mapping the file
- Throws:
IOException- if the file could not be mapped
-
buildDataStore
public DataStore buildDataStore(File storeFile, SequenceDB seqDB, Packing packing, int wordLength, int threshold) throws IllegalAlphabetException, IOException, BioException Description copied from interface:DataStoreFactoryBuild a new DataStore.- Specified by:
buildDataStorein interfaceDataStoreFactory- Parameters:
storeFile- the file to store the data storeseqDB- the SequenceDB to store in the data storepacking- the Packing used to bit-encode the sequenceswordLength- the number of symbols per wordthreshold- the number of times a word must appear to be ignored- Throws:
IllegalAlphabetException- if the packing does not agree with the sequencesBioException- if there is a problem building the data storeIOException
-
buildDataStore
public DataStore buildDataStore(File storeFile, SequenceStreamer streamer, Packing packing, int wordLength, int stepSize, int threshold) throws IllegalAlphabetException, IOException, BioException
-