MCPcopy Create free account
hub / github.com/BirolLab/RNA-Bloom / hasDepthRight

Method hasDepthRight

src/rnabloom/graph/Kmer.java:407–445  ·  view source on GitHub ↗
(int k, int numHash, BloomFilterDeBruijnGraph graph, int depth)

Source from the content-addressed store, hash-verified

405 }
406
407 public boolean hasDepthRight(int k, int numHash, BloomFilterDeBruijnGraph graph, int depth) {
408 ArrayDeque<SuccessorsNTHashIterator> stack = new ArrayDeque<>(depth);
409 SuccessorsNTHashIterator itr = new SuccessorsNTHashIterator(k, numHash);
410 itr.start(fHashVal, bytes[0]);
411 stack.add(itr);
412
413 byte[] extension = new byte[depth];
414 int extensionLength = 1;
415 while (extensionLength > 0) {
416 if (extensionLength >= depth) {
417 return true;
418 }
419
420 itr = stack.getLast();
421
422 if (itr.hasNext()) {
423 itr.next();
424 extension[extensionLength-1] = itr.currentChar();
425
426 SuccessorsNTHashIterator nextItr = new SuccessorsNTHashIterator(k, numHash);
427
428 if (extensionLength < k) {
429 nextItr.start(itr.hVals[0], bytes[extensionLength]);
430 }
431 else {
432 nextItr.start(itr.hVals[0], extension[extensionLength-k]);
433 }
434
435 stack.addLast(nextItr);
436 ++extensionLength;
437 }
438 else {
439 stack.pollLast();
440 --extensionLength;
441 }
442 }
443
444 return false;
445 }
446
447 public boolean hasDepthLeft(int k, int numHash, BloomFilterDeBruijnGraph graph, int depth) {
448 ArrayDeque<PredecessorsNTHashIterator> stack = new ArrayDeque<>(depth);

Callers 3

naiveExtendRightMethod · 0.95
extendRightMethod · 0.95

Calls 5

startMethod · 0.95
hasNextMethod · 0.95
nextMethod · 0.95
currentCharMethod · 0.95
addMethod · 0.65

Tested by

no test coverage detected