-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple paths per variant #17
Comments
Increasing k ≥ 15 solves the second case, but not the first. |
I wonder if this is caused by false positives? You might try calculating |
If it's a CountMinSketch FP, this should be handled by loading reads with interesting k-mers into a separate node graph. |
Reviving this dormant thread. As far as I've been able to tell this issue has been caused primarily by sequencing errors. khmer has plenty of scripts and functions to deal with this, but we for a while we couldn't come up with the secret QC sauce. Trimming or error correction was never feasible for the raw data. Variable-coverage trimming had weird and unintended results on the boring-reads-dumped data. Digital normalization would provide at best a marginal improvement with a risk of loss of sensitivity (lower risk but also lower benefit by raising normalization threshold). So alas, the last few months I've devoted time to, among other things, implementing a greedy assembly algorithm from scratch. In implementing the assembler, we came up with an approach for partitioning the reads based on shared interesting k-mers. This turned out to be much more useful than khmer's partitioning code, and led to a great discovery: running abundance trimming (not variable coverage trimming!) on each individual partition, followed by greedy assembly, produced reliable contigs! This morning, I was curious and revisited So it looks like the breakthrough, ridiculously simple in retrospect, is to partition interesting reads by shared interesting k-mers, and then do abundance trimming and assembly on individual partitions. Assembly details may or may not make much of a difference. |
Currently
kevlar find
reports:In an ideal world, each variant would be associated with a single contig/path that is long enough to determine its position in the genome uniquely. Practically, that's not happening.
Consider the following example, newly introduced in #16. The case has a 5bp deletion relative to the controls. The
kevlar find
script found 11 "interesting" k-mers (k=13) in 16 reads, and these 11 k-mers pulled out 4 unique linear paths from the assembly graph.A couple of things to note.
kevlar find
shows only two linear paths).This second bullet point is what perplexes me now. All along when I've observed this in the human data, I assumed it was the result of sequencing errors introducing structure in the assembly graph and truncating linear paths. But for this example, I simulated reads with no errors or mutations. Why do either of these cases occur?
The text was updated successfully, but these errors were encountered: