package org.nextprot.api.core.utils; import com.google.common.base.Preconditions; import org.junit.Assert; import org.junit.Test; import org.nextprot.api.core.domain.ChromosomalLocation; import org.nextprot.api.core.domain.ChromosomalLocationTest; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ChromosomalLocationComparatorTest { @Test public void testCalcChromosomeIndex() throws Exception { ChromosomalLocationComparator comparator = new ChromosomalLocationComparator(); for (int i=1 ; i<24 ; i++) { int index = comparator.calcChromosomeIndex(String.valueOf(i)); Assert.assertEquals(i-1, index); } Assert.assertEquals(23, comparator.calcChromosomeIndex("X")); Assert.assertEquals(24, comparator.calcChromosomeIndex("Y")); Assert.assertEquals(25, comparator.calcChromosomeIndex("MT")); Assert.assertEquals(26, comparator.calcChromosomeIndex("unknown")); } @Test public void testCalcRegionIndex() throws Exception { ChromosomalLocationComparator comparator = new ChromosomalLocationComparator(); Assert.assertEquals(1, comparator.calcRegionIndex("p")); Assert.assertEquals(2, comparator.calcRegionIndex("cen")); Assert.assertEquals(3, comparator.calcRegionIndex("q")); Assert.assertEquals(0, comparator.calcRegionIndex("")); Assert.assertEquals(0, comparator.calcRegionIndex("unknown")); } @Test public void testCalcBandIndex() throws Exception { ChromosomalLocationComparator comparator = new ChromosomalLocationComparator(); Assert.assertEquals(10, comparator.calcBandIndex("11")); } @Test public void testCalcLocationIndexList() throws Exception { ChromosomalLocationComparator comparator = new ChromosomalLocationComparator(); int[] indices = comparator.calcLocationIndexList("19", "p13.11"); Assert.assertArrayEquals(new int[] {18, 1, 12, 10}, indices); } @Test public void testCompare() throws Exception { ChromosomalLocationComparator comparator = new ChromosomalLocationComparator(); List<ChromosomalLocation> list = ChromosomalLocationTest.newChromosomalLocations("19p15", "18", "19p15.3", "19p13", "19"); ChromosomalLocation unk = new ChromosomalLocation(); unk.setChromosome("unknown"); unk.setBand("unknown"); list.add(unk); ChromosomalLocation unkBand = new ChromosomalLocation(); unkBand.setChromosome("X"); unkBand.setBand("unknown"); list.add(unkBand); ChromosomalLocation unkBand2 = new ChromosomalLocation(); unkBand2.setChromosome("Y"); unkBand2.setBand(""); list.add(unkBand2); Collections.sort(list, comparator); assertChromosomalLocation(list.get(0), "18", ""); assertChromosomalLocation(list.get(1), "19", ""); assertChromosomalLocation(list.get(2), "19", "p13"); assertChromosomalLocation(list.get(3), "19", "p15"); assertChromosomalLocation(list.get(4), "19", "p15.3"); assertChromosomalLocation(list.get(5), "X", "unknown"); assertChromosomalLocation(list.get(6), "Y", ""); assertChromosomalLocation(list.get(7), "unknown", "unknown"); } @Test public void testCompareAll() throws Exception { ChromosomalLocationComparator comparator = new ChromosomalLocationComparator(); List<ChromosomalLocation> list = allChromosomalLocations(); Collections.sort(list, comparator); String expected = "1, 1p11.2, 1p12, 1p13.1, 1p13.2, 1p13.3, 1p21.1, 1p21.2, 1p21.3, 1p22.1, 1p22.2, 1p22.3, 1p31.1, 1p31.3, 1p32.1, 1p32.2, 1p32.3, 1p33, 1p34.1, 1p34.2, 1p34.3, 1p35.1, 1p35.2, 1p35.3, 1p36.11, 1p36.12, 1p36.13, 1p36.21, 1p36.22, 1p36.23, 1p36.31, 1p36.32, 1p36.33, 1q12, 1q21.1, 1q21.2, 1q21.3, 1q21.11, 1q22, 1q23.1, 1q23.2, 1q23.3 , 1q24.1, 1q24.2, 1q24.3, 1q25.1, 1q25.2, 1q25.3, 1q31.1, 1q31.2, 1q31.3, 1q32, 1q32.2, 1q32.3, 1q41, 1q42.2, 1q42.3, 1q42.11, 1q42.12, 1q42.13, 1q43, 1q44, 2p11.1, 2p11.2, 2p12, 2p13.1, 2p13.2, 2p13.3, 2p14, 2p15, 2p16.1, 2p16.2, 2p16.3, 2p21, 2p22.1, 2p22.2, 2p22.3, 2p23.1, 2p23.2, 2p23.3, 2p24.1, 2p24.2, 2p24.3, 2p25.1, 2p25.2, 2p25.3, 2q11.1, 2q11.2, 2q12.1, 2q12.2, 2q12.3, 2q13, 2q14.1, 2q14.2, 2q14.3, 2q21.1, 2q21.2, 2q21.3, 2q22.1, 2q22.2, 2q22.3, 2q23.1, 2q23.2, 2q23.3, 2q24.1, 2q24.2, 2q24.3, 2q31.1, 2q31.2, 2q31.3, 2q32.1, 2q32.2, 2q32.3, 2q33.1, 2q33.2, 2q33.3, 2q34, 2q35, 2q36.1, 2q36.2, 2q36.3, 2q37.1, 2q37.2, 2q37.3, 3p11.1, 3p11.2, 3p12.1, 3p12.2, 3p12.3, 3p13, 3p14.1, 3p14.2, 3p14.3, 3p21.1, 3p21.2, 3p21.31, 3p21.33, 3p22.1, 3p22.2, 3p22.3, 3p23, 3p24.1, 3p24.2, 3p24.3, 3p25.1, 3p25.2, 3p25.3, 3p26.1, 3p26.2, 3p26.3, 3q11.1, 3q11.2, 3q12.1, 3q12.2, 3q12.3, 3q13.2, 3q13.11, 3q13.12, 3q13.13, 3q13.31, 3q13.32, 3q13.33, 3q21.1, 3q21.2, 3q21.3, 3q22.1, 3q22.2, 3q22.3, 3q23, 3q24, 3q25.1, 3q25.2, 3q25.31, 3q25.32, 3q25.33, 3q26.1, 3q26.2, 3q26.31, 3q26.32, 3q26.33, 3q27.1, 3q27.2, 3q27.3 , 3q28, 3q29, 4, 4p11, 4p12, 4p13, 4p14, 4p15.1, 4p15.2, 4p15.31, 4p15.32 - p15.31, 4p15.33, 4p16.1, 4p16.2, 4p16.3, 4q12, 4q13.1, 4q13.2, 4q13.3, 4q21.1, 4q21.3, 4q21.21, 4q21.22, 4q21.23, 4q22.1, 4q22.2, 4q22.3, 4q23, 4q24, 4q25, 4q26, 4q27, 4q28.1, 4q28.2, 4q28.3, 4q31.1, 4q31.3, 4q31.21, 4q31.22, 4q31.23, 4q32.1, 4q32.2, 4q32.3, 4q33, 4q34.1, 4q34.2, 4q34.3, 4q35.1, 4q35.2, 5, 5p12, 5p13.1, 5p13.2, 5p13.3, 5p14.1, 5p14.2, 5p14.3, 5p15.1, 5p15.2, 5p15.31, 5p15.32, 5p15.33, 5q11.1, 5q11.2, 5q12.1, 5q12.3, 5q13.1, 5q13.2, 5q13.3, 5q14.1, 5q14.2, 5q14.3, 5q15, 5q21.1, 5q21.2, 5q21.3, 5q22.1, 5q22.2, 5q22.3, 5q23.1, 5q23.2, 5q23.3, 5q31, 5q31.2, 5q31.3, 5q32, 5q33.1, 5q33.2, 5q33.3, 5q34, 5q35.1, 5q35.2, 5q35.3, 6, 6p11.2, 6p12.1, 6p12.2, 6p12.3, 6p21.1, 6p21.2, 6p21.31, 6p21.32, 6p21.33, 6p22.1, 6p22.2, 6p22.3, 6p23, 6p24.1, 6p24.2, 6p24.3, 6p25.1, 6p25.2, 6p25.3, 6q11.1, 6q12, 6q13, 6q14.1, 6q14.2, 6q14.3, 6q15, 6q16.1, 6q16.2, 6q16.3, 6q21, 6q22.1, 6q22.2, 6q22.31, 6q22.32, 6q22.33, 6q23.1, 6q23.2, 6q23.3, 6q24.1, 6q24.2, 6q24.3, 6q25.1, 6q25.2, 6q25.3, 6q26, 6q27, 7, 7p11.2, 7p12.1, 7p12.2, 7p12.3, 7p13, 7p14.1, 7p14.2, 7p14.3, 7p15.1, 7p15.2, 7p15.3, 7p21.1, 7p21.2, 7p21.3, 7p22.1 , 7p22.2, 7p22.3, 7q11.2, 7q11.21, 7q11.22, 7q11.23, 7q21.2, 7q21.3, 7q21.11, 7q21.12, 7q21.13, 7q22, 7q22.2, 7q22.3, 7q31.1, 7q31.2, 7q31.31, 7q31.32, 7q31.33, 7q32.1, 7q32.2, 7q32.3, 7q33, 7q34, 7q35, 7q36.1, 7q36.2, 7q36.3, 8p11.1, 8p11.21, 8p11.22, 8p11.23, 8p12, 8p21.1, 8p21.2, 8p21.3, 8p22, 8p23.1, 8p23.2, 8p23.3, 8q11.21, 8q11.22, 8q11.23, 8q12.1, 8q12.2, 8q12.3, 8q13.1, 8q13.2, 8q13.3, 8q21.2, 8q21.3, 8q21.11, 8q21.13, 8q22.1, 8q22.2, 8q22.3, 8q23.1, 8q23.2, 8q23.3, 8q24.3, 8q24.11, 8q24.12, 8q24.13, 8q24.21, 8q24.22, 8q24.23, 9, 9p11.1, 9p11.2, 9p12, 9p13.1, 9p13.2, 9p13.3, 9p21.1, 9p21.2, 9p21.3, 9p22.1, 9p22.2, 9p22.3, 9p23, 9p24.1, 9p24.2, 9p24.3, 9q11, 9q12, 9q13, 9q21.2, 9q21.11, 9q21.12, 9q21.13, 9q21.31, 9q21.32, 9q21.33, 9q22.1, 9q22.2, 9q22.31, 9q22.32, 9q22.33, 9q31.1, 9q31.2, 9q31.3, 9q32, 9q33.1, 9q33.2, 9q33.3, 9q34.2, 9q34.3, 9q34.11, 9q34.12, 9q34.13, 10, 10p11.1, 10p11.21, 10p11.22, 10p11.23, 10p12.1, 10p12.2, 10p12.31, 10p12.33, 10p13, 10p14, 10p15.1, 10p15.2, 10p15.3, 10q11.21, 10q11.22, 10q11.23, 10q21.1, 10q21.2, 10q21.3, 10q22.1, 10q22.2, 10q22.3, 10q23.1, 10q23.2, 10q23.31, 10q23.32, 10q23.33, 10q24.1, 10q24.2, 10q24.31, 10q24.32, 10q24.33, 10q25.1, 10q25.2, 10q25.3, 10q26.2, 10q26.3, 10q26.11, 10q26.12, 10q26.13, 11p11.2, 11p11.12, 11p12, 11p13, 11p14.1, 11p14.2, 11p14.3, 11p15.1, 11p15.2, 11p15.3, 11p15.4, 11p15.5, 11q11, 11q12.1, 11q12.2, 11q12.3, 11q13.1, 11q13.2, 11q13.3, 11q13.4, 11q13.5, 11q14.1, 11q14.2, 11q14.3, 11q21, 11q22.1, 11q22.2, 11q22.3, 11q23.1, 11q23.2, 11q23.3, 11q24.1, 11q24.2, 11q24.3, 11q25, 12, 12p11.1, 12p11.21, 12p11.22, 12p11.23, 12p12.1, 12p12.2, 12p12.3, 12p13.1, 12p13.2, 12p13.31, 12p13.32, 12p13.33, 12q12, 12q13.2, 12q13.3, 12q13.11, 12q13.12, 12q13.13, 12q14.1, 12q14.2, 12q14.3, 12q15, 12q21.1, 12q21.2, 12q21.31, 12q21.32, 12q21.33, 12q22, 12q23.1, 12q23.2, 12q23.3, 12q24.11, 12q24.12, 12q24.13, 12q24.21, 12q24.22, 12q24.23, 12q24.31, 12q24.32, 12q24.33, 13, 13p13, 13cen, 13q12.2, 13q12.3, 13q12.11, 13q12.12, 13q12.13, 13q13.1, 13q13.2, 13q13.3, 13q14.2, 13q14.3, 13q14.11, 13q14.12, 13q14.13, 13q21, 13q21.2, 13q21.32, 13q21.33, 13q22.1, 13q22.2, 13q22.3, 13q31.1, 13q31.2, 13q31.3, 13q32.1, 13q32.2, 13q32.3, 13q33.1, 13q33.2, 13q33.3, 13q34, 14, 14q11.2, 14q12, 14q13.1, 14q13.2, 14q13.3, 14q21.1, 14q21.2, 14q21.3, 14q22.1, 14q22.2, 14q22.3, 14q23.1, 14q23.2, 14q23.3, 14q24.1, 14q24.2, 14q24.3, 14q31.1, 14q31.3, 14q32.2, 14q32.11, 14q32.12, 14q32.13, 14q32.31, 14q32.32, 14q32.33, 15, 15q11.1, 15q11.2, 15q12, 15q13.1, 15q13.2, 15q13.3, 15q14, 15q15.1, 15q15.2, 15q15.3, 15q21.1, 15q21.2, 15q21.3, 15q22.1, 15q22.2, 15q22.31, 15q22.33, 15q23, 15q24.1, 15q24.2, 15q24.3, 15q25.1, 15q25.2, 15q25.3, 15q26.1, 15q26.2, 15q26.3, 16, 16p3.3, 16p11.2, 16p12.1, 16p12.2, 16p12.3, 16p13.2, 16p13.3, 16p13.11, 16p13.12, 16p13.13, 16q11.2, 16q12.1, 16q12.2, 16q13, 16q21, 16q22.1, 16q22.2, 16q22.3, 16q23.1, 16q23.2, 16q23.3, 16q24.1, 16q24.2, 16q24.3, 17, 17p11.2, 17p12, 17p13.1, 17p13.2, 17p13.3, 17q11.1, 17q11.2, 17q12, 17q21.1, 17q21.2, 17q21.31, 17q21.32, 17q21.33, 17q22, 17q23, 17q23.2, 17q23.3 - q24.1, 17q24.1, 17q24.2, 17q24.3, 17q25.1, 17q25.2, 17q25.3, 18, 18p11.21, 18p11.22, 18p11.23, 18p11.31, 18p11.32, 18q11.1, 18q11.2, 18q12.1, 18q12.2, 18q12.3, 18q21.1, 18q21.2, 18q21.31, 18q21.32, 18q21.33, 18q22.1, 18q22.2, 18q22.3, 18q23, 19, 19p12, 19p13.2, 19p13.3, 19p13.11, 19p13.12, 19p13.13, 19q11, 19q12, 19q13.2, 19q13.4, 19q13.11, 19q13.12, 19q13.13, 19q13.31, 19q13.32, 19q13.33, 19q13.41, 19q13.42, 19q13.43, 20p11.1, 20p11.21, 20p11.22, 20p11.23, 20p12.1, 20p12.2, 20p12.3, 20p13, 20q11.1, 20q11.21, 20q11.22, 20q11.23, 20q12, 20q13.2, 20q13.11, 20q13.12, 20q13.13, 20q13.31, 20q13.32, 20q13.33, 21, 21p11.1, 21p11.2, 21p12, 21q11.2, 21q21.1, 21q21.2, 21q21.3, 21q22.2, 21q22.3, 21q22.11, 21q22.12, 21q22.13, 22, 22p, 22q11.1, 22q11.2, 22q11.21, 22q11.22, 22q11.23, 22q12.1, 22q12.2, 22q12.3, 22q13.1, 22q13.2, 22q13.31, 22q13.32, 22q13.33, X, Xp11.2-p11.4, Xp11.3, Xp11.4, Xp11.21, Xp11.22, Xp11.23, Xp21.1, Xp21.2, Xp21.3, Xp22.2, Xp22.11, Xp22.12, Xp22.13, Xp22.31, Xp22.33, Xq11.1, Xq11.2, Xq12, Xq13.1, Xq13.2, Xq13.3, Xq21.1, Xq21.2, Xq21.31, Xq21.32, Xq21.33, Xq22.1, Xq22.2, Xq22.3, Xq23, Xq24, Xq25, Xq26.1, Xq26.2, Xq26.3, Xq27.1, Xq27.2, Xq27.3, Xq28, Y, Yp11.2, Yq11.21, Yq11.23, Yq11.221, Yq11.222, Yq11.223, MT, unknown, p11.2, q23.3, q32.2"; Assert.assertEquals(expected, ChromosomalLocation.toString(list)); } private static void assertChromosomalLocation(ChromosomalLocation chromosomalLocation, String expectedChromosome, String expectedBand) { Assert.assertEquals(expectedChromosome, chromosomalLocation.getChromosome()); Assert.assertEquals(expectedBand, chromosomalLocation.getBand()); } /* Output of SQL query (867) : "select chromosome, band from nextprot.gene_identifiers GROUP BY chromosome, band" */ private static List<ChromosomalLocation> allChromosomalLocations() { String[] chromosomes = new String[] {"21", "6", "17", "4", "10", "15", "15", "2", "16", "2", "1", "16", "12", "5", "21", "22", "12", "X", "4", "7", "4", "X", "4", "5", "18", "15", "3", "4", "6", "7", "2", "16", "10", "17", "4", "11", "20", "11", "5", "6", "20", "3", "1", "8", "17", "19", "9", "18", "19", "2", "4", "16", "6", "unknown", "12", "5", "17", "12", "22", "6", "16", "8", "19", "12", "7", "12", "16", "18", "17", "4", "6", "22", "3", "11", "7", "unknown", "4", "19", "6", "2", "12", "6", "6", "6", "3", "19", "10", "16", "11", "6", "19", "7", "9", "19", "unknown", "22", "13", "3", "14", "7", "10", "8", "7", "3", "1", "3", "1", "5", "6", "3", "4", "5", "6", "14", "1", "4", "7", "9", "3", "12", "10", "17", "20", "14", "2", "20", "9", "9", "17", "5", "3", "12", "6", "6", "14", "5", "18", "10", "10", "14", "6", "12", "9", "10", "2", "1", "14", "3", "X", "7", "13", "5", "3", "3", "12", "5", "7", "10", "6", "X", "4", "5", "16", "14", "21", "9", "10", "11", "3", "1", "10", "16", "9", "6", "8", "1", "1", "14", "1", "11", "5", "13", "Y", "9", "8", "20", "5", "10", "20", "13", "1", "4", "13", "16", "12", "10", "2", "19", "13", "1", "5", "5", "16", "12", "12", "13", "4", "2", "21", "6", "16", "12", "2", "4", "X", "5", "7", "8", "4", "3", "1", "13", "X", "10", "9", "1", "7", "X", "14", "2", "18", "2", "9", "16", "20", "4", "2", "3", "5", "19", "7", "9", "2", "4", "12", "5", "16", "6", "2", "14", "4", "2", "2", "7", "1", "1", "14", "5", "9", "5", "13", "1", "4", "19", "7", "9", "9", "X", "9", "1", "X", "11", "5", "17", "19", "9", "9", "3", "3", "7", "15", "20", "1", "13", "10", "X", "X", "4", "14", "13", "13", "8", "3", "3", "3", "9", "12", "1", "2", "16", "2", "5", "2", "Y", "8", "12", "3", "8", "2", "15", "1", "21", "2", "15", "1", "1", "4", "12", "3", "15", "13", "X", "5", "20", "2", "X", "7", "9", "7", "5", "1", "8", "13", "13", "18", "2", "5", "3", "12", "1", "X", "21", "14", "1", "7", "6", "2", "1", "1", "6", "6", "14", "3", "7", "X", "15", "14", "18", "9", "7", "2", "X", "2", "4", "2", "4", "2", "4", "6", "15", "14", "5", "2", "7", "10", "2", "11", "2", "5", "16", "8", "4", "10", "5", "6", "11", "1", "21", "3", "Y", "18", "15", "11", "17", "2", "8", "16", "15", "2", "9", "1", "12", "16", "9", "15", "11", "9", "9", "10", "7", "4", "6", "2", "2", "13", "6", "18", "4", "3", "Y", "1", "1", "X", "19", "6", "9", "1", "X", "19", "19", "1", "12", "19", "1", "22", "17", "10", "1", "3", "1", "3", "10", "10", "16", "17", "unknown", "20", "9", "11", "1", "10", "3", "8", "16", "13", "18", "2", "X", "X", "3", "12", "12", "11", "6", "10", "8", "3", "22", "4", "5", "2", "X", "19", "2", "3", "5", "7", "X", "11", "2", "13", "17", "5", "2", "12", "8", "8", "14", "12", "6", "13", "1", "X", "X", "14", "7", "1", "19", "11", "9", "unknown", "4", "8", "1", "9", "3", "3", "8", "14", "7", "X", "2", "17", "13", "3", "3", "X", "12", "12", "22", "7", "7", "12", "1", "17", "17", "3", "6", "21", "2", "8", "1", "2", "12", "17", "8", "10", "1", "10", "19", "10", "1", "4", "1", "7", "22", "6", "2", "19", "10", "10", "9", "22", "3", "7", "5", "10", "12", "3", "1", "2", "19", "17", "5", "10", "21", "7", "10", "15", "9", "3", "6", "7", "4", "5", "3", "15", "9", "12", "3", "1", "6", "8", "17", "10", "6", "19", "8", "15", "12", "3", "8", "14", "11", "2", "2", "11", "1", "15", "15", "4", "1", "8", "17", "20", "10", "9", "3", "7", "6", "6", "11", "4", "7", "16", "2", "1", "11", "12", "2", "3", "X", "2", "5", "20", "3", "17", "22", "6", "9", "6", "Y", "8", "20", "4", "18", "20", "4", "11", "10", "2", "11", "7", "8", "14", "6", "15", "17", "14", "5", "4", "17", "12", "2", "16", "Y", "13", "6", "22", "17", "18", "X", "X", "1", "3", "11", "10", "4", "11", "2", "11", "1", "18", "7", "12", "1", "1", "22", "16", "3", "9", "10", "13", "X", "17", "12", "3", "4", "13", "8", "8", "1", "14", "20", "4", "10", "3", "21", "7", "20", "4", "13", "1", "15", "22", "9", "10", "18", "4", "21", "11", "6", "9", "11", "1", "16", "7", "18", "7", "1", "21", "8", "20", "2", "5", "8", "X", "6", "4", "Y", "2", "11", "14", "16", "17", "1", "20", "11", "6", "X", "4", "9", "21", "3", "8", "6", "18", "13", "X", "4", "11", "9", "15", "18", "X", "2", "17", "18", "20", "5", "10", "17", "5", "14", "22", "4", "12", "9", "5", "3", "15", "15", "3", "7", "12", "3", "7", "19", "2", "1", "22", "4", "12", "15", "5", "14", "7", "X", "14", "15", "2", "7", "11", "2", "5", "20", "11", "9", "9", "5", "5", "6", "14", "11", "2", "3", "8", "11", "13", "7", "15", "X", "8", "13", "12", "3", "7", "1", "18", "13", "X", "9", "6", "13", "8", "4", "11", "13", "7", "4", "6", "18", "3", "X", "1", "1", "11", "10", "15", "4", "5", "7", "3", "15", "8", "13", "9", "3", "2", "15", "8", "3", "1", "X", "7", "8", "3", "13", "6", "MT", "13", "8", "X", "12", "13", "10", "15"}; String[] bands = new String[]{"p12", "unknown", "q21.33", "q31.23", "q23.1", "q21.3", "q13.2", "p23.2", "q13", "q12.1", "q44", "p11.2", "q24.13", "q12.1", "q21.3", "q12.2", "p13.32", "p21.3", "p11", "q21.13", "q22.3", "p11.2-p11.4", "p13", "p15.1", "p11.23", "q24.2", "p25.1", "q31.1", "q23.1", "p21.1", "q34", "q22.2", "unknown", "q21.31", "q21.1", "q22.3", "p12.1", "p13", "q34", "q23.3", "q13.33", "q26.1", "p35.1", "q21.2", "q23", "p13.13", "q34.3", "q11.2", "p13.11", "q36.2", "q26", "p12.1", "q14.3", "p11.2", "p11.22", "q35.2", "q21.1", "p13.2", "q13.32", "q22.2", "q23.1", "q21.13", "q13.31", "p11.21", "p22.1 ", "q12", "q23.3", "q22.1", "q11.1", "q23", "p24.2", "q13.2", "p24.3", "q14.1", "q32.2", "unknown", "q25", "q13.43", "p12.1", "p23.1", "q24.33", "p22.2", "p11.2", "q13", "p25.3", "q11", "q22.2", "unknown", "q25", "q16.2", "q13.4", "q21.2", "q11", "q13.13", "q23.3", "q11.22", "q34", "p22.3", "q32.32", "p15.3", "p12.1", "p21.1", "p13", "p12.1", "p22.1", "q29", "q23.2", "q13.3", "q24.1", "p24.2", "q21.22", "p14.3", "p24.3", "q13.1", "p32.1", "p16.2", "q22.3", "q22.1", "q13.33", "p12.1", "q24.33", "q21.2", "q11.21", "q31.3", "q11.2", "p11.22", "q34.12", "p22.1", "q25.2", "q11.2", "q22.2", "p13.1", "q12", "p22.3", "q32.31", "q31.3", "q12.1", "q26.12", "q24.1", "q11.2", "q24.3", "q24.23", "q32", "q23.31", "q31.3", "q32", "q13.3", "q12.3", "q13.2", "p12.3", "q22.1", "p14.2", "p22.2", "p11.2", "q24.11", "q13.1", "q31.1", "p11.21", "p25.3", "q28", "q32.2", "q32", "p13.12", "q23.2", "q22.11", "p21.2", "q11.21", "p11.12", "q27.3 ", "q25.1", "p11.22", "q24.3", "q31.3", "q25.3", "q22.3", "q31.3", "p34.2", "q22.1", "p21.2", "p15.3", "p15.2", "q13.3", "q11.23", "p23", "q24.21", "p11.21", "q22.1", "q26.3", "q12", "q21", "", "q28.2", "q13.1", "q24.1", "q14.3", "q25.3", "q22.1", "", "q14.12", "p34.3", "q35.1", "q23.2", "p13.2", "q23.1", "q21.32", "q31.3", "p15.33", "p22.1", "p11.1", "p25.1", "p13.3", "q23.3", "q23.2", "q31.21", "p22.12", "q14.3", "q21.3", "q12.2", "p15.31", "q22.1", "p13.1", "q12.3", "q11.1", "p15.1", "p24.2", "p36.11", "q35", "q21.1", "unknown", "q14.3", "p11.21", "q32.1", "q22.2", "p13.13", "q11.23", "q33", "q23.1", "p22.1", "q23.3", "q13.33", "q31.33", "p13.1", "q23.3", "q27", "q23.2", "q23.1", "p13.11", "p21.33", "q36.1", "q23.3", "p16.3", "q33.1", "q33.3", "q11.22", "p11.2", "p22.2", "q23.1", "q33.3", "q34.13", "q33.1", "q22.2", "p36.13", "q34.1", "19p13.11", "q31.31", "p22.2", "p11.2", "p22.13", "q13", "p32.3", "q22.3", "p14.1", "unknown", "q23.3 - q24.1", "unknown", "q33.1", "q33.3", "q27.1", "p21.2", "q22", "q22.33", "q13.13", "unknown", "q21.32", "q11.23", "q21.33", "q27.2", "p14", "q22.2", "q14.3", "q32.1", "p12", "p23", "p14.2", "p26.2", "unknown", "q24.12", "q23.3 ", "q13", "q12.1", "p22.2", "q12.3", "p11.2", "q11.21", "q13.2", "p11.23", "q25.1", "q21.3", "q12.3", "q26.2", "q23.3", "q21.2", "p24.2", "q25.2", "p36.22", "q23.1", "q28.1", "q13.3", "p14.3", "q21.2", "unknown", "q21.31", "p15.32", "q13.31", "q22.2", "q25", "p12.2", "q21.32", "q36.3", "p13.1", "q32.1", "q11.22", "q33.1", "q33.3", "p11.22", "p13.1", "q22.2", "q11.2", "", "p36.12", "q23", "q22.3", "q24.1", "q25.3", "q31.32", "q25.1", "p25.3", "q21.11", "p33", "p23", "q21", "q32.12", "q24", "q33", "q27.3", "q22.31", "q12", "unknown", "q21.11", "p14.1", "p22.3", "p21.1", "q32.3", "p12", "q37.2", "q21.3", "q24.3", "q13.2", "p21.2", "q15.3", "q24.3", "p13.3", "p13.2", "p21.3", "q25.1", "q31.2", "p12", "p13.3", "p13.2", "q23.2", "p11.1", "q21.21", "p11.23", "q31.2", "", "q13.2", "p36.23", "q21.1", "q25.32", "unknown", "q21.32", "q11.1", "q24.2", "q22", "p24.3", "p23.3", "q22.1", "q21.1", "q24.1", "p13.2", "q24.1", "q24.22", "q11.2", "q31.2", "q23", "q14.2", "q12", "p13.3", "p15.2", "q21.12", "q34.2", "q23.2", "p15", "p25.1", "q32.3", "p22.1", "q22.2", "p16.1", "q13.31", "p11.2", "q12", "p13.3", "q26.2", "p13.2", "q22.1", "p24.3", "q31.2", "q21.2", "q12", "p13.3", "p13.2", "q13.13", "p13.12", "q24.3", "q11.1", "q24.2", "p12.33", "p22.3", "q12.1", "q32.3", "q13.13", "q26.13", "q23.2", "q21", "p12", "", "p11.23", "p22.3", "q12.2", "p36.21", "q22.1", "p21.33", "p21.3", "p3.3", "q31.2", "q12.3", "q24.2", "q27.1", "p21.2", "q26.32", "q21.33", "q14.1", "q24.1", "p21.1", "q24.32", "q24.23", "q27.2", "q11.23", "q32.3", "q13.2", "p12", "p11.23", "q13.12", "q37.3", "q13.11", "q21.3", "q32.1", "q13.1", "p15.5", "q35", "q12.2", "q25.3", "p12", "q21.3", "q13.11", "q24.11", "q12.3", "q21.3", "q21.31", "q16.1", "q14.2", "q22", "p22.31", "q13.3", "q13.2", "unknown", "q43", "q13.41", "q24.3", "q34.2", "q32.2", "q12", "q22.2", "q42.13", "p24.1", "p21.31", "q23", "p22", "q24.2", "q36.1", "q11.2", "q12.2", "p13.2", "q13.2", "q11.1", "p12.3", "q22.1", "q24.21", "q21.1", "q12.1", "p11.2", "p22.2", "p12.3", "p32.2", "p13.3", "q12", "q21.1", "q25.2", "q22.12", "p24.1", "q23.1", "p36.33", "p16.1", "p13.33", "q24.1", "q23.3", "q26.11", "q21.3", "q21.2", "p12", "q26.2", "q42.3", "q28.3", "p12", "q22.2", "p", "q22.33", "q36.3", "q13.2", "q25.2", "q24.31", "p12", "q13.31", "p13", "p12.1", "q14.2", "p15.3", "p13", "q22.3", "q24.2", "q14.2", "q13.32", "q24.3", "p14.1", "q22.3", "q11.2", "p22.3", "p13", "q11.2", "p11.1", "p26.1", "q26", "q32.3", "q32.1", "p15.31", "q26.2", "q13.3", "q34.11", "q21.2", "q25.2", "q41", "p12.3", "p11.22", "p13.1", "p12.31", "q11.1", "q13.42", "q11.21", "q14", "q24.31", "q21.2", "q24.13", "q32.11", "q23.1", "p16.3", "p21", "q23.3", "p31.1", "q13.1", "q25.1", "unknown", "p35.3", "q21.11", "p11.2", "q13.11", "q21.1", "q21.12", "q25.31", "q31.2", "q22.31", "q16.3", "q14.3", "q31.22", "q11.21", "q22.3", "q37.1", "p21.3", "q22.2", "p13.31", "p14", "q27.3", "q24", "p25.2", "q31", "p13", "p21.1", "unknown", "q11.2", "q14.1", "p21.3", "p21.32", "q11.221", "q24.3", "p12.3", "p15.32 - p15.31", "q12.2", "q11.1", "p15.32", "p11.2", "q23.33", "p11.1", "q12.3", "q21.11", "p11.21", "q32.13", "p21.31", "q22.1", "q21.32", "q32.33", "q15", "q22.2", "q23.1", "q24.32", "p23.3", "p12.3", "q11.223", "cen", "q22.32", "q13.1", "q23.3", "q21.1", "q12", "p11.21", "q25.2", "p11.1", "q13.1", "q21.3", "q13.3", "q21", "p16.2", "p14.2", "q42.2", "q11.1", "p15.1", "p11.1", "q21.2", "q42.11", "q12.3", "q12.2", "p26.3", "q21.2", "q24.2", "q33.2", "p11.4", "q23.2", "q15", "q26.33", "", "q32.2", "q11.23", "p23.1", "p31.3", "q22.1 - q23.3", "p12.2", "q21.23", "q23.32", "p25.2", "unknown", "q36.2", "q13.12", "q31.3", "q21.2", "p36.31", "unknown", "q13.33", "q33.2", "q11.22", "q22.3", "q13.1", "q22.13", "p14.3", "q24.2", "q22.33", "q13.3", "q32.2", "p12.2", "q34", "q21.33", "q11.23", "p21.1", "p11.2", "p23.2", "q13.32", "q32.2", "q33.2", "q12.1", "p22.11", "q14.2", "q32", "q11.222", "q33.2", "q23.2", "q21.2", "q24.2", "q25.1", "p34.1", "q13.2", "q22.1", "p12.2", "q26.3", "p15.2", "p21.1", "q22.2", "p14.1", "q24.22", "p24.1", "q21.31", "q14.11", "q26.1", "q22.1", "p15.2", "q21.13", "q22.2", "p11.31", "p11.22", "q21.2", "q11.2", "q23", "q11.22", "q21.2", "p12.2", "", "p15.33", "q32.2", "unknown", "q35.1", "q13.12", "q21.33", "q35.3", "p12.2", "q24.3", "q22.1 - q22.2", "q28", "", "p12.2", "q13.12", "q11.2", "q13.11", "q22.3", "q42.12", "q11.21", "p15.1", "q14.2", "q15.1", "q22.3", "q31.1", "p14.3", "unknown", "q21.1", "q24.1", "q21.1", "p14.2", "p15.1", "q31.1", "q11.1", "p11.1", "q11", "q21.31", "q22.32", "q21.1", "q31.1", "q27", "q22.3", "q13.4", "q11.1", "q12.2", "q22.1", "q12.1", "q12.13", "p21.2", "q12", "q21.32", "q23.2", "q21.33", "q22", "p24.1", "p15.2", "p35.2", "p11.32", "p13", "p22.33", "q31.1", "q15", "q22.3", "q13.3", "q35.2", "q13.5", "q14.13", "q32", "q34.3", "q15-q16.1", "q21.2", "q25.33", "q22.2", "q31.1", "q21.1", "p15.4", "p14", "q26.1", "q24", "q14.1", "p22.1", "q13.32", "q25.3", "p21.2", "q12.11", "q22.31", "q26.31", "q14.1", "q26.3", "q13.1", "q21.3", "p36.32", "p11.3", "q22.1", "q24.12", "q13.2", "q12.12", "p25.2", "", "q21.1", "p11.23", "p22.2", "q13.2", "q31.1", "p11.1", "q15.2"}; Preconditions.checkArgument(chromosomes.length == bands.length); List<ChromosomalLocation> list = new ArrayList<>(); for (int i=0 ;i<chromosomes.length ; i++) { ChromosomalLocation location = new ChromosomalLocation(); location.setChromosome(chromosomes[i]); location.setBand(bands[i]); list.add(location); } return list; } }