protected String makeId(SequencedFragment seq) throws IOException { String delim = ":"; sBuilder.delete(0, sBuilder.length()); // clear sBuilder.append( seq.getInstrument() == null ? "" : seq.getInstrument() ).append(delim); sBuilder.append( seq.getRunNumber() == null ? "" : seq.getRunNumber().toString() ).append(delim); sBuilder.append( seq.getFlowcellId() == null ? "" : seq.getFlowcellId() ).append(delim); sBuilder.append( seq.getLane() == null ? "" : seq.getLane().toString() ).append(delim); sBuilder.append( seq.getTile() == null ? "" : seq.getTile().toString() ).append(delim); sBuilder.append( seq.getXpos() == null ? "" : seq.getXpos().toString() ).append(delim); sBuilder.append( seq.getYpos() == null ? "" : seq.getYpos().toString() ); sBuilder.append(" "); // space sBuilder.append( seq.getRead() == null ? "" : seq.getRead().toString() ).append(delim); sBuilder.append(seq.getFilterPassed() == null || seq.getFilterPassed() ? "N" : "Y"); sBuilder.append(delim); sBuilder.append( seq.getControlNumber() == null ? "0" : seq.getControlNumber().toString()).append(delim); sBuilder.append( seq.getIndexSequence() == null ? "" : seq.getIndexSequence()); return sBuilder.toString(); }
protected String makeId(SequencedFragment seq) throws IOException { String delim = ":"; sBuilder.delete(0, sBuilder.length()); // clear sBuilder.append( seq.getInstrument() == null ? "" : seq.getInstrument() ).append(delim); sBuilder.append( seq.getRunNumber() == null ? "" : seq.getRunNumber().toString() ).append(delim); sBuilder.append( seq.getFlowcellId() == null ? "" : seq.getFlowcellId() ).append(delim); sBuilder.append( seq.getLane() == null ? "" : seq.getLane().toString() ).append(delim); sBuilder.append( seq.getTile() == null ? "" : seq.getTile().toString() ).append(delim); sBuilder.append( seq.getXpos() == null ? "" : seq.getXpos().toString() ).append(delim); sBuilder.append( seq.getYpos() == null ? "" : seq.getYpos().toString() ); sBuilder.append(" "); // space sBuilder.append( seq.getRead() == null ? "" : seq.getRead().toString() ).append(delim); sBuilder.append(seq.getFilterPassed() == null || seq.getFilterPassed() ? "N" : "Y"); sBuilder.append(delim); sBuilder.append( seq.getControlNumber() == null ? "0" : seq.getControlNumber().toString()).append(delim); sBuilder.append( seq.getIndexSequence() == null ? "" : seq.getIndexSequence()); return sBuilder.toString(); }
protected String makeId(SequencedFragment seq) throws IOException { String delim = ":"; sBuilder.delete(0, sBuilder.length()); // clear sBuilder.append( seq.getInstrument() == null ? "" : seq.getInstrument() ).append(delim); sBuilder.append( seq.getRunNumber() == null ? "" : seq.getRunNumber().toString() ).append(delim); sBuilder.append( seq.getFlowcellId() == null ? "" : seq.getFlowcellId() ).append(delim); sBuilder.append( seq.getLane() == null ? "" : seq.getLane().toString() ).append(delim); sBuilder.append( seq.getTile() == null ? "" : seq.getTile().toString() ).append(delim); sBuilder.append( seq.getXpos() == null ? "" : seq.getXpos().toString() ).append(delim); sBuilder.append( seq.getYpos() == null ? "" : seq.getYpos().toString() ); sBuilder.append(" "); // space sBuilder.append( seq.getRead() == null ? "" : seq.getRead().toString() ).append(delim); sBuilder.append(seq.getFilterPassed() == null || seq.getFilterPassed() ? "N" : "Y"); sBuilder.append(delim); sBuilder.append( seq.getControlNumber() == null ? "0" : seq.getControlNumber().toString()).append(delim); sBuilder.append( seq.getIndexSequence() == null ? "" : seq.getIndexSequence()); return sBuilder.toString(); }
@Test public void testNameWithoutReadNum() throws IOException { writeToTempFastq(oneFastqWithoutRead); split = new FileSplit(new Path(tempFastq.toURI().toString()), 0, oneFastqWithoutRead.length(), null); FastqRecordReader reader = new FastqRecordReader(conf, split); boolean retval = reader.next(key, fragment); assertTrue(retval); assertNull("Read is not null", fragment.getRead()); }
private void verifySkipFailedQC() throws IOException { writeToTempQseq(twoQseq); split = new FileSplit(new Path(tempQseq.toURI().toString()), 0, twoQseq.length(), null); QseqRecordReader reader = new QseqRecordReader(conf, split); boolean found = reader.next(key, fragment); assertTrue(found); assertEquals(2, (int)fragment.getRead()); found = reader.next(key, fragment); assertFalse(found); }
private void verifySkipFailedQC() throws IOException { writeToTempFastq(twoFastqWithIllumina); split = new FileSplit(new Path(tempFastq.toURI().toString()), 0, twoFastqWithIllumina.length(), null); FastqRecordReader reader = new FastqRecordReader(conf, split); boolean found = reader.next(key, fragment); assertTrue(found); assertEquals(2, (int)fragment.getRead()); found = reader.next(key, fragment); assertTrue(found); assertEquals(3, (int)fragment.getRead()); found = reader.next(key, fragment); assertFalse(found); }
@Test public void testGetReadNumFromName() throws IOException { FastqRecordReader reader = createReaderForOneFastq(); boolean retval = reader.next(key, fragment); assertTrue(retval); assertEquals(1, fragment.getRead().intValue()); }
private static void compareMetadata(SequencedFragment fragment, String idLine) { idLine = idLine.substring(1); String[] pieces = idLine.split(" ")[0].split(":"); // first part: location on flowcell assertEquals(fragment.getInstrument(), pieces[0]); assertEquals(fragment.getRunNumber().toString(), pieces[1]); assertEquals(fragment.getFlowcellId(), pieces[2]); assertEquals(fragment.getLane().toString(), pieces[3]); assertEquals(fragment.getTile().toString(), pieces[4]); assertEquals(fragment.getXpos().toString(), pieces[5]); assertEquals(fragment.getYpos().toString(), pieces[6]); pieces = idLine.split(" ")[1].split(":"); // second part assertEquals(fragment.getRead().toString(), pieces[0]); assertEquals(fragment.getFilterPassed() ? "N" : "Y", pieces[1]); assertEquals(fragment.getControlNumber().toString(), pieces[2]); assertEquals(fragment.getIndexSequence().toString(), pieces[3]); }
@Test public void testSimple() throws IOException { writer.write(null, fragment); writer.close(null); String[] fields = new String(outputBuffer.toByteArray(), "US-ASCII").split("\t"); assertEquals(11, fields.length); assertEquals(fragment.getInstrument(), fields[0]); assertEquals(fragment.getRunNumber().toString(), fields[1]); assertEquals(fragment.getLane().toString(), fields[2]); assertEquals(fragment.getTile().toString(), fields[3]); assertEquals(fragment.getXpos().toString(), fields[4]); assertEquals(fragment.getYpos().toString(), fields[5]); assertEquals(fragment.getIndexSequence().toString(), fields[6]); assertEquals(fragment.getRead().toString(), fields[7]); assertEquals(fragment.getSequence().toString(), fields[8]); assertEquals(fragment.getQuality().toString().replace('#', 'B'), fields[9]); assertEquals(fragment.getFilterPassed() ? "1\n" : "0\n", fields[10]); }
@Test public void testIlluminaMetaInfo() throws IOException { writeToTempFastq(illuminaFastq); split = new FileSplit(new Path(tempFastq.toURI().toString()), 0, illuminaFastq.length(), null); FastqRecordReader reader = new FastqRecordReader(conf, split); boolean found = reader.next(key, fragment); assertTrue(found); assertEquals("EAS139", fragment.getInstrument()); assertEquals(136, fragment.getRunNumber().intValue()); assertEquals("FC706VJ", fragment.getFlowcellId()); assertEquals(2, fragment.getLane().intValue()); assertEquals(5, fragment.getTile().intValue()); assertEquals(1000, fragment.getXpos().intValue()); assertEquals(12850, fragment.getYpos().intValue()); assertEquals(1, fragment.getRead().intValue()); assertEquals(false, fragment.getFilterPassed().booleanValue()); assertEquals(18, fragment.getControlNumber().intValue()); assertEquals("ATCACG", fragment.getIndexSequence()); }
@Test public void testIlluminaMetaInfoNullFC() throws IOException { writeToTempFastq(illuminaFastqNoFlowCellID); split = new FileSplit(new Path(tempFastq.toURI().toString()), 0, illuminaFastqNoFlowCellID.length(), null); FastqRecordReader reader = new FastqRecordReader(conf, split); boolean found = reader.next(key, fragment); assertTrue(found); assertEquals("EAS139", fragment.getInstrument()); assertEquals(136, fragment.getRunNumber().intValue()); assertEquals("", fragment.getFlowcellId()); assertEquals(2, fragment.getLane().intValue()); assertEquals(5, fragment.getTile().intValue()); assertEquals(1000, fragment.getXpos().intValue()); assertEquals(12850, fragment.getYpos().intValue()); assertEquals(1, fragment.getRead().intValue()); assertEquals(false, fragment.getFilterPassed().booleanValue()); assertEquals(18, fragment.getControlNumber().intValue()); assertEquals("ATCACG", fragment.getIndexSequence()); }
@Test public void testIlluminaMetaInfo() throws IOException { writeToTempQseq(illuminaQseq); split = new FileSplit(new Path(tempQseq.toURI().toString()), 0, illuminaQseq.length(), null); QseqRecordReader reader = new QseqRecordReader(conf, split); boolean found = reader.next(key, fragment); assertTrue(found); assertEquals("EAS139", fragment.getInstrument()); assertEquals(136, fragment.getRunNumber().intValue()); assertNull("flowcell id not null", fragment.getFlowcellId()); assertEquals(2, fragment.getLane().intValue()); assertEquals(5, fragment.getTile().intValue()); assertEquals(1000, fragment.getXpos().intValue()); assertEquals(12850, fragment.getYpos().intValue()); assertEquals(1, fragment.getRead().intValue()); assertEquals(false, fragment.getFilterPassed().booleanValue()); assertNull("control number not null", fragment.getControlNumber()); assertEquals("ATCACG", fragment.getIndexSequence()); }
@Test public void testIlluminaMetaInfoNegativeXYpos() throws IOException { writeToTempFastq(illuminaFastqNegativeXYPos); split = new FileSplit(new Path(tempFastq.toURI().toString()), 0, illuminaFastqNegativeXYPos.length(), null); FastqRecordReader reader = new FastqRecordReader(conf, split); boolean found = reader.next(key, fragment); assertTrue(found); assertEquals("EAS139", fragment.getInstrument()); assertEquals(136, fragment.getRunNumber().intValue()); assertEquals("FC706VJ", fragment.getFlowcellId()); assertEquals(2, fragment.getLane().intValue()); assertEquals(5, fragment.getTile().intValue()); assertEquals(-1000, fragment.getXpos().intValue()); assertEquals(-12850, fragment.getYpos().intValue()); assertEquals(1, fragment.getRead().intValue()); assertEquals(false, fragment.getFilterPassed().booleanValue()); assertEquals(18, fragment.getControlNumber().intValue()); assertEquals("ATCACG", fragment.getIndexSequence()); }
@Test public void testInitialState() { assertNotNull(frag.getSequence()); assertNotNull(frag.getQuality()); assertNull(frag.getInstrument()); assertNull(frag.getRunNumber()); assertNull(frag.getFlowcellId()); assertNull(frag.getLane()); assertNull(frag.getTile()); assertNull(frag.getXpos()); assertNull(frag.getYpos()); assertNull(frag.getRead()); assertNull(frag.getFilterPassed()); assertNull(frag.getControlNumber()); assertNull(frag.getIndexSequence()); assertNotNull(frag.toString()); }