/** * shortcut to getReadString().length() * * @deprecated since 02/2017. Use {@link #getReadLength()} instead */ @Deprecated public int length() { return getReadLength(); }
/** * shortcut to getReadString().length() * * @deprecated since 02/2017. Use {@link #getReadLength()} instead */ @Deprecated public int length() { return getReadLength(); }
/** * Encodes a FastqRecord in the String FASTQ format. */ public static String encode(final FastqRecord record) { // reserve some memory based on the read length int capacity = record.getReadLength() * 2 + 5; // reserve some memory based on the read name if (record.getReadName() != null) { capacity += record.getReadName().length(); } return write(new StringBuilder(capacity), record).toString(); }
/** * Encodes a FastqRecord in the String FASTQ format. */ public static String encode(final FastqRecord record) { // reserve some memory based on the read length int capacity = record.getReadLength() * 2 + 5; // reserve some memory based on the read name if (record.getReadName() != null) { capacity += record.getReadName().length(); } return write(new StringBuilder(capacity), record).toString(); }
@Test public void testBasic() { final String seqHeaderPrefix = "FAKE0003 Original version has Solexa scores from 62 to -5 inclusive (in that order)"; final String seqLine = "ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT"; final String qualHeaderPrefix = ""; final String qualLine = ";<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; final FastqRecord fastqRecord = new FastqRecord(seqHeaderPrefix, seqLine, qualHeaderPrefix, qualLine); Assert.assertNull(fastqRecord.getBaseQualityHeader()); Assert.assertEquals(fastqRecord.getReadName(), seqHeaderPrefix); Assert.assertEquals(fastqRecord.getBaseQualityString(), qualLine); Assert.assertEquals(fastqRecord.getReadString(), seqLine); Assert.assertNotNull(fastqRecord.toString());//just check not nullness Assert.assertNotEquals(fastqRecord, null); Assert.assertFalse(fastqRecord.equals(null)); Assert.assertNotEquals(null, fastqRecord); Assert.assertEquals(fastqRecord, fastqRecord); Assert.assertNotEquals(fastqRecord, "fred"); Assert.assertNotEquals("fred", fastqRecord); Assert.assertEquals(fastqRecord.getReadLength(), seqLine.length()); Assert.assertEquals(fastqRecord.getBaseQualityString().length(), fastqRecord.getReadString().length()); Assert.assertEquals(fastqRecord.getReadString().length(), fastqRecord.getReadLength()); }
public List<FastqRecord> extract(SAMRecord r) { List<FastqRecord> list = new ArrayList<>(2); if (r.getReadUnmappedFlag()) return list; if (!SAMRecordUtil.isSoftClipLengthAtLeast(r, minSoftClipLength)) return list; if (realignEntireRecord && !isSplit && !AssemblyAttributes.isUnanchored(r)) { list.add(SplitReadHelper.getFullRealignment(r, eidgen)); return list; } // Logic for extending an existing SA alignment not yet complete. Need to: // - only realign bases not in any existing SA alignment // - update all SA record (requires queryname sorted input file) // Note that realignments may be split reads, but we currently only consider the primary alignment if (!realignExistingSplitReads && !isSplit && r.getAttribute(SAMTag.SA.name()) != null) return list; if (r.getSupplementaryAlignmentFlag()) return list; if (r.isSecondaryAlignment() && !processSecondaryAlignments) return list; for (FastqRecord fqr : SplitReadHelper.getSplitReadRealignments(r, isSplit, eidgen)) { if (fqr.getReadLength() < minSoftClipLength) continue; if (averageBaseQuality(fqr) < minClipQuality) continue; list.add(fqr); } return list; } private static double averageBaseQuality(FastqRecord fqr) {