public String getDescription() { return getAttribute(DESCRIPTION_TAG);} public void setDescription(final String value) { setAttribute(DESCRIPTION_TAG, value);}
public static void checkRefMD5(SAMSequenceDictionary d, ReferenceSequenceFile refFile, boolean checkExistingMD5, boolean failIfMD5Mismatch) throws NoSuchAlgorithmException { for (SAMSequenceRecord r : d.getSequences()) { ReferenceSequence sequence = refFile.getSequence(r.getSequenceName()); if (!r.getAttributes().contains(SAMSequenceRecord.MD5_TAG)) { String md5 = calculateMD5String(sequence.getBases()); r.setAttribute(SAMSequenceRecord.MD5_TAG, md5); } else { if (checkExistingMD5) { String existingMD5 = r.getAttribute(SAMSequenceRecord.MD5_TAG); String md5 = calculateMD5String(sequence.getBases()); if (!md5.equals(existingMD5)) { String message = String.format("For sequence %s the md5 %s does not match the actual md5 %s.", r.getSequenceName(), existingMD5, md5); if (failIfMD5Mismatch) throw new RuntimeException(message); else log.warn(message); } } } } }
public String getAssembly() { return (String) getAttribute("AS"); } public void setAssembly(final String value) { setAttribute("AS", value); }
public String getSpecies() { return (String) getAttribute("SP"); } public void setSpecies(final String value) { setAttribute("SP", value); }
public String getAssembly() { return (String) getAttribute(ASSEMBLY_TAG); } public void setAssembly(final String value) { setAttribute(ASSEMBLY_TAG, value); }
public String getAssembly() { return (String) getAttribute(ASSEMBLY_TAG); } public void setAssembly(final String value) { setAttribute(ASSEMBLY_TAG, value); }
public String getMd5() { return (String) getAttribute(MD5_TAG); } public void setMd5(final String value) { setAttribute(MD5_TAG, value); }
public String getSpecies() { return (String) getAttribute(SPECIES_TAG); } public void setSpecies(final String value) { setAttribute(SPECIES_TAG, value); }
public String getSpecies() { return (String) getAttribute(SPECIES_TAG); } public void setSpecies(final String value) { setAttribute(SPECIES_TAG, value); }
public String getMd5() { return (String) getAttribute(MD5_TAG); } public void setMd5(final String value) { setAttribute(MD5_TAG, value); }
public String getDescription() { return getAttribute(DESCRIPTION_TAG);} public void setDescription(final String value) { setAttribute(DESCRIPTION_TAG, value);}
/** * Looser comparison than equals(). We look only at sequence index, sequence length, and MD5 tag value * (or sequence names, if there is no MD5 tag in either record. */ public boolean isSameSequence(final SAMSequenceRecord that) { if (this == that) return true; if (that == null) return false; if (mSequenceIndex != that.mSequenceIndex) return false; // PIC-439. Allow undefined length. if (mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && that.mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && mSequenceLength != that.mSequenceLength) return false; if (this.getAttribute(SAMSequenceRecord.MD5_TAG) != null && that.getAttribute(SAMSequenceRecord.MD5_TAG) != null) { final BigInteger thisMd5 = new BigInteger((String)this.getAttribute(SAMSequenceRecord.MD5_TAG), 16); final BigInteger thatMd5 = new BigInteger((String)that.getAttribute(SAMSequenceRecord.MD5_TAG), 16); if (!thisMd5.equals(thatMd5)) { return false; } } else { if (mSequenceName != that.mSequenceName) return false; // Compare using == since we intern() the Strings } return true; }
/** * Looser comparison than equals(). We look only at sequence index, sequence length, and MD5 tag value * (or sequence names, if there is no MD5 tag in either record. */ public boolean isSameSequence(final SAMSequenceRecord that) { if (this == that) return true; if (that == null) return false; if (mSequenceIndex != that.mSequenceIndex) return false; // PIC-439. Allow undefined length. if (mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && that.mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && mSequenceLength != that.mSequenceLength) return false; if (this.getAttribute(SAMSequenceRecord.MD5_TAG) != null && that.getAttribute(SAMSequenceRecord.MD5_TAG) != null) { final BigInteger thisMd5 = new BigInteger((String)this.getAttribute(SAMSequenceRecord.MD5_TAG), 16); final BigInteger thatMd5 = new BigInteger((String)that.getAttribute(SAMSequenceRecord.MD5_TAG), 16); if (!thisMd5.equals(thatMd5)) { return false; } } else { if (mSequenceName != that.mSequenceName) return false; // Compare using == since we intern() the Strings } return true; }
/** * Looser comparison than equals(). We look only at sequence index, sequence length, and MD5 tag value * (or sequence names, if there is no MD5 tag in either record. */ public boolean isSameSequence(final SAMSequenceRecord that) { if (this == that) return true; if (that == null) return false; if (mSequenceIndex != that.mSequenceIndex) return false; // PIC-439. Allow undefined length. if (mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && that.mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && mSequenceLength != that.mSequenceLength) return false; if (this.getAttribute(SAMSequenceRecord.MD5_TAG) != null && that.getAttribute(SAMSequenceRecord.MD5_TAG) != null) { final BigInteger thisMd5 = new BigInteger((String)this.getAttribute(SAMSequenceRecord.MD5_TAG), 16); final BigInteger thatMd5 = new BigInteger((String)that.getAttribute(SAMSequenceRecord.MD5_TAG), 16); if (!thisMd5.equals(thatMd5)) { return false; } } else { if (mSequenceName != that.mSequenceName) return false; // Compare using == since we intern() the Strings } return true; }
if (samSequenceRecord.getSequenceIndex() > 0) md5.update((byte) ' '); final String md5_tag = samSequenceRecord.getAttribute(SAMSequenceRecord.MD5_TAG); if (md5_tag != null) { md5.update(md5_tag.getBytes());
@Override public synchronized byte[] getReferenceBases(SAMSequenceRecord record, boolean tryNameVariants) { byte[] bases = findBases(record, tryNameVariants); if (bases == null) return null; cacheW.put(record.getSequenceName(), new WeakReference<byte[]>(bases)); String md5 = record.getAttribute(SAMSequenceRecord.MD5_TAG); if (md5 == null) { md5 = Utils.calculateMD5String(bases); record.setAttribute(SAMSequenceRecord.MD5_TAG, md5); } if (REF_CACHE != null) addToRefCache(md5, bases); return bases; }
private boolean compareSequenceRecord(final SAMSequenceRecord sequenceRecord1, final SAMSequenceRecord sequenceRecord2, final int which) { if (!sequenceRecord1.getSequenceName().equals(sequenceRecord2.getSequenceName())) { reportDifference(sequenceRecord1.getSequenceName(), sequenceRecord2.getSequenceName(), "Name of sequence record " + which); return false; } boolean ret = compareValues(sequenceRecord1.getSequenceLength(), sequenceRecord2.getSequenceLength(), "Length of sequence " + sequenceRecord1.getSequenceName()); ret = compareValues(sequenceRecord1.getSpecies(), sequenceRecord2.getSpecies(), "Species of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAssembly(), sequenceRecord2.getAssembly(), "Assembly of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("M5"), sequenceRecord2.getAttribute("M5"), "MD5 of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("UR"), sequenceRecord2.getAttribute("UR"), "URI of sequence " + sequenceRecord1.getSequenceName()) && ret; return ret; }
private boolean compareSequenceRecord(final SAMSequenceRecord sequenceRecord1, final SAMSequenceRecord sequenceRecord2, final int which) { if (!sequenceRecord1.getSequenceName().equals(sequenceRecord2.getSequenceName())) { reportDifference(sequenceRecord1.getSequenceName(), sequenceRecord2.getSequenceName(), "Name of sequence record " + which); return false; } boolean ret = compareValues(sequenceRecord1.getSequenceLength(), sequenceRecord2.getSequenceLength(), "Length of sequence " + sequenceRecord1.getSequenceName()); ret = compareValues(sequenceRecord1.getSpecies(), sequenceRecord2.getSpecies(), "Species of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAssembly(), sequenceRecord2.getAssembly(), "Assembly of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("M5"), sequenceRecord2.getAttribute("M5"), "MD5 of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("UR"), sequenceRecord2.getAttribute("UR"), "URI of sequence " + sequenceRecord1.getSequenceName()) && ret; return ret; }
private boolean compareSequenceRecord(final SAMSequenceRecord sequenceRecord1, final SAMSequenceRecord sequenceRecord2, final int which) throws Exception { if (!sequenceRecord1.getSequenceName().equals(sequenceRecord2.getSequenceName())) { reportDifference(sequenceRecord1.getSequenceName(), sequenceRecord2.getSequenceName(), "Name of sequence record " + which); return false; } boolean ret = compareValues(sequenceRecord1.getSequenceLength(), sequenceRecord2.getSequenceLength(), "Length of sequence " + sequenceRecord1.getSequenceName()); if (!options.ignoreSequenceProperties) { ret = compareValues(sequenceRecord1.getSpecies(), sequenceRecord2.getSpecies(), "Species of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAssembly(), sequenceRecord2.getAssembly(), "Assembly of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("M5"), sequenceRecord2.getAttribute("M5"), "MD5 of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("UR"), sequenceRecord2.getAttribute("UR"), "URI of sequence " + sequenceRecord1.getSequenceName()) && ret; } return ret; }
private boolean compareSequenceRecord(final SAMSequenceRecord sequenceRecord1, final SAMSequenceRecord sequenceRecord2, final int which) throws Exception { if (!sequenceRecord1.getSequenceName().equals(sequenceRecord2.getSequenceName())) { reportDifference(sequenceRecord1.getSequenceName(), sequenceRecord2.getSequenceName(), "Name of sequence record " + which); return false; } boolean ret = compareValues(sequenceRecord1.getSequenceLength(), sequenceRecord2.getSequenceLength(), "Length of sequence " + sequenceRecord1.getSequenceName()); if (!options.ignoreSequenceProperties) { ret = compareValues(sequenceRecord1.getSpecies(), sequenceRecord2.getSpecies(), "Species of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAssembly(), sequenceRecord2.getAssembly(), "Assembly of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("M5"), sequenceRecord2.getAttribute("M5"), "MD5 of sequence " + sequenceRecord1.getSequenceName()) && ret; ret = compareValues(sequenceRecord1.getAttribute("UR"), sequenceRecord2.getAttribute("UR"), "URI of sequence " + sequenceRecord1.getSequenceName()) && ret; } return ret; }