Comments (7)
Hi Michael,
Actually the reason why you'd want to do a BFS in such a case, is because doing a DFS might get you to traverse the whole graph due to repeated kmers. BFS enables to control the depth of traversal, related to genomic proximity. I.e. BFS with depth at most 1000 guarantees that you will find all paths of length at most 1000. DFS over at most, say 100,000 nodes, might get stuck following a repeated kmer and end up at a completely different location in your genome. Does that make sense?
Rayan
from gatb-core.
Hi Rayan,
Thanks for the quick response.
In my current example I do want to traverse the entire graph to ensure I have found every possible way of getting from my start kmer to my end kmer. Additionally, I don't expect these dBGs to be very large, they will most likely be built from sequences that should not span more than ~1000bp (in many cases will likely only be in the order of 50bp).
Another reason we were leaning towards DFS was it's ability to detect cycles.
Michael
from gatb-core.
I see. Actually, I cannot find an example of DFS in our code, only BFS. It could be easier to just fix your current DFS code, can you paste the part regarding cycle detection?
from gatb-core.
Found some (old) code that does a simple DFS using recursion:
from gatb-core.
Thanks Rayan - I really appreciate you taking the time.
I think I may have fixed my implementation. Will do some more rigorous testing on some corner cases tomorrow. If not, I will provide some code.
from gatb-core.
sure, just let us know
from gatb-core.
Yes, it seems to be working now. Apologies for taking up your time. And thank you again for your assistance.
from gatb-core.
Related Issues (20)
- Setting install prefix HOT 6
- missing parts of HDF5 HOT 3
- Could not find ZLIB HOT 2
- Segmentation fault when creating de Bruijn Graph HOT 1
- please create new release HOT 2
- Memory reservation in dbgh5 HOT 4
- compilation error with new version of AppleClang HOT 6
- problem with <boost/graph/adjacency_list.hpp> HOT 3
- printf messes with type of size_t HOT 1
- segmentation fault with the test code HOT 1
- Kmer size clarification HOT 2
- A different parallelisation granularity in GATB HOT 2
- Please tag release to allow compilation of minia HOT 1
- Help Wanted HOT 1
- Reading BAM files HOT 4
- -DNONCANONICAL doesnt work on osx?
- How to use Model Direct? HOT 1
- Tutorial links for videos and pdf are not responding
- Support for aarch64 / M1 macs? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gatb-core.