/*
* Eoulsan development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public License version 2.1 or
* later and CeCILL-C. This should be distributed with the code.
* If you do not have a copy, see:
*
* http://www.gnu.org/licenses/lgpl-2.1.txt
* http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.txt
*
* Copyright for this code is held jointly by the Genomic platform
* of the Institut de Biologie de l'École normale supérieure and
* the individual authors. These should be listed in @author doc
* comments.
*
* For more information on the Eoulsan project and its aims,
* or to join the Eoulsan Google group, visit the home page
* at:
*
* http://outils.genomique.biologie.ens.fr/eoulsan
*
*/
package fr.ens.biologie.genomique.eoulsan.bio;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collections;
import org.junit.Test;
import fr.ens.biologie.genomique.eoulsan.EoulsanException;
import fr.ens.biologie.genomique.eoulsan.bio.IlluminaReadId;
import fr.ens.biologie.genomique.eoulsan.bio.Sequence;
public class IlluminaReadIdTest {
@Test
public void testGetInstrumentId() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertTrue(ii.isInstrumentIdField());
assertEquals("HWUSI-EAS100R", ii.getInstrumentId());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertTrue(ii.isInstrumentIdField());
assertEquals("HWUSI-EAS100R", ii.getInstrumentId());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertTrue(ii.isInstrumentIdField());
assertEquals("HWUSI-EAS100R", ii.getInstrumentId());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertTrue(ii.isInstrumentIdField());
assertEquals("SOLEXA3_162", ii.getInstrumentId());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertTrue(ii.isInstrumentIdField());
assertEquals("SOLEXA3_162", ii.getInstrumentId());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isInstrumentIdField());
assertEquals("HWI-1KL110", ii.getInstrumentId());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isInstrumentIdField());
assertEquals("HWI-1KL110", ii.getInstrumentId());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isInstrumentIdField());
assertEquals("NB500892", ii.getInstrumentId());
ii = new IlluminaReadId("HWI-1KL110:25:B0866ABXX:1:1101:1167:2098 1:N:0:");
assertTrue(ii.isInstrumentIdField());
assertEquals("HWI-1KL110", ii.getInstrumentId());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isInstrumentIdField());
assertEquals("NB500892", ii.getInstrumentId());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertTrue(ii.isInstrumentIdField());
assertEquals("HWI-ST1160", ii.getInstrumentId());
}
@Test
public void testGetRunId() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertFalse(ii.isRunIdField());
assertEquals(-1, ii.getRunId());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertFalse(ii.isRunIdField());
assertEquals(-1, ii.getRunId());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertFalse(ii.isRunIdField());
assertEquals(-1, ii.getRunId());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertFalse(ii.isRunIdField());
assertEquals(-1, ii.getRunId());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertFalse(ii.isRunIdField());
assertEquals(-1, ii.getRunId());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isRunIdField());
assertEquals(24, ii.getRunId());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isRunIdField());
assertEquals(67, ii.getRunId());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isRunIdField());
assertEquals(10, ii.getRunId());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertTrue(ii.isRunIdField());
assertEquals(266, ii.getRunId());
}
@Test
public void testGetFlowCellId() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertFalse(ii.isFlowCellIdField());
assertEquals(null, ii.getFlowCellId());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertFalse(ii.isFlowCellIdField());
assertEquals(null, ii.getFlowCellId());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertFalse(ii.isFlowCellIdField());
assertEquals(null, ii.getFlowCellId());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertFalse(ii.isFlowCellIdField());
assertEquals(null, ii.getFlowCellId());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertFalse(ii.isFlowCellIdField());
assertEquals(null, ii.getFlowCellId());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isFlowCellIdField());
assertEquals("AB0868ABXX", ii.getFlowCellId());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isFlowCellIdField());
assertEquals("HVN5KBGXX", ii.getFlowCellId());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isFlowCellIdField());
assertEquals("H3YL2AFXX", ii.getFlowCellId());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertTrue(ii.isFlowCellIdField());
assertEquals("D0H3RACXX", ii.getFlowCellId());
}
@Test
public void testGetFlowCellLane() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertTrue(ii.isFlowCellLaneField());
assertEquals(6, ii.getFlowCellLane());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertTrue(ii.isFlowCellLaneField());
assertEquals(6, ii.getFlowCellLane());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertTrue(ii.isFlowCellLaneField());
assertEquals(6, ii.getFlowCellLane());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertTrue(ii.isFlowCellLaneField());
assertEquals(7, ii.getFlowCellLane());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertTrue(ii.isFlowCellLaneField());
assertEquals(7, ii.getFlowCellLane());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isFlowCellLaneField());
assertEquals(3, ii.getFlowCellLane());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isFlowCellLaneField());
assertEquals(1, ii.getFlowCellLane());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isFlowCellLaneField());
assertEquals(1, ii.getFlowCellLane());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertTrue(ii.isFlowCellLaneField());
assertEquals(6, ii.getFlowCellLane());
}
@Test
public void testGetTileNumberInFlowCellLane() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(73, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(73, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(73, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(100, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(100, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(1101, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(11101, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(11101, ii.getTileNumberInFlowCellLane());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertTrue(ii.isTileNumberInFlowCellLaneField());
assertEquals(1315, ii.getTileNumberInFlowCellLane());
}
@Test
public void testGetxClusterCoordinateInTile() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(941, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(941, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(941, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(10000, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(10000, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(1492, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(22912, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(1108, ii.getXClusterCoordinateInTile());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertTrue(ii.isXClusterCoordinateInTileField());
assertEquals(4634, ii.getXClusterCoordinateInTile());
}
@Test
public void testGetyClusterCoordinateInTile() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(1973, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(1973, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(1973, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(1220, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(1220, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(2178, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(1064, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(1044, ii.getYClusterCoordinateInTile());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertTrue(ii.isYClusterCoordinateInTileField());
assertEquals(59858, ii.getYClusterCoordinateInTile());
}
@Test
public void testGetMultiplexedSample() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertTrue(ii.isSequenceIndexField());
assertEquals("0", ii.getSequenceIndex());
assertEquals(Collections.EMPTY_LIST, ii.getSequenceIndexList());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#ATCACG/1");
assertTrue(ii.isSequenceIndexField());
assertEquals("ATCACG", ii.getSequenceIndex());
assertEquals(Arrays.asList("ATCACG"), ii.getSequenceIndexList());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertFalse(ii.isSequenceIndexField());
assertEquals("0", ii.getSequenceIndex());
assertEquals(Collections.EMPTY_LIST, ii.getSequenceIndexList());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertFalse(ii.isSequenceIndexField());
assertEquals("0", ii.getSequenceIndex());
assertEquals(Collections.EMPTY_LIST, ii.getSequenceIndexList());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertFalse(ii.isSequenceIndexField());
assertEquals("0", ii.getSequenceIndex());
assertEquals(Collections.EMPTY_LIST, ii.getSequenceIndexList());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertFalse(ii.isSequenceIndexField());
assertEquals("0", ii.getSequenceIndex());
assertEquals(Collections.EMPTY_LIST, ii.getSequenceIndexList());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isSequenceIndexField());
assertEquals("ATCACG", ii.getSequenceIndex());
assertEquals(Arrays.asList("ATCACG"), ii.getSequenceIndexList());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isSequenceIndexField());
assertEquals("CTCTCTAC+TACTCCTT", ii.getSequenceIndex());
assertEquals(Arrays.asList("CTCTCTAC", "TACTCCTT"),
ii.getSequenceIndexList());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertFalse(ii.isSequenceIndexField());
assertEquals("0", ii.getSequenceIndex());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertFalse(ii.isSequenceIndexField());
assertEquals("0", ii.getSequenceIndex());
}
@Test
public void testGetPairMember() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertTrue(ii.isPairMemberField());
assertEquals(1, ii.getPairMember());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertTrue(ii.isPairMemberField());
assertEquals(1, ii.getPairMember());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertFalse(ii.isPairMemberField());
assertEquals(-1, ii.getPairMember());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertEquals(1, ii.getPairMember());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertFalse(ii.isPairMemberField());
assertEquals(-1, ii.getPairMember());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isPairMemberField());
assertEquals(1, ii.getPairMember());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isPairMemberField());
assertEquals(1, ii.getPairMember());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isPairMemberField());
assertEquals(1, ii.getPairMember());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertFalse(ii.isPairMemberField());
assertEquals(-1, ii.getPairMember());
}
@Test
public void testisFiltered() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertFalse(ii.isFilteredField());
assertFalse(ii.isFiltered());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isFilteredField());
assertFalse(ii.isFiltered());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertFalse(ii.isFilteredField());
assertFalse(ii.isFiltered());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertFalse(ii.isFilteredField());
assertFalse(ii.isFiltered());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertFalse(ii.isFilteredField());
assertFalse(ii.isFiltered());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertFalse(ii.isFilteredField());
assertFalse(ii.isFiltered());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:Y:0:ATCACG");
assertTrue(ii.isFilteredField());
assertTrue(ii.isFiltered());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isFilteredField());
assertFalse(ii.isFiltered());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isFilteredField());
assertTrue(ii.isFiltered());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertFalse(ii.isFilteredField());
assertFalse(ii.isFiltered());
}
@Test
public void testGetControlNumber() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertFalse(ii.isControlNumberField());
assertEquals(-1, ii.getControlNumber());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973/1");
assertFalse(ii.isControlNumberField());
assertEquals(-1, ii.getControlNumber());
ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973");
assertFalse(ii.isControlNumberField());
assertEquals(-1, ii.getControlNumber());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220/1");
assertFalse(ii.isControlNumberField());
assertEquals(-1, ii.getControlNumber());
ii = new IlluminaReadId("SOLEXA3_162:7:100:10000:1220");
assertFalse(ii.isControlNumberField());
assertEquals(-1, ii.getControlNumber());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertTrue(ii.isControlNumberField());
assertEquals(0, ii.getControlNumber());
ii = new IlluminaReadId(
"NB500892:67:HVN5KBGXX:1:11101:22912:1064 1:N:0:CTCTCTAC+TACTCCTT");
assertTrue(ii.isControlNumberField());
assertEquals(0, ii.getControlNumber());
ii = new IlluminaReadId("NB500892:10:H3YL2AFXX:1:11101:1108:1044 1:Y:0:1");
assertTrue(ii.isControlNumberField());
assertEquals(0, ii.getControlNumber());
ii = new IlluminaReadId(
"SRR1577083.1 HWI-ST1160:266:D0H3RACXX:6:1315:4634:59858 length=50");
assertFalse(ii.isControlNumberField());
assertEquals(-1, ii.getControlNumber());
}
@Test
public void testParse() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertEquals("HWUSI-EAS100R", ii.getInstrumentId());
ii.parse("HWUSI-EAS100S:6:73:941:1973#0/1");
assertEquals("HWUSI-EAS100S", ii.getInstrumentId());
ii = new IlluminaReadId(
"HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertEquals("HWI-1KL110", ii.getInstrumentId());
ii.parse("HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
assertEquals("HWI-1KL110", ii.getInstrumentId());
try {
ii.parse((String) null);
assertTrue(false);
} catch (NullPointerException e) {
assertTrue(true);
}
try {
ii.parse((Sequence) null);
assertTrue(false);
} catch (NullPointerException e) {
assertTrue(true);
}
Sequence s = new Sequence();
try {
ii.parse(s);
assertTrue(false);
} catch (NullPointerException e) {
assertTrue(true);
}
try {
new IlluminaReadId((String) null);
assertTrue(false);
} catch (NullPointerException e) {
assertTrue(true);
}
try {
new IlluminaReadId((Sequence) null);
assertTrue(false);
} catch (NullPointerException e) {
assertTrue(true);
}
try {
new IlluminaReadId(s);
assertTrue(false);
} catch (NullPointerException e) {
assertTrue(true);
}
s.setName("HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
ii = new IlluminaReadId(s);
assertEquals("HWI-1KL110", ii.getInstrumentId());
s.setName("HWI-1K1111:24:AB0868ABXX:3:1101:1492:2178 1:N:0:ATCACG");
ii.parse(s);
assertEquals("HWI-1K1111", ii.getInstrumentId());
}
@Test
public void testIlluminaReadId() throws EoulsanException {
IlluminaReadId ii = new IlluminaReadId("HWUSI-EAS100R:6:73:941:1973#0/1");
assertEquals("HWUSI-EAS100R", ii.getInstrumentId());
ii.parse(" HWUSI-EAS100R:6:73:941:1973#0/1 ");
assertEquals("HWUSI-EAS100R", ii.getInstrumentId());
try {
ii.parse("HWUSI-EAS100R:6:73:941:1973:0/1");
assertTrue(false);
} catch (EoulsanException e) {
assertTrue(true);
}
try {
ii.parse("HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178 1:N:0#ATCACG");
assertTrue(false);
} catch (EoulsanException e) {
assertTrue(true);
}
try {
ii.parse("HWI-1KL110:24:AB0868ABXX:3:1101:1492:2178:1:N:0:ATCACG");
assertTrue(false);
} catch (EoulsanException e) {
assertTrue(true);
}
}
}