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.lang.String |
indexedFileMD5 |
protected long |
indexedFileSize |
protected long |
indexedFileTS |
protected java.nio.file.Path |
indexedPath |
protected Log |
logger |
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.nio.file.Path featurePath) |
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()
Deprecated.
on 03/2017. Use
getIndexedPath() instead. |
java.lang.String |
getIndexedFileMD5() |
long |
getIndexedFileSize() |
long |
getIndexedFileTS() |
java.nio.file.Path |
getIndexedPath() |
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 |
write(java.nio.file.Path idxPath)
Writes the index into a path.
|
void |
writeBasedOnFeaturePath(java.nio.file.Path featurePath)
Write an appropriately named and located Index file based on the name and location of the featureFile.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
write, writeBasedOnFeatureFile
public static final int VERSION
public static final int MAGIC_NUMBER
protected int version
protected java.nio.file.Path indexedPath
protected long indexedFileSize
protected long indexedFileTS
protected java.lang.String indexedFileMD5
protected int flags
protected final Log logger
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(java.nio.file.Path featurePath)
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
@Deprecated public java.io.File getIndexedFile()
getIndexedPath()
instead.java.lang.UnsupportedOperationException
- if the path cannot be represented as a file.public java.nio.file.Path getIndexedPath()
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 write(java.nio.file.Path idxPath) throws java.io.IOException
Index
public void writeBasedOnFeaturePath(java.nio.file.Path featurePath) throws java.io.IOException
Index
writeBasedOnFeaturePath
in interface Index
java.io.IOException
- if featureFile is not a normal file.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()