public class SAMSequenceDictionary extends java.lang.Object implements HtsHeader, java.io.Serializable
| Modifier and Type | Field and Description |
|---|---|
static java.util.List<java.lang.String> |
DEFAULT_DICTIONARY_EQUAL_TAG |
static long |
serialVersionUID |
| Constructor and Description |
|---|
SAMSequenceDictionary() |
SAMSequenceDictionary(java.util.List<SAMSequenceRecord> list) |
| Modifier and Type | Method and Description |
|---|---|
SAMSequenceRecord |
addAlternativeSequenceName(java.lang.String originalName,
java.lang.String altName)
Add an alternative sequence name (AN tag) to a SAMSequenceRecord, including it into the aliases
to retrieve the contigs (as with
addSequenceAlias(String, String). |
void |
addSequence(SAMSequenceRecord sequenceRecord) |
SAMSequenceRecord |
addSequenceAlias(java.lang.String originalName,
java.lang.String altName)
Add an alias to a SAMSequenceRecord.
|
void |
assertSameDictionary(SAMSequenceDictionary that)
Non-comprehensive
equals(Object)-assertion: instead of calling SAMSequenceRecord.equals(Object) on constituent
SAMSequenceRecords in this dictionary against its pair in the target dictionary, in order, call
SAMSequenceRecord.isSameSequence(SAMSequenceRecord). |
boolean |
equals(java.lang.Object o)
Returns
true if the two dictionaries are the same. |
long |
getReferenceLength() |
SAMSequenceRecord |
getSequence(int sequenceIndex) |
SAMSequenceRecord |
getSequence(java.lang.String name) |
int |
getSequenceIndex(java.lang.String sequenceName) |
java.util.List<SAMSequenceRecord> |
getSequences() |
int |
hashCode() |
boolean |
isEmpty() |
boolean |
isSameDictionary(SAMSequenceDictionary that)
Non-comprehensive
equals(Object)-validation: instead of calling SAMSequenceRecord.equals(Object) on constituent
SAMSequenceRecords in this dictionary against its pair in the target dictionary, in order, call
SAMSequenceRecord.isSameSequence(SAMSequenceRecord). |
java.lang.String |
md5()
return a MD5 sum for ths dictionary, the checksum is re-computed each
time this method is called.
|
static SAMSequenceDictionary |
mergeDictionaries(SAMSequenceDictionary dict1,
SAMSequenceDictionary dict2,
java.util.List<java.lang.String> tagsToMatch)
Will merge dictionaryTags from two dictionaries into one focusing on merging the tags rather than the sequences.
|
void |
setSequences(java.util.List<SAMSequenceRecord> list)
Replaces the existing list of SAMSequenceRecords with the given list.
|
int |
size() |
java.lang.String |
toString() |
public static final long serialVersionUID
public static final java.util.List<java.lang.String> DEFAULT_DICTIONARY_EQUAL_TAG
public SAMSequenceDictionary()
public SAMSequenceDictionary(java.util.List<SAMSequenceRecord> list)
public java.util.List<SAMSequenceRecord> getSequences()
public SAMSequenceRecord getSequence(java.lang.String name)
public void setSequences(java.util.List<SAMSequenceRecord> list)
list - This value is copied and validated.public void addSequence(SAMSequenceRecord sequenceRecord)
public SAMSequenceRecord getSequence(int sequenceIndex)
public int getSequenceIndex(java.lang.String sequenceName)
public int size()
public long getReferenceLength()
public boolean isEmpty()
public void assertSameDictionary(SAMSequenceDictionary that)
equals(Object)-assertion: instead of calling SAMSequenceRecord.equals(Object) on constituent
SAMSequenceRecords in this dictionary against its pair in the target dictionary, in order, call
SAMSequenceRecord.isSameSequence(SAMSequenceRecord).
Aliases are ignored.java.lang.AssertionError - When the dictionaries are not the same, with some human-readable information as to whypublic boolean isSameDictionary(SAMSequenceDictionary that)
equals(Object)-validation: instead of calling SAMSequenceRecord.equals(Object) on constituent
SAMSequenceRecords in this dictionary against its pair in the target dictionary, in order, call
SAMSequenceRecord.isSameSequence(SAMSequenceRecord).that - SAMSequenceDictionary to compare againstpublic boolean equals(java.lang.Object o)
true if the two dictionaries are the same.
NOTE: Aliases are NOT considered, but alternative sequence names (AN tag) names ARE.
equals in class java.lang.Objectpublic SAMSequenceRecord addSequenceAlias(java.lang.String originalName, java.lang.String altName)
1,chr1,chr01,01,CM000663,NC_000001.10 e.g:
MT,chrM
NOTE: this method does not add the alias to the alternative sequence name tag (AN) in the SAMSequenceRecord.
If you would like to add it to the AN tag, use addAlternativeSequenceName(String, String) instead.
originalName - existing contig namealtName - new contig namepublic SAMSequenceRecord addAlternativeSequenceName(java.lang.String originalName, java.lang.String altName)
addSequenceAlias(String, String).
This can be use to provide some alternate names fo a given contig. e.g:
1,chr1,chr01,01,CM000663 or
MT,chrM.
originalName - existing contig namealtName - new contig namepublic java.lang.String md5()
md5( (seq1.md5_if_available) + ' '+(seq2.name+seq2.length) + ' '+...)
public int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic static SAMSequenceDictionary mergeDictionaries(SAMSequenceDictionary dict1, SAMSequenceDictionary dict2, java.util.List<java.lang.String> tagsToMatch)
dict1 - first dictionarydict2 - first dictionarytagsToMatch - list of tags that must be equal if present in both sequence. Must contain MD, and LN