/** * This method is preferred over getReadBases().length, because for BAMRecord it may be faster. * @return number of bases in the read. */ public int getReadLength() { final byte[] readBases = getReadBases(); return readBases == null ? 0 : readBases.length; }
/** * This method is preferred over getReadBases().length, because for BAMRecord it may be faster. * @return number of bases in the read. */ public int getReadLength() { return getReadBases().length; }
/** * This method is preferred over getReadBases().length, because for BAMRecord it may be faster. * @return number of bases in the read. */ public int getReadLength() { final byte[] readBases = getReadBases(); return readBases == null ? 0 : readBases.length; }
/** * @return the read base according to <code>offset</code>. */ public byte getReadBase() { return record.getReadBases()[offset]; }
/** * @return the read base according to <code>offset</code>. */ public byte getReadBase() { return record.getReadBases()[offset]; }
/** * Checks whether if the read has any bases. * * Empty reads can be dangerous as it may have no cigar strings, no read names and * other missing attributes. * * @return true if the read has no bases */ public boolean isEmpty() { return super.getReadBases() == null || super.getReadLength() == 0; }
@Override public Double stratify(final SAMRecord sam) { try { return gcCache.get(sam, () -> (double) Math.round(100 * SequenceUtil.calculateGc(sam.getReadBases())) / 100D); } catch (final ExecutionException e) { e.printStackTrace(); throw new RuntimeException(e); } }
/** * @return read sequence as a string of ACGTN=. */ public String getReadString() { final byte[] readBases = getReadBases(); if (readBases.length == 0) { return NULL_SEQUENCE_STRING; } return StringUtil.bytesToString(readBases); }
@Override public Double stratify(final SAMRecord sam) { try { return gcCache.get(sam, () -> (double) Math.round(100 * SequenceUtil.calculateGc(sam.getReadBases())) / 100D); } catch (final ExecutionException e) { e.printStackTrace(); throw new RuntimeException(e); } }
public void sanityCheck() { for (int i = 0; i < read.getReadLength(); i++) { assert(read.getReadBases()[i] == seq.get(i)); } assert(new String(read.getReadBases()).equals(seq.toString())); } }
@Override public byte[] getReadBases() { if (!initializedFields.contains(LazyField.BASES)) { setReadBases(getReadBasesImpl()); } return super.getReadBases(); }
@Override public byte[] getReadBases() { if (!initializedFields.contains(LazyField.BASES)) { setReadBases(getReadBasesImpl()); } return super.getReadBases(); }
@Override public byte[] getReadBases() { byte[] result = super.getReadBases(); if (mRestOfBinaryData != null && result == null) { result = decodeReadBases(); super.setReadBases(result); } return result; }
private Read(LinearGenomicCoordinate lgc,SAMRecord read) { this.read = read; this.seq = new PackedSequence(read.getReadBases(), false, false); if (read.getReadUnmappedFlag()) { throw new IllegalStateException("Orientation of unmapped read unknown"); } this.startNode = new SgNode(lgc, this, 0); this.endNode = new SgNode(lgc, this, seq.length()); } public static Read create(LinearGenomicCoordinate lgc, SAMRecord read) {
@Test public void testConstructor(){ EdgingRecordAndOffset typedRecordAndOffset = EdgingRecordAndOffset.createBeginRecord(record, 0, 10, 3); Assert.assertEquals(qualities, typedRecordAndOffset.getBaseQualities()); Assert.assertEquals(bases, typedRecordAndOffset.getRecord().getReadBases()); Assert.assertEquals('A', typedRecordAndOffset.getReadBase()); Assert.assertEquals(0, typedRecordAndOffset.getOffset()); Assert.assertEquals(3, typedRecordAndOffset.getRefPos()); Assert.assertEquals(EdgingRecordAndOffset.Type.BEGIN, typedRecordAndOffset.getType()); }
private void testConvertedSAMRecord(final SAMRecord converted, final SAMRecord original) { Assert.assertEquals(converted.getReadName(), original.getReadName()); Assert.assertEquals(converted.getBaseQualities(), original.getBaseQualities()); Assert.assertEquals(converted.getReadBases(), original.getReadBases()); Assert.assertEquals(converted.getStringAttribute(SAMTag.CO.name()), original.getStringAttribute(SAMTag.CO.name())); Assert.assertTrue(converted.getReadUnmappedFlag()); } }
private static Character stratifyReadBase(final RecordAndOffset recordAndOffset, int offset) { final ReadDirection direction = ReadDirection.of(recordAndOffset.getRecord()); final int requestedOffset = recordAndOffset.getOffset() + offset * (direction == ReadDirection.POSITIVE ? 1 : -1); if (requestedOffset < 0 || requestedOffset >= recordAndOffset.getRecord().getReadLength()) { return null; } else { return stratifySequenceBase(recordAndOffset.getRecord().getReadBases()[requestedOffset], direction == ReadDirection.NEGATIVE); } }
private void assertGoodRead(final SAMRecord read, final ArtificialBAMBuilder bamBuilder) { Assert.assertEquals(read.getReadLength(), bamBuilder.getReadLength()); Assert.assertEquals(read.getReadBases().length, bamBuilder.getReadLength()); Assert.assertEquals(read.getBaseQualities().length, bamBuilder.getReadLength()); Assert.assertTrue(read.getAlignmentStart() >= bamBuilder.getAlignmentStart()); Assert.assertNotNull(read.getReadGroup()); } }
private static Character stratifyReadBase(final RecordAndOffset recordAndOffset, int offset) { final ReadDirection direction = ReadDirection.of(recordAndOffset.getRecord()); final int requestedOffset = recordAndOffset.getOffset() + offset * (direction == ReadDirection.POSITIVE ? 1 : -1); if (requestedOffset < 0 || requestedOffset >= recordAndOffset.getRecord().getReadLength()) { return null; } else { return stratifySequenceBase(recordAndOffset.getRecord().getReadBases()[requestedOffset], direction == ReadDirection.NEGATIVE); } }
private void testRecord(final String expectedReadName, final FastqRecord fastqRecord, final SAMRecord samRecord) { Assert.assertEquals(fastqRecord.getReadName(), expectedReadName); Assert.assertEquals(fastqRecord.getBaseQualities(), samRecord.getBaseQualities()); Assert.assertEquals(fastqRecord.getReadBases(), samRecord.getReadBases()); Assert.assertEquals(fastqRecord.getBaseQualityHeader(), samRecord.getStringAttribute(SAMTag.CO.name())); }