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

Method greedyExtend

src/rnabloom/util/GraphUtils.java:4695–4744  ·  view source on GitHub ↗
(Kmer seed, BloomFilterDeBruijnGraph graph, int lookahead)

Source from the content-addressed store, hash-verified

4693 }
4694
4695 public static ArrayList<Kmer> greedyExtend(Kmer seed, BloomFilterDeBruijnGraph graph, int lookahead) {
4696 /**@TODO store smallest strand kmers for non-strand specific sequences */
4697
4698 HashSet<String> pathKmerStr = new HashSet<>(1000);
4699 pathKmerStr.add(seed.toString());
4700
4701 ArrayList<Kmer> rightPath = new ArrayList<>(1000);
4702
4703 /* extend on right side */
4704 Kmer best = seed;
4705 while (true) {
4706 best = greedyExtendRightOnce(graph, best, lookahead);
4707 if (best != null) {
4708 String seq = best.toString();
4709 if (pathKmerStr.contains(seq)) {
4710 break;
4711 }
4712 pathKmerStr.add(seq);
4713 rightPath.add(best);
4714 }
4715 else {
4716 break;
4717 }
4718 }
4719
4720 ArrayList<Kmer> leftPath = new ArrayList<>(100);
4721
4722 /* extend on left side */
4723 best = seed;
4724 while (true) {
4725 best = greedyExtendLeftOnce(graph, best, lookahead);
4726 if (best != null) {
4727 String seq = best.toString();
4728 if (pathKmerStr.contains(seq)) {
4729 break;
4730 }
4731 pathKmerStr.add(seq);
4732 leftPath.add(best);
4733 }
4734 else {
4735 break;
4736 }
4737 }
4738
4739 Collections.reverse(leftPath);
4740 leftPath.add(seed);
4741 leftPath.addAll(rightPath);
4742
4743 return leftPath;
4744 }
4745
4746 public static Kmer findMaxCoverageWindowKmer(ArrayList<Kmer> path, BloomFilterDeBruijnGraph graph, int windowSize) {
4747 int pathLen = path.size();

Callers 1

findBackbonePathMethod · 0.95

Calls 6

greedyExtendRightOnceMethod · 0.95
toStringMethod · 0.95
greedyExtendLeftOnceMethod · 0.95
containsMethod · 0.80
addMethod · 0.65
toStringMethod · 0.45

Tested by

no test coverage detected