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

Method hasValidPath

src/rnabloom/util/GraphUtils.java:826–890  ·  view source on GitHub ↗
(BloomFilterDeBruijnGraph graph,
                                       Kmer left, 
                                       Kmer right, 
                                       BloomFilter bf, 
                                       int lowerBound, 
                                       int upperBound)

Source from the content-addressed store, hash-verified

824 }
825
826 public static boolean hasValidPath(BloomFilterDeBruijnGraph graph,
827 Kmer left,
828 Kmer right,
829 BloomFilter bf,
830 int lowerBound,
831 int upperBound) {
832
833 int k = graph.getK();
834 int numHash = graph.getMaxNumHash();
835
836 ArrayDeque<Kmer> frontier = new ArrayDeque<>();
837 frontier.addAll(left.getSuccessors(k, numHash, graph, bf));
838
839 HashSet<Kmer> kmersInFrontier = new HashSet<>();
840 ArrayDeque<Kmer> newFrontier;
841 for (int i=1; i<lowerBound; ++i) {
842 kmersInFrontier.clear();
843 newFrontier = new ArrayDeque<>();
844 for (Kmer kmer : frontier) {
845 for (Kmer s : kmer.getSuccessors(k, numHash, graph, bf)) {
846 if (!kmersInFrontier.contains(s)) {
847 newFrontier.add(s);
848 kmersInFrontier.add(s);
849 }
850 }
851 }
852
853 if (newFrontier.isEmpty()) {
854 return false;
855 }
856
857 frontier = newFrontier;
858 }
859
860 for (int i=lowerBound; i<=upperBound; ++i) {
861 kmersInFrontier.clear();
862 newFrontier = new ArrayDeque<>();
863 for (Kmer kmer : frontier) {
864 if (kmer.equals(right)) {
865 return true;
866 }
867 newFrontier.add(kmer);
868 for (Kmer s : kmer.getSuccessors(k, numHash, graph, bf)) {
869 if (!kmersInFrontier.contains(s)) {
870 newFrontier.add(s);
871 kmersInFrontier.add(s);
872 }
873 }
874 }
875
876 if (newFrontier.isEmpty()) {
877 return false;
878 }
879
880 frontier = newFrontier;
881 }
882
883 for (Kmer kmer : frontier) {

Callers

nothing calls this directly

Calls 6

getMaxNumHashMethod · 0.80
containsMethod · 0.80
addMethod · 0.65
getKMethod · 0.45
getSuccessorsMethod · 0.45
equalsMethod · 0.45

Tested by

no test coverage detected