diff --git a/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/BLATRecordUtil.java b/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/BLATRecordUtil.java index e9af8fa13..cf7341895 100644 --- a/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/BLATRecordUtil.java +++ b/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/BLATRecordUtil.java @@ -532,29 +532,30 @@ public static List removeOverlappingRecords(List origina if (null == originalList) { throw new IllegalArgumentException("Null list supplied as argument to removeOverlappingRecords!"); } - +// if (originalList.size() < 2) return originalList; int size = originalList.size(); if (size < 2) { return originalList; } - - List nonOverlappingList = new ArrayList<>(size); - + + List nonOverlappingList = new ArrayList<>(size + 1); + /* - * sort the original list + * sort the original list */ originalList.sort(null); /* * add the entry with the highest score to the new list */ nonOverlappingList.add(originalList.get(size - 1)); - + for (int i = size - 2 ; i >= 0 ; i--) { if ( ! doesRecordOverlapEntriesInList(nonOverlappingList, originalList.get(i))) { nonOverlappingList.add(originalList.get(i)); } } return nonOverlappingList; + } /** @@ -593,17 +594,18 @@ public static boolean doesRecordOverlapEntriesInList(List records, B * @return */ public static boolean doRecordsOverlapReference(BLATRecord r1, BLATRecord r2) { - if (null != r1 && null != r2 && r1.getTName().equals(r2.getTName())) { - int r1Start = r1.getStartPos(); - int r1End = r1.getEndPos(); - int r2Start = r2.getStartPos(); - int r2End = r2.getEndPos(); - - if ((r2Start >= r1Start && r2Start < r1End) || (r2End > r1Start && r2End <= r1End)) { - return true; - } - } - return false; + if (r1 == null || r2 == null) return false; + final String c1 = r1.getTName(); + final String c2 = r2.getTName(); + if (c1 == null || !c1.equals(c2)) return false; + + final int s1 = r1.getStartPos(); + final int e1 = r1.getEndPos(); + final int s2 = r2.getStartPos(); + final int e2 = r2.getEndPos(); + + // overlap if max(start) < min(end) + return (s1 < e2) && (s2 < e1); } /** diff --git a/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TARecordUtil.java b/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TARecordUtil.java index 3491acee9..eebdc7f14 100644 --- a/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TARecordUtil.java +++ b/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TARecordUtil.java @@ -155,7 +155,7 @@ public static void trimRangesToRemoveOverlap(int[][] ranges, ChrPosition[] cps) * trim ranges if there is an overlap */ for (int j = 0 ; j < ranges.length - 1; j++) { - if (j + 1 < ranges.length) { +// if (j + 1 < ranges.length) { int [] thisIntArray = ranges[j]; int [] nextIntArray = ranges[j + 1]; ChrPosition thisCP = cps[j]; @@ -253,7 +253,7 @@ public static void trimRangesToRemoveOverlap(int[][] ranges, ChrPosition[] cps) } } - } +// } } } @@ -269,16 +269,16 @@ public static void trimRangesToRemoveOverlap(int[][] ranges, ChrPosition[] cps) * @return */ public static int[] sortTileCount(int[] tileCounts) { - - return Arrays.stream(tileCounts) - .mapToObj(k -> NumberUtils.splitIntInto2(k)) - .sorted((a,b) -> {int diff = Integer.compare((a[0] - a[1]), (b[0] - b[1])); - if (diff == 0) { - diff = b[1] - a[1]; - } - return diff;}) - .mapToInt(a -> NumberUtils.pack2IntsInto1(a[0], a[1])) - .toArray(); + + return Arrays.stream(tileCounts) + .mapToObj(NumberUtils::splitIntInto2) + .sorted((a,b) -> {int diff = Integer.compare((a[0] - a[1]), (b[0] - b[1])); + if (diff == 0) { + diff = b[1] - a[1]; + } + return diff;}) + .mapToInt(a -> NumberUtils.pack2IntsInto1(a[0], a[1])) + .toArray(); } @@ -378,7 +378,7 @@ public static TIntObjectMap> getSplitStartPositions(TARecord r * check that pairs is not a subset of existing pairs */ if ( ! IntLongPairsUtil.isPairsASubSetOfExistingPairs(getPairsFromMap(results), pairs)) { - Set resultsListList = results.putIfAbsent(IntLongPairsUtil.getBasesCoveredByIntLongPairs(pairs, seqLength, TILE_LENGTH), new HashSet<>(Arrays.asList(pairs))); + Set resultsListList = results.putIfAbsent(IntLongPairsUtil.getBasesCoveredByIntLongPairs(pairs, seqLength, TILE_LENGTH), new HashSet<>(List.of(pairs))); if (null != resultsListList) { resultsListList.add(pairs); } @@ -419,7 +419,7 @@ public static TIntObjectMap> getSplitStartPositions(TARecord r * check that pairs is not a subset of existing pairs */ if ( ! IntLongPairsUtil.isPairsASubSetOfExistingPairs(getPairsFromMap(results), pairs)) { - Set resultsListList = results.putIfAbsent(IntLongPairsUtil.getBasesCoveredByIntLongPairs(pairs, seqLength, TILE_LENGTH), new HashSet<>(Arrays.asList(pairs))); + Set resultsListList = results.putIfAbsent(IntLongPairsUtil.getBasesCoveredByIntLongPairs(pairs, seqLength, TILE_LENGTH), new HashSet<>(List.of(pairs))); if (null != resultsListList) { resultsListList.add(pairs); } @@ -455,7 +455,7 @@ public static TIntObjectMap> getSplitStartPositions(TARecord r public static List getPairsFromMap(TIntObjectMap> map) { List list = new ArrayList<>(); - map.forEachValue(s -> list.addAll(s)); + map.forEachValue(list::addAll); return list; } @@ -463,9 +463,9 @@ public static IntLongPairs getILPSFromLists(List list1, List results = new ArrayList<>(4); results.add(pair); Optional list1ILP = getBestILPFromList(list1, pair); - list1ILP.ifPresent(ilp -> results.add(ilp)); + list1ILP.ifPresent(results::add); Optional list2ILP = getBestILPFromList(list2, pair); - list2ILP.ifPresent(ilp -> results.add(ilp)); + list2ILP.ifPresent(results::add); results.sort(null); return new IntLongPairs(results.toArray(new IntLongPair[]{})); } @@ -496,7 +496,7 @@ public static Optional getBestILPFromList(List list, I /* * if leading candidate is too far away from original entry, return empty optional */ - IntLongPair ilp = list.get(0); + IntLongPair ilp = list.getFirst(); return Optional.of(ilp); } else { diff --git a/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TiledAlignerUtil.java b/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TiledAlignerUtil.java index e12cecb72..fdb1b5b5c 100644 --- a/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TiledAlignerUtil.java +++ b/q3tiledaligner/src/au/edu/qimr/tiledaligner/util/TiledAlignerUtil.java @@ -21,6 +21,7 @@ import htsjdk.samtools.reference.ReferenceSequenceFileFactory; import htsjdk.samtools.util.SequenceUtil; import org.apache.commons.lang3.Range; +import org.qcmg.common.log.QLevel; import org.qcmg.common.log.QLogger; import org.qcmg.common.log.QLoggerFactory; import org.qcmg.common.model.BLATRecord; @@ -716,18 +717,29 @@ public static String getRefFromChrPos(ChrPosition cp, String refFile) { * @return */ public static boolean doesSequenceHaveMostlySingleBaseRepeats(String sequence) { - - return Arrays.stream(REPEATS).filter(sequence::contains).noneMatch(s -> { - int index = sequence.indexOf(s); - int tally = s.length(); - while (index != -1) { - index = sequence.indexOf(s, index + 1); - if (index > -1) { - tally ++; - } - } - return ((double)tally / sequence.length()) > 0.25; - }); + final int n = sequence.length(); + if (n == 0) return true; + + final int minRun = 23; // strictly greater than 23 + final int thresholdAbs = (n / 4) + 1; // strictly greater than 25% + + char prev = 0; + int run = 0; + + for (int i = 0; i < n; i++) { + char c = sequence.charAt(i); + if (c == prev) { + run++; + } else { + prev = c; + run = 1; + } + // Return false if a homopolymer violates both conditions + if (run >= minRun && run > thresholdAbs) { + return false; + } + } + return true; } public static Map> runTiledAlignerCache(String refFile, Map refIndexMap, TIntObjectMap cache, Map sequencesNameMap, int tileLength, String originatingMethod, boolean log, boolean recordsMustComeFromChrInName) { @@ -738,32 +750,27 @@ public static Map> runTiledAlignerCache(String refFile, if (null == sequencesNameMap) { throw new IllegalArgumentException("null sequencesNameMap passed to TiledAlignerUtil.runTiledAlignerCache"); } - - Map> results = new HashMap<>(); + boolean writeToLog = log && logger.isLevelEnabled(QLevel.INFO); + Map> results = new HashMap<>(Math.max(16, sequencesNameMap.size() * 2)); for (Entry entry : sequencesNameMap.entrySet()) { - if (log) { + if (writeToLog) { logger.info("about to call getBlatRecords for " + entry.getKey()); } String name = entry.getValue(); - if (null != name && name.contains(":")) { - logger.info("got more than 1 name for sequence. names: " + name + ", will use first one to dictate sw strategy"); - String [] names = entry.getValue().split(":"); - name = names[0]; - } - logger.info("in runTiledAlignerCache, name: " + name + ", seq: " + entry.getKey()); - - List blatties = getBlatRecordsSWAll(refFile, refIndexMap, cache, entry.getKey(), entry.getValue(), tileLength, originatingMethod, log, recordsMustComeFromChrInName); - blatties.sort(null); + + List blatRecords = getBlatRecordsSWAll(refFile, refIndexMap, cache, entry.getKey(), entry.getValue(), tileLength, originatingMethod, writeToLog, recordsMustComeFromChrInName); /* * populate the name field on the BLATRecord with the value, if present - otherwise just leave as the default */ - if (null != entry.getValue()) { - for (BLATRecord b : blatties) { - b.setQName(entry.getValue()); + if (null != name) { + for (BLATRecord b : blatRecords) { + if (b.getQName() == null || !name.equals(b.getQName())) { + b.setQName(name); + } } } - results.put(entry.getKey(), blatties); + results.put(entry.getKey(), blatRecords); } return results; } @@ -878,15 +885,18 @@ public static List getBlatRecordsSWAll(String refFile, Map 0 || commonTileCountAtStartRC > 0) { + + boolean debugLoggingEnabled = logger.isLevelEnabled(QLevel.DEBUG); + + if (debugLoggingEnabled && (commonTileCountAtStart > 0 || commonTileCountAtStartRC > 0)) { logger.debug("commonTileCountAtStart: " + commonTileCountAtStart + " (total: " + allCommonTiles.length + "), commonTileCountAtStartRC: " + commonTileCountAtStartRC + " (total: " + allCommonTilesRC.length + ")"); } - if (null != allCommonTiles && allCommonTiles.length > 0) { + if (debugLoggingEnabled && null != allCommonTiles && allCommonTiles.length > 0) { logger.debug("common tile positions: " + Arrays.stream(allCommonTiles).mapToObj(i -> "" + i).collect(Collectors.joining(","))); } - if (null != allCommonTilesRC && allCommonTilesRC.length > 0) { + if (debugLoggingEnabled && null != allCommonTilesRC && allCommonTilesRC.length > 0) { logger.debug("RS common tile positions: " + Arrays.stream(allCommonTilesRC).mapToObj(i -> "" + i).collect(Collectors.joining(","))); } @@ -921,8 +931,9 @@ public static List getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map optionalCP = getChrPositionWithReference(cp.getChromosome(), cp.getStartPosition(), forwardStrand ? sequence : revCompSequence, ref); if (optionalCP.isPresent()) { - logger.debug("got a perfect match! cp: " + cp.toIGVString() + ", ref: " + ref + ", sequence: " + sequence); + if (debugLoggingEnabled) { + logger.debug("got a perfect match! cp: " + cp.toIGVString() + ", ref: " + ref + ", sequence: " + sequence); + } needToRunSW = false; Optional oBR = BLATRecordUtil.getDetailsForBLATRecord(List.of(optionalCP.get()), name, forwardStrand ? sequence : revCompSequence, forwardStrand); oBR.ifPresent(results::add); } else { - logger.debug("got perfect match on tiles, but not on sequence! cp: " + cp.toIGVString() + ", ref: " + ref + ", sequence: " + sequence); + if (debugLoggingEnabled) { + logger.debug("got perfect match on tiles, but not on sequence! cp: " + cp.toIGVString() + ", ref: " + ref + ", sequence: " + sequence); + } } } } @@ -1016,9 +1031,11 @@ public static List getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map splitsList = new ArrayList<>(); if (results.isEmpty() || results.getLast().getScore() < passingScore99) { - - logger.debug("about to run some splits, no of positions in TARecord: name: " + name + ", " + taRec.getCountDist()); + + if (debugLoggingEnabled) { + logger.debug("about to run some splits, no of positions in TARecord: name: " + name + ", " + taRec.getCountDist()); + } TIntObjectMap> splitsMap = TARecordUtil.getSplitStartPositions(taRec); List potentialSplits = new ArrayList<>(); splitsMap.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); @@ -1123,15 +1155,19 @@ public static List getBlatRecordsSWAll(String refFile, Map br.getScore() > passingScore) .toList()); - logger.debug("after splits mode, splitsList is following size: " + splitsList.size()); + if (debugLoggingEnabled) { + logger.debug("after splits mode, splitsList is following size: " + splitsList.size()); + } splitsList.sort(null); if ( ! splitsList.isEmpty() && splitsList.getLast().getScore() >= passingScore99) { - logger.debug("top score from splits: " + splitsList.getLast().getScore() + ", no need to run sw!"); + if (debugLoggingEnabled) { + logger.debug("top score from splits: " + splitsList.getLast().getScore() + ", no need to run sw!"); + } runSW = false; results.addAll(splitsList); } else { - if ( ! splitsList.isEmpty()) { + if (debugLoggingEnabled && ! splitsList.isEmpty()) { logger.debug("top score from splits: " + splitsList.getLast().getScore() + ", will run sw!"); } } @@ -1144,15 +1180,19 @@ public static List getBlatRecordsSWAll(String refFile, Map getBlatRecordsSWAll(String refFile, Map thisIterationMaxScore) { thisIterationMaxScore = br.getScore(); } @@ -1256,11 +1298,14 @@ public static List getBlatRecordsSWAll(String refFile, Map 0) { - logger.debug("missing ranges: " + Arrays.deepToString(missingRanges)); + if (debugLoggingEnabled) { + logger.debug("missing ranges: " + Arrays.deepToString(missingRanges)); + } for (int [] missingRange : missingRanges) { - logger.debug("missing ranges: " + Arrays.deepToString(missingRanges)); - - + if (debugLoggingEnabled) { + logger.debug("missing ranges: " + Arrays.deepToString(missingRanges)); + } + Optional optionalBR = BLATRecordUtil.findRecordInRange(results, missingRange[0], missingRange[1]); if (optionalBR.isPresent()) { /* @@ -1277,19 +1322,25 @@ public static List getBlatRecordsSWAll(String refFile, Map mergedRec = BLATRecordUtil.mergeBLATRecs(splitsResults, org.apache.commons.lang3.StringUtils.countMatches(sequence, 'N')); - if (mergedRec.isPresent()) { - logger.debug("merged rec is present!!!: " + mergedRec.get()); - results.add(mergedRec.get()); - returnSplits = false; - } + if (debugLoggingEnabled) { + logger.debug("will look for a possible merged rec with splitResults: " + splitsResults.stream().map(BLATRecord::toString).collect(Collectors.joining(","))); + } + Optional mergedRec = BLATRecordUtil.mergeBLATRecs(splitsResults, org.apache.commons.lang3.StringUtils.countMatches(sequence, 'N')); + if (mergedRec.isPresent()) { + if (debugLoggingEnabled) { + logger.debug("merged rec is present!!!: " + mergedRec.get()); + } + results.add(mergedRec.get()); + returnSplits = false; + } if (returnSplits) { Optional coverageAndOverlapO = BLATRecordUtil.getCombinedNonOverlappingScore(splitsResults); if (coverageAndOverlapO.isPresent()) { int [] coverageAndOverlap = coverageAndOverlapO.get(); if (coverageAndOverlap[0] > passingScore && coverageAndOverlap[0] > (coverageAndOverlap[1] * 2)) { - logger.info("Returning splits results, coverageAndOverlap[0] > passingScore && coverageAndOverlap[0] > (coverageAndOverlap[1] * 2)"); + if (log) { + logger.info("Returning splits results, coverageAndOverlap[0] > passingScore && coverageAndOverlap[0] > (coverageAndOverlap[1] * 2)"); + } return splitsResults; } } @@ -1300,13 +1351,16 @@ public static List getBlatRecordsSWAll(String refFile, Map topOtherRecordsScore) { - logger.debug("adding splitList entries to results"); - results.addAll(splitsList); - } + if (results.isEmpty()) { + logger.debug("adding splitList entries to results as results is empty"); + results.addAll(splitsList); + } else { + results.sort(null); + if (splitsList.getLast().getScore() > results.getLast().getScore()) { + logger.debug("adding splitList entries to results"); + results.addAll(splitsList); + } + } } } } @@ -1316,11 +1370,11 @@ public static List getBlatRecordsSWAll(String refFile, Map uniqueResults = results.stream().distinct().sorted().collect(Collectors.toList()); - if (log) { + if (debugLoggingEnabled) { logger.debug("number of blat records for seq: " + sequence +", " + uniqueResults.size() +", winner: " + (!uniqueResults.isEmpty() ? uniqueResults.getLast().toString() : "-")); } - if (null != name && name.contains("splitcon")) { + if (log && null != name && debugLoggingEnabled && name.contains("splitcon")) { /* * really only care if we have different chromosomes */ @@ -1337,9 +1391,10 @@ public static List getBlatRecordsSWAll(String refFile, Map nonOverlappingRecs = BLATRecordUtil.removeOverlappingRecords(uniqueResults); - nonOverlappingRecs.sort(null); - logger.info("Removed overlapping records. Previous count: " + uniqueResults.size() + ", new count (nonOverlappingRecs size): " + nonOverlappingRecs.size() + " top record: " + (!nonOverlappingRecs.isEmpty() ? nonOverlappingRecs.getLast().toString() : null)); - +// nonOverlappingRecs.sort(null); + if (log) { + logger.info("Removed overlapping records. Previous count: " + uniqueResults.size() + ", new count (nonOverlappingRecs size): " + nonOverlappingRecs.size() + " top record: " + (!nonOverlappingRecs.isEmpty() ? nonOverlappingRecs.getLast().toString() : null)); + } return nonOverlappingRecs; } diff --git a/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/BLATRecordUtilTest.java b/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/BLATRecordUtilTest.java index 228ced3a8..3727dba78 100644 --- a/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/BLATRecordUtilTest.java +++ b/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/BLATRecordUtilTest.java @@ -1,8 +1,6 @@ package au.edu.qimr.tiledaligner.util; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; - +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -14,9 +12,182 @@ import org.qcmg.common.model.ChrRangePosition; import org.qcmg.common.string.StringUtils; +import static org.junit.Assert.*; + public class BLATRecordUtilTest { - + private BLATRecord rec(String qName, String chr, int start, int end, int score) { + // Build a minimal BLATRecord with fields sufficient for compareTo, getScore, start/end + // match - misMatch - tNumInsert - qNumInsert = score + int match = score; + int misMatch = 0; + int tNumInsert = 0; + int qNumInsert = 0; + + return new BLATRecord.Builder() + .withMatch(match) + .withMisMatch(misMatch) + .withRepMatch(0) + .withNCount(0) + .withQNumInsert(qNumInsert) + .withQBaseInsert(0) + .withTNumInsert(tNumInsert) + .withTBaseInsert(0) + .withStrand(BLATRecord.PLUS) + .withQName(qName) + .withSize(end - start + 1) + .withQStart(0) + .withQEnd(end - start + 1) + .withTName(chr) + .withTSize(250_000_000) + .withTStart(start - 1) // BLATRecord.getStartPos() = tStart + 1 + .withTEnd(end) + .withBlockCount(1) + .withBlockSizes(String.valueOf(end - start + 1)) + .withQStarts("0") + .withTStarts(String.valueOf(start - 1)) + .build(); + } + + private BLATRecord rec(String chr, int startInclusive1Based, int endInclusive1Based) { + // BLATRecord expects zero-based tStart and 1-based getEndPos() via tEnd + return new BLATRecord.Builder() + .withMatch(0).withMisMatch(0).withRepMatch(0).withNCount(0) + .withQNumInsert(0).withQBaseInsert(0).withTNumInsert(0).withTBaseInsert(0) + .withStrand(BLATRecord.PLUS) + .withQName("q") + .withSize(100) + .withQStart(0).withQEnd(100) + .withTName(chr) + .withTSize(1_000_000) + .withTStart(startInclusive1Based - 1) // zero-based internal start + .withTEnd(endInclusive1Based) // end as returned by getEndPos() + .withBlockCount(1) + .withBlockSizes("100") + .withQStarts("0") + .withTStarts(String.valueOf(startInclusive1Based - 1)) + .build(); + } + + @Test(expected = IllegalArgumentException.class) + public void removeOverlappingRecords_nullList_throws() { + BLATRecordUtil.removeOverlappingRecords(null); + } + + @Test + public void removeOverlappingRecords_sizeLessThan2_returnsOriginal() { + List original = new ArrayList<>(); + assertSame(original, BLATRecordUtil.removeOverlappingRecords(original)); + + BLATRecord r1 = rec("q1", "chr1", 100, 120, 10); + List singleton = new ArrayList<>(List.of(r1)); + assertSame(singleton, BLATRecordUtil.removeOverlappingRecords(singleton)); + } + + @Test + public void removeOverlappingRecords_filtersOverlaps_keepsHighestScoreFirst() { + BLATRecord aLow = rec("qA", "chr1", 100, 150, 10); + BLATRecord aHigh = rec("qA", "chr1", 120, 180, 30); // overlaps aLow, higher score + BLATRecord b = rec("qA", "chr1", 300, 350, 20); // non-overlapping to aHigh + BLATRecord cLow = rec("qA", "chr2", 100, 200, 5); + BLATRecord cHigh = rec("qA", "chr2", 150, 250, 25); // overlaps cLow, higher score + + List input = new ArrayList<>(Arrays.asList(aLow, aHigh, b, cLow, cHigh)); + + List result = BLATRecordUtil.removeOverlappingRecords(input); + + // Expect to keep top-scoring from each overlapping cluster plus any non-overlapping: + // aHigh (score 30), b (20), cHigh (25) + // The method adds the highest after sorting then scans backward, so order is not guaranteed. + assertEquals(3, result.size()); + assertTrue(result.contains(aHigh)); + assertTrue(result.contains(b)); + assertTrue(result.contains(cHigh)); + + // Ensure no overlaps remain within the result set + for (int i = 0; i < result.size(); i++) { + for (int j = i + 1; j < result.size(); j++) { + assertFalse("Results should not overlap", + BLATRecordUtil.doesRecordOverlapEntriesInList(List.of(result.get(i)), result.get(j))); + } + } + } + + @Test + public void removeOverlappingRecords_allOverlap_sameChromosome_keepsHighestOnly() { + BLATRecord r1 = rec("qA", "chr3", 100, 200, 15); + BLATRecord r2 = rec("qA", "chr3", 120, 220, 35); + BLATRecord r3 = rec("qA", "chr3", 150, 250, 25); + + List input = new ArrayList<>(Arrays.asList(r1, r2, r3)); + + List result = BLATRecordUtil.removeOverlappingRecords(input); + + assertEquals(1, result.size()); + assertEquals(r2, result.get(0)); + } + + @Test + public void removeOverlappingRecords_differentChromosomes_notOverlapping() { + BLATRecord r1 = rec("qA", "chr1", 100, 150, 10); + BLATRecord r2 = rec("qA", "chr2", 120, 170, 12); + + List result = BLATRecordUtil.removeOverlappingRecords(new ArrayList<>(List.of(r1, r2))); + + assertEquals(2, result.size()); + assertTrue(result.contains(r1)); + assertTrue(result.contains(r2)); + } + + @Test + public void overlaps_midInside() { + BLATRecord r1 = rec("chr1", 100, 200); + BLATRecord r2 = rec("chr1", 150, 250); // r2Start in [r1Start, r1End) + assertTrue(BLATRecordUtil.doRecordsOverlapReference(r1, r2)); + } + + @Test + public void overlaps_endInside() { + BLATRecord r1 = rec("chr1", 100, 200); + BLATRecord r2 = rec("chr1", 50, 120); // r2End in (r1Start, r1End] + assertTrue(BLATRecordUtil.doRecordsOverlapReference(r1, r2)); + } + + @Test + public void noOverlap_touchingAtBoundary_left() { + BLATRecord r1 = rec("chr1", 100, 200); + BLATRecord r2 = rec("chr1", 50, 100); // r2End == r1Start (exclusive per code) + assertFalse(BLATRecordUtil.doRecordsOverlapReference(r1, r2)); + } + + @Test + public void noOverlap_touchingAtBoundary_right() { + BLATRecord r1 = rec("chr1", 100, 200); + BLATRecord r2 = rec("chr1", 200, 300); // r2Start == r1End (exclusive per code) + assertFalse(BLATRecordUtil.doRecordsOverlapReference(r1, r2)); + } + + @Test + public void noOverlap_separateIntervals() { + BLATRecord r1 = rec("chr1", 100, 150); + BLATRecord r2 = rec("chr1", 151, 200); + assertFalse(BLATRecordUtil.doRecordsOverlapReference(r1, r2)); + } + + @Test + public void noOverlap_differentChromosome() { + BLATRecord r1 = rec("chr1", 100, 200); + BLATRecord r2 = rec("chr2", 150, 250); + assertFalse(BLATRecordUtil.doRecordsOverlapReference(r1, r2)); + } + + @Test + public void noOverlap_nullInputs() { + BLATRecord r = rec("chr1", 100, 200); + assertFalse(BLATRecordUtil.doRecordsOverlapReference(null, r)); + assertFalse(BLATRecordUtil.doRecordsOverlapReference(r, null)); + assertFalse(BLATRecordUtil.doRecordsOverlapReference(null, null)); + } @Test public void getBlatDetails() { diff --git a/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TARecordUtilTest.java b/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TARecordUtilTest.java index 3dba27421..5051a7375 100644 --- a/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TARecordUtilTest.java +++ b/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TARecordUtilTest.java @@ -6,9 +6,6 @@ package au.edu.qimr.tiledaligner.util; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; - import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -35,6 +32,8 @@ import gnu.trove.list.array.TLongArrayList; import gnu.trove.map.TIntObjectMap; +import static org.junit.Assert.*; + public class TARecordUtilTest { public static Map pcpm; @@ -60,7 +59,7 @@ public void getSplits() { map.put(key, list); TARecord rec = new TARecord(seq, map); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(true, splits.isEmpty()); + assertTrue(splits.isEmpty()); /* * add another */ @@ -114,11 +113,11 @@ public void realLifeSplits() { Map countPosition = new HashMap<>(); String name = "splitcon_chr7_100867120_chr7_100867215"; - countPosition.put(NumberUtils.getTileCount(165, 0), TARecordUtil.getLongList(86862753118281l)); - countPosition.put(NumberUtils.getTileCount(135, 0), TARecordUtil.getLongList(274879241468242l)); - countPosition.put(NumberUtils.getTileCount(44, 0), TARecordUtil.getLongList(1100846151560l)); - countPosition.put(NumberUtils.getTileCount(19, 0), TARecordUtil.getLongList(57175939168186l)); - countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(3299873399669l)); + countPosition.put(NumberUtils.getTileCount(165, 0), TARecordUtil.getLongList(86862753118281L)); + countPosition.put(NumberUtils.getTileCount(135, 0), TARecordUtil.getLongList(274879241468242L)); + countPosition.put(NumberUtils.getTileCount(44, 0), TARecordUtil.getLongList(1100846151560L)); + countPosition.put(NumberUtils.getTileCount(19, 0), TARecordUtil.getLongList(57175939168186L)); + countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(3299873399669L)); System.out.println("seq.length(): " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -133,23 +132,21 @@ public void realLifeSplits() { List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .filter(br -> br.getScore() > passingScore) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow) + .filter(br -> br.getScore() > passingScore).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(1, results.size()); - System.out.println(results.get(0).toString()); + System.out.println(results.getFirst().toString()); assertEquals("393 396 0 0 0 0 0 3 209 + splitcon_chr7_100867120_chr7_100867215 398 1 396 chr7 159138663 100866756 100867361 4 51,31,167,147 1,52,83,250 100866756,100866806,100866953,100867214", results.get(0).toString()); } @@ -159,10 +156,10 @@ public void blatRecordLargerThanSequence() { * IntLongPairs [pairs=[IntLongPair [i=6422528, l=155032316323820], IntLongPair [i=8454144, l=1176806490], null]] */ int seqLength = 251; - IntLongPairs pairs = new IntLongPairs(new IntLongPair(6422528, 155032316323820l), new IntLongPair(8454144, 1176806490)); + IntLongPairs pairs = new IntLongPairs(new IntLongPair(6422528, 155032316323820L), new IntLongPair(8454144, 1176806490)); Optional oBR = BLATRecordUtil.blatRecordFromSplits(pairs, "splitcon_chr6_114264670_chr6_114265444_1_true_1591590363423_284336_clip", seqLength, pcpm, TARecordUtil.TILE_LENGTH); - assertEquals(true, oBR.isPresent()); - System.out.println("blat record: " + oBR.get().toString()); + assertTrue(oBR.isPresent()); + System.out.println("blat record: " + oBR.get()); assertEquals(250, oBR.get().getScore()); } @@ -172,14 +169,14 @@ public void overlapingReference() { * IntLongPairs [pairs=[IntLongPair [i=7274496, l=309020158], IntLongPair [i=8781824, l=135240239236658]]] */ int seqLength = 269; - IntLongPairs pairs = new IntLongPairs(new IntLongPair(7274496, 309020158), new IntLongPair(8781824, 135240239236658l)); + IntLongPairs pairs = new IntLongPairs(new IntLongPair(7274496, 309020158), new IntLongPair(8781824, 135240239236658L)); Map map = TARecordUtil.getChrPositionAndBlocksFromSplits(pairs, seqLength, pcpm); assertEquals(2, map.size()); Optional oBR = BLATRecordUtil.blatRecordFromSplits(pairs, "blah", seqLength, pcpm, TARecordUtil.TILE_LENGTH); - assertEquals(true, oBR.isPresent()); - System.out.println("blat record: " + oBR.get().toString()); + assertTrue(oBR.isPresent()); + System.out.println("blat record: " + oBR.get()); assertEquals(196, oBR.get().getScore()); } @@ -189,46 +186,46 @@ public void negativeLengthSplits() { * IntLongPairs [pairs=[IntLongPair [i=1900544, l=4611967496085375606], IntLongPair [i=2097152, l=4612018073620253348], IntLongPair [i=3538946, l=4611749792783075755], IntLongPair [i=6881281, l=4611833355666786810]]] */ int seqLength = 358; - IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{new IntLongPair(1900544, 4611967496085375606l), - new IntLongPair(2097152, 4612018073620253348l), - new IntLongPair(3538946, 4611749792783075755l), - new IntLongPair(6881281, 4611833355666786810l)}); + IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{new IntLongPair(1900544, 4611967496085375606L), + new IntLongPair(2097152, 4612018073620253348L), + new IntLongPair(3538946, 4611749792783075755L), + new IntLongPair(6881281, 4611833355666786810L)}); Map map = TARecordUtil.getChrPositionAndBlocksFromSplits(pairs, seqLength, pcpm); assertEquals(4, map.size()); Optional oBR = BLATRecordUtil.blatRecordFromSplits(pairs, "blah", seqLength, pcpm, TARecordUtil.TILE_LENGTH); - assertEquals(true, oBR.isPresent()); + assertTrue(oBR.isPresent()); assertEquals(261, oBR.get().getScore()); /* [IntLongPair [i=2097152, l=4612018073620253348], IntLongPair [i=1900544, l=4611967496085375606], IntLongPair [i=4587520, l=4611872938085386782], IntLongPair [i=3538946, l=4611749792783075755]]] * */ - pairs = new IntLongPairs(new IntLongPair[]{new IntLongPair(2097152, 4612018073620253348l), - new IntLongPair(1900544, 4611967496085375606l), - new IntLongPair(4587520, 4611872938085386782l), - new IntLongPair(3538946, 4611749792783075755l)}); + pairs = new IntLongPairs(new IntLongPair[]{new IntLongPair(2097152, 4612018073620253348L), + new IntLongPair(1900544, 4611967496085375606L), + new IntLongPair(4587520, 4611872938085386782L), + new IntLongPair(3538946, 4611749792783075755L)}); map = TARecordUtil.getChrPositionAndBlocksFromSplits(pairs, seqLength, pcpm); assertEquals(4, map.size()); oBR = BLATRecordUtil.blatRecordFromSplits(pairs, "blah", seqLength, pcpm, TARecordUtil.TILE_LENGTH); - assertEquals(true, oBR.isPresent()); + assertTrue(oBR.isPresent()); assertEquals(227, oBR.get().getScore()); /* * pairs=[IntLongPair [i=1310720, l=13196820893984], IntLongPair [i=4194306, l=255089379004927], IntLongPair [i=10878976, l=50580216238402]]] */ - pairs = new IntLongPairs(new IntLongPair[]{new IntLongPair(1310720, 13196820893984l), - new IntLongPair(4194306, 255089379004927l), - new IntLongPair(10878976, 50580216238402l)}); + pairs = new IntLongPairs(new IntLongPair[]{new IntLongPair(1310720, 13196820893984L), + new IntLongPair(4194306, 255089379004927L), + new IntLongPair(10878976, 50580216238402L)}); map = TARecordUtil.getChrPositionAndBlocksFromSplits(pairs, seqLength, pcpm); assertEquals(3, map.size()); oBR = BLATRecordUtil.blatRecordFromSplits(pairs, "blah", seqLength, pcpm, TARecordUtil.TILE_LENGTH); - assertEquals(true, oBR.isPresent()); + assertTrue(oBR.isPresent()); assertEquals(281, oBR.get().getScore()); } @@ -428,34 +425,32 @@ public void realLifeSplits2() { Map countPosition = new HashMap<>(); String name = "splitcon_chr8_125551528_chr8_125555328__true_1589928259240_726892"; - countPosition.put(NumberUtils.getTileCount(121, 0), TARecordUtil.getLongList(137440471823016l)); + countPosition.put(NumberUtils.getTileCount(121, 0), TARecordUtil.getLongList(137440471823016L)); countPosition.put(NumberUtils.getTileCount(115, 0), TARecordUtil.getLongList(1518347092)); - countPosition.put(NumberUtils.getTileCount(23, 0), TARecordUtil.getLongList(4611703612118049933l)); - countPosition.put(NumberUtils.getTileCount(20, 0), TARecordUtil.getLongList(4611728900885488804l)); - countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(4611754189652927675l)); - countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(4611789374025016524l)); - countPosition.put(NumberUtils.getTileCount(7, 0), TARecordUtil.getLongList(4611896026652910893l)); + countPosition.put(NumberUtils.getTileCount(23, 0), TARecordUtil.getLongList(4611703612118049933L)); + countPosition.put(NumberUtils.getTileCount(20, 0), TARecordUtil.getLongList(4611728900885488804L)); + countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(4611754189652927675L)); + countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(4611789374025016524L)); + countPosition.put(NumberUtils.getTileCount(7, 0), TARecordUtil.getLongList(4611896026652910893L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .filter(br -> br.getScore() > passingScore) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow) + .filter(br -> br.getScore() > passingScore).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); - System.out.println("singleBR record from results: " + results.get(0).toString()); + System.out.println("singleBR record from results: " + results.getFirst().toString()); assertEquals("257 258 0 0 0 0 0 1 3799 + splitcon_chr8_125551528_chr8_125555328__true_1589928259240_726892 258 0 257 chr8 146364022 125551401 125555458 2 127,131 0,127 125551401,125555327", results.get(0).toString()); } @@ -467,8 +462,8 @@ public void realLifeSplits3() { String seq = "TTCGGCGTTGCTCACACTGGGAGCTGTAGACCGGAGCTGTTCCTATTCGGCCATCTTGGCTCCTCCCCCTATAGTGTTATTTCATTTTCCAAGGATACCTGCATTTCCACCAGAAAATATTTAAGGGGTTACACATTTCCCGTTTTGGTTAACCTGGATAAATGCGCGTATTTTATTTCTGTTTTCAG"; Map countPosition = new HashMap<>(); - countPosition.put(7012352, TARecordUtil.getLongList(75868643634102l)); - countPosition.put(3145728, TARecordUtil.getLongList(4611816862119100198l)); // 4611816862119100198l is the one we want!!! + countPosition.put(7012352, TARecordUtil.getLongList(75868643634102L)); + countPosition.put(3145728, TARecordUtil.getLongList(4611816862119100198L)); // 4611816862119100198l is the one we want!!! TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); @@ -480,7 +475,7 @@ public void realLifeSplits3() { Set setOfPairs = splits.get(splits.keys()[0]); assertEquals(1, setOfPairs.size()); IntLongPairs pairs = setOfPairs.iterator().next(); - assertEquals(false, IntLongPairsUtil.isIntLongPairsAValidSingleRecord(pairs)); + assertFalse(IntLongPairsUtil.isIntLongPairsAValidSingleRecord(pairs)); } @Test @@ -491,7 +486,7 @@ public void realLifeSplits4() { String seq = "TTCGGCGTTGCTCACACTGGGAGCTGTAGACCGGAGCTGTTCCTATTCGGCCATCTTGGCTCCTCCCCCTATAGTGTTATTTCATTTTCCAAGGATACCTGCATTTCCACCAGAAAATATTTAAGGGGTTACACATTTCCCGTTTTGGTTAACCTGGATAAATGCGCGT"; Map countPosition = new HashMap<>(); - countPosition.put(8323072, TARecordUtil.getLongList(32985657853490l)); + countPosition.put(8323072, TARecordUtil.getLongList(32985657853490L)); countPosition.put(1179648, TARecordUtil.getLongList(309020251)); TARecord r = new TARecord(seq, countPosition); @@ -512,12 +507,12 @@ public void realLifeSplits5() { Map countPosition = new HashMap<>(); String name = "splitcon_chr6_114262928_chr6_114264515__true_1591925368416_401364"; - countPosition.put(NumberUtils.getTileCount(144, 0), TARecordUtil.getLongList(105554293072971l)); - countPosition.put(NumberUtils.getTileCount(55, 0), TARecordUtil.getLongList(277078107006956l)); - countPosition.put(NumberUtils.getTileCount(48, 0), TARecordUtil.getLongList(41782618660320l)); + countPosition.put(NumberUtils.getTileCount(144, 0), TARecordUtil.getLongList(105554293072971L)); + countPosition.put(NumberUtils.getTileCount(55, 0), TARecordUtil.getLongList(277078107006956L)); + countPosition.put(NumberUtils.getTileCount(48, 0), TARecordUtil.getLongList(41782618660320L)); countPosition.put(NumberUtils.getTileCount(27, 0), TARecordUtil.getLongList(1176804175)); - countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(4611894926848722163l)); - countPosition.put(NumberUtils.getTileCount(7, 0), TARecordUtil.getLongList(23090820065296l, 200112345847245l)); + countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(4611894926848722163L)); + countPosition.put(NumberUtils.getTileCount(7, 0), TARecordUtil.getLongList(23090820065296L, 200112345847245L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -531,7 +526,7 @@ public void realLifeSplits5() { assertEquals(2, splits.size()); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toString()); @@ -540,19 +535,16 @@ public void realLifeSplits5() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) -// .filter(br -> br.getScore() > passingScore) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(1, results.size()); assertEquals(1, results.stream().filter(br -> br.getScore() >= passingScore).count()); - assertEquals("316 319 0 0 0 0 0 3 2977 + splitcon_chr6_114262928_chr6_114264515__true_1591925368416_401364 319 0 318 chr6 171115067 114262214 114265510 4 39,59,154,67 0,39,98,252 114262214,114262872,114264516,114265443", results.get(0).toString()); + assertEquals("316 319 0 0 0 0 0 3 2977 + splitcon_chr6_114262928_chr6_114264515__true_1591925368416_401364 319 0 318 chr6 171115067 114262214 114265510 4 39,59,154,67 0,39,98,252 114262214,114262872,114264516,114265443", results.getFirst().toString()); } @Test @@ -566,10 +558,10 @@ public void realLifeSplits6() { Map countPosition = new HashMap<>(); - countPosition.put(NumberUtils.getTileCount(127, 0), TARecordUtil.getLongList(19794080686136l)); - countPosition.put(NumberUtils.getTileCount(125, 0), TARecordUtil.getLongList(170427173694668l)); - countPosition.put(NumberUtils.getTileCount(9, 0), TARecordUtil.getLongList(2871382811l)); - countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(4611730001741593112l)); + countPosition.put(NumberUtils.getTileCount(127, 0), TARecordUtil.getLongList(19794080686136L)); + countPosition.put(NumberUtils.getTileCount(125, 0), TARecordUtil.getLongList(170427173694668L)); + countPosition.put(NumberUtils.getTileCount(9, 0), TARecordUtil.getLongList(2871382811L)); + countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(4611730001741593112L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); @@ -578,7 +570,7 @@ public void realLifeSplits6() { Set setOfPairs = splits.get(splits.keys()[0]); assertEquals(1, setOfPairs.size()); IntLongPairs pairs = setOfPairs.iterator().next(); - assertEquals(true, IntLongPairsUtil.isIntLongPairsAValidSingleRecord(pairs)); + assertTrue(IntLongPairsUtil.isIntLongPairsAValidSingleRecord(pairs)); } @Test @@ -593,32 +585,30 @@ public void realLifeSplits7() { String name = "chr19_47884141_47884486"; - countPosition.put(NumberUtils.getTileCount(93, 4), TARecordUtil.getLongList(2707328463l)); - countPosition.put(NumberUtils.getTileCount(34, 4), TARecordUtil.getLongList(118749963128572l)); - countPosition.put(NumberUtils.getTileCount(8, 4), TARecordUtil.getLongList(41782676974449l, 4611791573772632679l, 4611793773061013150l)); - countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(4611730001741593112l)); + countPosition.put(NumberUtils.getTileCount(93, 4), TARecordUtil.getLongList(2707328463L)); + countPosition.put(NumberUtils.getTileCount(34, 4), TARecordUtil.getLongList(118749963128572L)); + countPosition.put(NumberUtils.getTileCount(8, 4), TARecordUtil.getLongList(41782676974449L, 4611791573772632679L, 4611793773061013150L)); + countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(4611730001741593112L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); assertEquals(2, splits.size()); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .filter(br -> br.getScore() > passingScore) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow) + .filter(br -> br.getScore() > passingScore).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); - System.out.println("singleBR record from results: " + results.get(0).toString()); + System.out.println("singleBR record from results: " + results.getFirst().toString()); assertEquals("141 151 8 0 0 1 3 1 196 + chr19_47884141_47884486 154 0 153 chr19 59128983 47884140 47884487 2 105,46 0,108 47884140,47884441", results.get(0).toString()); } @@ -633,12 +623,12 @@ public void realLifeSplits8() { Map countPosition = new HashMap<>(); String name = "splitcon_chr5_96617965_chr5_96618035__true_1592967296845_370082_clip"; - countPosition.put(NumberUtils.getTileCount(126, 0), TARecordUtil.getLongList(36284861961343l)); - countPosition.put(NumberUtils.getTileCount(82, 0), TARecordUtil.getLongList(1100489872410l)); - countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(36284861961297l, 36284861961320l)); - countPosition.put(NumberUtils.getTileCount(17, 1), TARecordUtil.getLongList(149534583776394l)); - countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(24190234055693l)); - countPosition.put(NumberUtils.getTileCount(16, 0), TARecordUtil.getLongList(135240888562480l)); + countPosition.put(NumberUtils.getTileCount(126, 0), TARecordUtil.getLongList(36284861961343L)); + countPosition.put(NumberUtils.getTileCount(82, 0), TARecordUtil.getLongList(1100489872410L)); + countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(36284861961297L, 36284861961320L)); + countPosition.put(NumberUtils.getTileCount(17, 1), TARecordUtil.getLongList(149534583776394L)); + countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(24190234055693L)); + countPosition.put(NumberUtils.getTileCount(16, 0), TARecordUtil.getLongList(135240888562480L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -651,7 +641,7 @@ public void realLifeSplits8() { assertEquals(3, splits.size()); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs pairs : potentialSplits) { @@ -661,12 +651,11 @@ public void realLifeSplits8() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow) + .toList()); /* * only 1 single record splits here @@ -691,15 +680,15 @@ public void realLifeSplits9() { String name = "splitcon_chr4_5182939_chr4_5675244__true_1594701165894_840304"; - countPosition.put(NumberUtils.getTileCount(85, 1), TARecordUtil.getLongList(217703998447365l)); + countPosition.put(NumberUtils.getTileCount(85, 1), TARecordUtil.getLongList(217703998447365L)); countPosition.put(NumberUtils.getTileCount(67, 0), TARecordUtil.getLongList(695655218)); - countPosition.put(NumberUtils.getTileCount(39, 1), TARecordUtil.getLongList(160529393802964l)); - countPosition.put(NumberUtils.getTileCount(34, 1), TARecordUtil.getLongList(103354788666256l)); - countPosition.put(NumberUtils.getTileCount(12, 1), TARecordUtil.getLongList(120946983753377l)); - countPosition.put(NumberUtils.getTileCount(11, 1), TARecordUtil.getLongList(120946996001436l, 120947046443537l)); - countPosition.put(NumberUtils.getTileCount(10, 1), TARecordUtil.getLongList(117648551146731l, 122046505277795l, 122046603764683l)); - countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611864140062071056l)); - countPosition.put(NumberUtils.getTileCount(9, 1), TARecordUtil.getLongList(83563602760479l, 117648490513400l, 120947011893536l, 123145998326992l)); + countPosition.put(NumberUtils.getTileCount(39, 1), TARecordUtil.getLongList(160529393802964L)); + countPosition.put(NumberUtils.getTileCount(34, 1), TARecordUtil.getLongList(103354788666256L)); + countPosition.put(NumberUtils.getTileCount(12, 1), TARecordUtil.getLongList(120946983753377L)); + countPosition.put(NumberUtils.getTileCount(11, 1), TARecordUtil.getLongList(120946996001436L, 120947046443537L)); + countPosition.put(NumberUtils.getTileCount(10, 1), TARecordUtil.getLongList(117648551146731L, 122046505277795L, 122046603764683L)); + countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611864140062071056L)); + countPosition.put(NumberUtils.getTileCount(9, 1), TARecordUtil.getLongList(83563602760479L, 117648490513400L, 120947011893536L, 123145998326992L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -712,24 +701,22 @@ public void realLifeSplits9() { assertEquals(1, splits.size()); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); assertEquals(1, results.size()); assertEquals(0, results.stream().filter(br -> br.getScore() >= passingScore).count()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); - System.out.println("results BR: " + results.get(0).toString()); + System.out.println("results BR: " + results.getFirst().toString()); assertEquals("264 271 3 0 0 1 24 3 492325 + splitcon_chr4_5182939_chr4_5675244__true_1594701165894_840304 295 0 294 chr4 191154276 5182793 5675389 4 79,46,51,95 0,94,146,200 5182793,5182887,5675243,5675294", results.get(0).toString()); } @@ -746,12 +733,12 @@ public void realLifeSplits10() { Map countPosition = new HashMap<>(); String name = "splitcon_chr11_68535215_chr11_68688420__true_1594705425399_247953"; - countPosition.put(NumberUtils.getTileCount(133, 0), TARecordUtil.getLongList(3300419479497l)); - countPosition.put(NumberUtils.getTileCount(125, 0), TARecordUtil.getLongList(157232047215073l)); - countPosition.put(NumberUtils.getTileCount(64, 2), TARecordUtil.getLongList(4611686020313597686l)); - countPosition.put(NumberUtils.getTileCount(40, 1), TARecordUtil.getLongList(4611772881732192067l)); - countPosition.put(NumberUtils.getTileCount(34, 1), TARecordUtil.getLongList(4611720105174058773l)); - countPosition.put(NumberUtils.getTileCount(27, 0), TARecordUtil.getLongList(74768700815525l)); + countPosition.put(NumberUtils.getTileCount(133, 0), TARecordUtil.getLongList(3300419479497L)); + countPosition.put(NumberUtils.getTileCount(125, 0), TARecordUtil.getLongList(157232047215073L)); + countPosition.put(NumberUtils.getTileCount(64, 2), TARecordUtil.getLongList(4611686020313597686L)); + countPosition.put(NumberUtils.getTileCount(40, 1), TARecordUtil.getLongList(4611772881732192067L)); + countPosition.put(NumberUtils.getTileCount(34, 1), TARecordUtil.getLongList(4611720105174058773L)); + countPosition.put(NumberUtils.getTileCount(27, 0), TARecordUtil.getLongList(74768700815525L)); System.out.println("seqLength: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -765,18 +752,16 @@ public void realLifeSplits10() { assertEquals(3, splits.size()); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); assertEquals(1, results.size()); assertEquals(0, results.stream().filter(br -> br.getScore() >= passingScore).count()); @@ -796,10 +781,10 @@ public void realLifeSplits12() { Map countPosition = new HashMap<>(); String name = "GL000232.1_3413_false"; - countPosition.put(NumberUtils.getTileCount(16, 0), TARecordUtil.getLongList(4611712409752715004l, 4611712409807521324l)); - countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(4611714608830778186l)); - countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList( 27489398850136l,27489398851711l,27490009933828l, 27490636997025l, 27490888461371l,27490888479382l, 27490891131388l, 4611688219669829321l, 4611688220296896290l, 4611688220496904249l, 4611688220550258880l, 4611688220550996199l)); - countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(28587684403510l, 4611688219554484768l, 4611688220246743779l, 4611716807799226451l)); + countPosition.put(NumberUtils.getTileCount(16, 0), TARecordUtil.getLongList(4611712409752715004L, 4611712409807521324L)); + countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(4611714608830778186L)); + countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(27489398850136L, 27489398851711L, 27490009933828L, 27490636997025L, 27490888461371L, 27490888479382L, 27490891131388L, 4611688219669829321L, 4611688220296896290L, 4611688220496904249L, 4611688220550258880L, 4611688220550996199L)); + countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(28587684403510L, 4611688219554484768L, 4611688220246743779L, 4611716807799226451L)); System.out.println("seqLength: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -812,23 +797,21 @@ public void realLifeSplits12() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); - System.out.println("single record split: " + results.get(0).toString()); + System.out.println("single record split: " + results.getFirst().toString()); assertEquals(1, results.stream().filter(br -> br.getScore() >= passingScore).count()); - assertEquals("47 49 0 0 0 1 1 1 1 - GL000232.1_3413_false 52 25 23 chrY 59373566 9956946 9956996 2 25,24 2,28 9956946,9956972", results.get(0).toString()); + assertEquals("47 49 0 0 0 1 1 1 1 - GL000232.1_3413_false 52 25 23 chrY 59373566 9956946 9956996 2 25,24 2,28 9956946,9956972", results.getFirst().toString()); } @Test @@ -841,14 +824,14 @@ public void realLifeSplits13() { Map countPosition = new HashMap<>(); String name = "splitcon_chr15_79475029_chr15_79475126__true_1595570520496_795513"; - countPosition.put(NumberUtils.getTileCount(61, 7), TARecordUtil.getLongList(70371130938500l)); - countPosition.put(NumberUtils.getTileCount(26, 0), TARecordUtil.getLongList(2386760682l)); - countPosition.put(NumberUtils.getTileCount(13, 11), TARecordUtil.getLongList( 4611892729000614663l)); - countPosition.put(NumberUtils.getTileCount(13, 3), TARecordUtil.getLongList( 58276479368216l)); - countPosition.put(NumberUtils.getTileCount(12, 15), TARecordUtil.getLongList(112152562656770l)); - countPosition.put(NumberUtils.getTileCount(12, 8), TARecordUtil.getLongList(4611879534844943768l)); - countPosition.put(NumberUtils.getTileCount(12, 7), TARecordUtil.getLongList(78067697618203l)); - countPosition.put(NumberUtils.getTileCount(12, 3), TARecordUtil.getLongList(51679401124067l)); + countPosition.put(NumberUtils.getTileCount(61, 7), TARecordUtil.getLongList(70371130938500L)); + countPosition.put(NumberUtils.getTileCount(26, 0), TARecordUtil.getLongList(2386760682L)); + countPosition.put(NumberUtils.getTileCount(13, 11), TARecordUtil.getLongList(4611892729000614663L)); + countPosition.put(NumberUtils.getTileCount(13, 3), TARecordUtil.getLongList(58276479368216L)); + countPosition.put(NumberUtils.getTileCount(12, 15), TARecordUtil.getLongList(112152562656770L)); + countPosition.put(NumberUtils.getTileCount(12, 8), TARecordUtil.getLongList(4611879534844943768L)); + countPosition.put(NumberUtils.getTileCount(12, 7), TARecordUtil.getLongList(78067697618203L)); + countPosition.put(NumberUtils.getTileCount(12, 3), TARecordUtil.getLongList(51679401124067L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -860,17 +843,15 @@ public void realLifeSplits13() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(0, results.size()); @@ -887,11 +868,11 @@ public void realLifeSplits13Again() { String name = "splitcon_chr15_79475029_chr15_79475126__true_1595570520496_795513"; System.out.println("seq length: " + seq.length()); - countPosition.put(NumberUtils.getTileCount(61, 0), TARecordUtil.getLongList(70371130938500l)); - countPosition.put(NumberUtils.getTileCount(42, 1), TARecordUtil.getLongList(2386760682l)); - countPosition.put(NumberUtils.getTileCount(21, 1), TARecordUtil.getLongList( 106655026780407l)); - countPosition.put(NumberUtils.getTileCount(19, 1), TARecordUtil.getLongList( 25291154199591l, 25291154199629l)); - countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList( 58276479368216l, 4611892729000614663l)); + countPosition.put(NumberUtils.getTileCount(61, 0), TARecordUtil.getLongList(70371130938500L)); + countPosition.put(NumberUtils.getTileCount(42, 1), TARecordUtil.getLongList(2386760682L)); + countPosition.put(NumberUtils.getTileCount(21, 1), TARecordUtil.getLongList(106655026780407L)); + countPosition.put(NumberUtils.getTileCount(19, 1), TARecordUtil.getLongList(25291154199591L, 25291154199629L)); + countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(58276479368216L, 4611892729000614663L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -903,22 +884,20 @@ public void realLifeSplits13Again() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(1, results.size()); - System.out.println(results.get(0).toString()); + System.out.println(results.getFirst().toString()); assertEquals(0, results.stream().filter(br -> br.getScore() >= passingScore).count()); } @@ -932,11 +911,11 @@ public void realLifeSplits14() { Map countPosition = new HashMap<>(); String name = "splitcon_chrX_58390230_chrX_58390403__true_1595572151098_385828"; - countPosition.put(NumberUtils.getTileCount(23, 1), TARecordUtil.getLongList(155034078926976l,155034078928694l, 155034078940292l, 155034078981930l)); - countPosition.put(NumberUtils.getTileCount(23, 0), TARecordUtil.getLongList(4611821261297089557l, 4611821261297096271l, 4611821261297102676l)); - countPosition.put(NumberUtils.getTileCount(21, 0), TARecordUtil.getLongList( 4611821261297035770l, 4611823460320255604l, 4611823460320354734l)); - countPosition.put(NumberUtils.getTileCount(19, 1), TARecordUtil.getLongList( 140740431298817l, 155034078941825l, 155034082441102l)); - countPosition.put(NumberUtils.getTileCount(19, 0), TARecordUtil.getLongList(4611825659343617192l)); + countPosition.put(NumberUtils.getTileCount(23, 1), TARecordUtil.getLongList(155034078926976L, 155034078928694L, 155034078940292L, 155034078981930L)); + countPosition.put(NumberUtils.getTileCount(23, 0), TARecordUtil.getLongList(4611821261297089557L, 4611821261297096271L, 4611821261297102676L)); + countPosition.put(NumberUtils.getTileCount(21, 0), TARecordUtil.getLongList(4611821261297035770L, 4611823460320255604L, 4611823460320354734L)); + countPosition.put(NumberUtils.getTileCount(19, 1), TARecordUtil.getLongList(140740431298817L, 155034078941825L, 155034082441102L)); + countPosition.put(NumberUtils.getTileCount(19, 0), TARecordUtil.getLongList(4611825659343617192L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -948,18 +927,16 @@ public void realLifeSplits14() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(0, results.size()); @@ -976,16 +953,16 @@ public void realLifeSplits15() { Map countPosition = new HashMap<>(); String name = "splitcon_chr5_96617965_chr5_96618035__true_1595856043374_646700"; - countPosition.put(NumberUtils.getTileCount(82, 0), TARecordUtil.getLongList(1100489872410l)); - countPosition.put(NumberUtils.getTileCount(72, 2), TARecordUtil.getLongList(36284861961343l)); - countPosition.put(NumberUtils.getTileCount(46, 2), TARecordUtil.getLongList( 40682908472428l)); - countPosition.put(NumberUtils.getTileCount(17, 2), TARecordUtil.getLongList( 152833094505705l)); - countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(24190234055693l)); - countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(24190297952852l)); - countPosition.put(NumberUtils.getTileCount(13, 2), TARecordUtil.getLongList(4611923513906431087l)); - countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(24190288217943l)); - countPosition.put(NumberUtils.getTileCount(11, 2), TARecordUtil.getLongList(4611923513880686311l)); - countPosition.put(NumberUtils.getTileCount(10, 2), TARecordUtil.getLongList(139638926789045l, 4611926812479300845l)); + countPosition.put(NumberUtils.getTileCount(82, 0), TARecordUtil.getLongList(1100489872410L)); + countPosition.put(NumberUtils.getTileCount(72, 2), TARecordUtil.getLongList(36284861961343L)); + countPosition.put(NumberUtils.getTileCount(46, 2), TARecordUtil.getLongList(40682908472428L)); + countPosition.put(NumberUtils.getTileCount(17, 2), TARecordUtil.getLongList(152833094505705L)); + countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(24190234055693L)); + countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(24190297952852L)); + countPosition.put(NumberUtils.getTileCount(13, 2), TARecordUtil.getLongList(4611923513906431087L)); + countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(24190288217943L)); + countPosition.put(NumberUtils.getTileCount(11, 2), TARecordUtil.getLongList(4611923513880686311L)); + countPosition.put(NumberUtils.getTileCount(10, 2), TARecordUtil.getLongList(139638926789045L, 4611926812479300845L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -997,18 +974,16 @@ public void realLifeSplits15() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); for (BLATRecord br : results) { @@ -1028,10 +1003,10 @@ public void realLifeSplits16() { Map countPosition = new HashMap<>(); String name = "splitcon_chr19_4210529_chr19_4210587__true_1595864127799_629191_clip"; - countPosition.put(NumberUtils.getTileCount(96, 0), TARecordUtil.getLongList(69271896204830l)); - countPosition.put(NumberUtils.getTileCount(77, 0), TARecordUtil.getLongList(2663654822l)); - countPosition.put(NumberUtils.getTileCount(20, 0), TARecordUtil.getLongList(32988012488189l)); - countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(35187036832507l, 35187037098376l)); + countPosition.put(NumberUtils.getTileCount(96, 0), TARecordUtil.getLongList(69271896204830L)); + countPosition.put(NumberUtils.getTileCount(77, 0), TARecordUtil.getLongList(2663654822L)); + countPosition.put(NumberUtils.getTileCount(20, 0), TARecordUtil.getLongList(32988012488189L)); + countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(35187036832507L, 35187037098376L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -1043,22 +1018,20 @@ public void realLifeSplits16() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(1, results.size()); - System.out.println(results.get(0).toString()); + System.out.println(results.getFirst().toString()); assertEquals(1, results.stream().filter(br -> br.getScore() >= passingScore).count()); } @@ -1072,15 +1045,15 @@ public void realLifeSplits17() { Map countPosition = new HashMap<>(); String name = "splitcon_chr21_11122856_chr21_11124370__false_1596182570085_99163"; - countPosition.put(NumberUtils.getTileCount(154, 0), TARecordUtil.getLongList(83565676432469l)); - countPosition.put(NumberUtils.getTileCount(52, 1), TARecordUtil.getLongList(8798885743682l)); - countPosition.put(NumberUtils.getTileCount(50, 2), TARecordUtil.getLongList(257288513620400l)); - countPosition.put(NumberUtils.getTileCount(49, 0), TARecordUtil.getLongList(34087653182654l)); - countPosition.put(NumberUtils.getTileCount(46, 2), TARecordUtil.getLongList(8798885743095l)); - countPosition.put(NumberUtils.getTileCount(46, 1), TARecordUtil.getLongList(8798885743144l)); - countPosition.put(NumberUtils.getTileCount(39, 1), TARecordUtil.getLongList(17594978765213l)); - countPosition.put(NumberUtils.getTileCount(36, 1), TARecordUtil.getLongList(2792721172l)); - countPosition.put(NumberUtils.getTileCount(35, 1), TARecordUtil.getLongList(1102304348803l, 61575443876731l)); + countPosition.put(NumberUtils.getTileCount(154, 0), TARecordUtil.getLongList(83565676432469L)); + countPosition.put(NumberUtils.getTileCount(52, 1), TARecordUtil.getLongList(8798885743682L)); + countPosition.put(NumberUtils.getTileCount(50, 2), TARecordUtil.getLongList(257288513620400L)); + countPosition.put(NumberUtils.getTileCount(49, 0), TARecordUtil.getLongList(34087653182654L)); + countPosition.put(NumberUtils.getTileCount(46, 2), TARecordUtil.getLongList(8798885743095L)); + countPosition.put(NumberUtils.getTileCount(46, 1), TARecordUtil.getLongList(8798885743144L)); + countPosition.put(NumberUtils.getTileCount(39, 1), TARecordUtil.getLongList(17594978765213L)); + countPosition.put(NumberUtils.getTileCount(36, 1), TARecordUtil.getLongList(2792721172L)); + countPosition.put(NumberUtils.getTileCount(35, 1), TARecordUtil.getLongList(1102304348803L, 61575443876731L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -1092,18 +1065,16 @@ public void realLifeSplits17() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1111,7 +1082,7 @@ public void realLifeSplits17() { System.out.println("br: " + br.toString()); } assertEquals(1, results.size()); - System.out.println(results.get(0).toString()); + System.out.println(results.getFirst().toString()); assertEquals(0, results.stream().filter(br -> br.getScore() >= passingScore).count()); } @@ -1125,8 +1096,8 @@ public void realLifeSplits18() { Map countPosition = new HashMap<>(); String name = "splitcon_chrMT_16130_chrMT_16213__true_1596188549171_252324_clip"; - countPosition.put(NumberUtils.getTileCount(97, 0), TARecordUtil.getLongList(80267450632041l)); - countPosition.put(NumberUtils.getTileCount(40, 0), TARecordUtil.getLongList(4611823460482664201l)); + countPosition.put(NumberUtils.getTileCount(97, 0), TARecordUtil.getLongList(80267450632041L)); + countPosition.put(NumberUtils.getTileCount(40, 0), TARecordUtil.getLongList(4611823460482664201L)); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -1138,17 +1109,15 @@ public void realLifeSplits18() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(0, results.size()); @@ -1164,13 +1133,13 @@ public void realLifeSplits19() { Map countPosition = new HashMap<>(); String name = "splitcon_chrX_58390230_chrX_58390403__false_1596787635795_567776"; - countPosition.put(NumberUtils.getTileCount(108, 0), TARecordUtil.getLongList(45082916162722l)); - countPosition.put(NumberUtils.getTileCount(36, 2), TARecordUtil.getLongList(4611801470087732099l)); - countPosition.put(NumberUtils.getTileCount(23, 0), TARecordUtil.getLongList(168228218458882l)); - countPosition.put(NumberUtils.getTileCount(18, 5), TARecordUtil.getLongList(277079869623160l)); - countPosition.put(NumberUtils.getTileCount(18, 2), TARecordUtil.getLongList(4611828957878476764l)); - countPosition.put(NumberUtils.getTileCount(17, 5), TARecordUtil.getLongList(275980357974295l)); - countPosition.put(NumberUtils.getTileCount(17, 3), TARecordUtil.getLongList(182521869761109l, 182521873151281l, 182521873154823l, 4611983989017945253l, 4611983989017964033l)); + countPosition.put(NumberUtils.getTileCount(108, 0), TARecordUtil.getLongList(45082916162722L)); + countPosition.put(NumberUtils.getTileCount(36, 2), TARecordUtil.getLongList(4611801470087732099L)); + countPosition.put(NumberUtils.getTileCount(23, 0), TARecordUtil.getLongList(168228218458882L)); + countPosition.put(NumberUtils.getTileCount(18, 5), TARecordUtil.getLongList(277079869623160L)); + countPosition.put(NumberUtils.getTileCount(18, 2), TARecordUtil.getLongList(4611828957878476764L)); + countPosition.put(NumberUtils.getTileCount(17, 5), TARecordUtil.getLongList(275980357974295L)); + countPosition.put(NumberUtils.getTileCount(17, 3), TARecordUtil.getLongList(182521869761109L, 182521873151281L, 182521873154823L, 4611983989017945253L, 4611983989017964033L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1183,18 +1152,16 @@ public void realLifeSplits19() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(0, results.size()); @@ -1211,13 +1178,13 @@ public void realLifeSplits20() { Map countPosition = new HashMap<>(); String name = "splitcon_chr7_61969207_chr12_38009070__true_1596788372148_152220"; - countPosition.put(NumberUtils.getTileCount(132, 4), TARecordUtil.getLongList(222102644437979l)); - countPosition.put(NumberUtils.getTileCount(126, 0), TARecordUtil.getLongList(106653923520372l)); - countPosition.put(NumberUtils.getTileCount(107, 0), TARecordUtil.getLongList(127544644455266l)); - countPosition.put(NumberUtils.getTileCount(98, 4), TARecordUtil.getLongList(235296783969092l, 235296783970623l)); - countPosition.put(NumberUtils.getTileCount(94, 0), TARecordUtil.getLongList(106653923518503l)); - countPosition.put(NumberUtils.getTileCount(84, 0), TARecordUtil.getLongList(117649039796953l)); - countPosition.put(NumberUtils.getTileCount(74, 0), TARecordUtil.getLongList(10996411902584l, 10996411903093l)); + countPosition.put(NumberUtils.getTileCount(132, 4), TARecordUtil.getLongList(222102644437979L)); + countPosition.put(NumberUtils.getTileCount(126, 0), TARecordUtil.getLongList(106653923520372L)); + countPosition.put(NumberUtils.getTileCount(107, 0), TARecordUtil.getLongList(127544644455266L)); + countPosition.put(NumberUtils.getTileCount(98, 4), TARecordUtil.getLongList(235296783969092L, 235296783970623L)); + countPosition.put(NumberUtils.getTileCount(94, 0), TARecordUtil.getLongList(106653923518503L)); + countPosition.put(NumberUtils.getTileCount(84, 0), TARecordUtil.getLongList(117649039796953L)); + countPosition.put(NumberUtils.getTileCount(74, 0), TARecordUtil.getLongList(10996411902584L, 10996411903093L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1230,18 +1197,16 @@ public void realLifeSplits20() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(2, results.size()); @@ -1261,13 +1226,13 @@ public void realLifeSplits21() { Map countPosition = new HashMap<>(); String name = "splitcon_chr7_61969207_chr12_38009070__true_1596788372148_152220"; - countPosition.put(NumberUtils.getTileCount(221, 2), TARecordUtil.getLongList(2200318881557l)); - countPosition.put(NumberUtils.getTileCount(181, 2), TARecordUtil.getLongList(10996411903093l)); - countPosition.put(NumberUtils.getTileCount(150, 1), TARecordUtil.getLongList(202311435137993l)); - countPosition.put(NumberUtils.getTileCount(140, 1), TARecordUtil.getLongList(56076388640761l)); - countPosition.put(NumberUtils.getTileCount(120, 3), TARecordUtil.getLongList(235296783968412l)); - countPosition.put(NumberUtils.getTileCount(120, 1), TARecordUtil.getLongList(235296783969092l, 235296783969601l)); - countPosition.put(NumberUtils.getTileCount(107, 0), TARecordUtil.getLongList(127544644455266l)); + countPosition.put(NumberUtils.getTileCount(221, 2), TARecordUtil.getLongList(2200318881557L)); + countPosition.put(NumberUtils.getTileCount(181, 2), TARecordUtil.getLongList(10996411903093L)); + countPosition.put(NumberUtils.getTileCount(150, 1), TARecordUtil.getLongList(202311435137993L)); + countPosition.put(NumberUtils.getTileCount(140, 1), TARecordUtil.getLongList(56076388640761L)); + countPosition.put(NumberUtils.getTileCount(120, 3), TARecordUtil.getLongList(235296783968412L)); + countPosition.put(NumberUtils.getTileCount(120, 1), TARecordUtil.getLongList(235296783969092L, 235296783969601L)); + countPosition.put(NumberUtils.getTileCount(107, 0), TARecordUtil.getLongList(127544644455266L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1280,18 +1245,16 @@ public void realLifeSplits21() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); assertEquals(3, results.size()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1309,12 +1272,11 @@ public void realLifeSplits22() { */ String seq = "GGGGGAGGAGCCAAGATGGCCGAATAGGAACAGCTCCGGTCTACAGCTCCCAGTGTGAGCAACG"; Map countPosition = new HashMap<>(); - String name = "chr15_34031839_true_-"; - - countPosition.put(NumberUtils.getTileCount(52, 1), TARecordUtil.getLongList(4611686018867029445l)); - countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(1102472321803l, 4611686019344588891l)); - countPosition.put(NumberUtils.getTileCount(49, 1), TARecordUtil.getLongList(4611688219174044208l)); - countPosition.put(NumberUtils.getTileCount(48, 2), TARecordUtil.getLongList(294553505, 326382629, 574836645, 1972351592, 1996049507, 2771972355l, 4611690416539915602l)); + + countPosition.put(NumberUtils.getTileCount(52, 1), TARecordUtil.getLongList(4611686018867029445L)); + countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(1102472321803L, 4611686019344588891L)); + countPosition.put(NumberUtils.getTileCount(49, 1), TARecordUtil.getLongList(4611688219174044208L)); + countPosition.put(NumberUtils.getTileCount(48, 2), TARecordUtil.getLongList(294553505, 326382629, 574836645, 1972351592, 1996049507, 2771972355L, 4611690416539915602L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1338,11 +1300,11 @@ public void realLifeSplits23() { Map countPosition = new HashMap<>(); String name = "splitcon_chr10_127633807_chr15_34031839__true_1597229449894_602255"; - countPosition.put(NumberUtils.getTileCount(107, 0), TARecordUtil.getLongList(75868643634102l)); - countPosition.put(NumberUtils.getTileCount(49, 1), TARecordUtil.getLongList(7698304795184l)); - countPosition.put(NumberUtils.getTileCount(48, 1), TARecordUtil.getLongList(4611816862105330075l)); - countPosition.put(NumberUtils.getTileCount(48, 0), TARecordUtil.getLongList(4611816862119100198l)); - countPosition.put(NumberUtils.getTileCount(47, 1), TARecordUtil.getLongList(9897416559913l)); + countPosition.put(NumberUtils.getTileCount(107, 0), TARecordUtil.getLongList(75868643634102L)); + countPosition.put(NumberUtils.getTileCount(49, 1), TARecordUtil.getLongList(7698304795184L)); + countPosition.put(NumberUtils.getTileCount(48, 1), TARecordUtil.getLongList(4611816862105330075L)); + countPosition.put(NumberUtils.getTileCount(48, 0), TARecordUtil.getLongList(4611816862119100198L)); + countPosition.put(NumberUtils.getTileCount(47, 1), TARecordUtil.getLongList(9897416559913L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1355,17 +1317,16 @@ public void realLifeSplits23() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow) + .toList()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(0, results.size()); @@ -1380,14 +1341,14 @@ public void realLifeSplits24() { Map countPosition = new HashMap<>(); String name = "splitcon_chr5_96617965_chr5_96618035__true_1596696734820_781431"; - countPosition.put(NumberUtils.getTileCount(82, 0), TARecordUtil.getLongList(1100489872410l)); - countPosition.put(NumberUtils.getTileCount(72, 0), TARecordUtil.getLongList(36284861961343l)); - countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(36284861961297l, 36284861961320l)); - countPosition.put(NumberUtils.getTileCount(37, 1), TARecordUtil.getLongList(130842861950165l)); - countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(24190234055693l)); - countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(24190297952852l)); - countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(24190288217943l, 4611923513906431087l)); - countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(23090722491985l, 24190167578688l, 24190182328473l, 24190236397296l, 24190245576419l, 24190251357525l, 24190264495532l, 24190265372582l, 24190272786434l, 139638926789045l, 4611926812479300845l)); + countPosition.put(NumberUtils.getTileCount(82, 0), TARecordUtil.getLongList(1100489872410L)); + countPosition.put(NumberUtils.getTileCount(72, 0), TARecordUtil.getLongList(36284861961343L)); + countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(36284861961297L, 36284861961320L)); + countPosition.put(NumberUtils.getTileCount(37, 1), TARecordUtil.getLongList(130842861950165L)); + countPosition.put(NumberUtils.getTileCount(17, 0), TARecordUtil.getLongList(24190234055693L)); + countPosition.put(NumberUtils.getTileCount(14, 0), TARecordUtil.getLongList(24190297952852L)); + countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(24190288217943L, 4611923513906431087L)); + countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(23090722491985L, 24190167578688L, 24190182328473L, 24190236397296L, 24190245576419L, 24190251357525L, 24190264495532L, 24190265372582L, 24190272786434L, 139638926789045L, 4611926812479300845L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1400,18 +1361,16 @@ public void realLifeSplits24() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1431,14 +1390,14 @@ public void realLifeSplits25() { Map countPosition = new HashMap<>(); String name = "splitcon_chr19_40134782_chr20_47762412__true_1598270196826_578106"; - countPosition.put(NumberUtils.getTileCount(136, 0), TARecordUtil.getLongList(2699578957l)); - countPosition.put(NumberUtils.getTileCount(76, 0), TARecordUtil.getLongList(194616324452069l)); - countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(53878769284487l)); - countPosition.put(NumberUtils.getTileCount(35, 1), TARecordUtil.getLongList(53878769293323l)); - countPosition.put(NumberUtils.getTileCount(19, 1), TARecordUtil.getLongList(34087560093447l)); - countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(85764606598966l)); - countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(63774374007687l, 63774374056428l)); - countPosition.put(NumberUtils.getTileCount(11, 0), TARecordUtil.getLongList(194616235376301l)); + countPosition.put(NumberUtils.getTileCount(136, 0), TARecordUtil.getLongList(2699578957L)); + countPosition.put(NumberUtils.getTileCount(76, 0), TARecordUtil.getLongList(194616324452069L)); + countPosition.put(NumberUtils.getTileCount(50, 0), TARecordUtil.getLongList(53878769284487L)); + countPosition.put(NumberUtils.getTileCount(35, 1), TARecordUtil.getLongList(53878769293323L)); + countPosition.put(NumberUtils.getTileCount(19, 1), TARecordUtil.getLongList(34087560093447L)); + countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(85764606598966L)); + countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(63774374007687L, 63774374056428L)); + countPosition.put(NumberUtils.getTileCount(11, 0), TARecordUtil.getLongList(194616235376301L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1451,17 +1410,15 @@ public void realLifeSplits25() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(0, results.size()); @@ -1476,10 +1433,10 @@ public void realLifeSplits26() { Map countPosition = new HashMap<>(); String name = "splitcon_chr2_59769597_chr2_59769659__true_1599457097433_514634"; - countPosition.put(NumberUtils.getTileCount(134, 0), TARecordUtil.getLongList(135240239236658l)); + countPosition.put(NumberUtils.getTileCount(134, 0), TARecordUtil.getLongList(135240239236658L)); countPosition.put(NumberUtils.getTileCount(111, 0), TARecordUtil.getLongList(309020158)); - countPosition.put(NumberUtils.getTileCount(7, 0), TARecordUtil.getLongList(4611922413758236086l)); - countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(23090107560703l)); + countPosition.put(NumberUtils.getTileCount(7, 0), TARecordUtil.getLongList(4611922413758236086L)); + countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(23090107560703L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1492,7 +1449,7 @@ public void realLifeSplits26() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toString()); @@ -1501,17 +1458,16 @@ public void realLifeSplits26() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .map(Optional::orElseThrow) + .toList()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals("196 198 0 0 0 1 71 1 0 + splitcon_chr2_59769597_chr2_59769659__true_1599457097433_514634 269 0 268 chr2 243199373 59769536 59769734 2 123,75 0,194 59769536,59769659", results.get(0).toString()); assertEquals(1, results.size()); - System.out.println(results.get(0).toString()); + System.out.println(results.getFirst().toString()); assertEquals(0, results.stream().filter(br -> br.getScore() >= passingScore).count()); } @@ -1524,9 +1480,9 @@ public void realLifeSplits28() { Map countPosition = new HashMap<>(); String name = "splitcon_chr8_39360286_chr8_39360413__true_1603194926354_561727"; - countPosition.put(NumberUtils.getTileCount(203, 2), TARecordUtil.getLongList(54977013544407l)); - countPosition.put(NumberUtils.getTileCount(58, 0), TARecordUtil.getLongList(279277385610937l)); - countPosition.put(NumberUtils.getTileCount(22, 0), TARecordUtil.getLongList(360641246066435l, 402422687921951l, 402422687921989l)); + countPosition.put(NumberUtils.getTileCount(203, 2), TARecordUtil.getLongList(54977013544407L)); + countPosition.put(NumberUtils.getTileCount(58, 0), TARecordUtil.getLongList(279277385610937L)); + countPosition.put(NumberUtils.getTileCount(22, 0), TARecordUtil.getLongList(360641246066435L, 402422687921951L, 402422687921989L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1539,7 +1495,7 @@ public void realLifeSplits28() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toString()); @@ -1548,13 +1504,11 @@ public void realLifeSplits28() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1573,9 +1527,9 @@ public void realLifeSplits29() { Map countPosition = new HashMap<>(); String name = "splitcon_chr5_178939187_chr5_178939496__true_1603195044083_189550_clip"; - countPosition.put(NumberUtils.getTileCount(112, 0), TARecordUtil.getLongList(14294711726852l)); - countPosition.put(NumberUtils.getTileCount(60, 0), TARecordUtil.getLongList(135240990782630l)); - countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(14294590348378l, 14294712305623l)); + countPosition.put(NumberUtils.getTileCount(112, 0), TARecordUtil.getLongList(14294711726852L)); + countPosition.put(NumberUtils.getTileCount(60, 0), TARecordUtil.getLongList(135240990782630L)); + countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(14294590348378L, 14294712305623L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1588,7 +1542,7 @@ public void realLifeSplits29() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toString()); @@ -1597,13 +1551,12 @@ public void realLifeSplits29() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::get) + .filter(br -> br.getScore() > passingScore).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1621,10 +1574,10 @@ public void realLifeSplits30() { Map countPosition = new HashMap<>(); String name = "splitcon_chr14_64866810_chr14_64867112__true_1603769470012_401600_clip"; - countPosition.put(NumberUtils.getTileCount(119, 0), TARecordUtil.getLongList(41783706658779l)); - countPosition.put(NumberUtils.getTileCount(93, 0), TARecordUtil.getLongList(2264802952l)); - countPosition.put(NumberUtils.getTileCount(20, 1), TARecordUtil.getLongList(127545580591165l)); - countPosition.put(NumberUtils.getTileCount(20, 0), TARecordUtil.getLongList(118749515111536l)); + countPosition.put(NumberUtils.getTileCount(119, 0), TARecordUtil.getLongList(41783706658779L)); + countPosition.put(NumberUtils.getTileCount(93, 0), TARecordUtil.getLongList(2264802952L)); + countPosition.put(NumberUtils.getTileCount(20, 1), TARecordUtil.getLongList(127545580591165L)); + countPosition.put(NumberUtils.getTileCount(20, 0), TARecordUtil.getLongList(118749515111536L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1637,7 +1590,7 @@ public void realLifeSplits30() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toString()); @@ -1646,13 +1599,12 @@ public void realLifeSplits30() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::get) + .filter(br -> br.getScore() > passingScore).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1670,11 +1622,11 @@ public void realLifeSplits31() { Map countPosition = new HashMap<>(); String name = "splitcon_chr17_80666697_chr17_80666858__true_1603769669765_514144"; - countPosition.put(NumberUtils.getTileCount(177, 1), TARecordUtil.getLongList(49480604088360l)); - countPosition.put(NumberUtils.getTileCount(117, 1), TARecordUtil.getLongList(194616138955084l)); - countPosition.put(NumberUtils.getTileCount(48, 0), TARecordUtil.getLongList(197914673838335l)); - countPosition.put(NumberUtils.getTileCount(42, 1), TARecordUtil.getLongList(197914673838295l)); - countPosition.put(NumberUtils.getTileCount(9, 0), TARecordUtil.getLongList(3301069788360l, 3301071379954l)); + countPosition.put(NumberUtils.getTileCount(177, 1), TARecordUtil.getLongList(49480604088360L)); + countPosition.put(NumberUtils.getTileCount(117, 1), TARecordUtil.getLongList(194616138955084L)); + countPosition.put(NumberUtils.getTileCount(48, 0), TARecordUtil.getLongList(197914673838335L)); + countPosition.put(NumberUtils.getTileCount(42, 1), TARecordUtil.getLongList(197914673838295L)); + countPosition.put(NumberUtils.getTileCount(9, 0), TARecordUtil.getLongList(3301069788360L, 3301071379954L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1687,7 +1639,7 @@ public void realLifeSplits31() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toString()); @@ -1696,13 +1648,12 @@ public void realLifeSplits31() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::orElseThrow) + .toList()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1719,11 +1670,11 @@ public void realLifeSplits32() { Map countPosition = new HashMap<>(); String name = "splitcon_chrX_47024632_chrX_47024936__true_1603769762689_724626"; - countPosition.put(NumberUtils.getTileCount(84, 0), TARecordUtil.getLongList(102257509441436l)); - countPosition.put(NumberUtils.getTileCount(65, 0), TARecordUtil.getLongList(4611750892623640414l)); - countPosition.put(NumberUtils.getTileCount(63, 1), TARecordUtil.getLongList(50580469672470l)); - countPosition.put(NumberUtils.getTileCount(59, 0), TARecordUtil.getLongList(50580552512082l)); - countPosition.put(NumberUtils.getTileCount(25, 0), TARecordUtil.getLongList(133043812568530l)); + countPosition.put(NumberUtils.getTileCount(84, 0), TARecordUtil.getLongList(102257509441436L)); + countPosition.put(NumberUtils.getTileCount(65, 0), TARecordUtil.getLongList(4611750892623640414L)); + countPosition.put(NumberUtils.getTileCount(63, 1), TARecordUtil.getLongList(50580469672470L)); + countPosition.put(NumberUtils.getTileCount(59, 0), TARecordUtil.getLongList(50580552512082L)); + countPosition.put(NumberUtils.getTileCount(25, 0), TARecordUtil.getLongList(133043812568530L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1736,7 +1687,7 @@ public void realLifeSplits32() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toString()); @@ -1744,13 +1695,11 @@ public void realLifeSplits32() { /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1767,11 +1716,11 @@ public void realLifeSplits33() { String name = "splitcon_chr7_25345087_chr7_25345211__false_1604284945574_644092"; countPosition.put(NumberUtils.getTileCount(115, 0), TARecordUtil.getLongList(1259001994)); - countPosition.put(NumberUtils.getTileCount(106, 0), TARecordUtil.getLongList(136340700846235l)); - countPosition.put(NumberUtils.getTileCount(85, 0), TARecordUtil.getLongList(301267445012906l)); - countPosition.put(NumberUtils.getTileCount(34, 0), TARecordUtil.getLongList(250689910135166l)); - countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(36285265937339l)); - countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(37384726210153l)); + countPosition.put(NumberUtils.getTileCount(106, 0), TARecordUtil.getLongList(136340700846235L)); + countPosition.put(NumberUtils.getTileCount(85, 0), TARecordUtil.getLongList(301267445012906L)); + countPosition.put(NumberUtils.getTileCount(34, 0), TARecordUtil.getLongList(250689910135166L)); + countPosition.put(NumberUtils.getTileCount(13, 0), TARecordUtil.getLongList(36285265937339L)); + countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(37384726210153L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1784,7 +1733,7 @@ public void realLifeSplits33() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toDetailedString()); @@ -1793,13 +1742,12 @@ public void realLifeSplits33() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::orElseThrow) + .toList()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1816,10 +1764,10 @@ public void realLifeSplits34() { Map countPosition = new HashMap<>(); String name = "splitcon_chr6_153932501_chr6_153932720_1_true_1606270441498_475180"; - countPosition.put(NumberUtils.getTileCount(148, 0), TARecordUtil.getLongList(111051890879997l)); - countPosition.put(NumberUtils.getTileCount(132, 2), TARecordUtil.getLongList(6598286241023l)); - countPosition.put(NumberUtils.getTileCount(22, 0), TARecordUtil.getLongList(64872402513363l)); - countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611875135647880198l)); + countPosition.put(NumberUtils.getTileCount(148, 0), TARecordUtil.getLongList(111051890879997L)); + countPosition.put(NumberUtils.getTileCount(132, 2), TARecordUtil.getLongList(6598286241023L)); + countPosition.put(NumberUtils.getTileCount(22, 0), TARecordUtil.getLongList(64872402513363L)); + countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611875135647880198L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1832,7 +1780,7 @@ public void realLifeSplits34() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toDetailedString()); @@ -1841,13 +1789,11 @@ public void realLifeSplits34() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::orElseThrow).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1865,9 +1811,9 @@ public void realLifeSplits35() { Map countPosition = new HashMap<>(); String name = "splitcon_chr6_153932501_chr6_153932720_1_true_1606270441498_475180"; - countPosition.put(NumberUtils.getTileCount(76, 0), TARecordUtil.getLongList(73667887999280l)); + countPosition.put(NumberUtils.getTileCount(76, 0), TARecordUtil.getLongList(73667887999280L)); countPosition.put(NumberUtils.getTileCount(58, 2), TARecordUtil.getLongList(608938145)); - countPosition.put(NumberUtils.getTileCount(49, 0), TARecordUtil.getLongList(157230771710330l)); + countPosition.put(NumberUtils.getTileCount(49, 0), TARecordUtil.getLongList(157230771710330L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { @@ -1880,7 +1826,7 @@ public void realLifeSplits35() { TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilps : potentialSplits) { System.out.println("ilps: " + ilps.toDetailedString()); @@ -1889,13 +1835,12 @@ public void realLifeSplits35() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::get) + .toList()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); @@ -1915,14 +1860,14 @@ public void realLifeNotASplit1() { String name = "chr2_219093573_false_+"; countPosition.put(NumberUtils.getTileCount(35, 0), TARecordUtil.getLongList(468349696)); - countPosition.put(NumberUtils.getTileCount(33, 0), TARecordUtil.getLongList(47279468348373l)); - countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(63771988073074l)); + countPosition.put(NumberUtils.getTileCount(33, 0), TARecordUtil.getLongList(47279468348373L)); + countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(63771988073074L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilp : potentialSplits) { @@ -1933,14 +1878,12 @@ public void realLifeNotASplit1() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .filter(br -> br.getScore() > passingScore) - .collect(Collectors.toList())); + List results = potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::get) + .filter(br -> br.getScore() > passingScore).toList(); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals("87 88 0 0 0 0 0 1 4266 + chr2_219093573_false_+ 88 0 87 chr2 243199373 219099074 219103428 2 43,45 0,43 219099074,219103383", results.get(0).toString()); @@ -1961,10 +1904,10 @@ public void realLifeNotASplit7() { String name = "chr4_65841131_false_-"; Map countPosition = new HashMap<>(); - countPosition.put(NumberUtils.getTileCount(24, 0), TARecordUtil.getLongList(4611691516741840313l)); - countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(4611722303067418037l)); - countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611697014299979166l)); - countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(4611697013843744131l, 4611700313523032794l, 4611701413056446682l, 4611711309159304981l, 4611723403618781526l)); + countPosition.put(NumberUtils.getTileCount(24, 0), TARecordUtil.getLongList(4611691516741840313L)); + countPosition.put(NumberUtils.getTileCount(12, 0), TARecordUtil.getLongList(4611722303067418037L)); + countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611697014299979166L)); + countPosition.put(NumberUtils.getTileCount(6, 0), TARecordUtil.getLongList(4611697013843744131L, 4611700313523032794L, 4611701413056446682L, 4611711309159304981L, 4611723403618781526L)); System.out.println("seq length: " + seq.length()); for (Entry entry : countPosition.entrySet()) { for (long l : entry.getValue().toArray()) { @@ -1976,7 +1919,7 @@ public void realLifeNotASplit7() { assertEquals(1, splits.size()); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilp : potentialSplits) { System.out.println("ilp in pot splits: " + ilp.toDetailedString()); @@ -1985,13 +1928,12 @@ public void realLifeNotASplit7() { * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ int passingScore = (int)(0.9 * seq.length()); - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::get) + .toList()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(1, results.size()); @@ -2017,12 +1959,12 @@ public void realLifeNotASplit4() { Map countPosition = new HashMap<>(); countPosition.put(NumberUtils.getTileCount(77, 74), TARecordUtil.getLongList(1306800986)); - countPosition.put(NumberUtils.getTileCount(34, 74), TARecordUtil.getLongList(93459795162031l)); - countPosition.put(NumberUtils.getTileCount(19, 74), TARecordUtil.getLongList(75867252657105l)); - countPosition.put(NumberUtils.getTileCount(18, 74), TARecordUtil.getLongList(4611717905531571448l)); - countPosition.put(NumberUtils.getTileCount(17, 74), TARecordUtil.getLongList(4611699213901862229l)); - countPosition.put(NumberUtils.getTileCount(16, 74), TARecordUtil.getLongList(4611699213878244189l)); - countPosition.put(NumberUtils.getTileCount(15, 74), TARecordUtil.getLongList(5498859273329l)); + countPosition.put(NumberUtils.getTileCount(34, 74), TARecordUtil.getLongList(93459795162031L)); + countPosition.put(NumberUtils.getTileCount(19, 74), TARecordUtil.getLongList(75867252657105L)); + countPosition.put(NumberUtils.getTileCount(18, 74), TARecordUtil.getLongList(4611717905531571448L)); + countPosition.put(NumberUtils.getTileCount(17, 74), TARecordUtil.getLongList(4611699213901862229L)); + countPosition.put(NumberUtils.getTileCount(16, 74), TARecordUtil.getLongList(4611699213878244189L)); + countPosition.put(NumberUtils.getTileCount(15, 74), TARecordUtil.getLongList(5498859273329L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); @@ -2041,7 +1983,7 @@ public void realLifeNotASplit2() { Map countPosition = new HashMap<>(); countPosition.put(NumberUtils.getTileCount(39, 0), TARecordUtil.getLongList(468332838)); - countPosition.put(NumberUtils.getTileCount(21, 0), TARecordUtil.getLongList(54976049730063l)); + countPosition.put(NumberUtils.getTileCount(21, 0), TARecordUtil.getLongList(54976049730063L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); @@ -2057,25 +1999,25 @@ public void realLifeNotASplit6() { Map countPosition = new HashMap<>(); String name = "chr8_6780650_false_+"; - countPosition.put(NumberUtils.getTileCount(45, 0), TARecordUtil.getLongList(4611723402105124227l)); - countPosition.put(NumberUtils.getTileCount(43, 0), TARecordUtil.getLongList(4611725601128379778l, 4611725601128380012l)); - countPosition.put(NumberUtils.getTileCount(39, 0), TARecordUtil.getLongList(4611726700640007654l)); - countPosition.put(NumberUtils.getTileCount(37, 0), TARecordUtil.getLongList(4611725601128379880l)); - countPosition.put(NumberUtils.getTileCount(33, 0), TARecordUtil.getLongList(4611736596244657530l)); - countPosition.put(NumberUtils.getTileCount(30, 0), TARecordUtil.getLongList(4611725601128379927l)); - countPosition.put(NumberUtils.getTileCount(28, 0), TARecordUtil.getLongList(4611742093802796564l, 4611742093802796649l)); - countPosition.put(NumberUtils.getTileCount(26, 0), TARecordUtil.getLongList(4611725601128379824l)); - countPosition.put(NumberUtils.getTileCount(25, 0), TARecordUtil.getLongList(4611742093802796604l)); - countPosition.put(NumberUtils.getTileCount(22, 0), TARecordUtil.getLongList(4611725601128379967l)); - countPosition.put(NumberUtils.getTileCount(11, 0), TARecordUtil.getLongList(4611699212824942509l, 4611723402095585225l, 4611723402147823381l, 4611723402313647256l, 4611723402451070354l, 4611723403553864282l, 4611723404245212377l, 4611723404254063266l, 4611723404487427564l, 4611723404706013687l, 4611723404734974280l, 4611723404861234247l,4611724503877178351l, 4611725600864842386l, 4611725601348799315l, 4611725601828463389l, 4611725602072099791l, 4611725603878327014l, 4611726702826088963l, 4611729999434819072l, 4611731100968196686l, 4611733298405409725l, 4611734397637893091l, 4611734399692440489l, 4611735497499013331l, 4611739895805990442l, 4611743193506804922l, 4611743194718568863l, 4611744292940548370l)); - countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611724501577997285l, 4611724501759438076l, 4611724502055551144l, 4611724502643525304l, 4611724502887527219l, 4611724502943305523l, 4611724503998276830l, 4611725601242876179l, 4611725601468027393l)); + countPosition.put(NumberUtils.getTileCount(45, 0), TARecordUtil.getLongList(4611723402105124227L)); + countPosition.put(NumberUtils.getTileCount(43, 0), TARecordUtil.getLongList(4611725601128379778L, 4611725601128380012L)); + countPosition.put(NumberUtils.getTileCount(39, 0), TARecordUtil.getLongList(4611726700640007654L)); + countPosition.put(NumberUtils.getTileCount(37, 0), TARecordUtil.getLongList(4611725601128379880L)); + countPosition.put(NumberUtils.getTileCount(33, 0), TARecordUtil.getLongList(4611736596244657530L)); + countPosition.put(NumberUtils.getTileCount(30, 0), TARecordUtil.getLongList(4611725601128379927L)); + countPosition.put(NumberUtils.getTileCount(28, 0), TARecordUtil.getLongList(4611742093802796564L, 4611742093802796649L)); + countPosition.put(NumberUtils.getTileCount(26, 0), TARecordUtil.getLongList(4611725601128379824L)); + countPosition.put(NumberUtils.getTileCount(25, 0), TARecordUtil.getLongList(4611742093802796604L)); + countPosition.put(NumberUtils.getTileCount(22, 0), TARecordUtil.getLongList(4611725601128379967L)); + countPosition.put(NumberUtils.getTileCount(11, 0), TARecordUtil.getLongList(4611699212824942509L, 4611723402095585225L, 4611723402147823381L, 4611723402313647256L, 4611723402451070354L, 4611723403553864282L, 4611723404245212377L, 4611723404254063266L, 4611723404487427564L, 4611723404706013687L, 4611723404734974280L, 4611723404861234247L, 4611724503877178351L, 4611725600864842386L, 4611725601348799315L, 4611725601828463389L, 4611725602072099791L, 4611725603878327014L, 4611726702826088963L, 4611729999434819072L, 4611731100968196686L, 4611733298405409725L, 4611734397637893091L, 4611734399692440489L, 4611735497499013331L, 4611739895805990442L, 4611743193506804922L, 4611743194718568863L, 4611744292940548370L)); + countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(4611724501577997285L, 4611724501759438076L, 4611724502055551144L, 4611724502643525304L, 4611724502887527219L, 4611724502943305523L, 4611724503998276830L, 4611725601242876179L, 4611725601468027393L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); assertEquals(3, splits.size()); List potentialSplits = new ArrayList<>(); - splits.forEachValue(s -> potentialSplits.addAll(s.stream().collect(Collectors.toList()))); + splits.forEachValue(s -> potentialSplits.addAll(s.stream().toList())); System.out.println("Number of IntLongPairs in potentialSplits list: " + potentialSplits.size()); for (IntLongPairs ilp : potentialSplits) { @@ -2085,13 +2027,12 @@ public void realLifeNotASplit6() { /* * loop through them all, if valid single record splits, create BLAT recs, otherwise fall through to SW */ - List results = new ArrayList<>(); - results.addAll(potentialSplits.stream() - .filter(ilp -> IntLongPairsUtil.isIntLongPairsAValidSingleRecord(ilp)) - .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) - .filter(sa -> sa.isPresent()) - .map(s -> s.get()) - .collect(Collectors.toList())); + List results = new ArrayList<>(potentialSplits.stream() + .filter(IntLongPairsUtil::isIntLongPairsAValidSingleRecord) + .map(ilp -> BLATRecordUtil.blatRecordFromSplits(ilp, name, seq.length(), pcpm, 13)) + .filter(Optional::isPresent) + .map(Optional::get) + .toList()); System.out.println("Number of records in results after looking in potentialSplits list: " + results.size()); assertEquals(0, results.size()); @@ -2106,7 +2047,7 @@ public void realLifeNotASplit5() { Map countPosition = new HashMap<>(); countPosition.put(NumberUtils.getTileCount(35, 0), TARecordUtil.getLongList(468349696)); - countPosition.put(NumberUtils.getTileCount(33, 0), TARecordUtil.getLongList(47279468348373l)); + countPosition.put(NumberUtils.getTileCount(33, 0), TARecordUtil.getLongList(47279468348373L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); @@ -2124,10 +2065,10 @@ public void realLifeNotASplit3() { String seq = "TTTAATNTNAAGTCCNGCCTCTCCTCCTTCCCNCCCTTCCCCCNATTCTCCCCTCTGGGGACCTTCCCCTCAGCTTTCGCCCGGCCGCCACTTCCCGG"; Map countPosition = new HashMap<>(); - countPosition.put(NumberUtils.getTileCount(11, 0), TARecordUtil.getLongList(18694208486406l, 18694208486423l, 18694208486440l, 4611746493793328204l)); - countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(23089781686284l, 4611746492140022818l, 4611746492298352748l, 4611746492611383193l, 4611746492814325754l, 4611747592869916944l, 4611749792597365989l)); - countPosition.put(NumberUtils.getTileCount(9, 0), TARecordUtil.getLongList(15393217590899l, 19792925818198l,20893231742043l, 23090748275645l, 23091179545971l, 24189293314045l, 24189293314103l, 24189590597294l, 24189696501195l, 24190174935040l, 24190575961585l, 4611747592123010986l, 4611747592532306583l, 4611747592532306598l, 4611748692446867427l, 4611749791898315168l, 4611749792987228214l, 4611757488484130851l)); - countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(14295682726983l, 14296429881159l, 16493914386631l, 18692069421207l, 18692860652876l, 19791826198623l, 21991747599100l, 21991747599116l, 21991747599132l, 21992530811149l, 21992580400103l, 21992605472203l, 21992732909656l, 21993283469916l, 23090321664111l, 23092173196802l,23092798082608l, 24189374784027l, 24190053753471l, 24190053753489l, 24191038884692l, 24191724000868l, 24191890892604l, 25290497431835l,4611724504280285384l, 4611746492282365670l, 4611746494205622742l, 4611747591536345565l,4611747593240711779l, 4611747593240711930l, 4611747593378322464l, 4611747593943584737l, 4611747594046215571l, 4611748693259627179l, 4611748693308946413l, 4611749790591948759l, 4611749792641660306l, 4611749792899102540l, 4611749793151325986l, 4611750891409942969l, 4611757489407404161l)); + countPosition.put(NumberUtils.getTileCount(11, 0), TARecordUtil.getLongList(18694208486406L, 18694208486423L, 18694208486440L, 4611746493793328204L)); + countPosition.put(NumberUtils.getTileCount(10, 0), TARecordUtil.getLongList(23089781686284L, 4611746492140022818L, 4611746492298352748L, 4611746492611383193L, 4611746492814325754L, 4611747592869916944L, 4611749792597365989L)); + countPosition.put(NumberUtils.getTileCount(9, 0), TARecordUtil.getLongList(15393217590899L, 19792925818198L, 20893231742043L, 23090748275645L, 23091179545971L, 24189293314045L, 24189293314103L, 24189590597294L, 24189696501195L, 24190174935040L, 24190575961585L, 4611747592123010986L, 4611747592532306583L, 4611747592532306598L, 4611748692446867427L, 4611749791898315168L, 4611749792987228214L, 4611757488484130851L)); + countPosition.put(NumberUtils.getTileCount(8, 0), TARecordUtil.getLongList(14295682726983L, 14296429881159L, 16493914386631L, 18692069421207L, 18692860652876L, 19791826198623L, 21991747599100L, 21991747599116L, 21991747599132L, 21992530811149L, 21992580400103L, 21992605472203L, 21992732909656L, 21993283469916L, 23090321664111L, 23092173196802L, 23092798082608L, 24189374784027L, 24190053753471L, 24190053753489L, 24191038884692L, 24191724000868L, 24191890892604L, 25290497431835L, 4611724504280285384L, 4611746492282365670L, 4611746494205622742L, 4611747591536345565L, 4611747593240711779L, 4611747593240711930L, 4611747593378322464L, 4611747593943584737L, 4611747594046215571L, 4611748693259627179L, 4611748693308946413L, 4611749790591948759L, 4611749792641660306L, 4611749792899102540L, 4611749793151325986L, 4611750891409942969L, 4611757489407404161L)); TARecord r = new TARecord(seq, countPosition); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(r); @@ -2136,7 +2077,7 @@ public void realLifeNotASplit3() { @Test public void getRangesAndChrPositions() { - IntLongPair pair1 = new IntLongPair(8323072, 32985657853490l); + IntLongPair pair1 = new IntLongPair(8323072, 32985657853490L); IntLongPair pair2 = new IntLongPair(1179648, 309020251); IntLongPairs pairs = new IntLongPairs(pair1, pair2); Map map = TARecordUtil.getChrPositionAndBlocksFromSplits(pairs, 169, pcpm); @@ -2145,8 +2086,8 @@ public void getRangesAndChrPositions() { @Test public void getRangesAndChrPositions2() { - IntLongPair p1 = new IntLongPair(524288, 4611732199562315553l); - IntLongPair p2 = new IntLongPair(1900544, 4611686020073948919l); + IntLongPair p1 = new IntLongPair(524288, 4611732199562315553L); + IntLongPair p2 = new IntLongPair(1900544, 4611686020073948919L); IntLongPairs pairs = new IntLongPairs(p1, p2); long long1 = NumberUtils.getLongPositionValueFromPackedLong(p1.getLong()); @@ -2163,8 +2104,8 @@ public void getRangesAndChrPositions2() { @Test public void getRangesAndChrPositions3() { - IntLongPair p1 = new IntLongPair(786432, 4611722303067418037l); - IntLongPair p2 = new IntLongPair(1572864, 4611691516741840313l); + IntLongPair p1 = new IntLongPair(786432, 4611722303067418037L); + IntLongPair p2 = new IntLongPair(1572864, 4611691516741840313L); IntLongPairs pairs = new IntLongPairs(p1, p2); long long1 = NumberUtils.getLongPositionValueFromPackedLong(p1.getLong()); @@ -2192,7 +2133,7 @@ public void getSplits2() { map.put(key, list); TARecord rec = new TARecord(seq, map); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(true, splits.isEmpty()); + assertTrue(splits.isEmpty()); /* * add another but there will not be enough tiles in the split for it to pass the min tile count check */ @@ -2204,7 +2145,7 @@ public void getSplits2() { map.put(key, list2); rec = new TARecord(seq, map); splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(true, splits.isEmpty()); + assertTrue(splits.isEmpty()); } @Test @@ -2220,7 +2161,7 @@ public void getSplitsTilesOverlap() { map.put(key, list); TARecord rec = new TARecord(seq, map); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(true, splits.isEmpty()); + assertTrue(splits.isEmpty()); /* * add another, overlap is more than the current buffer (10) and so no splits */ @@ -2232,7 +2173,7 @@ public void getSplitsTilesOverlap() { map.put(key, list2); rec = new TARecord(seq, map); splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(true, splits.isEmpty()); + assertTrue(splits.isEmpty()); /* * try adding again, this time within buffer range @@ -2244,20 +2185,20 @@ public void getSplitsTilesOverlap() { map.put(key, list2); rec = new TARecord(seq, map); splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(true, splits.isEmpty()); + assertTrue(splits.isEmpty()); } @Test public void fitWithinRange() { - assertEquals(true, TARecordUtil.doesPositionFitWithinRange(new int[]{0,100}, 10, 10, 10)); - assertEquals(false, TARecordUtil.doesPositionFitWithinRange(new int[]{0,10}, 10, 10, 10)); - assertEquals(false, TARecordUtil.doesPositionFitWithinRange(new int[]{0,19}, 10, 15, 10)); - assertEquals(false, TARecordUtil.doesPositionFitWithinRange(new int[]{0,19}, 10, 7, 10)); + assertTrue(TARecordUtil.doesPositionFitWithinRange(new int[]{0, 100}, 10, 10, 10)); + assertFalse(TARecordUtil.doesPositionFitWithinRange(new int[]{0, 10}, 10, 10, 10)); + assertFalse(TARecordUtil.doesPositionFitWithinRange(new int[]{0, 19}, 10, 15, 10)); + assertFalse(TARecordUtil.doesPositionFitWithinRange(new int[]{0, 19}, 10, 7, 10)); /* * need at least 13 bases overlap to be considered */ - assertEquals(false, TARecordUtil.doesPositionFitWithinRange(new int[]{0,19}, 10, 6, 10)); - assertEquals(true, TARecordUtil.doesPositionFitWithinRange(new int[]{0,19}, 5, 6, 10)); + assertFalse(TARecordUtil.doesPositionFitWithinRange(new int[]{0, 19}, 10, 6, 10)); + assertTrue(TARecordUtil.doesPositionFitWithinRange(new int[]{0, 19}, 5, 6, 10)); } @Test @@ -2273,7 +2214,7 @@ public void getSplitsEqualTileCounts() { map.put(key, list); TARecord rec = new TARecord(seq, map); TIntObjectMap> splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(true, splits.isEmpty()); + assertTrue(splits.isEmpty()); /* * add another but there will not be enough tiles in the split for it to pass the min tile count check */ @@ -2286,7 +2227,7 @@ public void getSplitsEqualTileCounts() { // map.put(key, list2); rec = new TARecord(seq, map); splits = TARecordUtil.getSplitStartPositions(rec); - assertEquals(false, splits.isEmpty()); + assertFalse(splits.isEmpty()); } @Test @@ -2298,7 +2239,7 @@ public void getRangesEnd() { int minSize = 20; List ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize); assertEquals(1, ranges.size()); - assertArrayEquals(new int[]{23, 100}, ranges.get(0)); + assertArrayEquals(new int[]{23, 100}, ranges.getFirst()); /* * up the tile count so that there is no space for a range @@ -2306,7 +2247,7 @@ public void getRangesEnd() { tileCount = 66; ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize); assertEquals(1, ranges.size()); - assertArrayEquals(new int[]{79, 100}, ranges.get(0)); + assertArrayEquals(new int[]{79, 100}, ranges.getFirst()); tileCount = 67; ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize); assertEquals(0, ranges.size()); @@ -2324,7 +2265,7 @@ public void getRangesStart() { int minSize = 20; List ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize); assertEquals(1, ranges.size()); - assertArrayEquals(new int[]{0, 29}, ranges.get(0)); + assertArrayEquals(new int[]{0, 29}, ranges.getFirst()); /* * change start position so that there is no space for a range @@ -2338,7 +2279,7 @@ public void getRangesStart() { startPosition = 20; ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize); assertEquals(1, ranges.size()); - assertArrayEquals(new int[]{0, 19}, ranges.get(0)); + assertArrayEquals(new int[]{0, 19}, ranges.getFirst()); } @Test @@ -2366,7 +2307,7 @@ public void getRangesStartAndEnd() { startPosition = 18; ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize); assertEquals(1, ranges.size()); - assertArrayEquals(new int[]{51, 100}, ranges.get(0)); + assertArrayEquals(new int[]{51, 100}, ranges.getFirst()); startPosition = 30; tileCount = 30; @@ -2390,36 +2331,36 @@ public void getBestPair() { * All the entries in the list patch from a positional perspective, but there is one that is super close, and on the same strand as p1 * This is the one that should be chosen, when multiple options exist. */ - IntLongPair p1 = new IntLongPair(1048576, 4611712409752715004l); - List potentialMatches = Arrays.asList(new IntLongPair(851968, 27489398850136l), - new IntLongPair(851968, 27489398851711l), - new IntLongPair(851968, 27490009933828l), - new IntLongPair(851968, 27490636997025l), - new IntLongPair(851968, 27490888461371l), - new IntLongPair(851968, 27490888479382l), - new IntLongPair(851968, 27490891131388l), - new IntLongPair(851968, 4611688219669829321l), - new IntLongPair(851968, 4611688220296896290l), - new IntLongPair(851968, 4611688220496904249l), - new IntLongPair(851968, 4611688220550258880l), - new IntLongPair(851968, 4611688220550996199l), - new IntLongPair(786432, 28587684403510l), - new IntLongPair(786432, 4611688219554484768l), - new IntLongPair(786432, 4611688220246743779l)); - - System.out.println("p1: 4611712409752715004: " + NumberUtils.getLongPositionValueFromPackedLong(4611712409752715004l)); - System.out.println("4611688220496904249: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220496904249l)); - System.out.println("4611688220550258880: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220550258880l)); - System.out.println("4611688220550996199: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220550996199l)); - System.out.println("4611688220296896290: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220296896290l)); + IntLongPair p1 = new IntLongPair(1048576, 4611712409752715004L); + List potentialMatches = Arrays.asList(new IntLongPair(851968, 27489398850136L), + new IntLongPair(851968, 27489398851711L), + new IntLongPair(851968, 27490009933828L), + new IntLongPair(851968, 27490636997025L), + new IntLongPair(851968, 27490888461371L), + new IntLongPair(851968, 27490888479382L), + new IntLongPair(851968, 27490891131388L), + new IntLongPair(851968, 4611688219669829321L), + new IntLongPair(851968, 4611688220296896290L), + new IntLongPair(851968, 4611688220496904249L), + new IntLongPair(851968, 4611688220550258880L), + new IntLongPair(851968, 4611688220550996199L), + new IntLongPair(786432, 28587684403510L), + new IntLongPair(786432, 4611688219554484768L), + new IntLongPair(786432, 4611688220246743779L)); + + System.out.println("p1: 4611712409752715004: " + NumberUtils.getLongPositionValueFromPackedLong(4611712409752715004L)); + System.out.println("4611688220496904249: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220496904249L)); + System.out.println("4611688220550258880: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220550258880L)); + System.out.println("4611688220550996199: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220550996199L)); + System.out.println("4611688220296896290: " + NumberUtils.getLongPositionValueFromPackedLong(4611688220296896290L)); Optional bestILP = TARecordUtil.getBestILPFromList(potentialMatches, p1); - assertEquals(true, bestILP.isPresent()); - assertEquals(new IntLongPair(851968, 4611688220496904249l), bestILP.get()); + assertTrue(bestILP.isPresent()); + assertEquals(new IntLongPair(851968, 4611688220496904249L), bestILP.get()); IntLongPairs ilp = TARecordUtil.getILPSFromLists(potentialMatches, null, p1); - assertEquals(new IntLongPair(851968, 4611688220496904249l), ilp.getPairs()[0]); + assertEquals(new IntLongPair(851968, 4611688220496904249L), ilp.getPairs()[0]); assertEquals(p1, ilp.getPairs()[1]); @@ -2431,14 +2372,14 @@ public void getBasePairs2() { * main ilp: LongPair p6 = new IntLongPair(NumberUtils.getTileCount(13,0), 4611688220496904249l); * [IntLongPair [i=1048576, l=4611712409752715004], IntLongPair [i=1048576, l=4611712409807521324], IntLongPair [i=917504, l=4611714608830778186], IntLongPair [i=786432, l=4611716807799226451]] */ - IntLongPair p1 = new IntLongPair(NumberUtils.getTileCount(13,0), 4611688220496904249l); - List potentialMatches = Arrays.asList(new IntLongPair(1048576, 4611712409752715004l), - new IntLongPair(1048576, 4611712409807521324l), - new IntLongPair(917504, 4611714608830778186l), - new IntLongPair(786432, 4611716807799226451l)); + IntLongPair p1 = new IntLongPair(NumberUtils.getTileCount(13,0), 4611688220496904249L); + List potentialMatches = Arrays.asList(new IntLongPair(1048576, 4611712409752715004L), + new IntLongPair(1048576, 4611712409807521324L), + new IntLongPair(917504, 4611714608830778186L), + new IntLongPair(786432, 4611716807799226451L)); Optional bestILP = TARecordUtil.getBestILPFromList(potentialMatches, p1); - assertEquals(true, bestILP.isPresent()); - assertEquals(new IntLongPair(786432, 4611716807799226451l), bestILP.get()); + assertTrue(bestILP.isPresent()); + assertEquals(new IntLongPair(786432, 4611716807799226451L), bestILP.get()); } @@ -2448,14 +2389,14 @@ public void getBasePairs3() { * main ilp: LongPair p6 = new IntLongPair(7012352, 75868643634102); * [IntLongPair [i=3145728, l=4611816862119100198], IntLongPair [i=3211265, l=7698304795184], IntLongPair [i=3145729, l=4611816862105330075], IntLongPair [i=3080193, l=9897416559913]] */ - IntLongPair p1 = new IntLongPair(7012352, 75868643634102l); - List potentialMatches = Arrays.asList(new IntLongPair(3145728, 4611816862119100198l), - new IntLongPair(3211265, 7698304795184l), - new IntLongPair(3145729, 4611816862105330075l), - new IntLongPair(3080193, 9897416559913l)); + IntLongPair p1 = new IntLongPair(7012352, 75868643634102L); + List potentialMatches = Arrays.asList(new IntLongPair(3145728, 4611816862119100198L), + new IntLongPair(3211265, 7698304795184L), + new IntLongPair(3145729, 4611816862105330075L), + new IntLongPair(3080193, 9897416559913L)); Optional bestILP = TARecordUtil.getBestILPFromList(potentialMatches, p1); - assertEquals(true, bestILP.isPresent()); - assertEquals(new IntLongPair(3145728, 4611816862119100198l), bestILP.get()); + assertTrue(bestILP.isPresent()); + assertEquals(new IntLongPair(3145728, 4611816862119100198L), bestILP.get()); } @@ -2468,7 +2409,7 @@ public void getRangesStartAndEnd2() { int minSize = 20; List ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize, false); assertEquals(1, ranges.size()); - assertArrayEquals(new int[]{0, 68}, ranges.get(0)); + assertArrayEquals(new int[]{0, 68}, ranges.getFirst()); } @Test @@ -2505,7 +2446,7 @@ public void getRanges2() { int minSize = 20; List ranges = TARecordUtil.getPossibleTileRanges(length, startPosition, tileLength, tileCount, minSize, false); assertEquals(1, ranges.size()); - assertArrayEquals(new int[]{43, 100}, ranges.get(0)); + assertArrayEquals(new int[]{43, 100}, ranges.getFirst()); } @Test @@ -2540,9 +2481,9 @@ public void getRemainingRanges5() { @Test public void getRemainingRanges6() { // IntLongPairs [pairs=[IntLongPair [i=3145728, l=41782618660320], IntLongPair [i=3604480, l=277078107006956], IntLongPair [i=9437184, l=105554293072971]]] - IntLongPair p1 = new IntLongPair(3145728, 41782618660320l); - IntLongPair p2 = new IntLongPair(3604480, 277078107006956l); - IntLongPair p3 = new IntLongPair(9437184, 105554293072971l); + IntLongPair p1 = new IntLongPair(3145728, 41782618660320L); + IntLongPair p2 = new IntLongPair(3604480, 277078107006956L); + IntLongPair p3 = new IntLongPair(9437184, 105554293072971L); IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{p1, p2, p3}); int[][] ranges = TARecordUtil.getRemainingRangeFromIntLongPairs(pairs, 319); assertEquals(1, ranges.length); @@ -2551,8 +2492,8 @@ public void getRemainingRanges6() { @Test public void getRemainingRanges7() { // IntLongPairs [pairs=[IntLongPair [i=3145728, l=4611816862119100198], IntLongPair [i=7012352, l=75868643634102]]] - IntLongPair p1 = new IntLongPair(3145728, 4611816862119100198l); - IntLongPair p2 = new IntLongPair(7012352, 75868643634102l); + IntLongPair p1 = new IntLongPair(3145728, 4611816862119100198L); + IntLongPair p2 = new IntLongPair(7012352, 75868643634102L); IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{p1, p2}); int[][] ranges = TARecordUtil.getRemainingRangeFromIntLongPairs(pairs, 188); assertEquals(0, ranges.length); @@ -2560,7 +2501,7 @@ public void getRemainingRanges7() { @Test public void getRemainingRanges8() { // IntLongPairs [pairs=[IntLongPair [i=589824, l=315561373177018], IntLongPair [i=17956864, l=1536005032]]] - IntLongPair p1 = new IntLongPair(589824, 315561373177018l); + IntLongPair p1 = new IntLongPair(589824, 315561373177018L); IntLongPair p2 = new IntLongPair(17956864, 1536005032); IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{p1, p2}); long long1 = NumberUtils.getLongPositionValueFromPackedLong(p1.getLong()); @@ -2575,8 +2516,8 @@ public void getRemainingRanges8() { @Test public void getRemainingRanges9() { // [pairs=[IntLongPair [i=7012352, l=75868643634102], IntLongPair [i=3145728, l=4611816862119100198]]] - IntLongPair p1 = new IntLongPair(7012352, 75868643634102l); - IntLongPair p2 = new IntLongPair(3145728, 4611816862119100198l); + IntLongPair p1 = new IntLongPair(7012352, 75868643634102L); + IntLongPair p2 = new IntLongPair(3145728, 4611816862119100198L); IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{p1, p2}); long long1 = NumberUtils.getLongPositionValueFromPackedLong(p1.getLong()); long long2 = NumberUtils.getLongPositionValueFromPackedLong(p2.getLong()); @@ -2591,9 +2532,9 @@ public void getRemainingRanges9() { @Test public void getRemainingRanges10() { // IntLongPairs [pairs=[IntLongPair [i=2752512, l=4611705811171869861], IntLongPair [i=786432, l=4611775080404419812], IntLongPair [i=720896, l=87962594069495]] - IntLongPair p1 = new IntLongPair(2752512, 4611705811171869861l); - IntLongPair p2 = new IntLongPair(786432, 4611775080404419812l); - IntLongPair p3 = new IntLongPair(720896, 87962594069495l); + IntLongPair p1 = new IntLongPair(2752512, 4611705811171869861L); + IntLongPair p2 = new IntLongPair(786432, 4611775080404419812L); + IntLongPair p3 = new IntLongPair(720896, 87962594069495L); IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{p1, p2, p3}); long long1 = NumberUtils.getLongPositionValueFromPackedLong(p1.getLong()); long long2 = NumberUtils.getLongPositionValueFromPackedLong(p2.getLong()); @@ -2608,8 +2549,8 @@ public void getRemainingRanges10() { @Test public void getRemainingRanges11() { // [pairs=[IntLongPair [i=720896, l=4611699212824942509], IntLongPair [i=2949120, l=4611723402105124227]]] - IntLongPair p1 = new IntLongPair(720896, 4611699212824942509l); - IntLongPair p2 = new IntLongPair(2949120, 4611723402105124227l); + IntLongPair p1 = new IntLongPair(720896, 4611699212824942509L); + IntLongPair p2 = new IntLongPair(2949120, 4611723402105124227L); IntLongPairs pairs = new IntLongPairs(new IntLongPair[]{p1, p2}); long long1 = NumberUtils.getLongPositionValueFromPackedLong(p1.getLong()); long long2 = NumberUtils.getLongPositionValueFromPackedLong(p2.getLong()); @@ -2640,34 +2581,34 @@ public void getRemainingRanges4() { @Test public void longsOverlapping() { - assertEquals(false, TARecordUtil.doGenomicPositionsOverlap(1, 1000, 1001, 2000, 10)); - assertEquals(false, TARecordUtil.doGenomicPositionsOverlap(1, 1000, 999, 2000, 10)); - assertEquals(false, TARecordUtil.doGenomicPositionsOverlap(1, 1000, 991, 2000, 10)); - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(1, 1000, 990, 2000, 10)); - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1000, 2000, 10)); - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1100, 2000, 10)); - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1100, 1900, 10)); - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1100, 1900, 10)); - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 500, 2001, 10)); - assertEquals(false, TARecordUtil.doGenomicPositionsOverlap(100, 1000, 0, 109, 10)); - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(100, 1000, 0, 109, 9)); + assertFalse(TARecordUtil.doGenomicPositionsOverlap(1, 1000, 1001, 2000, 10)); + assertFalse(TARecordUtil.doGenomicPositionsOverlap(1, 1000, 999, 2000, 10)); + assertFalse(TARecordUtil.doGenomicPositionsOverlap(1, 1000, 991, 2000, 10)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(1, 1000, 990, 2000, 10)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1000, 2000, 10)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1100, 2000, 10)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1100, 1900, 10)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 1100, 1900, 10)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(1000, 2000, 500, 2001, 10)); + assertFalse(TARecordUtil.doGenomicPositionsOverlap(100, 1000, 0, 109, 10)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(100, 1000, 0, 109, 9)); } @Test public void longsOverlapping2() { - assertEquals(true, TARecordUtil.doGenomicPositionsOverlap(1994, 2121, 2011, 2129, 109)); - assertEquals(false, TARecordUtil.doGenomicPositionsOverlap(1994, 2121, 2011, 2129, 149)); + assertTrue(TARecordUtil.doGenomicPositionsOverlap(1994, 2121, 2011, 2129, 109)); + assertFalse(TARecordUtil.doGenomicPositionsOverlap(1994, 2121, 2011, 2129, 149)); } @Test public void compareILPs() { - IntLongPair constant = new IntLongPair(2293761, 122046073075177l); - IntLongPair ilp1 = new IntLongPair(1507329, 4611878433244640844l); - IntLongPair ilp2 = new IntLongPair(1507329, 4611878433244640646l); + IntLongPair constant = new IntLongPair(2293761, 122046073075177L); + IntLongPair ilp1 = new IntLongPair(1507329, 4611878433244640844L); + IntLongPair ilp2 = new IntLongPair(1507329, 4611878433244640646L); assertEquals(0, TARecordUtil.compareILPs(ilp1, ilp2, constant)); assertEquals(0, TARecordUtil.compareILPs(ilp2, ilp1, constant)); - IntLongPair ilp3 = new IntLongPair(1507329, 4611878433244640946l); + IntLongPair ilp3 = new IntLongPair(1507329, 4611878433244640946L); assertEquals(-1, TARecordUtil.compareILPs(ilp1, ilp3, constant)); assertEquals(1, TARecordUtil.compareILPs(ilp3, ilp1, constant)); assertEquals(-1, TARecordUtil.compareILPs(ilp2, ilp3, constant)); diff --git a/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TiledAlignerUtilTest.java b/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TiledAlignerUtilTest.java index 29008fcbc..537acec13 100644 --- a/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TiledAlignerUtilTest.java +++ b/q3tiledaligner/test/au/edu/qimr/tiledaligner/util/TiledAlignerUtilTest.java @@ -1,10 +1,5 @@ package au.edu.qimr.tiledaligner.util; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -24,7 +19,6 @@ import org.qcmg.common.model.ChrPosition; import org.qcmg.common.model.ChrPositionName; import org.qcmg.common.string.StringUtils; -import org.qcmg.common.util.ListUtils; import org.qcmg.common.util.NumberUtils; import au.edu.qimr.tiledaligner.PositionChrPositionMap; @@ -37,6 +31,8 @@ import gnu.trove.map.hash.TIntObjectHashMap; import htsjdk.samtools.util.SequenceUtil; +import static org.junit.Assert.*; + public class TiledAlignerUtilTest { public static Map pcpm; @@ -103,20 +99,20 @@ public void useIndexFileIfPresent() throws IOException { * no index so should load default positions - no exception */ Map map = TiledAlignerUtil.loadReferenceIndexMap(fa.getAbsolutePath(), null); - assertEquals(false, map.isEmpty()); + assertFalse(map.isEmpty()); /* * add an index file - should use this rather than default */ File index = testFolder.newFile("test.fa.fai"); map = TiledAlignerUtil.loadReferenceIndexMap(fa.getAbsolutePath(), null); - assertEquals(true, map.isEmpty()); + assertTrue(map.isEmpty()); /* * and finally with the explicit call to the index */ map = TiledAlignerUtil.loadReferenceIndexMap(fa.getAbsolutePath(), index.getAbsolutePath()); - assertEquals(true, map.isEmpty()); + assertTrue(map.isEmpty()); } @@ -125,10 +121,10 @@ public void getAlternatives() { String s = "AAAANCCCC"; List alternativeSequences = TiledAlignerUtil.getAlternativeSequences(s); assertEquals(4, alternativeSequences.size()); - assertEquals(true, alternativeSequences.contains("AAAAACCCC")); - assertEquals(true, alternativeSequences.contains("AAAACCCCC")); - assertEquals(true, alternativeSequences.contains("AAAAGCCCC")); - assertEquals(true, alternativeSequences.contains("AAAATCCCC")); + assertTrue(alternativeSequences.contains("AAAAACCCC")); + assertTrue(alternativeSequences.contains("AAAACCCCC")); + assertTrue(alternativeSequences.contains("AAAAGCCCC")); + assertTrue(alternativeSequences.contains("AAAATCCCC")); /* * start of seq @@ -136,10 +132,10 @@ public void getAlternatives() { s = "NAAAACCCC"; alternativeSequences = TiledAlignerUtil.getAlternativeSequences(s); assertEquals(4, alternativeSequences.size()); - assertEquals(true, alternativeSequences.contains("AAAAACCCC")); - assertEquals(true, alternativeSequences.contains("CAAAACCCC")); - assertEquals(true, alternativeSequences.contains("GAAAACCCC")); - assertEquals(true, alternativeSequences.contains("TAAAACCCC")); + assertTrue(alternativeSequences.contains("AAAAACCCC")); + assertTrue(alternativeSequences.contains("CAAAACCCC")); + assertTrue(alternativeSequences.contains("GAAAACCCC")); + assertTrue(alternativeSequences.contains("TAAAACCCC")); /* * end of seq @@ -147,10 +143,10 @@ public void getAlternatives() { s = "AAAACCCCN"; alternativeSequences = TiledAlignerUtil.getAlternativeSequences(s); assertEquals(4, alternativeSequences.size()); - assertEquals(true, alternativeSequences.contains("AAAACCCCA")); - assertEquals(true, alternativeSequences.contains("AAAACCCCC")); - assertEquals(true, alternativeSequences.contains("AAAACCCCG")); - assertEquals(true, alternativeSequences.contains("AAAACCCCT")); + assertTrue(alternativeSequences.contains("AAAACCCCA")); + assertTrue(alternativeSequences.contains("AAAACCCCC")); + assertTrue(alternativeSequences.contains("AAAACCCCG")); + assertTrue(alternativeSequences.contains("AAAACCCCT")); } @Test @@ -166,30 +162,30 @@ public void getBlocks() { public void testSplitString() { String[] array = TiledAlignerUtil.splitString("chr22_xxx_49157941_xxx_false_xxx_+"); assertEquals(4, array.length); - assertEquals(array[0], "chr22"); + assertEquals("chr22", array[0]); array = TiledAlignerUtil.splitString("chr22_xxx_49157941_xxx_false_xxx_+"); assertEquals(4, array.length); - assertEquals(array[0], "chr22"); + assertEquals("chr22", array[0]); array = TiledAlignerUtil.splitString("chrUn_KI270448v1_xxx_1_xxx_true_xxx_-"); assertEquals(4, array.length); - assertEquals(array[0], "chrUn_KI270448v1"); + assertEquals("chrUn_KI270448v1", array[0]); } @Test public void binarySearch() { - long [] array = new long[] {25517072l, 67321052l, 75742258l, 81710821l, 96407916l, 99585905l, 104099171l, 110675025l, 161045997l, 197264177l, 203573790l, 206602316l, 215747464l, 225779709l, 283752392l, 296402237l, 300944545l, 320571603l, 334049968l, 392648939l, 399391802l, 406170692l, 408413952l, 410879729l, 415454714l, 441495178l, 442280221l, 443418870l, 456436703l, 480836415l, 484289883l, 489506404l, 490191380l, 507341039l, 511783582l, 517243575l, 548371216l, 557465340l, 559611567l, 569303840l, 576938379l, 594241670l, 602122487l, 610466931l, 625783806l, 628337581l, 646108376l, 650108447l, 683867059l, 705334166l, 714094830l, 722926115l, 735699982l, 769311324l, 798347594l, 800834172l, 803997882l, 833532105l, 842298066l, 855524135l, 855904340l, 871439382l, 877476180l, 893807139l, 923226795l, 931146805l, 931208768l, 936740865l, 953656258l, 985537401l, 987360609l, 992957601l, 1000346542l, 1001717577l, 1003493451l, 1064326337l, 1070889959l, 1100702783l, 1113074245l, 1119094242l, 1144573280l, 1161513148l, 1167370572l, 1191867500l, 1195946702l, 1204901356l, 1206007529l, 1218903238l, 1242723572l, 1245483401l, 1255035830l, 1265940390l, 1275222702l, 1302787761l, 1314806097l, 1369248937l, 1409342492l, 1429428778l, 1450965035l, 1465608437l, 1502454298l, 1505495618l, 1506728304l, 1515565140l, 1561103325l, 1564267876l, 1568469234l, 1576700774l, 1619598046l, 1643753871l, 1646537651l, 1648753666l, 1653266237l, 1657692897l, 1741570573l, 1758950453l, 1759460831l, 1778901541l, 1791131887l, 1861753837l, 1865634082l, 1896858276l, 1917579089l, 1929304177l, 1929304215l, 1929304252l, 1945355640l, 1968682676l, 1969643859l, 1970834124l, 1972908636l, 1995852892l, 2021906721l, 2024453931l, 2025281126l, 2037329914l, 2037782695l, 2041856421l, 2057603016l, 2068607305l, 2133320063l, 2138907227l, 2144832107l, 2146806472l, 2156951050l, 2160101247l, 2227863991l, 2229657520l, 2247942829l, 2260684751l, 2270733126l, 2286127914l, 2291661818l, 2363083825l, 2377621064l, 2401329400l, 2401330643l, 2417096045l, 2420045586l, 2466524417l, 2469680241l, 2477168677l, 2551701535l, 2556193833l, 2557318565l, 2561132082l, 2567916187l, 2645544844l, 2646859934l, 2647798153l, 2655722969l, 2726087574l, 2727430177l, 2728081266l, 2731580592l, 2738604838l, 2757797090l, 2758934046l, 2774027846l, 2804065615l, 2807605723l, 2822692027l, 2856895106l, 2877627542l, 2914356962l, 2928036608l, 2947561445l, 2952089221l, 2968794681l, 2970748296l, 2981649716l, 2997272048l, 3006982822l, 3009742985l, 3013774084l, 3019492535l, 3030490435l, 3040209631l, 3059293169l, 3063963095l}; + long [] array = new long[] {25517072L, 67321052L, 75742258L, 81710821L, 96407916L, 99585905L, 104099171L, 110675025L, 161045997L, 197264177L, 203573790L, 206602316L, 215747464L, 225779709L, 283752392L, 296402237L, 300944545L, 320571603L, 334049968L, 392648939L, 399391802L, 406170692L, 408413952L, 410879729L, 415454714L, 441495178L, 442280221L, 443418870L, 456436703L, 480836415L, 484289883L, 489506404L, 490191380L, 507341039L, 511783582L, 517243575L, 548371216L, 557465340L, 559611567L, 569303840L, 576938379L, 594241670L, 602122487L, 610466931L, 625783806L, 628337581L, 646108376L, 650108447L, 683867059L, 705334166L, 714094830L, 722926115L, 735699982L, 769311324L, 798347594L, 800834172L, 803997882L, 833532105L, 842298066L, 855524135L, 855904340L, 871439382L, 877476180L, 893807139L, 923226795L, 931146805L, 931208768L, 936740865L, 953656258L, 985537401L, 987360609L, 992957601L, 1000346542L, 1001717577L, 1003493451L, 1064326337L, 1070889959L, 1100702783L, 1113074245L, 1119094242L, 1144573280L, 1161513148L, 1167370572L, 1191867500L, 1195946702L, 1204901356L, 1206007529L, 1218903238L, 1242723572L, 1245483401L, 1255035830L, 1265940390L, 1275222702L, 1302787761L, 1314806097L, 1369248937L, 1409342492L, 1429428778L, 1450965035L, 1465608437L, 1502454298L, 1505495618L, 1506728304L, 1515565140L, 1561103325L, 1564267876L, 1568469234L, 1576700774L, 1619598046L, 1643753871L, 1646537651L, 1648753666L, 1653266237L, 1657692897L, 1741570573L, 1758950453L, 1759460831L, 1778901541L, 1791131887L, 1861753837L, 1865634082L, 1896858276L, 1917579089L, 1929304177L, 1929304215L, 1929304252L, 1945355640L, 1968682676L, 1969643859L, 1970834124L, 1972908636L, 1995852892L, 2021906721L, 2024453931L, 2025281126L, 2037329914L, 2037782695L, 2041856421L, 2057603016L, 2068607305L, 2133320063L, 2138907227L, 2144832107L, 2146806472L, 2156951050L, 2160101247L, 2227863991L, 2229657520L, 2247942829L, 2260684751L, 2270733126L, 2286127914L, 2291661818L, 2363083825L, 2377621064L, 2401329400L, 2401330643L, 2417096045L, 2420045586L, 2466524417L, 2469680241L, 2477168677L, 2551701535L, 2556193833L, 2557318565L, 2561132082L, 2567916187L, 2645544844L, 2646859934L, 2647798153L, 2655722969L, 2726087574L, 2727430177L, 2728081266L, 2731580592L, 2738604838L, 2757797090L, 2758934046L, 2774027846L, 2804065615L, 2807605723L, 2822692027L, 2856895106L, 2877627542L, 2914356962L, 2928036608L, 2947561445L, 2952089221L, 2968794681L, 2970748296L, 2981649716L, 2997272048L, 3006982822L, 3009742985L, 3013774084L, 3019492535L, 3030490435L, 3040209631L, 3059293169L, 3063963095L}; Arrays.sort(array); - int position = Arrays.binarySearch(array, 2774027845l); - assertEquals(true, position < 0); - assertEquals(2774027846l, array[Math.abs(position) - 1]); + int position = Arrays.binarySearch(array, 2774027845L); + assertTrue(position < 0); + assertEquals(2774027846L, array[Math.abs(position) - 1]); - array = new long[] {119, 67321052l, 75742258l, 81710821l, 96407916l, 99585905l, 104099171l, 110675025l, 161045997l, 197264177l, 2774027846l}; + array = new long[] {119, 67321052L, 75742258L, 81710821L, 96407916L, 99585905L, 104099171L, 110675025L, 161045997L, 197264177L, 2774027846L}; Arrays.sort(array); - position = Arrays.binarySearch(array, 2774027845l); - assertEquals(true, position < 0); - assertEquals(2774027846l, array[Math.abs(position) - 1]); + position = Arrays.binarySearch(array, 2774027845L); + assertTrue(position < 0); + assertEquals(2774027846L, array[Math.abs(position) - 1]); } @Test @@ -200,35 +196,35 @@ public void getBestStartPositionInsertion() { * insertion */ Map map = new HashMap<>(); - map.put("CATGTATCCAAGA", new TLongArrayList(new long[] {100, 114656855l, 181950606l, 196080513l, 2774027828l})); - map.put("ATGTATCCAAGAA" , new TLongArrayList(new long[] {101, 80247690l, 181950607l, 185553130l, 2774027829l})); - map.put("TGTATCCAAGAAC" , new TLongArrayList(new long[] {102, 238834251l, 279169995l, 282711716l, 2774027830l})); - map.put("GTATCCAAGAACT", new TLongArrayList(new long[] {103, 238834252l, 279169996l, 282711717l, 299667250l, 2774027831l})); - map.put("TATCCAAGAACTT", new TLongArrayList(new long[] {104, 181950610l, 204821238l, 222907003l, 238834253l, 246623495l, 2774027832l})); - map.put("ATCCAAGAACTTA", new TLongArrayList(new long[] {105, 164272699l, 181950611l, 203930611l, 222907004l, 237552832l, 2774027833l})); - map.put("TCCAAGAACTTAA", new TLongArrayList(new long[] {1000, 88407160l, 99460658l, 158795514l, 170756687l, 181950612l, 279169999l})); - map.put("CCAAGAACTTAAG", new TLongArrayList(new long[] {1001, 61608511l, 71349155l, 231400300l, 280669706l, 398256597l, 421249998l})); - map.put("CAAGAACTTAAGA", new TLongArrayList(new long[] {1002, 61608512l, 280669707l, 348473245l, 355394324l, 441803741l, 449436395l})); - map.put("AAGAACTTAAGAG", new TLongArrayList(new long[] {1003, 19081828l, 39044042l, 61608513l, 79036778l, 90584581l, 167079856l, 176026406l})); - map.put("AGAACTTAAGAGT", new TLongArrayList(new long[] {1004, 18246342l, 23314256l, 32545968l, 69919991l, 79036779l, 103325700l, 176026407l,})); - map.put("GAACTTAAGAGTA", new TLongArrayList(new long[] {1005, 4424875l, 69919992l, 88876767l, 103325701l, 118373358l, 169517582l, 254945076l, 323106078l})); - map.put("AACTTAAGAGTAT", new TLongArrayList(new long[] {1006, 4424876l, 68273695l, 77064653l, 97968633l, 103325702l, 114330607l, 142664087l, 142886981l})); - map.put("ACTTAAGAGTATA", new TLongArrayList(new long[] {1007, 54281547l, 66100746l, 73307108l, 97968634l, 103325703l, 114330608l, 170070537l, 193470526l})); - map.put("CTTAAGAGTATAA", new TLongArrayList(new long[] {1008, 29509758l, 66100747l, 78637871l, 103325704l, 114330609l, 170070538l, 220174021l, 262032278l})); - map.put("TTAAGAGTATAAT", new TLongArrayList(new long[] {1009, 31751995l, 57409485l, 74230190l, 78637872l, 92657418l, 93524067l, 99386567l, 109184501l, 159364553l})); - map.put("TAAGAGTATAATA", new TLongArrayList(new long[] {1010, 14330001l, 87721104l, 92657419l, 112260154l, 119980130l, 159364554l, 178226658l, 187884060l, 195686065l})); - map.put("AAGAGTATAATAA", new TLongArrayList(new long[] {1011, 25517070l, 92657420l, 119980131l, 121271910l, 158198921l, 159364555l, 178226659l, 187884061l, 197251084l})); - map.put("AGAGTATAATAAT", new TLongArrayList(new long[] {1012, 25517071l, 81710820l, 96407915l, 96530666l, 104099170l, 110675024l, 116533032l, 159364556l, 195615394l})); - map.put("GAGTATAATAATA", new TLongArrayList(new long[] {119, 67321052l, 75742258l, 81710821l, 96407916l, 99585905l, 104099171l, 110675025l, 161045997l, 197264177l, 2774027846l})); - map.put("AGTATAATAATAA", new TLongArrayList(new long[] {-9223372036854767985l})); - map.put("GTATAATAATAAT", new TLongArrayList(new long[] {-9223372036854770339l})); - map.put("TATAATAATAATA", new TLongArrayList(new long[] {-9223372036854769130l})); - map.put("ATAATAATAATAA", new TLongArrayList(new long[] {-9223372036854725005l})); - map.put("TAATAATAATAAT", new TLongArrayList(new long[] {-9223372036854735632l})); - map.put("AATAATAATAATA", new TLongArrayList(new long[] {-9223372036854727213l})); + map.put("CATGTATCCAAGA", new TLongArrayList(new long[] {100, 114656855L, 181950606L, 196080513L, 2774027828L})); + map.put("ATGTATCCAAGAA" , new TLongArrayList(new long[] {101, 80247690L, 181950607L, 185553130L, 2774027829L})); + map.put("TGTATCCAAGAAC" , new TLongArrayList(new long[] {102, 238834251L, 279169995L, 282711716L, 2774027830L})); + map.put("GTATCCAAGAACT", new TLongArrayList(new long[] {103, 238834252L, 279169996L, 282711717L, 299667250L, 2774027831L})); + map.put("TATCCAAGAACTT", new TLongArrayList(new long[] {104, 181950610L, 204821238L, 222907003L, 238834253L, 246623495L, 2774027832L})); + map.put("ATCCAAGAACTTA", new TLongArrayList(new long[] {105, 164272699L, 181950611L, 203930611L, 222907004L, 237552832L, 2774027833L})); + map.put("TCCAAGAACTTAA", new TLongArrayList(new long[] {1000, 88407160L, 99460658L, 158795514L, 170756687L, 181950612L, 279169999L})); + map.put("CCAAGAACTTAAG", new TLongArrayList(new long[] {1001, 61608511L, 71349155L, 231400300L, 280669706L, 398256597L, 421249998L})); + map.put("CAAGAACTTAAGA", new TLongArrayList(new long[] {1002, 61608512L, 280669707L, 348473245L, 355394324L, 441803741L, 449436395L})); + map.put("AAGAACTTAAGAG", new TLongArrayList(new long[] {1003, 19081828L, 39044042L, 61608513L, 79036778L, 90584581L, 167079856L, 176026406L})); + map.put("AGAACTTAAGAGT", new TLongArrayList(new long[] {1004, 18246342L, 23314256L, 32545968L, 69919991L, 79036779L, 103325700L, 176026407L,})); + map.put("GAACTTAAGAGTA", new TLongArrayList(new long[] {1005, 4424875L, 69919992L, 88876767L, 103325701L, 118373358L, 169517582L, 254945076L, 323106078L})); + map.put("AACTTAAGAGTAT", new TLongArrayList(new long[] {1006, 4424876L, 68273695L, 77064653L, 97968633L, 103325702L, 114330607L, 142664087L, 142886981L})); + map.put("ACTTAAGAGTATA", new TLongArrayList(new long[] {1007, 54281547L, 66100746L, 73307108L, 97968634L, 103325703L, 114330608L, 170070537L, 193470526L})); + map.put("CTTAAGAGTATAA", new TLongArrayList(new long[] {1008, 29509758L, 66100747L, 78637871L, 103325704L, 114330609L, 170070538L, 220174021L, 262032278L})); + map.put("TTAAGAGTATAAT", new TLongArrayList(new long[] {1009, 31751995L, 57409485L, 74230190L, 78637872L, 92657418L, 93524067L, 99386567L, 109184501L, 159364553L})); + map.put("TAAGAGTATAATA", new TLongArrayList(new long[] {1010, 14330001L, 87721104L, 92657419L, 112260154L, 119980130L, 159364554L, 178226658L, 187884060L, 195686065L})); + map.put("AAGAGTATAATAA", new TLongArrayList(new long[] {1011, 25517070L, 92657420L, 119980131L, 121271910L, 158198921L, 159364555L, 178226659L, 187884061L, 197251084L})); + map.put("AGAGTATAATAAT", new TLongArrayList(new long[] {1012, 25517071L, 81710820L, 96407915L, 96530666L, 104099170L, 110675024L, 116533032L, 159364556L, 195615394L})); + map.put("GAGTATAATAATA", new TLongArrayList(new long[] {119, 67321052L, 75742258L, 81710821L, 96407916L, 99585905L, 104099171L, 110675025L, 161045997L, 197264177L, 2774027846L})); + map.put("AGTATAATAATAA", new TLongArrayList(new long[] {-9223372036854767985L})); + map.put("GTATAATAATAAT", new TLongArrayList(new long[] {-9223372036854770339L})); + map.put("TATAATAATAATA", new TLongArrayList(new long[] {-9223372036854769130L})); + map.put("ATAATAATAATAA", new TLongArrayList(new long[] {-9223372036854725005L})); + map.put("TAATAATAATAAT", new TLongArrayList(new long[] {-9223372036854735632L})); + map.put("AATAATAATAATA", new TLongArrayList(new long[] {-9223372036854727213L})); Map map2 = TiledAlignerUtil.getTiles(map, "CATGTATCCAAGAACTTAAGAGTATAATAATAATAATA", 13, false); - assertEquals(false, map2.isEmpty()); + assertFalse(map2.isEmpty()); for (Entry entry : map2.entrySet()) { System.out.println("key: " + Arrays.toString(NumberUtils.splitIntInto2(entry.getKey())) + ", values : " + entry.getValue().get(0)); @@ -237,8 +233,8 @@ public void getBestStartPositionInsertion() { /* * need 1000 plus 6 << 40 */ - assertArrayEquals(new long[] {NumberUtils.addShortToLong(1000l, (short)6, 40)}, map2.get(NumberUtils.getTileCount(13, 0)).toArray()); - assertArrayEquals(new long[] {2774027828l}, map2.get(NumberUtils.getTileCount(6, 0)).toArray()); + assertArrayEquals(new long[] {NumberUtils.addShortToLong(1000L, (short)6, 40)}, map2.get(NumberUtils.getTileCount(13, 0)).toArray()); + assertArrayEquals(new long[] {2774027828L}, map2.get(NumberUtils.getTileCount(6, 0)).toArray()); assertArrayEquals(new long[] {100}, map2.get(NumberUtils.getTileCount(26, 1)).toArray()); //hmmm } @@ -246,30 +242,30 @@ public void getBestStartPositionInsertion() { public void getBEstStartPosition4() { Map map = new HashMap<>(); - map.put("CTCCCTCCCCCTT", new TLongArrayList(new long[] {28243215l, 29254156l, 30162757l, 38596251l, 41564418l, 44911182l, 55301918l, 76500408l, 85049615l, 151674811l, 157106709l, 158684652l, 165408586l, 168230579l, 187601278l, 198416753l, 206861903l, 207269239l, 230461527l, 233152101l, 245505214l, 255000936l, 259756366l, 265331196l, 267518578l, 272783448l, 275351641l, 281313215l, 282391773l, 282391840l, 288412213l, 288412278l, 288412297l, 288965701l, 304422980l, 304423010l, 309750206l, 315848255l, 323737499l, 346603482l, 374917904l, 383596499l, 395677111l, 408868975l, 410697724l, 411460690l, 422901143l, 425524617l, 436986460l, 447720516l, 455934648l, 469721791l, 470562099l, 483949620l, 483949805l, 486687273l, 487315425l, 487898614l, 497345587l, 498459249l, 525468144l, 538378347l, 542278373l, 547741946l, 550845781l, 553100158l, 554856892l, 556331859l, 563563336l, 566124456l, 574364216l, 580980086l, 608956093l, 612994856l, 618428951l, 636044587l, 638732655l, 647876723l, 651940301l, 661032091l, 670459526l, 679329464l, 691959820l, 697586849l, 744382935l, 745789080l, 747187814l, 766282058l, 768445695l, 777703691l, 780408910l, 817310066l, 821770918l, 825106104l, 831529482l, 844822946l, 845016820l, 849399747l, 859933540l, 862659755l, 862930394l, 878120288l, 913344347l, 919215319l, 939666078l, 957288819l, 963862413l, 976297620l, 976871201l, 1006192911l, 1021612362l, 1031936399l, 1039363787l, 1055374404l, 1055374534l, 1059461021l, 1060949644l, 1067773100l, 1072347420l, 1083823931l, 1094732693l, 1095525534l, 1095936332l, 1105816084l, 1107233157l, 1108434072l, 1109641446l, 1115606787l, 1119512351l, 1126920198l, 1153827012l, 1156194285l, 1162861632l, 1164926389l, 1171547958l, 1187340806l, 1199953393l, 1208210460l, 1209910785l, 1230031630l, 1232233006l, 1233734109l, 1244801407l, 1252844355l, 1259898382l, 1289783633l, 1290238625l, 1296665020l, 1300758829l, 1306945472l, 1311054135l, 1326302382l, 1334541861l, 1350231883l, 1350383119l, 1376842253l, 1388028925l, 1388028955l, 1401690151l, 1406908297l, 1408527065l, 1410004200l, 1412924916l, 1414442092l, 1425582639l, 1491802785l, 1510380237l, 1516786112l, 1524662833l, 1546363294l, 1548300922l, 1560252446l, 1562539236l, 1563768664l, 1566910342l, 1568116290l, 1568116334l, 1571622001l, 1574557039l, 1576446551l, 1578369359l, 1579712719l, 1619494168l, 1621062733l, 1634423851l, 1636425681l, 1669120266l, 1669642860l, 1671324732l, 1679844684l, 1680990572l, 1683812541l, 1700363847l, 1704420730l, 1714271783l, 1749065008l, 1755789055l, 1761261042l, 1769099968l, 1777210700l, 1781509889l, 1782786899l, 1784776746l, 1811305642l, 1817616141l, 1821236766l, 1823350719l, 1830655015l, 1831872541l, 1859510239l, 1874061289l, 1874848340l, 1876600550l, 1876744364l, 1881707111l, 1885876621l, 1902108742l, 1916937984l, 1920168407l, 1927272494l, 1934895471l, 1938339462l, 1953011451l, 1961214724l, 1963212868l, 1972929720l, 1978529661l, 1984331808l, 1996968883l, 2034617197l, 2064719014l, 2064829119l, 2073371922l, 2077380727l, 2103923284l, 2134283185l, 2168720992l, 2168721046l, 2180569043l, 2196939945l, 2221434853l, 2248069804l, 2254892369l, 2276429835l, 2276501229l, 2276941619l, 2277325304l, 2280142670l, 2286867300l, 2292959541l, 2296330251l, 2297556836l, 2300689917l, 2335409865l, 2345829897l, 2351774703l, 2353929972l, 2359389310l, 2381746430l, 2388115088l, 2391472372l, 2396056704l, 2419855386l, 2420429938l, 2426982874l, 2441141802l, 2456470368l, 2458553723l, 2458564994l, 2460070694l, 2469291801l, 2479675536l, 2481024676l, 2484584445l, 2484850581l, 2487295251l, 2489155268l, 2496722564l, 2502780789l, 2507962582l, 2513718358l, 2531197182l, 2531734125l, 2537954810l, 2546874483l, 2558865042l, 2570878974l, 2576535269l, 2577032313l, 2577938891l, 2578210871l, 2581269227l, 2590471778l, 2590473257l, 2616525460l, 2619018161l, 2628063616l, 2629402468l, 2634419328l, 2637901613l, 2643061598l, 2646372396l, 2660655815l, 2660934400l, 2661114332l, 2674035947l, 2675350342l, 2690350477l, 2690744812l, 2701362550l, 2710910718l, 2712904334l, 2728068679l, 2729012463l, 2734044145l, 2748676824l, 2750027861l, 2750829863l, 2757768765l, 2767227572l, 2770933976l, 2776564595l, 2780416687l, 2780871193l, 2796182266l, 2819037442l, 2847343287l, 2858936959l, 2864822622l, 2871995787l, 2873219285l, 2874961439l})); - map.put("TCCCTCCCCCTTC", new TLongArrayList(new long[] {-9223372036854775130l})); - map.put("CCCTCCCCCTTCT", new TLongArrayList(new long[] {2956006l, 10962749l, 17785216l, 19680922l, 19998768l, 23051516l, 25955240l, 29254158l, 44371063l, 44911184l, 88115284l, 108593696l, 112604919l, 117739934l, 151806922l, 152541097l, 155857748l, 156041861l, 156400746l, 171454803l, 174529856l, 218496945l, 219300424l, 222077231l, 230461529l, 233152103l, 253589800l, 280660789l, 280992652l, 288412196l, 288412261l, 288412280l, 296453417l, 304422952l, 304422982l, 304423012l, 327116087l, 352655819l, 363699691l, 373149232l, 376860645l, 386827627l, 410697648l, 417911599l, 420461746l, 429527675l, 458478510l, 466759352l, 466996163l, 469116048l, 489119077l, 490826834l, 515695156l, 521333180l, 550553006l, 553100160l, 595168835l, 608956095l, 612808046l, 622805885l, 637025462l, 670459528l, 677321481l, 689546743l, 691579421l, 692231933l, 697217666l, 701642360l, 706931781l, 717525020l, 765192106l, 766282060l, 768445697l, 819181994l, 829684768l, 829853586l, 829872609l, 831529484l, 835245642l, 848392771l, 859933542l, 864916402l, 889559932l, 937366899l, 954096987l, 959074544l, 963862415l, 970551394l, 974309252l, 976694549l, 1003887658l, 1006192913l, 1012993978l, 1018407550l, 1023270347l, 1036292428l, 1050900559l, 1054824883l, 1072347422l, 1074080912l, 1083602108l, 1101013045l, 1124871127l, 1131713543l, 1135121145l, 1162808352l, 1168577833l, 1171423952l, 1180284537l, 1186850885l, 1199953395l, 1219319418l, 1221926421l, 1225563744l, 1232088837l, 1238271113l, 1255100340l, 1279046539l, 1311054124l, 1331567289l, 1376514474l, 1400182448l, 1404158766l, 1414442094l, 1414728511l, 1415653529l, 1419192199l, 1421543704l, 1441033254l, 1444014301l, 1454354827l, 1461288109l, 1473218086l, 1510380239l, 1517992721l, 1523288196l, 1530839592l, 1548300924l, 1558398188l, 1563768666l, 1566910344l, 1571883583l, 1574091328l, 1606829239l, 1617062124l, 1637192951l, 1639906786l, 1647139070l, 1662562850l, 1664284811l, 1679844686l, 1681980733l, 1691782301l, 1709824133l, 1716364296l, 1718391372l, 1725754993l, 1745248876l, 1755789057l, 1765824756l, 1773461201l, 1775477305l, 1781509891l, 1783264288l, 1785804471l, 1795329159l, 1811305644l, 1818349239l, 1834722438l, 1853390677l, 1859510241l, 1881076999l, 1882279640l, 1885876623l, 1895957305l, 1910411654l, 1927076145l, 1961214726l, 1961282598l, 1963212870l, 2003637612l, 2007239206l, 2016657235l, 2040688597l, 2044265977l, 2046052977l, 2055315478l, 2064422763l, 2065758395l, 2113478933l, 2119753736l, 2152564797l, 2194176269l, 2221434855l, 2233605091l, 2248069806l, 2254676784l, 2256924274l, 2281750254l, 2292959543l, 2302184628l, 2303273751l, 2304766883l, 2304987581l, 2305610698l, 2336344663l, 2350012451l, 2353929974l, 2377677629l, 2381297454l, 2391472374l, 2396778572l, 2402534574l, 2411783441l, 2415851309l, 2424838796l, 2424838826l, 2428283481l, 2430993989l, 2431346940l, 2434230422l, 2439440210l, 2441500508l, 2458553725l, 2458564996l, 2472640954l, 2480325521l, 2481024678l, 2498877312l, 2499715310l, 2502853048l, 2503648437l, 2507962584l, 2531814860l, 2545528535l, 2558277708l, 2558849520l, 2560963967l, 2566721250l, 2567933404l, 2575970666l, 2577848813l, 2579180609l, 2579453226l, 2608651381l, 2616515948l, 2619061261l, 2621153400l, 2622862318l, 2632125629l, 2636113035l, 2654236930l, 2656191589l, 2658943472l, 2661114334l, 2661781418l, 2690350479l, 2690622202l, 2707728021l, 2710117064l, 2710279063l, 2710936836l, 2714874298l, 2728068681l, 2730340765l, 2750027863l, 2755235509l, 2757335808l, 2773923473l, 2805865887l, 2847343289l, 2885103648l, 2903045338l, 2908838279l, 2916984602l, 2921763523l, 2958819231l, 2959053267l, 2962072583l, 2962191356l, 2969861216l, 2985036408l, 2997603354l, 2998586425l, 3004166571l, 3010177975l, 3019778233l, 3023695460l, 3030689679l, 3039400872l, 3039576217l, 3050817534l, 3050914471l})); - map.put("CCTCCCCCTTCTT", new TLongArrayList(new long[] {2956007l, 3708009l, 7112016l, 19122619l, 22432923l, 29254159l, 32950336l, 44877616l, 44911185l, 73856438l, 82385081l, 100992735l, 108593697l, 112604920l, 151806923l, 156041862l, 171454804l, 219300425l, 225623425l, 230262984l, 234017409l, 234946942l, 275654472l, 280660790l, 310660245l, 317285621l, 325829068l, 367141071l, 381553636l, 383603558l, 386827628l, 420461747l, 428279277l, 446135295l, 474814672l, 515695157l, 550553007l, 553100161l, 580749286l, 587340264l, 590079604l, 608956096l, 609584445l, 621362214l, 645961520l, 682247506l, 682490661l, 693833479l, 697217667l, 703680468l, 705333202l, 706858781l, 706931782l, 717156846l, 718888555l, 722849311l, 735633377l, 812768956l, 823941065l, 864916403l, 883945918l, 889559933l, 891978129l, 913285342l, 917507145l, 937366900l, 948132488l, 996365399l, 1006192914l, 1012993979l, 1036292429l, 1046074478l, 1064365830l, 1081861493l, 1113332203l, 1135121146l, 1148725174l, 1162808353l, 1186850886l, 1221926422l, 1232088838l, 1238901448l, 1262790113l, 1265369600l, 1279046540l, 1306594069l, 1307378410l, 1392167283l, 1414728512l, 1430012778l, 1441033255l, 1453885932l, 1510380240l, 1511577583l, 1517992722l, 1528522567l, 1537219727l, 1574091329l, 1606829240l, 1637192952l, 1639906787l, 1647139071l, 1648051966l, 1648095300l, 1651089303l, 1652731647l, 1658360398l, 1679844687l, 1727501971l, 1764394863l, 1781509892l, 1795329160l, 1813657561l, 1852071519l, 1874266384l, 1874293682l, 1882279641l, 1895957306l, 1910411655l, 1959681570l, 1967970368l, 1994496313l, 2003637613l, 2007239207l, 2036627598l, 2050658348l, 2070584248l, 2074333914l, 2080422302l, 2127550150l, 2138306146l, 2233605092l, 2296460899l, 2302184629l, 2349687840l, 2350012452l, 2370384224l, 2380959482l, 2381782118l, 2385779698l, 2386016342l, 2401820609l, 2414503350l, 2415851310l, 2426692465l, 2436223357l, 2440314375l, 2458553726l, 2458564997l, 2487085817l, 2498877313l, 2500620318l, 2502853049l, 2503648438l, 2533872701l, 2546763185l, 2554143135l, 2567933405l, 2642758437l, 2703717395l, 2706555756l, 2710279064l, 2722789396l, 2735880957l, 2750027864l, 2757335809l, 2815781267l, 2820846524l, 2863346621l, 2870452282l, 2881445647l, 2898734062l, 2908838280l, 2916984603l, 2918805599l, 2921877268l, 2955101075l, 2957339912l, 2959053268l, 3010177976l, 3012812378l, 3020963013l, 3036666207l})); - map.put("CTCCCCCTTCTTT", new TLongArrayList(new long[] {3708010l, 29254160l, 32950337l, 40107358l, 44877617l, 44911186l, 44973554l, 86627755l, 88061418l, 108593698l, 114784490l, 150605718l, 153703261l, 155599469l, 156738306l, 156816159l, 159774107l, 164662765l, 171454805l, 182158710l, 207811456l, 219300426l, 225623426l, 267864202l, 293274747l, 293592155l, 304761288l, 379973164l, 380713853l, 381553637l, 382679755l, 386827629l, 415294110l, 420461748l, 470240050l, 481242408l, 482501422l, 495539712l, 498603214l, 502342366l, 519919429l, 538791056l, 590079605l, 605196123l, 614853471l, 621362215l, 645961521l, 674711752l, 677733342l, 680847914l, 681982862l, 682490662l, 693833480l, 706858782l, 718888556l, 728169991l, 747174016l, 812637823l, 823941066l, 839336205l, 842581562l, 843667645l, 864916404l, 869341488l, 869534631l, 892530898l, 912116756l, 913285343l, 923138078l, 927629852l, 937366901l, 948263266l, 994050633l, 996365400l, 1017376709l, 1037714429l, 1046074479l, 1055216410l, 1061449232l, 1064365831l, 1101027401l, 1104816003l, 1140971915l, 1142143529l, 1171423583l, 1185393128l, 1196259109l, 1238282388l, 1238290892l, 1282039120l, 1306642629l, 1338002984l, 1390923305l, 1399399152l, 1400154391l, 1412619219l, 1420085446l, 1425898381l, 1450747292l, 1494899884l, 1511577584l, 1516712309l, 1517992723l, 1574091330l, 1641815329l, 1674009987l, 1679844688l, 1687242586l, 1690213614l, 1714470063l, 1740686627l, 1764394864l, 1795329161l, 1817926668l, 1818028443l, 1847607451l, 1874266385l, 1874293683l, 1895957307l, 1908935191l, 1910411656l, 1934502620l, 1934675781l, 1940478700l, 1967970369l, 1982326913l, 2009638949l, 2022084982l, 2050658349l, 2080422303l, 2107107666l, 2138306147l, 2159870748l, 2219330463l, 2296460900l, 2302614507l, 2350012453l, 2367748930l, 2370384225l, 2381843055l, 2390628772l, 2458553727l, 2458564998l, 2477730405l, 2527497397l, 2550645988l, 2554143136l, 2564436853l, 2582004519l, 2601032332l, 2608852833l, 2616052019l, 2680713921l, 2687576151l, 2690366284l, 2695510006l, 2697045156l, 2701353838l, 2722789397l, 2750217238l, 2757335810l, 2801534781l, 2815781268l, 2870452283l, 2881445648l, 2921759074l, 2921877269l, 2971856901l, 2994345715l, 3020963014l, 3036666208l, 3040981750l})); - map.put("TCCCCCTTCTTTC", new TLongArrayList(new long[] {3708011l, 9007316l, 15607756l, 17541863l, 20287502l, 29254161l, 32950338l, 48022181l, 52047113l, 88061419l, 94982589l, 102436064l, 114784491l, 156739710l, 156816160l, 164662766l, 167965427l, 171454806l, 182158711l, 200112562l, 235693466l, 263203716l, 268807892l, 305656168l, 315208483l, 339176069l, 348493054l, 359769826l, 366007383l, 382679756l, 420461749l, 428333965l, 446907434l, 468118978l, 486461282l, 498603215l, 511336918l, 516839879l, 519919430l, 521740779l, 573600414l, 620568912l, 646230702l, 678700268l, 681982863l, 682490663l, 693833481l, 706425030l, 706858783l, 715889493l, 718888557l, 728169992l, 760219824l, 760332861l, 765095406l, 771032561l, 776713168l, 802012943l, 839336206l, 842581563l, 845307317l, 864916405l, 892530899l, 936136724l, 984678888l, 1022714637l, 1026457879l, 1046074480l, 1059990166l, 1067008980l, 1088693569l, 1101027402l, 1133032170l, 1142143530l, 1154879094l, 1160352283l, 1165025921l, 1171423584l, 1182756801l, 1185393129l, 1271305376l, 1276221263l, 1278539366l, 1305865367l, 1306642630l, 1320978071l, 1372489594l, 1399399153l, 1413948811l, 1425898382l, 1450747293l, 1470055485l, 1472834528l, 1483085628l, 1501920981l, 1509777114l, 1511577585l, 1517992724l, 1522608701l, 1533881459l, 1543238417l, 1549016479l, 1555768104l, 1560133801l, 1560133993l, 1560134185l, 1560134377l, 1574091331l, 1621376305l, 1625240085l, 1633371467l, 1662503976l, 1663249524l, 1669059665l, 1670254424l, 1674009988l, 1685178369l, 1692777154l, 1714470064l, 1753926606l, 1764394865l, 1778593512l, 1784328774l, 1817926669l, 1818028444l, 1820014240l, 1847607452l, 1860841400l, 1863856060l, 1880902940l, 1895957308l, 1924612426l, 1940478701l, 1954911693l, 1963986228l, 1978130730l, 1994107670l, 1995007366l, 1995013975l, 2003385609l, 2041218536l, 2050658350l, 2082065104l, 2107107667l, 2138306148l, 2146756583l, 2225579942l, 2250091428l, 2264360714l, 2298318327l, 2341209842l, 2344593924l, 2370384226l, 2381843056l, 2400354824l, 2415285778l, 2420406506l, 2458553728l, 2458564999l, 2461936002l, 2469819604l, 2479775654l, 2491325044l, 2527497398l, 2534165404l, 2545221535l, 2554143137l, 2567933567l, 2582416100l, 2616052020l, 2621083514l, 2624843546l, 2641881520l, 2650038607l, 2650286892l, 2656635481l, 2690366285l, 2702741460l, 2722789398l, 2730117406l, 2748637501l, 2752524084l, 2754367483l, 2763876240l, 2820272292l, 2876204307l, 2884379000l, 2962373796l, 2962717625l, 2966531132l, 2968085740l, 2988464494l, 2998434273l, 3002461167l, 3021636519l, 3032311803l, 3059119149l})); - map.put("CCCCCTTCTTTCT", new TLongArrayList(new long[] {3708012l, 10952796l, 15607757l, 16436389l, 20287503l, 32950339l, 36172258l, 38982091l, 48022182l, 59689197l, 92627547l, 114784492l, 154862088l, 156816161l, 167965428l, 172056453l, 212355275l, 235693467l, 245344504l, 263203717l, 267010981l, 268807893l, 277894450l, 305656169l, 306789735l, 312012406l, 315208484l, 339176070l, 348493055l, 359769827l, 362059153l, 366007384l, 396704303l, 428333966l, 442608092l, 468118979l, 508858118l, 520641201l, 521740780l, 538582522l, 548406555l, 563524016l, 573600415l, 599667807l, 620568913l, 646230703l, 676040592l, 681982864l, 699024748l, 706858784l, 715889494l, 718888558l, 728169993l, 738643597l, 745883229l, 760219825l, 760332862l, 776713169l, 791229910l, 814733142l, 842581564l, 864916406l, 914154496l, 936136725l, 943982938l, 945981058l, 1026006323l, 1026457880l, 1049824122l, 1059990167l, 1067008981l, 1071119266l, 1101027403l, 1104617462l, 1113075145l, 1133032171l, 1154879095l, 1162334258l, 1171423585l, 1182756802l, 1185393130l, 1256262433l, 1271426787l, 1276221264l, 1320978072l, 1323949504l, 1364607154l, 1365997200l, 1374782496l, 1389374312l, 1399399154l, 1413948812l, 1467897133l, 1480838879l, 1483085629l, 1489223951l, 1489981993l, 1501919929l, 1507366940l, 1511577586l, 1520955176l, 1549016480l, 1555768105l, 1563643544l, 1611758732l, 1629473871l, 1633371468l, 1659374130l, 1662503977l, 1663664931l, 1668019300l, 1668708186l, 1670254425l, 1692777155l, 1705558023l, 1707614020l, 1714470065l, 1753926607l, 1764394866l, 1820014241l, 1849975823l, 1850595927l, 1860841401l, 1924612427l, 1932283463l, 1950174831l, 1954911694l, 1955050643l, 1959607321l, 1960854085l, 1963986229l, 1978130731l, 1994107671l, 1995007367l, 1995013976l, 2003385610l, 2017385996l, 2045459448l, 2050658351l, 2064147694l, 2082065105l, 2138306149l, 2138980234l, 2160920022l, 2181968846l, 2227166354l, 2252243702l, 2276452218l, 2370384227l, 2375593061l, 2382794240l, 2396562794l, 2418773884l, 2439942378l, 2458553729l, 2458565000l, 2469819605l, 2491325045l, 2514722808l, 2532208838l, 2534165405l, 2545221536l, 2554143138l, 2582416101l, 2616052021l, 2616397466l, 2624843547l, 2641881521l, 2642071849l, 2650038608l, 2650286893l, 2656635482l, 2661165261l, 2673037965l, 2698982384l, 2711801349l, 2714347694l, 2722789399l, 2752524085l, 2779052787l, 2821815597l, 2862905706l, 2870680160l, 2876204308l, 2882912353l, 2884379001l, 2904242778l, 2962717626l, 2966531133l, 2998434274l, 3002461168l, 3010602165l, 3021636520l, 3038132913l, 3059119150l})); - map.put("CCCCTTCTTTCTT", new TLongArrayList(new long[] {3059988l, 10952797l, 15607758l, 20287504l, 36172259l, 38701411l, 49099510l, 59689198l, 59918423l, 60930288l, 63533303l, 68722643l, 92627548l, 114784493l, 114791663l, 116660483l, 119822714l, 154862089l, 156149872l, 167965429l, 170506198l, 197780276l, 200422203l, 204255975l, 212355276l, 218727551l, 238728032l, 245344505l, 253253295l, 263160814l, 267010982l, 269571806l, 270389279l, 277086637l, 287392283l, 291109409l, 303921671l, 305643639l, 305656170l, 322884244l, 339176071l, 362059154l, 365680815l, 367856790l, 377595746l, 378691402l, 387364497l, 389675386l, 390554454l, 396704304l, 399867957l, 412535479l, 422418560l, 428333967l, 429077934l, 433514430l, 434643569l, 435429255l, 456937955l, 458474956l, 459944061l, 464050807l, 468118980l, 477579973l, 488040394l, 503880194l, 506008694l, 506497369l, 508858119l, 513286932l, 523794918l, 530174748l, 538582523l, 548406556l, 552875581l, 561197622l, 563524017l, 574894143l, 590542956l, 594508295l, 599667808l, 613149951l, 618429743l, 635300320l, 640721668l, 646230704l, 649560656l, 651033439l, 656676266l, 658537743l, 670841664l, 681704323l, 682265339l, 683502494l, 683645289l, 698400883l, 699024749l, 700838234l, 715889495l, 718888559l, 749342474l, 779828778l, 797140529l, 829074580l, 834849584l, 839425676l, 849224797l, 851010284l, 872743429l, 885990112l, 885990160l, 890187665l, 892539132l, 902723132l, 904147782l, 908806597l, 914154497l, 936136726l, 943673180l, 945981059l, 948734341l, 959738436l, 963155182l, 990484302l, 1016023682l, 1026006324l, 1028912598l, 1035624529l, 1049121321l, 1049824123l, 1066975460l, 1071119267l, 1081108490l, 1091839054l, 1107073334l, 1109627892l, 1115319296l, 1125695726l, 1133032172l, 1145365985l, 1146562731l, 1154879096l, 1162808312l, 1165638442l, 1170187761l, 1170823586l, 1190525838l, 1192197869l, 1192957339l, 1218228516l, 1221537651l, 1240807782l, 1249990605l, 1267000169l, 1287016360l, 1306509394l, 1323949505l, 1324524261l, 1325304131l, 1325675790l, 1336450224l, 1336760857l, 1342100723l, 1346692040l, 1351626853l, 1357184879l, 1360410016l, 1364607155l, 1374782497l, 1387212251l, 1399350879l, 1399399155l, 1413948813l, 1418600897l, 1419288884l, 1421338573l, 1434968862l, 1467897134l, 1489223952l, 1489981994l, 1498359713l, 1502067180l, 1512537702l, 1518375553l, 1520955177l, 1521740594l, 1525393848l, 1531506663l, 1535512837l, 1538391226l, 1549016481l, 1552692196l, 1555768106l, 1583009094l, 1604750654l, 1614686690l, 1626504730l, 1641062946l, 1647889259l, 1659374131l, 1663664932l, 1668708187l, 1669848202l, 1672172109l, 1681225340l, 1684488832l, 1687645246l, 1691862639l, 1692777156l, 1694781323l, 1705558024l, 1707556400l, 1740462099l, 1771388965l, 1776381043l, 1785818825l, 1787412247l, 1802950737l, 1804229502l, 1809198057l, 1824925682l, 1825106223l, 1829471149l, 1829909776l, 1831662025l, 1849975824l, 1853570493l, 1861625641l, 1876691896l, 1876774146l, 1885205869l, 1885306877l, 1899291107l, 1905256383l, 1905761605l, 1919249880l, 1922169353l, 1926858470l, 1935052304l, 1944427413l, 1948472415l, 1949075809l, 1953276319l, 1959607322l, 1960854086l, 1971032284l, 1977121063l, 1978130732l, 1991822574l, 1992464167l, 1995007368l, 1995013977l, 1999411184l, 2005334103l, 2006399827l, 2019274450l, 2020242578l, 2022361928l, 2051778481l, 2061102714l, 2061923107l, 2071933241l, 2073907170l, 2076196550l, 2076276425l, 2110045414l, 2118278734l, 2154308109l, 2160920023l, 2221449057l, 2234826987l, 2239985918l, 2252027402l, 2252243703l, 2291676071l, 2296091936l, 2297457784l, 2297924997l, 2329681729l, 2333845249l, 2340861986l, 2343870069l, 2344342599l, 2374516555l, 2375593062l, 2396013586l, 2397266140l, 2415373851l, 2433069625l, 2462212080l, 2477165193l, 2483274039l, 2489833991l, 2495198700l, 2508532335l, 2514722809l, 2531508210l, 2532208839l, 2545141901l, 2546305282l, 2547349037l, 2550364427l, 2550833223l, 2579594739l, 2581111348l, 2600854462l, 2607269483l, 2610420266l, 2624843548l, 2642071850l, 2643808912l, 2650038609l, 2650334009l, 2656635483l, 2661311232l, 2669827534l, 2669827839l, 2671070586l, 2674551617l, 2676481746l, 2688217304l, 2694841601l, 2700891506l, 2700959429l, 2705190999l, 2706073993l, 2711801350l, 2712165801l, 2717018437l, 2723104231l, 2725189223l, 2727102359l, 2727855729l, 2734186874l, 2752337071l, 2752524086l, 2764604913l, 2770326744l, 2775036776l, 2779052788l})); - map.put("CCCTTCTTTCTTC", new TLongArrayList(new long[] {3059989l, 9041382l, 24654205l, 27165843l, 35741879l, 49099511l, 49289769l, 50985448l, 59918424l, 62996092l, 78642808l, 89099199l, 91177482l, 92823773l, 114791664l, 116869111l, 152040279l, 156857051l, 157940255l, 162884843l, 164899796l, 166815201l, 180798903l, 205218873l, 208917231l, 218727552l, 221550848l, 225746211l, 232435554l, 245400448l, 255418496l, 258544968l, 262327520l, 263160815l, 269571807l, 278910714l, 290622683l, 291199811l, 319379983l, 323858694l, 325163233l, 332707537l, 367856791l, 379147105l, 385596443l, 386827958l, 388996706l, 390121703l, 392608669l, 402747909l, 411974887l, 412997051l, 429858354l, 430906052l, 436659582l, 441686711l, 450117727l, 458163547l, 458474957l, 458743707l, 462455591l, 464050808l, 467833671l, 476778692l, 486990691l, 500799761l, 506008695l, 506497370l, 508858120l, 516893971l, 530174749l, 538582524l, 545488250l, 552174209l, 558144477l, 563035151l, 599170405l, 601607904l, 606659389l, 617458904l, 618429744l, 619988379l, 628210705l, 642649163l, 642920837l, 649351602l, 656676267l, 672557848l, 676311863l, 698975859l, 705071634l, 713185851l, 718888560l, 725549769l, 747067395l, 779828779l, 797140530l, 801265129l, 829074581l, 835268802l, 835389593l, 835492861l, 846422321l, 847776949l, 848227614l, 857444853l, 864928311l, 872743430l, 879554485l, 885990113l, 898114678l, 909994802l, 913037188l, 914154498l, 923008721l, 932926441l, 936136727l, 942951668l, 948734342l, 965000293l, 975242054l, 976159549l, 979543844l, 990484303l, 996513333l, 1000533668l, 1000584699l, 1005042698l, 1024646096l, 1026006325l, 1030790388l, 1034774502l, 1049824124l, 1071146067l, 1076369427l, 1076640524l, 1081108491l, 1081773917l, 1082432968l, 1095872846l, 1099786248l, 1103512821l, 1125695727l, 1135397953l, 1137119041l, 1141080806l, 1146049414l, 1157345969l, 1165638443l, 1170187762l, 1188007248l, 1193772535l, 1201825707l, 1214682183l, 1217719233l, 1221200569l, 1221833745l, 1231217678l, 1234899923l, 1237438823l, 1237994929l, 1244729974l, 1261028271l, 1264120432l, 1264931896l, 1266802000l, 1275483191l, 1276829365l, 1279424905l, 1280151286l, 1283209901l, 1290238864l, 1290238941l, 1306509395l, 1331306126l, 1341938775l, 1342100724l, 1356267123l, 1361075095l, 1374782498l, 1387212252l, 1388723623l, 1391601400l, 1393315116l, 1396959993l, 1399399156l, 1399512643l, 1414700765l, 1419288885l, 1420057079l, 1420528349l, 1421338574l, 1430063118l, 1434968863l, 1454344087l, 1467897135l, 1468547711l, 1485651574l, 1488771468l, 1489223953l, 1489417307l, 1489981995l, 1491472642l, 1498359714l, 1502067181l, 1506744081l, 1512537703l, 1522254053l, 1522543141l, 1525393849l, 1526870120l, 1539225895l, 1543760939l, 1546822778l, 1547193829l, 1550855793l, 1557064405l, 1569197502l, 1607962213l, 1608300307l, 1613100326l, 1614686691l, 1615010946l, 1629358474l, 1641062947l, 1656860433l, 1658390529l, 1658497055l, 1659374132l, 1659534993l, 1662332993l, 1663664933l, 1669848203l, 1673031121l, 1691536564l, 1693686605l, 1695866633l, 1696177462l, 1696872226l, 1740462100l, 1753980626l, 1754732581l, 1771388966l, 1773062999l, 1776381044l, 1780030312l, 1783457653l, 1791057910l, 1804229503l, 1807616590l, 1808978446l, 1821369132l, 1821648439l, 1823549493l, 1824925683l, 1825771792l, 1843123649l, 1846638662l, 1857712826l, 1859125219l, 1861625642l, 1874809525l, 1875614524l, 1878270905l, 1882164683l, 1882591222l, 1892493754l, 1914980019l, 1918160479l, 1918865161l, 1922162547l, 1930949702l, 1941948021l, 1942253671l, 1948472416l, 1949075810l, 1960854087l, 1966067661l, 1966300430l, 1969816565l, 1977121064l, 1978130733l, 1999411185l, 2005203404l, 2005334104l, 2005976364l, 2011730432l, 2016434956l, 2019274451l, 2021597267l, 2022361929l, 2024686958l, 2032674257l, 2040065411l, 2043588585l, 2048747442l, 2050283093l, 2054281807l, 2061102715l, 2069183641l, 2071933242l, 2074770652l, 2110045415l, 2122644389l, 2132302631l, 2139401479l, 2156548454l, 2160920024l, 2221449058l, 2235087421l, 2235563558l, 2252027403l, 2272226263l, 2279729603l, 2297457785l, 2298969567l, 2299069822l, 2329227371l, 2330531114l, 2340151513l, 2344756448l, 2348656599l, 2359567448l, 2360827077l, 2377073165l, 2382938441l, 2386119587l, 2387443966l, 2410689161l, 2415877188l, 2423907446l, 2427689400l, 2443304050l, 2444269683l, 2462251107l, 2477165194l, 2490853702l, 2495198701l, 2504533604l, 2507635441l, 2512535787l, 2531508211l, 2535167646l, 2539594657l, 2542501879l, 2545009036l, 2547644710l, 2558998948l, 2559307080l, 2564770956l, 2572586453l, 2593499501l})); - map.put("CCTTCTTTCTTCC", new TLongArrayList(new long[] {-9223372036854775129l})); - map.put("CTTCTTTCTTCCT", new TLongArrayList(new long[] {-9223372036854774720l})); - map.put("TTCTTTCTTCCTC", new TLongArrayList(new long[] {-9223372036854774692l})); - map.put("TCTTTCTTCCTCC", new TLongArrayList(new long[] {-9223372036854775058l})); - map.put("CTTTCTTCCTCCT", new TLongArrayList(new long[] {-9223372036854775030l})); - map.put("TTTCTTCCTCCTT", new TLongArrayList(new long[] {-9223372036854774949l})); - map.put("TTCTTCCTCCTTC", new TLongArrayList(new long[] {-9223372036854774980l})); - map.put("TCTTCCTCCTTCC", new TLongArrayList(new long[] {-9223372036854774942l})); - map.put("CTTCCTCCTTCCC", new TLongArrayList(new long[] {-9223372036854774685l})); - map.put("TTCCTCCTTCCCT", new TLongArrayList(new long[] {-9223372036854774613l})); - map.put("TCCTCCTTCCCTC", new TLongArrayList(new long[] {-9223372036854774751l})); - map.put("CCTCCTTCCCTCC", new TLongArrayList(new long[] {-9223372036854773422l})); - map.put("CTCCTTCCCTCCT", new TLongArrayList(new long[] {-9223372036854774540l})); - map.put("TCCTTCCCTCCTT", new TLongArrayList(new long[] {-9223372036854773468l})); - map.put("CCTTCCCTCCTTC", new TLongArrayList(new long[] {-9223372036854773544l})); + map.put("CTCCCTCCCCCTT", new TLongArrayList(new long[] {28243215L, 29254156L, 30162757L, 38596251L, 41564418L, 44911182L, 55301918L, 76500408L, 85049615L, 151674811L, 157106709L, 158684652L, 165408586L, 168230579L, 187601278L, 198416753L, 206861903L, 207269239L, 230461527L, 233152101L, 245505214L, 255000936L, 259756366L, 265331196L, 267518578L, 272783448L, 275351641L, 281313215L, 282391773L, 282391840L, 288412213L, 288412278L, 288412297L, 288965701L, 304422980L, 304423010L, 309750206L, 315848255L, 323737499L, 346603482L, 374917904L, 383596499L, 395677111L, 408868975L, 410697724L, 411460690L, 422901143L, 425524617L, 436986460L, 447720516L, 455934648L, 469721791L, 470562099L, 483949620L, 483949805L, 486687273L, 487315425L, 487898614L, 497345587L, 498459249L, 525468144L, 538378347L, 542278373L, 547741946L, 550845781L, 553100158L, 554856892L, 556331859L, 563563336L, 566124456L, 574364216L, 580980086L, 608956093L, 612994856L, 618428951L, 636044587L, 638732655L, 647876723L, 651940301L, 661032091L, 670459526L, 679329464L, 691959820L, 697586849L, 744382935L, 745789080L, 747187814L, 766282058L, 768445695L, 777703691L, 780408910L, 817310066L, 821770918L, 825106104L, 831529482L, 844822946L, 845016820L, 849399747L, 859933540L, 862659755L, 862930394L, 878120288L, 913344347L, 919215319L, 939666078L, 957288819L, 963862413L, 976297620L, 976871201L, 1006192911L, 1021612362L, 1031936399L, 1039363787L, 1055374404L, 1055374534L, 1059461021L, 1060949644L, 1067773100L, 1072347420L, 1083823931L, 1094732693L, 1095525534L, 1095936332L, 1105816084L, 1107233157L, 1108434072L, 1109641446L, 1115606787L, 1119512351L, 1126920198L, 1153827012L, 1156194285L, 1162861632L, 1164926389L, 1171547958L, 1187340806L, 1199953393L, 1208210460L, 1209910785L, 1230031630L, 1232233006L, 1233734109L, 1244801407L, 1252844355L, 1259898382L, 1289783633L, 1290238625L, 1296665020L, 1300758829L, 1306945472L, 1311054135L, 1326302382L, 1334541861L, 1350231883L, 1350383119L, 1376842253L, 1388028925L, 1388028955L, 1401690151L, 1406908297L, 1408527065L, 1410004200L, 1412924916L, 1414442092L, 1425582639L, 1491802785L, 1510380237L, 1516786112L, 1524662833L, 1546363294L, 1548300922L, 1560252446L, 1562539236L, 1563768664L, 1566910342L, 1568116290L, 1568116334L, 1571622001L, 1574557039L, 1576446551L, 1578369359L, 1579712719L, 1619494168L, 1621062733L, 1634423851L, 1636425681L, 1669120266L, 1669642860L, 1671324732L, 1679844684L, 1680990572L, 1683812541L, 1700363847L, 1704420730L, 1714271783L, 1749065008L, 1755789055L, 1761261042L, 1769099968L, 1777210700L, 1781509889L, 1782786899L, 1784776746L, 1811305642L, 1817616141L, 1821236766L, 1823350719L, 1830655015L, 1831872541L, 1859510239L, 1874061289L, 1874848340L, 1876600550L, 1876744364L, 1881707111L, 1885876621L, 1902108742L, 1916937984L, 1920168407L, 1927272494L, 1934895471L, 1938339462L, 1953011451L, 1961214724L, 1963212868L, 1972929720L, 1978529661L, 1984331808L, 1996968883L, 2034617197L, 2064719014L, 2064829119L, 2073371922L, 2077380727L, 2103923284L, 2134283185L, 2168720992L, 2168721046L, 2180569043L, 2196939945L, 2221434853L, 2248069804L, 2254892369L, 2276429835L, 2276501229L, 2276941619L, 2277325304L, 2280142670L, 2286867300L, 2292959541L, 2296330251L, 2297556836L, 2300689917L, 2335409865L, 2345829897L, 2351774703L, 2353929972L, 2359389310L, 2381746430L, 2388115088L, 2391472372L, 2396056704L, 2419855386L, 2420429938L, 2426982874L, 2441141802L, 2456470368L, 2458553723L, 2458564994L, 2460070694L, 2469291801L, 2479675536L, 2481024676L, 2484584445L, 2484850581L, 2487295251L, 2489155268L, 2496722564L, 2502780789L, 2507962582L, 2513718358L, 2531197182L, 2531734125L, 2537954810L, 2546874483L, 2558865042L, 2570878974L, 2576535269L, 2577032313L, 2577938891L, 2578210871L, 2581269227L, 2590471778L, 2590473257L, 2616525460L, 2619018161L, 2628063616L, 2629402468L, 2634419328L, 2637901613L, 2643061598L, 2646372396L, 2660655815L, 2660934400L, 2661114332L, 2674035947L, 2675350342L, 2690350477L, 2690744812L, 2701362550L, 2710910718L, 2712904334L, 2728068679L, 2729012463L, 2734044145L, 2748676824L, 2750027861L, 2750829863L, 2757768765L, 2767227572L, 2770933976L, 2776564595L, 2780416687L, 2780871193L, 2796182266L, 2819037442L, 2847343287L, 2858936959L, 2864822622L, 2871995787L, 2873219285L, 2874961439L})); + map.put("TCCCTCCCCCTTC", new TLongArrayList(new long[] {-9223372036854775130L})); + map.put("CCCTCCCCCTTCT", new TLongArrayList(new long[] {2956006L, 10962749L, 17785216L, 19680922L, 19998768L, 23051516L, 25955240L, 29254158L, 44371063L, 44911184L, 88115284L, 108593696L, 112604919L, 117739934L, 151806922L, 152541097L, 155857748L, 156041861L, 156400746L, 171454803L, 174529856L, 218496945L, 219300424L, 222077231L, 230461529L, 233152103L, 253589800L, 280660789L, 280992652L, 288412196L, 288412261L, 288412280L, 296453417L, 304422952L, 304422982L, 304423012L, 327116087L, 352655819L, 363699691L, 373149232L, 376860645L, 386827627L, 410697648L, 417911599L, 420461746L, 429527675L, 458478510L, 466759352L, 466996163L, 469116048L, 489119077L, 490826834L, 515695156L, 521333180L, 550553006L, 553100160L, 595168835L, 608956095L, 612808046L, 622805885L, 637025462L, 670459528L, 677321481L, 689546743L, 691579421L, 692231933L, 697217666L, 701642360L, 706931781L, 717525020L, 765192106L, 766282060L, 768445697L, 819181994L, 829684768L, 829853586L, 829872609L, 831529484L, 835245642L, 848392771L, 859933542L, 864916402L, 889559932L, 937366899L, 954096987L, 959074544L, 963862415L, 970551394L, 974309252L, 976694549L, 1003887658L, 1006192913L, 1012993978L, 1018407550L, 1023270347L, 1036292428L, 1050900559L, 1054824883L, 1072347422L, 1074080912L, 1083602108L, 1101013045L, 1124871127L, 1131713543L, 1135121145L, 1162808352L, 1168577833L, 1171423952L, 1180284537L, 1186850885L, 1199953395L, 1219319418L, 1221926421L, 1225563744L, 1232088837L, 1238271113L, 1255100340L, 1279046539L, 1311054124L, 1331567289L, 1376514474L, 1400182448L, 1404158766L, 1414442094L, 1414728511L, 1415653529L, 1419192199L, 1421543704L, 1441033254L, 1444014301L, 1454354827L, 1461288109L, 1473218086L, 1510380239L, 1517992721L, 1523288196L, 1530839592L, 1548300924L, 1558398188L, 1563768666L, 1566910344L, 1571883583L, 1574091328L, 1606829239L, 1617062124L, 1637192951L, 1639906786L, 1647139070L, 1662562850L, 1664284811L, 1679844686L, 1681980733L, 1691782301L, 1709824133L, 1716364296L, 1718391372L, 1725754993L, 1745248876L, 1755789057L, 1765824756L, 1773461201L, 1775477305L, 1781509891L, 1783264288L, 1785804471L, 1795329159L, 1811305644L, 1818349239L, 1834722438L, 1853390677L, 1859510241L, 1881076999L, 1882279640L, 1885876623L, 1895957305L, 1910411654L, 1927076145L, 1961214726L, 1961282598L, 1963212870L, 2003637612L, 2007239206L, 2016657235L, 2040688597L, 2044265977L, 2046052977L, 2055315478L, 2064422763L, 2065758395L, 2113478933L, 2119753736L, 2152564797L, 2194176269L, 2221434855L, 2233605091L, 2248069806L, 2254676784L, 2256924274L, 2281750254L, 2292959543L, 2302184628L, 2303273751L, 2304766883L, 2304987581L, 2305610698L, 2336344663L, 2350012451L, 2353929974L, 2377677629L, 2381297454L, 2391472374L, 2396778572L, 2402534574L, 2411783441L, 2415851309L, 2424838796L, 2424838826L, 2428283481L, 2430993989L, 2431346940L, 2434230422L, 2439440210L, 2441500508L, 2458553725L, 2458564996L, 2472640954L, 2480325521L, 2481024678L, 2498877312L, 2499715310L, 2502853048L, 2503648437L, 2507962584L, 2531814860L, 2545528535L, 2558277708L, 2558849520L, 2560963967L, 2566721250L, 2567933404L, 2575970666L, 2577848813L, 2579180609L, 2579453226L, 2608651381L, 2616515948L, 2619061261L, 2621153400L, 2622862318L, 2632125629L, 2636113035L, 2654236930L, 2656191589L, 2658943472L, 2661114334L, 2661781418L, 2690350479L, 2690622202L, 2707728021L, 2710117064L, 2710279063L, 2710936836L, 2714874298L, 2728068681L, 2730340765L, 2750027863L, 2755235509L, 2757335808L, 2773923473L, 2805865887L, 2847343289L, 2885103648L, 2903045338L, 2908838279L, 2916984602L, 2921763523L, 2958819231L, 2959053267L, 2962072583L, 2962191356L, 2969861216L, 2985036408L, 2997603354L, 2998586425L, 3004166571L, 3010177975L, 3019778233L, 3023695460L, 3030689679L, 3039400872L, 3039576217L, 3050817534L, 3050914471L})); + map.put("CCTCCCCCTTCTT", new TLongArrayList(new long[] {2956007L, 3708009L, 7112016L, 19122619L, 22432923L, 29254159L, 32950336L, 44877616L, 44911185L, 73856438L, 82385081L, 100992735L, 108593697L, 112604920L, 151806923L, 156041862L, 171454804L, 219300425L, 225623425L, 230262984L, 234017409L, 234946942L, 275654472L, 280660790L, 310660245L, 317285621L, 325829068L, 367141071L, 381553636L, 383603558L, 386827628L, 420461747L, 428279277L, 446135295L, 474814672L, 515695157L, 550553007L, 553100161L, 580749286L, 587340264L, 590079604L, 608956096L, 609584445L, 621362214L, 645961520L, 682247506L, 682490661L, 693833479L, 697217667L, 703680468L, 705333202L, 706858781L, 706931782L, 717156846L, 718888555L, 722849311L, 735633377L, 812768956L, 823941065L, 864916403L, 883945918L, 889559933L, 891978129L, 913285342L, 917507145L, 937366900L, 948132488L, 996365399L, 1006192914L, 1012993979L, 1036292429L, 1046074478L, 1064365830L, 1081861493L, 1113332203L, 1135121146L, 1148725174L, 1162808353L, 1186850886L, 1221926422L, 1232088838L, 1238901448L, 1262790113L, 1265369600L, 1279046540L, 1306594069L, 1307378410L, 1392167283L, 1414728512L, 1430012778L, 1441033255L, 1453885932L, 1510380240L, 1511577583L, 1517992722L, 1528522567L, 1537219727L, 1574091329L, 1606829240L, 1637192952L, 1639906787L, 1647139071L, 1648051966L, 1648095300L, 1651089303L, 1652731647L, 1658360398L, 1679844687L, 1727501971L, 1764394863L, 1781509892L, 1795329160L, 1813657561L, 1852071519L, 1874266384L, 1874293682L, 1882279641L, 1895957306L, 1910411655L, 1959681570L, 1967970368L, 1994496313L, 2003637613L, 2007239207L, 2036627598L, 2050658348L, 2070584248L, 2074333914L, 2080422302L, 2127550150L, 2138306146L, 2233605092L, 2296460899L, 2302184629L, 2349687840L, 2350012452L, 2370384224L, 2380959482L, 2381782118L, 2385779698L, 2386016342L, 2401820609L, 2414503350L, 2415851310L, 2426692465L, 2436223357L, 2440314375L, 2458553726L, 2458564997L, 2487085817L, 2498877313L, 2500620318L, 2502853049L, 2503648438L, 2533872701L, 2546763185L, 2554143135L, 2567933405L, 2642758437L, 2703717395L, 2706555756L, 2710279064L, 2722789396L, 2735880957L, 2750027864L, 2757335809L, 2815781267L, 2820846524L, 2863346621L, 2870452282L, 2881445647L, 2898734062L, 2908838280L, 2916984603L, 2918805599L, 2921877268L, 2955101075L, 2957339912L, 2959053268L, 3010177976L, 3012812378L, 3020963013L, 3036666207L})); + map.put("CTCCCCCTTCTTT", new TLongArrayList(new long[] {3708010L, 29254160L, 32950337L, 40107358L, 44877617L, 44911186L, 44973554L, 86627755L, 88061418L, 108593698L, 114784490L, 150605718L, 153703261L, 155599469L, 156738306L, 156816159L, 159774107L, 164662765L, 171454805L, 182158710L, 207811456L, 219300426L, 225623426L, 267864202L, 293274747L, 293592155L, 304761288L, 379973164L, 380713853L, 381553637L, 382679755L, 386827629L, 415294110L, 420461748L, 470240050L, 481242408L, 482501422L, 495539712L, 498603214L, 502342366L, 519919429L, 538791056L, 590079605L, 605196123L, 614853471L, 621362215L, 645961521L, 674711752L, 677733342L, 680847914L, 681982862L, 682490662L, 693833480L, 706858782L, 718888556L, 728169991L, 747174016L, 812637823L, 823941066L, 839336205L, 842581562L, 843667645L, 864916404L, 869341488L, 869534631L, 892530898L, 912116756L, 913285343L, 923138078L, 927629852L, 937366901L, 948263266L, 994050633L, 996365400L, 1017376709L, 1037714429L, 1046074479L, 1055216410L, 1061449232L, 1064365831L, 1101027401L, 1104816003L, 1140971915L, 1142143529L, 1171423583L, 1185393128L, 1196259109L, 1238282388L, 1238290892L, 1282039120L, 1306642629L, 1338002984L, 1390923305L, 1399399152L, 1400154391L, 1412619219L, 1420085446L, 1425898381L, 1450747292L, 1494899884L, 1511577584L, 1516712309L, 1517992723L, 1574091330L, 1641815329L, 1674009987L, 1679844688L, 1687242586L, 1690213614L, 1714470063L, 1740686627L, 1764394864L, 1795329161L, 1817926668L, 1818028443L, 1847607451L, 1874266385L, 1874293683L, 1895957307L, 1908935191L, 1910411656L, 1934502620L, 1934675781L, 1940478700L, 1967970369L, 1982326913L, 2009638949L, 2022084982L, 2050658349L, 2080422303L, 2107107666L, 2138306147L, 2159870748L, 2219330463L, 2296460900L, 2302614507L, 2350012453L, 2367748930L, 2370384225L, 2381843055L, 2390628772L, 2458553727L, 2458564998L, 2477730405L, 2527497397L, 2550645988L, 2554143136L, 2564436853L, 2582004519L, 2601032332L, 2608852833L, 2616052019L, 2680713921L, 2687576151L, 2690366284L, 2695510006L, 2697045156L, 2701353838L, 2722789397L, 2750217238L, 2757335810L, 2801534781L, 2815781268L, 2870452283L, 2881445648L, 2921759074L, 2921877269L, 2971856901L, 2994345715L, 3020963014L, 3036666208L, 3040981750L})); + map.put("TCCCCCTTCTTTC", new TLongArrayList(new long[] {3708011L, 9007316L, 15607756L, 17541863L, 20287502L, 29254161L, 32950338L, 48022181L, 52047113L, 88061419L, 94982589L, 102436064L, 114784491L, 156739710L, 156816160L, 164662766L, 167965427L, 171454806L, 182158711L, 200112562L, 235693466L, 263203716L, 268807892L, 305656168L, 315208483L, 339176069L, 348493054L, 359769826L, 366007383L, 382679756L, 420461749L, 428333965L, 446907434L, 468118978L, 486461282L, 498603215L, 511336918L, 516839879L, 519919430L, 521740779L, 573600414L, 620568912L, 646230702L, 678700268L, 681982863L, 682490663L, 693833481L, 706425030L, 706858783L, 715889493L, 718888557L, 728169992L, 760219824L, 760332861L, 765095406L, 771032561L, 776713168L, 802012943L, 839336206L, 842581563L, 845307317L, 864916405L, 892530899L, 936136724L, 984678888L, 1022714637L, 1026457879L, 1046074480L, 1059990166L, 1067008980L, 1088693569L, 1101027402L, 1133032170L, 1142143530L, 1154879094L, 1160352283L, 1165025921L, 1171423584L, 1182756801L, 1185393129L, 1271305376L, 1276221263L, 1278539366L, 1305865367L, 1306642630L, 1320978071L, 1372489594L, 1399399153L, 1413948811L, 1425898382L, 1450747293L, 1470055485L, 1472834528L, 1483085628L, 1501920981L, 1509777114L, 1511577585L, 1517992724L, 1522608701L, 1533881459L, 1543238417L, 1549016479L, 1555768104L, 1560133801L, 1560133993L, 1560134185L, 1560134377L, 1574091331L, 1621376305L, 1625240085L, 1633371467L, 1662503976L, 1663249524L, 1669059665L, 1670254424L, 1674009988L, 1685178369L, 1692777154L, 1714470064L, 1753926606L, 1764394865L, 1778593512L, 1784328774L, 1817926669L, 1818028444L, 1820014240L, 1847607452L, 1860841400L, 1863856060L, 1880902940L, 1895957308L, 1924612426L, 1940478701L, 1954911693L, 1963986228L, 1978130730L, 1994107670L, 1995007366L, 1995013975L, 2003385609L, 2041218536L, 2050658350L, 2082065104L, 2107107667L, 2138306148L, 2146756583L, 2225579942L, 2250091428L, 2264360714L, 2298318327L, 2341209842L, 2344593924L, 2370384226L, 2381843056L, 2400354824L, 2415285778L, 2420406506L, 2458553728L, 2458564999L, 2461936002L, 2469819604L, 2479775654L, 2491325044L, 2527497398L, 2534165404L, 2545221535L, 2554143137L, 2567933567L, 2582416100L, 2616052020L, 2621083514L, 2624843546L, 2641881520L, 2650038607L, 2650286892L, 2656635481L, 2690366285L, 2702741460L, 2722789398L, 2730117406L, 2748637501L, 2752524084L, 2754367483L, 2763876240L, 2820272292L, 2876204307L, 2884379000L, 2962373796L, 2962717625L, 2966531132L, 2968085740L, 2988464494L, 2998434273L, 3002461167L, 3021636519L, 3032311803L, 3059119149L})); + map.put("CCCCCTTCTTTCT", new TLongArrayList(new long[] {3708012L, 10952796L, 15607757L, 16436389L, 20287503L, 32950339L, 36172258L, 38982091L, 48022182L, 59689197L, 92627547L, 114784492L, 154862088L, 156816161L, 167965428L, 172056453L, 212355275L, 235693467L, 245344504L, 263203717L, 267010981L, 268807893L, 277894450L, 305656169L, 306789735L, 312012406L, 315208484L, 339176070L, 348493055L, 359769827L, 362059153L, 366007384L, 396704303L, 428333966L, 442608092L, 468118979L, 508858118L, 520641201L, 521740780L, 538582522L, 548406555L, 563524016L, 573600415L, 599667807L, 620568913L, 646230703L, 676040592L, 681982864L, 699024748L, 706858784L, 715889494L, 718888558L, 728169993L, 738643597L, 745883229L, 760219825L, 760332862L, 776713169L, 791229910L, 814733142L, 842581564L, 864916406L, 914154496L, 936136725L, 943982938L, 945981058L, 1026006323L, 1026457880L, 1049824122L, 1059990167L, 1067008981L, 1071119266L, 1101027403L, 1104617462L, 1113075145L, 1133032171L, 1154879095L, 1162334258L, 1171423585L, 1182756802L, 1185393130L, 1256262433L, 1271426787L, 1276221264L, 1320978072L, 1323949504L, 1364607154L, 1365997200L, 1374782496L, 1389374312L, 1399399154L, 1413948812L, 1467897133L, 1480838879L, 1483085629L, 1489223951L, 1489981993L, 1501919929L, 1507366940L, 1511577586L, 1520955176L, 1549016480L, 1555768105L, 1563643544L, 1611758732L, 1629473871L, 1633371468L, 1659374130L, 1662503977L, 1663664931L, 1668019300L, 1668708186L, 1670254425L, 1692777155L, 1705558023L, 1707614020L, 1714470065L, 1753926607L, 1764394866L, 1820014241L, 1849975823L, 1850595927L, 1860841401L, 1924612427L, 1932283463L, 1950174831L, 1954911694L, 1955050643L, 1959607321L, 1960854085L, 1963986229L, 1978130731L, 1994107671L, 1995007367L, 1995013976L, 2003385610L, 2017385996L, 2045459448L, 2050658351L, 2064147694L, 2082065105L, 2138306149L, 2138980234L, 2160920022L, 2181968846L, 2227166354L, 2252243702L, 2276452218L, 2370384227L, 2375593061L, 2382794240L, 2396562794L, 2418773884L, 2439942378L, 2458553729L, 2458565000L, 2469819605L, 2491325045L, 2514722808L, 2532208838L, 2534165405L, 2545221536L, 2554143138L, 2582416101L, 2616052021L, 2616397466L, 2624843547L, 2641881521L, 2642071849L, 2650038608L, 2650286893L, 2656635482L, 2661165261L, 2673037965L, 2698982384L, 2711801349L, 2714347694L, 2722789399L, 2752524085L, 2779052787L, 2821815597L, 2862905706L, 2870680160L, 2876204308L, 2882912353L, 2884379001L, 2904242778L, 2962717626L, 2966531133L, 2998434274L, 3002461168L, 3010602165L, 3021636520L, 3038132913L, 3059119150L})); + map.put("CCCCTTCTTTCTT", new TLongArrayList(new long[] {3059988L, 10952797L, 15607758L, 20287504L, 36172259L, 38701411L, 49099510L, 59689198L, 59918423L, 60930288L, 63533303L, 68722643L, 92627548L, 114784493L, 114791663L, 116660483L, 119822714L, 154862089L, 156149872L, 167965429L, 170506198L, 197780276L, 200422203L, 204255975L, 212355276L, 218727551L, 238728032L, 245344505L, 253253295L, 263160814L, 267010982L, 269571806L, 270389279L, 277086637L, 287392283L, 291109409L, 303921671L, 305643639L, 305656170L, 322884244L, 339176071L, 362059154L, 365680815L, 367856790L, 377595746L, 378691402L, 387364497L, 389675386L, 390554454L, 396704304L, 399867957L, 412535479L, 422418560L, 428333967L, 429077934L, 433514430L, 434643569L, 435429255L, 456937955L, 458474956L, 459944061L, 464050807L, 468118980L, 477579973L, 488040394L, 503880194L, 506008694L, 506497369L, 508858119L, 513286932L, 523794918L, 530174748L, 538582523L, 548406556L, 552875581L, 561197622L, 563524017L, 574894143L, 590542956L, 594508295L, 599667808L, 613149951L, 618429743L, 635300320L, 640721668L, 646230704L, 649560656L, 651033439L, 656676266L, 658537743L, 670841664L, 681704323L, 682265339L, 683502494L, 683645289L, 698400883L, 699024749L, 700838234L, 715889495L, 718888559L, 749342474L, 779828778L, 797140529L, 829074580L, 834849584L, 839425676L, 849224797L, 851010284L, 872743429L, 885990112L, 885990160L, 890187665L, 892539132L, 902723132L, 904147782L, 908806597L, 914154497L, 936136726L, 943673180L, 945981059L, 948734341L, 959738436L, 963155182L, 990484302L, 1016023682L, 1026006324L, 1028912598L, 1035624529L, 1049121321L, 1049824123L, 1066975460L, 1071119267L, 1081108490L, 1091839054L, 1107073334L, 1109627892L, 1115319296L, 1125695726L, 1133032172L, 1145365985L, 1146562731L, 1154879096L, 1162808312L, 1165638442L, 1170187761L, 1170823586L, 1190525838L, 1192197869L, 1192957339L, 1218228516L, 1221537651L, 1240807782L, 1249990605L, 1267000169L, 1287016360L, 1306509394L, 1323949505L, 1324524261L, 1325304131L, 1325675790L, 1336450224L, 1336760857L, 1342100723L, 1346692040L, 1351626853L, 1357184879L, 1360410016L, 1364607155L, 1374782497L, 1387212251L, 1399350879L, 1399399155L, 1413948813L, 1418600897L, 1419288884L, 1421338573L, 1434968862L, 1467897134L, 1489223952L, 1489981994L, 1498359713L, 1502067180L, 1512537702L, 1518375553L, 1520955177L, 1521740594L, 1525393848L, 1531506663L, 1535512837L, 1538391226L, 1549016481L, 1552692196L, 1555768106L, 1583009094L, 1604750654L, 1614686690L, 1626504730L, 1641062946L, 1647889259L, 1659374131L, 1663664932L, 1668708187L, 1669848202L, 1672172109L, 1681225340L, 1684488832L, 1687645246L, 1691862639L, 1692777156L, 1694781323L, 1705558024L, 1707556400L, 1740462099L, 1771388965L, 1776381043L, 1785818825L, 1787412247L, 1802950737L, 1804229502L, 1809198057L, 1824925682L, 1825106223L, 1829471149L, 1829909776L, 1831662025L, 1849975824L, 1853570493L, 1861625641L, 1876691896L, 1876774146L, 1885205869L, 1885306877L, 1899291107L, 1905256383L, 1905761605L, 1919249880L, 1922169353L, 1926858470L, 1935052304L, 1944427413L, 1948472415L, 1949075809L, 1953276319L, 1959607322L, 1960854086L, 1971032284L, 1977121063L, 1978130732L, 1991822574L, 1992464167L, 1995007368L, 1995013977L, 1999411184L, 2005334103L, 2006399827L, 2019274450L, 2020242578L, 2022361928L, 2051778481L, 2061102714L, 2061923107L, 2071933241L, 2073907170L, 2076196550L, 2076276425L, 2110045414L, 2118278734L, 2154308109L, 2160920023L, 2221449057L, 2234826987L, 2239985918L, 2252027402L, 2252243703L, 2291676071L, 2296091936L, 2297457784L, 2297924997L, 2329681729L, 2333845249L, 2340861986L, 2343870069L, 2344342599L, 2374516555L, 2375593062L, 2396013586L, 2397266140L, 2415373851L, 2433069625L, 2462212080L, 2477165193L, 2483274039L, 2489833991L, 2495198700L, 2508532335L, 2514722809L, 2531508210L, 2532208839L, 2545141901L, 2546305282L, 2547349037L, 2550364427L, 2550833223L, 2579594739L, 2581111348L, 2600854462L, 2607269483L, 2610420266L, 2624843548L, 2642071850L, 2643808912L, 2650038609L, 2650334009L, 2656635483L, 2661311232L, 2669827534L, 2669827839L, 2671070586L, 2674551617L, 2676481746L, 2688217304L, 2694841601L, 2700891506L, 2700959429L, 2705190999L, 2706073993L, 2711801350L, 2712165801L, 2717018437L, 2723104231L, 2725189223L, 2727102359L, 2727855729L, 2734186874L, 2752337071L, 2752524086L, 2764604913L, 2770326744L, 2775036776L, 2779052788L})); + map.put("CCCTTCTTTCTTC", new TLongArrayList(new long[] {3059989L, 9041382L, 24654205L, 27165843L, 35741879L, 49099511L, 49289769L, 50985448L, 59918424L, 62996092L, 78642808L, 89099199L, 91177482L, 92823773L, 114791664L, 116869111L, 152040279L, 156857051L, 157940255L, 162884843L, 164899796L, 166815201L, 180798903L, 205218873L, 208917231L, 218727552L, 221550848L, 225746211L, 232435554L, 245400448L, 255418496L, 258544968L, 262327520L, 263160815L, 269571807L, 278910714L, 290622683L, 291199811L, 319379983L, 323858694L, 325163233L, 332707537L, 367856791L, 379147105L, 385596443L, 386827958L, 388996706L, 390121703L, 392608669L, 402747909L, 411974887L, 412997051L, 429858354L, 430906052L, 436659582L, 441686711L, 450117727L, 458163547L, 458474957L, 458743707L, 462455591L, 464050808L, 467833671L, 476778692L, 486990691L, 500799761L, 506008695L, 506497370L, 508858120L, 516893971L, 530174749L, 538582524L, 545488250L, 552174209L, 558144477L, 563035151L, 599170405L, 601607904L, 606659389L, 617458904L, 618429744L, 619988379L, 628210705L, 642649163L, 642920837L, 649351602L, 656676267L, 672557848L, 676311863L, 698975859L, 705071634L, 713185851L, 718888560L, 725549769L, 747067395L, 779828779L, 797140530L, 801265129L, 829074581L, 835268802L, 835389593L, 835492861L, 846422321L, 847776949L, 848227614L, 857444853L, 864928311L, 872743430L, 879554485L, 885990113L, 898114678L, 909994802L, 913037188L, 914154498L, 923008721L, 932926441L, 936136727L, 942951668L, 948734342L, 965000293L, 975242054L, 976159549L, 979543844L, 990484303L, 996513333L, 1000533668L, 1000584699L, 1005042698L, 1024646096L, 1026006325L, 1030790388L, 1034774502L, 1049824124L, 1071146067L, 1076369427L, 1076640524L, 1081108491L, 1081773917L, 1082432968L, 1095872846L, 1099786248L, 1103512821L, 1125695727L, 1135397953L, 1137119041L, 1141080806L, 1146049414L, 1157345969L, 1165638443L, 1170187762L, 1188007248L, 1193772535L, 1201825707L, 1214682183L, 1217719233L, 1221200569L, 1221833745L, 1231217678L, 1234899923L, 1237438823L, 1237994929L, 1244729974L, 1261028271L, 1264120432L, 1264931896L, 1266802000L, 1275483191L, 1276829365L, 1279424905L, 1280151286L, 1283209901L, 1290238864L, 1290238941L, 1306509395L, 1331306126L, 1341938775L, 1342100724L, 1356267123L, 1361075095L, 1374782498L, 1387212252L, 1388723623L, 1391601400L, 1393315116L, 1396959993L, 1399399156L, 1399512643L, 1414700765L, 1419288885L, 1420057079L, 1420528349L, 1421338574L, 1430063118L, 1434968863L, 1454344087L, 1467897135L, 1468547711L, 1485651574L, 1488771468L, 1489223953L, 1489417307L, 1489981995L, 1491472642L, 1498359714L, 1502067181L, 1506744081L, 1512537703L, 1522254053L, 1522543141L, 1525393849L, 1526870120L, 1539225895L, 1543760939L, 1546822778L, 1547193829L, 1550855793L, 1557064405L, 1569197502L, 1607962213L, 1608300307L, 1613100326L, 1614686691L, 1615010946L, 1629358474L, 1641062947L, 1656860433L, 1658390529L, 1658497055L, 1659374132L, 1659534993L, 1662332993L, 1663664933L, 1669848203L, 1673031121L, 1691536564L, 1693686605L, 1695866633L, 1696177462L, 1696872226L, 1740462100L, 1753980626L, 1754732581L, 1771388966L, 1773062999L, 1776381044L, 1780030312L, 1783457653L, 1791057910L, 1804229503L, 1807616590L, 1808978446L, 1821369132L, 1821648439L, 1823549493L, 1824925683L, 1825771792L, 1843123649L, 1846638662L, 1857712826L, 1859125219L, 1861625642L, 1874809525L, 1875614524L, 1878270905L, 1882164683L, 1882591222L, 1892493754L, 1914980019L, 1918160479L, 1918865161L, 1922162547L, 1930949702L, 1941948021L, 1942253671L, 1948472416L, 1949075810L, 1960854087L, 1966067661L, 1966300430L, 1969816565L, 1977121064L, 1978130733L, 1999411185L, 2005203404L, 2005334104L, 2005976364L, 2011730432L, 2016434956L, 2019274451L, 2021597267L, 2022361929L, 2024686958L, 2032674257L, 2040065411L, 2043588585L, 2048747442L, 2050283093L, 2054281807L, 2061102715L, 2069183641L, 2071933242L, 2074770652L, 2110045415L, 2122644389L, 2132302631L, 2139401479L, 2156548454L, 2160920024L, 2221449058L, 2235087421L, 2235563558L, 2252027403L, 2272226263L, 2279729603L, 2297457785L, 2298969567L, 2299069822L, 2329227371L, 2330531114L, 2340151513L, 2344756448L, 2348656599L, 2359567448L, 2360827077L, 2377073165L, 2382938441L, 2386119587L, 2387443966L, 2410689161L, 2415877188L, 2423907446L, 2427689400L, 2443304050L, 2444269683L, 2462251107L, 2477165194L, 2490853702L, 2495198701L, 2504533604L, 2507635441L, 2512535787L, 2531508211L, 2535167646L, 2539594657L, 2542501879L, 2545009036L, 2547644710L, 2558998948L, 2559307080L, 2564770956L, 2572586453L, 2593499501L})); + map.put("CCTTCTTTCTTCC", new TLongArrayList(new long[] {-9223372036854775129L})); + map.put("CTTCTTTCTTCCT", new TLongArrayList(new long[] {-9223372036854774720L})); + map.put("TTCTTTCTTCCTC", new TLongArrayList(new long[] {-9223372036854774692L})); + map.put("TCTTTCTTCCTCC", new TLongArrayList(new long[] {-9223372036854775058L})); + map.put("CTTTCTTCCTCCT", new TLongArrayList(new long[] {-9223372036854775030L})); + map.put("TTTCTTCCTCCTT", new TLongArrayList(new long[] {-9223372036854774949L})); + map.put("TTCTTCCTCCTTC", new TLongArrayList(new long[] {-9223372036854774980L})); + map.put("TCTTCCTCCTTCC", new TLongArrayList(new long[] {-9223372036854774942L})); + map.put("CTTCCTCCTTCCC", new TLongArrayList(new long[] {-9223372036854774685L})); + map.put("TTCCTCCTTCCCT", new TLongArrayList(new long[] {-9223372036854774613L})); + map.put("TCCTCCTTCCCTC", new TLongArrayList(new long[] {-9223372036854774751L})); + map.put("CCTCCTTCCCTCC", new TLongArrayList(new long[] {-9223372036854773422L})); + map.put("CTCCTTCCCTCCT", new TLongArrayList(new long[] {-9223372036854774540L})); + map.put("TCCTTCCCTCCTT", new TLongArrayList(new long[] {-9223372036854773468L})); + map.put("CCTTCCCTCCTTC", new TLongArrayList(new long[] {-9223372036854773544L})); Map map2 = TiledAlignerUtil.getTiles(map, "CTCCCTCCCCCTTCTTTCTTCCTCCTTCCCTCCTTC", 13, false); @@ -278,9 +274,9 @@ public void getBEstStartPosition4() { /* * {393216={29254156, 3299253771883}, 458752={2458553723, 2458564994}} */ - assertArrayEquals(new long[] {2458553723l, 2458564994l}, map2.get(NumberUtils.getTileCount(7, 0)).toArray()); - assertArrayEquals(new long[] {29254156, 3299253771883l}, map2.get(NumberUtils.getTileCount(6, 0)).toArray()); - assertEquals(718888555, NumberUtils.getLongPositionValueFromPackedLong(3299253771883l)); + assertArrayEquals(new long[] {2458553723L, 2458564994L}, map2.get(NumberUtils.getTileCount(7, 0)).toArray()); + assertArrayEquals(new long[] {29254156, 3299253771883L}, map2.get(NumberUtils.getTileCount(6, 0)).toArray()); + assertEquals(718888555, NumberUtils.getLongPositionValueFromPackedLong(3299253771883L)); /* @@ -291,7 +287,7 @@ public void getBEstStartPosition4() { TLongList bestStartPositions = taRec.getStartPositions(12, true, 1000); TLongIntMap bestStartPositionsMap = taRec.getStartPositions(); assertEquals(bestStartPositions.size(), bestStartPositionsMap.size()); - assertEquals(false, bestStartPositions.contains(305656168l)); + assertFalse(bestStartPositions.contains(305656168L)); bestStartPositions = taRec.getStartPositions(2, true, 3000); assertEquals(4, bestStartPositions.size()); assertEquals(bestStartPositions.size(), bestStartPositionsMap.size()); @@ -303,30 +299,30 @@ public void getBEstStartPosition4() { public void getBestStartPosition5() { Map map = new HashMap<>(); - map.put("AAAANACAAAAAA", new TLongArrayList(new long[] {-9223372036854774361l})); - map.put("AAANACAAAAAAT", new TLongArrayList(new long[] {-9223372036854774361l})); - map.put("AANACAAAAAATT", new TLongArrayList(new long[] {-9223372036854775221l})); - map.put("ANACAAAAAATTA", new TLongArrayList(new long[] {-9223372036854775270l})); - map.put("NACAAAAAATTAG", new TLongArrayList(new long[] {-9223372036854774503l})); - map.put("ACAAAAAATTAGC", new TLongArrayList(new long[] {-9223372036854722083l})); - map.put("CAAAAAATTAGCC", new TLongArrayList(new long[] {-9223372036854737135l})); - map.put("AAAAAATTAGCCA", new TLongArrayList(new long[] {-9223372036854739397l})); - map.put("AAAAATTAGCCAG", new TLongArrayList(new long[] {-9223372036854690433l})); - map.put("AAAATTAGCCAGG", new TLongArrayList(new long[] {-9223372036854689249l})); - map.put("AAATTAGCCAGGA", new TLongArrayList(new long[] {-9223372036854773710l})); - map.put("AATTAGCCAGGAG", new TLongArrayList(new long[] {-9223372036854774161l})); - map.put("ATTAGCCAGGAGC", new TLongArrayList(new long[] {12261167l, 56422312l, 69896030l, 90894740l, 94964056l, 112750457l, 120694078l, 199868799l, 277255034l, 333603476l, 348546340l, 371562677l, 396062588l, 458476282l, 534065517l, 541864873l, 550317568l, 553070090l, 709999348l, 726987723l, 731592505l, 790246289l, 793831180l, 815228737l, 852854888l, 862548608l, 890713484l, 916083833l, 917399896l, 936110255l, 1015493129l, 1055185532l, 1086686837l, 1100191021l, 1102920530l, 1104365063l, 1119286079l, 1161238053l, 1360816871l, 1382366901l, 1382806601l, 1409321942l, 1430033300l, 1445522850l, 1524103308l, 1534767885l, 1575708326l, 1635996179l, 1673097818l, 1804478136l, 1845754356l, 1852345034l, 1878532902l, 1953542030l, 1955167786l, 1958802053l, 1978370202l, 2016275988l, 2068467250l, 2074515453l, 2113846630l, 2123465041l, 2127503091l, 2232953079l, 2340615998l, 2353088288l, 2371947129l, 2377254992l, 2414198914l, 2425218897l, 2426357490l, 2515761254l, 2534948037l, 2565474414l, 2580764078l, 2593278442l, 2692420529l, 2767915658l, 2774404310l, 2849203385l, 2898758774l, 2912110479l})); - map.put("TTAGCCAGGAGCG", new TLongArrayList(new long[] {69896031l, 77323067l, 112750458l, 348546341l, 371562678l, 396062589l, 534065518l, 541864874l, 593823919l, 709999349l, 726987724l, 793831181l, 815228738l, 862548609l, 1086686838l, 1104365064l, 1119286080l, 1360816872l, 1409321943l, 1430033301l, 1445522851l, 1673097819l, 1804478137l, 1878532903l, 1932108076l, 1953542031l, 1958802054l, 1978370203l, 2016275989l, 2232953080l, 2411883825l, 2414198915l, 2419780119l, 2429326512l, 2507630003l, 2515761255l, 2534948038l, 2565474415l, 2580764079l, 2593278443l, 2668656422l, 2999008392l})); - map.put("TAGCCAGGAGCGG", new TLongArrayList(new long[] {28307266l, 59171958l, 69896032l, 112750459l, 348546342l, 371562679l, 396062590l, 534065519l, 541864875l, 546334235l, 709999350l, 726987725l, 761811437l, 793831182l, 815228739l, 862548610l, 922306826l, 1014076951l, 1086686839l, 1104365065l, 1119286081l, 1194303987l, 1197286735l, 1302239440l, 1360816873l, 1409321944l, 1430033302l, 1445522852l, 1673097820l, 1690576989l, 1878532904l, 1932108077l, 1953542032l, 1958802055l, 1978370204l, 2016275990l, 2232953081l, 2265209317l, 2348604322l, 2411883826l, 2414198916l, 2419780120l, 2429326513l, 2504952100l, 2515761256l, 2553924506l, 2565474416l, 2578647878l, 2580764080l, 2593278444l, 2611246269l, 2668656423l, 2670411090l, 2780061079l, 2999008393l})); - map.put("AGCCAGGAGCGGT", new TLongArrayList(new long[] {13371036l, 28307267l, 37512657l, 59171959l, 69896033l, 112750460l, 120283582l, 151272801l, 203880570l, 247598272l, 259518633l, 334958276l, 348546343l, 371562680l, 377790923l, 396062591l, 401216387l, 529597268l, 534065520l, 541759221l, 541864876l, 546334236l, 618069242l, 708073304l, 709999351l, 720703433l, 726987726l, 736983855l, 756803298l, 761811438l, 793831183l, 815228740l, 820129325l, 852967033l, 857748345l, 862548611l, 913150500l, 916024823l, 953229599l, 991802935l, 1014076952l, 1096482689l, 1097076222l, 1104365066l, 1119286082l, 1194303988l, 1197286736l, 1212180872l, 1239026060l, 1264271826l, 1278195768l, 1289493817l, 1325510658l, 1350226600l, 1360816874l, 1409321945l, 1425985410l, 1430033303l, 1445522853l, 1618603498l, 1618761283l, 1621959053l, 1638899582l, 1662661907l, 1673097821l, 1710789989l, 1712737272l, 1745157541l, 1753554139l, 1755646066l, 1802577318l, 1806591821l, 1815262134l, 1877039688l, 1878532905l, 1881207975l, 1932108078l, 1953542033l, 1958802056l, 1961773741l, 1978370205l, 2007940808l, 2016275991l, 2044007224l, 2070047364l, 2114932516l, 2148929577l, 2230561154l, 2232953082l, 2274464810l, 2348604323l, 2353636606l, 2362433796l, 2374610156l, 2387718722l, 2414198917l, 2419780121l, 2438258104l, 2456907237l, 2504018164l, 2504952101l, 2508211060l, 2515761257l, 2540132804l, 2553924507l, 2565474417l, 2593278445l, 2611246270l, 2614920676l, 2629689102l, 2668656424l, 2677584420l, 2714998058l, 2753929625l, 2757560052l, 2780061080l, 2867926404l, 2877896232l, 2929137025l, 2945952615l, 2972568554l, 2999008394l})); - map.put("GCCAGGAGCGGTG", new TLongArrayList(new long[] {-9223372036854775184l})); - map.put("CCAGGAGCGGTGG", new TLongArrayList(new long[] {-9223372036854775158l})); - map.put("CAGGAGCGGTGGC", new TLongArrayList(new long[] {-9223372036854775191l})); - map.put("AGGAGCGGTGGCA", new TLongArrayList(new long[] {32349656l, 75599640l, 112750464l, 371562684l, 520238658l, 525153036l, 667871382l, 709999355l, 726987730l, 862548615l, 1006157446l, 1013056722l, 1103549647l, 1119286086l, 1325510662l, 1409321949l, 1445522857l, 1458279162l, 1577907857l, 1662661911l, 1673097825l, 1693763522l, 1753063363l, 1801418357l, 1828142299l, 1941810514l, 1942379909l, 1958802060l, 1978370209l, 2044413747l, 2232953086l, 2457189290l, 2511610033l, 2515761261l, 2589218831l, 2593278449l, 2721598218l, 2852617941l, 2980067504l})); - map.put("GGAGCGGTGGCAG", new TLongArrayList(new long[] {38364225l, 65315861l, 82187836l, 112750465l, 225878752l, 369321083l, 473531160l, 588778663l, 667871383l, 862548616l, 919432953l, 1006157447l, 1026187515l, 1119286087l, 1148637270l, 1213302436l, 1334704450l, 1445522858l, 1520590476l, 1572004154l, 1673097826l, 1753063364l, 1779706296l, 1801418358l, 1817536381l, 1818685149l, 1881895776l, 1882959622l, 1893240437l, 1961277010l, 1978370210l, 2351631423l, 2382450788l, 2391237616l, 2410437930l, 2440006539l, 2457189291l, 2481536008l, 2488535315l, 2503241276l, 2513345902l, 2515761262l, 2544622237l, 2544840158l, 2575175174l, 2654283544l, 2721598219l, 2852617942l, 2873083881l, 2877107475l, 2998513497l, 3028827664l})); - map.put("GAGCGGTGGCAGG", new TLongArrayList(new long[] {13796034l, 38364226l, 58935387l, 82187837l, 112750466l, 225878753l, 278495566l, 322731974l, 369321084l, 386666732l, 473531161l, 588778664l, 667871384l, 862548617l, 1006157448l, 1026187516l, 1100128362l, 1119286088l, 1148637271l, 1213302437l, 1298596143l, 1445522859l, 1467622075l, 1520590477l, 1576909984l, 1673097827l, 1761276959l, 1779706297l, 1798873222l, 1801418359l, 1818228749l, 1818685150l, 1881895777l, 1893240438l, 1961277011l, 1978370211l, 2111692705l, 2252559723l, 2266332693l, 2382450789l, 2410437931l, 2440006540l, 2457189292l, 2469098077l, 2481536009l, 2488535316l, 2503241277l, 2513345903l, 2515761263l, 2544622238l, 2544840159l, 2868158434l, 2873083882l, 2988052430l, 3017666019l, 3096351128l})); - map.put("AGCGGTGGCAGGC", new TLongArrayList(new long[] {38364227l, 44949352l, 82187838l, 112750467l, 225878754l, 473531162l, 588778665l, 667871385l, 1026187517l, 1072582670l, 1119286089l, 1148637272l, 1213302438l, 1422175872l, 1445522860l, 1492886658l, 1520590478l, 1673097828l, 1796206891l, 1801418360l, 1893240439l, 1961277012l, 1978370212l, 2266332694l, 2301222469l, 2301222482l, 2301222495l, 2301222630l, 2301222713l, 2301222830l, 2301222921l, 2440006541l, 2457189293l, 2469098078l, 2503241278l, 2515761264l, 2706133999l, 2880742945l, 3017666020l, 3034118018l, 3096351129l})); - map.put("GCGGTGGCAGGCA", new TLongArrayList(new long[] {18936489l, 38364228l, 76196825l, 92331330l, 92432487l, 112750468l, 193146521l, 207942464l, 212394111l, 230593362l, 258939982l, 275124312l, 328395785l, 349634889l, 356140193l, 365061011l, 419525883l, 457301235l, 473911372l, 477560553l, 482735580l, 486242000l, 521745872l, 529076781l, 541681556l, 549697804l, 550103648l, 554152501l, 554377689l, 612232430l, 623376282l, 667871386l, 687254610l, 693004803l, 752799073l, 766993398l, 782875838l, 832472229l, 846054105l, 846510521l, 886111390l, 891986580l, 908777625l, 957648917l, 976582845l, 1022329550l, 1035173074l, 1045359957l, 1052439881l, 1054003637l, 1058066255l, 1093037521l, 1096892725l, 1148637273l, 1156833705l, 1214302717l, 1231725859l, 1267212989l, 1281509701l, 1288782975l, 1290010096l, 1295972888l, 1299183443l, 1309141722l, 1317453079l, 1356687586l, 1358940406l, 1400498051l, 1403124653l, 1426116574l, 1435067714l, 1445522861l, 1478631596l, 1510342538l, 1526249352l, 1528361297l, 1537669471l, 1558940444l, 1572639339l, 1574198852l, 1577777010l, 1612681392l, 1641738874l, 1642254676l, 1646466599l, 1659463137l, 1662595821l, 1669297318l, 1673097829l, 1685635952l, 1712788471l, 1750023792l, 1750458005l, 1752520016l, 1766630298l, 1783752420l, 1798656841l, 1801418361l, 1801677785l, 1829768861l, 1859562833l, 1863672786l, 1879949105l, 1880659608l, 1918015490l, 1990426529l, 2014439529l, 2027928496l, 2030881454l, 2030889956l, 2060756554l, 2130042315l, 2219490804l, 2221850391l, 2228140943l, 2231658941l, 2266332695l, 2268844299l, 2271078484l, 2287428839l, 2300713039l, 2301222470l, 2301222483l, 2301222496l, 2301222631l, 2301222714l, 2301222831l, 2301222922l, 2301617395l, 2340559273l, 2342483818l, 2351431684l, 2362839175l, 2372381303l, 2378464785l, 2379731046l, 2412599575l, 2432617408l, 2469098079l, 2497637027l, 2501740865l, 2507348601l, 2515761265l, 2525952235l, 2528803115l, 2529781125l, 2530511761l, 2535294876l, 2544486175l, 2569181169l, 2573084295l, 2592753388l, 2668999492l, 2675374316l, 2679903906l, 2692140941l, 2692622801l, 2696146878l, 2706530063l, 2709769703l, 2711354797l, 2734661161l, 2752898478l, 2753798753l, 2773570555l, 2780521984l, 2797731754l, 2804087859l, 2819568108l, 2825882608l, 2852913975l, 2860074066l, 2874611661l, 2874645243l, 2882668237l, 2884597480l, 2916579369l, 3008960863l, 3013648402l, 3031766383l, 3037888797l})); + map.put("AAAANACAAAAAA", new TLongArrayList(new long[] {-9223372036854774361L})); + map.put("AAANACAAAAAAT", new TLongArrayList(new long[] {-9223372036854774361L})); + map.put("AANACAAAAAATT", new TLongArrayList(new long[] {-9223372036854775221L})); + map.put("ANACAAAAAATTA", new TLongArrayList(new long[] {-9223372036854775270L})); + map.put("NACAAAAAATTAG", new TLongArrayList(new long[] {-9223372036854774503L})); + map.put("ACAAAAAATTAGC", new TLongArrayList(new long[] {-9223372036854722083L})); + map.put("CAAAAAATTAGCC", new TLongArrayList(new long[] {-9223372036854737135L})); + map.put("AAAAAATTAGCCA", new TLongArrayList(new long[] {-9223372036854739397L})); + map.put("AAAAATTAGCCAG", new TLongArrayList(new long[] {-9223372036854690433L})); + map.put("AAAATTAGCCAGG", new TLongArrayList(new long[] {-9223372036854689249L})); + map.put("AAATTAGCCAGGA", new TLongArrayList(new long[] {-9223372036854773710L})); + map.put("AATTAGCCAGGAG", new TLongArrayList(new long[] {-9223372036854774161L})); + map.put("ATTAGCCAGGAGC", new TLongArrayList(new long[] {12261167L, 56422312L, 69896030L, 90894740L, 94964056L, 112750457L, 120694078L, 199868799L, 277255034L, 333603476L, 348546340L, 371562677L, 396062588L, 458476282L, 534065517L, 541864873L, 550317568L, 553070090L, 709999348L, 726987723L, 731592505L, 790246289L, 793831180L, 815228737L, 852854888L, 862548608L, 890713484L, 916083833L, 917399896L, 936110255L, 1015493129L, 1055185532L, 1086686837L, 1100191021L, 1102920530L, 1104365063L, 1119286079L, 1161238053L, 1360816871L, 1382366901L, 1382806601L, 1409321942L, 1430033300L, 1445522850L, 1524103308L, 1534767885L, 1575708326L, 1635996179L, 1673097818L, 1804478136L, 1845754356L, 1852345034L, 1878532902L, 1953542030L, 1955167786L, 1958802053L, 1978370202L, 2016275988L, 2068467250L, 2074515453L, 2113846630L, 2123465041L, 2127503091L, 2232953079L, 2340615998L, 2353088288L, 2371947129L, 2377254992L, 2414198914L, 2425218897L, 2426357490L, 2515761254L, 2534948037L, 2565474414L, 2580764078L, 2593278442L, 2692420529L, 2767915658L, 2774404310L, 2849203385L, 2898758774L, 2912110479L})); + map.put("TTAGCCAGGAGCG", new TLongArrayList(new long[] {69896031L, 77323067L, 112750458L, 348546341L, 371562678L, 396062589L, 534065518L, 541864874L, 593823919L, 709999349L, 726987724L, 793831181L, 815228738L, 862548609L, 1086686838L, 1104365064L, 1119286080L, 1360816872L, 1409321943L, 1430033301L, 1445522851L, 1673097819L, 1804478137L, 1878532903L, 1932108076L, 1953542031L, 1958802054L, 1978370203L, 2016275989L, 2232953080L, 2411883825L, 2414198915L, 2419780119L, 2429326512L, 2507630003L, 2515761255L, 2534948038L, 2565474415L, 2580764079L, 2593278443L, 2668656422L, 2999008392L})); + map.put("TAGCCAGGAGCGG", new TLongArrayList(new long[] {28307266L, 59171958L, 69896032L, 112750459L, 348546342L, 371562679L, 396062590L, 534065519L, 541864875L, 546334235L, 709999350L, 726987725L, 761811437L, 793831182L, 815228739L, 862548610L, 922306826L, 1014076951L, 1086686839L, 1104365065L, 1119286081L, 1194303987L, 1197286735L, 1302239440L, 1360816873L, 1409321944L, 1430033302L, 1445522852L, 1673097820L, 1690576989L, 1878532904L, 1932108077L, 1953542032L, 1958802055L, 1978370204L, 2016275990L, 2232953081L, 2265209317L, 2348604322L, 2411883826L, 2414198916L, 2419780120L, 2429326513L, 2504952100L, 2515761256L, 2553924506L, 2565474416L, 2578647878L, 2580764080L, 2593278444L, 2611246269L, 2668656423L, 2670411090L, 2780061079L, 2999008393L})); + map.put("AGCCAGGAGCGGT", new TLongArrayList(new long[] {13371036L, 28307267L, 37512657L, 59171959L, 69896033L, 112750460L, 120283582L, 151272801L, 203880570L, 247598272L, 259518633L, 334958276L, 348546343L, 371562680L, 377790923L, 396062591L, 401216387L, 529597268L, 534065520L, 541759221L, 541864876L, 546334236L, 618069242L, 708073304L, 709999351L, 720703433L, 726987726L, 736983855L, 756803298L, 761811438L, 793831183L, 815228740L, 820129325L, 852967033L, 857748345L, 862548611L, 913150500L, 916024823L, 953229599L, 991802935L, 1014076952L, 1096482689L, 1097076222L, 1104365066L, 1119286082L, 1194303988L, 1197286736L, 1212180872L, 1239026060L, 1264271826L, 1278195768L, 1289493817L, 1325510658L, 1350226600L, 1360816874L, 1409321945L, 1425985410L, 1430033303L, 1445522853L, 1618603498L, 1618761283L, 1621959053L, 1638899582L, 1662661907L, 1673097821L, 1710789989L, 1712737272L, 1745157541L, 1753554139L, 1755646066L, 1802577318L, 1806591821L, 1815262134L, 1877039688L, 1878532905L, 1881207975L, 1932108078L, 1953542033L, 1958802056L, 1961773741L, 1978370205L, 2007940808L, 2016275991L, 2044007224L, 2070047364L, 2114932516L, 2148929577L, 2230561154L, 2232953082L, 2274464810L, 2348604323L, 2353636606L, 2362433796L, 2374610156L, 2387718722L, 2414198917L, 2419780121L, 2438258104L, 2456907237L, 2504018164L, 2504952101L, 2508211060L, 2515761257L, 2540132804L, 2553924507L, 2565474417L, 2593278445L, 2611246270L, 2614920676L, 2629689102L, 2668656424L, 2677584420L, 2714998058L, 2753929625L, 2757560052L, 2780061080L, 2867926404L, 2877896232L, 2929137025L, 2945952615L, 2972568554L, 2999008394L})); + map.put("GCCAGGAGCGGTG", new TLongArrayList(new long[] {-9223372036854775184L})); + map.put("CCAGGAGCGGTGG", new TLongArrayList(new long[] {-9223372036854775158L})); + map.put("CAGGAGCGGTGGC", new TLongArrayList(new long[] {-9223372036854775191L})); + map.put("AGGAGCGGTGGCA", new TLongArrayList(new long[] {32349656L, 75599640L, 112750464L, 371562684L, 520238658L, 525153036L, 667871382L, 709999355L, 726987730L, 862548615L, 1006157446L, 1013056722L, 1103549647L, 1119286086L, 1325510662L, 1409321949L, 1445522857L, 1458279162L, 1577907857L, 1662661911L, 1673097825L, 1693763522L, 1753063363L, 1801418357L, 1828142299L, 1941810514L, 1942379909L, 1958802060L, 1978370209L, 2044413747L, 2232953086L, 2457189290L, 2511610033L, 2515761261L, 2589218831L, 2593278449L, 2721598218L, 2852617941L, 2980067504L})); + map.put("GGAGCGGTGGCAG", new TLongArrayList(new long[] {38364225L, 65315861L, 82187836L, 112750465L, 225878752L, 369321083L, 473531160L, 588778663L, 667871383L, 862548616L, 919432953L, 1006157447L, 1026187515L, 1119286087L, 1148637270L, 1213302436L, 1334704450L, 1445522858L, 1520590476L, 1572004154L, 1673097826L, 1753063364L, 1779706296L, 1801418358L, 1817536381L, 1818685149L, 1881895776L, 1882959622L, 1893240437L, 1961277010L, 1978370210L, 2351631423L, 2382450788L, 2391237616L, 2410437930L, 2440006539L, 2457189291L, 2481536008L, 2488535315L, 2503241276L, 2513345902L, 2515761262L, 2544622237L, 2544840158L, 2575175174L, 2654283544L, 2721598219L, 2852617942L, 2873083881L, 2877107475L, 2998513497L, 3028827664L})); + map.put("GAGCGGTGGCAGG", new TLongArrayList(new long[] {13796034L, 38364226L, 58935387L, 82187837L, 112750466L, 225878753L, 278495566L, 322731974L, 369321084L, 386666732L, 473531161L, 588778664L, 667871384L, 862548617L, 1006157448L, 1026187516L, 1100128362L, 1119286088L, 1148637271L, 1213302437L, 1298596143L, 1445522859L, 1467622075L, 1520590477L, 1576909984L, 1673097827L, 1761276959L, 1779706297L, 1798873222L, 1801418359L, 1818228749L, 1818685150L, 1881895777L, 1893240438L, 1961277011L, 1978370211L, 2111692705L, 2252559723L, 2266332693L, 2382450789L, 2410437931L, 2440006540L, 2457189292L, 2469098077L, 2481536009L, 2488535316L, 2503241277L, 2513345903L, 2515761263L, 2544622238L, 2544840159L, 2868158434L, 2873083882L, 2988052430L, 3017666019L, 3096351128L})); + map.put("AGCGGTGGCAGGC", new TLongArrayList(new long[] {38364227L, 44949352L, 82187838L, 112750467L, 225878754L, 473531162L, 588778665L, 667871385L, 1026187517L, 1072582670L, 1119286089L, 1148637272L, 1213302438L, 1422175872L, 1445522860L, 1492886658L, 1520590478L, 1673097828L, 1796206891L, 1801418360L, 1893240439L, 1961277012L, 1978370212L, 2266332694L, 2301222469L, 2301222482L, 2301222495L, 2301222630L, 2301222713L, 2301222830L, 2301222921L, 2440006541L, 2457189293L, 2469098078L, 2503241278L, 2515761264L, 2706133999L, 2880742945L, 3017666020L, 3034118018L, 3096351129L})); + map.put("GCGGTGGCAGGCA", new TLongArrayList(new long[] {18936489L, 38364228L, 76196825L, 92331330L, 92432487L, 112750468L, 193146521L, 207942464L, 212394111L, 230593362L, 258939982L, 275124312L, 328395785L, 349634889L, 356140193L, 365061011L, 419525883L, 457301235L, 473911372L, 477560553L, 482735580L, 486242000L, 521745872L, 529076781L, 541681556L, 549697804L, 550103648L, 554152501L, 554377689L, 612232430L, 623376282L, 667871386L, 687254610L, 693004803L, 752799073L, 766993398L, 782875838L, 832472229L, 846054105L, 846510521L, 886111390L, 891986580L, 908777625L, 957648917L, 976582845L, 1022329550L, 1035173074L, 1045359957L, 1052439881L, 1054003637L, 1058066255L, 1093037521L, 1096892725L, 1148637273L, 1156833705L, 1214302717L, 1231725859L, 1267212989L, 1281509701L, 1288782975L, 1290010096L, 1295972888L, 1299183443L, 1309141722L, 1317453079L, 1356687586L, 1358940406L, 1400498051L, 1403124653L, 1426116574L, 1435067714L, 1445522861L, 1478631596L, 1510342538L, 1526249352L, 1528361297L, 1537669471L, 1558940444L, 1572639339L, 1574198852L, 1577777010L, 1612681392L, 1641738874L, 1642254676L, 1646466599L, 1659463137L, 1662595821L, 1669297318L, 1673097829L, 1685635952L, 1712788471L, 1750023792L, 1750458005L, 1752520016L, 1766630298L, 1783752420L, 1798656841L, 1801418361L, 1801677785L, 1829768861L, 1859562833L, 1863672786L, 1879949105L, 1880659608L, 1918015490L, 1990426529L, 2014439529L, 2027928496L, 2030881454L, 2030889956L, 2060756554L, 2130042315L, 2219490804L, 2221850391L, 2228140943L, 2231658941L, 2266332695L, 2268844299L, 2271078484L, 2287428839L, 2300713039L, 2301222470L, 2301222483L, 2301222496L, 2301222631L, 2301222714L, 2301222831L, 2301222922L, 2301617395L, 2340559273L, 2342483818L, 2351431684L, 2362839175L, 2372381303L, 2378464785L, 2379731046L, 2412599575L, 2432617408L, 2469098079L, 2497637027L, 2501740865L, 2507348601L, 2515761265L, 2525952235L, 2528803115L, 2529781125L, 2530511761L, 2535294876L, 2544486175L, 2569181169L, 2573084295L, 2592753388L, 2668999492L, 2675374316L, 2679903906L, 2692140941L, 2692622801L, 2696146878L, 2706530063L, 2709769703L, 2711354797L, 2734661161L, 2752898478L, 2753798753L, 2773570555L, 2780521984L, 2797731754L, 2804087859L, 2819568108L, 2825882608L, 2852913975L, 2860074066L, 2874611661L, 2874645243L, 2882668237L, 2884597480L, 2916579369L, 3008960863L, 3013648402L, 3031766383L, 3037888797L})); Map map2 = TiledAlignerUtil.getTiles(map, "AAAANACAAAAAATTAGCCAGGAGCGGTGGCAGGCA", 13, false); @@ -342,41 +338,41 @@ public void getBestStartPosition5() { assertEquals(1, map2.get(NumberUtils.getTileCount(10, 0)).size()); assertEquals(7, map2.get(NumberUtils.getTileCount(8, 0)).size()); assertEquals(15, map2.get(NumberUtils.getTileCount(7, 0)).size()); - long offsetFor12 = NumberUtils.addShortToLong(0l, (short)12, TiledAlignerUtil.POSITION_OF_TILE_IN_SEQUENCE_OFFSET); - assertArrayEquals(new long[] {offsetFor12 + 112750457, offsetFor12 + 1445522850, offsetFor12 + 1673097818, offsetFor12 + 2515761254l}, map2.get(NumberUtils.getTileCount(12, 0)).toArray()); - assertEquals(true, map2.get(NumberUtils.getTileCount(7, 0)).contains(offsetFor12 + 1953542030l)); + long offsetFor12 = NumberUtils.addShortToLong(0L, (short)12, TiledAlignerUtil.POSITION_OF_TILE_IN_SEQUENCE_OFFSET); + assertArrayEquals(new long[] {offsetFor12 + 112750457, offsetFor12 + 1445522850, offsetFor12 + 1673097818, offsetFor12 + 2515761254L}, map2.get(NumberUtils.getTileCount(12, 0)).toArray()); + assertTrue(map2.get(NumberUtils.getTileCount(7, 0)).contains(offsetFor12 + 1953542030L)); } @Test public void getBEstStartPosition7() { Map map = new HashMap<>(); - map.put("TCCCTCCCTTCCT", new TLongArrayList(new long[] {2386760682l})); - map.put("CCCTCCCTTCCTC", new TLongArrayList(new long[] {2386760683l})); - map.put("CCTCCCTTCCTCT", new TLongArrayList(new long[] {2386760684l})); - map.put("CTCCCTTCCTCTT", new TLongArrayList(new long[] {2386760685l})); - map.put("TCCCTTCCTCTTT", new TLongArrayList(new long[] {2386760686l})); - map.put("CCCTTCCTCTTTC", new TLongArrayList(new long[] {2386760687l})); - map.put("CCTTCCTCTTTCT", new TLongArrayList(new long[] {2386760688l})); - map.put("CTTCCTCTTTCTG", new TLongArrayList(new long[] {2386760689l})); - map.put("TTCCTCTTTCTGT", new TLongArrayList(new long[] {2386760690l})); - map.put("TCCTCTTTCTGTC", new TLongArrayList(new long[] {2386760691l})); - map.put("CCTCTTTCTGTCT", new TLongArrayList(new long[] {2386760692l})); - map.put("CTCTTTCTGTCTT", new TLongArrayList(new long[] {2386760693l})); - map.put("TCTTTCTGTCTTT", new TLongArrayList(new long[] {2386760694l})); - map.put("CTTTCTGTCTTTT", new TLongArrayList(new long[] {2386760695l})); - map.put("TTTCTGTCTTTTC", new TLongArrayList(new long[] {2386760696l})); - map.put("TTCTGTCTTTTCT", new TLongArrayList(new long[] {2386760697l})); - map.put("TCTGTCTTTTCTT", new TLongArrayList(new long[] {2386760698l})); - map.put("CTGTCTTTTCTTC", new TLongArrayList(new long[] {2386760699l})); - map.put("TGTCTTTTCTTCC", new TLongArrayList(new long[] {2386760700l})); - map.put("GTCTTTTCTTCCT", new TLongArrayList(new long[] {2386760701l})); - map.put("TCTTTTCTTCCTT", new TLongArrayList(new long[] {2386760702l})); - map.put("CTTTTCTTCCTTC", new TLongArrayList(new long[] {2386760703l})); - map.put("TTTTCTTCCTTCC", new TLongArrayList(new long[] {2386760704l})); - map.put("TTTCTTCCTTCCT", new TLongArrayList(new long[] {2386760705l})); - map.put("TTCTTCCTTCCTT", new TLongArrayList(new long[] {2386760706l})); - map.put("TCTTCCTTCCTTC", new TLongArrayList(new long[] {2386760707l})); + map.put("TCCCTCCCTTCCT", new TLongArrayList(new long[] {2386760682L})); + map.put("CCCTCCCTTCCTC", new TLongArrayList(new long[] {2386760683L})); + map.put("CCTCCCTTCCTCT", new TLongArrayList(new long[] {2386760684L})); + map.put("CTCCCTTCCTCTT", new TLongArrayList(new long[] {2386760685L})); + map.put("TCCCTTCCTCTTT", new TLongArrayList(new long[] {2386760686L})); + map.put("CCCTTCCTCTTTC", new TLongArrayList(new long[] {2386760687L})); + map.put("CCTTCCTCTTTCT", new TLongArrayList(new long[] {2386760688L})); + map.put("CTTCCTCTTTCTG", new TLongArrayList(new long[] {2386760689L})); + map.put("TTCCTCTTTCTGT", new TLongArrayList(new long[] {2386760690L})); + map.put("TCCTCTTTCTGTC", new TLongArrayList(new long[] {2386760691L})); + map.put("CCTCTTTCTGTCT", new TLongArrayList(new long[] {2386760692L})); + map.put("CTCTTTCTGTCTT", new TLongArrayList(new long[] {2386760693L})); + map.put("TCTTTCTGTCTTT", new TLongArrayList(new long[] {2386760694L})); + map.put("CTTTCTGTCTTTT", new TLongArrayList(new long[] {2386760695L})); + map.put("TTTCTGTCTTTTC", new TLongArrayList(new long[] {2386760696L})); + map.put("TTCTGTCTTTTCT", new TLongArrayList(new long[] {2386760697L})); + map.put("TCTGTCTTTTCTT", new TLongArrayList(new long[] {2386760698L})); + map.put("CTGTCTTTTCTTC", new TLongArrayList(new long[] {2386760699L})); + map.put("TGTCTTTTCTTCC", new TLongArrayList(new long[] {2386760700L})); + map.put("GTCTTTTCTTCCT", new TLongArrayList(new long[] {2386760701L})); + map.put("TCTTTTCTTCCTT", new TLongArrayList(new long[] {2386760702L})); + map.put("CTTTTCTTCCTTC", new TLongArrayList(new long[] {2386760703L})); + map.put("TTTTCTTCCTTCC", new TLongArrayList(new long[] {2386760704L})); + map.put("TTTCTTCCTTCCT", new TLongArrayList(new long[] {2386760705L})); + map.put("TTCTTCCTTCCTT", new TLongArrayList(new long[] {2386760706L})); + map.put("TCTTCCTTCCTTC", new TLongArrayList(new long[] {2386760707L})); map.put("CTTCCTTCCTTCA", new TLongArrayList(new long[] {100})); map.put("TTCCTTCCTTCAT", new TLongArrayList(new long[] {200})); @@ -393,7 +389,7 @@ public void getBEstStartPosition7() { map.put("ATTTCTTTCTCTT", new TLongArrayList(new long[] {13})); map.put("TTTCTTTCTCTTT", new TLongArrayList(new long[] {-1})); - map.put("TTCTTTCTCTTTC", new TLongArrayList(new long[] {2386760722l})); + map.put("TTCTTTCTCTTTC", new TLongArrayList(new long[] {2386760722L})); Map map2 = TiledAlignerUtil.getTiles(map, "TCCCTCCCTTCCTCTTTCTGTCTTTTCTTCCTTCCTTCATTTCTTTCTCTTTC", 13, false); assertEquals(1, map2.size()); @@ -404,100 +400,100 @@ public void getBEstStartPosition7() { } assertEquals(1, map2.get(NumberUtils.getTileCount(41, 1)).size()); - assertEquals(2386760682l, map2.get(NumberUtils.getTileCount(41, 1)).get(0)); + assertEquals(2386760682L, map2.get(NumberUtils.getTileCount(41, 1)).get(0)); } @Test public void happyWithSequence() { - assertEquals(true, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCD")); - assertEquals(true, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCD")); - assertEquals(true, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCC")); - assertEquals(true, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCC")); - assertEquals(true, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGGGGGGG")); - assertEquals(false, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGGGGGGG")); - assertEquals(true, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGGGGGGGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx")); - assertEquals(true, TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("GAATCGAATTTGGTTGAAAAAGAAATCTAATGTACATTTATAAGAGGCAGATTTAGATTTAAAAAGTCCAGGAAACTTTTAGTTAACAGATAAATTTAGTCAGTTCAACTTATTATAATTTTTGATACATTTGGATGTATTTAACTCTCTATATTTCTGGTTTTCTGTTTATCATGTTATATCTATGTTTATTTCAAGCATTTGTTTAATAGAATGTTTTCTGACTACTCTCATTTTTTTGAAAGTGGTACATTCTTTTTTTTTTTTTTTTTTTTTTTTATGGTG")); + assertTrue(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCD")); + assertTrue(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCD")); + assertTrue(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCC")); + assertTrue(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCC")); + assertTrue(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGGGGGGG")); + assertFalse(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGGGGGGG")); + assertTrue(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("ABCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGGGGGGGNNNNNNNNNNNNNNNNNNNN")); + assertTrue(TiledAlignerUtil.doesSequenceHaveMostlySingleBaseRepeats("GAATCGAATTTGGTTGAAAAAGAAATCTAATGTACATTTATAAGAGGCAGATTTAGATTTAAAAAGTCCAGGAAACTTTTAGTTAACAGATAAATTTAGTCAGTTCAACTTATTATAATTTTTGATACATTTGGATGTATTTAACTCTCTATATTTCTGGTTTTCTGTTTATCATGTTATATCTATGTTTATTTCAAGCATTTGTTTAATAGAATGTTTTCTGACTACTCTCATTTTTTTGAAAGTGGTACATTCTTTTTTTTTTTTTTTTTTTTTTTTATGGTG")); } @Test public void getBestStartPositions7() { Map map = new HashMap<>(); - map.put("TTATTAAAGAGGG", new TLongArrayList(new long[]{29747455l, 47834276l, 86254487l, 87159099l, 95033883l, 112483092l, 150365652l, 159595684l, 160420297l, 177521723l, 185857684l, 196108850l, 196526849l, 198241677l, 199851321l, 229118823l, 234606228l, 259740140l, 267039162l, 267583471l, 313896563l, 315627884l, 332791517l, 353339004l, 355702779l, 380797476l, 394047491l, 434218133l, 468349696l, 468465329l, 503428614l, 588546096l, 622686720l, 623286057l, 624911226l, 629654457l, 654323170l, 718537816l, 743967524l, 763644409l, 768724161l, 790366661l, 792015060l, 802796380l, 873736555l, 893725629l, 933894441l, 956918753l, 956956016l, 978216388l, 984144363l, 984343473l, 985228889l, 985608635l, 1008096494l, 1034795055l, 1061516731l, 1072630979l, 1086702776l, 1098275935l, 1158446286l, 1164076954l, 1203101588l, 1285559433l, 1294905420l, 1295032176l, 1330938762l, 1334688255l, 1355478667l, 1449847411l, 1473628958l, 1554785270l, 1560364704l, 1622441276l, 1642064161l, 1649310388l, 1652266624l, 1657404529l, 1669985300l, 1737536513l, 1864492265l, 1871374928l, 1875220140l, 1876237604l, 1901269711l, 1943290117l, 1971710464l, 1973744593l, 2023675948l, 2033424497l, 2036335460l, 2111671993l, 2131562941l, 2174032022l, 2193558684l, 2327315029l, 2327337283l, 2389193531l, 2533828030l, 2664599954l, 2764725614l, 2855745616l, 2900326008l, 2971871435l, 2979448988l, 2981764979l, 2983719314l, 2993533649l, 3015480447l, 3026586399l, 30279706l, 3040996270l})); - map.put("TATTAAAGAGGGT", new TLongArrayList(new long[]{47834277l, 51339873l, 106812955l, 160420298l, 177521724l, 196526850l, 234606229l, 275234488l, 315627885l, 316282111l, 355702780l, 434218134l, 434236964l, 468349697l, 532495717l, 622686721l, 629654458l, 903598494l, 978216389l, 984144364l, 1034795056l, 1046170794l, 1086702777l, 1091963252l, 1104781655l, 1164076955l, 1280515263l, 1345790968l, 1355478668l, 1501306465l, 1622441277l, 1649310389l, 1652266625l, 1667139565l, 1688913882l, 1737536514l, 1787256042l, 1894149955l, 1918928182l, 1921874821l, 2111671994l, 2131206360l, 2131562942l, 2174032023l, 2283497463l, 2284989528l, 2416396297l, 2511216433l, 2552884574l, 2600099576l, 2606292876l, 2682733613l, 2700922743l, 2761940684l, 2894580976l, 2927865839l, 2967899527l, 2971871436l, 2981764980l, 3015480448l, 3015649685l, 3040996271l})); - map.put("ATTAAAGAGGGTG", new TLongArrayList(new long[]{160420299l, 164275159l, 177521725l, 234606230l, 315627886l, 316282112l, 397862806l, 468349698l, 476879994l, 496102952l, 532495718l, 603406443l, 608786460l, 629654459l, 657890216l, 750057722l, 762594521l, 784125219l, 856349426l, 963520065l, 979671361l, 1037394773l, 1045393019l, 1104781656l, 1120590895l, 1164076956l, 1196495676l, 1345790969l, 1508104269l, 1572186604l, 1605741344l, 1614130124l, 1647056033l, 1667139566l, 1702527118l, 1737536515l, 1787256043l, 1852787424l, 1927024088l, 2048234467l, 2111671995l, 2174032024l, 2174903980l, 2237315360l, 2511216434l, 2798450076l, 2962773472l, 3015480449l, 3015649686l, 3029154847l})); - map.put("TTAAAGAGGGTGT", new TLongArrayList(new long[]{164275160l, 177521726l, 220304176l, 315627887l, 349180871l, 420681564l, 440613224l, 468349699l, 474433019l, 526981855l, 570642112l, 608786461l, 629654460l, 750057723l, 762594522l, 813971112l, 833491632l, 853489224l, 856349427l, 866786841l, 960181281l, 971494809l, 978475784l, 1034808497l, 1037394774l, 1104781657l, 1161897694l, 1164076957l, 1244059886l, 1310838979l, 1383105920l, 1456200170l, 1555302522l, 1614927166l, 1647056034l, 1649964666l, 1737536516l, 1742634224l, 1746702177l, 1788735188l, 1899483070l, 2012427339l, 2058439617l, 2111671996l, 2122187758l, 2149209925l, 2174903981l, 2351071926l, 2416810400l, 2555555138l, 2618754283l, 2647668498l, 2815660740l, 2865505276l, 2963883241l, 3015480450l, 3015649687l})); - map.put("TAAAGAGGGTGTA", new TLongArrayList(new long[]{390549295l, 440613225l, 442111038l, 454748526l, 468349700l, 474433020l, 570642113l, 590964128l, 629654461l, 686522915l, 850095663l, 856349428l, 886687081l, 978475785l, 978750600l, 1030635767l, 1079308356l, 1161897695l, 1244059887l, 1255202314l, 1278930219l, 1309535435l, 1310838980l, 1383622233l, 1647734798l, 1742634225l, 1830576288l, 2028205799l, 2108419087l, 2112472184l, 2128164938l, 2157801549l, 2188361416l, 2300325198l, 2555555139l, 2815660741l, 3013151199l})); - map.put("AAAGAGGGTGTAC", new TLongArrayList(new long[]{299095911l, 393559201l, 468349701l, 474955810l, 617858346l, 669102996l, 675505593l, 763469488l, 763470092l, 906646620l, 1030635768l, 1048759244l, 1173339000l, 1196398157l, 1348317938l, 1381133228l, 1383622234l, 1488374522l, 1631880152l, 1647725776l, 1647734799l, 1921791240l, 2010836200l, 2028205800l, 2246239267l, 2289596318l, 2384648216l, 2471789753l, 2904568475l, 3031576160l})); - map.put("AAGAGGGTGTACG", new TLongArrayList(new long[]{412951324l, 468349702l, 600881863l, 669102997l, 1173339001l, 2147286165l, 2246239268l})); - map.put("AGAGGGTGTACGG", new TLongArrayList(new long[]{468349703l, 949919689l, 1100688211l, 1173339002l, 1971729085l})); - map.put("GAGGGTGTACGGG", new TLongArrayList(new long[]{430806892l, 468349704l, 483562144l, 527480019l, 538881786l, 949919690l, 1367740537l, 1809348948l, 2439858585l, 2753776654l, 2779472918l})); - map.put("AGGGTGTACGGGA", new TLongArrayList(new long[]{468349705l, 718569128l, 949919691l, 1465841807l, 2563923173l, 2753776655l, 2781326380l})); - map.put("GGGTGTACGGGAG", new TLongArrayList(new long[]{468349706l, 468456928l, 518302224l, 718569129l, 1012215599l, 1782789127l, 2348518499l})); - map.put("GGTGTACGGGAGT", new TLongArrayList(new long[]{468349707l})); - map.put("GTGTACGGGAGTT", new TLongArrayList(new long[]{382633241l, 468349708l, 2302263166l, 2669507711l})); - map.put("TGTACGGGAGTTT", new TLongArrayList(new long[]{165675197l, 195757033l, 468349709l, 819168003l, 2375073052l, 2669507712l, 2951744438l})); - map.put("GTACGGGAGTTTC", new TLongArrayList(new long[]{468349710l, 2375073053l})); - map.put("TACGGGAGTTTCT", new TLongArrayList(new long[]{468349711l, 559402306l, 1403796911l, 2375073054l, 2736112548l})); - map.put("ACGGGAGTTTCTT", new TLongArrayList(new long[]{120210721l, 276290800l, 302892475l, 468349712l, 1605954375l, 1955194945l, 2299777491l, 2512315068l, 2646142637l, 2736112549l, 2921585951l, 2924666263l})); - map.put("CGGGAGTTTCTTG", new TLongArrayList(new long[]{468349713l, 535356324l, 2198033423l, 2299777492l, 2646142638l})); - map.put("GGGAGTTTCTTGG", new TLongArrayList(new long[]{6492230l, 54725451l, 192990500l, 267352435l, 270819666l, 273467845l, 323985897l, 361475558l, 366090608l, 468349714l, 651184123l, 739244386l, 806608291l, 962130872l, 1004482024l, 1042030545l, 1077833710l, 1153698578l, 1189226966l, 1250349771l, 1261709246l, 1283338679l, 1310849898l, 1363684519l, 1404633584l, 1421519785l, 1557025803l, 1716109803l, 1751071315l, 1791391332l, 1924505196l, 1934758727l, 1936356145l, 2136011717l, 2141503581l, 2219023778l, 2236284056l, 2378721678l, 2391703433l, 2409442076l, 2465792808l, 2547498964l, 2566994188l, 2642279829l, 2701652346l, 2754956254l, 2764559112l, 2766495759l, 2795986557l, 2821449197l, 2867669460l, 2904554822l})); - map.put("GGAGTTTCTTGGT", new TLongArrayList(new long[]{12714454l, 35151265l, 54536316l, 185432612l, 232690521l, 238733216l, 255531771l, 269240817l, 361475559l, 386249629l, 468349715l, 551879994l, 593891073l, 651184124l, 680895814l, 785022886l, 806608292l, 829598169l, 880799951l, 913295644l, 956817504l, 978000588l, 1004482025l, 1010826772l, 1038049986l, 1067382511l, 1101360510l, 1114672401l, 1119386082l, 1153698579l, 1171701454l, 1236766844l, 1250349772l, 1261709247l, 1364645000l, 1421519786l, 1476921468l, 1637379144l, 1639852307l, 1640473950l, 1660520701l, 1751071316l, 1765903492l, 1782245762l, 1841897563l, 1943618178l, 2105957924l, 2120486488l, 2219023779l, 2275548015l, 2405412893l, 2422973794l, 2519775577l, 2535204696l, 2642279830l, 2755560477l, 2765199634l, 2766495760l, 2795986558l, 2821449198l, 2979175453l})); - map.put("GAGTTTCTTGGTA", new TLongArrayList(new long[]{14698073l, 78079204l, 347660714l, 468349716l, 496036092l, 502236732l, 502237706l, 551879995l, 560584678l, 572408233l, 589411609l, 658362266l, 661106122l, 665385885l, 753390243l, 778928722l, 783031672l, 785022887l, 794193391l, 806608293l, 829598170l, 956817505l, 1043890707l, 1062191781l, 1067382512l, 1153698580l, 1214588562l, 1285695107l, 1432104314l, 1476921469l, 1500803098l, 1514405895l, 1634291717l, 1707630760l, 1765903493l, 1841897564l, 1890451974l, 2041841370l, 2105353788l, 2188610176l, 2234473011l, 2391373836l, 2459368738l, 2460055581l, 2486937017l, 2505384035l, 2519775578l, 2642279831l, 2650451970l, 2741192662l, 2756178240l, 2759228242l, 2765199635l, 2804877293l, 2895170767l, 2946465344l, 2974255454l, 3039629845l, 3045061283l})); - map.put("AGTTTCTTGGTAA", new TLongArrayList(new long[]{12795576l, 69573705l, 108710527l, 117677256l, 253555819l, 282245816l, 284092027l, 302553612l, 313832321l, 347660715l, 371773829l, 393741037l, 433458879l, 446785008l, 468349717l, 494243216l, 502237707l, 589411610l, 590033206l, 635156917l, 641647779l, 663240003l, 667229781l, 679449293l, 785022888l, 793149420l, 829598171l, 896702964l, 911502297l, 956817506l, 971684416l, 979741377l, 990013329l, 1003727583l, 1062191782l, 1066089903l, 1111393083l, 1125489944l, 1153698581l, 1167945574l, 1214588563l, 1252059051l, 1312293564l, 1319475062l, 1329978555l, 1376967195l, 1396226532l, 1432104315l, 1448565366l, 1545519579l, 1578186105l, 1586413309l, 1613660471l, 1707630761l, 1765903494l, 1768875202l, 1818906788l, 1841897565l, 1847749126l, 1883021461l, 1887125891l, 1890451975l, 1907174113l, 1938578804l, 1975182768l, 1998878341l, 2053381590l, 2135496599l, 2150487321l, 2234473012l, 2263398049l, 2268100664l, 2425410959l, 2459368739l, 2460055582l, 2625148686l, 2643891103l, 2650451971l, 2656693921l, 2726077606l, 2741192663l, 2801431197l, 2804877294l, 2817639276l, 2973546362l, 2993247211l, 3030682232l, 3039629846l})); - map.put("GTTTCTTGGTAAA", new TLongArrayList(new long[]{69573706l, 69989249l, 172138026l, 203960894l, 211272993l, 225789745l, 253555820l, 318901299l, 336461131l, 347660716l, 357735593l, 358627810l, 359841834l, 371773830l, 393741038l, 433458880l, 443185041l, 468349718l, 624530452l, 628855865l, 641343732l, 641647780l, 663240004l, 679449294l, 705501256l, 715456133l, 847394351l, 854100537l, 860061006l, 865608618l, 872497041l, 879172724l, 911502298l, 932890472l, 956817507l, 969254696l, 979741378l, 985915012l, 987649803l, 990013330l, 1003727584l, 1028112615l, 1033311404l, 1034769587l, 1059176600l, 1062191783l, 1112708088l, 1115819885l, 1118077965l, 1125489945l, 1134215335l, 1153698582l, 1167945575l, 1182052586l, 1198076391l, 1213799694l, 1214588564l, 1229708257l, 1296647379l, 1300490336l, 1319475063l, 1325826723l, 1329978556l, 1342033573l, 1368000361l, 1369700373l, 1396226533l, 1425133161l, 1427764472l, 1463168381l, 1502642255l, 1508245268l, 1513418230l, 1525991180l, 1565847607l, 1578186106l, 1586413310l, 1615530596l, 1700988970l, 1733210442l, 1748931873l, 1768875203l, 1841050172l, 1883021462l, 1887125892l, 1890451976l, 1909664272l, 1959542888l, 1998878342l, 2127219326l, 2133606131l, 2151338241l, 2170637446l, 2180853824l, 2191925139l, 2251217205l, 2263398050l, 2335048768l, 2372861182l, 2425410960l, 2460055583l, 2504919551l, 2612786610l, 2643891104l, 2671769593l, 2758771505l, 2762373933l, 2804877295l, 2878663705l, 2906559229l, 2909711204l, 2917958041l, 2934127584l, 2946249671l, 3053542858l})); - map.put("TTTCTTGGTAAAT", new TLongArrayList(new long[]{7881181l, 35858955l, 57676169l, 67712842l, 69776021l, 85197314l, 99088627l, 108749898l, 117989327l, 192217613l, 199415123l, 203960895l, 211272994l, 213883704l, 222807975l, 225789746l, 234625525l, 249314493l, 264102757l, 283551271l, 294150792l, 302054668l, 302693079l, 350282356l, 381380412l, 387557322l, 391689523l, 407027871l, 409581534l, 419802124l, 443185042l, 461561409l, 468349719l, 487853598l, 516548823l, 522208335l, 528489967l, 557849753l, 579374156l, 609706837l, 624530453l, 626291270l, 632688492l, 632969937l, 641343733l, 651157213l, 658604465l, 659275303l, 662787266l, 669296079l, 671367896l, 693748337l, 704221263l, 704300681l, 705501257l, 711324623l, 713161974l, 718722766l, 719915906l, 749863156l, 755560167l, 800536334l, 803096490l, 807145512l, 815030685l, 822795038l, 824743693l, 827611618l, 839913327l, 847536671l, 849471657l, 851928444l, 855786048l, 865168776l, 868526228l, 871978310l, 903013566l, 907330800l, 925637263l, 925832272l, 935096927l, 943889760l, 946586250l, 947143272l, 948651036l, 950813559l, 951689441l, 957933079l, 958963000l, 966084952l, 969254697l, 970462642l, 979679027l, 980634910l, 996843442l, 1001878310l, 1009523365l, 1017894559l, 1026383955l, 1036281560l, 1044405429l, 1045060312l, 1054625552l, 1062191784l, 1077906845l, 1083922053l, 1084930004l, 1087309123l, 1091457490l, 1110084156l, 1115819886l, 1129260236l, 1137522700l, 1140100001l, 1161439895l, 1184846164l, 1198076392l, 1200877294l, 1202620782l, 1220299966l, 1225913670l, 1245637043l, 1250972276l, 1275383449l, 1288386422l, 1300490337l, 1312084780l, 1314065243l, 1317990257l, 1320187559l, 1325826724l, 1356388395l, 1374534614l, 1376932567l, 1388840266l, 1395363821l, 1398070475l, 1414595333l, 1415934312l, 1416511517l, 1418908236l, 1426261656l, 1464674890l, 1472638618l, 1486784001l, 1487057122l, 1499264357l, 1504444140l, 1515966843l, 1541626430l, 1561654004l, 1565847608l, 1608915956l, 1609282643l, 1609533096l, 1614991285l, 1619905120l, 1623923414l, 1651484989l, 1687928087l, 1696477113l, 1700541427l, 1700831507l, 1708480309l, 1712228728l, 1723162198l, 1733210443l, 1734787075l, 1734982006l, 1790304076l, 1791183373l, 1802540946l, 1811848153l, 1830729221l, 1837944470l, 1841050173l, 1883021463l, 1890873198l, 1902173395l, 1903417808l, 1903857094l, 1965927895l, 1970840974l, 1972122548l, 1978917312l, 1992363531l, 1998878343l, 2021065279l, 2022064506l, 2025297507l, 2031422145l, 2041387013l, 2043222338l, 2069336978l, 2113021428l, 2116808214l, 2119545440l, 2126600978l, 2128772019l, 2133606132l, 2136355311l, 2151338242l, 2151573071l, 2152434299l, 2170637447l, 2251217206l, 2260867469l, 2269065607l, 2282384932l, 2285383085l, 2286619655l, 2332428910l, 2335048769l, 2344013136l, 2344858935l, 2346739813l, 2361521741l, 2380274259l, 2404708865l, 2442281251l, 2492288033l, 2509688425l, 2514861028l, 2533830663l, 2582453516l, 2596432667l, 2601729097l, 2604714306l, 2616750805l, 2622552341l, 2634008806l, 2643891105l, 2653334351l, 2689895437l, 2716560763l, 2733840798l, 2743065113l, 2744088246l, 2777385643l, 2791174643l, 2796623964l, 2804416815l, 2811840053l, 2817224483l, 2829647949l, 2862881542l, 2878663706l, 2898702052l, 2902456947l, 2914878977l, 2917958042l, 2923233754l, 2923448586l, 2924094188l, 2924818268l, 2928328884l, 2945619312l, 2950380673l, 2953276055l, 2953617196l, 2953749003l, 2954042534l, 2956550690l, 2971910010l, 2989008550l, 2989099575l, 2992142555l, 2993217257l, 3002465566l, 3041033215l, 3055144007l, 3057850341l, 3058345466l, 3060799555l})); - map.put("TTCTTGGTAAATC", new TLongArrayList(new long[]{67712843l, 85197315l, 107738448l, 213883705l, 302054669l, 387557323l, 419746101l, 468349720l, 516548824l, 519217773l, 539884102l, 574078570l, 579374157l, 632969938l, 659275304l, 698750782l, 707401542l, 800536335l, 815030686l, 839913328l, 865168777l, 943889761l, 958963001l, 979679028l, 980634911l, 1017894560l, 1040239182l, 1046477236l, 1050531920l, 1077464458l, 1083922054l, 1115819887l, 1166646993l, 1202620783l, 1287390193l, 1300490338l, 1376932568l, 1395363822l, 1406787840l, 1461840539l, 1487057123l, 1515966844l, 1565847609l, 1751362743l, 1844083780l, 1850213384l, 1903857095l, 1998878344l, 2019447813l, 2031422146l, 2122996708l, 2136355312l, 2151573072l, 2160604132l, 2241663494l, 2251217207l, 2269065608l, 2400475132l, 2485601799l, 2509688426l, 2519975936l, 2526225611l, 2582453517l, 2631107564l, 2733165663l, 2777385644l, 2811922449l, 2817224484l, 2859578843l, 2897814733l, 2901692557l, 2917958043l, 2934903830l, 2953276056l, 2953617197l, 2989008551l, 2998517792l, 3002465567l, 3005391414l, 3029239248l, 3058345467l})); - map.put("TCTTGGTAAATCC", new TLongArrayList(new long[]{60356555l, 107738449l, 329854938l, 331514426l, 348861257l, 376232080l, 387557324l, 419746102l, 429318665l, 468349721l, 503456237l, 539884103l, 778906557l, 887806251l, 932142720l, 1055359230l, 1083922055l, 1166646994l, 1329366311l, 1332577170l, 1344322420l, 1395363823l, 1406787841l, 1515569631l, 1636927643l, 1725005372l, 1751362744l, 1780746938l, 1946555202l, 2130789002l, 2136355313l, 2166629802l, 2241663495l, 2269065609l, 2370070765l, 2377921525l, 2400475133l, 2492521757l, 2519975937l, 2526225612l, 2576792061l, 2626390470l, 2631107565l, 2648595463l, 2671618099l, 2681308007l, 2797889914l, 2817224485l, 2822400954l, 2934903831l, 2980221032l, 3005391415l})); - map.put("CTTGGTAAATCCA", new TLongArrayList(new long[]{27770153l, 60356556l, 239197639l, 298902989l, 329854939l, 337541677l, 348861258l, 356336691l, 361857772l, 419746103l, 468349722l, 476153903l, 516457133l, 560535800l, 592096174l, 702652391l, 749135911l, 758426709l, 765691143l, 768484791l, 807607706l, 835665543l, 887806252l, 1038623295l, 1055359231l, 1166646995l, 1189397364l, 1212803522l, 1253902738l, 1359636983l, 1389564179l, 1389855835l, 1395363824l, 1424912262l, 1560870889l, 1637995979l, 2111698141l, 2136355314l, 2198037240l, 2236469176l, 2241663496l, 2243428822l, 2269065610l, 2389988499l, 2390365024l, 2468812056l, 2559116827l, 2587029141l, 2626390471l, 2656605131l, 2733267385l, 2822400955l, 3062598305l})); - map.put("TTGGTAAATCCAG", new TLongArrayList(new long[]{27770154l, 83573814l, 329854940l, 337541678l, 349672262l, 356336692l, 361857773l, 419746104l, 468349723l, 516457134l, 681603336l, 749135912l, 1059432192l, 1166646996l, 1212803523l, 1389564180l, 1469679957l, 1562702584l, 1637995980l, 1653606202l, 1715183995l, 1739119845l, 1941783383l, 1958305282l, 2018337801l, 2064907672l, 2117640316l, 2161883032l, 2187267211l, 2236469177l, 2241663497l, 2271959366l, 2353513249l, 2356863083l, 2407033818l, 2565627844l, 2587029142l, 2656605132l, 2662239856l, 2671573656l, 2733267386l, 2950709853l, 2988350206l, 3045453443l})); - map.put("TGGTAAATCCAGA", new TLongArrayList(new long[]{27770155l, 57771850l, 65838367l, 83573815l, 144908103l, 146517938l, 321764029l, 329854941l, 353302906l, 376221812l, 456847670l, 468349724l, 511258514l, 516457135l, 660685009l, 689383656l, 692040517l, 802634392l, 828048840l, 828428888l, 870105679l, 1126362932l, 1131556220l, 1144814723l, 1280570016l, 1282928159l, 1327680230l, 1360965587l, 1469679958l, 1499844979l, 1527805616l, 1637995981l, 1723375926l, 1811020745l, 1821416812l, 1831515546l, 1926840641l, 1958305283l, 1961878883l, 2018337802l, 2039489976l, 2041437995l, 2107947741l, 2111752164l, 2127107690l, 2242431850l, 2254655279l, 2281048378l, 2286649954l, 2289876274l, 2353513250l, 2356826366l, 2361853826l, 2432319517l, 2565627845l, 2593940657l, 2602641654l, 2609817542l, 2656605133l, 2662239857l, 2671573657l, 2672780822l, 2733267387l, 2865545218l, 2879417904l, 3018008091l, 3045453444l})); - map.put("GGTAAATCCAGAA", new TLongArrayList(new long[]{27770156l, 35185830l, 144908104l, 146517939l, 202036893l, 330511299l, 376221813l, 403626999l, 414401819l, 456847671l, 468349725l, 516457136l, 547841074l, 689383657l, 802634393l, 803641725l, 828048841l, 870105680l, 920740521l, 963595582l, 1106630501l, 1131556221l, 1144814724l, 1277030016l, 1327847251l, 1398507920l, 1488128450l, 1527805617l, 1644333227l, 1652779221l, 1811020746l, 1811946956l, 1821416813l, 1958305284l, 2018337803l, 2039489977l, 2080335904l, 2232687872l, 2242431851l, 2254655280l, 2353513251l, 2356826367l, 2432319518l, 2477344224l, 2529794392l, 2555252632l, 2555326572l, 2559126481l, 2559908626l, 2574232365l, 2609817543l, 2643685585l, 2671573658l, 2902912002l, 2974541592l, 2989003277l, 3018008092l})); - map.put("GTAAATCCAGAAT", new TLongArrayList(new long[]{31743757l, 35185831l, 73360133l, 73390005l, 119784926l, 146517940l, 211314893l, 288836164l, 306460482l, 328065994l, 403627000l, 420851062l, 422575918l, 468349726l, 481209945l, 516457137l, 541996553l, 547841075l, 634567630l, 639844153l, 656386884l, 760104295l, 789710899l, 828048842l, 837389369l, 870105681l, 922887213l, 957812053l, 1028069827l, 1158531042l, 1176527394l, 1237369895l, 1276852610l, 1277030017l, 1316618390l, 1327847252l, 1424371693l, 1656450446l, 1657586413l, 1700142627l, 1715381353l, 1777358705l, 1811020747l, 1811946957l, 1821416814l, 1945027637l, 1958305285l, 2066006387l, 2186918775l, 2232687873l, 2242431852l, 2275649763l, 2332372031l, 2356826368l, 2384908319l, 2462173351l, 2477344225l, 2487816567l, 2574232366l, 2719023966l, 2734198956l, 2902912003l, 2904783433l, 2953914914l, 2964460716l, 3029794079l, 3059556367l})); - map.put("TAAATCCAGAATC", new TLongArrayList(new long[]{47226371l, 74047112l, 94337922l, 166113645l, 196517402l, 213644705l, 240978698l, 261303366l, 295253351l, 310068288l, 322352508l, 328065995l, 332946017l, 423760845l, 440805414l, 450321506l, 468349727l, 514348111l, 541996554l, 547841076l, 596605493l, 599027172l, 629439729l, 652498006l, 671475806l, 672735930l, 684566568l, 706281885l, 766574683l, 789710900l, 798282233l, 798642591l, 802705941l, 886584793l, 1004909190l, 1010704259l, 1019391860l, 1024128239l, 1025996568l, 1056927916l, 1081737966l, 1093776549l, 1093861636l, 1181563554l, 1184101370l, 1185879527l, 1202932406l, 1277030018l, 1286909616l, 1319092192l, 1373388687l, 1496096186l, 1507983809l, 1515280861l, 1523417344l, 1533237561l, 1646746871l, 1657586414l, 1799083693l, 1886396317l, 1943265867l, 1949267129l, 1997504330l, 2044762405l, 2059801199l, 2061578577l, 2124239262l, 2142061746l, 2169115008l, 2173566603l, 2242431853l, 2274597716l, 2287961377l, 2304870659l, 2384908320l, 2487816568l, 2520528004l, 2527754345l, 2557797636l, 2574232367l, 2630756390l, 2643731189l, 2644085268l, 2646989393l, 2757075554l, 2762630312l, 2767528167l, 2771116816l, 2812860562l, 2898550858l, 2902912004l, 2915010654l, 2964222551l, 2983828710l, 2987153632l, 3011003394l, 3033170189l, 3034465096l, 3034502225l, 3034540033l})); - map.put("AAATCCAGAATCA", new TLongArrayList(new long[]{58463424l, 60763651l, 94337923l, 166113646l, 167720042l, 168497015l, 240978699l, 251423126l, 252623228l, 253020929l, 257495940l, 268032852l, 363754626l, 413938427l, 423760846l, 441399943l, 449912867l, 468349728l, 510008571l, 566109613l, 594006663l, 596605494l, 641483182l, 664697874l, 739217734l, 764626991l, 766574684l, 785326712l, 787554993l, 789710901l, 794420747l, 798282234l, 802705942l, 809099001l, 814955411l, 830081943l, 853757276l, 865402984l, 875446054l, 883573210l, 886584794l, 906105561l, 925169422l, 945654894l, 948806580l, 949840248l, 1010737016l, 1053273054l, 1068093861l, 1078193221l, 1081737967l, 1084128317l, 1089142399l, 1097491004l, 1107798958l, 1197633391l, 1227760250l, 1262695307l, 1269244274l, 1295523638l, 1319092193l, 1357690116l, 1370067586l, 1373388688l, 1402378257l, 1421137335l, 1435100991l, 1463267023l, 1486934462l, 1493769006l, 1515280862l, 1525906234l, 1533237562l, 1541850477l, 1631103313l, 1641148452l, 1655115579l, 1657586415l, 1666326529l, 1698951301l, 1781265299l, 1799083694l, 1808682419l, 1837415851l, 1837969009l, 1855983705l, 1913651942l, 2013189921l, 2024616541l, 2054681939l, 2158281782l, 2173566604l, 2195650769l, 2236345345l, 2242431854l, 2265074820l, 2274597717l, 2304870660l, 2347337587l, 2353014609l, 2384908321l, 2385323553l, 2415965852l, 2574232368l, 2619683215l, 2651518384l, 2669741677l, 2727770856l, 2752635768l, 2755299319l, 2767528168l, 2807421636l, 2812860563l, 2813638190l, 2878722840l, 2902912005l, 2914290976l, 2920915496l, 2927442713l, 2943110799l, 2983828711l, 2984998182l, 2985468635l, 3011003395l, 3033170190l, 3034465097l, 3034502226l, 3034540034l, 3061311551l, 3062945299l})); - map.put("AATCCAGAATCAG", new TLongArrayList(new long[]{58463425l, 60763652l, 94875306l, 107794080l, 187857825l, 251423127l, 267051127l, 287474824l, 291683939l, 392743866l, 448016523l, 457539598l, 468349729l, 509312434l, 589822718l, 594006664l, 602809119l, 627255057l, 638627157l, 641483183l, 668377011l, 739217735l, 751948416l, 767617038l, 802705943l, 806696022l, 927046229l, 945654895l, 995909174l, 1028830067l, 1038948388l, 1068093862l, 1084128318l, 1089142400l, 1097491005l, 1271673502l, 1319092194l, 1373207070l, 1373388689l, 1385846807l, 1421775987l, 1459466754l, 1474957500l, 1486934463l, 1489544931l, 1533237563l, 1639464048l, 1657586416l, 1752553531l, 1837969010l, 1900313712l, 1903223662l, 1914509288l, 2024616542l, 2113947152l, 2233948669l, 2255454265l, 2263604192l, 2345019229l, 2370544680l, 2427860526l, 2490621920l, 2528334048l, 2563217762l, 2669741678l, 2724064410l, 2758694970l, 2779716950l, 2800801750l, 2902912006l, 2905791874l, 2920915497l, 2927442714l, 2984998183l, 2985468636l, 3016934627l, 3033170191l, 3034465098l, 3034502227l, 3034540035l})); - map.put("ATCCAGAATCAGG", new TLongArrayList(new long[]{60763653l, 88795061l, 274063388l, 291683940l, 468349730l, 505808029l, 540927428l, 592926256l, 630394611l, 638627158l, 685346425l, 872320384l, 990163072l, 1028830068l, 1055198518l, 1072530086l, 1120192500l, 1229580875l, 1360862693l, 1418583372l, 1459466755l, 1474957501l, 1486934464l, 1487687774l, 1489544932l, 1731041483l, 1752553532l, 1786443743l, 1793413714l, 1805874367l, 1828742166l, 1903223663l, 2004983320l, 2109776023l, 2113947153l, 2293410052l, 2347197548l, 2550405798l, 2590000589l, 2634365582l, 2646272174l, 2655790081l, 2702578782l, 2724064411l, 2920915498l, 3016934628l})); - map.put("TCCAGAATCAGGA", new TLongArrayList(new long[]{10827345l, 103399775l, 211446740l, 271266371l, 274063389l, 389817552l, 396781086l, 407436232l, 473586706l, 483356280l, 497142807l, 505808030l, 515510535l, 592926257l, 689474075l, 698969805l,726200328l, 912463690l, 949333061l, 954890467l, 1020032676l, 1021595626l, 1025340089l, 1035053238l, 1069083998l, 1072530087l, 1073493213l, 1158979261l, 1289905417l, 1303298365l, 1308301410l, 1308515632l, 1333521940l, 1341951308l, 1363954523l, 1369365380l, 1379095811l, 1405780738l, 1427435801l, 1433908768l, 1474957502l, 1489544933l, 1502357900l, 1627802128l, 1686688998l, 1752553533l, 1791768766l, 1916463164l, 1944342723l, 1994329647l, 2004983321l, 2053173473l, 2060188319l, 2077412246l, 2109776024l, 2125725664l, 2129611003l, 2139438545l, 2236729599l, 2237684897l, 2347197549l, 2409200497l, 2488791468l, 2492189574l, 2500618810l, 2503880061l, 2548523880l, 2574821841l, 2584694492l, 2590000590l, 2605258725l, 2623633195l, 2626391286l, 2646272175l, 2655790082l, 2711685724l, 2724064412l, 2741920152l, 2780996595l, 2869212127l, 2870827152l, 2897435110l, 2907062617l, 2944288591l, 3009934641l})); - map.put("CCAGAATCAGGAT", new TLongArrayList(new long[]{19505994l, 163434370l, 172261067l, 175630132l, 182601354l, 182602452l, 195403318l, 211446741l, 219150536l, 226567273l, 236637449l, 241337621l, 271266372l, 335525059l, 351876553l, 407436233l, 483356281l, 545481738l, 565962050l, 580908536l, 592926258l, 686089481l, 705826703l, 737478171l, 794606036l, 895345125l, 1039087732l, 1059684150l, 1072530088l, 1109040480l, 1202224072l, 1212482903l, 1272234119l, 1285982872l, 1304834478l, 1308301411l, 1308515633l, 1321212435l, 1333521941l, 1361708472l, 1396290264l, 1452720825l, 1500580769l, 1502357901l, 1539554725l, 1566023309l, 1698211603l, 1698458590l, 1752553534l, 1851343000l, 1874924590l, 1894469909l, 1947309231l, 2041504641l, 2109776025l, 2125725665l, 2129611004l, 2139438546l, 2146628647l, 2237080646l, 2237684898l, 2267536415l, 2356606379l, 2399889840l, 2492189575l, 2548523881l, 2555327239l, 2577968399l, 2590000591l, 2646272176l, 2705584864l, 2706654770l, 2711685725l, 2724064413l, 2780996596l, 2822694480l, 2900833452l})); - map.put("CAGAATCAGGATA", new TLongArrayList(new long[]{19505995l, 61037264l, 113539602l, 163434371l, 198899729l, 218850354l, 461606678l, 505916026l, 546065917l, 610794607l, 643088316l, 662740673l, 695684008l, 728047443l, 785753831l, 802867990l, 834688696l, 867098480l, 876855788l, 922891778l, 940450867l, 980619194l, 1057309478l, 1118859106l, 1318222372l, 1433079043l, 1452720826l, 1500580770l, 1502357902l, 1533280625l, 1551406885l, 1566023310l, 1627447100l, 1659642187l, 1716557046l, 1732900180l, 1756564310l, 1762318811l, 1796518507l, 1807737446l, 1829896577l, 1835850640l, 1848460297l, 1879567711l, 2005155503l, 2015704343l, 2051906332l, 2384645476l, 2466836996l, 2532867397l, 2593872677l, 3019486153l})); - map.put("AGAATCAGGATAC", new TLongArrayList(new long[]{58115562l, 165524926l, 196607988l, 198899730l, 418840445l, 577922138l, 578105762l, 603032542l, 610794608l, 643088317l, 771158397l, 846275037l, 876855789l, 940224762l, 1226470779l, 1264875019l, 1370344415l, 1374512007l, 1551406886l, 1627447101l, 1716557047l, 1747462729l, 1762318812l, 1807737447l, 1829896578l, 1843062532l, 1879567712l, 1977597434l, 2029497501l, 2162134660l, 2162922055l, 2407261947l, 2560028466l, 2935869886l, 2988553331l, 3019486154l, 3028566068l})); - map.put("GAATCAGGATACA", new TLongArrayList(new long[]{12341352l, 165524927l, 170831349l, 198899731l, 418864343l, 421200234l, 521477579l, 577922139l, 605123826l, 610794609l, 715335901l, 732833725l, 745147456l, 771158398l, 781475772l, 846275038l, 876855790l, 940224763l, 953412448l, 971382658l, 1007504134l, 1196332665l, 1226470780l, 1362584994l, 1472113213l, 1551406887l, 1716557048l, 1718253035l, 1761866530l, 1769388708l, 1829896579l, 1938013074l, 1977597435l, 2022402424l, 2029497502l, 2191098269l, 2363923935l, 2374435604l, 2421951737l, 2431202956l, 2513600683l, 2528682680l, 2560028467l, 2814275515l})); - map.put("AATCAGGATACAA", new TLongArrayList(new long[]{34353035l, 51482545l, 56690490l, 80302984l, 170831350l, 212876404l, 217329695l, 218054786l, 235178288l, 251732161l, 290137119l, 320051695l, 373143211l, 380271361l, 390321494l, 442173902l, 473554903l, 545788992l, 546537676l, 567748797l, 573119872l, 597458413l, 605123827l, 610794610l, 626589993l, 626590421l, 675573218l, 703955906l, 714018724l, 714680493l, 716730381l, 771158399l, 773800994l, 834182637l, 846275039l, 861457588l, 907583837l, 909218032l, 913892254l, 938660651l, 971382659l, 973991360l, 983168571l, 1113992644l, 1196332666l, 1254415699l, 1312904440l, 1324691348l, 1358849450l, 1362584995l, 1472847396l, 1551406888l, 1619671283l, 1624718250l, 1687028376l, 1703681524l, 1761866531l, 1769388709l, 1801679431l, 1888523651l, 1919486982l, 1927655043l, 1938013075l, 1943091867l, 1977928401l, 2018200848l, 2035248292l, 2054294831l, 2067042424l, 2106644412l, 2229050393l, 2250062337l, 2259433094l, 2348581125l, 2349637971l, 2355736674l, 2374435605l, 2421951738l, 2431202957l, 2486003772l, 2542433297l, 2559375846l, 2613057886l, 2732792656l, 2760032640l, 2827069523l, 3014556503l, 3019288207l, 3027552522l, 3029718722l})); - map.put("ATCAGGATACAAT", new TLongArrayList(new long[]{213653915l, 256146597l, 390321495l, 546537677l, 567748798l, 573119873l, 675573219l, 714680494l, 783831781l, 846275040l, 862668374l, 899804369l, 907583838l, 909218033l, 1024603225l, 1050552490l, 1244284366l, 1286243021l, 1358849451l, 1472847397l, 1484850934l, 1514601464l, 1519910893l, 1573087899l, 1724749538l, 1747264294l, 1800897657l, 1810849270l, 1941813541l, 1977928402l, 1979627927l, 2020473098l, 2023940600l, 2107065775l, 2229050394l, 2289282116l, 2293061439l, 2369078446l, 2435372924l, 2528974482l, 2559375847l, 2605604588l, 2761754186l, 3014043631l})); - map.put("TCAGGATACAATG", new TLongArrayList(new long[]{18133123l, 239725354l, 241198392l, 293050485l, 515602712l, 546537678l, 607091318l, 647054569l, 736859333l, 755687090l, 846473070l, 874976026l, 907583839l, 917041264l, 927489985l, 1024603226l, 1050170085l, 1102082354l, 1275007953l, 1286243022l, 1311330965l, 1356154196l, 1427436257l, 1474762924l, 1487545057l, 1511660729l, 1622318539l, 1724749539l, 1809341036l, 1810849271l, 1855997603l, 1936967092l, 1941813542l, 2123626486l, 2189461040l, 2278972783l, 2280900355l, 2293061440l, 2486635491l, 2549611832l, 2583414993l, 2609610079l, 2645347794l, 2739406806l, 2777675144l, 2863550034l, 2932025630l, 2996827183l, 3002496298l, 3052797875l})); - map.put("CAGGATACAATGT", new TLongArrayList(new long[]{389800l, 18133124l, 50396734l, 86415487l, 118250186l, 239725355l, 293050486l, 344906263l, 366548296l, 385920329l, 468354005l, 534331226l, 607091319l, 647054570l, 736859334l, 739212701l, 755687091l, 833782395l, 838474243l, 908984028l, 917041265l, 927489986l, 960469728l, 1022746612l, 1024603227l, 1050170086l, 1062443052l, 1076079694l, 1233515928l, 1365140012l, 1449477711l, 1477942377l, 1644194660l, 1698788610l, 1715539138l, 1758843011l, 1801857099l, 1855997604l, 1894093763l, 1936967093l, 2113786901l, 2123195720l, 2189461041l, 2233152622l, 2259648264l, 2343581714l, 2409723667l, 2506444245l, 2549611833l, 2584721015l, 2609610080l, 2737852762l, 2876956486l, 2931407956l, 2932025631l, 2932810617l, 2936029983l, 2963537975l, 2964149820l, 2986564931l, 2996827184l, 3002496299l})); - map.put("AGGATACAATGTC", new TLongArrayList(new long[]{18133125l, 21206830l, 50396735l, 96914869l, 202885257l, 227554258l, 237641357l, 241539659l, 344906264l, 468354006l, 497841111l, 570703664l, 647054571l, 730637206l, 755687092l, 941427503l, 979549404l, 1015414880l, 1019991054l, 1022746613l, 1024603228l, 1087159478l, 1108053418l, 1137180666l, 1523831792l, 1564474050l, 1644194661l, 1698788611l, 1755981233l, 1758843012l, 1765092294l, 1801857100l, 1813142961l, 1855997605l, 1899436318l, 1918182109l, 2367171108l, 2374183733l, 2506444246l, 2591408314l, 2600749575l, 2931407957l, 2936029984l, 3002496300l})); - map.put("GGATACAATGTCT", new TLongArrayList(new long[]{96914870l, 118331066l, 185573831l, 227554259l, 241539660l, 275100126l, 383840938l, 430797104l, 468354007l, 508621408l, 619218895l, 647054572l, 703028864l, 755687093l, 757100552l, 876297779l, 1024603229l, 1087159479l, 1171139483l, 1426344648l, 1707243300l, 1767470977l, 1775137578l, 1801857101l, 1872537909l, 1918182110l, 1973423572l, 2115581417l, 2275642540l, 2367171109l, 2739764997l, 2883461373l, 3038681933l})); - map.put("GATACAATGTCTC", new TLongArrayList(new long[]{262007740l, 430797105l, 468354008l, 654349488l, 723113108l, 759725152l, 778818612l, 843526200l, 940674552l, 973014924l, 1029273223l, 1052946432l, 1149026241l, 1477842088l, 1531431005l, 1640791048l, 1726483249l, 1872537910l, 1980720860l, 1989867270l, 1999969207l, 2003612659l, 2115581418l, 2165147613l, 2174654918l, 2275642541l, 2994285765l, 3031695923l, 3045862320l})); - map.put("ATACAATGTCTCT", new TLongArrayList(new long[]{100211756l, 195138063l, 218964800l, 238739300l, 326684780l, 333366449l, 411168891l, 449326952l, 468354009l, 575812985l, 651206615l, 718537434l, 723113109l, 733712469l, 755210479l, 818556765l, 843526201l, 925749374l, 1029273224l, 1052946433l, 1062695904l, 1073233673l, 1137574385l, 1149026242l, 1159085906l, 1180921205l, 1232120384l, 1321906850l, 1356768919l, 1397153330l, 1397153390l, 1463922960l, 1483527410l, 1527549072l, 1616148930l, 1640791049l, 1726483250l, 1769111370l, 1798069319l, 1809390062l, 1861991038l, 1933012709l, 1989867271l, 1999969208l, 2003612660l, 2056349494l, 2082863540l, 2115581419l, 2153400320l, 2154150582l, 2156032511l, 2174654919l, 2244205145l, 2282691862l, 2284423538l, 2286921613l, 2387205220l, 2482038985l, 2729626496l, 2756104076l, 2756903734l, 2865024443l, 2895419022l, 2897464117l, 2900849035l, 2911161646l, 2915271185l, 2935266313l, 2946315551l, 2955792511l, 2976732451l, 2982025145l, 2986626235l, 2994285766l, 3007042705l, 3031695924l, 3031729576l, 3035859366l, 3100796161l})); - map.put("TACAATGTCTCTT", new TLongArrayList(new long[]{7807029l, 98890556l, 186259306l, 190250969l, 195138064l, 291099589l, 318801151l, 326684781l, 377016402l, 426959229l, 460334627l, 468354010l, 575812986l, 629515561l, 644092118l, 723113110l, 778970070l, 843526202l, 953508248l, 953613863l, 1011825035l, 1109020073l, 1128033946l, 1136228197l, 1149026243l, 1180921206l, 1233092320l, 1324828493l, 1409013135l, 1420440302l, 1496010205l, 1513078466l, 1527549073l, 1620959917l, 1640264834l, 1656111643l, 1703701233l, 1809390063l, 1838187263l, 1902891762l, 1933012710l, 1970871014l, 1996477016l, 2056349495l, 2115581420l, 2156032512l, 2222428464l, 2286921614l, 2330487066l, 2334997121l, 2340107561l, 2347468132l, 2468748061l, 2482038986l, 2642906355l, 2650247902l, 2701025074l, 2724484740l, 2733681679l, 2856251879l, 2895419023l, 2911161647l, 2935266314l, 2968569410l, 2994285767l, 3030396126l})); - map.put("ACAATGTCTCTTT", new TLongArrayList(new long[]{7807030l, 73436516l, 81854957l, 83783410l, 158604786l, 163274427l, 181114388l, 270280819l, 278878583l, 280578022l, 290007875l, 308548115l, 318801152l, 402128763l, 404982273l, 408622781l, 417519327l, 426959230l, 460334628l, 468354011l, 473523638l, 487654369l, 511834938l, 575812987l, 614617834l, 643896032l, 657752799l, 662350755l, 684599742l, 697787776l, 701609907l, 710614029l, 729581892l, 735929915l, 778970071l, 782068302l, 814637932l, 876960346l, 880417722l, 895380778l, 910447827l, 953508249l, 974717179l, 998623790l, 1062971963l, 1134328901l, 1149026244l, 1163100912l, 1166558672l, 1233092321l, 1234860796l, 1310069345l, 1324828494l, 1333267507l, 1361436479l, 1371420327l, 1372180899l, 1389626953l, 1395624733l, 1441634842l, 1523691390l, 1527549074l, 1533254286l, 1564487624l, 1574475399l, 1575864274l, 1615541079l, 1615680206l, 1620959918l, 1640264835l, 1653719337l, 1656319431l, 1674415149l, 1703701234l, 1707414102l, 1790407673l, 1802091970l, 1811496055l, 1846274351l, 1857442623l, 1902891763l, 1926360237l, 1933012711l, 1939103951l, 1945099063l, 1970871015l, 1974386099l, 1989978941l, 2056349496l, 2057274519l, 2107090153l, 2115581421l, 2156032513l, 2192928201l, 2347468133l, 2357425873l, 2391830666l, 2398515351l, 2419227732l, 2468748062l, 2482038987l, 2501370143l, 2534189961l, 2561018160l, 2600710162l, 2619216344l, 2630754497l, 2650247903l, 2660661946l, 2688006325l, 2706064031l, 2717683980l, 2720054247l, 2770164836l, 2856251880l, 2877368440l, 2895419024l, 2910503802l, 2911161648l, 2955367041l, 2994285768l, 3027454423l, 3029253647l, 3033214716l})); - map.put("CAATGTCTCTTTG", new TLongArrayList(new long[]{19795573l, 70597483l, 74614989l, 78650733l, 109003295l, 170330569l, 218830555l, 269231107l, 308548116l, 360416389l, 364886123l, 388145045l, 468354012l, 473523639l, 488837561l, 489262153l, 513310520l, 521864043l, 614617835l, 655689196l, 684599743l, 807975982l, 814637933l, 913438267l, 923879691l, 1062971964l, 1163100913l, 1189439539l, 1199169712l, 1199289867l, 1201038883l, 1223457217l, 1266499770l, 1324623145l, 1333267508l, 1356003959l, 1365052249l, 1406198040l, 1406814316l, 1495784242l, 1523691391l, 1545068913l, 1615157337l, 1633582289l, 1640542524l, 1674116011l, 1697114315l, 1734625907l, 1800037875l, 1811496056l, 1832905711l, 1846274352l, 1879018422l, 1903510832l, 1945099064l, 1970871016l, 1974386100l, 1992385384l, 2019801012l, 2035217380l, 2056349497l, 2057274520l, 2068356100l, 2123892280l, 2241655300l, 2282909230l, 2419227733l, 2468748063l, 2493156110l, 2591892970l, 2630754498l, 2636357482l, 2654624860l, 2688006326l, 2706064032l, 2717683981l, 2725089227l, 2757367466l, 2856251881l, 2877368441l, 2885741698l, 2908998341l, 2910503803l, 2911161649l, 2939126956l, 2955367042l, 2983279954l, 2994285769l, 3024302635l})); - map.put("AATGTCTCTTTGC", new TLongArrayList(new long[]{50573583l, 61826562l, 112452059l, 113674597l, 152574341l, 152923792l, 163379721l, 209499435l, 218830556l, 218980095l, 269231108l, 387253467l, 415173381l, 446320237l, 450114984l, 468354013l, 517618016l, 528838967l, 533100427l, 614617836l, 625783339l, 661341799l, 712203083l, 720411718l, 744689658l, 770892383l, 800627763l, 895495888l, 987100204l, 988006195l, 988718860l, 995971018l, 1075356616l, 1078320974l, 1108370995l, 1116724266l, 1175240880l, 1176888597l, 1189439540l, 1242001413l, 1266499771l, 1282966830l, 1284127859l, 1291470798l, 1321091476l, 1361232866l, 1365762076l, 1365930195l, 1372180472l, 1408467772l, 1439860544l, 1439999351l, 1440005813l, 1440065793l, 1440068270l, 1440075541l, 1440168881l, 1440183103l, 1440199259l, 1475403383l, 1476599641l, 1487330603l, 1508056407l, 1516103065l, 1612353595l, 1619405399l, 1640542525l, 1660959593l, 1699637545l, 1722887142l, 1773712936l, 1844961688l, 1846274353l, 1865983560l, 1866541666l, 1867010481l, 1882321128l, 1908579005l, 1945099065l, 1957550423l, 1974386101l, 1988832489l, 2051235701l, 2057274521l, 2153634338l, 2155186419l, 2177005870l, 2180248500l, 2191808239l, 2224168952l, 2244900730l, 2263984133l, 2303132878l, 2350833893l, 2371802482l, 2433620262l, 2434729544l, 2457895971l, 2493156111l, 2514244389l, 2522331995l, 2591892971l, 2650414252l, 2683848265l, 2683879380l, 2687659401l, 2706064033l, 2717683982l, 2725270912l, 2744521685l, 2797641651l, 2803292193l, 2804990421l, 2877368442l, 2911161650l, 2939435655l, 2939442237l, 2942960065l, 2943046109l, 2956651358l, 2979031813l, 3017960816l, 3054314038l, 3056112907l})); - map.put("ATGTCTCTTTGCT", new TLongArrayList(new long[]{42045485l, 61826563l, 63799098l, 71206117l, 93796015l, 108795654l, 112452060l, 113674598l, 152923793l, 155092494l, 176295341l, 209499436l, 209554138l, 210778744l, 215153533l, 218830557l, 232307458l, 240587372l, 258262939l, 259874321l, 329435088l, 414514381l, 414590830l, 468354014l, 494687845l, 494817322l, 533100428l, 544269184l, 556895488l, 605425401l, 610577000l, 626953408l, 649543305l, 665962072l, 682457872l, 722437323l, 782379262l, 884927067l, 954829283l, 1048924509l, 1049063455l, 1075356617l, 1077199598l, 1078320975l, 1104081474l, 1116724267l, 1154371306l, 1154630895l, 1175240881l, 1189439541l, 1191631918l, 1250307306l, 1261364921l, 1266499772l, 1321091477l, 1328418992l, 1332977270l, 1356605162l, 1360597282l, 1365762077l, 1380898988l, 1408467773l, 1451528515l, 1469449888l, 1581430131l, 1607478732l, 1612353596l, 1632411540l, 1747719113l, 1773712937l, 1795185564l, 1807389967l, 1839958103l, 1846274354l, 1848062115l, 1851909393l, 1855103758l, 1911183821l, 1930967530l, 1944332396l, 1955948658l, 1975382164l, 1997304952l, 2051235702l, 2056246740l, 2057274522l, 2148695010l, 2153634339l, 2189168852l, 2267813696l, 2275930086l, 2300511038l, 2408701686l, 2434729545l, 2457895972l, 2493156112l, 2514244390l, 2535894442l, 2574198865l, 2624315052l, 2645400920l, 2650414253l, 2706064034l, 2725769530l, 2755568701l, 2792216714l, 2804990422l, 2810282225l, 2817908166l, 2864275271l, 2946051745l, 2953342508l, 2956651359l, 3033062108l, 3101591255l})); - map.put("TGTCTCTTTGCTA", new TLongArrayList(new long[]{70609279l, 71206118l, 93796016l, 191943698l, 215153534l, 253091814l, 280424184l, 364910529l, 440256361l, 446734835l, 446757578l, 468354015l, 491686046l, 520344921l, 552281563l, 555462962l, 568912734l, 588579831l, 591172171l, 623342528l, 638735478l, 658496106l, 668093099l, 693147553l, 726265186l, 736988006l, 759608997l, 760170063l, 773248546l, 788379025l, 796738435l, 833527605l, 854333588l, 868712786l, 942500553l, 949347112l, 969663370l, 971157830l, 1078320976l, 1153499763l, 1154630896l, 1180730290l, 1191631919l, 1211192239l, 1230696554l, 1233294478l, 1248750532l, 1266499773l, 1332665280l, 1355438516l, 1356605163l, 1406145513l, 1408635347l, 1451528516l, 1469449889l, 1484821030l, 1541785701l, 1674722136l, 1679757745l, 1681129477l, 1701281320l, 1728157847l, 1728666175l, 1748938140l, 1772371435l, 1846274355l, 1850843665l, 1851909394l, 1855103759l, 1858433832l, 1877307331l, 1899255868l, 1918477356l, 1930157257l, 1944332397l, 1945460948l, 1954479537l, 1955948659l, 1977485920l, 1981471095l, 2057274523l, 2128688657l, 2146273118l, 2148695011l, 2181541278l, 2189168853l, 2250113810l, 2255723324l, 2267813697l, 2281227120l, 2288184629l, 2296770398l, 2345436088l, 2353745872l, 2396478173l, 2457895973l, 2514244391l, 2582664685l, 2594720036l, 2609156129l, 2630830691l, 2636422775l, 2690159288l, 2735503123l, 2761291207l, 2776926026l, 2808096705l, 2821240953l, 2864275272l, 3008078878l, 3025424922l, 3033062109l})); - map.put("GTCTCTTTGCTAT", new TLongArrayList(new long[]{41516014l, 71206119l, 83580022l, 99327436l, 218251813l, 240702592l, 244823046l, 300293248l, 310817806l, 446734836l, 468354016l, 510276736l, 555462963l, 733445529l, 733985341l, 736151145l, 788379026l, 817242049l, 828084471l, 854333589l, 971157831l, 1040352702l, 1145072705l, 1153499764l, 1184736011l, 1208385732l, 1211192240l, 1301699835l, 1316546328l, 1356605164l, 1453220817l, 1484821031l, 1500430454l, 1523924640l, 1662625604l, 1693864677l, 1701281321l, 1728157848l, 1728666176l, 1748938141l, 1762754736l, 1846274356l, 1877307332l, 1944332398l, 1977485921l, 1996191697l, 2006180203l, 2016970410l, 2128688658l, 2148695012l, 2189168854l, 2193220711l, 2237709850l, 2250113811l, 2267813698l, 2275964541l, 2303643351l, 2353745873l, 2497051865l, 2573224228l, 2594720037l, 2690159289l, 2761291208l, 2808096706l, 2915345837l, 2958273537l, 2967598445l, 2974817625l, 3030607901l})); - map.put("TCTCTTTGCTATA", new TLongArrayList(new long[]{27373686l, 59705176l, 83580023l, 89145282l, 99675910l, 156155584l, 157553589l, 212805789l, 218251814l, 253188880l, 314894768l, 358493462l, 392374795l, 409999734l, 422617755l, 468354017l, 486014649l, 539862183l, 548660486l, 555462964l, 602916567l, 661893440l, 692902920l, 697497049l, 723991230l, 733445530l, 733985342l, 756421630l, 759165773l, 767464559l, 771319120l, 785803943l, 795150439l, 811602411l, 826277135l, 837581678l, 854333590l, 861668463l, 884113203l, 917842715l, 924086917l, 971157832l, 1013388266l, 1040352703l, 1041697379l, 1043125944l, 1076301802l, 1111438204l, 1173734093l, 1184736012l, 1187191568l, 1190090603l, 1195236910l, 1203346806l, 1208934353l, 1271216583l, 1316614169l, 1324899762l, 1328183439l, 1355465726l, 1376422648l, 1409392049l, 1412488367l, 1441894579l, 1453220818l, 1468438250l, 1478719887l, 1552318993l, 1552357781l, 1571534948l, 1622326153l, 1642920422l, 1647881232l, 1651350937l, 1690712240l, 1704307859l, 1728157849l, 1728666177l, 1748938142l, 1751524726l, 1762754737l, 1846274357l, 1848054974l, 1873915589l, 1882191397l, 1927253134l, 1971877218l, 2023840490l, 2046389057l, 2048934734l, 2051609154l, 2053323032l, 2053652713l, 2112950855l, 2142042087l, 2156368415l, 2156850666l, 2176277117l, 2193220712l, 2193690508l, 2229450791l, 2303643352l, 2341174700l, 2403264812l, 2416192105l, 2420062517l, 2547555899l, 2550564789l, 2582311869l, 2619365373l, 2621194358l, 2637719413l, 2654343090l, 2798655633l, 2820870045l, 2888396969l, 2949778950l, 2953999176l, 2967598446l, 2974817626l, 3014491539l, 3017000694l})); - map.put("CTCTTTGCTATAT", new TLongArrayList(new long[]{43963442l, 88324621l, 157553590l, 172256726l, 174517402l, 195575200l, 253154349l, 337311638l, 356262675l, 360514295l, 362368870l, 392374796l, 444895054l, 444977247l, 468354018l, 670798275l, 702874457l, 706186078l, 712148196l, 723991231l, 725516684l, 756421631l, 759165774l, 767464560l, 785803944l, 811602412l, 829197873l, 845459710l, 854333591l, 868334127l, 924086918l, 989335313l, 1013388267l, 1050626323l, 1072201332l, 1151403310l, 1161997097l, 1190090604l, 1195236911l, 1204702818l, 1220920126l, 1246856175l, 1271216584l, 1271275665l, 1324899763l, 1346511908l, 1412488368l, 1441894580l, 1493848667l, 1521521278l, 1528826480l, 1550475388l, 1559949798l, 1622326154l, 1642920423l, 1643568015l, 1704307860l, 1762754738l, 1828395556l, 1839650176l, 1853153230l, 1882191398l, 1904154255l, 1971877219l, 2023724043l, 2038831886l, 2053323033l, 2058610601l, 2122033715l, 2128690010l, 2377395379l, 2409761050l, 2458128237l, 2522328242l, 2609029915l, 2619365374l, 2621194359l, 2637719414l, 2678845803l, 2681173203l, 2682483947l, 2725073375l, 2798655634l, 2820870046l, 2855379911l, 2855628746l, 2891606575l, 2967598447l})); - map.put("TCTTTGCTATATG", new TLongArrayList(new long[]{22073359l, 47153298l, 85575706l, 101624964l, 166233523l, 176906787l, 195575201l, 245221569l, 278732243l, 287945880l, 453607663l, 460891930l, 468354019l, 533255773l, 642733996l, 652816763l, 654726449l, 660586815l, 675612559l, 697187741l, 712148197l, 785405379l, 813613369l, 819903085l, 854333592l, 871473952l, 876658746l, 896576894l, 924086919l, 989335314l, 997363170l, 999262129l, 1001521898l, 1153710730l, 1161997098l, 1207382540l, 1220920127l, 1250972082l, 1271216585l, 1303077348l, 1336019567l, 1378727881l, 1432450726l, 1448391520l, 1493848668l, 1528826481l, 1530934609l, 1549553639l, 1550475389l, 1555252262l, 1648686901l, 1668263659l, 1756401543l, 1828395557l, 1904154256l, 1916085834l, 2014257153l, 2024686362l, 2141465756l, 2152386967l, 2236570228l, 2246829179l, 2270754585l, 2272622572l, 2387090545l, 2387090904l, 2433969484l, 2470306473l, 2619365375l, 2679277673l, 2697504754l, 2737422843l, 2870374822l, 2885105367l, 2895025289l, 2901068332l, 2938945542l, 2950145372l, 3017656212l, 3030915906l})); - map.put("CTTTGCTATATGA", new TLongArrayList(new long[]{37693671l, 47153299l, 64931808l, 73899995l, 103045777l, 245221570l, 278732244l, 293164342l, 313662066l, 434555849l, 453607664l, 454125463l, 468354020l, 562887761l, 617302136l, 659199143l, 675612560l, 716846160l, 744017008l, 758449495l, 794156938l, 801360052l, 850835373l, 854333593l, 871473953l, 876658747l, 918456228l, 924086920l, 967797882l, 967797900l, 989335315l, 999262130l, 1009280173l, 1041097576l, 1207382541l, 1271216586l, 1481911607l, 1501192383l, 1510239930l, 1550475390l, 1552258854l, 1725037721l, 1748686135l, 1796260304l, 1881825866l, 1889941577l, 1916156817l, 1964125294l, 1992539916l, 1992864453l, 2158676251l, 2183037850l, 2228353801l, 2241972839l, 2346214956l, 2520236161l, 2536524330l, 2737422844l, 2870374823l, 2887478270l, 2895025290l, 2901068333l, 2906241645l, 2923168318l, 2938945543l, 2943172923l, 2963204179l, 2963286021l, 2977961046l, 2989274269l, 3010097624l, 3022270358l})); - map.put("TTTGCTATATGAC", new TLongArrayList(new long[]{58515324l, 64931809l, 80285021l, 81329357l, 87854622l, 158406174l, 209904009l, 264327955l, 268056239l, 301294427l, 313662067l, 353751729l, 373413057l, 430080153l, 468354021l, 513875160l, 565149426l, 575963430l, 624381603l, 672432063l, 710869240l, 746171677l, 747159844l, 749185267l, 755892587l, 791941438l, 794156939l, 802055106l, 805167476l, 819619765l, 869454356l, 886910881l, 918456229l, 919081684l, 967483771l, 1009280174l, 1041956075l, 1186876214l, 1189358221l, 1243058439l, 1362431582l, 1427167869l, 1481911608l, 1488475226l, 1516298736l, 1519249320l, 1725210369l, 1748686136l, 1826034232l, 1881825867l, 1889941578l, 1982756952l, 1992539917l, 2044044374l, 2158676252l, 2164965866l, 2229114488l, 2246529992l, 2331564337l, 2360539714l, 2435541624l, 2649087359l, 2739725691l, 2811706966l, 2893222750l, 2912998316l, 2923168319l, 2938945544l, 2963355002l, 3010097625l, 3014281811l, 3014790039l, 3022270359l})); - map.put("TTGCTATATGACC", new TLongArrayList(new long[]{58515325l, 100410189l, 241310765l, 264749385l, 268056240l, 301294428l, 313434402l, 313662068l, 353719773l, 359639357l, 441262467l, 442616923l, 468354022l, 501380959l, 565409552l, 624381604l, 672432064l, 746171678l, 755892588l, 779449921l, 886157394l, 892089897l, 966735686l, 1006025767l, 1009280175l, 1013687961l, 1041956076l, 1052321175l, 1099338601l, 1266552430l, 1411692740l, 1619579652l, 1633059691l, 1725210370l, 1738614762l, 1759028305l, 1760383695l, 1826034233l, 1860674537l, 1981432649l, 1982756953l, 1983682280l, 2031377788l, 2031377825l, 2044044375l, 2140624983l, 2147890062l, 2158676253l, 2229114489l, 2246529993l, 2255906359l, 2301977954l, 2435541625l, 2513525033l, 2649087360l, 2749210062l, 2923570736l, 2925311317l, 2928978689l, 3014047651l, 3022270360l})); - map.put("TGCTATATGACCT", new TLongArrayList(new long[]{43902646l, 55622367l, 58515326l, 86420143l, 94670103l, 147110993l, 158136318l, 241310766l, 268056241l, 279388393l, 282219453l, 301294429l, 313434403l, 313662069l, 331137402l, 359639358l, 468354023l, 498752891l, 501380960l, 520492331l, 559203487l, 565409553l, 598073775l, 616474631l, 672432065l, 706651613l, 755892589l, 781104650l, 828233233l, 966735687l, 998204812l, 1013687962l, 1041956077l, 1097695612l, 1099338602l, 1129524985l, 1157779290l, 1201827964l, 1266552431l, 1278961296l, 1411692741l, 1431516153l, 1507126464l, 1633059692l, 1651687270l, 1680958172l, 1725210371l, 1738614763l, 1760383696l, 1825949696l, 1826034234l, 1845107263l, 1860674538l, 2051196350l, 2113492709l, 2116422425l, 2140624984l, 2143284247l, 2143363147l, 2167733236l, 2255906360l, 2362985197l, 2435541626l, 2479736717l, 2620748945l, 2649087361l, 2923570737l, 3022270361l})); - map.put("GCTATATGACCTT", new TLongArrayList(new long[]{22616872l, 27770210l, 39590998l, 55622368l, 58090007l, 58515327l, 61012353l, 63564328l, 84203828l, 91871140l, 94670104l, 114337880l, 144052054l, 147110994l, 154079528l, 158136319l, 174636572l, 199798521l, 206514764l, 212025510l, 212381436l, 213678784l, 215628211l, 217853570l, 241310767l, 253658704l, 268056242l, 301294430l, 308594740l, 313662070l, 315624399l, 317764574l, 320371296l, 331137403l, 349485176l, 369473115l, 373990403l, 468354024l, 469258879l, 501380961l, 520492332l, 524360645l, 533289862l, 538366943l, 548045266l, 565409554l, 598073776l, 668577361l, 672432066l, 680726835l, 690944039l, 695295214l, 706651614l, 709682625l, 713475078l, 714419019l, 728103371l, 735617570l, 744004511l, 748458684l, 755892590l, 790993005l, 805957700l, 816812655l, 819719757l, 827921014l, 828233234l, 829962275l, 843408376l, 865467491l, 867400672l, 912512484l, 998204813l, 1013687963l, 1034642937l, 1041956078l, 1050733878l, 1086667056l, 1091400172l, 1111471976l, 1117575258l, 1129524986l, 1147081247l, 1158435540l, 1163999355l, 1168718912l, 1259366627l, 1260023258l, 1262212430l, 1267131927l, 1278961297l, 1303401994l, 1310859019l, 1330374334l, 1354260638l, 1384438187l, 1417362146l, 1432640656l, 1464772902l, 1498292978l, 1507423230l, 1546598665l, 1637315654l, 1651687271l, 1661675278l, 1665108900l, 1717656640l, 1725210372l, 1752900716l, 1760383697l, 1788135586l, 1795870014l, 1822125559l, 1825949697l, 1826034235l, 1833457461l, 1835543167l, 1845587735l, 1845957581l, 1856346566l, 1889076805l, 1895572135l, 1896588744l, 1902349771l, 1917499248l, 1930177018l, 1931498178l, 1938768035l, 1940952187l, 1945018091l, 1996221092l, 2028753276l, 2041012751l, 2048687188l, 2056216078l, 2057993950l, 2059555342l, 2113492710l, 2116422426l, 2117597182l, 2143363148l, 2167733237l, 2186978352l, 2255906361l, 2271153206l, 2276070861l, 2278900310l, 2292226352l, 2295853283l, 2374803253l, 2383585936l, 2402417690l, 2438751388l, 2460969456l, 2479736718l, 2505987016l, 2622063894l, 2649087362l, 2667924214l, 2720935405l, 2749940449l, 2758285447l, 2821595412l, 2864824691l, 2914107199l, 2919246556l, 2923570738l, 2925466694l, 2949488102l, 2958219423l, 2977356486l, 2980996994l, 3008866538l, 3013353298l, 3022270362l, 3022484106l, 3051119932l})); - map.put("CTATATGACCTTG", new TLongArrayList(new long[]{22616873l, 31821073l, 39590999l, 58515328l, 58651502l, 61012354l, 63564329l, 81822092l, 84203829l, 91048597l, 91871141l, 114337881l, 120492848l, 144052055l, 147110995l, 174636573l, 206514765l, 212025511l, 212381437l, 213678785l, 215628212l, 221046378l, 224595017l, 226585788l, 241310768l, 253658705l, 268056243l, 268604270l, 295535478l, 303180142l, 308594741l, 313662071l, 317764575l, 320371297l, 325054728l, 331379815l, 369473116l, 373990404l, 377240012l, 445154764l, 468354025l, 478899051l, 501380962l, 506723878l, 533289863l, 538366944l, 553573688l, 565409555l, 601313184l, 607455223l, 632417699l, 636989806l, 637547197l, 651150062l, 678482144l, 680726836l, 695295215l, 706651615l, 709682626l, 713475079l, 714419020l, 735617571l, 744004512l, 746387201l, 748458685l, 755892591l, 759605354l, 775500751l, 790993006l, 819442460l, 819719758l, 827921015l, 829962276l, 851577915l, 865467492l, 973475060l, 1013687964l, 1034642938l, 1050733879l, 1111471977l, 1117575259l, 1126796506l, 1129524987l, 1147444459l, 1169189024l, 1184320829l, 1193764851l, 1219203303l, 1231731179l, 1303401995l, 1310859020l, 1322170864l, 1330374335l, 1354260639l, 1384438188l, 1384868408l, 1413810545l, 1432640657l, 1440333377l, 1464772903l, 1498292979l, 1507423231l, 1530140940l, 1546598666l, 1559590390l, 1561937242l, 1637315655l, 1646206292l, 1661675279l, 1760383698l, 1795870015l, 1833457462l, 1845587736l, 1845957582l, 1850655868l, 1852390607l, 1854583866l, 1856225694l, 1856346567l, 1888772746l, 1889076806l, 1895572136l, 1896588745l, 1899963190l, 1917499249l, 1930177019l, 1938768036l, 1940952188l, 1945018092l, 1960161832l, 1968987101l, 1982865228l, 1996221093l, 2042720478l, 2048687189l, 2059555343l, 2073704429l, 2130741848l, 2145619411l, 2186978353l, 2227243470l, 2255906362l, 2271153207l, 2374803254l, 2379891288l, 2387012893l, 2424438137l, 2427251574l, 2437507803l, 2438751389l, 2460969457l, 2479736719l, 2487127137l, 2505987017l, 2520220398l, 2554647647l, 2555457165l, 2565026994l, 2601464593l, 2617260411l, 2617399624l, 2642173675l, 2649087363l, 2667924215l, 2677177415l, 2700871087l, 2720935406l, 2741761406l, 2749940450l, 2756215946l, 2758285448l, 2821595413l, 2854597004l, 2854957129l, 2914107200l, 2919246557l, 2925466695l, 2949488103l, 2958219424l, 2977356487l, 2980996995l, 3007860726l, 3008866539l, 3013353299l, 3022484107l, 3030451133l})); - map.put("TATATGACCTTGA", new TLongArrayList(new long[]{24079753l, 31821074l, 58515329l, 61012355l, 63564330l, 120492849l, 163345541l, 221046379l, 253658706l, 259267489l, 268056244l, 269261455l, 276797846l, 297651976l, 303180143l, 308594742l, 313662072l, 357365739l, 369473117l, 401923670l, 407014186l, 415327071l, 445154765l, 447375330l, 468354026l, 469793909l, 478899052l, 601313185l, 624503703l, 636989807l, 651150063l, 667101195l, 680726837l, 703123324l, 709964538l, 730628849l, 731955840l, 735617572l, 755892592l, 775500752l, 788059370l, 790993007l, 819442461l, 819719759l, 827921016l, 836087794l, 838758989l, 840029210l, 852389974l, 853516459l, 896564562l, 932382088l, 933124006l, 956374222l, 959091404l, 970147904l, 996019895l, 996902679l, 1010716896l, 1013687965l, 1048372964l, 1050733880l, 1072586817l, 1085817644l, 1087960496l, 1126796507l, 1129524988l, 1133366257l, 1184320830l, 1193764852l, 1243958082l, 1249174917l, 1259679770l, 1285181250l, 1303401996l, 1305745379l, 1322170865l, 1344111485l, 1377591995l, 1440333378l, 1489141655l, 1494612488l, 1495875402l, 1507423232l, 1546598667l, 1561171785l, 1576003453l, 1643810083l, 1644467152l, 1661675280l, 1686106004l, 1737344486l, 1795870016l, 1800184566l, 1828329961l, 1833457463l, 1845957583l, 1856225695l, 1889076807l, 1938768037l, 1940952189l, 1950462271l, 1954721542l, 1960161833l, 1968745802l, 1990284797l, 2000851878l, 2044333913l, 2059555344l, 2145619412l, 2168265728l, 2186978354l, 2192757182l, 2255906363l, 2299907398l, 2385804871l, 2479736720l, 2490757008l, 2533002254l, 2554345212l, 2554647648l, 2601464594l, 2638312665l, 2642173676l, 2642204755l, 2643049664l, 2677177416l, 2681952182l, 2720935407l, 2758285449l, 2800625210l, 2880928458l, 2914107201l, 2919246558l, 2938468424l, 3013353300l, 3059450761l})); - map.put("ATATGACCTTGAA", new TLongArrayList(new long[]{1712024l, 16759278l, 61012356l, 68928876l, 71807112l, 73158666l, 73893172l, 82576376l, 93593632l, 163345542l, 192138537l, 230680069l, 268056245l, 293993329l, 297651977l, 308594743l, 313662073l, 324867177l, 327256423l, 407014187l, 408453024l, 415327072l, 436518791l, 444612483l, 445154766l, 468354027l, 478899053l, 511917326l, 573644560l, 581030615l, 593587933l, 596684838l, 616093234l, 651150064l, 656091942l, 672865221l, 680726838l, 703123325l, 746802587l, 755892593l, 775500753l, 788284427l, 790993008l, 807910629l, 819442462l, 819858292l, 827921017l, 836087795l, 837102526l, 840029211l, 853516460l, 856868529l, 922234527l, 932382089l, 946815389l, 956882634l, 995978285l, 996902680l, 1026845430l, 1043462158l, 1071093236l, 1075622017l, 1085817645l, 1087960497l, 1091855834l, 1112925258l, 1139252680l, 1184320831l, 1192113255l, 1220278390l, 1229004385l, 1243958083l, 1267166501l, 1285181251l, 1329001271l, 1331297382l, 1335396396l, 1468313555l, 1472995536l, 1507423233l, 1512033731l, 1515039544l, 1569558406l, 1577287012l, 1616144684l, 1634908376l, 1643810084l, 1660595793l, 1712622709l, 1737344487l, 1774314488l, 1820982781l, 1841472779l, 1842019659l, 1856225696l, 1874402092l, 1938768038l, 1950462272l, 1954721543l, 1965232271l, 1979221368l, 2064470923l, 2153617769l, 2187257353l, 2232654256l, 2243069973l, 2299907399l, 2385804872l, 2529645746l, 2533002255l, 2554345213l, 2591814475l, 2601464595l, 2626104993l, 2628271343l, 2642173677l, 2677177417l, 2681952183l, 2692310343l, 2711719474l, 2757626768l, 2769968611l, 2773102172l, 2907631444l, 2914107202l, 2914974425l, 2919246559l, 2970726059l, 2974563953l, 2983027570l, 3032392727l, 3040186614l})); - map.put("TATGACCTTGAAA", new TLongArrayList(new long[]{73893173l, 192138538l, 248791975l, 252326901l, 268056246l, 274185344l, 293993330l, 308661942l, 325554206l, 392199184l, 407014188l, 422549362l, 444612484l, 468354028l, 478899054l, 482545369l, 511917327l, 533923714l, 558620132l, 581668801l, 589710480l, 591057284l, 596684839l, 610703826l, 616093235l, 626255237l, 650622030l, 746802588l, 788284428l, 819814814l, 828724642l, 848593825l, 857927630l, 954274662l, 962083962l, 993440085l, 1029340040l, 1087960498l, 1091855835l, 1109635298l, 1175434324l, 1180739078l, 1187329651l, 1188359720l, 1192907062l, 1212651551l, 1220278391l, 1245405183l, 1322761103l, 1336104254l, 1424848958l, 1468313556l, 1507423234l, 1529945549l, 1564703787l, 1569558407l, 1577287013l, 1624288702l, 1643810085l, 1647291085l, 1660595794l, 1730547497l, 1810316476l, 1820982782l, 1841472780l, 1842019660l, 1848383365l, 1853054692l, 1910670417l, 1938768039l, 1945808438l, 1960312031l, 1979221369l, 2010902821l, 2016603364l, 2018264421l, 2064470924l, 2076061780l, 2104275782l, 2132047661l, 2240774273l, 2240911451l, 2243069974l, 2287128209l, 2385804873l, 2556459766l, 2559162295l, 2619256637l, 2628371431l, 2634598165l, 2642173678l, 2672167003l, 2676905198l, 2680776404l, 2711719475l, 2769968612l, 2865739649l, 2876548263l, 2895385149l, 2974563954l, 2974863673l, 3042030590l})); - map.put("ATGACCTTGAAAA", new TLongArrayList(new long[]{50056945l, 73893174l, 76705772l, 77746115l, 114990501l, 115322563l, 120025811l, 172885042l, 211747798l, 219829669l, 230769460l, 232186120l, 246326574l, 248791976l, 251414150l, 258800430l, 293993331l, 308661943l, 319075862l, 322436202l, 322969494l, 325554207l, 334308180l, 337862480l, 363222311l, 371393684l, 374256377l, 391290281l, 392114933l, 394914586l, 407014189l, 411709275l, 413090407l, 468354029l, 477127212l, 511917328l, 522365969l, 525391608l, 525888196l, 548128887l, 551780151l, 558620133l, 574006879l, 581668802l, 591057285l, 591196278l, 608352215l, 610703827l, 616185680l, 617066896l, 626255238l, 650622031l, 699884694l, 710782593l, 733230605l, 736341991l, 738463999l, 743515519l, 749246253l, 755499314l, 767564808l, 770847639l, 788284429l, 806757729l, 819814815l, 828724643l, 843241180l, 867403224l, 874361508l, 954274663l, 957478244l, 972055402l, 995491681l, 997685177l, 1004483531l, 1020054670l, 1025608831l, 1029340041l, 1032941637l, 1036139436l, 1081700675l, 1096317633l, 1107599638l, 1109635299l, 1126600018l, 1156417809l, 1180739079l, 1192907063l, 1192917882l, 1200053401l, 1212651552l, 1220278392l, 1245405184l, 1263046916l, 1282364938l, 1346478822l, 1348979138l, 1353655322l, 1355653319l, 1359111219l, 1386086447l, 1404739975l, 1404986223l, 1417522607l, 1448486053l, 1449885748l, 1471106397l, 1507423235l, 1512065726l, 1533915322l, 1540049740l, 1543231219l, 1562404018l, 1564703788l, 1584716716l, 1585102967l, 1585731381l, 1611672141l, 1623263650l, 1624288703l, 1647291086l, 1660337713l, 1660595795l, 1662900327l, 1715340973l, 1730547498l, 1745383557l, 1764632892l, 1767664220l, 1796726597l, 1809298207l, 1810316477l, 1812882100l, 1820982783l, 1848383366l, 1856134946l, 1876217453l, 1881973927l, 1887463486l, 1896155616l, 1901002120l, 1910670418l, 1917500398l, 1922528337l, 1930858432l, 1938768040l, 1945808439l, 1967431146l, 1976432791l, 1980022355l, 1994070457l, 2013059418l, 2016603365l, 2035903235l, 2061308744l, 2064470925l, 2076061781l, 2142434078l, 2155762412l, 2155786263l, 2157069887l, 2194698157l, 2223005394l, 2225029819l, 2253391203l, 2287128210l, 2338465516l, 2343519863l, 2359208246l, 2385995555l, 2444721770l, 2463517278l, 2475732395l, 2486955703l, 2520072683l, 2544396358l, 2555822457l, 2556459767l, 2559162296l, 2560077487l, 2588407923l, 2619256638l, 2631337724l, 2634598166l, 2647926545l, 2648933128l, 2672167004l, 2676905199l, 2689581507l, 2698843199l, 2732599826l, 2802102747l, 2809153421l, 2818141196l, 2876548264l, 2876649123l, 2886208656l, 2895385150l, 2918794172l, 2919840838l, 2928581848l, 2943106903l, 2949815691l, 2970562900l, 2978802986l, 2999071744l, 3025829433l, 3035188709l, 3040015681l, 3054723461l})); - map.put("TGACCTTGAAAAT", new TLongArrayList(new long[]{7298409l, 24409815l, 61190673l, 91887660l, 96542649l, 157323584l, 172885043l, 174505044l, 181241272l, 181455751l, 185841121l, 196315726l, 208432156l, 211747799l, 214110593l, 246326575l, 258166344l, 319697071l, 322436203l, 322728767l, 337862481l, 351757046l, 374256378l, 382875869l, 391840462l, 407014190l, 414160437l, 418717038l, 426836280l, 441886296l, 444066976l, 458941007l, 468354030l, 470538520l, 515741057l, 525475142l, 528207455l, 551780152l, 591196279l, 604878775l, 610703828l, 616185681l, 620377387l, 650544434l, 650622032l, 685155425l, 696400447l, 700533568l, 711253836l, 733230606l, 736341992l, 743515520l, 745711995l, 749246254l, 767564809l, 771484582l, 806757730l, 819814816l, 820885801l, 827900409l, 852987027l, 933496045l, 934694847l, 943311507l, 953621434l, 958647110l, 967052225l, 977390884l, 997685178l, 1005341969l, 1010509616l, 1042442781l, 1055246846l, 1056309683l, 1096317634l, 1107599639l, 1139894132l, 1172939922l, 1173258719l, 1180739080l, 1192723468l, 1193928026l, 1245405185l, 1275493748l, 1298282458l, 1298793664l, 1316472926l, 1331413160l, 1344082480l, 1346478823l, 1348979139l, 1355653320l, 1369574983l, 1386086448l, 1387566851l, 1392612820l, 1405965045l, 1448486054l, 1451965353l, 1452458453l, 1484945105l, 1525147361l, 1531457043l, 1564703789l, 1574115501l, 1576016475l, 1584704854l, 1585091106l, 1614605569l, 1624288704l, 1661780030l, 1662900328l, 1718969874l, 1759818168l, 1789019875l, 1791060442l, 1807005647l, 1809298208l, 1838266226l, 1872118992l, 1881973928l, 1896223380l, 1908092487l, 1910670419l, 1910697155l, 1917500399l, 1938768041l, 1945808440l, 1967431147l, 1975596055l, 1976432792l, 1980022356l, 1983217736l, 2014840381l, 2015036220l, 2032221344l, 2061308745l, 2065163605l, 2077017970l, 2107120683l, 2173787244l, 2225029820l, 2226192848l, 2228995116l, 2243610801l, 2253391204l, 2282058634l, 2287128211l, 2343519864l, 2360201617l, 2385995556l, 2436326528l, 2463517279l, 2468463362l, 2476011116l, 2486955704l, 2503551536l, 2567073568l, 2567138521l, 2582206929l, 2589694027l, 2604511677l, 2618146564l, 2620862737l, 2631337725l, 2634598167l, 2646072058l, 2698843200l, 2712869247l, 2735620275l, 2744138545l, 2759349238l, 2761966439l, 2774688701l, 2809153422l, 2827045927l, 2865007016l, 2886208657l, 2894141334l, 2927665310l, 2928581849l, 2943106904l, 2949815692l, 2961926024l, 2973095429l, 2978802987l, 3015509136l, 3026789158l, 3033256814l, 3035188710l, 3035260395l, 3042095632l, 3054723462l})); - map.put("GACCTTGAAAATC", new TLongArrayList(new long[]{63882256l, 261945490l, 270926866l, 322436204l, 331275977l, 351757047l, 407014191l, 441886297l, 453102745l, 468354031l, 470538521l, 491092355l, 528207456l, 587574244l, 604878776l, 650544435l, 668220517l, 672469425l, 820885802l, 958647111l, 1026905262l, 1107599640l, 1161116705l, 1188709552l, 1212661911l, 1252164564l, 1275493749l, 1316472927l, 1331413161l, 1344082481l, 1367822790l, 1386086449l, 1387566852l, 1397046926l, 1452458454l, 1492263480l, 1541849503l, 1574115502l, 1617272927l, 1629238252l, 1748909254l, 1791060443l, 1804470674l, 1809298209l, 1938768042l, 1952969745l, 1957411626l, 1964304235l, 1975596056l, 2007077227l, 2022453475l, 2052866219l, 2067014554l, 2107120684l, 2225029821l, 2228995117l, 2256896058l, 2282058635l, 2343519865l, 2385995557l, 2486955705l, 2503551537l, 2604511678l, 2618146565l, 2620862738l, 2631337726l, 2744138546l, 2886200593l, 2886208658l, 2896139145l, 2943106905l, 2978802988l, 3051724621l, 3054723463l})); - map.put("ACCTTGAAAATCT", new TLongArrayList(new long[]{2892505l, 52623884l, 62048576l, 62962808l, 63882257l, 64658715l, 75694425l, 81234633l, 100989130l, 103011372l, 114209888l, 114936676l, 168222107l, 169104687l, 181785974l, 183987775l, 201457490l, 220570974l, 225313062l, 225359207l, 256490377l, 261945491l, 270926867l, 308001461l, 331275978l, 351757048l, 387137297l, 388256892l, 409824298l, 453102746l, 456338048l, 463784940l, 464988356l, 468354032l, 468933181l, 518589665l, 528207457l, 574257071l, 587574245l, 593370985l, 595722358l, 604878777l, 655891273l, 663157068l, 668220518l, 686211255l, 769023199l, 778253283l, 795583446l, 796938243l, 803759853l, 807596551l, 811208809l, 820885803l, 836366446l, 846998266l, 848547407l, 863529793l, 868809993l, 872497151l, 873589472l, 887662141l, 967588905l, 977076954l, 995650220l, 1045951579l, 1076238526l, 1107599641l, 1115172036l, 1115212375l, 1119088536l, 1126353227l, 1166292494l, 1181692462l, 1236629194l, 1252164565l, 1265813306l, 1275320678l, 1316472928l, 1346759515l, 1386086450l, 1397046927l, 1410047604l, 1414094581l, 1420577447l, 1444905495l, 1463377132l, 1501526252l, 1501845650l, 1508351420l, 1508721557l, 1518743504l, 1538426161l, 1541849504l, 1574115503l, 1613618462l, 1629238253l, 1649895107l, 1665925223l, 1675377771l, 1685745541l, 1698613863l, 1699098205l, 1713560303l, 1743246965l, 1748192340l, 1791060444l, 1797977128l, 1811373889l, 1938768043l, 1943032520l, 1966277468l, 1975596057l, 2007077228l, 2055655715l, 2153158660l, 2162428519l, 2162603649l, 2225029822l, 2228995118l, 2253900112l, 2260178107l, 2280579887l, 2290886085l, 2413414365l, 2431607605l, 2432423721l, 2483683815l, 2487284063l, 2500364222l, 2503551538l, 2570880799l, 2590090938l, 2611614424l, 2613470414l, 2618146566l, 2620862739l, 2628084799l, 2651516612l, 2668945107l, 2734598707l, 2753240960l, 2766429766l, 2802443571l, 2861935430l, 2907306737l, 2944928907l, 2970672715l, 2995316977l, 2998227943l, 3021311669l, 3040133246l, 3051724622l, 3059864490l})); - map.put("CCTTGAAAATCTT", new TLongArrayList(new long[]{10121691l, 39495262l, 40978586l, 63882258l, 96829898l, 100763334l, 114936677l, 117912445l, 166245525l, 169173890l, 181785975l, 220570975l, 257198819l, 261945492l, 304232058l, 308001462l, 335640600l, 396461747l, 397127379l, 402744077l, 409824299l, 449662953l, 453102747l, 455843535l, 463784941l, 464988357l, 468354033l, 468933182l, 470015558l, 515761450l, 528207458l, 573999255l, 579987534l, 587574246l, 590545063l, 595722359l, 612998134l, 655891274l, 666640894l, 688065799l, 702831559l, 724947861l, 726439027l, 732699080l, 767066398l, 796938244l, 803759854l, 828257378l, 846998267l, 848547408l, 849363583l, 858006595l, 872497152l, 931708885l, 956772605l, 958906507l, 967588906l, 1039775981l, 1115172037l, 1115212376l, 1160631490l, 1168020308l, 1181765719l, 1191602686l, 1203464544l, 1211190065l, 1227658717l, 1249237672l, 1252164566l, 1285022415l, 1298197791l, 1298891921l, 1325631788l, 1326377138l, 1332989245l, 1366104611l, 1371025905l, 1376048268l, 1386560965l, 1410047605l, 1411692455l, 1411949404l, 1414094582l, 1420577448l, 1469712635l, 1501845651l, 1508351421l, 1508400699l, 1518061392l, 1542137730l, 1574115504l, 1615833945l, 1619347352l, 1628478492l, 1629238254l, 1685745542l, 1687638877l, 1700066540l, 1748192341l, 1764713419l, 1797977129l, 1850401883l, 1901214084l, 1924824653l, 1933707402l, 1973355162l, 2011276753l, 2019358236l, 2029734748l, 2081817670l, 2151144425l, 2153158661l, 2173430538l, 2173486653l, 2222390662l, 2225029823l, 2247383223l, 2255707222l, 2264212286l, 2290886086l, 2292139428l, 2331215171l, 2342451785l, 2349598601l, 2356019084l, 2356429596l, 2409616657l, 2431607606l, 2432423722l, 2470277710l, 2495947914l, 2503551539l, 2522007153l, 2526813269l, 2559539965l, 2603379866l, 2611614425l, 2618146567l, 2620862740l, 2630903385l, 2646653957l, 2716519515l, 2734598708l, 2753240961l, 2763771894l, 2766429767l, 2802443572l, 2861935431l, 2893020666l, 2898409740l, 2967521687l, 2970672716l, 2989958284l, 3021311670l, 3040133247l, 3051724623l})); - map.put("CTTGAAAATCTTC", new TLongArrayList(new long[]{62177439l, 67816068l, 72688452l, 80868891l, 84904244l, 96829899l, 100763335l, 106164081l, 174929656l, 183017903l, 192602027l, 254709848l, 257198820l, 272883018l, 281554375l, 286048046l, 334559055l, 346343411l, 366429321l, 374439057l, 404019494l, 408035775l, 423045008l, 443778789l, 455843536l, 464988358l, 468354034l, 473005757l, 546494902l, 655891275l, 666640895l, 706026151l, 723296007l, 743246211l, 767368916l, 793756090l, 803759855l, 858006596l, 872497153l, 926120373l, 956772606l, 969702920l, 1042303810l, 1074000473l, 1107497943l, 1121013969l, 1148866829l, 1156138360l, 1165273601l, 1191397834l, 1191602687l, 1210595382l, 1229008225l, 1313799280l, 1339773428l, 1371025906l, 1378867393l, 1386560966l, 1395271250l, 1458555345l, 1467501376l, 1518061393l, 1557100935l, 1559560414l, 1615833946l, 1622449689l, 1669123585l, 1686847408l, 1686925074l, 1690086726l, 1700066541l, 1708716301l, 1742418414l, 1746104331l, 1762071081l, 1764713420l, 1787931881l, 1797977130l, 1813497686l, 1855427492l, 1856828779l, 1858916284l, 1892406213l, 1898106037l, 1898178244l, 1899174703l, 1932529733l, 1958381453l, 2037280269l, 2108592646l, 2125664877l, 2138514685l, 2151144426l, 2190153107l, 2191839530l, 2237344968l, 2250552671l, 2292139429l, 2331215172l, 2340265099l, 2342451786l, 2365739919l, 2374347341l, 2409616658l, 2424344766l, 2538484266l, 2541368594l, 2546269958l, 2551096985l, 2556829045l, 2577928323l, 2618146568l, 2648710406l, 2691751498l, 2731110323l, 2755374965l, 2893020667l, 2928089127l, 2979703338l, 2989105480l, 3034019695l})); - map.put("TTGAAAATCTTCC", new TLongArrayList(new long[]{14530639l, 62177440l, 68254341l, 72688453l, 93450819l, 96829900l, 100588768l, 100763336l, 106164082l, 109369869l, 184234140l, 219268661l, 257247978l, 272883019l, 281554376l, 286775770l, 293150407l, 310029748l, 335540781l, 341046419l, 357991189l, 361910621l, 383776759l, 397376082l, 408035776l, 468354035l, 484550917l, 494816604l, 553585739l, 594051618l, 626617277l, 651865407l, 683521638l, 707890168l, 723296008l, 723948555l, 730116939l, 753331795l, 778471126l, 793809800l, 793821310l, 805863569l, 816065698l, 834706093l, 836755945l, 850027001l, 862375173l, 884092736l, 893369553l, 895000021l, 926120374l, 933219738l, 938428098l, 941092959l, 985824978l, 1013680657l, 1027899715l, 1042303811l, 1046947502l, 1092889813l, 1099485421l, 1107497944l, 1108817535l, 1111021709l, 1113530889l, 1154480678l, 1191397835l, 1210595383l, 1247448718l, 1252176024l, 1313158912l, 1378867394l, 1389986093l, 1390175013l, 1467501377l, 1476698084l, 1505325039l, 1518061394l, 1531253626l, 1557100936l, 1567620318l, 1615282374l, 1622449690l, 1641781400l, 1686239442l, 1687006058l, 1694299485l, 1700066542l, 1705574569l, 1742418415l, 1755618050l, 1787931882l, 1809167257l, 1813497687l, 1819888196l, 1834525498l, 1855543713l, 1898098217l, 1898106038l, 1898869934l, 1912818861l, 1958381454l, 1964232170l, 1977280051l, 1981884434l, 2020514413l, 2054753991l, 2076163622l, 2113508726l, 2125375201l, 2138514686l, 2171227195l, 2184797351l, 2190153108l, 2191839531l, 2237344969l, 2250552672l, 2284315822l, 2287400749l, 2289396278l, 2291383394l, 2341512901l, 2368258397l, 2374347342l, 2413941025l, 2416612297l, 2417737622l, 2513218805l, 2548068849l, 2551059135l, 2552362956l, 2561532009l, 2564134361l, 2577928324l, 2578852567l, 2618146569l, 2619800607l, 2632239062l, 2641566528l, 2648710407l, 2668369515l, 2671964882l, 2695947517l, 2696610300l, 2711987503l, 2727288398l, 2893971947l, 2927474807l, 2927850011l, 2929411065l, 2932022057l, 2979703339l, 3027830119l})); - map.put("TGAAAATCTTCCG", new TLongArrayList(new long[]{184234141l, 184637982l, 468354036l, 593571847l, 883328755l, 1040381578l, 1271884765l, 1615282375l, 1713898378l, 1818373015l, 1898106039l, 2030023248l, 2289396279l, 2348064383l, 2348066105l, 2348067568l})); - map.put("GAAAATCTTCCGG", new TLongArrayList(new long[]{37759059l, 468354037l, 490546539l, 593571848l, 1271884766l, 1615282376l, 1671757189l, 1713898379l, 2105174288l, 2642941643l, 2904579919l})); + map.put("TTATTAAAGAGGG", new TLongArrayList(new long[]{29747455L, 47834276L, 86254487L, 87159099L, 95033883L, 112483092L, 150365652L, 159595684L, 160420297L, 177521723L, 185857684L, 196108850L, 196526849L, 198241677L, 199851321L, 229118823L, 234606228L, 259740140L, 267039162L, 267583471L, 313896563L, 315627884L, 332791517L, 353339004L, 355702779L, 380797476L, 394047491L, 434218133L, 468349696L, 468465329L, 503428614L, 588546096L, 622686720L, 623286057L, 624911226L, 629654457L, 654323170L, 718537816L, 743967524L, 763644409L, 768724161L, 790366661L, 792015060L, 802796380L, 873736555L, 893725629L, 933894441L, 956918753L, 956956016L, 978216388L, 984144363L, 984343473L, 985228889L, 985608635L, 1008096494L, 1034795055L, 1061516731L, 1072630979L, 1086702776L, 1098275935L, 1158446286L, 1164076954L, 1203101588L, 1285559433L, 1294905420L, 1295032176L, 1330938762L, 1334688255L, 1355478667L, 1449847411L, 1473628958L, 1554785270L, 1560364704L, 1622441276L, 1642064161L, 1649310388L, 1652266624L, 1657404529L, 1669985300L, 1737536513L, 1864492265L, 1871374928L, 1875220140L, 1876237604L, 1901269711L, 1943290117L, 1971710464L, 1973744593L, 2023675948L, 2033424497L, 2036335460L, 2111671993L, 2131562941L, 2174032022L, 2193558684L, 2327315029L, 2327337283L, 2389193531L, 2533828030L, 2664599954L, 2764725614L, 2855745616L, 2900326008L, 2971871435L, 2979448988L, 2981764979L, 2983719314L, 2993533649L, 3015480447L, 3026586399L, 30279706L, 3040996270L})); + map.put("TATTAAAGAGGGT", new TLongArrayList(new long[]{47834277L, 51339873L, 106812955L, 160420298L, 177521724L, 196526850L, 234606229L, 275234488L, 315627885L, 316282111L, 355702780L, 434218134L, 434236964L, 468349697L, 532495717L, 622686721L, 629654458L, 903598494L, 978216389L, 984144364L, 1034795056L, 1046170794L, 1086702777L, 1091963252L, 1104781655L, 1164076955L, 1280515263L, 1345790968L, 1355478668L, 1501306465L, 1622441277L, 1649310389L, 1652266625L, 1667139565L, 1688913882L, 1737536514L, 1787256042L, 1894149955L, 1918928182L, 1921874821L, 2111671994L, 2131206360L, 2131562942L, 2174032023L, 2283497463L, 2284989528L, 2416396297L, 2511216433L, 2552884574L, 2600099576L, 2606292876L, 2682733613L, 2700922743L, 2761940684L, 2894580976L, 2927865839L, 2967899527L, 2971871436L, 2981764980L, 3015480448L, 3015649685L, 3040996271L})); + map.put("ATTAAAGAGGGTG", new TLongArrayList(new long[]{160420299L, 164275159L, 177521725L, 234606230L, 315627886L, 316282112L, 397862806L, 468349698L, 476879994L, 496102952L, 532495718L, 603406443L, 608786460L, 629654459L, 657890216L, 750057722L, 762594521L, 784125219L, 856349426L, 963520065L, 979671361L, 1037394773L, 1045393019L, 1104781656L, 1120590895L, 1164076956L, 1196495676L, 1345790969L, 1508104269L, 1572186604L, 1605741344L, 1614130124L, 1647056033L, 1667139566L, 1702527118L, 1737536515L, 1787256043L, 1852787424L, 1927024088L, 2048234467L, 2111671995L, 2174032024L, 2174903980L, 2237315360L, 2511216434L, 2798450076L, 2962773472L, 3015480449L, 3015649686L, 3029154847L})); + map.put("TTAAAGAGGGTGT", new TLongArrayList(new long[]{164275160L, 177521726L, 220304176L, 315627887L, 349180871L, 420681564L, 440613224L, 468349699L, 474433019L, 526981855L, 570642112L, 608786461L, 629654460L, 750057723L, 762594522L, 813971112L, 833491632L, 853489224L, 856349427L, 866786841L, 960181281L, 971494809L, 978475784L, 1034808497L, 1037394774L, 1104781657L, 1161897694L, 1164076957L, 1244059886L, 1310838979L, 1383105920L, 1456200170L, 1555302522L, 1614927166L, 1647056034L, 1649964666L, 1737536516L, 1742634224L, 1746702177L, 1788735188L, 1899483070L, 2012427339L, 2058439617L, 2111671996L, 2122187758L, 2149209925L, 2174903981L, 2351071926L, 2416810400L, 2555555138L, 2618754283L, 2647668498L, 2815660740L, 2865505276L, 2963883241L, 3015480450L, 3015649687L})); + map.put("TAAAGAGGGTGTA", new TLongArrayList(new long[]{390549295L, 440613225L, 442111038L, 454748526L, 468349700L, 474433020L, 570642113L, 590964128L, 629654461L, 686522915L, 850095663L, 856349428L, 886687081L, 978475785L, 978750600L, 1030635767L, 1079308356L, 1161897695L, 1244059887L, 1255202314L, 1278930219L, 1309535435L, 1310838980L, 1383622233L, 1647734798L, 1742634225L, 1830576288L, 2028205799L, 2108419087L, 2112472184L, 2128164938L, 2157801549L, 2188361416L, 2300325198L, 2555555139L, 2815660741L, 3013151199L})); + map.put("AAAGAGGGTGTAC", new TLongArrayList(new long[]{299095911L, 393559201L, 468349701L, 474955810L, 617858346L, 669102996L, 675505593L, 763469488L, 763470092L, 906646620L, 1030635768L, 1048759244L, 1173339000L, 1196398157L, 1348317938L, 1381133228L, 1383622234L, 1488374522L, 1631880152L, 1647725776L, 1647734799L, 1921791240L, 2010836200L, 2028205800L, 2246239267L, 2289596318L, 2384648216L, 2471789753L, 2904568475L, 3031576160L})); + map.put("AAGAGGGTGTACG", new TLongArrayList(new long[]{412951324L, 468349702L, 600881863L, 669102997L, 1173339001L, 2147286165L, 2246239268L})); + map.put("AGAGGGTGTACGG", new TLongArrayList(new long[]{468349703L, 949919689L, 1100688211L, 1173339002L, 1971729085L})); + map.put("GAGGGTGTACGGG", new TLongArrayList(new long[]{430806892L, 468349704L, 483562144L, 527480019L, 538881786L, 949919690L, 1367740537L, 1809348948L, 2439858585L, 2753776654L, 2779472918L})); + map.put("AGGGTGTACGGGA", new TLongArrayList(new long[]{468349705L, 718569128L, 949919691L, 1465841807L, 2563923173L, 2753776655L, 2781326380L})); + map.put("GGGTGTACGGGAG", new TLongArrayList(new long[]{468349706L, 468456928L, 518302224L, 718569129L, 1012215599L, 1782789127L, 2348518499L})); + map.put("GGTGTACGGGAGT", new TLongArrayList(new long[]{468349707L})); + map.put("GTGTACGGGAGTT", new TLongArrayList(new long[]{382633241L, 468349708L, 2302263166L, 2669507711L})); + map.put("TGTACGGGAGTTT", new TLongArrayList(new long[]{165675197L, 195757033L, 468349709L, 819168003L, 2375073052L, 2669507712L, 2951744438L})); + map.put("GTACGGGAGTTTC", new TLongArrayList(new long[]{468349710L, 2375073053L})); + map.put("TACGGGAGTTTCT", new TLongArrayList(new long[]{468349711L, 559402306L, 1403796911L, 2375073054L, 2736112548L})); + map.put("ACGGGAGTTTCTT", new TLongArrayList(new long[]{120210721L, 276290800L, 302892475L, 468349712L, 1605954375L, 1955194945L, 2299777491L, 2512315068L, 2646142637L, 2736112549L, 2921585951L, 2924666263L})); + map.put("CGGGAGTTTCTTG", new TLongArrayList(new long[]{468349713L, 535356324L, 2198033423L, 2299777492L, 2646142638L})); + map.put("GGGAGTTTCTTGG", new TLongArrayList(new long[]{6492230L, 54725451L, 192990500L, 267352435L, 270819666L, 273467845L, 323985897L, 361475558L, 366090608L, 468349714L, 651184123L, 739244386L, 806608291L, 962130872L, 1004482024L, 1042030545L, 1077833710L, 1153698578L, 1189226966L, 1250349771L, 1261709246L, 1283338679L, 1310849898L, 1363684519L, 1404633584L, 1421519785L, 1557025803L, 1716109803L, 1751071315L, 1791391332L, 1924505196L, 1934758727L, 1936356145L, 2136011717L, 2141503581L, 2219023778L, 2236284056L, 2378721678L, 2391703433L, 2409442076L, 2465792808L, 2547498964L, 2566994188L, 2642279829L, 2701652346L, 2754956254L, 2764559112L, 2766495759L, 2795986557L, 2821449197L, 2867669460L, 2904554822L})); + map.put("GGAGTTTCTTGGT", new TLongArrayList(new long[]{12714454L, 35151265L, 54536316L, 185432612L, 232690521L, 238733216L, 255531771L, 269240817L, 361475559L, 386249629L, 468349715L, 551879994L, 593891073L, 651184124L, 680895814L, 785022886L, 806608292L, 829598169L, 880799951L, 913295644L, 956817504L, 978000588L, 1004482025L, 1010826772L, 1038049986L, 1067382511L, 1101360510L, 1114672401L, 1119386082L, 1153698579L, 1171701454L, 1236766844L, 1250349772L, 1261709247L, 1364645000L, 1421519786L, 1476921468L, 1637379144L, 1639852307L, 1640473950L, 1660520701L, 1751071316L, 1765903492L, 1782245762L, 1841897563L, 1943618178L, 2105957924L, 2120486488L, 2219023779L, 2275548015L, 2405412893L, 2422973794L, 2519775577L, 2535204696L, 2642279830L, 2755560477L, 2765199634L, 2766495760L, 2795986558L, 2821449198L, 2979175453L})); + map.put("GAGTTTCTTGGTA", new TLongArrayList(new long[]{14698073L, 78079204L, 347660714L, 468349716L, 496036092L, 502236732L, 502237706L, 551879995L, 560584678L, 572408233L, 589411609L, 658362266L, 661106122L, 665385885L, 753390243L, 778928722L, 783031672L, 785022887L, 794193391L, 806608293L, 829598170L, 956817505L, 1043890707L, 1062191781L, 1067382512L, 1153698580L, 1214588562L, 1285695107L, 1432104314L, 1476921469L, 1500803098L, 1514405895L, 1634291717L, 1707630760L, 1765903493L, 1841897564L, 1890451974L, 2041841370L, 2105353788L, 2188610176L, 2234473011L, 2391373836L, 2459368738L, 2460055581L, 2486937017L, 2505384035L, 2519775578L, 2642279831L, 2650451970L, 2741192662L, 2756178240L, 2759228242L, 2765199635L, 2804877293L, 2895170767L, 2946465344L, 2974255454L, 3039629845L, 3045061283L})); + map.put("AGTTTCTTGGTAA", new TLongArrayList(new long[]{12795576L, 69573705L, 108710527L, 117677256L, 253555819L, 282245816L, 284092027L, 302553612L, 313832321L, 347660715L, 371773829L, 393741037L, 433458879L, 446785008L, 468349717L, 494243216L, 502237707L, 589411610L, 590033206L, 635156917L, 641647779L, 663240003L, 667229781L, 679449293L, 785022888L, 793149420L, 829598171L, 896702964L, 911502297L, 956817506L, 971684416L, 979741377L, 990013329L, 1003727583L, 1062191782L, 1066089903L, 1111393083L, 1125489944L, 1153698581L, 1167945574L, 1214588563L, 1252059051L, 1312293564L, 1319475062L, 1329978555L, 1376967195L, 1396226532L, 1432104315L, 1448565366L, 1545519579L, 1578186105L, 1586413309L, 1613660471L, 1707630761L, 1765903494L, 1768875202L, 1818906788L, 1841897565L, 1847749126L, 1883021461L, 1887125891L, 1890451975L, 1907174113L, 1938578804L, 1975182768L, 1998878341L, 2053381590L, 2135496599L, 2150487321L, 2234473012L, 2263398049L, 2268100664L, 2425410959L, 2459368739L, 2460055582L, 2625148686L, 2643891103L, 2650451971L, 2656693921L, 2726077606L, 2741192663L, 2801431197L, 2804877294L, 2817639276L, 2973546362L, 2993247211L, 3030682232L, 3039629846L})); + map.put("GTTTCTTGGTAAA", new TLongArrayList(new long[]{69573706L, 69989249L, 172138026L, 203960894L, 211272993L, 225789745L, 253555820L, 318901299L, 336461131L, 347660716L, 357735593L, 358627810L, 359841834L, 371773830L, 393741038L, 433458880L, 443185041L, 468349718L, 624530452L, 628855865L, 641343732L, 641647780L, 663240004L, 679449294L, 705501256L, 715456133L, 847394351L, 854100537L, 860061006L, 865608618L, 872497041L, 879172724L, 911502298L, 932890472L, 956817507L, 969254696L, 979741378L, 985915012L, 987649803L, 990013330L, 1003727584L, 1028112615L, 1033311404L, 1034769587L, 1059176600L, 1062191783L, 1112708088L, 1115819885L, 1118077965L, 1125489945L, 1134215335L, 1153698582L, 1167945575L, 1182052586L, 1198076391L, 1213799694L, 1214588564L, 1229708257L, 1296647379L, 1300490336L, 1319475063L, 1325826723L, 1329978556L, 1342033573L, 1368000361L, 1369700373L, 1396226533L, 1425133161L, 1427764472L, 1463168381L, 1502642255L, 1508245268L, 1513418230L, 1525991180L, 1565847607L, 1578186106L, 1586413310L, 1615530596L, 1700988970L, 1733210442L, 1748931873L, 1768875203L, 1841050172L, 1883021462L, 1887125892L, 1890451976L, 1909664272L, 1959542888L, 1998878342L, 2127219326L, 2133606131L, 2151338241L, 2170637446L, 2180853824L, 2191925139L, 2251217205L, 2263398050L, 2335048768L, 2372861182L, 2425410960L, 2460055583L, 2504919551L, 2612786610L, 2643891104L, 2671769593L, 2758771505L, 2762373933L, 2804877295L, 2878663705L, 2906559229L, 2909711204L, 2917958041L, 2934127584L, 2946249671L, 3053542858L})); + map.put("TTTCTTGGTAAAT", new TLongArrayList(new long[]{7881181L, 35858955L, 57676169L, 67712842L, 69776021L, 85197314L, 99088627L, 108749898L, 117989327L, 192217613L, 199415123L, 203960895L, 211272994L, 213883704L, 222807975L, 225789746L, 234625525L, 249314493L, 264102757L, 283551271L, 294150792L, 302054668L, 302693079L, 350282356L, 381380412L, 387557322L, 391689523L, 407027871L, 409581534L, 419802124L, 443185042L, 461561409L, 468349719L, 487853598L, 516548823L, 522208335L, 528489967L, 557849753L, 579374156L, 609706837L, 624530453L, 626291270L, 632688492L, 632969937L, 641343733L, 651157213L, 658604465L, 659275303L, 662787266L, 669296079L, 671367896L, 693748337L, 704221263L, 704300681L, 705501257L, 711324623L, 713161974L, 718722766L, 719915906L, 749863156L, 755560167L, 800536334L, 803096490L, 807145512L, 815030685L, 822795038L, 824743693L, 827611618L, 839913327L, 847536671L, 849471657L, 851928444L, 855786048L, 865168776L, 868526228L, 871978310L, 903013566L, 907330800L, 925637263L, 925832272L, 935096927L, 943889760L, 946586250L, 947143272L, 948651036L, 950813559L, 951689441L, 957933079L, 958963000L, 966084952L, 969254697L, 970462642L, 979679027L, 980634910L, 996843442L, 1001878310L, 1009523365L, 1017894559L, 1026383955L, 1036281560L, 1044405429L, 1045060312L, 1054625552L, 1062191784L, 1077906845L, 1083922053L, 1084930004L, 1087309123L, 1091457490L, 1110084156L, 1115819886L, 1129260236L, 1137522700L, 1140100001L, 1161439895L, 1184846164L, 1198076392L, 1200877294L, 1202620782L, 1220299966L, 1225913670L, 1245637043L, 1250972276L, 1275383449L, 1288386422L, 1300490337L, 1312084780L, 1314065243L, 1317990257L, 1320187559L, 1325826724L, 1356388395L, 1374534614L, 1376932567L, 1388840266L, 1395363821L, 1398070475L, 1414595333L, 1415934312L, 1416511517L, 1418908236L, 1426261656L, 1464674890L, 1472638618L, 1486784001L, 1487057122L, 1499264357L, 1504444140L, 1515966843L, 1541626430L, 1561654004L, 1565847608L, 1608915956L, 1609282643L, 1609533096L, 1614991285L, 1619905120L, 1623923414L, 1651484989L, 1687928087L, 1696477113L, 1700541427L, 1700831507L, 1708480309L, 1712228728L, 1723162198L, 1733210443L, 1734787075L, 1734982006L, 1790304076L, 1791183373L, 1802540946L, 1811848153L, 1830729221L, 1837944470L, 1841050173L, 1883021463L, 1890873198L, 1902173395L, 1903417808L, 1903857094L, 1965927895L, 1970840974L, 1972122548L, 1978917312L, 1992363531L, 1998878343L, 2021065279L, 2022064506L, 2025297507L, 2031422145L, 2041387013L, 2043222338L, 2069336978L, 2113021428L, 2116808214L, 2119545440L, 2126600978L, 2128772019L, 2133606132L, 2136355311L, 2151338242L, 2151573071L, 2152434299L, 2170637447L, 2251217206L, 2260867469L, 2269065607L, 2282384932L, 2285383085L, 2286619655L, 2332428910L, 2335048769L, 2344013136L, 2344858935L, 2346739813L, 2361521741L, 2380274259L, 2404708865L, 2442281251L, 2492288033L, 2509688425L, 2514861028L, 2533830663L, 2582453516L, 2596432667L, 2601729097L, 2604714306L, 2616750805L, 2622552341L, 2634008806L, 2643891105L, 2653334351L, 2689895437L, 2716560763L, 2733840798L, 2743065113L, 2744088246L, 2777385643L, 2791174643L, 2796623964L, 2804416815L, 2811840053L, 2817224483L, 2829647949L, 2862881542L, 2878663706L, 2898702052L, 2902456947L, 2914878977L, 2917958042L, 2923233754L, 2923448586L, 2924094188L, 2924818268L, 2928328884L, 2945619312L, 2950380673L, 2953276055L, 2953617196L, 2953749003L, 2954042534L, 2956550690L, 2971910010L, 2989008550L, 2989099575L, 2992142555L, 2993217257L, 3002465566L, 3041033215L, 3055144007L, 3057850341L, 3058345466L, 3060799555L})); + map.put("TTCTTGGTAAATC", new TLongArrayList(new long[]{67712843L, 85197315L, 107738448L, 213883705L, 302054669L, 387557323L, 419746101L, 468349720L, 516548824L, 519217773L, 539884102L, 574078570L, 579374157L, 632969938L, 659275304L, 698750782L, 707401542L, 800536335L, 815030686L, 839913328L, 865168777L, 943889761L, 958963001L, 979679028L, 980634911L, 1017894560L, 1040239182L, 1046477236L, 1050531920L, 1077464458L, 1083922054L, 1115819887L, 1166646993L, 1202620783L, 1287390193L, 1300490338L, 1376932568L, 1395363822L, 1406787840L, 1461840539L, 1487057123L, 1515966844L, 1565847609L, 1751362743L, 1844083780L, 1850213384L, 1903857095L, 1998878344L, 2019447813L, 2031422146L, 2122996708L, 2136355312L, 2151573072L, 2160604132L, 2241663494L, 2251217207L, 2269065608L, 2400475132L, 2485601799L, 2509688426L, 2519975936L, 2526225611L, 2582453517L, 2631107564L, 2733165663L, 2777385644L, 2811922449L, 2817224484L, 2859578843L, 2897814733L, 2901692557L, 2917958043L, 2934903830L, 2953276056L, 2953617197L, 2989008551L, 2998517792L, 3002465567L, 3005391414L, 3029239248L, 3058345467L})); + map.put("TCTTGGTAAATCC", new TLongArrayList(new long[]{60356555L, 107738449L, 329854938L, 331514426L, 348861257L, 376232080L, 387557324L, 419746102L, 429318665L, 468349721L, 503456237L, 539884103L, 778906557L, 887806251L, 932142720L, 1055359230L, 1083922055L, 1166646994L, 1329366311L, 1332577170L, 1344322420L, 1395363823L, 1406787841L, 1515569631L, 1636927643L, 1725005372L, 1751362744L, 1780746938L, 1946555202L, 2130789002L, 2136355313L, 2166629802L, 2241663495L, 2269065609L, 2370070765L, 2377921525L, 2400475133L, 2492521757L, 2519975937L, 2526225612L, 2576792061L, 2626390470L, 2631107565L, 2648595463L, 2671618099L, 2681308007L, 2797889914L, 2817224485L, 2822400954L, 2934903831L, 2980221032L, 3005391415L})); + map.put("CTTGGTAAATCCA", new TLongArrayList(new long[]{27770153L, 60356556L, 239197639L, 298902989L, 329854939L, 337541677L, 348861258L, 356336691L, 361857772L, 419746103L, 468349722L, 476153903L, 516457133L, 560535800L, 592096174L, 702652391L, 749135911L, 758426709L, 765691143L, 768484791L, 807607706L, 835665543L, 887806252L, 1038623295L, 1055359231L, 1166646995L, 1189397364L, 1212803522L, 1253902738L, 1359636983L, 1389564179L, 1389855835L, 1395363824L, 1424912262L, 1560870889L, 1637995979L, 2111698141L, 2136355314L, 2198037240L, 2236469176L, 2241663496L, 2243428822L, 2269065610L, 2389988499L, 2390365024L, 2468812056L, 2559116827L, 2587029141L, 2626390471L, 2656605131L, 2733267385L, 2822400955L, 3062598305L})); + map.put("TTGGTAAATCCAG", new TLongArrayList(new long[]{27770154L, 83573814L, 329854940L, 337541678L, 349672262L, 356336692L, 361857773L, 419746104L, 468349723L, 516457134L, 681603336L, 749135912L, 1059432192L, 1166646996L, 1212803523L, 1389564180L, 1469679957L, 1562702584L, 1637995980L, 1653606202L, 1715183995L, 1739119845L, 1941783383L, 1958305282L, 2018337801L, 2064907672L, 2117640316L, 2161883032L, 2187267211L, 2236469177L, 2241663497L, 2271959366L, 2353513249L, 2356863083L, 2407033818L, 2565627844L, 2587029142L, 2656605132L, 2662239856L, 2671573656L, 2733267386L, 2950709853L, 2988350206L, 3045453443L})); + map.put("TGGTAAATCCAGA", new TLongArrayList(new long[]{27770155L, 57771850L, 65838367L, 83573815L, 144908103L, 146517938L, 321764029L, 329854941L, 353302906L, 376221812L, 456847670L, 468349724L, 511258514L, 516457135L, 660685009L, 689383656L, 692040517L, 802634392L, 828048840L, 828428888L, 870105679L, 1126362932L, 1131556220L, 1144814723L, 1280570016L, 1282928159L, 1327680230L, 1360965587L, 1469679958L, 1499844979L, 1527805616L, 1637995981L, 1723375926L, 1811020745L, 1821416812L, 1831515546L, 1926840641L, 1958305283L, 1961878883L, 2018337802L, 2039489976L, 2041437995L, 2107947741L, 2111752164L, 2127107690L, 2242431850L, 2254655279L, 2281048378L, 2286649954L, 2289876274L, 2353513250L, 2356826366L, 2361853826L, 2432319517L, 2565627845L, 2593940657L, 2602641654L, 2609817542L, 2656605133L, 2662239857L, 2671573657L, 2672780822L, 2733267387L, 2865545218L, 2879417904L, 3018008091L, 3045453444L})); + map.put("GGTAAATCCAGAA", new TLongArrayList(new long[]{27770156L, 35185830L, 144908104L, 146517939L, 202036893L, 330511299L, 376221813L, 403626999L, 414401819L, 456847671L, 468349725L, 516457136L, 547841074L, 689383657L, 802634393L, 803641725L, 828048841L, 870105680L, 920740521L, 963595582L, 1106630501L, 1131556221L, 1144814724L, 1277030016L, 1327847251L, 1398507920L, 1488128450L, 1527805617L, 1644333227L, 1652779221L, 1811020746L, 1811946956L, 1821416813L, 1958305284L, 2018337803L, 2039489977L, 2080335904L, 2232687872L, 2242431851L, 2254655280L, 2353513251L, 2356826367L, 2432319518L, 2477344224L, 2529794392L, 2555252632L, 2555326572L, 2559126481L, 2559908626L, 2574232365L, 2609817543L, 2643685585L, 2671573658L, 2902912002L, 2974541592L, 2989003277L, 3018008092L})); + map.put("GTAAATCCAGAAT", new TLongArrayList(new long[]{31743757L, 35185831L, 73360133L, 73390005L, 119784926L, 146517940L, 211314893L, 288836164L, 306460482L, 328065994L, 403627000L, 420851062L, 422575918L, 468349726L, 481209945L, 516457137L, 541996553L, 547841075L, 634567630L, 639844153L, 656386884L, 760104295L, 789710899L, 828048842L, 837389369L, 870105681L, 922887213L, 957812053L, 1028069827L, 1158531042L, 1176527394L, 1237369895L, 1276852610L, 1277030017L, 1316618390L, 1327847252L, 1424371693L, 1656450446L, 1657586413L, 1700142627L, 1715381353L, 1777358705L, 1811020747L, 1811946957L, 1821416814L, 1945027637L, 1958305285L, 2066006387L, 2186918775L, 2232687873L, 2242431852L, 2275649763L, 2332372031L, 2356826368L, 2384908319L, 2462173351L, 2477344225L, 2487816567L, 2574232366L, 2719023966L, 2734198956L, 2902912003L, 2904783433L, 2953914914L, 2964460716L, 3029794079L, 3059556367L})); + map.put("TAAATCCAGAATC", new TLongArrayList(new long[]{47226371L, 74047112L, 94337922L, 166113645L, 196517402L, 213644705L, 240978698L, 261303366L, 295253351L, 310068288L, 322352508L, 328065995L, 332946017L, 423760845L, 440805414L, 450321506L, 468349727L, 514348111L, 541996554L, 547841076L, 596605493L, 599027172L, 629439729L, 652498006L, 671475806L, 672735930L, 684566568L, 706281885L, 766574683L, 789710900L, 798282233L, 798642591L, 802705941L, 886584793L, 1004909190L, 1010704259L, 1019391860L, 1024128239L, 1025996568L, 1056927916L, 1081737966L, 1093776549L, 1093861636L, 1181563554L, 1184101370L, 1185879527L, 1202932406L, 1277030018L, 1286909616L, 1319092192L, 1373388687L, 1496096186L, 1507983809L, 1515280861L, 1523417344L, 1533237561L, 1646746871L, 1657586414L, 1799083693L, 1886396317L, 1943265867L, 1949267129L, 1997504330L, 2044762405L, 2059801199L, 2061578577L, 2124239262L, 2142061746L, 2169115008L, 2173566603L, 2242431853L, 2274597716L, 2287961377L, 2304870659L, 2384908320L, 2487816568L, 2520528004L, 2527754345L, 2557797636L, 2574232367L, 2630756390L, 2643731189L, 2644085268L, 2646989393L, 2757075554L, 2762630312L, 2767528167L, 2771116816L, 2812860562L, 2898550858L, 2902912004L, 2915010654L, 2964222551L, 2983828710L, 2987153632L, 3011003394L, 3033170189L, 3034465096L, 3034502225L, 3034540033L})); + map.put("AAATCCAGAATCA", new TLongArrayList(new long[]{58463424L, 60763651L, 94337923L, 166113646L, 167720042L, 168497015L, 240978699L, 251423126L, 252623228L, 253020929L, 257495940L, 268032852L, 363754626L, 413938427L, 423760846L, 441399943L, 449912867L, 468349728L, 510008571L, 566109613L, 594006663L, 596605494L, 641483182L, 664697874L, 739217734L, 764626991L, 766574684L, 785326712L, 787554993L, 789710901L, 794420747L, 798282234L, 802705942L, 809099001L, 814955411L, 830081943L, 853757276L, 865402984L, 875446054L, 883573210L, 886584794L, 906105561L, 925169422L, 945654894L, 948806580L, 949840248L, 1010737016L, 1053273054L, 1068093861L, 1078193221L, 1081737967L, 1084128317L, 1089142399L, 1097491004L, 1107798958L, 1197633391L, 1227760250L, 1262695307L, 1269244274L, 1295523638L, 1319092193L, 1357690116L, 1370067586L, 1373388688L, 1402378257L, 1421137335L, 1435100991L, 1463267023L, 1486934462L, 1493769006L, 1515280862L, 1525906234L, 1533237562L, 1541850477L, 1631103313L, 1641148452L, 1655115579L, 1657586415L, 1666326529L, 1698951301L, 1781265299L, 1799083694L, 1808682419L, 1837415851L, 1837969009L, 1855983705L, 1913651942L, 2013189921L, 2024616541L, 2054681939L, 2158281782L, 2173566604L, 2195650769L, 2236345345L, 2242431854L, 2265074820L, 2274597717L, 2304870660L, 2347337587L, 2353014609L, 2384908321L, 2385323553L, 2415965852L, 2574232368L, 2619683215L, 2651518384L, 2669741677L, 2727770856L, 2752635768L, 2755299319L, 2767528168L, 2807421636L, 2812860563L, 2813638190L, 2878722840L, 2902912005L, 2914290976L, 2920915496L, 2927442713L, 2943110799L, 2983828711L, 2984998182L, 2985468635L, 3011003395L, 3033170190L, 3034465097L, 3034502226L, 3034540034L, 3061311551L, 3062945299L})); + map.put("AATCCAGAATCAG", new TLongArrayList(new long[]{58463425L, 60763652L, 94875306L, 107794080L, 187857825L, 251423127L, 267051127L, 287474824L, 291683939L, 392743866L, 448016523L, 457539598L, 468349729L, 509312434L, 589822718L, 594006664L, 602809119L, 627255057L, 638627157L, 641483183L, 668377011L, 739217735L, 751948416L, 767617038L, 802705943L, 806696022L, 927046229L, 945654895L, 995909174L, 1028830067L, 1038948388L, 1068093862L, 1084128318L, 1089142400L, 1097491005L, 1271673502L, 1319092194L, 1373207070L, 1373388689L, 1385846807L, 1421775987L, 1459466754L, 1474957500L, 1486934463L, 1489544931L, 1533237563L, 1639464048L, 1657586416L, 1752553531L, 1837969010L, 1900313712L, 1903223662L, 1914509288L, 2024616542L, 2113947152L, 2233948669L, 2255454265L, 2263604192L, 2345019229L, 2370544680L, 2427860526L, 2490621920L, 2528334048L, 2563217762L, 2669741678L, 2724064410L, 2758694970L, 2779716950L, 2800801750L, 2902912006L, 2905791874L, 2920915497L, 2927442714L, 2984998183L, 2985468636L, 3016934627L, 3033170191L, 3034465098L, 3034502227L, 3034540035L})); + map.put("ATCCAGAATCAGG", new TLongArrayList(new long[]{60763653L, 88795061L, 274063388L, 291683940L, 468349730L, 505808029L, 540927428L, 592926256L, 630394611L, 638627158L, 685346425L, 872320384L, 990163072L, 1028830068L, 1055198518L, 1072530086L, 1120192500L, 1229580875L, 1360862693L, 1418583372L, 1459466755L, 1474957501L, 1486934464L, 1487687774L, 1489544932L, 1731041483L, 1752553532L, 1786443743L, 1793413714L, 1805874367L, 1828742166L, 1903223663L, 2004983320L, 2109776023L, 2113947153L, 2293410052L, 2347197548L, 2550405798L, 2590000589L, 2634365582L, 2646272174L, 2655790081L, 2702578782L, 2724064411L, 2920915498L, 3016934628L})); + map.put("TCCAGAATCAGGA", new TLongArrayList(new long[]{10827345L, 103399775L, 211446740L, 271266371L, 274063389L, 389817552L, 396781086L, 407436232L, 473586706L, 483356280L, 497142807L, 505808030L, 515510535L, 592926257L, 689474075L, 698969805L, 726200328L, 912463690L, 949333061L, 954890467L, 1020032676L, 1021595626L, 1025340089L, 1035053238L, 1069083998L, 1072530087L, 1073493213L, 1158979261L, 1289905417L, 1303298365L, 1308301410L, 1308515632L, 1333521940L, 1341951308L, 1363954523L, 1369365380L, 1379095811L, 1405780738L, 1427435801L, 1433908768L, 1474957502L, 1489544933L, 1502357900L, 1627802128L, 1686688998L, 1752553533L, 1791768766L, 1916463164L, 1944342723L, 1994329647L, 2004983321L, 2053173473L, 2060188319L, 2077412246L, 2109776024L, 2125725664L, 2129611003L, 2139438545L, 2236729599L, 2237684897L, 2347197549L, 2409200497L, 2488791468L, 2492189574L, 2500618810L, 2503880061L, 2548523880L, 2574821841L, 2584694492L, 2590000590L, 2605258725L, 2623633195L, 2626391286L, 2646272175L, 2655790082L, 2711685724L, 2724064412L, 2741920152L, 2780996595L, 2869212127L, 2870827152L, 2897435110L, 2907062617L, 2944288591L, 3009934641L})); + map.put("CCAGAATCAGGAT", new TLongArrayList(new long[]{19505994L, 163434370L, 172261067L, 175630132L, 182601354L, 182602452L, 195403318L, 211446741L, 219150536L, 226567273L, 236637449L, 241337621L, 271266372L, 335525059L, 351876553L, 407436233L, 483356281L, 545481738L, 565962050L, 580908536L, 592926258L, 686089481L, 705826703L, 737478171L, 794606036L, 895345125L, 1039087732L, 1059684150L, 1072530088L, 1109040480L, 1202224072L, 1212482903L, 1272234119L, 1285982872L, 1304834478L, 1308301411L, 1308515633L, 1321212435L, 1333521941L, 1361708472L, 1396290264L, 1452720825L, 1500580769L, 1502357901L, 1539554725L, 1566023309L, 1698211603L, 1698458590L, 1752553534L, 1851343000L, 1874924590L, 1894469909L, 1947309231L, 2041504641L, 2109776025L, 2125725665L, 2129611004L, 2139438546L, 2146628647L, 2237080646L, 2237684898L, 2267536415L, 2356606379L, 2399889840L, 2492189575L, 2548523881L, 2555327239L, 2577968399L, 2590000591L, 2646272176L, 2705584864L, 2706654770L, 2711685725L, 2724064413L, 2780996596L, 2822694480L, 2900833452L})); + map.put("CAGAATCAGGATA", new TLongArrayList(new long[]{19505995L, 61037264L, 113539602L, 163434371L, 198899729L, 218850354L, 461606678L, 505916026L, 546065917L, 610794607L, 643088316L, 662740673L, 695684008L, 728047443L, 785753831L, 802867990L, 834688696L, 867098480L, 876855788L, 922891778L, 940450867L, 980619194L, 1057309478L, 1118859106L, 1318222372L, 1433079043L, 1452720826L, 1500580770L, 1502357902L, 1533280625L, 1551406885L, 1566023310L, 1627447100L, 1659642187L, 1716557046L, 1732900180L, 1756564310L, 1762318811L, 1796518507L, 1807737446L, 1829896577L, 1835850640L, 1848460297L, 1879567711L, 2005155503L, 2015704343L, 2051906332L, 2384645476L, 2466836996L, 2532867397L, 2593872677L, 3019486153L})); + map.put("AGAATCAGGATAC", new TLongArrayList(new long[]{58115562L, 165524926L, 196607988L, 198899730L, 418840445L, 577922138L, 578105762L, 603032542L, 610794608L, 643088317L, 771158397L, 846275037L, 876855789L, 940224762L, 1226470779L, 1264875019L, 1370344415L, 1374512007L, 1551406886L, 1627447101L, 1716557047L, 1747462729L, 1762318812L, 1807737447L, 1829896578L, 1843062532L, 1879567712L, 1977597434L, 2029497501L, 2162134660L, 2162922055L, 2407261947L, 2560028466L, 2935869886L, 2988553331L, 3019486154L, 3028566068L})); + map.put("GAATCAGGATACA", new TLongArrayList(new long[]{12341352L, 165524927L, 170831349L, 198899731L, 418864343L, 421200234L, 521477579L, 577922139L, 605123826L, 610794609L, 715335901L, 732833725L, 745147456L, 771158398L, 781475772L, 846275038L, 876855790L, 940224763L, 953412448L, 971382658L, 1007504134L, 1196332665L, 1226470780L, 1362584994L, 1472113213L, 1551406887L, 1716557048L, 1718253035L, 1761866530L, 1769388708L, 1829896579L, 1938013074L, 1977597435L, 2022402424L, 2029497502L, 2191098269L, 2363923935L, 2374435604L, 2421951737L, 2431202956L, 2513600683L, 2528682680L, 2560028467L, 2814275515L})); + map.put("AATCAGGATACAA", new TLongArrayList(new long[]{34353035L, 51482545L, 56690490L, 80302984L, 170831350L, 212876404L, 217329695L, 218054786L, 235178288L, 251732161L, 290137119L, 320051695L, 373143211L, 380271361L, 390321494L, 442173902L, 473554903L, 545788992L, 546537676L, 567748797L, 573119872L, 597458413L, 605123827L, 610794610L, 626589993L, 626590421L, 675573218L, 703955906L, 714018724L, 714680493L, 716730381L, 771158399L, 773800994L, 834182637L, 846275039L, 861457588L, 907583837L, 909218032L, 913892254L, 938660651L, 971382659L, 973991360L, 983168571L, 1113992644L, 1196332666L, 1254415699L, 1312904440L, 1324691348L, 1358849450L, 1362584995L, 1472847396L, 1551406888L, 1619671283L, 1624718250L, 1687028376L, 1703681524L, 1761866531L, 1769388709L, 1801679431L, 1888523651L, 1919486982L, 1927655043L, 1938013075L, 1943091867L, 1977928401L, 2018200848L, 2035248292L, 2054294831L, 2067042424L, 2106644412L, 2229050393L, 2250062337L, 2259433094L, 2348581125L, 2349637971L, 2355736674L, 2374435605L, 2421951738L, 2431202957L, 2486003772L, 2542433297L, 2559375846L, 2613057886L, 2732792656L, 2760032640L, 2827069523L, 3014556503L, 3019288207L, 3027552522L, 3029718722L})); + map.put("ATCAGGATACAAT", new TLongArrayList(new long[]{213653915L, 256146597L, 390321495L, 546537677L, 567748798L, 573119873L, 675573219L, 714680494L, 783831781L, 846275040L, 862668374L, 899804369L, 907583838L, 909218033L, 1024603225L, 1050552490L, 1244284366L, 1286243021L, 1358849451L, 1472847397L, 1484850934L, 1514601464L, 1519910893L, 1573087899L, 1724749538L, 1747264294L, 1800897657L, 1810849270L, 1941813541L, 1977928402L, 1979627927L, 2020473098L, 2023940600L, 2107065775L, 2229050394L, 2289282116L, 2293061439L, 2369078446L, 2435372924L, 2528974482L, 2559375847L, 2605604588L, 2761754186L, 3014043631L})); + map.put("TCAGGATACAATG", new TLongArrayList(new long[]{18133123L, 239725354L, 241198392L, 293050485L, 515602712L, 546537678L, 607091318L, 647054569L, 736859333L, 755687090L, 846473070L, 874976026L, 907583839L, 917041264L, 927489985L, 1024603226L, 1050170085L, 1102082354L, 1275007953L, 1286243022L, 1311330965L, 1356154196L, 1427436257L, 1474762924L, 1487545057L, 1511660729L, 1622318539L, 1724749539L, 1809341036L, 1810849271L, 1855997603L, 1936967092L, 1941813542L, 2123626486L, 2189461040L, 2278972783L, 2280900355L, 2293061440L, 2486635491L, 2549611832L, 2583414993L, 2609610079L, 2645347794L, 2739406806L, 2777675144L, 2863550034L, 2932025630L, 2996827183L, 3002496298L, 3052797875L})); + map.put("CAGGATACAATGT", new TLongArrayList(new long[]{389800L, 18133124L, 50396734L, 86415487L, 118250186L, 239725355L, 293050486L, 344906263L, 366548296L, 385920329L, 468354005L, 534331226L, 607091319L, 647054570L, 736859334L, 739212701L, 755687091L, 833782395L, 838474243L, 908984028L, 917041265L, 927489986L, 960469728L, 1022746612L, 1024603227L, 1050170086L, 1062443052L, 1076079694L, 1233515928L, 1365140012L, 1449477711L, 1477942377L, 1644194660L, 1698788610L, 1715539138L, 1758843011L, 1801857099L, 1855997604L, 1894093763L, 1936967093L, 2113786901L, 2123195720L, 2189461041L, 2233152622L, 2259648264L, 2343581714L, 2409723667L, 2506444245L, 2549611833L, 2584721015L, 2609610080L, 2737852762L, 2876956486L, 2931407956L, 2932025631L, 2932810617L, 2936029983L, 2963537975L, 2964149820L, 2986564931L, 2996827184L, 3002496299L})); + map.put("AGGATACAATGTC", new TLongArrayList(new long[]{18133125L, 21206830L, 50396735L, 96914869L, 202885257L, 227554258L, 237641357L, 241539659L, 344906264L, 468354006L, 497841111L, 570703664L, 647054571L, 730637206L, 755687092L, 941427503L, 979549404L, 1015414880L, 1019991054L, 1022746613L, 1024603228L, 1087159478L, 1108053418L, 1137180666L, 1523831792L, 1564474050L, 1644194661L, 1698788611L, 1755981233L, 1758843012L, 1765092294L, 1801857100L, 1813142961L, 1855997605L, 1899436318L, 1918182109L, 2367171108L, 2374183733L, 2506444246L, 2591408314L, 2600749575L, 2931407957L, 2936029984L, 3002496300L})); + map.put("GGATACAATGTCT", new TLongArrayList(new long[]{96914870L, 118331066L, 185573831L, 227554259L, 241539660L, 275100126L, 383840938L, 430797104L, 468354007L, 508621408L, 619218895L, 647054572L, 703028864L, 755687093L, 757100552L, 876297779L, 1024603229L, 1087159479L, 1171139483L, 1426344648L, 1707243300L, 1767470977L, 1775137578L, 1801857101L, 1872537909L, 1918182110L, 1973423572L, 2115581417L, 2275642540L, 2367171109L, 2739764997L, 2883461373L, 3038681933L})); + map.put("GATACAATGTCTC", new TLongArrayList(new long[]{262007740L, 430797105L, 468354008L, 654349488L, 723113108L, 759725152L, 778818612L, 843526200L, 940674552L, 973014924L, 1029273223L, 1052946432L, 1149026241L, 1477842088L, 1531431005L, 1640791048L, 1726483249L, 1872537910L, 1980720860L, 1989867270L, 1999969207L, 2003612659L, 2115581418L, 2165147613L, 2174654918L, 2275642541L, 2994285765L, 3031695923L, 3045862320L})); + map.put("ATACAATGTCTCT", new TLongArrayList(new long[]{100211756L, 195138063L, 218964800L, 238739300L, 326684780L, 333366449L, 411168891L, 449326952L, 468354009L, 575812985L, 651206615L, 718537434L, 723113109L, 733712469L, 755210479L, 818556765L, 843526201L, 925749374L, 1029273224L, 1052946433L, 1062695904L, 1073233673L, 1137574385L, 1149026242L, 1159085906L, 1180921205L, 1232120384L, 1321906850L, 1356768919L, 1397153330L, 1397153390L, 1463922960L, 1483527410L, 1527549072L, 1616148930L, 1640791049L, 1726483250L, 1769111370L, 1798069319L, 1809390062L, 1861991038L, 1933012709L, 1989867271L, 1999969208L, 2003612660L, 2056349494L, 2082863540L, 2115581419L, 2153400320L, 2154150582L, 2156032511L, 2174654919L, 2244205145L, 2282691862L, 2284423538L, 2286921613L, 2387205220L, 2482038985L, 2729626496L, 2756104076L, 2756903734L, 2865024443L, 2895419022L, 2897464117L, 2900849035L, 2911161646L, 2915271185L, 2935266313L, 2946315551L, 2955792511L, 2976732451L, 2982025145L, 2986626235L, 2994285766L, 3007042705L, 3031695924L, 3031729576L, 3035859366L, 3100796161L})); + map.put("TACAATGTCTCTT", new TLongArrayList(new long[]{7807029L, 98890556L, 186259306L, 190250969L, 195138064L, 291099589L, 318801151L, 326684781L, 377016402L, 426959229L, 460334627L, 468354010L, 575812986L, 629515561L, 644092118L, 723113110L, 778970070L, 843526202L, 953508248L, 953613863L, 1011825035L, 1109020073L, 1128033946L, 1136228197L, 1149026243L, 1180921206L, 1233092320L, 1324828493L, 1409013135L, 1420440302L, 1496010205L, 1513078466L, 1527549073L, 1620959917L, 1640264834L, 1656111643L, 1703701233L, 1809390063L, 1838187263L, 1902891762L, 1933012710L, 1970871014L, 1996477016L, 2056349495L, 2115581420L, 2156032512L, 2222428464L, 2286921614L, 2330487066L, 2334997121L, 2340107561L, 2347468132L, 2468748061L, 2482038986L, 2642906355L, 2650247902L, 2701025074L, 2724484740L, 2733681679L, 2856251879L, 2895419023L, 2911161647L, 2935266314L, 2968569410L, 2994285767L, 3030396126L})); + map.put("ACAATGTCTCTTT", new TLongArrayList(new long[]{7807030L, 73436516L, 81854957L, 83783410L, 158604786L, 163274427L, 181114388L, 270280819L, 278878583L, 280578022L, 290007875L, 308548115L, 318801152L, 402128763L, 404982273L, 408622781L, 417519327L, 426959230L, 460334628L, 468354011L, 473523638L, 487654369L, 511834938L, 575812987L, 614617834L, 643896032L, 657752799L, 662350755L, 684599742L, 697787776L, 701609907L, 710614029L, 729581892L, 735929915L, 778970071L, 782068302L, 814637932L, 876960346L, 880417722L, 895380778L, 910447827L, 953508249L, 974717179L, 998623790L, 1062971963L, 1134328901L, 1149026244L, 1163100912L, 1166558672L, 1233092321L, 1234860796L, 1310069345L, 1324828494L, 1333267507L, 1361436479L, 1371420327L, 1372180899L, 1389626953L, 1395624733L, 1441634842L, 1523691390L, 1527549074L, 1533254286L, 1564487624L, 1574475399L, 1575864274L, 1615541079L, 1615680206L, 1620959918L, 1640264835L, 1653719337L, 1656319431L, 1674415149L, 1703701234L, 1707414102L, 1790407673L, 1802091970L, 1811496055L, 1846274351L, 1857442623L, 1902891763L, 1926360237L, 1933012711L, 1939103951L, 1945099063L, 1970871015L, 1974386099L, 1989978941L, 2056349496L, 2057274519L, 2107090153L, 2115581421L, 2156032513L, 2192928201L, 2347468133L, 2357425873L, 2391830666L, 2398515351L, 2419227732L, 2468748062L, 2482038987L, 2501370143L, 2534189961L, 2561018160L, 2600710162L, 2619216344L, 2630754497L, 2650247903L, 2660661946L, 2688006325L, 2706064031L, 2717683980L, 2720054247L, 2770164836L, 2856251880L, 2877368440L, 2895419024L, 2910503802L, 2911161648L, 2955367041L, 2994285768L, 3027454423L, 3029253647L, 3033214716L})); + map.put("CAATGTCTCTTTG", new TLongArrayList(new long[]{19795573L, 70597483L, 74614989L, 78650733L, 109003295L, 170330569L, 218830555L, 269231107L, 308548116L, 360416389L, 364886123L, 388145045L, 468354012L, 473523639L, 488837561L, 489262153L, 513310520L, 521864043L, 614617835L, 655689196L, 684599743L, 807975982L, 814637933L, 913438267L, 923879691L, 1062971964L, 1163100913L, 1189439539L, 1199169712L, 1199289867L, 1201038883L, 1223457217L, 1266499770L, 1324623145L, 1333267508L, 1356003959L, 1365052249L, 1406198040L, 1406814316L, 1495784242L, 1523691391L, 1545068913L, 1615157337L, 1633582289L, 1640542524L, 1674116011L, 1697114315L, 1734625907L, 1800037875L, 1811496056L, 1832905711L, 1846274352L, 1879018422L, 1903510832L, 1945099064L, 1970871016L, 1974386100L, 1992385384L, 2019801012L, 2035217380L, 2056349497L, 2057274520L, 2068356100L, 2123892280L, 2241655300L, 2282909230L, 2419227733L, 2468748063L, 2493156110L, 2591892970L, 2630754498L, 2636357482L, 2654624860L, 2688006326L, 2706064032L, 2717683981L, 2725089227L, 2757367466L, 2856251881L, 2877368441L, 2885741698L, 2908998341L, 2910503803L, 2911161649L, 2939126956L, 2955367042L, 2983279954L, 2994285769L, 3024302635L})); + map.put("AATGTCTCTTTGC", new TLongArrayList(new long[]{50573583L, 61826562L, 112452059L, 113674597L, 152574341L, 152923792L, 163379721L, 209499435L, 218830556L, 218980095L, 269231108L, 387253467L, 415173381L, 446320237L, 450114984L, 468354013L, 517618016L, 528838967L, 533100427L, 614617836L, 625783339L, 661341799L, 712203083L, 720411718L, 744689658L, 770892383L, 800627763L, 895495888L, 987100204L, 988006195L, 988718860L, 995971018L, 1075356616L, 1078320974L, 1108370995L, 1116724266L, 1175240880L, 1176888597L, 1189439540L, 1242001413L, 1266499771L, 1282966830L, 1284127859L, 1291470798L, 1321091476L, 1361232866L, 1365762076L, 1365930195L, 1372180472L, 1408467772L, 1439860544L, 1439999351L, 1440005813L, 1440065793L, 1440068270L, 1440075541L, 1440168881L, 1440183103L, 1440199259L, 1475403383L, 1476599641L, 1487330603L, 1508056407L, 1516103065L, 1612353595L, 1619405399L, 1640542525L, 1660959593L, 1699637545L, 1722887142L, 1773712936L, 1844961688L, 1846274353L, 1865983560L, 1866541666L, 1867010481L, 1882321128L, 1908579005L, 1945099065L, 1957550423L, 1974386101L, 1988832489L, 2051235701L, 2057274521L, 2153634338L, 2155186419L, 2177005870L, 2180248500L, 2191808239L, 2224168952L, 2244900730L, 2263984133L, 2303132878L, 2350833893L, 2371802482L, 2433620262L, 2434729544L, 2457895971L, 2493156111L, 2514244389L, 2522331995L, 2591892971L, 2650414252L, 2683848265L, 2683879380L, 2687659401L, 2706064033L, 2717683982L, 2725270912L, 2744521685L, 2797641651L, 2803292193L, 2804990421L, 2877368442L, 2911161650L, 2939435655L, 2939442237L, 2942960065L, 2943046109L, 2956651358L, 2979031813L, 3017960816L, 3054314038L, 3056112907L})); + map.put("ATGTCTCTTTGCT", new TLongArrayList(new long[]{42045485L, 61826563L, 63799098L, 71206117L, 93796015L, 108795654L, 112452060L, 113674598L, 152923793L, 155092494L, 176295341L, 209499436L, 209554138L, 210778744L, 215153533L, 218830557L, 232307458L, 240587372L, 258262939L, 259874321L, 329435088L, 414514381L, 414590830L, 468354014L, 494687845L, 494817322L, 533100428L, 544269184L, 556895488L, 605425401L, 610577000L, 626953408L, 649543305L, 665962072L, 682457872L, 722437323L, 782379262L, 884927067L, 954829283L, 1048924509L, 1049063455L, 1075356617L, 1077199598L, 1078320975L, 1104081474L, 1116724267L, 1154371306L, 1154630895L, 1175240881L, 1189439541L, 1191631918L, 1250307306L, 1261364921L, 1266499772L, 1321091477L, 1328418992L, 1332977270L, 1356605162L, 1360597282L, 1365762077L, 1380898988L, 1408467773L, 1451528515L, 1469449888L, 1581430131L, 1607478732L, 1612353596L, 1632411540L, 1747719113L, 1773712937L, 1795185564L, 1807389967L, 1839958103L, 1846274354L, 1848062115L, 1851909393L, 1855103758L, 1911183821L, 1930967530L, 1944332396L, 1955948658L, 1975382164L, 1997304952L, 2051235702L, 2056246740L, 2057274522L, 2148695010L, 2153634339L, 2189168852L, 2267813696L, 2275930086L, 2300511038L, 2408701686L, 2434729545L, 2457895972L, 2493156112L, 2514244390L, 2535894442L, 2574198865L, 2624315052L, 2645400920L, 2650414253L, 2706064034L, 2725769530L, 2755568701L, 2792216714L, 2804990422L, 2810282225L, 2817908166L, 2864275271L, 2946051745L, 2953342508L, 2956651359L, 3033062108L, 3101591255L})); + map.put("TGTCTCTTTGCTA", new TLongArrayList(new long[]{70609279L, 71206118L, 93796016L, 191943698L, 215153534L, 253091814L, 280424184L, 364910529L, 440256361L, 446734835L, 446757578L, 468354015L, 491686046L, 520344921L, 552281563L, 555462962L, 568912734L, 588579831L, 591172171L, 623342528L, 638735478L, 658496106L, 668093099L, 693147553L, 726265186L, 736988006L, 759608997L, 760170063L, 773248546L, 788379025L, 796738435L, 833527605L, 854333588L, 868712786L, 942500553L, 949347112L, 969663370L, 971157830L, 1078320976L, 1153499763L, 1154630896L, 1180730290L, 1191631919L, 1211192239L, 1230696554L, 1233294478L, 1248750532L, 1266499773L, 1332665280L, 1355438516L, 1356605163L, 1406145513L, 1408635347L, 1451528516L, 1469449889L, 1484821030L, 1541785701L, 1674722136L, 1679757745L, 1681129477L, 1701281320L, 1728157847L, 1728666175L, 1748938140L, 1772371435L, 1846274355L, 1850843665L, 1851909394L, 1855103759L, 1858433832L, 1877307331L, 1899255868L, 1918477356L, 1930157257L, 1944332397L, 1945460948L, 1954479537L, 1955948659L, 1977485920L, 1981471095L, 2057274523L, 2128688657L, 2146273118L, 2148695011L, 2181541278L, 2189168853L, 2250113810L, 2255723324L, 2267813697L, 2281227120L, 2288184629L, 2296770398L, 2345436088L, 2353745872L, 2396478173L, 2457895973L, 2514244391L, 2582664685L, 2594720036L, 2609156129L, 2630830691L, 2636422775L, 2690159288L, 2735503123L, 2761291207L, 2776926026L, 2808096705L, 2821240953L, 2864275272L, 3008078878L, 3025424922L, 3033062109L})); + map.put("GTCTCTTTGCTAT", new TLongArrayList(new long[]{41516014L, 71206119L, 83580022L, 99327436L, 218251813L, 240702592L, 244823046L, 300293248L, 310817806L, 446734836L, 468354016L, 510276736L, 555462963L, 733445529L, 733985341L, 736151145L, 788379026L, 817242049L, 828084471L, 854333589L, 971157831L, 1040352702L, 1145072705L, 1153499764L, 1184736011L, 1208385732L, 1211192240L, 1301699835L, 1316546328L, 1356605164L, 1453220817L, 1484821031L, 1500430454L, 1523924640L, 1662625604L, 1693864677L, 1701281321L, 1728157848L, 1728666176L, 1748938141L, 1762754736L, 1846274356L, 1877307332L, 1944332398L, 1977485921L, 1996191697L, 2006180203L, 2016970410L, 2128688658L, 2148695012L, 2189168854L, 2193220711L, 2237709850L, 2250113811L, 2267813698L, 2275964541L, 2303643351L, 2353745873L, 2497051865L, 2573224228L, 2594720037L, 2690159289L, 2761291208L, 2808096706L, 2915345837L, 2958273537L, 2967598445L, 2974817625L, 3030607901L})); + map.put("TCTCTTTGCTATA", new TLongArrayList(new long[]{27373686L, 59705176L, 83580023L, 89145282L, 99675910L, 156155584L, 157553589L, 212805789L, 218251814L, 253188880L, 314894768L, 358493462L, 392374795L, 409999734L, 422617755L, 468354017L, 486014649L, 539862183L, 548660486L, 555462964L, 602916567L, 661893440L, 692902920L, 697497049L, 723991230L, 733445530L, 733985342L, 756421630L, 759165773L, 767464559L, 771319120L, 785803943L, 795150439L, 811602411L, 826277135L, 837581678L, 854333590L, 861668463L, 884113203L, 917842715L, 924086917L, 971157832L, 1013388266L, 1040352703L, 1041697379L, 1043125944L, 1076301802L, 1111438204L, 1173734093L, 1184736012L, 1187191568L, 1190090603L, 1195236910L, 1203346806L, 1208934353L, 1271216583L, 1316614169L, 1324899762L, 1328183439L, 1355465726L, 1376422648L, 1409392049L, 1412488367L, 1441894579L, 1453220818L, 1468438250L, 1478719887L, 1552318993L, 1552357781L, 1571534948L, 1622326153L, 1642920422L, 1647881232L, 1651350937L, 1690712240L, 1704307859L, 1728157849L, 1728666177L, 1748938142L, 1751524726L, 1762754737L, 1846274357L, 1848054974L, 1873915589L, 1882191397L, 1927253134L, 1971877218L, 2023840490L, 2046389057L, 2048934734L, 2051609154L, 2053323032L, 2053652713L, 2112950855L, 2142042087L, 2156368415L, 2156850666L, 2176277117L, 2193220712L, 2193690508L, 2229450791L, 2303643352L, 2341174700L, 2403264812L, 2416192105L, 2420062517L, 2547555899L, 2550564789L, 2582311869L, 2619365373L, 2621194358L, 2637719413L, 2654343090L, 2798655633L, 2820870045L, 2888396969L, 2949778950L, 2953999176L, 2967598446L, 2974817626L, 3014491539L, 3017000694L})); + map.put("CTCTTTGCTATAT", new TLongArrayList(new long[]{43963442L, 88324621L, 157553590L, 172256726L, 174517402L, 195575200L, 253154349L, 337311638L, 356262675L, 360514295L, 362368870L, 392374796L, 444895054L, 444977247L, 468354018L, 670798275L, 702874457L, 706186078L, 712148196L, 723991231L, 725516684L, 756421631L, 759165774L, 767464560L, 785803944L, 811602412L, 829197873L, 845459710L, 854333591L, 868334127L, 924086918L, 989335313L, 1013388267L, 1050626323L, 1072201332L, 1151403310L, 1161997097L, 1190090604L, 1195236911L, 1204702818L, 1220920126L, 1246856175L, 1271216584L, 1271275665L, 1324899763L, 1346511908L, 1412488368L, 1441894580L, 1493848667L, 1521521278L, 1528826480L, 1550475388L, 1559949798L, 1622326154L, 1642920423L, 1643568015L, 1704307860L, 1762754738L, 1828395556L, 1839650176L, 1853153230L, 1882191398L, 1904154255L, 1971877219L, 2023724043L, 2038831886L, 2053323033L, 2058610601L, 2122033715L, 2128690010L, 2377395379L, 2409761050L, 2458128237L, 2522328242L, 2609029915L, 2619365374L, 2621194359L, 2637719414L, 2678845803L, 2681173203L, 2682483947L, 2725073375L, 2798655634L, 2820870046L, 2855379911L, 2855628746L, 2891606575L, 2967598447L})); + map.put("TCTTTGCTATATG", new TLongArrayList(new long[]{22073359L, 47153298L, 85575706L, 101624964L, 166233523L, 176906787L, 195575201L, 245221569L, 278732243L, 287945880L, 453607663L, 460891930L, 468354019L, 533255773L, 642733996L, 652816763L, 654726449L, 660586815L, 675612559L, 697187741L, 712148197L, 785405379L, 813613369L, 819903085L, 854333592L, 871473952L, 876658746L, 896576894L, 924086919L, 989335314L, 997363170L, 999262129L, 1001521898L, 1153710730L, 1161997098L, 1207382540L, 1220920127L, 1250972082L, 1271216585L, 1303077348L, 1336019567L, 1378727881L, 1432450726L, 1448391520L, 1493848668L, 1528826481L, 1530934609L, 1549553639L, 1550475389L, 1555252262L, 1648686901L, 1668263659L, 1756401543L, 1828395557L, 1904154256L, 1916085834L, 2014257153L, 2024686362L, 2141465756L, 2152386967L, 2236570228L, 2246829179L, 2270754585L, 2272622572L, 2387090545L, 2387090904L, 2433969484L, 2470306473L, 2619365375L, 2679277673L, 2697504754L, 2737422843L, 2870374822L, 2885105367L, 2895025289L, 2901068332L, 2938945542L, 2950145372L, 3017656212L, 3030915906L})); + map.put("CTTTGCTATATGA", new TLongArrayList(new long[]{37693671L, 47153299L, 64931808L, 73899995L, 103045777L, 245221570L, 278732244L, 293164342L, 313662066L, 434555849L, 453607664L, 454125463L, 468354020L, 562887761L, 617302136L, 659199143L, 675612560L, 716846160L, 744017008L, 758449495L, 794156938L, 801360052L, 850835373L, 854333593L, 871473953L, 876658747L, 918456228L, 924086920L, 967797882L, 967797900L, 989335315L, 999262130L, 1009280173L, 1041097576L, 1207382541L, 1271216586L, 1481911607L, 1501192383L, 1510239930L, 1550475390L, 1552258854L, 1725037721L, 1748686135L, 1796260304L, 1881825866L, 1889941577L, 1916156817L, 1964125294L, 1992539916L, 1992864453L, 2158676251L, 2183037850L, 2228353801L, 2241972839L, 2346214956L, 2520236161L, 2536524330L, 2737422844L, 2870374823L, 2887478270L, 2895025290L, 2901068333L, 2906241645L, 2923168318L, 2938945543L, 2943172923L, 2963204179L, 2963286021L, 2977961046L, 2989274269L, 3010097624L, 3022270358L})); + map.put("TTTGCTATATGAC", new TLongArrayList(new long[]{58515324L, 64931809L, 80285021L, 81329357L, 87854622L, 158406174L, 209904009L, 264327955L, 268056239L, 301294427L, 313662067L, 353751729L, 373413057L, 430080153L, 468354021L, 513875160L, 565149426L, 575963430L, 624381603L, 672432063L, 710869240L, 746171677L, 747159844L, 749185267L, 755892587L, 791941438L, 794156939L, 802055106L, 805167476L, 819619765L, 869454356L, 886910881L, 918456229L, 919081684L, 967483771L, 1009280174L, 1041956075L, 1186876214L, 1189358221L, 1243058439L, 1362431582L, 1427167869L, 1481911608L, 1488475226L, 1516298736L, 1519249320L, 1725210369L, 1748686136L, 1826034232L, 1881825867L, 1889941578L, 1982756952L, 1992539917L, 2044044374L, 2158676252L, 2164965866L, 2229114488L, 2246529992L, 2331564337L, 2360539714L, 2435541624L, 2649087359L, 2739725691L, 2811706966L, 2893222750L, 2912998316L, 2923168319L, 2938945544L, 2963355002L, 3010097625L, 3014281811L, 3014790039L, 3022270359L})); + map.put("TTGCTATATGACC", new TLongArrayList(new long[]{58515325L, 100410189L, 241310765L, 264749385L, 268056240L, 301294428L, 313434402L, 313662068L, 353719773L, 359639357L, 441262467L, 442616923L, 468354022L, 501380959L, 565409552L, 624381604L, 672432064L, 746171678L, 755892588L, 779449921L, 886157394L, 892089897L, 966735686L, 1006025767L, 1009280175L, 1013687961L, 1041956076L, 1052321175L, 1099338601L, 1266552430L, 1411692740L, 1619579652L, 1633059691L, 1725210370L, 1738614762L, 1759028305L, 1760383695L, 1826034233L, 1860674537L, 1981432649L, 1982756953L, 1983682280L, 2031377788L, 2031377825L, 2044044375L, 2140624983L, 2147890062L, 2158676253L, 2229114489L, 2246529993L, 2255906359L, 2301977954L, 2435541625L, 2513525033L, 2649087360L, 2749210062L, 2923570736L, 2925311317L, 2928978689L, 3014047651L, 3022270360L})); + map.put("TGCTATATGACCT", new TLongArrayList(new long[]{43902646L, 55622367L, 58515326L, 86420143L, 94670103L, 147110993L, 158136318L, 241310766L, 268056241L, 279388393L, 282219453L, 301294429L, 313434403L, 313662069L, 331137402L, 359639358L, 468354023L, 498752891L, 501380960L, 520492331L, 559203487L, 565409553L, 598073775L, 616474631L, 672432065L, 706651613L, 755892589L, 781104650L, 828233233L, 966735687L, 998204812L, 1013687962L, 1041956077L, 1097695612L, 1099338602L, 1129524985L, 1157779290L, 1201827964L, 1266552431L, 1278961296L, 1411692741L, 1431516153L, 1507126464L, 1633059692L, 1651687270L, 1680958172L, 1725210371L, 1738614763L, 1760383696L, 1825949696L, 1826034234L, 1845107263L, 1860674538L, 2051196350L, 2113492709L, 2116422425L, 2140624984L, 2143284247L, 2143363147L, 2167733236L, 2255906360L, 2362985197L, 2435541626L, 2479736717L, 2620748945L, 2649087361L, 2923570737L, 3022270361L})); + map.put("GCTATATGACCTT", new TLongArrayList(new long[]{22616872L, 27770210L, 39590998L, 55622368L, 58090007L, 58515327L, 61012353L, 63564328L, 84203828L, 91871140L, 94670104L, 114337880L, 144052054L, 147110994L, 154079528L, 158136319L, 174636572L, 199798521L, 206514764L, 212025510L, 212381436L, 213678784L, 215628211L, 217853570L, 241310767L, 253658704L, 268056242L, 301294430L, 308594740L, 313662070L, 315624399L, 317764574L, 320371296L, 331137403L, 349485176L, 369473115L, 373990403L, 468354024L, 469258879L, 501380961L, 520492332L, 524360645L, 533289862L, 538366943L, 548045266L, 565409554L, 598073776L, 668577361L, 672432066L, 680726835L, 690944039L, 695295214L, 706651614L, 709682625L, 713475078L, 714419019L, 728103371L, 735617570L, 744004511L, 748458684L, 755892590L, 790993005L, 805957700L, 816812655L, 819719757L, 827921014L, 828233234L, 829962275L, 843408376L, 865467491L, 867400672L, 912512484L, 998204813L, 1013687963L, 1034642937L, 1041956078L, 1050733878L, 1086667056L, 1091400172L, 1111471976L, 1117575258L, 1129524986L, 1147081247L, 1158435540L, 1163999355L, 1168718912L, 1259366627L, 1260023258L, 1262212430L, 1267131927L, 1278961297L, 1303401994L, 1310859019L, 1330374334L, 1354260638L, 1384438187L, 1417362146L, 1432640656L, 1464772902L, 1498292978L, 1507423230L, 1546598665L, 1637315654L, 1651687271L, 1661675278L, 1665108900L, 1717656640L, 1725210372L, 1752900716L, 1760383697L, 1788135586L, 1795870014L, 1822125559L, 1825949697L, 1826034235L, 1833457461L, 1835543167L, 1845587735L, 1845957581L, 1856346566L, 1889076805L, 1895572135L, 1896588744L, 1902349771L, 1917499248L, 1930177018L, 1931498178L, 1938768035L, 1940952187L, 1945018091L, 1996221092L, 2028753276L, 2041012751L, 2048687188L, 2056216078L, 2057993950L, 2059555342L, 2113492710L, 2116422426L, 2117597182L, 2143363148L, 2167733237L, 2186978352L, 2255906361L, 2271153206L, 2276070861L, 2278900310L, 2292226352L, 2295853283L, 2374803253L, 2383585936L, 2402417690L, 2438751388L, 2460969456L, 2479736718L, 2505987016L, 2622063894L, 2649087362L, 2667924214L, 2720935405L, 2749940449L, 2758285447L, 2821595412L, 2864824691L, 2914107199L, 2919246556L, 2923570738L, 2925466694L, 2949488102L, 2958219423L, 2977356486L, 2980996994L, 3008866538L, 3013353298L, 3022270362L, 3022484106L, 3051119932L})); + map.put("CTATATGACCTTG", new TLongArrayList(new long[]{22616873L, 31821073L, 39590999L, 58515328L, 58651502L, 61012354L, 63564329L, 81822092L, 84203829L, 91048597L, 91871141L, 114337881L, 120492848L, 144052055L, 147110995L, 174636573L, 206514765L, 212025511L, 212381437L, 213678785L, 215628212L, 221046378L, 224595017L, 226585788L, 241310768L, 253658705L, 268056243L, 268604270L, 295535478L, 303180142L, 308594741L, 313662071L, 317764575L, 320371297L, 325054728L, 331379815L, 369473116L, 373990404L, 377240012L, 445154764L, 468354025L, 478899051L, 501380962L, 506723878L, 533289863L, 538366944L, 553573688L, 565409555L, 601313184L, 607455223L, 632417699L, 636989806L, 637547197L, 651150062L, 678482144L, 680726836L, 695295215L, 706651615L, 709682626L, 713475079L, 714419020L, 735617571L, 744004512L, 746387201L, 748458685L, 755892591L, 759605354L, 775500751L, 790993006L, 819442460L, 819719758L, 827921015L, 829962276L, 851577915L, 865467492L, 973475060L, 1013687964L, 1034642938L, 1050733879L, 1111471977L, 1117575259L, 1126796506L, 1129524987L, 1147444459L, 1169189024L, 1184320829L, 1193764851L, 1219203303L, 1231731179L, 1303401995L, 1310859020L, 1322170864L, 1330374335L, 1354260639L, 1384438188L, 1384868408L, 1413810545L, 1432640657L, 1440333377L, 1464772903L, 1498292979L, 1507423231L, 1530140940L, 1546598666L, 1559590390L, 1561937242L, 1637315655L, 1646206292L, 1661675279L, 1760383698L, 1795870015L, 1833457462L, 1845587736L, 1845957582L, 1850655868L, 1852390607L, 1854583866L, 1856225694L, 1856346567L, 1888772746L, 1889076806L, 1895572136L, 1896588745L, 1899963190L, 1917499249L, 1930177019L, 1938768036L, 1940952188L, 1945018092L, 1960161832L, 1968987101L, 1982865228L, 1996221093L, 2042720478L, 2048687189L, 2059555343L, 2073704429L, 2130741848L, 2145619411L, 2186978353L, 2227243470L, 2255906362L, 2271153207L, 2374803254L, 2379891288L, 2387012893L, 2424438137L, 2427251574L, 2437507803L, 2438751389L, 2460969457L, 2479736719L, 2487127137L, 2505987017L, 2520220398L, 2554647647L, 2555457165L, 2565026994L, 2601464593L, 2617260411L, 2617399624L, 2642173675L, 2649087363L, 2667924215L, 2677177415L, 2700871087L, 2720935406L, 2741761406L, 2749940450L, 2756215946L, 2758285448L, 2821595413L, 2854597004L, 2854957129L, 2914107200L, 2919246557L, 2925466695L, 2949488103L, 2958219424L, 2977356487L, 2980996995L, 3007860726L, 3008866539L, 3013353299L, 3022484107L, 3030451133L})); + map.put("TATATGACCTTGA", new TLongArrayList(new long[]{24079753L, 31821074L, 58515329L, 61012355L, 63564330L, 120492849L, 163345541L, 221046379L, 253658706L, 259267489L, 268056244L, 269261455L, 276797846L, 297651976L, 303180143L, 308594742L, 313662072L, 357365739L, 369473117L, 401923670L, 407014186L, 415327071L, 445154765L, 447375330L, 468354026L, 469793909L, 478899052L, 601313185L, 624503703L, 636989807L, 651150063L, 667101195L, 680726837L, 703123324L, 709964538L, 730628849L, 731955840L, 735617572L, 755892592L, 775500752L, 788059370L, 790993007L, 819442461L, 819719759L, 827921016L, 836087794L, 838758989L, 840029210L, 852389974L, 853516459L, 896564562L, 932382088L, 933124006L, 956374222L, 959091404L, 970147904L, 996019895L, 996902679L, 1010716896L, 1013687965L, 1048372964L, 1050733880L, 1072586817L, 1085817644L, 1087960496L, 1126796507L, 1129524988L, 1133366257L, 1184320830L, 1193764852L, 1243958082L, 1249174917L, 1259679770L, 1285181250L, 1303401996L, 1305745379L, 1322170865L, 1344111485L, 1377591995L, 1440333378L, 1489141655L, 1494612488L, 1495875402L, 1507423232L, 1546598667L, 1561171785L, 1576003453L, 1643810083L, 1644467152L, 1661675280L, 1686106004L, 1737344486L, 1795870016L, 1800184566L, 1828329961L, 1833457463L, 1845957583L, 1856225695L, 1889076807L, 1938768037L, 1940952189L, 1950462271L, 1954721542L, 1960161833L, 1968745802L, 1990284797L, 2000851878L, 2044333913L, 2059555344L, 2145619412L, 2168265728L, 2186978354L, 2192757182L, 2255906363L, 2299907398L, 2385804871L, 2479736720L, 2490757008L, 2533002254L, 2554345212L, 2554647648L, 2601464594L, 2638312665L, 2642173676L, 2642204755L, 2643049664L, 2677177416L, 2681952182L, 2720935407L, 2758285449L, 2800625210L, 2880928458L, 2914107201L, 2919246558L, 2938468424L, 3013353300L, 3059450761L})); + map.put("ATATGACCTTGAA", new TLongArrayList(new long[]{1712024L, 16759278L, 61012356L, 68928876L, 71807112L, 73158666L, 73893172L, 82576376L, 93593632L, 163345542L, 192138537L, 230680069L, 268056245L, 293993329L, 297651977L, 308594743L, 313662073L, 324867177L, 327256423L, 407014187L, 408453024L, 415327072L, 436518791L, 444612483L, 445154766L, 468354027L, 478899053L, 511917326L, 573644560L, 581030615L, 593587933L, 596684838L, 616093234L, 651150064L, 656091942L, 672865221L, 680726838L, 703123325L, 746802587L, 755892593L, 775500753L, 788284427L, 790993008L, 807910629L, 819442462L, 819858292L, 827921017L, 836087795L, 837102526L, 840029211L, 853516460L, 856868529L, 922234527L, 932382089L, 946815389L, 956882634L, 995978285L, 996902680L, 1026845430L, 1043462158L, 1071093236L, 1075622017L, 1085817645L, 1087960497L, 1091855834L, 1112925258L, 1139252680L, 1184320831L, 1192113255L, 1220278390L, 1229004385L, 1243958083L, 1267166501L, 1285181251L, 1329001271L, 1331297382L, 1335396396L, 1468313555L, 1472995536L, 1507423233L, 1512033731L, 1515039544L, 1569558406L, 1577287012L, 1616144684L, 1634908376L, 1643810084L, 1660595793L, 1712622709L, 1737344487L, 1774314488L, 1820982781L, 1841472779L, 1842019659L, 1856225696L, 1874402092L, 1938768038L, 1950462272L, 1954721543L, 1965232271L, 1979221368L, 2064470923L, 2153617769L, 2187257353L, 2232654256L, 2243069973L, 2299907399L, 2385804872L, 2529645746L, 2533002255L, 2554345213L, 2591814475L, 2601464595L, 2626104993L, 2628271343L, 2642173677L, 2677177417L, 2681952183L, 2692310343L, 2711719474L, 2757626768L, 2769968611L, 2773102172L, 2907631444L, 2914107202L, 2914974425L, 2919246559L, 2970726059L, 2974563953L, 2983027570L, 3032392727L, 3040186614L})); + map.put("TATGACCTTGAAA", new TLongArrayList(new long[]{73893173L, 192138538L, 248791975L, 252326901L, 268056246L, 274185344L, 293993330L, 308661942L, 325554206L, 392199184L, 407014188L, 422549362L, 444612484L, 468354028L, 478899054L, 482545369L, 511917327L, 533923714L, 558620132L, 581668801L, 589710480L, 591057284L, 596684839L, 610703826L, 616093235L, 626255237L, 650622030L, 746802588L, 788284428L, 819814814L, 828724642L, 848593825L, 857927630L, 954274662L, 962083962L, 993440085L, 1029340040L, 1087960498L, 1091855835L, 1109635298L, 1175434324L, 1180739078L, 1187329651L, 1188359720L, 1192907062L, 1212651551L, 1220278391L, 1245405183L, 1322761103L, 1336104254L, 1424848958L, 1468313556L, 1507423234L, 1529945549L, 1564703787L, 1569558407L, 1577287013L, 1624288702L, 1643810085L, 1647291085L, 1660595794L, 1730547497L, 1810316476L, 1820982782L, 1841472780L, 1842019660L, 1848383365L, 1853054692L, 1910670417L, 1938768039L, 1945808438L, 1960312031L, 1979221369L, 2010902821L, 2016603364L, 2018264421L, 2064470924L, 2076061780L, 2104275782L, 2132047661L, 2240774273L, 2240911451L, 2243069974L, 2287128209L, 2385804873L, 2556459766L, 2559162295L, 2619256637L, 2628371431L, 2634598165L, 2642173678L, 2672167003L, 2676905198L, 2680776404L, 2711719475L, 2769968612L, 2865739649L, 2876548263L, 2895385149L, 2974563954L, 2974863673L, 3042030590L})); + map.put("ATGACCTTGAAAA", new TLongArrayList(new long[]{50056945L, 73893174L, 76705772L, 77746115L, 114990501L, 115322563L, 120025811L, 172885042L, 211747798L, 219829669L, 230769460L, 232186120L, 246326574L, 248791976L, 251414150L, 258800430L, 293993331L, 308661943L, 319075862L, 322436202L, 322969494L, 325554207L, 334308180L, 337862480L, 363222311L, 371393684L, 374256377L, 391290281L, 392114933L, 394914586L, 407014189L, 411709275L, 413090407L, 468354029L, 477127212L, 511917328L, 522365969L, 525391608L, 525888196L, 548128887L, 551780151L, 558620133L, 574006879L, 581668802L, 591057285L, 591196278L, 608352215L, 610703827L, 616185680L, 617066896L, 626255238L, 650622031L, 699884694L, 710782593L, 733230605L, 736341991L, 738463999L, 743515519L, 749246253L, 755499314L, 767564808L, 770847639L, 788284429L, 806757729L, 819814815L, 828724643L, 843241180L, 867403224L, 874361508L, 954274663L, 957478244L, 972055402L, 995491681L, 997685177L, 1004483531L, 1020054670L, 1025608831L, 1029340041L, 1032941637L, 1036139436L, 1081700675L, 1096317633L, 1107599638L, 1109635299L, 1126600018L, 1156417809L, 1180739079L, 1192907063L, 1192917882L, 1200053401L, 1212651552L, 1220278392L, 1245405184L, 1263046916L, 1282364938L, 1346478822L, 1348979138L, 1353655322L, 1355653319L, 1359111219L, 1386086447L, 1404739975L, 1404986223L, 1417522607L, 1448486053L, 1449885748L, 1471106397L, 1507423235L, 1512065726L, 1533915322L, 1540049740L, 1543231219L, 1562404018L, 1564703788L, 1584716716L, 1585102967L, 1585731381L, 1611672141L, 1623263650L, 1624288703L, 1647291086L, 1660337713L, 1660595795L, 1662900327L, 1715340973L, 1730547498L, 1745383557L, 1764632892L, 1767664220L, 1796726597L, 1809298207L, 1810316477L, 1812882100L, 1820982783L, 1848383366L, 1856134946L, 1876217453L, 1881973927L, 1887463486L, 1896155616L, 1901002120L, 1910670418L, 1917500398L, 1922528337L, 1930858432L, 1938768040L, 1945808439L, 1967431146L, 1976432791L, 1980022355L, 1994070457L, 2013059418L, 2016603365L, 2035903235L, 2061308744L, 2064470925L, 2076061781L, 2142434078L, 2155762412L, 2155786263L, 2157069887L, 2194698157L, 2223005394L, 2225029819L, 2253391203L, 2287128210L, 2338465516L, 2343519863L, 2359208246L, 2385995555L, 2444721770L, 2463517278L, 2475732395L, 2486955703L, 2520072683L, 2544396358L, 2555822457L, 2556459767L, 2559162296L, 2560077487L, 2588407923L, 2619256638L, 2631337724L, 2634598166L, 2647926545L, 2648933128L, 2672167004L, 2676905199L, 2689581507L, 2698843199L, 2732599826L, 2802102747L, 2809153421L, 2818141196L, 2876548264L, 2876649123L, 2886208656L, 2895385150L, 2918794172L, 2919840838L, 2928581848L, 2943106903L, 2949815691L, 2970562900L, 2978802986L, 2999071744L, 3025829433L, 3035188709L, 3040015681L, 3054723461L})); + map.put("TGACCTTGAAAAT", new TLongArrayList(new long[]{7298409L, 24409815L, 61190673L, 91887660L, 96542649L, 157323584L, 172885043L, 174505044L, 181241272L, 181455751L, 185841121L, 196315726L, 208432156L, 211747799L, 214110593L, 246326575L, 258166344L, 319697071L, 322436203L, 322728767L, 337862481L, 351757046L, 374256378L, 382875869L, 391840462L, 407014190L, 414160437L, 418717038L, 426836280L, 441886296L, 444066976L, 458941007L, 468354030L, 470538520L, 515741057L, 525475142L, 528207455L, 551780152L, 591196279L, 604878775L, 610703828L, 616185681L, 620377387L, 650544434L, 650622032L, 685155425L, 696400447L, 700533568L, 711253836L, 733230606L, 736341992L, 743515520L, 745711995L, 749246254L, 767564809L, 771484582L, 806757730L, 819814816L, 820885801L, 827900409L, 852987027L, 933496045L, 934694847L, 943311507L, 953621434L, 958647110L, 967052225L, 977390884L, 997685178L, 1005341969L, 1010509616L, 1042442781L, 1055246846L, 1056309683L, 1096317634L, 1107599639L, 1139894132L, 1172939922L, 1173258719L, 1180739080L, 1192723468L, 1193928026L, 1245405185L, 1275493748L, 1298282458L, 1298793664L, 1316472926L, 1331413160L, 1344082480L, 1346478823L, 1348979139L, 1355653320L, 1369574983L, 1386086448L, 1387566851L, 1392612820L, 1405965045L, 1448486054L, 1451965353L, 1452458453L, 1484945105L, 1525147361L, 1531457043L, 1564703789L, 1574115501L, 1576016475L, 1584704854L, 1585091106L, 1614605569L, 1624288704L, 1661780030L, 1662900328L, 1718969874L, 1759818168L, 1789019875L, 1791060442L, 1807005647L, 1809298208L, 1838266226L, 1872118992L, 1881973928L, 1896223380L, 1908092487L, 1910670419L, 1910697155L, 1917500399L, 1938768041L, 1945808440L, 1967431147L, 1975596055L, 1976432792L, 1980022356L, 1983217736L, 2014840381L, 2015036220L, 2032221344L, 2061308745L, 2065163605L, 2077017970L, 2107120683L, 2173787244L, 2225029820L, 2226192848L, 2228995116L, 2243610801L, 2253391204L, 2282058634L, 2287128211L, 2343519864L, 2360201617L, 2385995556L, 2436326528L, 2463517279L, 2468463362L, 2476011116L, 2486955704L, 2503551536L, 2567073568L, 2567138521L, 2582206929L, 2589694027L, 2604511677L, 2618146564L, 2620862737L, 2631337725L, 2634598167L, 2646072058L, 2698843200L, 2712869247L, 2735620275L, 2744138545L, 2759349238L, 2761966439L, 2774688701L, 2809153422L, 2827045927L, 2865007016L, 2886208657L, 2894141334L, 2927665310L, 2928581849L, 2943106904L, 2949815692L, 2961926024L, 2973095429L, 2978802987L, 3015509136L, 3026789158L, 3033256814L, 3035188710L, 3035260395L, 3042095632L, 3054723462L})); + map.put("GACCTTGAAAATC", new TLongArrayList(new long[]{63882256L, 261945490L, 270926866L, 322436204L, 331275977L, 351757047L, 407014191L, 441886297L, 453102745L, 468354031L, 470538521L, 491092355L, 528207456L, 587574244L, 604878776L, 650544435L, 668220517L, 672469425L, 820885802L, 958647111L, 1026905262L, 1107599640L, 1161116705L, 1188709552L, 1212661911L, 1252164564L, 1275493749L, 1316472927L, 1331413161L, 1344082481L, 1367822790L, 1386086449L, 1387566852L, 1397046926L, 1452458454L, 1492263480L, 1541849503L, 1574115502L, 1617272927L, 1629238252L, 1748909254L, 1791060443L, 1804470674L, 1809298209L, 1938768042L, 1952969745L, 1957411626L, 1964304235L, 1975596056L, 2007077227L, 2022453475L, 2052866219L, 2067014554L, 2107120684L, 2225029821L, 2228995117L, 2256896058L, 2282058635L, 2343519865L, 2385995557L, 2486955705L, 2503551537L, 2604511678L, 2618146565L, 2620862738L, 2631337726L, 2744138546L, 2886200593L, 2886208658L, 2896139145L, 2943106905L, 2978802988L, 3051724621L, 3054723463L})); + map.put("ACCTTGAAAATCT", new TLongArrayList(new long[]{2892505L, 52623884L, 62048576L, 62962808L, 63882257L, 64658715L, 75694425L, 81234633L, 100989130L, 103011372L, 114209888L, 114936676L, 168222107L, 169104687L, 181785974L, 183987775L, 201457490L, 220570974L, 225313062L, 225359207L, 256490377L, 261945491L, 270926867L, 308001461L, 331275978L, 351757048L, 387137297L, 388256892L, 409824298L, 453102746L, 456338048L, 463784940L, 464988356L, 468354032L, 468933181L, 518589665L, 528207457L, 574257071L, 587574245L, 593370985L, 595722358L, 604878777L, 655891273L, 663157068L, 668220518L, 686211255L, 769023199L, 778253283L, 795583446L, 796938243L, 803759853L, 807596551L, 811208809L, 820885803L, 836366446L, 846998266L, 848547407L, 863529793L, 868809993L, 872497151L, 873589472L, 887662141L, 967588905L, 977076954L, 995650220L, 1045951579L, 1076238526L, 1107599641L, 1115172036L, 1115212375L, 1119088536L, 1126353227L, 1166292494L, 1181692462L, 1236629194L, 1252164565L, 1265813306L, 1275320678L, 1316472928L, 1346759515L, 1386086450L, 1397046927L, 1410047604L, 1414094581L, 1420577447L, 1444905495L, 1463377132L, 1501526252L, 1501845650L, 1508351420L, 1508721557L, 1518743504L, 1538426161L, 1541849504L, 1574115503L, 1613618462L, 1629238253L, 1649895107L, 1665925223L, 1675377771L, 1685745541L, 1698613863L, 1699098205L, 1713560303L, 1743246965L, 1748192340L, 1791060444L, 1797977128L, 1811373889L, 1938768043L, 1943032520L, 1966277468L, 1975596057L, 2007077228L, 2055655715L, 2153158660L, 2162428519L, 2162603649L, 2225029822L, 2228995118L, 2253900112L, 2260178107L, 2280579887L, 2290886085L, 2413414365L, 2431607605L, 2432423721L, 2483683815L, 2487284063L, 2500364222L, 2503551538L, 2570880799L, 2590090938L, 2611614424L, 2613470414L, 2618146566L, 2620862739L, 2628084799L, 2651516612L, 2668945107L, 2734598707L, 2753240960L, 2766429766L, 2802443571L, 2861935430L, 2907306737L, 2944928907L, 2970672715L, 2995316977L, 2998227943L, 3021311669L, 3040133246L, 3051724622L, 3059864490L})); + map.put("CCTTGAAAATCTT", new TLongArrayList(new long[]{10121691L, 39495262L, 40978586L, 63882258L, 96829898L, 100763334L, 114936677L, 117912445L, 166245525L, 169173890L, 181785975L, 220570975L, 257198819L, 261945492L, 304232058L, 308001462L, 335640600L, 396461747L, 397127379L, 402744077L, 409824299L, 449662953L, 453102747L, 455843535L, 463784941L, 464988357L, 468354033L, 468933182L, 470015558L, 515761450L, 528207458L, 573999255L, 579987534L, 587574246L, 590545063L, 595722359L, 612998134L, 655891274L, 666640894L, 688065799L, 702831559L, 724947861L, 726439027L, 732699080L, 767066398L, 796938244L, 803759854L, 828257378L, 846998267L, 848547408L, 849363583L, 858006595L, 872497152L, 931708885L, 956772605L, 958906507L, 967588906L, 1039775981L, 1115172037L, 1115212376L, 1160631490L, 1168020308L, 1181765719L, 1191602686L, 1203464544L, 1211190065L, 1227658717L, 1249237672L, 1252164566L, 1285022415L, 1298197791L, 1298891921L, 1325631788L, 1326377138L, 1332989245L, 1366104611L, 1371025905L, 1376048268L, 1386560965L, 1410047605L, 1411692455L, 1411949404L, 1414094582L, 1420577448L, 1469712635L, 1501845651L, 1508351421L, 1508400699L, 1518061392L, 1542137730L, 1574115504L, 1615833945L, 1619347352L, 1628478492L, 1629238254L, 1685745542L, 1687638877L, 1700066540L, 1748192341L, 1764713419L, 1797977129L, 1850401883L, 1901214084L, 1924824653L, 1933707402L, 1973355162L, 2011276753L, 2019358236L, 2029734748L, 2081817670L, 2151144425L, 2153158661L, 2173430538L, 2173486653L, 2222390662L, 2225029823L, 2247383223L, 2255707222L, 2264212286L, 2290886086L, 2292139428L, 2331215171L, 2342451785L, 2349598601L, 2356019084L, 2356429596L, 2409616657L, 2431607606L, 2432423722L, 2470277710L, 2495947914L, 2503551539L, 2522007153L, 2526813269L, 2559539965L, 2603379866L, 2611614425L, 2618146567L, 2620862740L, 2630903385L, 2646653957L, 2716519515L, 2734598708L, 2753240961L, 2763771894L, 2766429767L, 2802443572L, 2861935431L, 2893020666L, 2898409740L, 2967521687L, 2970672716L, 2989958284L, 3021311670L, 3040133247L, 3051724623L})); + map.put("CTTGAAAATCTTC", new TLongArrayList(new long[]{62177439L, 67816068L, 72688452L, 80868891L, 84904244L, 96829899L, 100763335L, 106164081L, 174929656L, 183017903L, 192602027L, 254709848L, 257198820L, 272883018L, 281554375L, 286048046L, 334559055L, 346343411L, 366429321L, 374439057L, 404019494L, 408035775L, 423045008L, 443778789L, 455843536L, 464988358L, 468354034L, 473005757L, 546494902L, 655891275L, 666640895L, 706026151L, 723296007L, 743246211L, 767368916L, 793756090L, 803759855L, 858006596L, 872497153L, 926120373L, 956772606L, 969702920L, 1042303810L, 1074000473L, 1107497943L, 1121013969L, 1148866829L, 1156138360L, 1165273601L, 1191397834L, 1191602687L, 1210595382L, 1229008225L, 1313799280L, 1339773428L, 1371025906L, 1378867393L, 1386560966L, 1395271250L, 1458555345L, 1467501376L, 1518061393L, 1557100935L, 1559560414L, 1615833946L, 1622449689L, 1669123585L, 1686847408L, 1686925074L, 1690086726L, 1700066541L, 1708716301L, 1742418414L, 1746104331L, 1762071081L, 1764713420L, 1787931881L, 1797977130L, 1813497686L, 1855427492L, 1856828779L, 1858916284L, 1892406213L, 1898106037L, 1898178244L, 1899174703L, 1932529733L, 1958381453L, 2037280269L, 2108592646L, 2125664877L, 2138514685L, 2151144426L, 2190153107L, 2191839530L, 2237344968L, 2250552671L, 2292139429L, 2331215172L, 2340265099L, 2342451786L, 2365739919L, 2374347341L, 2409616658L, 2424344766L, 2538484266L, 2541368594L, 2546269958L, 2551096985L, 2556829045L, 2577928323L, 2618146568L, 2648710406L, 2691751498L, 2731110323L, 2755374965L, 2893020667L, 2928089127L, 2979703338L, 2989105480L, 3034019695L})); + map.put("TTGAAAATCTTCC", new TLongArrayList(new long[]{14530639L, 62177440L, 68254341L, 72688453L, 93450819L, 96829900L, 100588768L, 100763336L, 106164082L, 109369869L, 184234140L, 219268661L, 257247978L, 272883019L, 281554376L, 286775770L, 293150407L, 310029748L, 335540781L, 341046419L, 357991189L, 361910621L, 383776759L, 397376082L, 408035776L, 468354035L, 484550917L, 494816604L, 553585739L, 594051618L, 626617277L, 651865407L, 683521638L, 707890168L, 723296008L, 723948555L, 730116939L, 753331795L, 778471126L, 793809800L, 793821310L, 805863569L, 816065698L, 834706093L, 836755945L, 850027001L, 862375173L, 884092736L, 893369553L, 895000021L, 926120374L, 933219738L, 938428098L, 941092959L, 985824978L, 1013680657L, 1027899715L, 1042303811L, 1046947502L, 1092889813L, 1099485421L, 1107497944L, 1108817535L, 1111021709L, 1113530889L, 1154480678L, 1191397835L, 1210595383L, 1247448718L, 1252176024L, 1313158912L, 1378867394L, 1389986093L, 1390175013L, 1467501377L, 1476698084L, 1505325039L, 1518061394L, 1531253626L, 1557100936L, 1567620318L, 1615282374L, 1622449690L, 1641781400L, 1686239442L, 1687006058L, 1694299485L, 1700066542L, 1705574569L, 1742418415L, 1755618050L, 1787931882L, 1809167257L, 1813497687L, 1819888196L, 1834525498L, 1855543713L, 1898098217L, 1898106038L, 1898869934L, 1912818861L, 1958381454L, 1964232170L, 1977280051L, 1981884434L, 2020514413L, 2054753991L, 2076163622L, 2113508726L, 2125375201L, 2138514686L, 2171227195L, 2184797351L, 2190153108L, 2191839531L, 2237344969L, 2250552672L, 2284315822L, 2287400749L, 2289396278L, 2291383394L, 2341512901L, 2368258397L, 2374347342L, 2413941025L, 2416612297L, 2417737622L, 2513218805L, 2548068849L, 2551059135L, 2552362956L, 2561532009L, 2564134361L, 2577928324L, 2578852567L, 2618146569L, 2619800607L, 2632239062L, 2641566528L, 2648710407L, 2668369515L, 2671964882L, 2695947517L, 2696610300L, 2711987503L, 2727288398L, 2893971947L, 2927474807L, 2927850011L, 2929411065L, 2932022057L, 2979703339L, 3027830119L})); + map.put("TGAAAATCTTCCG", new TLongArrayList(new long[]{184234141L, 184637982L, 468354036L, 593571847L, 883328755L, 1040381578L, 1271884765L, 1615282375L, 1713898378L, 1818373015L, 1898106039L, 2030023248L, 2289396279L, 2348064383L, 2348066105L, 2348067568L})); + map.put("GAAAATCTTCCGG", new TLongArrayList(new long[]{37759059L, 468354037L, 490546539L, 593571848L, 1271884766L, 1615282376L, 1671757189L, 1713898379L, 2105174288L, 2642941643L, 2904579919L})); Map map2 = TiledAlignerUtil.getTiles(map, "TTATTAAAGAGGGTGTACGGGAGTTTCTTGGTAAATCCAGAATCAGGATACAATGTCTCTTTGCTATATGACCTTGAAAATCTTCCGG", 13, false); List keys = new ArrayList<>(map2.keySet()); @@ -507,7 +503,7 @@ public void getBestStartPositions7() { } assertEquals(6, map2.size()); assertArrayEquals(new long[] {468349696}, map2.get(NumberUtils.pack2IntsInto1(35, 0)).toArray()); - assertArrayEquals(new long[] {47279468348373l}, map2.get(NumberUtils.pack2IntsInto1(33, 0)).toArray()); + assertArrayEquals(new long[] {47279468348373L}, map2.get(NumberUtils.pack2IntsInto1(33, 0)).toArray()); } @@ -544,82 +540,82 @@ public void getSoCalledInteligentSW3() { @Test public void getBestStartPositions8() { Map map = new HashMap<>(); - map.put("TTATTAAAGAGGG", new TLongArrayList(new long[]{ 468349696l, 468465329l})); - map.put("TATTAAAGAGGGT", new TLongArrayList(new long[]{ 468349697l, })); - map.put("ATTAAAGAGGGTG", new TLongArrayList(new long[]{468349698l, 476879994l})); - map.put("TTAAAGAGGGTGT", new TLongArrayList(new long[]{468349699l})); - map.put("TAAAGAGGGTGTA", new TLongArrayList(new long[]{468349700l, 474433020l})); - map.put("AAAGAGGGTGTAC", new TLongArrayList(new long[]{468349701l, 474955810l})); - map.put("AAGAGGGTGTACG", new TLongArrayList(new long[]{412951324l, 468349702l, 600881863l, 669102997l, 1173339001l })); - map.put("AGAGGGTGTACGG", new TLongArrayList(new long[]{468349703l, 949919689l, 1100688211l, 1173339002l, 1971729085l})); - map.put("GAGGGTGTACGGG", new TLongArrayList(new long[]{430806892l, 468349704l, 483562144l, 527480019l, 538881786l, })); - map.put("AGGGTGTACGGGA", new TLongArrayList(new long[]{468349705l, 718569128l, 949919691l, 1465841807l, 2563923173l })); - map.put("GGGTGTACGGGAG", new TLongArrayList(new long[]{468349706l, 468456928l, 518302224l, 718569129l, 1012215599l})); - map.put("GGTGTACGGGAGT", new TLongArrayList(new long[]{468349707l})); - map.put("GTGTACGGGAGTT", new TLongArrayList(new long[]{382633241l, 468349708l, 2302263166l, 2669507711l})); - map.put("TGTACGGGAGTTT", new TLongArrayList(new long[]{165675197l, 195757033l, 468349709l, 819168003l })); - map.put("GTACGGGAGTTTC", new TLongArrayList(new long[]{468349710l, 2375073053l})); - map.put("TACGGGAGTTTCT", new TLongArrayList(new long[]{468349711l, 559402306l, 1403796911l, 2375073054l, })); - map.put("ACGGGAGTTTCTT", new TLongArrayList(new long[]{468349712l})); - map.put("CGGGAGTTTCTTG", new TLongArrayList(new long[]{468349713l, 535356324l, 2198033423l, 2299777492l, })); - map.put("GGGAGTTTCTTGG", new TLongArrayList(new long[]{468349714l})); - map.put("GGAGTTTCTTGGT", new TLongArrayList(new long[]{ 468349715l, 551879994l})); - map.put("GAGTTTCTTGGTA", new TLongArrayList(new long[]{ 468349716l})); - map.put("AGTTTCTTGGTAA", new TLongArrayList(new long[]{433458879l, 446785008l, 468349717l, 494243216l})); - map.put("GTTTCTTGGTAAA", new TLongArrayList(new long[]{433458880l, 443185041l, 468349718l, 624530452l})); - map.put("TTTCTTGGTAAAT", new TLongArrayList(new long[]{ 407027871l, 409581534l, 419802124l, 443185042l, 461561409l, 468349719l, 487853598l})); - map.put("TTCTTGGTAAATC", new TLongArrayList(new long[]{ 419746101l, 468349720l, 516548824l, 519217773l})); - map.put("TCTTGGTAAATCC", new TLongArrayList(new long[]{ 429318665l, 468349721l, 503456237l, })); - map.put("CTTGGTAAATCCA", new TLongArrayList(new long[]{419746103l, 468349722l, 476153903l, 516457133l})); - map.put("TTGGTAAATCCAG", new TLongArrayList(new long[]{361857773l, 419746104l, 468349723l, 516457134l, 681603336l, 749135912l, 1059432192l, 1166646996l, })); - map.put("TGGTAAATCCAGA", new TLongArrayList(new long[]{321764029l, 329854941l, 353302906l, 376221812l, 456847670l, 468349724l, 511258514l, 516457135l, 660685009l, 689383656l, 692040517l})); - map.put("GGTAAATCCAGAA", new TLongArrayList(new long[]{ 403626999l, 414401819l, 456847671l, 468349725l, 516457136l, 547841074l, 689383657l, 802634393l, 803641725l})); - map.put("GTAAATCCAGAAT", new TLongArrayList(new long[]{468349726l, 481209945l, 516457137l, 541996553l, 547841075l})); - map.put("TAAATCCAGAATC", new TLongArrayList(new long[]{47226371l, 440805414l, 450321506l, 468349727l, 514348111l, 541996554l, 547841076l, 596605493l, 599027172l, 629439729l, 652498006l, 671475806l, 672735930l, 684566568l, 706281885l, 766574683l})); - map.put("AAATCCAGAATCA", new TLongArrayList(new long[]{58463424l, 251423126l, 252623228l, 253020929l, 257495940l, 268032852l, 363754626l, 413938427l, 423760846l, 441399943l, 449912867l, 468349728l, 510008571l})); - map.put("AATCCAGAATCAG", new TLongArrayList(new long[]{392743866l, 448016523l, 457539598l, 468349729l, 509312434l, 589822718l, 594006664l, 602809119l})); - map.put("ATCCAGAATCAGG", new TLongArrayList(new long[]{ 291683940l, 468349730l, 505808029l, 540927428l})); - map.put("TCCAGAATCAGGA", new TLongArrayList(new long[]{10827345l, 103399775l, 211446740l, 271266371l, 274063389l, 389817552l, 396781086l, 407436232l})); - map.put("CCAGAATCAGGAT", new TLongArrayList(new long[]{19505994l, 163434370l, 172261067l, 175630132l, 182601354l, 182602452l, 195403318l, 211446741l})); - map.put("CAGAATCAGGATA", new TLongArrayList(new long[]{19505995l, 61037264l, 113539602l, 163434371l, 198899729l, 218850354l, 461606678l, 505916026l})); - map.put("AGAATCAGGATAC", new TLongArrayList(new long[]{58115562l, 165524926l, 196607988l, 198899730l, 418840445l, 577922138l, 578105762l, 603032542l})); - map.put("GAATCAGGATACA", new TLongArrayList(new long[]{12341352l, 165524927l, 170831349l, 198899731l, 418864343l, 421200234l, 521477579l, 577922139l, 605123826l, 610794609l})); - map.put("AATCAGGATACAA", new TLongArrayList(new long[]{34353035l, 51482545l, 56690490l, 80302984l, 170831350l, 212876404l, 217329695l, 218054786l})); - map.put("ATCAGGATACAAT", new TLongArrayList(new long[]{213653915l, 256146597l, 390321495l, 546537677l, 567748798l, 573119873l, 675573219l})); - map.put("TCAGGATACAATG", new TLongArrayList(new long[]{18133123l, 239725354l, 241198392l, 293050485l, 515602712l, 546537678l, 607091318l, 647054569l, 736859333l, 755687090l,})); - map.put("CAGGATACAATGT", new TLongArrayList(new long[]{ 468354005l, 534331226l, 607091319l, 647054570l, 736859334l, 739212701l, 755687091l})); - map.put("AGGATACAATGTC", new TLongArrayList(new long[]{468354006l, 497841111l, 570703664l, 647054571l, 730637206l, 755687092l, 941427503l})); - map.put("GGATACAATGTCT", new TLongArrayList(new long[]{ 383840938l, 430797104l, 468354007l, 508621408l})); - map.put("GATACAATGTCTC", new TLongArrayList(new long[]{262007740l, 430797105l, 468354008l})); - map.put("ATACAATGTCTCT", new TLongArrayList(new long[]{468354009l, 575812985l, 651206615l, 718537434l, 723113109l, 733712469l, 755210479l, 818556765l, 843526201l, 925749374l, 1029273224l, 1052946433l, 1062695904l})); - map.put("TACAATGTCTCTT", new TLongArrayList(new long[]{ 468354010l, 575812986l, 629515561l, 644092118l, 723113110l, 778970070l, 843526202l, 953508248l, 953613863l, 1011825035l, 1109020073l, 1128033946l})); - map.put("ACAATGTCTCTTT", new TLongArrayList(new long[]{404982273l, 408622781l, 417519327l, 426959230l, 460334628l, 468354011l, 473523638l, 487654369l, 511834938l, 575812987l, 614617834l, 643896032l})); - map.put("CAATGTCTCTTTG", new TLongArrayList(new long[]{468354012l, 473523639l, 488837561l, 489262153l, 513310520l, 521864043l, 614617835l, 655689196l, 684599743l, 807975982l, 814637933l, 913438267l})); - map.put("AATGTCTCTTTGC", new TLongArrayList(new long[]{ 468354013l, 517618016l, 528838967l, 533100427l, 614617836l, 625783339l, 661341799l, 712203083l, 720411718l, 744689658l, 770892383l})); - map.put("ATGTCTCTTTGCT", new TLongArrayList(new long[]{468354014l, 494687845l, 494817322l, 533100428l, 544269184l, 556895488l, 605425401l, 610577000l, 626953408l, 649543305l, 665962072l})); - map.put("TGTCTCTTTGCTA", new TLongArrayList(new long[]{468354015l})); - map.put("GTCTCTTTGCTAT", new TLongArrayList(new long[]{ 468354016l, 510276736l, 555462963l, 733445529l, 733985341l, 736151145l, 788379026l, 817242049l, 828084471l, 854333589l, 971157831l, 1040352702l})); - map.put("TCTCTTTGCTATA", new TLongArrayList(new long[]{ 422617755l, 468354017l, 486014649l, 539862183l, 548660486l, 555462964l, 602916567l, 661893440l, 692902920l, 697497049l})); - map.put("CTCTTTGCTATAT", new TLongArrayList(new long[]{ 468354018l, 670798275l, 702874457l, 706186078l, 712148196l, 723991231l, 725516684l, 756421631l, 759165774l, 767464560l, 785803944l, 811602412l, 1271216584l})); - map.put("TCTTTGCTATATG", new TLongArrayList(new long[]{ 468354019l, 533255773l, 642733996l, 652816763l, 654726449l, 660586815l, 675612559l, 697187741l, 712148197l, 785405379l, 813613369l, 819903085l, 1336019567l})); - map.put("CTTTGCTATATGA", new TLongArrayList(new long[]{ 468354020l, 562887761l, 617302136l, 659199143l, 675612560l, 716846160l, 744017008l, 758449495l, 794156938l, 801360052l, 850835373l, 854333593l, 1009280173l})); - map.put("TTTGCTATATGAC", new TLongArrayList(new long[]{468354021l})); - map.put("TTGCTATATGACC", new TLongArrayList(new long[]{ 468354022l})); - map.put("TGCTATATGACCT", new TLongArrayList(new long[]{468354023l, 498752891l, 501380960l, 520492331l, 559203487l, 565409553l, 598073775l, 616474631l, 672432065l, 706651613l, 755892589l, 781104650l, 828233233l, 966735687l, 998204812l, 1013687962l, 1041956077l})); - map.put("GCTATATGACCTT", new TLongArrayList(new long[]{468354024l, 469258879l})); - map.put("CTATATGACCTTG", new TLongArrayList(new long[]{ 468354025l, 478899051l, 501380962l, 506723878l, 533289863l, 538366944l, 553573688l, 565409555l, 601313184l, 607455223l, 632417699l, 636989806l, 637547197l, 651150062l, 678482144l, 680726836l, 695295215l})); - map.put("TATATGACCTTGA", new TLongArrayList(new long[]{468354026l, 469793909l, 478899052l, 601313185l})); - map.put("ATATGACCTTGAA", new TLongArrayList(new long[]{ 324867177l, 327256423l, 407014187l, 408453024l, 415327072l, 436518791l, 444612483l, 445154766l, 468354027l, 478899053l, 511917326l, 573644560l, 581030615l})); - map.put("TATGACCTTGAAA", new TLongArrayList(new long[]{444612484l, 468354028l, 478899054l, 482545369l, 2642173678l})); - map.put("ATGACCTTGAAAA", new TLongArrayList(new long[]{334308180l, 337862480l, 363222311l, 371393684l, 374256377l, 391290281l, 392114933l, 394914586l, 407014189l, 411709275l, 413090407l, 468354029l, 477127212l, 511917328l})); - map.put("TGACCTTGAAAAT", new TLongArrayList(new long[]{7298409l,322728767l, 337862481l, 351757046l, 414160437l, 418717038l, 426836280l, 441886296l, 444066976l, 458941007l, 468354030l, 470538520l})); - map.put("GACCTTGAAAATC", new TLongArrayList(new long[]{63882256l, 261945490l, 270926866l, 322436204l, 331275977l, 351757047l, 407014191l, 441886297l, 453102745l, 468354031l, 470538521l, 820885802l, 958647111l})); - map.put("ACCTTGAAAATCT", new TLongArrayList(new long[]{2892505l, 52623884l, 103011372l, 114209888l, 114936676l, 225313062l, 225359207l, 256490377l, 388256892l, 409824298l, 453102746l, 456338048l, 463784940l, 464988356l, 468354032l, 468933181l, 518589665l})); - map.put("CCTTGAAAATCTT", new TLongArrayList(new long[]{ 409824299l, 449662953l, 453102747l, 455843535l, 463784941l, 464988357l, 468354033l, 468933182l, 470015558l, 515761450l})); - map.put("CTTGAAAATCTTC", new TLongArrayList(new long[]{62177439l,174929656l, 183017903l, 192602027l,408035775l, 423045008l, 443778789l, 455843536l, 464988358l, 468354034l, 473005757l, 546494902l, 655891275l, 666640895l, 706026151l, 723296007l, 743246211l})); - map.put("TTGAAAATCTTCC", new TLongArrayList(new long[]{341046419l, 357991189l, 361910621l, 383776759l, 397376082l, 408035776l, 468354035l, 484550917l, 494816604l, 553585739l, 594051618l})); - map.put("TGAAAATCTTCCG", new TLongArrayList(new long[]{ 468354036l, 593571847l})); - map.put("GAAAATCTTCCGG", new TLongArrayList(new long[]{37759059l, 468354037l, 490546539l, 593571848l, 1271884766l, 1615282376l, 1671757189l, 1713898379l, 2105174288l, 2642941643l, 2904579919l})); + map.put("TTATTAAAGAGGG", new TLongArrayList(new long[]{468349696L, 468465329L})); + map.put("TATTAAAGAGGGT", new TLongArrayList(new long[]{468349697L, })); + map.put("ATTAAAGAGGGTG", new TLongArrayList(new long[]{468349698L, 476879994L})); + map.put("TTAAAGAGGGTGT", new TLongArrayList(new long[]{468349699L})); + map.put("TAAAGAGGGTGTA", new TLongArrayList(new long[]{468349700L, 474433020L})); + map.put("AAAGAGGGTGTAC", new TLongArrayList(new long[]{468349701L, 474955810L})); + map.put("AAGAGGGTGTACG", new TLongArrayList(new long[]{412951324L, 468349702L, 600881863L, 669102997L, 1173339001L})); + map.put("AGAGGGTGTACGG", new TLongArrayList(new long[]{468349703L, 949919689L, 1100688211L, 1173339002L, 1971729085L})); + map.put("GAGGGTGTACGGG", new TLongArrayList(new long[]{430806892L, 468349704L, 483562144L, 527480019L, 538881786L, })); + map.put("AGGGTGTACGGGA", new TLongArrayList(new long[]{468349705L, 718569128L, 949919691L, 1465841807L, 2563923173L})); + map.put("GGGTGTACGGGAG", new TLongArrayList(new long[]{468349706L, 468456928L, 518302224L, 718569129L, 1012215599L})); + map.put("GGTGTACGGGAGT", new TLongArrayList(new long[]{468349707L})); + map.put("GTGTACGGGAGTT", new TLongArrayList(new long[]{382633241L, 468349708L, 2302263166L, 2669507711L})); + map.put("TGTACGGGAGTTT", new TLongArrayList(new long[]{165675197L, 195757033L, 468349709L, 819168003L})); + map.put("GTACGGGAGTTTC", new TLongArrayList(new long[]{468349710L, 2375073053L})); + map.put("TACGGGAGTTTCT", new TLongArrayList(new long[]{468349711L, 559402306L, 1403796911L, 2375073054L, })); + map.put("ACGGGAGTTTCTT", new TLongArrayList(new long[]{468349712L})); + map.put("CGGGAGTTTCTTG", new TLongArrayList(new long[]{468349713L, 535356324L, 2198033423L, 2299777492L, })); + map.put("GGGAGTTTCTTGG", new TLongArrayList(new long[]{468349714L})); + map.put("GGAGTTTCTTGGT", new TLongArrayList(new long[]{468349715L, 551879994L})); + map.put("GAGTTTCTTGGTA", new TLongArrayList(new long[]{468349716L})); + map.put("AGTTTCTTGGTAA", new TLongArrayList(new long[]{433458879L, 446785008L, 468349717L, 494243216L})); + map.put("GTTTCTTGGTAAA", new TLongArrayList(new long[]{433458880L, 443185041L, 468349718L, 624530452L})); + map.put("TTTCTTGGTAAAT", new TLongArrayList(new long[]{407027871L, 409581534L, 419802124L, 443185042L, 461561409L, 468349719L, 487853598L})); + map.put("TTCTTGGTAAATC", new TLongArrayList(new long[]{419746101L, 468349720L, 516548824L, 519217773L})); + map.put("TCTTGGTAAATCC", new TLongArrayList(new long[]{429318665L, 468349721L, 503456237L, })); + map.put("CTTGGTAAATCCA", new TLongArrayList(new long[]{419746103L, 468349722L, 476153903L, 516457133L})); + map.put("TTGGTAAATCCAG", new TLongArrayList(new long[]{361857773L, 419746104L, 468349723L, 516457134L, 681603336L, 749135912L, 1059432192L, 1166646996L, })); + map.put("TGGTAAATCCAGA", new TLongArrayList(new long[]{321764029L, 329854941L, 353302906L, 376221812L, 456847670L, 468349724L, 511258514L, 516457135L, 660685009L, 689383656L, 692040517L})); + map.put("GGTAAATCCAGAA", new TLongArrayList(new long[]{403626999L, 414401819L, 456847671L, 468349725L, 516457136L, 547841074L, 689383657L, 802634393L, 803641725L})); + map.put("GTAAATCCAGAAT", new TLongArrayList(new long[]{468349726L, 481209945L, 516457137L, 541996553L, 547841075L})); + map.put("TAAATCCAGAATC", new TLongArrayList(new long[]{47226371L, 440805414L, 450321506L, 468349727L, 514348111L, 541996554L, 547841076L, 596605493L, 599027172L, 629439729L, 652498006L, 671475806L, 672735930L, 684566568L, 706281885L, 766574683L})); + map.put("AAATCCAGAATCA", new TLongArrayList(new long[]{58463424L, 251423126L, 252623228L, 253020929L, 257495940L, 268032852L, 363754626L, 413938427L, 423760846L, 441399943L, 449912867L, 468349728L, 510008571L})); + map.put("AATCCAGAATCAG", new TLongArrayList(new long[]{392743866L, 448016523L, 457539598L, 468349729L, 509312434L, 589822718L, 594006664L, 602809119L})); + map.put("ATCCAGAATCAGG", new TLongArrayList(new long[]{291683940L, 468349730L, 505808029L, 540927428L})); + map.put("TCCAGAATCAGGA", new TLongArrayList(new long[]{10827345L, 103399775L, 211446740L, 271266371L, 274063389L, 389817552L, 396781086L, 407436232L})); + map.put("CCAGAATCAGGAT", new TLongArrayList(new long[]{19505994L, 163434370L, 172261067L, 175630132L, 182601354L, 182602452L, 195403318L, 211446741L})); + map.put("CAGAATCAGGATA", new TLongArrayList(new long[]{19505995L, 61037264L, 113539602L, 163434371L, 198899729L, 218850354L, 461606678L, 505916026L})); + map.put("AGAATCAGGATAC", new TLongArrayList(new long[]{58115562L, 165524926L, 196607988L, 198899730L, 418840445L, 577922138L, 578105762L, 603032542L})); + map.put("GAATCAGGATACA", new TLongArrayList(new long[]{12341352L, 165524927L, 170831349L, 198899731L, 418864343L, 421200234L, 521477579L, 577922139L, 605123826L, 610794609L})); + map.put("AATCAGGATACAA", new TLongArrayList(new long[]{34353035L, 51482545L, 56690490L, 80302984L, 170831350L, 212876404L, 217329695L, 218054786L})); + map.put("ATCAGGATACAAT", new TLongArrayList(new long[]{213653915L, 256146597L, 390321495L, 546537677L, 567748798L, 573119873L, 675573219L})); + map.put("TCAGGATACAATG", new TLongArrayList(new long[]{18133123L, 239725354L, 241198392L, 293050485L, 515602712L, 546537678L, 607091318L, 647054569L, 736859333L, 755687090L,})); + map.put("CAGGATACAATGT", new TLongArrayList(new long[]{468354005L, 534331226L, 607091319L, 647054570L, 736859334L, 739212701L, 755687091L})); + map.put("AGGATACAATGTC", new TLongArrayList(new long[]{468354006L, 497841111L, 570703664L, 647054571L, 730637206L, 755687092L, 941427503L})); + map.put("GGATACAATGTCT", new TLongArrayList(new long[]{383840938L, 430797104L, 468354007L, 508621408L})); + map.put("GATACAATGTCTC", new TLongArrayList(new long[]{262007740L, 430797105L, 468354008L})); + map.put("ATACAATGTCTCT", new TLongArrayList(new long[]{468354009L, 575812985L, 651206615L, 718537434L, 723113109L, 733712469L, 755210479L, 818556765L, 843526201L, 925749374L, 1029273224L, 1052946433L, 1062695904L})); + map.put("TACAATGTCTCTT", new TLongArrayList(new long[]{468354010L, 575812986L, 629515561L, 644092118L, 723113110L, 778970070L, 843526202L, 953508248L, 953613863L, 1011825035L, 1109020073L, 1128033946L})); + map.put("ACAATGTCTCTTT", new TLongArrayList(new long[]{404982273L, 408622781L, 417519327L, 426959230L, 460334628L, 468354011L, 473523638L, 487654369L, 511834938L, 575812987L, 614617834L, 643896032L})); + map.put("CAATGTCTCTTTG", new TLongArrayList(new long[]{468354012L, 473523639L, 488837561L, 489262153L, 513310520L, 521864043L, 614617835L, 655689196L, 684599743L, 807975982L, 814637933L, 913438267L})); + map.put("AATGTCTCTTTGC", new TLongArrayList(new long[]{468354013L, 517618016L, 528838967L, 533100427L, 614617836L, 625783339L, 661341799L, 712203083L, 720411718L, 744689658L, 770892383L})); + map.put("ATGTCTCTTTGCT", new TLongArrayList(new long[]{468354014L, 494687845L, 494817322L, 533100428L, 544269184L, 556895488L, 605425401L, 610577000L, 626953408L, 649543305L, 665962072L})); + map.put("TGTCTCTTTGCTA", new TLongArrayList(new long[]{468354015L})); + map.put("GTCTCTTTGCTAT", new TLongArrayList(new long[]{468354016L, 510276736L, 555462963L, 733445529L, 733985341L, 736151145L, 788379026L, 817242049L, 828084471L, 854333589L, 971157831L, 1040352702L})); + map.put("TCTCTTTGCTATA", new TLongArrayList(new long[]{422617755L, 468354017L, 486014649L, 539862183L, 548660486L, 555462964L, 602916567L, 661893440L, 692902920L, 697497049L})); + map.put("CTCTTTGCTATAT", new TLongArrayList(new long[]{468354018L, 670798275L, 702874457L, 706186078L, 712148196L, 723991231L, 725516684L, 756421631L, 759165774L, 767464560L, 785803944L, 811602412L, 1271216584L})); + map.put("TCTTTGCTATATG", new TLongArrayList(new long[]{468354019L, 533255773L, 642733996L, 652816763L, 654726449L, 660586815L, 675612559L, 697187741L, 712148197L, 785405379L, 813613369L, 819903085L, 1336019567L})); + map.put("CTTTGCTATATGA", new TLongArrayList(new long[]{468354020L, 562887761L, 617302136L, 659199143L, 675612560L, 716846160L, 744017008L, 758449495L, 794156938L, 801360052L, 850835373L, 854333593L, 1009280173L})); + map.put("TTTGCTATATGAC", new TLongArrayList(new long[]{468354021L})); + map.put("TTGCTATATGACC", new TLongArrayList(new long[]{468354022L})); + map.put("TGCTATATGACCT", new TLongArrayList(new long[]{468354023L, 498752891L, 501380960L, 520492331L, 559203487L, 565409553L, 598073775L, 616474631L, 672432065L, 706651613L, 755892589L, 781104650L, 828233233L, 966735687L, 998204812L, 1013687962L, 1041956077L})); + map.put("GCTATATGACCTT", new TLongArrayList(new long[]{468354024L, 469258879L})); + map.put("CTATATGACCTTG", new TLongArrayList(new long[]{468354025L, 478899051L, 501380962L, 506723878L, 533289863L, 538366944L, 553573688L, 565409555L, 601313184L, 607455223L, 632417699L, 636989806L, 637547197L, 651150062L, 678482144L, 680726836L, 695295215L})); + map.put("TATATGACCTTGA", new TLongArrayList(new long[]{468354026L, 469793909L, 478899052L, 601313185L})); + map.put("ATATGACCTTGAA", new TLongArrayList(new long[]{324867177L, 327256423L, 407014187L, 408453024L, 415327072L, 436518791L, 444612483L, 445154766L, 468354027L, 478899053L, 511917326L, 573644560L, 581030615L})); + map.put("TATGACCTTGAAA", new TLongArrayList(new long[]{444612484L, 468354028L, 478899054L, 482545369L, 2642173678L})); + map.put("ATGACCTTGAAAA", new TLongArrayList(new long[]{334308180L, 337862480L, 363222311L, 371393684L, 374256377L, 391290281L, 392114933L, 394914586L, 407014189L, 411709275L, 413090407L, 468354029L, 477127212L, 511917328L})); + map.put("TGACCTTGAAAAT", new TLongArrayList(new long[]{7298409L, 322728767L, 337862481L, 351757046L, 414160437L, 418717038L, 426836280L, 441886296L, 444066976L, 458941007L, 468354030L, 470538520L})); + map.put("GACCTTGAAAATC", new TLongArrayList(new long[]{63882256L, 261945490L, 270926866L, 322436204L, 331275977L, 351757047L, 407014191L, 441886297L, 453102745L, 468354031L, 470538521L, 820885802L, 958647111L})); + map.put("ACCTTGAAAATCT", new TLongArrayList(new long[]{2892505L, 52623884L, 103011372L, 114209888L, 114936676L, 225313062L, 225359207L, 256490377L, 388256892L, 409824298L, 453102746L, 456338048L, 463784940L, 464988356L, 468354032L, 468933181L, 518589665L})); + map.put("CCTTGAAAATCTT", new TLongArrayList(new long[]{409824299L, 449662953L, 453102747L, 455843535L, 463784941L, 464988357L, 468354033L, 468933182L, 470015558L, 515761450L})); + map.put("CTTGAAAATCTTC", new TLongArrayList(new long[]{62177439L, 174929656L, 183017903L, 192602027L, 408035775L, 423045008L, 443778789L, 455843536L, 464988358L, 468354034L, 473005757L, 546494902L, 655891275L, 666640895L, 706026151L, 723296007L, 743246211L})); + map.put("TTGAAAATCTTCC", new TLongArrayList(new long[]{341046419L, 357991189L, 361910621L, 383776759L, 397376082L, 408035776L, 468354035L, 484550917L, 494816604L, 553585739L, 594051618L})); + map.put("TGAAAATCTTCCG", new TLongArrayList(new long[]{468354036L, 593571847L})); + map.put("GAAAATCTTCCGG", new TLongArrayList(new long[]{37759059L, 468354037L, 490546539L, 593571848L, 1271884766L, 1615282376L, 1671757189L, 1713898379L, 2105174288L, 2642941643L, 2904579919L})); Map map2 = TiledAlignerUtil.getTiles(map, "TTATTAAAGAGGGTGTACGGGAGTTTCTTGGTAAATCCAGAATCAGGATACAATGTCTCTTTGCTATATGACCTTGAAAATCTTCCGG", 13, false); @@ -631,7 +627,7 @@ public void getBestStartPositions8() { assertEquals(2, map2.size()); assertArrayEquals(new long[] {468349696}, map2.get(NumberUtils.pack2IntsInto1(35, 0)).toArray()); - assertArrayEquals(new long[] {47279468348373l}, map2.get(NumberUtils.pack2IntsInto1(33, 0)).toArray()); + assertArrayEquals(new long[] {47279468348373L}, map2.get(NumberUtils.pack2IntsInto1(33, 0)).toArray()); } @@ -653,35 +649,35 @@ public void getBestStartPosition3() { * CATGTATCCAAGAACTTAAGAGTATAATAATAATAATA */ Map map = new HashMap<>(); - map.put("CATGTATCCAAGA", new TLongArrayList(new long[] {49573418l, 114656855l, 181950606l, 196080513l, 213879289l, 279169993l, 299667247l, 321725052l, 362134554l, 386712950l, 405883566l, 407516869l, 441225975l, 481210699l, 570699947l, 570755577l, 593344754l, 599182635l, 638265975l, 672501816l, 723110115l, 733963246l, 792300124l, 807853514l, 856030216l, 889201592l, 897418246l, 914686592l, 949793932l, 985001734l, 985003199l, 1118126781l, 1142401591l, 1204759938l, 1210502429l, 1246672292l, 1270950331l, 1340746802l, 1360010668l, 1365361953l, 1377148412l, 1398826245l, 1412117074l, 1416778500l, 1427601710l, 1484427448l, 1519383462l, 1528475515l, 1530265185l, 1535275654l, 1565276148l, 1570275889l, 1659965110l, 1682709834l, 1785560613l, 1790160363l, 1822501345l, 1853670228l, 1857480323l, 1899392928l, 1904605682l, 1935109561l, 1945458663l, 1995902452l, 2157762363l, 2170250678l, 2176684341l, 2187777955l, 2190662125l, 2193177727l, 2266489805l, 2339477441l, 2377290885l, 2403483065l, 2503261869l, 2521121529l, 2563614047l, 2568286387l, 2619231863l, 2627328338l, 2639327722l, 2697569002l, 2703952737l, 2732299192l, 2774027828l, 2810117670l, 2865046880l, 2903924218l, 2929312570l, 2956755988l, 2966899566l, 2969218086l, 2982985928l, 3017633711l, 3100356128l})); - map.put("ATGTATCCAAGAA" , new TLongArrayList(new long[] {29276805l, 80247690l, 181950607l, 185553130l, 204819017l, 254914066l, 279169994l, 299667248l, 362134555l, 386712951l, 397065377l, 405883567l, 529022716l, 547904492l, 566885346l, 570699948l, 589169453l, 593344755l, 597561146l, 599182636l, 634530089l, 638265976l, 672501817l, 723110116l, 735672592l, 788923293l, 792300125l, 803045803l, 807853515l, 856030217l, 889201593l, 897418247l, 914686593l, 920861833l, 923055867l, 949793933l, 968853012l, 982990509l, 1021276700l, 1060851378l, 1118126782l, 1126186787l, 1131642665l, 1142401592l, 1193258860l, 1195702869l, 1204759939l, 1246672293l, 1246696100l, 1270950332l, 1285035841l, 1317409290l, 1319287480l, 1340746803l, 1360010669l, 1396540590l, 1398826246l, 1416778501l, 1484427449l, 1488279859l, 1519383463l, 1528475516l, 1570275890l, 1574914487l, 1659965111l, 1682709835l, 1735711578l, 1754356399l, 1767879067l, 1773462624l, 1785560614l, 1790160364l, 1822501346l, 1836835357l, 1857480324l, 1904605683l, 1945458664l, 1960983028l, 1961348578l, 1995902453l, 2033123363l, 2080795871l, 2141941358l, 2174209017l, 2177132165l, 2186462332l, 2187748336l, 2187777956l, 2190662126l, 2193683675l, 2222332739l, 2259100116l, 2266489806l, 2281890889l, 2283151981l, 2283743563l, 2285136333l, 2339477442l, 2368957995l, 2372858546l, 2398432895l, 2403483066l, 2503261870l, 2521121530l, 2562293563l, 2563614048l, 2568286388l, 2608211991l, 2627328339l, 2630405956l, 2639327723l, 2732299193l, 2774027829l, 2817770256l, 2865046881l, 2903924219l, 2908758184l, 2910098378l, 2929312571l, 2946991723l, 2956755989l, 2990627548l, 3004650826l, 3100356129l})); - map.put("TGTATCCAAGAAC" , new TLongArrayList(new long[] {181950608l, 238834251l, 279169995l, 282711716l, 299667249l, 353500754l, 362134556l, 377125374l, 386712952l, 405883568l, 469798165l, 470832976l, 513418182l, 593344756l, 607599727l, 638265977l, 672501818l, 723110117l, 751923328l, 792300126l, 807853516l, 856030218l, 878873098l, 904555301l, 914686594l, 920861834l, 949793934l, 982990510l, 1204759940l, 1270950333l, 1319287481l, 1340746804l, 1360010670l, 1396540591l, 1416778502l, 1495507812l, 1515479714l, 1528475517l, 1570275891l, 1659965112l, 1682709836l, 1857480325l, 1945458665l, 1961348579l, 1975509717l, 1995902454l, 2033123364l, 2069892626l, 2141941359l, 2187777957l, 2222332740l, 2339477443l, 2436334150l, 2503261871l, 2563614049l, 2568286389l, 2608211992l, 2627328340l, 2639327724l, 2757266111l, 2774027830l, 2849144198l, 2865046882l, 2903924220l, 2910098379l, 2956755990l, 3004650827l, 3100356130l})); - map.put("GTATCCAAGAACT", new TLongArrayList(new long[] {181950609l, 238834252l, 279169996l, 282711717l, 299667250l, 302621969l, 323218777l, 335912469l, 348969288l, 353500755l, 362134557l, 386712953l, 405883569l, 543747672l, 593344757l, 600770663l, 604585673l, 607599728l, 638265978l, 672501819l, 723110118l, 792300127l, 807853517l, 834318731l, 856030219l, 897955193l, 914686595l, 920529323l, 920861835l, 949793935l, 1061512267l, 1085991238l, 1144876888l, 1170249742l, 1204759941l, 1270950334l, 1319287482l, 1340746805l, 1360010671l, 1406152492l, 1416778503l, 1471984708l, 1499103783l, 1528475518l, 1545618905l, 1570275892l, 1646030215l, 1659965113l, 1682709837l, 1857480326l, 1937489962l, 1995902455l, 2033123365l, 2069892627l, 2131066463l, 2141941360l, 2187777958l, 2222332741l, 2255915684l, 2339477444l, 2363786814l, 2503261872l, 2563614050l, 2568286390l, 2596415369l, 2608211993l, 2627328341l, 2639327725l, 2757266112l, 2774027831l, 2811003708l, 2848632295l, 2851438311l, 2865046883l, 2903924221l, 2911246258l, 2954397341l, 2956755991l, 3004650828l, 3005881692l, 3100356131l})); - map.put("TATCCAAGAACTT", new TLongArrayList(new long[] {49490433l, 181950610l, 204821238l, 222907003l, 238834253l, 246623495l, 279169997l, 282711718l, 299667251l, 302621970l, 348969289l, 353500756l, 362134558l, 386712954l, 392117252l, 405883570l, 426480860l, 428124846l, 475337467l, 497582879l, 543747673l, 576236491l, 593344758l, 607599729l, 638265979l, 640118807l, 672501820l, 718969370l, 723110119l, 723956071l, 792300128l, 807853518l, 829725823l, 856030220l, 861860273l, 866890102l, 911458974l, 914686596l, 920861836l, 949793936l, 1085991239l, 1202167761l, 1204759942l, 1244278268l, 1265734279l, 1270950335l, 1315231368l, 1331117963l, 1340746806l, 1360010672l, 1416778504l, 1431963260l, 1440275137l, 1471984709l, 1485698629l, 1528475519l, 1545618906l, 1571021526l, 1659965114l, 1682709838l, 1857480327l, 1937489963l, 1975093671l, 1993125429l, 1995902456l, 2016684993l, 2030415413l, 2109550766l, 2136230547l, 2141941361l, 2154406720l, 2187777959l, 2222332742l, 2268548671l, 2304532192l, 2327867521l, 2339477445l, 2343549294l, 2388311668l, 2412642830l, 2486148768l, 2489281915l, 2503261873l, 2563614051l, 2568286391l, 2568378271l, 2596415370l, 2601906713l, 2608211994l, 2616880373l, 2627328342l, 2639327726l, 2692121285l, 2728159138l, 2774027832l, 2777577471l, 2811003709l, 2865046884l, 2903924222l, 2954397342l, 2956755992l, 3002134980l, 3005881693l, 3100356132l})); - map.put("ATCCAAGAACTTA", new TLongArrayList(new long[] {49490434l, 164272699l, 181950611l, 203930611l, 222907004l, 237552832l, 279169998l, 280669704l, 282711719l, 299667252l, 310446600l, 335831010l, 353500757l, 362134559l, 386712955l, 405883571l, 444045150l, 464701841l, 497582880l, 500937798l, 501915061l, 607599730l, 630134723l, 638265980l, 672501821l, 718969371l, 723110120l, 729802188l, 752111898l, 792300129l, 807853519l, 856030221l, 860931064l, 861860274l, 883302703l, 911458975l, 914686597l, 920861837l, 949793937l, 958335879l, 1161442828l, 1168386654l, 1202167762l, 1204759943l, 1237029100l, 1265734280l, 1270950336l, 1275322640l, 1311789505l, 1322984496l, 1331117964l, 1340746807l, 1360010673l, 1384220779l, 1416778505l, 1417453222l, 1440275138l, 1485698630l, 1506695679l, 1528475520l, 1545618907l, 1615583788l, 1632655004l, 1639473804l, 1659965115l, 1682709839l, 1700410685l, 1739145542l, 1834180559l, 1840322131l, 1857480328l, 1857964229l, 1891191666l, 1896396768l, 1967853124l, 1981522953l, 1984487248l, 1998383036l, 2016684994l, 2045300159l, 2051574360l, 2109550767l, 2141941362l, 2154406721l, 2172542967l, 2187777960l, 2189137266l, 2222332743l, 2304532193l, 2327867522l, 2339477446l, 2482128427l, 2503261874l, 2563614052l, 2568286392l, 2596415371l, 2608211995l, 2627328343l, 2763662207l, 2772851011l, 2774027833l, 2803750770l, 2811003710l, 2865046885l, 2895108263l, 2903924223l, 2954397343l, 2956755993l, 3003658256l, 3035194724l, 3100356133l})); - map.put("TCCAAGAACTTAA", new TLongArrayList(new long[] {52398564l, 88407160l, 99460658l, 158795514l, 170756687l, 181950612l, 279169999l, 280669705l, 282711720l, 299667253l, 346077172l, 353500758l, 362134560l, 386712956l, 404964428l, 405883572l, 421249997l, 453687230l, 464165844l, 497582881l, 514512210l, 517334232l, 553483921l, 568873170l, 581986133l, 591234496l, 597460657l, 617286569l, 618238523l, 638265981l, 672501822l, 673355059l, 718969372l, 720600207l, 723110121l, 755029008l, 792300130l, 799101836l, 807853520l, 827289107l, 830196825l, 833825651l, 849418633l, 856030222l, 883302704l, 889248113l, 906516512l, 914686598l, 920861838l, 949793938l, 958335880l, 1018993685l, 1091632813l, 1091704049l, 1109515528l, 1135325578l, 1146939121l, 1161442829l, 1168386655l, 1202167763l, 1204759944l, 1212836021l, 1237029101l, 1260379986l, 1265734281l, 1270950337l, 1275322641l, 1309387746l, 1311789506l, 1322984497l, 1340746808l, 1357633597l, 1360010674l, 1367427852l, 1405959476l, 1416778506l, 1417453223l, 1420890169l, 1446963883l, 1465008047l, 1485698631l, 1528475521l, 1545618908l, 1563562667l, 1615583789l, 1639473805l, 1659707017l, 1659965116l, 1682554271l, 1682709840l, 1684947254l, 1702521248l, 1707266750l, 1717099442l, 1772415652l, 1857480329l, 1880875074l, 1896396769l, 1905023327l, 1907475351l, 1967853125l, 1981522954l, 1998383037l, 2000573685l, 2016684995l, 2051574361l, 2134001095l, 2141941363l, 2157840106l, 2172542968l, 2187777961l, 2222332744l, 2228755579l, 2286248288l, 2304532194l, 2327867523l, 2339477447l, 2400116481l, 2469328443l, 2482128428l, 2503261875l, 2516015354l, 2542409040l, 2563614053l, 2568286393l, 2608211996l, 2611974329l, 2613400213l, 2627328344l, 2654488509l, 2657757250l, 2700579545l, 2759855666l, 2760274793l, 2763662208l, 2764854677l, 2772851012l, 2865046886l, 2888109799l, 2895108264l, 2903924224l, 2936616104l, 2954397344l, 2956755994l, 2964117860l, 2965605551l, 2987774212l, 3030054134l, 3100356134l})); - map.put("CCAAGAACTTAAG", new TLongArrayList(new long[] {8620033l, 61608511l, 71349155l, 231400300l, 280669706l, 398256597l, 421249998l, 453687231l, 517334233l, 575689116l, 618238524l, 735093896l, 755029009l, 883302705l, 1018993686l, 1078248876l, 1091157156l, 1109515529l, 1131422067l, 1168386656l, 1202167764l, 1254413771l, 1309387747l, 1322984498l, 1328220091l, 1367427853l, 1370563429l, 1682554272l, 1684947255l, 1702521249l, 1717099443l, 1758446039l, 1800970090l, 1896396770l, 1906694433l, 1907475352l, 2050134689l, 2051574362l, 2133427874l, 2157840107l, 2303143650l, 2351651919l, 2355230922l, 2383344528l, 2552813124l, 2563614054l, 2618013217l, 2700579546l, 2749246121l, 2884198049l, 2888109800l, 2895108265l, 2912754968l})); - map.put("CAAGAACTTAAGA", new TLongArrayList(new long[] {8620034l, 61608512l, 280669707l, 348473245l, 355394324l, 441803741l, 449436395l, 517334234l, 541609812l, 554855270l, 606246203l, 607362243l, 618238525l, 651567867l, 681701757l, 695859073l, 705907611l, 735093897l, 755029010l, 859294374l, 859454886l, 881843982l, 963008505l, 1006262588l, 1061042318l, 1105605261l, 1131422068l, 1141088600l, 1168386657l, 1178768204l, 1187676545l, 1202167765l, 1245164466l, 1309662753l, 1322984499l, 1367427854l, 1368018036l, 1370563430l, 1371121942l, 1507931238l, 1507990429l, 1527995986l, 1676859912l, 1684947256l, 1702521250l, 1713658057l, 1877474888l, 1896396771l, 1897387128l, 1907440373l, 1929121309l, 1936232954l, 1943885429l, 1969757153l, 1975188509l, 1995904404l, 2042967989l, 2133427875l, 2157840108l, 2166268835l, 2176736581l, 2179399836l, 2247754152l, 2280036158l, 2284115589l, 2290520890l, 2355230923l, 2403112187l, 2405561723l, 2416069591l, 2430547113l, 2456618582l, 2516855294l, 2520483854l, 2539192210l, 2547901763l, 2560987013l, 2563614055l, 2713594759l, 2730817489l, 2749246122l, 2815439549l, 2816926218l, 2847168878l, 2884198050l, 2888109801l, 2922432794l, 3016530471l, 3021774184l, 3057042295l})); - map.put("AAGAACTTAAGAG", new TLongArrayList(new long[] {8620035l, 19081828l, 39044042l, 61608513l, 79036778l, 90584581l, 167079856l, 176026406l, 203311185l, 212352542l, 243786178l, 251659035l, 254945074l, 263669689l, 271940633l, 371479598l, 396182080l, 441803742l, 442374667l, 458195216l, 476510004l, 478458738l, 517334235l, 551212464l, 561317411l, 610038106l, 612135695l, 679361935l, 695859074l, 759551624l, 809400098l, 859454887l, 865800285l, 882514434l, 893477829l, 1003750326l, 1036097412l, 1105605262l, 1141088601l, 1163809447l, 1178768205l, 1188809035l, 1225878921l, 1254523155l, 1299259971l, 1309662754l, 1316104896l, 1325958739l, 1343071292l, 1370563431l, 1406637683l, 1407909905l, 1420437441l, 1503363589l, 1507990430l, 1550337661l, 1616683550l, 1651215872l, 1666331176l, 1678839572l, 1689775892l, 1702240979l, 1704714551l, 1717540080l, 1753925325l, 1798038523l, 1840583635l, 1852940682l, 1877474889l, 1919985002l, 1943577514l, 1975188510l, 2032730485l, 2042055383l, 2079120720l, 2136696819l, 2230495044l, 2257032365l, 2280036159l, 2282991981l, 2296100249l, 2357346605l, 2456618583l, 2467584704l, 2474314417l, 2512249122l, 2534959158l, 2547901764l, 2560987014l, 2573624196l, 2574594628l, 2654590782l, 2659746195l, 2713594760l, 2730817490l, 2800149350l, 2807475239l, 2816204904l, 2847700054l, 2854628285l, 2897812210l, 2906649172l, 2922432795l, 2926535236l, 2954232899l, 2990669649l, 2996147091l, 2998063339l, 3026853822l, 3051252141l, 3053528010l})); - map.put("AGAACTTAAGAGT", new TLongArrayList(new long[] {4424874l, 18246342l, 23314256l, 32545968l, 69919991l, 79036779l, 103325700l, 176026407l, 243786179l, 250968282l, 254945075l, 255942076l, 271940634l, 277379449l, 287895560l, 312292322l, 326449420l, 330565528l, 371479599l, 379245138l, 385541571l, 393534817l, 397751456l, 410750563l, 478458739l, 517334236l, 562678859l, 642541947l, 679361936l, 732202171l, 861275198l, 895127019l, 914001888l, 915421613l, 921981497l, 931612844l, 1026152268l, 1044935531l, 1048768719l, 1105605263l, 1161415949l, 1163809448l, 1178768206l, 1194337482l, 1214692935l, 1309662755l, 1352191640l, 1364071799l, 1406637684l, 1407909906l, 1420437442l, 1430245366l, 1446197890l, 1459680468l, 1503363590l, 1542367791l, 1580203652l, 1582574540l, 1583733808l, 1586172477l, 1605233114l, 1638757131l, 1674605944l, 1675363832l, 1685789952l, 1702240980l, 1705785714l, 1772406261l, 1828400504l, 1852940683l, 1914479970l, 1919985003l, 1966630006l, 2032730486l, 2042055384l, 2124871615l, 2166791184l, 2195810817l, 2261485927l, 2263024770l, 2271147217l, 2278467348l, 2282991982l, 2296100250l, 2303967805l, 2404080854l, 2433281454l, 2438397602l, 2456618584l, 2467584705l, 2474314418l, 2512249123l, 2517061064l, 2528251227l, 2547901765l, 2564625187l, 2574594629l, 2626678511l, 2669377106l, 2721018045l, 2730817491l, 2736225671l, 2806402686l, 2811250166l, 2816204905l, 2847700055l, 2858799767l, 2906649173l, 2931309495l, 2971620575l, 2983761284l, 2996147092l, 3097353636l})); - map.put("GAACTTAAGAGTA", new TLongArrayList(new long[] {4424875l, 69919992l, 88876767l, 103325701l, 118373358l, 169517582l, 254945076l, 323106078l, 323166125l, 365475879l, 371479600l, 389157140l, 401304580l, 575262516l, 642541948l, 660256954l, 846793371l, 915421614l, 925638660l, 931612845l, 975979226l, 1048768720l, 1079567052l, 1161415950l, 1214692936l, 1228316247l, 1352191641l, 1407909907l, 1446197891l, 1452356443l, 1458719812l, 1503363591l, 1507015692l, 1509864720l, 1519873400l, 1580208541l, 1582579429l, 1583738697l, 1625552318l, 1786722292l, 1798584828l, 1848840745l, 1914479971l, 1966630007l, 2040956617l, 2042055385l, 2058394300l, 2108530225l, 2123396377l, 2124871616l, 2140674307l, 2195810818l, 2271147218l, 2278467349l, 2404080855l, 2528251228l, 2558302962l, 2612247726l, 2721018046l, 2755622012l, 2811250167l, 2816204906l, 2918112611l, 2931997706l, 3035138638l, 3097358525l})); - map.put("AACTTAAGAGTAT", new TLongArrayList(new long[] {4424876l, 68273695l, 77064653l, 97968633l, 103325702l, 114330607l, 142664087l, 142886981l, 143160534l, 162470935l, 170070536l, 192159340l, 204223979l, 272427124l, 288823340l, 317946983l, 389157141l, 427330859l, 454071340l, 454762322l, 462070958l, 568270237l, 575262517l, 643601796l, 660256955l, 669567798l, 774924820l, 785290024l, 798257860l, 863054339l, 906683692l, 919119816l, 975979227l, 981368277l, 986293058l, 988063508l, 1048768721l, 1085760518l, 1114830080l, 1138409690l, 1159153268l, 1185654527l, 1197752534l, 1214692937l, 1219992961l, 1244520828l, 1266722343l, 1278594781l, 1319908239l, 1358086841l, 1458222247l, 1507015693l, 1528537768l, 1534512294l, 1540520520l, 1580208542l, 1582579430l, 1583738698l, 1613767352l, 1652413714l, 1786722293l, 1845552691l, 1848840746l, 1914479972l, 1966630008l, 1997291753l, 2134381061l, 2190095374l, 2225383525l, 2237651216l, 2249575226l, 2271147219l, 2342683764l, 2416810517l, 2441675598l, 2486164942l, 2486385548l, 2610838012l, 2634853780l, 2636202261l, 2698571452l, 2748060115l, 2766694663l, 2798966714l, 2888472184l, 2920963859l, 2925088490l, 2965193716l, 3027774543l, 3035138639l, 3097358526l, 3098480210l, 3099863540l, 3101423341l})); - map.put("ACTTAAGAGTATA", new TLongArrayList(new long[] {54281547l, 66100746l, 73307108l, 97968634l, 103325703l, 114330608l, 170070537l, 193470526l, 262032277l, 262873613l, 263865434l, 354566880l, 378996109l, 389157142l, 398226319l, 452455310l, 454071341l, 462070959l, 510788965l, 580573064l, 592313977l, 638187573l, 663986433l, 808729274l, 816821988l, 856550261l, 863054340l, 906683693l, 910259265l, 986293059l, 988063509l, 1007587426l, 1085760519l, 1112281945l, 1114830081l, 1286185328l, 1339760922l, 1507015694l, 1534512295l, 1567892789l, 1617316850l, 1630436190l, 1652413715l, 1688425545l, 1725166081l, 1739055429l, 1743379329l, 1774787706l, 1786722294l, 1821593455l, 2083296473l, 2118613905l, 2237651217l, 2253178018l, 2271147220l, 2290801453l, 2403391191l, 2408991176l, 2468216142l, 2472218128l, 2486164943l, 2610838013l, 2616712690l, 2634853781l, 2636202262l, 2718331015l, 2801261934l, 2807141419l, 2820344473l, 2871570510l, 2888472185l, 2890350608l, 2909645672l, 2925088491l, 3027774544l, 3054171479l, 3098480211l})); - map.put("CTTAAGAGTATAA", new TLongArrayList(new long[] {29509758l, 66100747l, 78637871l, 103325704l, 114330609l, 170070538l, 220174021l, 262032278l, 263865435l, 278648344l, 317663983l, 378996110l, 398226320l, 402416473l, 408180346l, 509813056l, 510788966l, 527120330l, 537286028l, 578135002l, 610348728l, 617453174l, 638187574l, 663986434l, 673433682l, 677193748l, 706984538l, 715213363l, 737525759l, 776652697l, 808729275l, 816821989l, 909181422l, 910259266l, 968358313l, 972938803l, 987630242l, 988628986l, 1006435995l, 1009512199l, 1057193375l, 1085760520l, 1110990174l, 1249746090l, 1339760923l, 1447377263l, 1487513395l, 1500472522l, 1619119846l, 1629153461l, 1629153620l, 1630436191l, 1633993449l, 1652413716l, 1653285488l, 1688425546l, 1742378159l, 1747164293l, 1779097702l, 1897264200l, 1932067081l, 1941223571l, 1956098406l, 2049968774l, 2140943952l, 2143021348l, 2237651218l, 2245088108l, 2271147221l, 2290801454l, 2292201476l, 2486071997l, 2486164944l, 2486619436l, 2550950729l, 2567505280l, 2614481227l, 2636202263l, 2659741350l, 2732275834l, 2775511680l, 2801261935l, 2871570511l, 2993950686l, 3000270658l, 3019838537l, 3027774545l, 3098480212l})); - map.put("TTAAGAGTATAAT", new TLongArrayList(new long[] {31751995l, 57409485l, 74230190l, 78637872l, 92657418l, 93524067l, 99386567l, 109184501l, 159364553l, 170070539l, 191911744l, 195686064l, 196357188l, 239129801l, 260247212l, 262032279l, 278648345l, 286901892l, 328527574l, 378996111l, 388915373l, 390474834l, 402179550l, 408180347l, 423469299l, 454713654l, 460239007l, 460892518l, 521682626l, 527120331l, 537286029l, 549126529l, 555010335l, 571776756l, 577857916l, 578135003l, 592713241l, 606483906l, 628334700l, 677193749l, 677494574l, 705807369l, 707303563l, 752978170l, 792374809l, 808055945l, 808729276l, 822311855l, 874129489l, 897481446l, 909181423l, 913828709l, 964857856l, 987630243l, 989266344l, 998450192l, 1053003585l, 1057193376l, 1085760521l, 1091033774l, 1110990175l, 1111427492l, 1111810852l, 1136355534l, 1158607046l, 1182197621l, 1194905156l, 1222475692l, 1249746091l, 1254698023l, 1257202023l, 1259984751l, 1262397569l, 1280429864l, 1337454551l, 1346445795l, 1351656001l, 1354164740l, 1447377264l, 1453687333l, 1457427801l, 1466951226l, 1487513396l, 1491025586l, 1492448822l, 1500472523l, 1505495614l, 1523593505l, 1524945419l, 1534969394l, 1554193377l, 1558271147l, 1559255886l, 1559495579l, 1616026958l, 1654656519l, 1658883240l, 1682173933l, 1684913296l, 1688425547l, 1747164294l, 1750472851l, 1791518714l, 1897185809l, 1918128528l, 1997227374l, 2020333375l, 2050419544l, 2105693456l, 2123423198l, 2123829339l, 2140943953l, 2147629300l, 2180023545l, 2182023143l, 2190246930l, 2190358866l, 2230840720l, 2237651219l, 2266937497l, 2268303112l, 2271147222l, 2332228521l, 2377359026l, 2387716755l, 2402333531l, 2481132340l, 2486071998l, 2486619437l, 2512153795l, 2556039896l, 2567505281l, 2628098872l, 2691680727l, 2732275835l, 2741435550l, 2800990602l, 2893172892l, 2905888528l, 2935326153l, 2961087570l, 2965434616l, 2993519119l, 2993950687l, 2996462730l, 3008692964l, 3011425631l, 3024949555l, 3026070646l, 3027774546l, 3098480213l})); - map.put("TAAGAGTATAATA", new TLongArrayList(new long[] {14330001l, 87721104l, 92657419l, 112260154l, 119980130l, 159364554l, 178226658l, 187884060l, 195686065l, 244030832l, 260247213l, 262032280l, 269730502l, 378996112l, 388626290l, 388915374l, 409986092l, 435556700l, 442463939l, 521682627l, 537286030l, 565275421l, 570346600l, 571968040l, 577857917l, 578176655l, 581529758l, 598023769l, 629410057l, 652461196l, 677193750l, 707303564l, 722926112l, 752978171l, 787658735l, 800252722l, 800447218l, 806215624l, 808055946l, 808729277l, 817036120l, 855524132l, 893807136l, 897481447l, 913828710l, 948656096l, 987630244l, 989542174l, 990469429l, 1044321480l, 1057193377l, 1074358482l, 1100367498l, 1111427493l, 1111810853l, 1137620540l, 1257202024l, 1268174431l, 1301476781l, 1352113528l, 1354164741l, 1357774544l, 1389408299l, 1417043522l, 1417202791l, 1453687334l, 1457427802l, 1473753103l, 1491025587l, 1492448823l, 1505495615l, 1524945420l, 1529721873l, 1559255887l, 1570500316l, 1573171314l, 1612190480l, 1616026959l, 1682173934l, 1742354515l, 1747164295l, 1768085915l, 1781164031l, 1790619469l, 1791518715l, 1799169426l, 1820208915l, 1820260076l, 1843307320l, 1863763636l, 1920166682l, 1923310243l, 2024345875l, 2048375899l, 2074593272l, 2079233235l, 2123829340l, 2173676563l, 2175802062l, 2178139139l, 2186663932l, 2190246931l, 2190358867l, 2231660342l, 2237651220l, 2285918984l, 2367031262l, 2377359027l, 2402333532l, 2481132341l, 2486071999l, 2492179301l, 2556039897l, 2567505282l, 2583566115l, 2694271070l, 2741435551l, 2799070878l, 2856539776l, 2866736889l, 2957861922l, 2973641714l, 2993950688l, 3011425632l, 3012430501l, 3027757280l, 3027774547l, 3098480214l})); - map.put("AAGAGTATAATAA", new TLongArrayList(new long[] {25517070l, 92657420l, 119980131l, 121271910l, 158198921l, 159364555l, 178226659l, 187884061l, 197251084l, 258319895l, 260247214l, 321306555l, 367650580l, 372816089l, 387126160l, 392648937l, 417764143l, 422449430l, 433714356l, 458130985l, 545096931l, 559611565l, 570346601l, 571968041l, 578176656l, 581529759l, 605762664l, 647455533l, 661459150l, 722926113l, 745106467l, 751141185l, 751207308l, 758032505l, 776660512l, 781570402l, 781986636l, 789953016l, 793450189l, 832342734l, 838241802l, 850203696l, 852223508l, 855524133l, 880313274l, 891100904l, 893807137l, 913828711l, 938776327l, 941673205l, 963289253l, 985537399l, 987630245l, 1043472759l, 1044321481l, 1057193378l, 1074358483l, 1078429277l, 1113074243l, 1118045628l, 1145192076l, 1148920205l, 1158781326l, 1204539335l, 1220819275l, 1257202025l, 1270339727l, 1301476782l, 1404729357l, 1404975925l, 1417202792l, 1420488528l, 1444648651l, 1457427803l, 1473753104l, 1491025588l, 1497996346l, 1505495616l, 1529721874l, 1621879388l, 1641450825l, 1757829489l, 1761172724l, 1770547095l, 1783079050l, 1825808205l, 1833235798l, 1877611365l, 1895355854l, 1923310244l, 1930143285l, 1981638469l, 1982812495l, 1992631803l, 2014581035l, 2018401654l, 2024345876l, 2031085890l, 2031446908l, 2051168990l, 2051846820l, 2052173930l, 2057603014l, 2116290147l, 2135889851l, 2138907225l, 2160101245l, 2175802063l, 2178139140l, 2186663933l, 2191059047l, 2237651221l, 2244606192l, 2264570829l, 2270733124l, 2284707555l, 2290071037l, 2353481545l, 2371652494l, 2377359028l, 2402333533l, 2474663628l, 2556039898l, 2559948691l, 2567505283l, 2610564251l, 2623470903l, 2668407107l, 2703738017l, 2704204117l, 2713151255l, 2717850685l, 2798727581l, 2809190914l, 2813209682l, 2813236525l, 2856539777l, 2891950690l, 2894702529l, 2909476786l, 2937557460l, 2949222322l, 2961458163l, 2967656682l, 2968794679l, 2973641715l, 2977327787l, 2983028712l, 2993950689l, 2997881268l, 3027774548l, 3030490433l, 3098480215l})); - map.put("AGAGTATAATAAT", new TLongArrayList(new long[] {25517071l, 81710820l, 96407915l, 96530666l, 104099170l, 110675024l, 116533032l, 159364556l, 195615394l, 197264176l, 225779708l, 260247215l, 287148535l, 320571602l, 321306556l, 333349536l, 334049967l, 373797268l, 392114906l, 392648938l, 393259543l, 399391801l, 406170691l, 408413951l, 410879728l, 415454713l, 430436799l, 442280220l, 456436702l, 480836414l, 490191379l, 501471727l, 507807446l, 545096932l, 557465339l, 559611566l, 576938378l, 591727685l, 594241669l, 597841342l, 610466930l, 625783805l, 646108375l, 650108446l, 655575923l, 661459151l, 683867058l, 705334165l, 714094829l, 721846280l, 722926114l, 752453661l, 756074428l, 781652148l, 793450190l, 798383392l, 800834171l, 833532104l, 842298065l, 855524134l, 871439381l, 877476179l, 880313275l, 893807138l, 923226794l, 931146804l, 931208767l, 931457741l, 953656257l, 983478717l, 985537400l, 992957600l, 1001717576l, 1004319852l, 1043472760l, 1101085652l, 1113074244l, 1161513147l, 1167370571l, 1187873372l, 1191618430l, 1191867499l, 1218903237l, 1245483400l, 1248328925l, 1251037811l, 1270339728l, 1272238859l, 1285489133l, 1302787760l, 1404193783l, 1409342491l, 1416788764l, 1420488529l, 1428980284l, 1429428777l, 1450965034l, 1465608436l, 1465716159l, 1473753105l, 1490073943l, 1505495617l, 1510497330l, 1564267875l, 1616795473l, 1619598045l, 1643753870l, 1646537650l, 1648753665l, 1657692896l, 1708753893l, 1709239755l, 1757829490l, 1758950452l, 1791131886l, 1833235799l, 1839314327l, 1865634081l, 1896858275l, 1917579088l, 1929304176l, 1929304214l, 1929304251l, 1969643858l, 1970834123l, 1972908635l, 1974513452l, 2024345877l, 2025281125l, 2037329913l, 2037782694l, 2057603015l, 2068607304l, 2126092277l, 2138907226l, 2146806471l, 2160101246l, 2170966611l, 2175802064l, 2193213617l, 2229657519l, 2247942828l, 2260684750l, 2270733125l, 2280176291l, 2285858741l, 2295647861l, 2350851975l, 2351805435l, 2353481546l, 2363083824l, 2371652495l, 2389680419l, 2417096044l, 2456364694l, 2469680240l, 2520044219l, 2567916186l, 2619193979l, 2645544843l, 2646859933l, 2647290670l, 2655722968l, 2731580591l, 2774027845l, 2807605722l, 2808439941l, 2813209683l, 2856895105l, 2914356961l, 2922222052l, 2947561444l, 2949222323l, 2952089220l, 2968794680l, 2977327788l, 2993950690l, 2997272047l, 3019492534l, 3030490434l, 3059293168l})); - map.put("GAGTATAATAATA", new TLongArrayList(new long[] {25517072l, 67321052l, 75742258l, 81710821l, 96407916l, 99585905l, 104099171l, 110675025l, 161045997l, 197264177l, 203573790l, 206602316l, 215747464l, 225779709l, 283752392l, 296402237l, 300944545l, 320571603l, 334049968l, 392648939l, 399391802l, 406170692l, 408413952l, 410879729l, 415454714l, 441495178l, 442280221l, 443418870l, 456436703l, 480836415l, 484289883l, 489506404l, 490191380l, 507341039l, 511783582l, 517243575l, 548371216l, 557465340l, 559611567l, 569303840l, 576938379l, 594241670l, 602122487l, 610466931l, 625783806l, 628337581l, 646108376l, 650108447l, 683867059l, 705334166l, 714094830l, 722926115l, 735699982l, 769311324l, 798347594l, 800834172l, 803997882l, 833532105l, 842298066l, 855524135l, 855904340l, 871439382l, 877476180l, 893807139l, 923226795l, 931146805l, 931208768l, 936740865l, 953656258l, 985537401l, 987360609l, 992957601l, 1000346542l, 1001717577l, 1003493451l, 1064326337l, 1070889959l, 1100702783l, 1113074245l, 1119094242l, 1144573280l, 1161513148l, 1167370572l, 1191867500l, 1195946702l, 1204901356l, 1206007529l, 1218903238l, 1242723572l, 1245483401l, 1255035830l, 1265940390l, 1275222702l, 1302787761l, 1314806097l, 1369248937l, 1409342492l, 1429428778l, 1450965035l, 1465608437l, 1502454298l, 1505495618l, 1506728304l, 1515565140l, 1561103325l, 1564267876l, 1568469234l, 1576700774l, 1619598046l, 1643753871l, 1646537651l, 1648753666l, 1653266237l, 1657692897l, 1741570573l, 1758950453l, 1759460831l, 1778901541l, 1791131887l, 1861753837l, 1865634082l, 1896858276l, 1917579089l, 1929304177l, 1929304215l, 1929304252l, 1945355640l, 1968682676l, 1969643859l, 1970834124l, 1972908636l, 1995852892l, 2021906721l, 2024453931l, 2025281126l, 2037329914l, 2037782695l, 2041856421l, 2057603016l, 2068607305l, 2133320063l, 2138907227l, 2144832107l, 2146806472l, 2156951050l, 2160101247l, 2227863991l, 2229657520l, 2247942829l, 2260684751l, 2270733126l, 2286127914l, 2291661818l, 2363083825l, 2377621064l, 2401329400l, 2401330643l, 2417096045l, 2420045586l, 2466524417l, 2469680241l, 2477168677l, 2551701535l, 2556193833l, 2557318565l, 2561132082l, 2567916187l, 2645544844l, 2646859934l, 2647798153l, 2655722969l, 2726087574l, 2727430177l, 2728081266l, 2731580592l, 2738604838l, 2757797090l, 2758934046l, 2774027846l, 2804065615l, 2807605723l, 2822692027l, 2856895106l, 2877627542l, 2914356962l, 2928036608l, 2947561445l, 2952089221l, 2968794681l, 2970748296l, 2981649716l, 2997272048l, 3006982822l, 3009742985l, 3013774084l, 3019492535l, 3030490435l, 3040209631l, 3059293169l, 3063963095l})); - map.put("AGTATAATAATAA", new TLongArrayList(new long[] {-9223372036854767985l})); - map.put("GTATAATAATAAT", new TLongArrayList(new long[] {-9223372036854770339l})); - map.put("TATAATAATAATA", new TLongArrayList(new long[] {-9223372036854769130l})); - map.put("ATAATAATAATAA", new TLongArrayList(new long[] {-9223372036854725005l})); - map.put("TAATAATAATAAT", new TLongArrayList(new long[] {-9223372036854735632l})); - map.put("AATAATAATAATA", new TLongArrayList(new long[] {-9223372036854727213l})); + map.put("CATGTATCCAAGA", new TLongArrayList(new long[] {49573418L, 114656855L, 181950606L, 196080513L, 213879289L, 279169993L, 299667247L, 321725052L, 362134554L, 386712950L, 405883566L, 407516869L, 441225975L, 481210699L, 570699947L, 570755577L, 593344754L, 599182635L, 638265975L, 672501816L, 723110115L, 733963246L, 792300124L, 807853514L, 856030216L, 889201592L, 897418246L, 914686592L, 949793932L, 985001734L, 985003199L, 1118126781L, 1142401591L, 1204759938L, 1210502429L, 1246672292L, 1270950331L, 1340746802L, 1360010668L, 1365361953L, 1377148412L, 1398826245L, 1412117074L, 1416778500L, 1427601710L, 1484427448L, 1519383462L, 1528475515L, 1530265185L, 1535275654L, 1565276148L, 1570275889L, 1659965110L, 1682709834L, 1785560613L, 1790160363L, 1822501345L, 1853670228L, 1857480323L, 1899392928L, 1904605682L, 1935109561L, 1945458663L, 1995902452L, 2157762363L, 2170250678L, 2176684341L, 2187777955L, 2190662125L, 2193177727L, 2266489805L, 2339477441L, 2377290885L, 2403483065L, 2503261869L, 2521121529L, 2563614047L, 2568286387L, 2619231863L, 2627328338L, 2639327722L, 2697569002L, 2703952737L, 2732299192L, 2774027828L, 2810117670L, 2865046880L, 2903924218L, 2929312570L, 2956755988L, 2966899566L, 2969218086L, 2982985928L, 3017633711L, 3100356128L})); + map.put("ATGTATCCAAGAA" , new TLongArrayList(new long[] {29276805L, 80247690L, 181950607L, 185553130L, 204819017L, 254914066L, 279169994L, 299667248L, 362134555L, 386712951L, 397065377L, 405883567L, 529022716L, 547904492L, 566885346L, 570699948L, 589169453L, 593344755L, 597561146L, 599182636L, 634530089L, 638265976L, 672501817L, 723110116L, 735672592L, 788923293L, 792300125L, 803045803L, 807853515L, 856030217L, 889201593L, 897418247L, 914686593L, 920861833L, 923055867L, 949793933L, 968853012L, 982990509L, 1021276700L, 1060851378L, 1118126782L, 1126186787L, 1131642665L, 1142401592L, 1193258860L, 1195702869L, 1204759939L, 1246672293L, 1246696100L, 1270950332L, 1285035841L, 1317409290L, 1319287480L, 1340746803L, 1360010669L, 1396540590L, 1398826246L, 1416778501L, 1484427449L, 1488279859L, 1519383463L, 1528475516L, 1570275890L, 1574914487L, 1659965111L, 1682709835L, 1735711578L, 1754356399L, 1767879067L, 1773462624L, 1785560614L, 1790160364L, 1822501346L, 1836835357L, 1857480324L, 1904605683L, 1945458664L, 1960983028L, 1961348578L, 1995902453L, 2033123363L, 2080795871L, 2141941358L, 2174209017L, 2177132165L, 2186462332L, 2187748336L, 2187777956L, 2190662126L, 2193683675L, 2222332739L, 2259100116L, 2266489806L, 2281890889L, 2283151981L, 2283743563L, 2285136333L, 2339477442L, 2368957995L, 2372858546L, 2398432895L, 2403483066L, 2503261870L, 2521121530L, 2562293563L, 2563614048L, 2568286388L, 2608211991L, 2627328339L, 2630405956L, 2639327723L, 2732299193L, 2774027829L, 2817770256L, 2865046881L, 2903924219L, 2908758184L, 2910098378L, 2929312571L, 2946991723L, 2956755989L, 2990627548L, 3004650826L, 3100356129L})); + map.put("TGTATCCAAGAAC" , new TLongArrayList(new long[] {181950608L, 238834251L, 279169995L, 282711716L, 299667249L, 353500754L, 362134556L, 377125374L, 386712952L, 405883568L, 469798165L, 470832976L, 513418182L, 593344756L, 607599727L, 638265977L, 672501818L, 723110117L, 751923328L, 792300126L, 807853516L, 856030218L, 878873098L, 904555301L, 914686594L, 920861834L, 949793934L, 982990510L, 1204759940L, 1270950333L, 1319287481L, 1340746804L, 1360010670L, 1396540591L, 1416778502L, 1495507812L, 1515479714L, 1528475517L, 1570275891L, 1659965112L, 1682709836L, 1857480325L, 1945458665L, 1961348579L, 1975509717L, 1995902454L, 2033123364L, 2069892626L, 2141941359L, 2187777957L, 2222332740L, 2339477443L, 2436334150L, 2503261871L, 2563614049L, 2568286389L, 2608211992L, 2627328340L, 2639327724L, 2757266111L, 2774027830L, 2849144198L, 2865046882L, 2903924220L, 2910098379L, 2956755990L, 3004650827L, 3100356130L})); + map.put("GTATCCAAGAACT", new TLongArrayList(new long[] {181950609L, 238834252L, 279169996L, 282711717L, 299667250L, 302621969L, 323218777L, 335912469L, 348969288L, 353500755L, 362134557L, 386712953L, 405883569L, 543747672L, 593344757L, 600770663L, 604585673L, 607599728L, 638265978L, 672501819L, 723110118L, 792300127L, 807853517L, 834318731L, 856030219L, 897955193L, 914686595L, 920529323L, 920861835L, 949793935L, 1061512267L, 1085991238L, 1144876888L, 1170249742L, 1204759941L, 1270950334L, 1319287482L, 1340746805L, 1360010671L, 1406152492L, 1416778503L, 1471984708L, 1499103783L, 1528475518L, 1545618905L, 1570275892L, 1646030215L, 1659965113L, 1682709837L, 1857480326L, 1937489962L, 1995902455L, 2033123365L, 2069892627L, 2131066463L, 2141941360L, 2187777958L, 2222332741L, 2255915684L, 2339477444L, 2363786814L, 2503261872L, 2563614050L, 2568286390L, 2596415369L, 2608211993L, 2627328341L, 2639327725L, 2757266112L, 2774027831L, 2811003708L, 2848632295L, 2851438311L, 2865046883L, 2903924221L, 2911246258L, 2954397341L, 2956755991L, 3004650828L, 3005881692L, 3100356131L})); + map.put("TATCCAAGAACTT", new TLongArrayList(new long[] {49490433L, 181950610L, 204821238L, 222907003L, 238834253L, 246623495L, 279169997L, 282711718L, 299667251L, 302621970L, 348969289L, 353500756L, 362134558L, 386712954L, 392117252L, 405883570L, 426480860L, 428124846L, 475337467L, 497582879L, 543747673L, 576236491L, 593344758L, 607599729L, 638265979L, 640118807L, 672501820L, 718969370L, 723110119L, 723956071L, 792300128L, 807853518L, 829725823L, 856030220L, 861860273L, 866890102L, 911458974L, 914686596L, 920861836L, 949793936L, 1085991239L, 1202167761L, 1204759942L, 1244278268L, 1265734279L, 1270950335L, 1315231368L, 1331117963L, 1340746806L, 1360010672L, 1416778504L, 1431963260L, 1440275137L, 1471984709L, 1485698629L, 1528475519L, 1545618906L, 1571021526L, 1659965114L, 1682709838L, 1857480327L, 1937489963L, 1975093671L, 1993125429L, 1995902456L, 2016684993L, 2030415413L, 2109550766L, 2136230547L, 2141941361L, 2154406720L, 2187777959L, 2222332742L, 2268548671L, 2304532192L, 2327867521L, 2339477445L, 2343549294L, 2388311668L, 2412642830L, 2486148768L, 2489281915L, 2503261873L, 2563614051L, 2568286391L, 2568378271L, 2596415370L, 2601906713L, 2608211994L, 2616880373L, 2627328342L, 2639327726L, 2692121285L, 2728159138L, 2774027832L, 2777577471L, 2811003709L, 2865046884L, 2903924222L, 2954397342L, 2956755992L, 3002134980L, 3005881693L, 3100356132L})); + map.put("ATCCAAGAACTTA", new TLongArrayList(new long[] {49490434L, 164272699L, 181950611L, 203930611L, 222907004L, 237552832L, 279169998L, 280669704L, 282711719L, 299667252L, 310446600L, 335831010L, 353500757L, 362134559L, 386712955L, 405883571L, 444045150L, 464701841L, 497582880L, 500937798L, 501915061L, 607599730L, 630134723L, 638265980L, 672501821L, 718969371L, 723110120L, 729802188L, 752111898L, 792300129L, 807853519L, 856030221L, 860931064L, 861860274L, 883302703L, 911458975L, 914686597L, 920861837L, 949793937L, 958335879L, 1161442828L, 1168386654L, 1202167762L, 1204759943L, 1237029100L, 1265734280L, 1270950336L, 1275322640L, 1311789505L, 1322984496L, 1331117964L, 1340746807L, 1360010673L, 1384220779L, 1416778505L, 1417453222L, 1440275138L, 1485698630L, 1506695679L, 1528475520L, 1545618907L, 1615583788L, 1632655004L, 1639473804L, 1659965115L, 1682709839L, 1700410685L, 1739145542L, 1834180559L, 1840322131L, 1857480328L, 1857964229L, 1891191666L, 1896396768L, 1967853124L, 1981522953L, 1984487248L, 1998383036L, 2016684994L, 2045300159L, 2051574360L, 2109550767L, 2141941362L, 2154406721L, 2172542967L, 2187777960L, 2189137266L, 2222332743L, 2304532193L, 2327867522L, 2339477446L, 2482128427L, 2503261874L, 2563614052L, 2568286392L, 2596415371L, 2608211995L, 2627328343L, 2763662207L, 2772851011L, 2774027833L, 2803750770L, 2811003710L, 2865046885L, 2895108263L, 2903924223L, 2954397343L, 2956755993L, 3003658256L, 3035194724L, 3100356133L})); + map.put("TCCAAGAACTTAA", new TLongArrayList(new long[] {52398564L, 88407160L, 99460658L, 158795514L, 170756687L, 181950612L, 279169999L, 280669705L, 282711720L, 299667253L, 346077172L, 353500758L, 362134560L, 386712956L, 404964428L, 405883572L, 421249997L, 453687230L, 464165844L, 497582881L, 514512210L, 517334232L, 553483921L, 568873170L, 581986133L, 591234496L, 597460657L, 617286569L, 618238523L, 638265981L, 672501822L, 673355059L, 718969372L, 720600207L, 723110121L, 755029008L, 792300130L, 799101836L, 807853520L, 827289107L, 830196825L, 833825651L, 849418633L, 856030222L, 883302704L, 889248113L, 906516512L, 914686598L, 920861838L, 949793938L, 958335880L, 1018993685L, 1091632813L, 1091704049L, 1109515528L, 1135325578L, 1146939121L, 1161442829L, 1168386655L, 1202167763L, 1204759944L, 1212836021L, 1237029101L, 1260379986L, 1265734281L, 1270950337L, 1275322641L, 1309387746L, 1311789506L, 1322984497L, 1340746808L, 1357633597L, 1360010674L, 1367427852L, 1405959476L, 1416778506L, 1417453223L, 1420890169L, 1446963883L, 1465008047L, 1485698631L, 1528475521L, 1545618908L, 1563562667L, 1615583789L, 1639473805L, 1659707017L, 1659965116L, 1682554271L, 1682709840L, 1684947254L, 1702521248L, 1707266750L, 1717099442L, 1772415652L, 1857480329L, 1880875074L, 1896396769L, 1905023327L, 1907475351L, 1967853125L, 1981522954L, 1998383037L, 2000573685L, 2016684995L, 2051574361L, 2134001095L, 2141941363L, 2157840106L, 2172542968L, 2187777961L, 2222332744L, 2228755579L, 2286248288L, 2304532194L, 2327867523L, 2339477447L, 2400116481L, 2469328443L, 2482128428L, 2503261875L, 2516015354L, 2542409040L, 2563614053L, 2568286393L, 2608211996L, 2611974329L, 2613400213L, 2627328344L, 2654488509L, 2657757250L, 2700579545L, 2759855666L, 2760274793L, 2763662208L, 2764854677L, 2772851012L, 2865046886L, 2888109799L, 2895108264L, 2903924224L, 2936616104L, 2954397344L, 2956755994L, 2964117860L, 2965605551L, 2987774212L, 3030054134L, 3100356134L})); + map.put("CCAAGAACTTAAG", new TLongArrayList(new long[] {8620033L, 61608511L, 71349155L, 231400300L, 280669706L, 398256597L, 421249998L, 453687231L, 517334233L, 575689116L, 618238524L, 735093896L, 755029009L, 883302705L, 1018993686L, 1078248876L, 1091157156L, 1109515529L, 1131422067L, 1168386656L, 1202167764L, 1254413771L, 1309387747L, 1322984498L, 1328220091L, 1367427853L, 1370563429L, 1682554272L, 1684947255L, 1702521249L, 1717099443L, 1758446039L, 1800970090L, 1896396770L, 1906694433L, 1907475352L, 2050134689L, 2051574362L, 2133427874L, 2157840107L, 2303143650L, 2351651919L, 2355230922L, 2383344528L, 2552813124L, 2563614054L, 2618013217L, 2700579546L, 2749246121L, 2884198049L, 2888109800L, 2895108265L, 2912754968L})); + map.put("CAAGAACTTAAGA", new TLongArrayList(new long[] {8620034L, 61608512L, 280669707L, 348473245L, 355394324L, 441803741L, 449436395L, 517334234L, 541609812L, 554855270L, 606246203L, 607362243L, 618238525L, 651567867L, 681701757L, 695859073L, 705907611L, 735093897L, 755029010L, 859294374L, 859454886L, 881843982L, 963008505L, 1006262588L, 1061042318L, 1105605261L, 1131422068L, 1141088600L, 1168386657L, 1178768204L, 1187676545L, 1202167765L, 1245164466L, 1309662753L, 1322984499L, 1367427854L, 1368018036L, 1370563430L, 1371121942L, 1507931238L, 1507990429L, 1527995986L, 1676859912L, 1684947256L, 1702521250L, 1713658057L, 1877474888L, 1896396771L, 1897387128L, 1907440373L, 1929121309L, 1936232954L, 1943885429L, 1969757153L, 1975188509L, 1995904404L, 2042967989L, 2133427875L, 2157840108L, 2166268835L, 2176736581L, 2179399836L, 2247754152L, 2280036158L, 2284115589L, 2290520890L, 2355230923L, 2403112187L, 2405561723L, 2416069591L, 2430547113L, 2456618582L, 2516855294L, 2520483854L, 2539192210L, 2547901763L, 2560987013L, 2563614055L, 2713594759L, 2730817489L, 2749246122L, 2815439549L, 2816926218L, 2847168878L, 2884198050L, 2888109801L, 2922432794L, 3016530471L, 3021774184L, 3057042295L})); + map.put("AAGAACTTAAGAG", new TLongArrayList(new long[] {8620035L, 19081828L, 39044042L, 61608513L, 79036778L, 90584581L, 167079856L, 176026406L, 203311185L, 212352542L, 243786178L, 251659035L, 254945074L, 263669689L, 271940633L, 371479598L, 396182080L, 441803742L, 442374667L, 458195216L, 476510004L, 478458738L, 517334235L, 551212464L, 561317411L, 610038106L, 612135695L, 679361935L, 695859074L, 759551624L, 809400098L, 859454887L, 865800285L, 882514434L, 893477829L, 1003750326L, 1036097412L, 1105605262L, 1141088601L, 1163809447L, 1178768205L, 1188809035L, 1225878921L, 1254523155L, 1299259971L, 1309662754L, 1316104896L, 1325958739L, 1343071292L, 1370563431L, 1406637683L, 1407909905L, 1420437441L, 1503363589L, 1507990430L, 1550337661L, 1616683550L, 1651215872L, 1666331176L, 1678839572L, 1689775892L, 1702240979L, 1704714551L, 1717540080L, 1753925325L, 1798038523L, 1840583635L, 1852940682L, 1877474889L, 1919985002L, 1943577514L, 1975188510L, 2032730485L, 2042055383L, 2079120720L, 2136696819L, 2230495044L, 2257032365L, 2280036159L, 2282991981L, 2296100249L, 2357346605L, 2456618583L, 2467584704L, 2474314417L, 2512249122L, 2534959158L, 2547901764L, 2560987014L, 2573624196L, 2574594628L, 2654590782L, 2659746195L, 2713594760L, 2730817490L, 2800149350L, 2807475239L, 2816204904L, 2847700054L, 2854628285L, 2897812210L, 2906649172L, 2922432795L, 2926535236L, 2954232899L, 2990669649L, 2996147091L, 2998063339L, 3026853822L, 3051252141L, 3053528010L})); + map.put("AGAACTTAAGAGT", new TLongArrayList(new long[] {4424874L, 18246342L, 23314256L, 32545968L, 69919991L, 79036779L, 103325700L, 176026407L, 243786179L, 250968282L, 254945075L, 255942076L, 271940634L, 277379449L, 287895560L, 312292322L, 326449420L, 330565528L, 371479599L, 379245138L, 385541571L, 393534817L, 397751456L, 410750563L, 478458739L, 517334236L, 562678859L, 642541947L, 679361936L, 732202171L, 861275198L, 895127019L, 914001888L, 915421613L, 921981497L, 931612844L, 1026152268L, 1044935531L, 1048768719L, 1105605263L, 1161415949L, 1163809448L, 1178768206L, 1194337482L, 1214692935L, 1309662755L, 1352191640L, 1364071799L, 1406637684L, 1407909906L, 1420437442L, 1430245366L, 1446197890L, 1459680468L, 1503363590L, 1542367791L, 1580203652L, 1582574540L, 1583733808L, 1586172477L, 1605233114L, 1638757131L, 1674605944L, 1675363832L, 1685789952L, 1702240980L, 1705785714L, 1772406261L, 1828400504L, 1852940683L, 1914479970L, 1919985003L, 1966630006L, 2032730486L, 2042055384L, 2124871615L, 2166791184L, 2195810817L, 2261485927L, 2263024770L, 2271147217L, 2278467348L, 2282991982L, 2296100250L, 2303967805L, 2404080854L, 2433281454L, 2438397602L, 2456618584L, 2467584705L, 2474314418L, 2512249123L, 2517061064L, 2528251227L, 2547901765L, 2564625187L, 2574594629L, 2626678511L, 2669377106L, 2721018045L, 2730817491L, 2736225671L, 2806402686L, 2811250166L, 2816204905L, 2847700055L, 2858799767L, 2906649173L, 2931309495L, 2971620575L, 2983761284L, 2996147092L, 3097353636L})); + map.put("GAACTTAAGAGTA", new TLongArrayList(new long[] {4424875L, 69919992L, 88876767L, 103325701L, 118373358L, 169517582L, 254945076L, 323106078L, 323166125L, 365475879L, 371479600L, 389157140L, 401304580L, 575262516L, 642541948L, 660256954L, 846793371L, 915421614L, 925638660L, 931612845L, 975979226L, 1048768720L, 1079567052L, 1161415950L, 1214692936L, 1228316247L, 1352191641L, 1407909907L, 1446197891L, 1452356443L, 1458719812L, 1503363591L, 1507015692L, 1509864720L, 1519873400L, 1580208541L, 1582579429L, 1583738697L, 1625552318L, 1786722292L, 1798584828L, 1848840745L, 1914479971L, 1966630007L, 2040956617L, 2042055385L, 2058394300L, 2108530225L, 2123396377L, 2124871616L, 2140674307L, 2195810818L, 2271147218L, 2278467349L, 2404080855L, 2528251228L, 2558302962L, 2612247726L, 2721018046L, 2755622012L, 2811250167L, 2816204906L, 2918112611L, 2931997706L, 3035138638L, 3097358525L})); + map.put("AACTTAAGAGTAT", new TLongArrayList(new long[] {4424876L, 68273695L, 77064653L, 97968633L, 103325702L, 114330607L, 142664087L, 142886981L, 143160534L, 162470935L, 170070536L, 192159340L, 204223979L, 272427124L, 288823340L, 317946983L, 389157141L, 427330859L, 454071340L, 454762322L, 462070958L, 568270237L, 575262517L, 643601796L, 660256955L, 669567798L, 774924820L, 785290024L, 798257860L, 863054339L, 906683692L, 919119816L, 975979227L, 981368277L, 986293058L, 988063508L, 1048768721L, 1085760518L, 1114830080L, 1138409690L, 1159153268L, 1185654527L, 1197752534L, 1214692937L, 1219992961L, 1244520828L, 1266722343L, 1278594781L, 1319908239L, 1358086841L, 1458222247L, 1507015693L, 1528537768L, 1534512294L, 1540520520L, 1580208542L, 1582579430L, 1583738698L, 1613767352L, 1652413714L, 1786722293L, 1845552691L, 1848840746L, 1914479972L, 1966630008L, 1997291753L, 2134381061L, 2190095374L, 2225383525L, 2237651216L, 2249575226L, 2271147219L, 2342683764L, 2416810517L, 2441675598L, 2486164942L, 2486385548L, 2610838012L, 2634853780L, 2636202261L, 2698571452L, 2748060115L, 2766694663L, 2798966714L, 2888472184L, 2920963859L, 2925088490L, 2965193716L, 3027774543L, 3035138639L, 3097358526L, 3098480210L, 3099863540L, 3101423341L})); + map.put("ACTTAAGAGTATA", new TLongArrayList(new long[] {54281547L, 66100746L, 73307108L, 97968634L, 103325703L, 114330608L, 170070537L, 193470526L, 262032277L, 262873613L, 263865434L, 354566880L, 378996109L, 389157142L, 398226319L, 452455310L, 454071341L, 462070959L, 510788965L, 580573064L, 592313977L, 638187573L, 663986433L, 808729274L, 816821988L, 856550261L, 863054340L, 906683693L, 910259265L, 986293059L, 988063509L, 1007587426L, 1085760519L, 1112281945L, 1114830081L, 1286185328L, 1339760922L, 1507015694L, 1534512295L, 1567892789L, 1617316850L, 1630436190L, 1652413715L, 1688425545L, 1725166081L, 1739055429L, 1743379329L, 1774787706L, 1786722294L, 1821593455L, 2083296473L, 2118613905L, 2237651217L, 2253178018L, 2271147220L, 2290801453L, 2403391191L, 2408991176L, 2468216142L, 2472218128L, 2486164943L, 2610838013L, 2616712690L, 2634853781L, 2636202262L, 2718331015L, 2801261934L, 2807141419L, 2820344473L, 2871570510L, 2888472185L, 2890350608L, 2909645672L, 2925088491L, 3027774544L, 3054171479L, 3098480211L})); + map.put("CTTAAGAGTATAA", new TLongArrayList(new long[] {29509758L, 66100747L, 78637871L, 103325704L, 114330609L, 170070538L, 220174021L, 262032278L, 263865435L, 278648344L, 317663983L, 378996110L, 398226320L, 402416473L, 408180346L, 509813056L, 510788966L, 527120330L, 537286028L, 578135002L, 610348728L, 617453174L, 638187574L, 663986434L, 673433682L, 677193748L, 706984538L, 715213363L, 737525759L, 776652697L, 808729275L, 816821989L, 909181422L, 910259266L, 968358313L, 972938803L, 987630242L, 988628986L, 1006435995L, 1009512199L, 1057193375L, 1085760520L, 1110990174L, 1249746090L, 1339760923L, 1447377263L, 1487513395L, 1500472522L, 1619119846L, 1629153461L, 1629153620L, 1630436191L, 1633993449L, 1652413716L, 1653285488L, 1688425546L, 1742378159L, 1747164293L, 1779097702L, 1897264200L, 1932067081L, 1941223571L, 1956098406L, 2049968774L, 2140943952L, 2143021348L, 2237651218L, 2245088108L, 2271147221L, 2290801454L, 2292201476L, 2486071997L, 2486164944L, 2486619436L, 2550950729L, 2567505280L, 2614481227L, 2636202263L, 2659741350L, 2732275834L, 2775511680L, 2801261935L, 2871570511L, 2993950686L, 3000270658L, 3019838537L, 3027774545L, 3098480212L})); + map.put("TTAAGAGTATAAT", new TLongArrayList(new long[] {31751995L, 57409485L, 74230190L, 78637872L, 92657418L, 93524067L, 99386567L, 109184501L, 159364553L, 170070539L, 191911744L, 195686064L, 196357188L, 239129801L, 260247212L, 262032279L, 278648345L, 286901892L, 328527574L, 378996111L, 388915373L, 390474834L, 402179550L, 408180347L, 423469299L, 454713654L, 460239007L, 460892518L, 521682626L, 527120331L, 537286029L, 549126529L, 555010335L, 571776756L, 577857916L, 578135003L, 592713241L, 606483906L, 628334700L, 677193749L, 677494574L, 705807369L, 707303563L, 752978170L, 792374809L, 808055945L, 808729276L, 822311855L, 874129489L, 897481446L, 909181423L, 913828709L, 964857856L, 987630243L, 989266344L, 998450192L, 1053003585L, 1057193376L, 1085760521L, 1091033774L, 1110990175L, 1111427492L, 1111810852L, 1136355534L, 1158607046L, 1182197621L, 1194905156L, 1222475692L, 1249746091L, 1254698023L, 1257202023L, 1259984751L, 1262397569L, 1280429864L, 1337454551L, 1346445795L, 1351656001L, 1354164740L, 1447377264L, 1453687333L, 1457427801L, 1466951226L, 1487513396L, 1491025586L, 1492448822L, 1500472523L, 1505495614L, 1523593505L, 1524945419L, 1534969394L, 1554193377L, 1558271147L, 1559255886L, 1559495579L, 1616026958L, 1654656519L, 1658883240L, 1682173933L, 1684913296L, 1688425547L, 1747164294L, 1750472851L, 1791518714L, 1897185809L, 1918128528L, 1997227374L, 2020333375L, 2050419544L, 2105693456L, 2123423198L, 2123829339L, 2140943953L, 2147629300L, 2180023545L, 2182023143L, 2190246930L, 2190358866L, 2230840720L, 2237651219L, 2266937497L, 2268303112L, 2271147222L, 2332228521L, 2377359026L, 2387716755L, 2402333531L, 2481132340L, 2486071998L, 2486619437L, 2512153795L, 2556039896L, 2567505281L, 2628098872L, 2691680727L, 2732275835L, 2741435550L, 2800990602L, 2893172892L, 2905888528L, 2935326153L, 2961087570L, 2965434616L, 2993519119L, 2993950687L, 2996462730L, 3008692964L, 3011425631L, 3024949555L, 3026070646L, 3027774546L, 3098480213L})); + map.put("TAAGAGTATAATA", new TLongArrayList(new long[] {14330001L, 87721104L, 92657419L, 112260154L, 119980130L, 159364554L, 178226658L, 187884060L, 195686065L, 244030832L, 260247213L, 262032280L, 269730502L, 378996112L, 388626290L, 388915374L, 409986092L, 435556700L, 442463939L, 521682627L, 537286030L, 565275421L, 570346600L, 571968040L, 577857917L, 578176655L, 581529758L, 598023769L, 629410057L, 652461196L, 677193750L, 707303564L, 722926112L, 752978171L, 787658735L, 800252722L, 800447218L, 806215624L, 808055946L, 808729277L, 817036120L, 855524132L, 893807136L, 897481447L, 913828710L, 948656096L, 987630244L, 989542174L, 990469429L, 1044321480L, 1057193377L, 1074358482L, 1100367498L, 1111427493L, 1111810853L, 1137620540L, 1257202024L, 1268174431L, 1301476781L, 1352113528L, 1354164741L, 1357774544L, 1389408299L, 1417043522L, 1417202791L, 1453687334L, 1457427802L, 1473753103L, 1491025587L, 1492448823L, 1505495615L, 1524945420L, 1529721873L, 1559255887L, 1570500316L, 1573171314L, 1612190480L, 1616026959L, 1682173934L, 1742354515L, 1747164295L, 1768085915L, 1781164031L, 1790619469L, 1791518715L, 1799169426L, 1820208915L, 1820260076L, 1843307320L, 1863763636L, 1920166682L, 1923310243L, 2024345875L, 2048375899L, 2074593272L, 2079233235L, 2123829340L, 2173676563L, 2175802062L, 2178139139L, 2186663932L, 2190246931L, 2190358867L, 2231660342L, 2237651220L, 2285918984L, 2367031262L, 2377359027L, 2402333532L, 2481132341L, 2486071999L, 2492179301L, 2556039897L, 2567505282L, 2583566115L, 2694271070L, 2741435551L, 2799070878L, 2856539776L, 2866736889L, 2957861922L, 2973641714L, 2993950688L, 3011425632L, 3012430501L, 3027757280L, 3027774547L, 3098480214L})); + map.put("AAGAGTATAATAA", new TLongArrayList(new long[] {25517070L, 92657420L, 119980131L, 121271910L, 158198921L, 159364555L, 178226659L, 187884061L, 197251084L, 258319895L, 260247214L, 321306555L, 367650580L, 372816089L, 387126160L, 392648937L, 417764143L, 422449430L, 433714356L, 458130985L, 545096931L, 559611565L, 570346601L, 571968041L, 578176656L, 581529759L, 605762664L, 647455533L, 661459150L, 722926113L, 745106467L, 751141185L, 751207308L, 758032505L, 776660512L, 781570402L, 781986636L, 789953016L, 793450189L, 832342734L, 838241802L, 850203696L, 852223508L, 855524133L, 880313274L, 891100904L, 893807137L, 913828711L, 938776327L, 941673205L, 963289253L, 985537399L, 987630245L, 1043472759L, 1044321481L, 1057193378L, 1074358483L, 1078429277L, 1113074243L, 1118045628L, 1145192076L, 1148920205L, 1158781326L, 1204539335L, 1220819275L, 1257202025L, 1270339727L, 1301476782L, 1404729357L, 1404975925L, 1417202792L, 1420488528L, 1444648651L, 1457427803L, 1473753104L, 1491025588L, 1497996346L, 1505495616L, 1529721874L, 1621879388L, 1641450825L, 1757829489L, 1761172724L, 1770547095L, 1783079050L, 1825808205L, 1833235798L, 1877611365L, 1895355854L, 1923310244L, 1930143285L, 1981638469L, 1982812495L, 1992631803L, 2014581035L, 2018401654L, 2024345876L, 2031085890L, 2031446908L, 2051168990L, 2051846820L, 2052173930L, 2057603014L, 2116290147L, 2135889851L, 2138907225L, 2160101245L, 2175802063L, 2178139140L, 2186663933L, 2191059047L, 2237651221L, 2244606192L, 2264570829L, 2270733124L, 2284707555L, 2290071037L, 2353481545L, 2371652494L, 2377359028L, 2402333533L, 2474663628L, 2556039898L, 2559948691L, 2567505283L, 2610564251L, 2623470903L, 2668407107L, 2703738017L, 2704204117L, 2713151255L, 2717850685L, 2798727581L, 2809190914L, 2813209682L, 2813236525L, 2856539777L, 2891950690L, 2894702529L, 2909476786L, 2937557460L, 2949222322L, 2961458163L, 2967656682L, 2968794679L, 2973641715L, 2977327787L, 2983028712L, 2993950689L, 2997881268L, 3027774548L, 3030490433L, 3098480215L})); + map.put("AGAGTATAATAAT", new TLongArrayList(new long[] {25517071L, 81710820L, 96407915L, 96530666L, 104099170L, 110675024L, 116533032L, 159364556L, 195615394L, 197264176L, 225779708L, 260247215L, 287148535L, 320571602L, 321306556L, 333349536L, 334049967L, 373797268L, 392114906L, 392648938L, 393259543L, 399391801L, 406170691L, 408413951L, 410879728L, 415454713L, 430436799L, 442280220L, 456436702L, 480836414L, 490191379L, 501471727L, 507807446L, 545096932L, 557465339L, 559611566L, 576938378L, 591727685L, 594241669L, 597841342L, 610466930L, 625783805L, 646108375L, 650108446L, 655575923L, 661459151L, 683867058L, 705334165L, 714094829L, 721846280L, 722926114L, 752453661L, 756074428L, 781652148L, 793450190L, 798383392L, 800834171L, 833532104L, 842298065L, 855524134L, 871439381L, 877476179L, 880313275L, 893807138L, 923226794L, 931146804L, 931208767L, 931457741L, 953656257L, 983478717L, 985537400L, 992957600L, 1001717576L, 1004319852L, 1043472760L, 1101085652L, 1113074244L, 1161513147L, 1167370571L, 1187873372L, 1191618430L, 1191867499L, 1218903237L, 1245483400L, 1248328925L, 1251037811L, 1270339728L, 1272238859L, 1285489133L, 1302787760L, 1404193783L, 1409342491L, 1416788764L, 1420488529L, 1428980284L, 1429428777L, 1450965034L, 1465608436L, 1465716159L, 1473753105L, 1490073943L, 1505495617L, 1510497330L, 1564267875L, 1616795473L, 1619598045L, 1643753870L, 1646537650L, 1648753665L, 1657692896L, 1708753893L, 1709239755L, 1757829490L, 1758950452L, 1791131886L, 1833235799L, 1839314327L, 1865634081L, 1896858275L, 1917579088L, 1929304176L, 1929304214L, 1929304251L, 1969643858L, 1970834123L, 1972908635L, 1974513452L, 2024345877L, 2025281125L, 2037329913L, 2037782694L, 2057603015L, 2068607304L, 2126092277L, 2138907226L, 2146806471L, 2160101246L, 2170966611L, 2175802064L, 2193213617L, 2229657519L, 2247942828L, 2260684750L, 2270733125L, 2280176291L, 2285858741L, 2295647861L, 2350851975L, 2351805435L, 2353481546L, 2363083824L, 2371652495L, 2389680419L, 2417096044L, 2456364694L, 2469680240L, 2520044219L, 2567916186L, 2619193979L, 2645544843L, 2646859933L, 2647290670L, 2655722968L, 2731580591L, 2774027845L, 2807605722L, 2808439941L, 2813209683L, 2856895105L, 2914356961L, 2922222052L, 2947561444L, 2949222323L, 2952089220L, 2968794680L, 2977327788L, 2993950690L, 2997272047L, 3019492534L, 3030490434L, 3059293168L})); + map.put("GAGTATAATAATA", new TLongArrayList(new long[] {25517072L, 67321052L, 75742258L, 81710821L, 96407916L, 99585905L, 104099171L, 110675025L, 161045997L, 197264177L, 203573790L, 206602316L, 215747464L, 225779709L, 283752392L, 296402237L, 300944545L, 320571603L, 334049968L, 392648939L, 399391802L, 406170692L, 408413952L, 410879729L, 415454714L, 441495178L, 442280221L, 443418870L, 456436703L, 480836415L, 484289883L, 489506404L, 490191380L, 507341039L, 511783582L, 517243575L, 548371216L, 557465340L, 559611567L, 569303840L, 576938379L, 594241670L, 602122487L, 610466931L, 625783806L, 628337581L, 646108376L, 650108447L, 683867059L, 705334166L, 714094830L, 722926115L, 735699982L, 769311324L, 798347594L, 800834172L, 803997882L, 833532105L, 842298066L, 855524135L, 855904340L, 871439382L, 877476180L, 893807139L, 923226795L, 931146805L, 931208768L, 936740865L, 953656258L, 985537401L, 987360609L, 992957601L, 1000346542L, 1001717577L, 1003493451L, 1064326337L, 1070889959L, 1100702783L, 1113074245L, 1119094242L, 1144573280L, 1161513148L, 1167370572L, 1191867500L, 1195946702L, 1204901356L, 1206007529L, 1218903238L, 1242723572L, 1245483401L, 1255035830L, 1265940390L, 1275222702L, 1302787761L, 1314806097L, 1369248937L, 1409342492L, 1429428778L, 1450965035L, 1465608437L, 1502454298L, 1505495618L, 1506728304L, 1515565140L, 1561103325L, 1564267876L, 1568469234L, 1576700774L, 1619598046L, 1643753871L, 1646537651L, 1648753666L, 1653266237L, 1657692897L, 1741570573L, 1758950453L, 1759460831L, 1778901541L, 1791131887L, 1861753837L, 1865634082L, 1896858276L, 1917579089L, 1929304177L, 1929304215L, 1929304252L, 1945355640L, 1968682676L, 1969643859L, 1970834124L, 1972908636L, 1995852892L, 2021906721L, 2024453931L, 2025281126L, 2037329914L, 2037782695L, 2041856421L, 2057603016L, 2068607305L, 2133320063L, 2138907227L, 2144832107L, 2146806472L, 2156951050L, 2160101247L, 2227863991L, 2229657520L, 2247942829L, 2260684751L, 2270733126L, 2286127914L, 2291661818L, 2363083825L, 2377621064L, 2401329400L, 2401330643L, 2417096045L, 2420045586L, 2466524417L, 2469680241L, 2477168677L, 2551701535L, 2556193833L, 2557318565L, 2561132082L, 2567916187L, 2645544844L, 2646859934L, 2647798153L, 2655722969L, 2726087574L, 2727430177L, 2728081266L, 2731580592L, 2738604838L, 2757797090L, 2758934046L, 2774027846L, 2804065615L, 2807605723L, 2822692027L, 2856895106L, 2877627542L, 2914356962L, 2928036608L, 2947561445L, 2952089221L, 2968794681L, 2970748296L, 2981649716L, 2997272048L, 3006982822L, 3009742985L, 3013774084L, 3019492535L, 3030490435L, 3040209631L, 3059293169L, 3063963095L})); + map.put("AGTATAATAATAA", new TLongArrayList(new long[] {-9223372036854767985L})); + map.put("GTATAATAATAAT", new TLongArrayList(new long[] {-9223372036854770339L})); + map.put("TATAATAATAATA", new TLongArrayList(new long[] {-9223372036854769130L})); + map.put("ATAATAATAATAA", new TLongArrayList(new long[] {-9223372036854725005L})); + map.put("TAATAATAATAAT", new TLongArrayList(new long[] {-9223372036854735632L})); + map.put("AATAATAATAATA", new TLongArrayList(new long[] {-9223372036854727213L})); Map map2 = TiledAlignerUtil.getTiles(map, "CATGTATCCAAGAACTTAAGAGTATAATAATAATAATA", 13, false); - assertArrayEquals(new long[] {2563614047l}, map2.get(NumberUtils.getTileCount(9, 0)).toArray()); + assertArrayEquals(new long[] {2563614047L}, map2.get(NumberUtils.getTileCount(9, 0)).toArray()); /* * create a TARecord @@ -695,7 +691,7 @@ public void getBestStartPosition3() { TLongList bestStartPositions = taRec.getStartPositions(12, true, 10); System.out.println("bestStartPositions: " + bestStartPositions.toString()); - assertEquals(true, bestStartPositions.contains(2774027828l)); + assertTrue(bestStartPositions.contains(2774027828L)); } @Test @@ -713,15 +709,15 @@ public void convertLongDoubleArrayToMap2() { array[6] = new long[] {412951324, 468349702, 600881863, 669102997, 1173339001}; array[7] = new long[] {468349703, 949919689, 1100688211, 1173339002, 1971729085}; array[8] = new long[] {430806892, 468349704, 483562144, 527480019, 538881786}; - array[9] = new long[] {468349705, 718569128, 949919691, 1465841807, 2563923173l}; + array[9] = new long[] {468349705, 718569128, 949919691, 1465841807, 2563923173L}; array[10] = new long[] {468349706, 468456928, 518302224, 718569129, 1012215599}; array[11] = new long[] {468349707}; - array[12] = new long[] {382633241, 468349708, 2302263166l, 2669507711l}; + array[12] = new long[] {382633241, 468349708, 2302263166L, 2669507711L}; array[13] = new long[] {165675197, 195757033, 468349709, 819168003}; - array[14] = new long[] {468349710, 2375073053l}; - array[15] = new long[] {468349711, 559402306, 1403796911, 2375073054l}; + array[14] = new long[] {468349710, 2375073053L}; + array[15] = new long[] {468349711, 559402306, 1403796911, 2375073054L}; array[16] = new long[] {468349712}; - array[17] = new long[] {468349713, 535356324, 2198033423l, 2299777492l}; + array[17] = new long[] {468349713, 535356324, 2198033423L, 2299777492L}; array[18] = new long[] {468349714}; array[19] = new long[] {468349715, 551879994}; array[20] = new long[] {468349716}; @@ -770,7 +766,7 @@ public void convertLongDoubleArrayToMap2() { array[63] = new long[] {468354025, 478899051, 501380962, 506723878, 533289863, 538366944, 553573688, 565409555, 601313184, 607455223, 632417699, 636989806, 637547197, 651150062, 678482144, 680726836, 695295215}; array[64] = new long[] {468354026, 469793909, 478899052, 601313185}; array[65] = new long[] {324867177, 327256423, 407014187, 408453024, 415327072, 436518791, 444612483, 445154766, 468354027, 478899053, 511917326, 573644560, 581030615}; - array[66] = new long[] {444612484, 468354028, 478899054, 482545369, 2642173678l}; + array[66] = new long[] {444612484, 468354028, 478899054, 482545369, 2642173678L}; array[67] = new long[] {334308180, 337862480, 363222311, 371393684, 374256377, 391290281, 392114933, 394914586, 407014189, 411709275, 413090407, 468354029, 477127212, 511917328}; array[68] = new long[] {7298409, 322728767, 337862481, 351757046, 414160437, 418717038, 426836280, 441886296, 444066976, 458941007, 468354030, 470538520}; array[69] = new long[] {63882256, 261945490, 270926866, 322436204, 331275977, 351757047, 407014191, 441886297, 453102745, 468354031, 470538521, 820885802, 958647111}; @@ -779,20 +775,20 @@ public void convertLongDoubleArrayToMap2() { array[72] = new long[] {62177439, 174929656, 183017903, 192602027, 408035775, 423045008, 443778789, 455843536, 464988358, 468354034, 473005757, 546494902, 655891275, 666640895, 706026151, 723296007, 743246211}; array[73] = new long[] {341046419, 357991189, 361910621, 383776759, 397376082, 408035776, 468354035, 484550917, 494816604, 553585739, 594051618}; array[74] = new long[] {468354036, 593571847}; - array[75] = new long[] {37759059, 468354037, 490546539, 593571848, 1271884766, 1615282376, 1671757189, 1713898379, 2105174288, 2642941643l, 2904579919l}; + array[75] = new long[] {37759059, 468354037, 490546539, 593571848, 1271884766, 1615282376, 1671757189, 1713898379, 2105174288, 2642941643L, 2904579919L}; Map counts = TiledAlignerUtil.convertLongDoubleArrayToMap(array, false); assertEquals(2, counts.size()); int thirtyFive = NumberUtils.getTileCount(35, 0); int thirtyThree = NumberUtils.getTileCount(33, 0); - assertEquals(true, counts.containsKey(thirtyFive)); - assertEquals(true, counts.containsKey(thirtyThree)); + assertTrue(counts.containsKey(thirtyFive)); + assertTrue(counts.containsKey(thirtyThree)); assertArrayEquals(new long[]{468349696}, counts.get(thirtyFive).toArray()); /* * the position in the sequence is now added to the long position * and so 468354005 becomes 468354005 + 43 (position of start position in sequence) << 40 */ - assertArrayEquals(new long[]{NumberUtils.addShortToLong(468354005l, (short)43, 40)}, counts.get(thirtyThree).toArray()); + assertArrayEquals(new long[]{NumberUtils.addShortToLong(468354005L, (short)43, 40)}, counts.get(thirtyThree).toArray()); } @Test @@ -838,7 +834,7 @@ public void convertLongDoubleArrayToMap3() { assertEquals(NumberUtils.getTileCount(30, 0), TiledAlignerUtil.nonContinuousCount(array, 1884596169, 4)); Map counts = TiledAlignerUtil.convertLongDoubleArrayToMap(array, false); assertEquals(1, counts.size()); - assertEquals(true, counts.containsKey(NumberUtils.getTileCount(30, 0))); + assertTrue(counts.containsKey(NumberUtils.getTileCount(30, 0))); } @Test @@ -934,7 +930,7 @@ public void convertLongDoubleArrayToMap() { array[1] = new long [] {1}; array[2] = new long [] {2}; Map counts = TiledAlignerUtil.convertLongDoubleArrayToMap(array, false); - assertEquals(true, counts.isEmpty()); + assertTrue(counts.isEmpty()); /* * add a few more common tiles at beginning of array @@ -951,8 +947,8 @@ public void convertLongDoubleArrayToMap() { array[8] = new long [] {2, 101, 1001}; array[9] = new long [] {3, 102, 9999999}; array[10] = new long [] {4, 103, 1239999999}; - array[11] = new long [] {5, 104, 12312391999999l}; - array[12] = new long [] {6, 105, 1231239999999l}; + array[11] = new long [] {5, 104, 12312391999999L}; + array[12] = new long [] {6, 105, 1231239999999L}; counts = TiledAlignerUtil.convertLongDoubleArrayToMap(array, false); assertEquals(1, counts.size()); assertArrayEquals(new long[] {NumberUtils.addShortToLong(1, (short)7, 40), NumberUtils.addShortToLong(100, (short)7, 40)}, counts.get(NumberUtils.getTileCount(6, 0)).toArray()); @@ -976,8 +972,8 @@ public void shortcut() { assertEquals(10001, shortcuts.keys()[0]); array = new long[334][]; - array[0] = new long[]{33467134l, 34535761l, 65320045l, 84127681l, 155449193l, 239141584l, 352246996l, 352811748l, 364392038l, 368259712l, 382226452l, 382227136l, 382231273l, 382231443l, 382231785l, 382232126l, 382233314l, 382235369l, 382238467l, 382239486l, 382245780l, 382254800l, 419454065l, 487841731l, 525067818l, 544469882l, 566937690l, 716343412l, 774073757l, 920229281l, 927993012l, 927994206l, 927995230l, 927996075l, 927996928l, 927997097l, 928004509l, 928006385l, 928007769l, 928019483l, 958315113l, 964260057l, 976800283l, 997007220l, 1020115672l, 1064172699l, 1121316128l, 1121317488l, 1121318334l, 1121320545l, 1121321391l, 1185861077l, 1212744499l, 1291633391l, 1294741154l, 1294741836l, 1294742689l, 1294746083l, 1294747108l, 1294751304l, 1294751474l, 1294752156l, 1295022643l, 1295024180l, 1295027407l, 1295627025l, 1295628040l, 1295628382l, 1295629062l, 1295629402l, 1295630080l, 1295632454l, 1295633474l, 1295633814l, 1295634998l, 1295636358l, 1295637548l, 1295639761l, 1295641969l, 1295642819l, 1295643501l, 1295644523l, 1295647930l, 1295648270l, 1295653560l, 1295653731l, 1295657833l, 1379879816l, 1387408098l, 1436566073l, 1436566244l, 1436566415l, 1436566925l, 1436569832l, 1436575356l, 1436582593l, 1436584135l, 1436585156l, 1436585327l, 1436586695l, 1436592791l, 1436593303l, 1436594832l, 1436596543l, 1436597542l, 1436604355l, 1436604845l, 1436605527l, 1436605918l, 1436607104l, 1436607449l, 1436611991l, 1436614207l, 1436614547l, 1436615057l, 1436615399l, 1439655470l, 1439655982l, 1439657511l, 1439660224l, 1439664306l, 1439668062l, 1439668552l, 1439669234l, 1439669625l, 1439671156l, 1439672508l, 1439675701l, 1439677918l, 1439678259l, 1439728218l, 1450251075l, 1508629648l, 1531062469l, 1605930483l, 1605942610l, 1605943460l, 1605944144l, 1605944315l, 1605944657l, 1605946705l, 1605947045l, 1605947380l, 1605948574l, 1605949427l, 1605949767l, 1605950108l, 1605950620l, 1605952667l, 1605953180l, 1605953522l, 1605954355l, 1605955714l, 1605963901l, 1605964412l, 1605964925l, 1605966974l, 1605967826l, 1605970210l, 1605971578l, 1605973628l, 1605975337l, 1605979261l, 1605981142l, 1605985400l, 1606478174l, 1608868583l, 1609121751l, 1609123633l, 1609135248l, 1609136098l, 1609136782l, 1609136953l, 1609137295l, 1609139341l, 1609139681l, 1609140017l, 1609142064l, 1609142404l, 1609142745l, 1609143257l, 1609143599l, 1609145305l, 1609145818l, 1609146160l, 1609146502l, 1609146996l, 1609148355l, 1609153639l, 1609154150l, 1609154663l, 1609156712l, 1609157564l, 1609159948l, 1609161316l, 1609163366l, 1609165075l, 1609169000l, 1722770980l, 1722771660l, 1722771999l, 1722772678l, 1722773524l, 1722773862l, 1722774877l, 1722775728l, 1722776403l, 1722777246l, 1722777756l, 1722778096l, 1722778432l, 1722779106l, 1722779617l, 1722781483l, 1722782500l, 1722782837l, 1723190479l, 1723190990l, 1732095612l, 1792580446l, 1864766475l, 1864767839l, 1864769533l, 1864769874l, 1864771578l, 1864771900l, 1864772490l, 1864772660l, 1864774372l, 1864775054l, 1864775225l, 1864776592l, 1864784972l, 1864786508l, 1864786849l, 1864788904l, 1864790610l, 1864791465l, 1864791636l, 1864793511l, 1864796141l, 1864796654l, 1864796824l, 1864798357l, 1864799382l, 1864799553l, 1864800066l, 1864800578l, 1864801091l, 1864804505l, 1864804676l, 1864805870l, 1864806382l, 1864807913l, 1864808767l, 1866668465l, 1866669153l, 1866671378l, 1866671890l, 1866674622l, 1866675305l, 1866676082l, 1866677099l, 1866677779l, 1866679316l, 1866679486l, 1866686539l, 1866687218l, 1866689595l, 1866690783l, 1877625826l, 1885213331l, 1928367338l, 1930377440l, 1985747575l, 1985748254l, 1985750129l, 1985750469l, 1985751322l, 1985751836l, 1985752349l, 1985753195l, 1985753536l, 1985753877l, 1985754390l, 1985755070l, 1985755621l, 1985755959l, 1985756300l, 1985756640l, 1985757320l, 1985757660l, 1985759193l, 1985760045l, 1985760420l, 1985761100l, 1985761440l, 1985761779l, 1985764665l, 1988906522l, 1988923544l, 1988923715l, 1988928762l, 1988953612l, 1989042558l, 1997669587l, 2066268735l, 2071515200l, 2138183139l, 2168091604l, 2183211700l, 2283943838l, 2288993052l, 2375583286l, 2401246921l, 2445101834l, 2526981507l, 2556105062l, 2573771237l, 2684047915l, 2684049788l, 2684049958l, 2684050299l, 2684050811l, 2684052684l, 2684052854l, 2684053195l, 2684053707l, 2684055580l, 2684055750l, 2684056091l, 2684056603l, 2684058476l, 2684058646l, 2684058987l, 2684059499l, 2684061541l, 2684061882l, 2684062394l, 2684064095l, 2684064606l, 2684065117l, 2684066989l, 2684067159l, 2684067500l, 2684068012l, 2684069884l, 2684070054l, 2684070395l, 2684072950l, 2684073120l, 2684073461l, 2684076017l, 2687176342l, 2687176682l, 2687177010l, 2687177349l, 2687179050l, 2687179390l, 2687179730l, 2687180070l, 2687180750l, 2687181769l, 2687182788l, 2687183808l, 2687187623l, 2687200177l, 2687200519l, 2687200690l, 2687202881l, 2687207045l, 2687208499l, 2687209523l, 2687211919l, 2687213940l, 2687222213l, 2687223405l, 2694733527l, 2744832797l, 2744832966l, 2744837050l, 2744837389l, 2744841443l, 2744843307l, 2744845939l, 2744846278l, 2744849326l, 2744850506l, 2744852703l, 2744853209l, 2744854230l, 2744854899l, 2744860132l, 2744861666l, 2744862854l, 2744864516l, 2744866218l, 2744866558l, 2744867920l, 2744870433l, 2744871971l, 2744874533l, 2744875045l, 2744875557l, 2744876753l, 2744877436l, 2744878290l, 2744879473l, 2744884594l, 2744891287l, 2758577153l, 2776436344l, 2897991128l, 2918362545l, 2939581674l, 2939582526l, 2939584726l, 2939586932l, 2939587781l, 2939588119l, 2939589132l, 2939589468l, 2939589806l, 2939590316l, 2939590996l, 2939591329l, 2942787351l, 2942788128l, 2942789830l, 2942791873l, 2942792724l, 2942793917l, 2942794431l, 2942795454l, 2942796134l, 2942796645l, 2942798446l, 2942801337l, 2942846334l, 2942848183l, 2942848351l, 2942849548l, 2942849719l, 2942852280l, 2942852963l, 2942853649l, 2942853820l, 2942853991l, 2942856040l, 2942856382l, 2942857064l, 2942857573l, 2942857744l, 2942860133l, 2942864059l, 2942877196l, 2942878564l, 2942880015l, 2942880186l, 2988673834l, 3024261320l}; - array[333] = new long[]{346235213, 349342109, 656710173, 667326247, 713987780, 721195839, 761285138, 928021248, 1154273523, 1171459401, 1246849779, 1295624467, 1295625147, 1295625656, 1295626678, 1295627358, 1347538083, 1361547612, 2389244384l, 2923310518l, 3014634950l}; + array[0] = new long[]{33467134L, 34535761L, 65320045L, 84127681L, 155449193L, 239141584L, 352246996L, 352811748L, 364392038L, 368259712L, 382226452L, 382227136L, 382231273L, 382231443L, 382231785L, 382232126L, 382233314L, 382235369L, 382238467L, 382239486L, 382245780L, 382254800L, 419454065L, 487841731L, 525067818L, 544469882L, 566937690L, 716343412L, 774073757L, 920229281L, 927993012L, 927994206L, 927995230L, 927996075L, 927996928L, 927997097L, 928004509L, 928006385L, 928007769L, 928019483L, 958315113L, 964260057L, 976800283L, 997007220L, 1020115672L, 1064172699L, 1121316128L, 1121317488L, 1121318334L, 1121320545L, 1121321391L, 1185861077L, 1212744499L, 1291633391L, 1294741154L, 1294741836L, 1294742689L, 1294746083L, 1294747108L, 1294751304L, 1294751474L, 1294752156L, 1295022643L, 1295024180L, 1295027407L, 1295627025L, 1295628040L, 1295628382L, 1295629062L, 1295629402L, 1295630080L, 1295632454L, 1295633474L, 1295633814L, 1295634998L, 1295636358L, 1295637548L, 1295639761L, 1295641969L, 1295642819L, 1295643501L, 1295644523L, 1295647930L, 1295648270L, 1295653560L, 1295653731L, 1295657833L, 1379879816L, 1387408098L, 1436566073L, 1436566244L, 1436566415L, 1436566925L, 1436569832L, 1436575356L, 1436582593L, 1436584135L, 1436585156L, 1436585327L, 1436586695L, 1436592791L, 1436593303L, 1436594832L, 1436596543L, 1436597542L, 1436604355L, 1436604845L, 1436605527L, 1436605918L, 1436607104L, 1436607449L, 1436611991L, 1436614207L, 1436614547L, 1436615057L, 1436615399L, 1439655470L, 1439655982L, 1439657511L, 1439660224L, 1439664306L, 1439668062L, 1439668552L, 1439669234L, 1439669625L, 1439671156L, 1439672508L, 1439675701L, 1439677918L, 1439678259L, 1439728218L, 1450251075L, 1508629648L, 1531062469L, 1605930483L, 1605942610L, 1605943460L, 1605944144L, 1605944315L, 1605944657L, 1605946705L, 1605947045L, 1605947380L, 1605948574L, 1605949427L, 1605949767L, 1605950108L, 1605950620L, 1605952667L, 1605953180L, 1605953522L, 1605954355L, 1605955714L, 1605963901L, 1605964412L, 1605964925L, 1605966974L, 1605967826L, 1605970210L, 1605971578L, 1605973628L, 1605975337L, 1605979261L, 1605981142L, 1605985400L, 1606478174L, 1608868583L, 1609121751L, 1609123633L, 1609135248L, 1609136098L, 1609136782L, 1609136953L, 1609137295L, 1609139341L, 1609139681L, 1609140017L, 1609142064L, 1609142404L, 1609142745L, 1609143257L, 1609143599L, 1609145305L, 1609145818L, 1609146160L, 1609146502L, 1609146996L, 1609148355L, 1609153639L, 1609154150L, 1609154663L, 1609156712L, 1609157564L, 1609159948L, 1609161316L, 1609163366L, 1609165075L, 1609169000L, 1722770980L, 1722771660L, 1722771999L, 1722772678L, 1722773524L, 1722773862L, 1722774877L, 1722775728L, 1722776403L, 1722777246L, 1722777756L, 1722778096L, 1722778432L, 1722779106L, 1722779617L, 1722781483L, 1722782500L, 1722782837L, 1723190479L, 1723190990L, 1732095612L, 1792580446L, 1864766475L, 1864767839L, 1864769533L, 1864769874L, 1864771578L, 1864771900L, 1864772490L, 1864772660L, 1864774372L, 1864775054L, 1864775225L, 1864776592L, 1864784972L, 1864786508L, 1864786849L, 1864788904L, 1864790610L, 1864791465L, 1864791636L, 1864793511L, 1864796141L, 1864796654L, 1864796824L, 1864798357L, 1864799382L, 1864799553L, 1864800066L, 1864800578L, 1864801091L, 1864804505L, 1864804676L, 1864805870L, 1864806382L, 1864807913L, 1864808767L, 1866668465L, 1866669153L, 1866671378L, 1866671890L, 1866674622L, 1866675305L, 1866676082L, 1866677099L, 1866677779L, 1866679316L, 1866679486L, 1866686539L, 1866687218L, 1866689595L, 1866690783L, 1877625826L, 1885213331L, 1928367338L, 1930377440L, 1985747575L, 1985748254L, 1985750129L, 1985750469L, 1985751322L, 1985751836L, 1985752349L, 1985753195L, 1985753536L, 1985753877L, 1985754390L, 1985755070L, 1985755621L, 1985755959L, 1985756300L, 1985756640L, 1985757320L, 1985757660L, 1985759193L, 1985760045L, 1985760420L, 1985761100L, 1985761440L, 1985761779L, 1985764665L, 1988906522L, 1988923544L, 1988923715L, 1988928762L, 1988953612L, 1989042558L, 1997669587L, 2066268735L, 2071515200L, 2138183139L, 2168091604L, 2183211700L, 2283943838L, 2288993052L, 2375583286L, 2401246921L, 2445101834L, 2526981507L, 2556105062L, 2573771237L, 2684047915L, 2684049788L, 2684049958L, 2684050299L, 2684050811L, 2684052684L, 2684052854L, 2684053195L, 2684053707L, 2684055580L, 2684055750L, 2684056091L, 2684056603L, 2684058476L, 2684058646L, 2684058987L, 2684059499L, 2684061541L, 2684061882L, 2684062394L, 2684064095L, 2684064606L, 2684065117L, 2684066989L, 2684067159L, 2684067500L, 2684068012L, 2684069884L, 2684070054L, 2684070395L, 2684072950L, 2684073120L, 2684073461L, 2684076017L, 2687176342L, 2687176682L, 2687177010L, 2687177349L, 2687179050L, 2687179390L, 2687179730L, 2687180070L, 2687180750L, 2687181769L, 2687182788L, 2687183808L, 2687187623L, 2687200177L, 2687200519L, 2687200690L, 2687202881L, 2687207045L, 2687208499L, 2687209523L, 2687211919L, 2687213940L, 2687222213L, 2687223405L, 2694733527L, 2744832797L, 2744832966L, 2744837050L, 2744837389L, 2744841443L, 2744843307L, 2744845939L, 2744846278L, 2744849326L, 2744850506L, 2744852703L, 2744853209L, 2744854230L, 2744854899L, 2744860132L, 2744861666L, 2744862854L, 2744864516L, 2744866218L, 2744866558L, 2744867920L, 2744870433L, 2744871971L, 2744874533L, 2744875045L, 2744875557L, 2744876753L, 2744877436L, 2744878290L, 2744879473L, 2744884594L, 2744891287L, 2758577153L, 2776436344L, 2897991128L, 2918362545L, 2939581674L, 2939582526L, 2939584726L, 2939586932L, 2939587781L, 2939588119L, 2939589132L, 2939589468L, 2939589806L, 2939590316L, 2939590996L, 2939591329L, 2942787351L, 2942788128L, 2942789830L, 2942791873L, 2942792724L, 2942793917L, 2942794431L, 2942795454L, 2942796134L, 2942796645L, 2942798446L, 2942801337L, 2942846334L, 2942848183L, 2942848351L, 2942849548L, 2942849719L, 2942852280L, 2942852963L, 2942853649L, 2942853820L, 2942853991L, 2942856040L, 2942856382L, 2942857064L, 2942857573L, 2942857744L, 2942860133L, 2942864059L, 2942877196L, 2942878564L, 2942880015L, 2942880186L, 2988673834L, 3024261320L}; + array[333] = new long[]{346235213, 349342109, 656710173, 667326247, 713987780, 721195839, 761285138, 928021248, 1154273523, 1171459401, 1246849779, 1295624467, 1295625147, 1295625656, 1295626678, 1295627358, 1347538083, 1361547612, 2389244384L, 2923310518L, 3014634950L}; shortcuts = TiledAlignerUtil.getShortCutPositionsForSmithwaterman(array); assertEquals(1, shortcuts.size()); assertEquals(1295627025, shortcuts.keys()[0]); @@ -988,20 +984,20 @@ public void shortcutWithBuffer() { long[][] array = new long[3][]; array = new long[68][]; // array[0] = new long[]{2843153l, 12681925l, 55525982l, 99383873l, 99399090l, 116571131l, 119904844l, 209925742l, 242446648l, 243893607l, 246311740l, 249573822l, 252683662l, 256214025l, 262214726l, 286959752l, 304187696l, 312333811l, 354392966l, 370329904l, 378625309l, 506273721l, 520511223l, 538556960l, 619665717l, 659988865l, 691133798l, 725968824l, 731441637l, 753001157l, 777260203l, 778793794l, 821596918l, 828394955l, 862170300l, 883290075l, 884037102l, 887264280l, 920530252l, 921981731l, 924023762l, 953213399l, 980104050l, 986602508l, 997623927l, 1041701286l, 1042229577l, 1091640131l, 1124574950l, 1124586492l, 1127969878l, 1128890105l, 1176804192l, 1196036104l, 1202219346l, 1204258486l, 1220724666l, 1253915192l, 1280888957l, 1281352391l, 1281442135l, 1285525163l, 1289630315l, 1359338403l, 1383097840l, 1392426699l, 1392547836l, 1464972230l, 1477577882l, 1489077751l, 1491351171l, 1520464905l, 1550573692l, 1551772295l, 1582833571l, 1604725156l, 1628593406l, 1630304350l, 1631921365l, 1648677864l, 1665283524l, 1687008419l, 1817364991l, 1851067968l, 1873007361l, 1900414444l, 1937715635l, 1956099333l, 1997839906l, 2009110291l, 2011701014l, 2026706753l, 2032131270l, 2049441972l, 2067146988l, 2083990378l, 2130774141l, 2135428001l, 2136797511l, 2171276400l, 2174144390l, 2235291710l, 2259154471l, 2264427895l, 2284494275l, 2286766979l, 2288056310l, 2303155066l, 2304612210l, 2332977171l, 2368487213l, 2381325787l, 2411647626l, 2432657581l, 2439650710l, 2475696344l, 2485494102l, 2495613978l, 2515342764l, 2531231498l, 2539748425l, 2539976941l, 2548845301l, 2551179560l, 2623982814l, 2625338657l, 2638600915l, 2645474445l, 2649704168l, 2676289191l, 2748002703l, 2749224009l, 2759600781l, 2777188202l, 2778231005l, 2798298738l, 2818440215l, 2828180663l, 2857915225l, 2918263870l, 2919383391l, 3005877509l, 3023678259l}; - array[0] = new long[]{1176804192l}; - array[67] = new long[]{90351255, 439695611, 777771917, 1094002331, 1167523024, 1176804877, 1228579535, 1354039040, 1561128813, 1856882536, 1870698140, 1890031905, 2113951585, 2617800701l, 2683547413l, 2742508068l, 2770451401l}; + array[0] = new long[]{1176804192L}; + array[67] = new long[]{90351255, 439695611, 777771917, 1094002331, 1167523024, 1176804877, 1228579535, 1354039040, 1561128813, 1856882536, 1870698140, 1890031905, 2113951585, 2617800701L, 2683547413L, 2742508068L, 2770451401L}; TLongIntMap shortcuts = TiledAlignerUtil.getShortCutPositionsForSmithwaterman(array, 500000); assertEquals(1, shortcuts.size()); assertEquals(1176804192, shortcuts.keys()[0]); - array[0] = new long[]{1176804192l}; + array[0] = new long[]{1176804192L}; array[67] = new long[]{90351255, 439695611, 777771917, 1094002331, 1167523024, 1176804877}; shortcuts = TiledAlignerUtil.getShortCutPositionsForSmithwaterman(array, 500000); assertEquals(1, shortcuts.size()); assertEquals(1176804192, shortcuts.keys()[0]); - array[0] = new long[]{1176804192l}; - array[67] = new long[]{1176804877, 1228579535, 1354039040, 1561128813, 1856882536, 1870698140, 1890031905, 2113951585, 2617800701l, 2683547413l, 2742508068l, 2770451401l}; + array[0] = new long[]{1176804192L}; + array[67] = new long[]{1176804877, 1228579535, 1354039040, 1561128813, 1856882536, 1870698140, 1890031905, 2113951585, 2617800701L, 2683547413L, 2742508068L, 2770451401L}; shortcuts = TiledAlignerUtil.getShortCutPositionsForSmithwaterman(array, 500000); assertEquals(1, shortcuts.size()); assertEquals(1176804192, shortcuts.keys()[0]); @@ -1012,8 +1008,8 @@ public void shortcutWithBuffer2() { long[][] array = new long[3][]; array = new long[146][]; - array[0] = new long[]{150675826l, 224969540l, 235402251l, 350574988l, 362140009l, 366104660l, 374838852l, 406023020l, 499466387l, 562670576l, 570691276l, 587138623l, 726845374l, 726925484l, 768374811l, 812204404l, 877860117l, 896460260l, 926621236l, 954150533l, 1016517040l, 1088933751l, 1111996240l, 1128693716l, 1135850329l, 1278575514l, 1308759513l, 1319501472l, 1328594083l, 1332465721l, 1356506118l, 1364818331l, 1416734167l, 1458563273l, 1617357804l, 1647796311l, 1693177251l, 1718741599l, 1742299733l, 1857743031l, 1961340912l, 2070305177l, 2073704158l, 2132687497l, 2181360223l, 2247209116l, 2254814229l, 2343155286l, 2622434862l, 2649485036l, 2688377034l, 2694023666l, 2717197396l, 2755240549l, 2812789442l, 2896463243l, 2917200654l, 2917344301l, 2918359696l, 2944974164l}; - array[145] = new long[]{149546458l, 150816667l, 166989116l, 169452613l, 179929922l, 183124815l, 189158451l, 189463693l, 191306170l, 192311894l, 194590397l, 196011303l, 209927290l, 210389718l, 213059238l, 213611323l, 213720202l, 225440398l, 227530933l, 227531755l, 229523541l, 237674416l, 253695170l, 254660463l, 258463646l, 262765894l, 262993326l, 263196966l, 270991805l, 285730423l, 289221966l, 290141699l, 290829635l, 291919889l, 295057496l, 305721242l, 305968290l, 312312004l, 320614553l, 327820529l, 330707115l, 330890763l, 340989796l, 356426013l, 357831312l, 361229761l, 387419291l, 387639353l, 387797436l, 389795641l, 398399896l, 403182743l, 415916045l, 416456584l, 427614008l, 428386555l, 428744430l, 429654863l, 431541567l, 447850846l, 455219890l, 461054494l, 462788231l, 463380211l, 474089208l, 475288377l, 478705556l, 480448954l, 497935602l, 497953020l, 546092288l, 549106897l, 549679541l, 553012329l, 555704585l, 571924443l, 575489424l, 588234345l, 589757449l, 591349654l, 595980730l, 598661308l, 610794361l, 624243094l, 638786897l, 638920690l, 640330394l, 640410786l, 641474480l, 644937079l, 645159310l, 652524665l, 655608537l, 661992266l, 667588270l, 672559633l, 676340207l, 678746602l, 678876650l, 687053802l, 688864462l, 693090282l, 698563196l, 700342559l, 701676992l, 703025738l, 704622187l, 708639020l, 725109224l, 736115417l, 736221369l, 738003575l, 744687055l, 749520698l, 752432271l, 753665805l, 754650239l, 755705989l, 760054146l, 760429722l, 763576875l, 772308682l, 774744267l, 780637865l, 781774321l, 781938924l, 783856523l, 789645113l, 796064158l, 800540381l, 806042096l, 810353138l, 811047152l, 813438337l, 816125648l, 828353280l, 833798403l, 845165066l, 847381532l, 848689474l, 850090307l, 856712052l, 858758607l, 862367203l, 865593008l, 872784469l, 882081557l, 886183585l, 889517272l, 895345009l, 903377885l, 909627874l, 910033693l, 911045115l, 916694424l, 926574274l, 932283564l, 952979388l, 953303767l, 966424216l, 969904304l, 973089941l, 973478629l, 975883875l, 975936602l, 978385852l, 981130575l, 981657425l, 981685605l, 982744065l, 985406677l, 987271753l, 997092558l, 1002719671l, 1005147620l, 1007206331l, 1009985901l, 1021979824l, 1030564028l, 1042590751l, 1048315770l, 1051964070l, 1071232489l, 1074792622l, 1080023590l, 1087879023l, 1090254341l, 1095555249l, 1103460725l, 1117297028l, 1125763260l, 1127417953l, 1130973190l, 1132307256l, 1134245086l, 1134684232l, 1134949138l, 1141175572l, 1142370011l, 1143861529l, 1144335811l, 1152432463l, 1156391430l, 1156565792l, 1157610615l, 1160718771l, 1166083955l, 1166818874l, 1175714385l, 1180574211l, 1181616410l, 1186638146l, 1187116253l, 1190571212l, 1194958785l, 1204584373l, 1220257705l, 1238103644l, 1252965734l, 1289606167l, 1300790665l, 1309064370l, 1309975738l, 1312827723l, 1313639961l, 1318594362l, 1319501613l, 1322980283l, 1323787362l, 1328411075l, 1332575375l, 1334092490l, 1352313628l, 1355797413l, 1357171226l, 1357409219l, 1360795710l, 1374001110l, 1393749669l, 1396391636l, 1398010290l, 1401522193l, 1404100356l, 1407140770l, 1407770250l, 1424321475l, 1431709997l, 1434786048l, 1444768043l, 1445225320l, 1445678796l, 1453395363l, 1453848977l, 1454391576l, 1455743057l, 1464824276l, 1471777142l, 1472023274l, 1475526898l, 1476262989l, 1484720384l, 1502527348l, 1503354943l, 1518344974l, 1518503915l, 1519353305l, 1524474994l, 1527221474l, 1546858621l, 1550063253l, 1551194166l, 1551272645l, 1552100244l, 1558459553l, 1561901821l, 1565169334l, 1567526880l, 1578294906l, 1617888569l, 1618497576l, 1628297146l, 1630791232l, 1632165409l, 1634446814l, 1644191501l, 1661601987l, 1682158555l, 1686777986l, 1689170206l, 1689655767l, 1690082741l, 1693539957l, 1702857022l, 1706969486l, 1709395828l, 1711148767l, 1713566761l, 1730844524l, 1735102289l, 1735813608l, 1737360988l, 1747832797l, 1748072979l, 1767088119l, 1772348278l, 1772521826l, 1776308308l, 1788537312l, 1790500155l, 1791489690l, 1792175440l, 1792438692l, 1802319080l, 1802850031l, 1812942444l, 1837939788l, 1840733552l, 1842192476l, 1842517729l, 1845417947l, 1847125760l, 1854570347l, 1857412354l, 1857412462l, 1864834023l, 1864980538l, 1871552370l, 1873680423l, 1882310654l, 1886789069l, 1889864302l, 1895142848l, 1897495437l, 1897638913l, 1903222120l, 1905509062l, 1905695723l, 1913385423l, 1920041820l, 1920636320l, 1932693660l, 1946137987l, 1967540128l, 1972447586l, 1973119865l, 1973743334l, 1980302230l, 1981465491l, 1996866419l, 2003240737l, 2006627257l, 2012206312l, 2016623473l, 2018790825l, 2020857609l, 2023579469l, 2030284932l, 2030425573l, 2034691680l, 2042091467l, 2045718315l, 2050441162l, 2069076170l, 2078317551l, 2082028244l, 2120474150l, 2131363297l, 2134162967l, 2137183665l, 2140478702l, 2142461589l, 2146873549l, 2148034273l, 2148263826l, 2148857252l, 2149191774l, 2154234728l, 2156702422l, 2156882210l, 2166304443l, 2167567536l, 2168418391l, 2172168775l, 2177278274l, 2180438407l, 2189695616l, 2193729991l, 2194704885l, 2197464562l, 2225966826l, 2229469248l, 2235996591l, 2236319647l, 2241828840l, 2242483499l, 2244215845l, 2250756837l, 2255261490l, 2264043239l, 2282305363l, 2283386103l, 2284702339l, 2284831652l, 2286724027l, 2306709401l, 2327628101l, 2328634700l, 2333710344l, 2335108735l, 2343983640l, 2359524075l, 2362022430l, 2363904068l, 2366175101l, 2375458006l, 2402191984l, 2408463901l, 2442554319l, 2461917711l, 2463236784l, 2468207859l, 2468327806l, 2470216638l, 2470533250l, 2472398675l, 2473256551l, 2484145096l, 2486638126l, 2511029258l, 2515938432l, 2516008645l, 2520756064l, 2521882674l, 2527754404l, 2532883606l, 2539535883l, 2542741234l, 2546436714l, 2546556755l, 2548957586l, 2549322005l, 2550966631l, 2558964681l, 2586257365l, 2592764986l, 2605088481l, 2605376648l, 2608722301l, 2612752845l, 2617282201l, 2619405731l, 2631057548l, 2631756442l, 2643000971l, 2643354322l, 2643430557l, 2643811650l, 2644131617l, 2649086011l, 2650806775l, 2651736904l, 2659358075l, 2661817103l, 2669310368l, 2681904925l, 2683552774l, 2687392605l, 2688304794l, 2691041149l, 2691763292l, 2693928243l, 2700238584l, 2716653340l, 2726347925l, 2732068670l, 2737563946l, 2739770723l, 2740773143l, 2749448273l, 2751909597l, 2758309458l, 2759368356l, 2776759319l, 2798694733l, 2803067637l, 2812457962l, 2816541486l, 2847024226l, 2867230805l, 2886596462l, 2889792820l, 2892232668l, 2895260446l, 2906892629l, 2909191908l, 2916489194l, 2917702646l, 2918694000l, 2920766360l, 2927067131l, 2937445050l, 2953291766l, 2953368873l, 2962383184l, 2971820284l, 2972370253l, 2974433422l, 2977140412l, 2979834664l, 2982159656l, 2997324882l}; + array[0] = new long[]{150675826L, 224969540L, 235402251L, 350574988L, 362140009L, 366104660L, 374838852L, 406023020L, 499466387L, 562670576L, 570691276L, 587138623L, 726845374L, 726925484L, 768374811L, 812204404L, 877860117L, 896460260L, 926621236L, 954150533L, 1016517040L, 1088933751L, 1111996240L, 1128693716L, 1135850329L, 1278575514L, 1308759513L, 1319501472L, 1328594083L, 1332465721L, 1356506118L, 1364818331L, 1416734167L, 1458563273L, 1617357804L, 1647796311L, 1693177251L, 1718741599L, 1742299733L, 1857743031L, 1961340912L, 2070305177L, 2073704158L, 2132687497L, 2181360223L, 2247209116L, 2254814229L, 2343155286L, 2622434862L, 2649485036L, 2688377034L, 2694023666L, 2717197396L, 2755240549L, 2812789442L, 2896463243L, 2917200654L, 2917344301L, 2918359696L, 2944974164L}; + array[145] = new long[]{149546458L, 150816667L, 166989116L, 169452613L, 179929922L, 183124815L, 189158451L, 189463693L, 191306170L, 192311894L, 194590397L, 196011303L, 209927290L, 210389718L, 213059238L, 213611323L, 213720202L, 225440398L, 227530933L, 227531755L, 229523541L, 237674416L, 253695170L, 254660463L, 258463646L, 262765894L, 262993326L, 263196966L, 270991805L, 285730423L, 289221966L, 290141699L, 290829635L, 291919889L, 295057496L, 305721242L, 305968290L, 312312004L, 320614553L, 327820529L, 330707115L, 330890763L, 340989796L, 356426013L, 357831312L, 361229761L, 387419291L, 387639353L, 387797436L, 389795641L, 398399896L, 403182743L, 415916045L, 416456584L, 427614008L, 428386555L, 428744430L, 429654863L, 431541567L, 447850846L, 455219890L, 461054494L, 462788231L, 463380211L, 474089208L, 475288377L, 478705556L, 480448954L, 497935602L, 497953020L, 546092288L, 549106897L, 549679541L, 553012329L, 555704585L, 571924443L, 575489424L, 588234345L, 589757449L, 591349654L, 595980730L, 598661308L, 610794361L, 624243094L, 638786897L, 638920690L, 640330394L, 640410786L, 641474480L, 644937079L, 645159310L, 652524665L, 655608537L, 661992266L, 667588270L, 672559633L, 676340207L, 678746602L, 678876650L, 687053802L, 688864462L, 693090282L, 698563196L, 700342559L, 701676992L, 703025738L, 704622187L, 708639020L, 725109224L, 736115417L, 736221369L, 738003575L, 744687055L, 749520698L, 752432271L, 753665805L, 754650239L, 755705989L, 760054146L, 760429722L, 763576875L, 772308682L, 774744267L, 780637865L, 781774321L, 781938924L, 783856523L, 789645113L, 796064158L, 800540381L, 806042096L, 810353138L, 811047152L, 813438337L, 816125648L, 828353280L, 833798403L, 845165066L, 847381532L, 848689474L, 850090307L, 856712052L, 858758607L, 862367203L, 865593008L, 872784469L, 882081557L, 886183585L, 889517272L, 895345009L, 903377885L, 909627874L, 910033693L, 911045115L, 916694424L, 926574274L, 932283564L, 952979388L, 953303767L, 966424216L, 969904304L, 973089941L, 973478629L, 975883875L, 975936602L, 978385852L, 981130575L, 981657425L, 981685605L, 982744065L, 985406677L, 987271753L, 997092558L, 1002719671L, 1005147620L, 1007206331L, 1009985901L, 1021979824L, 1030564028L, 1042590751L, 1048315770L, 1051964070L, 1071232489L, 1074792622L, 1080023590L, 1087879023L, 1090254341L, 1095555249L, 1103460725L, 1117297028L, 1125763260L, 1127417953L, 1130973190L, 1132307256L, 1134245086L, 1134684232L, 1134949138L, 1141175572L, 1142370011L, 1143861529L, 1144335811L, 1152432463L, 1156391430L, 1156565792L, 1157610615L, 1160718771L, 1166083955L, 1166818874L, 1175714385L, 1180574211L, 1181616410L, 1186638146L, 1187116253L, 1190571212L, 1194958785L, 1204584373L, 1220257705L, 1238103644L, 1252965734L, 1289606167L, 1300790665L, 1309064370L, 1309975738L, 1312827723L, 1313639961L, 1318594362L, 1319501613L, 1322980283L, 1323787362L, 1328411075L, 1332575375L, 1334092490L, 1352313628L, 1355797413L, 1357171226L, 1357409219L, 1360795710L, 1374001110L, 1393749669L, 1396391636L, 1398010290L, 1401522193L, 1404100356L, 1407140770L, 1407770250L, 1424321475L, 1431709997L, 1434786048L, 1444768043L, 1445225320L, 1445678796L, 1453395363L, 1453848977L, 1454391576L, 1455743057L, 1464824276L, 1471777142L, 1472023274L, 1475526898L, 1476262989L, 1484720384L, 1502527348L, 1503354943L, 1518344974L, 1518503915L, 1519353305L, 1524474994L, 1527221474L, 1546858621L, 1550063253L, 1551194166L, 1551272645L, 1552100244L, 1558459553L, 1561901821L, 1565169334L, 1567526880L, 1578294906L, 1617888569L, 1618497576L, 1628297146L, 1630791232L, 1632165409L, 1634446814L, 1644191501L, 1661601987L, 1682158555L, 1686777986L, 1689170206L, 1689655767L, 1690082741L, 1693539957L, 1702857022L, 1706969486L, 1709395828L, 1711148767L, 1713566761L, 1730844524L, 1735102289L, 1735813608L, 1737360988L, 1747832797L, 1748072979L, 1767088119L, 1772348278L, 1772521826L, 1776308308L, 1788537312L, 1790500155L, 1791489690L, 1792175440L, 1792438692L, 1802319080L, 1802850031L, 1812942444L, 1837939788L, 1840733552L, 1842192476L, 1842517729L, 1845417947L, 1847125760L, 1854570347L, 1857412354L, 1857412462L, 1864834023L, 1864980538L, 1871552370L, 1873680423L, 1882310654L, 1886789069L, 1889864302L, 1895142848L, 1897495437L, 1897638913L, 1903222120L, 1905509062L, 1905695723L, 1913385423L, 1920041820L, 1920636320L, 1932693660L, 1946137987L, 1967540128L, 1972447586L, 1973119865L, 1973743334L, 1980302230L, 1981465491L, 1996866419L, 2003240737L, 2006627257L, 2012206312L, 2016623473L, 2018790825L, 2020857609L, 2023579469L, 2030284932L, 2030425573L, 2034691680L, 2042091467L, 2045718315L, 2050441162L, 2069076170L, 2078317551L, 2082028244L, 2120474150L, 2131363297L, 2134162967L, 2137183665L, 2140478702L, 2142461589L, 2146873549L, 2148034273L, 2148263826L, 2148857252L, 2149191774L, 2154234728L, 2156702422L, 2156882210L, 2166304443L, 2167567536L, 2168418391L, 2172168775L, 2177278274L, 2180438407L, 2189695616L, 2193729991L, 2194704885L, 2197464562L, 2225966826L, 2229469248L, 2235996591L, 2236319647L, 2241828840L, 2242483499L, 2244215845L, 2250756837L, 2255261490L, 2264043239L, 2282305363L, 2283386103L, 2284702339L, 2284831652L, 2286724027L, 2306709401L, 2327628101L, 2328634700L, 2333710344L, 2335108735L, 2343983640L, 2359524075L, 2362022430L, 2363904068L, 2366175101L, 2375458006L, 2402191984L, 2408463901L, 2442554319L, 2461917711L, 2463236784L, 2468207859L, 2468327806L, 2470216638L, 2470533250L, 2472398675L, 2473256551L, 2484145096L, 2486638126L, 2511029258L, 2515938432L, 2516008645L, 2520756064L, 2521882674L, 2527754404L, 2532883606L, 2539535883L, 2542741234L, 2546436714L, 2546556755L, 2548957586L, 2549322005L, 2550966631L, 2558964681L, 2586257365L, 2592764986L, 2605088481L, 2605376648L, 2608722301L, 2612752845L, 2617282201L, 2619405731L, 2631057548L, 2631756442L, 2643000971L, 2643354322L, 2643430557L, 2643811650L, 2644131617L, 2649086011L, 2650806775L, 2651736904L, 2659358075L, 2661817103L, 2669310368L, 2681904925L, 2683552774L, 2687392605L, 2688304794L, 2691041149L, 2691763292L, 2693928243L, 2700238584L, 2716653340L, 2726347925L, 2732068670L, 2737563946L, 2739770723L, 2740773143L, 2749448273L, 2751909597L, 2758309458L, 2759368356L, 2776759319L, 2798694733L, 2803067637L, 2812457962L, 2816541486L, 2847024226L, 2867230805L, 2886596462L, 2889792820L, 2892232668L, 2895260446L, 2906892629L, 2909191908L, 2916489194L, 2917702646L, 2918694000L, 2920766360L, 2927067131L, 2937445050L, 2953291766L, 2953368873L, 2962383184L, 2971820284L, 2972370253L, 2974433422L, 2977140412L, 2979834664L, 2982159656L, 2997324882L}; TLongIntMap shortcuts = TiledAlignerUtil.getShortCutPositionsForSmithwaterman(array, 500000); for (long key : shortcuts.keys()) { @@ -1045,8 +1041,8 @@ public void getSW() { @Test public void shortcutWithBuffer3() { long[][] array = new long[156][]; - array[0] = new long[]{2134658876l, 2136467589l, 2136488151l, 2136778431l, 2138315155l}; - array[155] = new long[]{640328772l, 649207738l, 686209323l, 695044635l, 751704976l, 839732924l, 875931157l, 957910939l, 2136488292l, 2267904068l, 2298108581l, 2390066189l, 2390442781l, 2392170172l, 2393049279l, 2401080690l}; + array[0] = new long[]{2134658876L, 2136467589L, 2136488151L, 2136778431L, 2138315155L}; + array[155] = new long[]{640328772L, 649207738L, 686209323L, 695044635L, 751704976L, 839732924L, 875931157L, 957910939L, 2136488292L, 2267904068L, 2298108581L, 2390066189L, 2390442781L, 2392170172L, 2393049279L, 2401080690L}; TLongIntMap shortcuts = TiledAlignerUtil.getShortCutPositionsForSmithwaterman(array, 500000); for (long key : shortcuts.keys()) { @@ -1113,26 +1109,26 @@ public void getBestStartPosition2() { */ Map map = new HashMap<>(); - map.put("CAGGGTTCTCTAG", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("AGGGTTCTCTAGA", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("GGGTTCTCTAGAG", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("GGTTCTCTAGAGG", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("GTTCTCTAGAGGG", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("TTCTCTAGAGGGA", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("TCTCTAGAGGGAC", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("CTCTAGAGGGACA", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("TCTAGAGGGACAG", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("CTAGAGGGACAGA", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("TAGAGGGACAGAA", new TLongArrayList(new long[] {-9223372036854774962l})); - map.put("AGAGGGACAGAAC", new TLongArrayList(new long[] {-9223372036854774962l})); + map.put("CAGGGTTCTCTAG", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("AGGGTTCTCTAGA", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("GGGTTCTCTAGAG", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("GGTTCTCTAGAGG", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("GTTCTCTAGAGGG", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("TTCTCTAGAGGGA", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("TCTCTAGAGGGAC", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("CTCTAGAGGGACA", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("TCTAGAGGGACAG", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("CTAGAGGGACAGA", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("TAGAGGGACAGAA", new TLongArrayList(new long[] {-9223372036854774962L})); + map.put("AGAGGGACAGAAC", new TLongArrayList(new long[] {-9223372036854774962L})); Map map2 = TiledAlignerUtil.getTiles(map, "CAGGGTTCTCTAGAGGGACAGAAC", 13, false); - assertEquals(true, map2.isEmpty()); + assertTrue(map2.isEmpty()); map.put("GAGGGACAGAACC", new TLongArrayList(new long[] {1825104, 36705710, 41958144, 48159016, 117254513, 143240681, 225228697, 228958655, 253180746, 255001755, 286295391, 292020183, 344813194, 361288452, 403803121, 430679205, 451613441, 503168192, 521133451, 599557575, 606474596, 692981379, 703505814, 755043781, 832600275, 836707885, 843425380, 865606218, 877156033, 1036083851, 1055349167, 1100618024, 1129341187, 1132758616, 1135775311, 1146126997, 1150385505, 1169401419, 1196981567, 1211992123, 1237889631, 1344861702, 1386838351, 1424733943, 1429116967, 1440327766, 1526738176, 1537195229, 1543726675, 1621295813, 1640494112, 1692228394, 1695132429, 1710090332, 1727385550, 1744718298, 1793225499, 1795801243, 1822887708, 1900339542, 1913656852, 1941627856, 1954494293, 1956599590})); map2 = TiledAlignerUtil.getTiles(map, "CAGGGTTCTCTAGAGGGACAGAACC", 13, false); - assertEquals(true, map2.isEmpty()); // need more than 1.. + assertTrue(map2.isEmpty()); // need more than 1.. map.put("AGGGACAGAACCT", new TLongArrayList(new long[] {75765291, 85286073, 99249849, 230921629, 255001756, 264122761, 368490478, 388000734, 403538580, 468448693, 494357716, 505596948, 544747435, 591289370, 732793121, 743716627, 763370268, 788228702, 862334305, 865606219, 935803044, 989010175, 1097828406, 1146126998, 1173463496, 1211992124, 1279712518, 1326781769, 1330844343, 1429116968, 1446207034, 1451115574, 1543726676, 1727385551, 1744718299, 1795524616, 1827714195, 1933885487, 1977994403, 1997345602})); map2 = TiledAlignerUtil.getTiles(map, "CAGGGTTCTCTAGAGGGACAGAACCT", 13, false); - assertEquals(true, map2.isEmpty()); // need more than 1.. + assertTrue(map2.isEmpty()); // need more than 1.. map.put("GGGACAGAACCTA", new TLongArrayList(new long[] {14757191, 75765292, 204680550, 255001757, 259085515, 377889668, 384618430, 720440933, 732793122, 743716628, 788228703, 964181144, 989010176, 1146126999, 1211992125, 1326781770, 1429116969, 1679131147, 1727385552, 1744718300, 1783602053, 1795524617, 1798016615, 1808224193, 1827714196, 1933885488})); map.put("GGACAGAACCTAT", new TLongArrayList(new long[] {75765293, 252352569, 384618431, 493447509, 576429637, 1078140728, 1126178594, 1199390115, 1211992126, 1216880641, 1783602054, 1824857273})); map.put("GACAGAACCTATA", new TLongArrayList(new long[] {240085378, 713147939, 721664141, 760998246, 766699927, 819625291, 961405967, 979085294, 1153951375, 1193858084, 1199390116, 1211992127, 1323168911, 1372989770, 1418825357, 1693540188, 1702097469, 1824857274})); @@ -1141,7 +1137,7 @@ public void getBestStartPosition2() { map.put("AGAACCTATAGGA", new TLongArrayList(new long[] {32324743, 107551223, 187752890, 188907362, 197226045, 197605953, 240085381, 245747958, 292596128, 326448736, 332014839, 542995739, 555352939, 588358487, 715428085, 746319279, 788672531, 1089051613, 1119633563, 1148473115, 1187082805, 1211992130, 1252988464, 1419363503, 1443115880, 1466283432, 1778730458, 1863331754, 1952380292, 1964317545})); map.put("GAACCTATAGGAC", new TLongArrayList(new long[] {112137907, 145978911, 147520644, 187752891, 188907363, 197484253, 326448737, 348818128, 391391905, 542995740, 715428086, 784531043, 1211992131, 1419363504, 1482911620, 1542594794, 1837993831, 1871553322})); map2 = TiledAlignerUtil.getTiles(map, "CAGGGTTCTCTAGAGGGACAGAACCTATAGGAC", 13, false); - assertEquals(false, map2.isEmpty()); // need more than 1.. + assertFalse(map2.isEmpty()); // need more than 1.. List keys = new ArrayList<>(map2.keySet()); keys.sort(null); for (int i = keys.size() - 1; i >= 0 ; i--) { @@ -1150,7 +1146,7 @@ public void getBestStartPosition2() { /* * we don't take common tiles into account at beginning of sequence, but we do at the end... */ - assertArrayEquals(new long[] {13195351525435l}, map2.get(NumberUtils.pack2IntsInto1(9, 0)).toArray()); + assertArrayEquals(new long[] {13195351525435L}, map2.get(NumberUtils.pack2IntsInto1(9, 0)).toArray()); } @Test @@ -1168,16 +1164,16 @@ public void getBestStartPosition() { /* * add some more tiles and positions */ - map.put("AACTAATGGGCAA", new TLongArrayList(new long[] {20330815,47196097,66119746,69883256,72894698,75870471,83188468,94601743,95226113,96264855,100886308,102605048,109086571,110401685,115904631,147329066,157266096,163961465,170540408,173000738,179665557,181853437,199604066,207763895,213806980,220606362,222321205,227663677,247297496,254649471,269911083,283944286,290534935,298722012,299362024,299837961,301371166,303141373,312986280,315369800,322122628,333833763,348911202,351804835,354476473,366991826,369814365,379579120,388806218l})); + map.put("AACTAATGGGCAA", new TLongArrayList(new long[] {20330815,47196097,66119746,69883256,72894698,75870471,83188468,94601743,95226113,96264855,100886308,102605048,109086571,110401685,115904631,147329066,157266096,163961465,170540408,173000738,179665557,181853437,199604066,207763895,213806980,220606362,222321205,227663677,247297496,254649471,269911083,283944286,290534935,298722012,299362024,299837961,301371166,303141373,312986280,315369800,322122628,333833763,348911202,351804835,354476473,366991826,369814365,379579120, 388806218L})); map.put("ACTAATGGGCAAA", new TLongArrayList(new long[] {20330816,35353898,47196098,66119747,69883257,72894699,75870472,94601744,95226114,96264856,102605049,109086572,110401686,111454523,115904632,147329067,157266097,163961466,170540409,173000739,179665558,181853438,199604067,207763896,213806981,220606363,227663678,242334784,247297497,254649472,261653812,268778753,269911084,283944287,290534936,298722013,299362025,299837962,301371167,303141374,312986281,315369801,320779602,322122629,333833764,348911203,351804836,354476474,366991827,369814366,379579121,388806219,397192667,398431831})); - map.put("CTAATGGGCAAAA", new TLongArrayList(new long[] {-9223372036854775303l})); - map.put("TAATGGGCAAAAT", new TLongArrayList(new long[] {-9223372036854775303l})); + map.put("CTAATGGGCAAAA", new TLongArrayList(new long[] {-9223372036854775303L})); + map.put("TAATGGGCAAAAT", new TLongArrayList(new long[] {-9223372036854775303L})); map.put("AATGGGCAAAATA", new TLongArrayList(new long[] {6001666,9891720,15975021,17613674,20330819,35942864,47196101,50476886,54815924,57387126,59045581,68575525,69883260,70984251,72894702,75403673,75870475,85607205,85976126,86539739,89537198,91578583,91992886,93150053,95161863,95226117,96264859,97499155,101287596,102605052,105376154,105593257,109086575,110401689,114139268,115904635,119209474,119277234,120006272,120118592,145070989,147329070,147749993,157266100,157633506,158503963,158836590,163961469,166467351,170540412,173000742,174474176,175398594,178305230,179665561,180802407,181853441,187090972,188469297,190299440,194192697,197538236,199604070,199613982,205084351,207763899,209265964,213806984,219819805,220606366,222107973,227663681,232501536,238801255,241126653,242334787,244566513,247297500,254100094,254649475,259306220,264173032,264658115,264709085,267216050,268541725,269911087,270163861,271547486,275153392,280317288,281266552,281599890,288003788,290534939,298722016,299591953,300915175,301371170,303141377,306842423,306891831,308756037,309347010,312986284,313101032,315369804,320322012,322065613,322122632,326946156,333833767,336172452,345696914,348911206,351804839,351817009,354476477,354557748,360216598,360487249,362477603,365424105,366991830,369814369,373958956,374970100,379536749,379579124,379651069,388273349})); - map.put("ATGGGCAAAATAA", new TLongArrayList(new long[] {-9223372036854775303l})); - map.put("TGGGCAAAATAAC", new TLongArrayList(new long[] {-9223372036854775303l})); - map.put("GGGCAAAATAACC", new TLongArrayList(new long[] {-9223372036854775303l})); - map.put("GGCAAAATAACCA", new TLongArrayList(new long[] {-9223372036854775303l})); - map.put("GCAAAATAACCAG", new TLongArrayList(new long[] {-9223372036854775303l})); + map.put("ATGGGCAAAATAA", new TLongArrayList(new long[] {-9223372036854775303L})); + map.put("TGGGCAAAATAAC", new TLongArrayList(new long[] {-9223372036854775303L})); + map.put("GGGCAAAATAACC", new TLongArrayList(new long[] {-9223372036854775303L})); + map.put("GGCAAAATAACCA", new TLongArrayList(new long[] {-9223372036854775303L})); + map.put("GCAAAATAACCAG", new TLongArrayList(new long[] {-9223372036854775303L})); map2 = TiledAlignerUtil.getTiles(map, "ATTAACTAATGGGCAAAATAACCAG", 13, false); @@ -1225,9 +1221,9 @@ public void getBestStartPosition() { TLongList bestStartPositions = taRec.getStartPositionsForCount(maxTileCounts); assertEquals(6, bestStartPositions.size()); - assertEquals(true, bestStartPositions.contains(269911080)); - assertEquals(true, bestStartPositions.contains(379579117)); - assertEquals(true, bestStartPositions.contains(163961462)); + assertTrue(bestStartPositions.contains(269911080)); + assertTrue(bestStartPositions.contains(379579117)); + assertTrue(bestStartPositions.contains(163961462)); } @Test @@ -1313,7 +1309,7 @@ public void getBlocksRealLife2() { @Test public void getBufferedCP() { - long l = 4611694817313131386l; + long l = 4611694817313131386L; int matches = 34 + 12; int seqLength = 68; ChrPosition cp = TiledAlignerUtil.getBufferedChrPosition(l, seqLength, matches, pcpm, 20); @@ -1427,10 +1423,10 @@ public void getChrPositionWithReference() { // PositionChrPositionMap headerMap = new PositionChrPositionMap(); // headerMap.loadMap(PositionChrPositionMap.grch37Positions); ChrPosition cp = PositionChrPositionMap.getChrPositionFromLongPosition(1670562876, pcpm); - boolean forwardStrand = "F".equals(((ChrPositionName)cp).getName()); + boolean forwardStrand = "F".equals(cp.getName()); String ref = ("tccacatgatTCCTGGCCTGGGCGGATGCACTGGCAGTGGCAATGCTGGCCGTCTGGCAACTTTTctggggggag").toUpperCase(); Optional optionalCP = TiledAlignerUtil.getChrPositionWithReference(cp.getChromosome(), cp.getStartPosition(), forwardStrand ? seq : SequenceUtil.reverseComplement(seq), ref); - assertEquals(true, optionalCP.isPresent()); + assertTrue(optionalCP.isPresent()); assertEquals("chr9", optionalCP.get().getChromosome()); assertEquals(131403163, optionalCP.get().getStartPosition()); } @@ -1441,7 +1437,7 @@ public void getChrPositionWithReference2() { boolean forwardStrand = true; String ref = "TGTATTTTGAAAACTACACACACACACACACACACACACACACACACACACACACACACACACACCATAC"; Optional optionalCP = TiledAlignerUtil.getChrPositionWithReference("chr2", 3240987, forwardStrand ? seq : SequenceUtil.reverseComplement(seq), ref); - assertEquals(true, optionalCP.isPresent()); + assertTrue(optionalCP.isPresent()); assertEquals("chr2", optionalCP.get().getChromosome()); assertEquals(3240987, optionalCP.get().getStartPosition()); } @@ -1455,7 +1451,7 @@ public void getChrPositionWithReference3() { boolean forwardStrand = true; String ref = "GCCTTTAGAAATAAGAGGGCCATATGA"; Optional optionalCP = TiledAlignerUtil.getChrPositionWithReference("chr10", 92655635, forwardStrand ? seq : SequenceUtil.reverseComplement(seq), ref); - assertEquals(true, optionalCP.isPresent()); + assertTrue(optionalCP.isPresent()); assertEquals("chr10", optionalCP.get().getChromosome()); assertEquals(92655635, optionalCP.get().getStartPosition()); } @@ -1500,13 +1496,13 @@ public void getSWDiffs_chr3_52245566IntelligentSW() { @Test public void stipStrandFromLong() { long l = 1; - assertEquals(false, NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); + assertFalse(NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); l = NumberUtils.setBit(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT); - assertEquals(true, NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); - l = 4611686020646594429l; - assertEquals(true, NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); + assertTrue(NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); + l = 4611686020646594429L; + assertTrue(NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); l = NumberUtils.stripBitFromLong(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT); - assertEquals(false, NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); + assertFalse(NumberUtils.isBitSet(l, TiledAlignerUtil.REVERSE_COMPLEMENT_BIT)); } } diff --git a/qmule/src/org/qcmg/qmule/ISizeCluster.java b/qmule/src/org/qcmg/qmule/ISizeCluster.java index ce302bf64..35b82d39b 100644 --- a/qmule/src/org/qcmg/qmule/ISizeCluster.java +++ b/qmule/src/org/qcmg/qmule/ISizeCluster.java @@ -133,14 +133,14 @@ public static int[] getLowerAndUpperBounds(AtomicIntegerArray aia, String rg) { */ int ub = drawTheLineUpperBound; - double percent = getAreaUndeCurve(aia, lb, ub); + double percent = getAreaUnderCurve(aia, lb, ub); if (percent < MIN_PERCENTAGE) { /* * lets try the draw the line technique */ lb = drawLineMethod[0]; ub = drawLineMethod[1]; - percent = getAreaUndeCurve(aia, lb, ub); + percent = getAreaUnderCurve(aia, lb, ub); } System.out.println("LB: " + lb + ", UB: " + ub + ", percent: " + percent); @@ -158,7 +158,7 @@ public static int drawTheLineMethod(AtomicIntegerArray aia, int lowerBound, doub /* * check that we have met the percentage requirement, assuming that percentage is set */ - if (percentage == 0.0 || getAreaUndeCurve(aia, lowerBound, i) >= percentage) { + if (percentage == 0.0 || getAreaUnderCurve(aia, lowerBound, i) >= percentage) { return i; } } @@ -367,12 +367,9 @@ public static int[] multiplePointDifferenceMethod(AtomicIntegerArray aia, String /* * lets see if this gives us a percentage value greater that the min */ - if (getAreaUndeCurve(aia, lowerBound, upperBound) >= MIN_PERCENTAGE) { + if (getAreaUnderCurve(aia, lowerBound, upperBound) >= MIN_PERCENTAGE) { System.out.println("diff at position " + (i + modal + (windowSize / 2)) + ": " + diff + " is more than " + stdDevMultiplier + "*stdDevs from the mean! mean: " + mean + ", stdDev: " + stdDev); break; - - } else { - // keep looking } } @@ -393,12 +390,11 @@ public static int[] singlePointDifferenceMethod(AtomicIntegerArray aia, String r * get starting point */ int prevCount = aia.get(modal); - + /* * look for difference between previous position - flag if count drops by more than a certain percentage (maybe 30%) * Start at modal and work down both sides of mountain */ - prevCount = aia.get(modal); int lowerBound = 0; int upperBound = Integer.MAX_VALUE; double [] diffValues = new double[modal]; @@ -406,7 +402,7 @@ public static int[] singlePointDifferenceMethod(AtomicIntegerArray aia, String r int thisCount = aia.get(iSize); /* - * get difference between thisCount and prevCount as a percentage + * get the difference between thisCount and prevCount as a percentage */ double diff = (double) thisCount / prevCount; diffValues[iSize] = diff; @@ -454,14 +450,14 @@ public static int[] singlePointDifferenceMethod(AtomicIntegerArray aia, String r */ /* - * is the count of this iSize less that that of the lower bound? + * is the count of this iSize less than that of the lower bound? */ if (thisCount <= aia.get(lowerBound)) { /* * check to see if percentage is good */ - double perc = getAreaUndeCurve(aia, lowerBound, iSize); + double perc = getAreaUnderCurve(aia, lowerBound, iSize); if (perc >= 99.75) { upperBound = iSize; @@ -493,37 +489,69 @@ public static int[] drawLineMethod(AtomicIntegerArray aia) { int tempUpperBound = drawTheLineMethod(aia, i, 0d); candidates.add(new int[]{i, tempUpperBound}); } - int [] bounds = getOptimalBounds(candidates, aia); - return bounds; - } - - - public static int[] getOptimalBounds(List candidates, AtomicIntegerArray aia) { - double maxValue = 0; - int[] maxArray = null; - - for (int[] iArray : candidates) { - double area = getAreaUndeCurve(aia, iArray[0], iArray[1]); - - double combinedScore = (2000 * area) - ( (iArray[1] - iArray[0])); - if (area > 99.0 && combinedScore > maxValue) { - maxValue = combinedScore; - maxArray = iArray; - } - } - - System.out.println("Winning bounds: " + maxArray[0] + " - " + maxArray[1]); - return maxArray; + return getOptimalBounds(candidates, aia); } + + + public static int[] getOptimalBounds(List candidates, AtomicIntegerArray aia) { + // guard clauses + if (candidates == null || candidates.isEmpty() || aia == null || aia.length() == 0) { + return null; + } + + // constants to make intent explicit + final double AREA_WEIGHT = 2000.0; + final double MIN_AREA_PERCENT = 99.0; + + int[] bestBounds = null; + double bestScore = Double.NEGATIVE_INFINITY; + + int[] bestFallbackBounds = null; // used if no candidate reaches the min area threshold + double bestFallbackArea = Double.NEGATIVE_INFINITY; + double bestFallbackScore = Double.NEGATIVE_INFINITY; + + for (int[] bounds : candidates) { + if (bounds == null || bounds.length < 2) continue; + final int start = bounds[0]; + final int end = bounds[1]; + + final double area = getAreaUnderCurve(aia, start, end); + final double score = (AREA_WEIGHT * area) - (end - start); + + // First preference: area meets threshold, pick highest score + if (area > MIN_AREA_PERCENT) { + if (score > bestScore) { + bestScore = score; + bestBounds = bounds; + } + } else { + // Fallback: track the best by area, then score as tie-breaker + if (area > bestFallbackArea || (area == bestFallbackArea && score > bestFallbackScore)) { + bestFallbackArea = area; + bestFallbackScore = score; + bestFallbackBounds = bounds; + } + } + } + + if (bestBounds == null) { + bestBounds = bestFallbackBounds; + } + if (bestBounds != null) { + System.out.println("Winning bounds: " + bestBounds[0] + " - " + bestBounds[1]); + } + return bestBounds; + } - public static double getAreaUndeCurve(AtomicIntegerArray aia, int start, int end) { + public static double getAreaUnderCurve(AtomicIntegerArray countsByIndex, int start, int end) { int withinISizeTally = 0; int totalTally = 0; - for (int i = 1 ; i < aia.length() ; i++) { + for (int i = 1 ; i < countsByIndex.length() ; i++) { + final int binCount = countsByIndex.get(i); if (i >= start && i <= end) { - withinISizeTally += aia.get(i); + withinISizeTally += binCount; } - totalTally += aia.get(i); + totalTally += binCount; } return ((100d * withinISizeTally) / totalTally); } diff --git a/qmule/test/org/qcmg/qmule/ISizeClusterTest.java b/qmule/test/org/qcmg/qmule/ISizeClusterTest.java index e6eacd44e..441b67ea7 100644 --- a/qmule/test/org/qcmg/qmule/ISizeClusterTest.java +++ b/qmule/test/org/qcmg/qmule/ISizeClusterTest.java @@ -1,15 +1,54 @@ package org.qcmg.qmule; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; - +import java.util.Arrays; +import java.util.List; import java.util.concurrent.atomic.AtomicIntegerArray; import org.junit.Test; -import org.qcmg.qmule.ISizeCluster; + +import static org.junit.Assert.*; public class ISizeClusterTest { + + @Test + public void getOptimalBounds_picksBestCandidateWithAreaAboveThreshold() { + // aia indices: 0..9 (index 0 ignored by getAreaUnderCurve) + // Put almost all mass inside the [2,5] window to exceed 99% area. + int[] counts = new int[] {0, 0, 250, 250, 250, 250, 1, 1, 1, 1}; + AtomicIntegerArray aia = new AtomicIntegerArray(counts); + + // Candidates: + // [2,5] covers 1000/1004 ~ 99.60% area, width 3 -> high combined score + // [2,4] covers 750/1004 ~ 74.70% area -> below 99% threshold (should be ignored) + // [3,5] covers 750/1004 ~ 74.70% area -> below 99% threshold (should be ignored) + // [2,6] covers 1001/1004 ~ 99.70% area, but wider than [2,5] -> lower score + List candidates = Arrays.asList( + new int[] {2, 5}, + new int[] {2, 4}, + new int[] {3, 5}, + new int[] {2, 6} + ); + + int[] result = ISizeCluster.getOptimalBounds(candidates, aia); + assertArrayEquals(new int[] {2, 6}, result); + } + + @Test + public void getOptimalBounds_returnsNullWhenNoCandidatePassesAreaThreshold() { + // Spread counts so no candidate reaches >99% area + int[] counts = new int[] {0, 5, 5, 5, 5, 5, 5, 5, 5, 5}; + AtomicIntegerArray aia = new AtomicIntegerArray(counts); + + List candidates = Arrays.asList( + new int[] {2, 3}, + new int[] {4, 6}, + new int[] {2, 8} + ); + + int[] result = ISizeCluster.getOptimalBounds(candidates, aia); + assertArrayEquals(new int[] {2, 8}, result); + } @Test @@ -28,18 +67,9 @@ public void getModal() { aia.set( 3, 20); assertEquals(3, ISizeCluster.getModalValue(aia)); } - public static class EyeBalledISize { - public final String rg; - public final int lb; - public final int ub; - public final int[] numbers; - public EyeBalledISize(String rg, int lb, int ub, int[] numbers){ - this.rg = rg; - this.lb = lb; - this.ub = ub; - this.numbers = numbers; - } - } + + public record EyeBalledISize(String rg, int lb, int ub, int[] numbers) { + } @Test public void getArrayClosestToMagicNumber() { diff --git a/qpicard/src/org/qcmg/picard/SAMFileReaderFactory.java b/qpicard/src/org/qcmg/picard/SAMFileReaderFactory.java index 4683bdd69..7e393dbc9 100644 --- a/qpicard/src/org/qcmg/picard/SAMFileReaderFactory.java +++ b/qpicard/src/org/qcmg/picard/SAMFileReaderFactory.java @@ -23,6 +23,7 @@ import htsjdk.samtools.seekablestream.SeekableStreamFactory; import htsjdk.samtools.ValidationStringency; +import org.qcmg.common.log.QLevel; import org.qcmg.common.log.QLogger; import org.qcmg.common.log.QLoggerFactory; import org.qcmg.protocol.s3.S3AwareURLStreamHandlerFactory; @@ -52,12 +53,16 @@ public static SamReader createSAMFileReaderAsStream(final File bamFile, final Fi final ValidationStringency stringency, final Option...options ) throws IOException { if (null == bamFile) throw new IllegalArgumentException("Please provide a bam file"); + + boolean debugLevelEnabled = logger.isLevelEnabled(QLevel.DEBUG); SamReaderFactory factory = ( options != null && options.length > 0) ? SamReaderFactory.makeDefault().enable(options) : SamReaderFactory.makeDefault(); factory.validationStringency(null != stringency ? stringency : DefaultStringency); - logger.debug("Setting Validation Stringency on SamReader to: " + factory.validationStringency().name()); + if (debugLevelEnabled) { + logger.debug("Setting Validation Stringency on SamReader to: " + factory.validationStringency().name()); + } //check to see if we have a BAM/CRAM or SAM file, which will determine which input stream is created SamInputResource resources; @@ -71,12 +76,16 @@ public static SamReader createSAMFileReaderAsStream(final File bamFile, final Fi if (null != index) { SeekableStream indexStream = SeekableStreamFactory.getInstance().getStreamFor(index.getAbsolutePath()); resources = resources.index(indexStream); - logger.info("setup index: " + index.getAbsolutePath()); + if (debugLevelEnabled) { + logger.debug("setup index: " + index.getAbsolutePath()); + } } //set reference file for cram. default reference set by java option "-Dsamjdk.REFERENCE_FASTA" if (reference != null && reference.exists()) { - factory.referenceSequence(reference); - logger.info("setup reference: " + reference.getAbsolutePath()); + factory.referenceSequence(reference); + if (debugLevelEnabled) { + logger.debug("setup reference: " + reference.getAbsolutePath()); + } } } else { InputStream is = new FileInputStream(bamFile);