public abstract class AbstractIndex extends java.lang.Object implements MutableIndex
Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractIndex.BlockStats |
static class |
AbstractIndex.IndexType |
Modifier and Type | Field and Description |
---|---|
protected java.util.LinkedHashMap<java.lang.String,ChrIndex> |
chrIndices
the map of our chromosome bins
|
protected int |
flags |
protected java.io.File |
indexedFile |
protected java.lang.String |
indexedFileMD5 |
protected long |
indexedFileSize |
protected long |
indexedFileTS |
static int |
MAGIC_NUMBER |
protected int |
version |
static int |
VERSION |
Constructor and Description |
---|
AbstractIndex()
create an abstract index, with defaults for the version value, and empty properties and chromosome lists
|
AbstractIndex(AbstractIndex parent) |
AbstractIndex(java.io.File featureFile) |
AbstractIndex(java.lang.String featureFile)
create an index file from the target feature file
|
Modifier and Type | Method and Description |
---|---|
void |
addProperties(java.util.Map<java.lang.String,java.lang.String> properties) |
void |
addProperty(java.lang.String key,
java.lang.String value) |
boolean |
containsChromosome(java.lang.String chr) |
boolean |
equalsIgnoreProperties(java.lang.Object obj)
Returns true if this and obj are 'effectively' equivalent indices.
|
void |
finalizeIndex() |
java.util.List<Block> |
getBlocks(java.lang.String chr) |
java.util.List<Block> |
getBlocks(java.lang.String chr,
int start,
int end)
Query the index.
|
protected AbstractIndex.BlockStats |
getBlockStats(boolean logDetails) |
abstract java.lang.Class |
getChrIndexClass()
returns the class for the index type
|
int |
getFlags() |
java.io.File |
getIndexedFile() |
java.lang.String |
getIndexedFileMD5() |
long |
getIndexedFileSize() |
long |
getIndexedFileTS() |
java.util.Map<java.lang.String,java.lang.String> |
getProperties()
return a mapping of name to property value
|
java.util.List<java.lang.String> |
getSequenceNames() |
protected abstract int |
getType()
get the index type
|
int |
getVersion() |
boolean |
hasFileSize() |
boolean |
hasMD5() |
boolean |
hasTimestamp() |
boolean |
isCurrentVersion()
check the current version against the version we read in
|
protected void |
printIndexInfo() |
void |
read(LittleEndianInputStream dis) |
void |
setMD5(java.lang.String md5) |
protected java.lang.String |
statsSummary() |
protected void |
validateIndexHeader(int indexType,
LittleEndianInputStream dis) |
void |
write(LittleEndianOutputStream stream)
all indexes are writable to disk
|
void |
writeBasedOnFeatureFile(java.io.File featureFile)
Write an appropriately named and located Index file based on the name and location of the featureFile.
|
public static final int VERSION
public static final int MAGIC_NUMBER
protected int version
protected java.io.File indexedFile
protected long indexedFileSize
protected long indexedFileTS
protected java.lang.String indexedFileMD5
protected int flags
protected java.util.LinkedHashMap<java.lang.String,ChrIndex> chrIndices
public AbstractIndex()
public AbstractIndex(java.lang.String featureFile)
featureFile
- the feature file to create an index frompublic AbstractIndex(java.io.File featureFile)
public AbstractIndex(AbstractIndex parent)
public boolean hasFileSize()
public boolean hasTimestamp()
public boolean hasMD5()
public boolean equalsIgnoreProperties(java.lang.Object obj)
Index
equalsIgnoreProperties
in interface Index
obj
- protected void validateIndexHeader(int indexType, LittleEndianInputStream dis) throws java.io.IOException
java.io.IOException
public boolean isCurrentVersion()
isCurrentVersion
in interface Index
public java.io.File getIndexedFile()
public long getIndexedFileSize()
public long getIndexedFileTS()
public java.lang.String getIndexedFileMD5()
public int getFlags()
public int getVersion()
public void setMD5(java.lang.String md5)
public boolean containsChromosome(java.lang.String chr)
containsChromosome
in interface Index
chr
- the chromosome (or contig) namepublic void finalizeIndex()
public java.util.List<java.lang.String> getSequenceNames()
getSequenceNames
in interface Index
public java.util.List<Block> getBlocks(java.lang.String chr, int start, int end)
Index
public java.util.List<Block> getBlocks(java.lang.String chr)
public void write(LittleEndianOutputStream stream) throws java.io.IOException
Index
public void writeBasedOnFeatureFile(java.io.File featureFile) throws java.io.IOException
Index
writeBasedOnFeatureFile
in interface Index
java.io.IOException
public void read(LittleEndianInputStream dis) throws java.io.IOException
java.io.IOException
protected void printIndexInfo()
protected AbstractIndex.BlockStats getBlockStats(boolean logDetails)
protected java.lang.String statsSummary()
public void addProperty(java.lang.String key, java.lang.String value)
addProperty
in interface MutableIndex
public void addProperties(java.util.Map<java.lang.String,java.lang.String> properties)
addProperties
in interface MutableIndex
public java.util.Map<java.lang.String,java.lang.String> getProperties()
getProperties
in interface Index
protected abstract int getType()
public abstract java.lang.Class getChrIndexClass()