@Test public void testConvertUnknowns() throws IOException, UnsupportedEncodingException { String seq = "AAAAANNNNN"; fragment.setSequence(new Text(seq)); writer.write(null, fragment); writer.close(null); String[] fields = new String(outputBuffer.toByteArray(), "US-ASCII").split("\t"); assertEquals(seq.replace("N", "."), fields[8]); }
@Test public void testBaseQualities() throws IOException { // ensure sanger qualities are converted to illumina String seq = "AAAAAAAAAA"; String qual = "##########"; fragment.setSequence(new Text(seq)); fragment.setQuality(new Text(qual)); writer.write(null, fragment); writer.close(null); String[] fields = new String(outputBuffer.toByteArray(), "US-ASCII").split("\t"); assertEquals(qual.replace("#", "B"), fields[9]); }
@Test public void testConfigureOutputInSanger() throws IOException { String seq = "AAAAAAAAAA"; String qual = "##########"; fragment.setSequence(new Text(seq)); fragment.setQuality(new Text(qual)); Configuration conf = new Configuration(); conf.set("hbam.qseq-output.base-quality-encoding", "sanger"); writer.setConf(conf); writer.write(null, fragment); writer.close(null); String[] fields = new String(outputBuffer.toByteArray(), "US-ASCII").split("\t"); assertEquals(qual, fields[9]); }
@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 testNoIndex() throws IOException { fragment.setIndexSequence(null); writer.write(null, fragment); writer.close(null); String[] fields = new String(outputBuffer.toByteArray(), "US-ASCII").split("\t"); assertEquals(11, fields.length); assertEquals("0", fields[6]); } }
@Test public void testConvertUnknownsInIndexSequence() throws IOException, UnsupportedEncodingException { String index = "CATNNN"; fragment.setIndexSequence(index); writer.write(null, fragment); writer.close(null); String[] fields = new String(outputBuffer.toByteArray(), "US-ASCII").split("\t"); assertEquals(index.replace("N", "."), fields[6]); }