Timeline for Counting k-mers
Current License: CC BY-SA 3.0
18 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Feb 5, 2015 at 19:32 | comment | added | user9206 | After discussing it with FUZxxl, it seems you can make the suffix array of chr2.fa in under 30 seconds using only 1.1GB of RAM. | |
Feb 5, 2015 at 9:19 | comment | added | user9206 | Let us continue this discussion in chat. | |
Feb 5, 2015 at 0:52 | comment | added | FUZxxl | @Lembik I actually only tried SA-IS and it took over two minutes, which is so much more than one minute that it didn't seem worth trying the others. | |
Feb 4, 2015 at 21:41 | comment | added | user9206 | @FUZxxl Which of the existing suffix array implementations have you managed to try? I couldn't get some of them to run at all. | |
Feb 4, 2015 at 13:46 | comment | added | FUZxxl | @Lembik That's weird. Maybe I made a mistake copying the code? | |
Feb 4, 2015 at 13:40 | comment | added | user9206 | @FUZxxl That's interesting. I found algo2.iti.kit.edu/sanders/papers/KulSan06a.pdf and also code.google.com/p/libdivsufsort/wiki/SACA_Benchmarks . | |
Feb 4, 2015 at 11:43 | comment | added | FUZxxl | @Lembik The algorithm I tried (SA-IS, dubbed the fastest one for this purpose) still takes about two minutes to suffix-sort the entire array. I don't think it can be parallelized. | |
Feb 4, 2015 at 10:16 | comment | added | FUZxxl | @Lembik Indeed. It's just takes me a while to implement. Let me try… | |
Feb 4, 2015 at 10:08 | comment | added | user9206 | @FUZxxl You can compute the suffix array in linear time so this could be promising. Whether you can actually get it under 1 minute is an interesting question. Some papers online seem to say you can usefully use multi cores to speed up suffix array construction too. | |
Feb 3, 2015 at 23:21 | comment | added | FUZxxl | @Lembik My “improved” approach was to sort an array of suffixes of the input file lexicographically. Then for all k the equal k-mers are adjacent. The problem is that sorting like that takes quite a while, around 8 minutes on my machine. I was too lazy to devise a better sorting scheme. The advantage is, that after you have created that sorted array, you can generate the answer for each k rather quickly. If you want, you can even generate the answer for all k at once. | |
Feb 3, 2015 at 20:49 | comment | added | Keith Randall | @Lembik: Longest repeated substring can be done in linear time. But I don't think it is very helpful - there are really long repeated substrings in the sample input, thousands of symbols at least. | |
Feb 3, 2015 at 19:23 | comment | added | user9206 | How long do you think it takes to find the longest length of any repeated substring? I was thinking you automatically know all the answers for any k longer than that. | |
Feb 3, 2015 at 16:19 | comment | added | Keith Randall | @FUZxxl: fixed. | |
Feb 3, 2015 at 16:19 | history | edited | Keith Randall | CC BY-SA 3.0 |
Fix output format
|
Feb 3, 2015 at 11:32 | comment | added | FUZxxl | This is a cool solution otherwise. | |
Feb 3, 2015 at 10:37 | comment | added | FUZxxl | Please obey the output format; do not k. | |
Feb 3, 2015 at 6:11 | history | edited | Keith Randall | CC BY-SA 3.0 |
Add instructions to compile and run
|
Feb 3, 2015 at 6:05 | history | answered | Keith Randall | CC BY-SA 3.0 |