Hi Ben,
thanks for your helpful suggestions. I will try just as proposed .. :-)
best,
Sven
Hi all,
I am playing around "preparing" my data for shotgun assembly with abyss.
I have the following data, bird genome:
All data were produced as PE100 Hiseq runs.
LMP libs have been trimmed and rev-complemented with Illumina's nxtrim.
In a first attempt I wanted to merge all my libraries (separately) with konnector2.
I chose a few kmers ranging from 31 to 91 to get an idea of the best one. The size of the bloom filter was pretty small, ~2G which led to a relatively high FPR.
Now I restarted a few konnector2 jobs with a large bloom filter of 128G .. this seems to take ages on a pretty potent server ..
Now I have a few questions regarding konnector2 and its corresponding workflow:
even after reading the paper I am not really sure how to choose the "best" bloom filter size. Any rules of thumb?
when I merge all my libraries, how do I choose my assembly setup with abyss? I use the merged fasta files as se libs input for abyss. I use the "leftover" fastq files as intended (pe or mp libs). That's it? How is your strategy assembling such dataset?
Best,
Sven
Hi Sven,
Good questions.
Regarding your first question about long run times with Konnector2:
It is important that the Bloom filter FPR stays below 25%, or the graph search algorithm may run forever. FPR decreases linearly when increasing the Bloom filter size and FPR increases linearly with the number of distinct k-mers in your data set. Sorry, there is no easy way to choose the right Bloom filter size other than learning about Bloom filters and understanding the math (the Konnector2 Bloom filters use a single hash function). But as a quick guideline, I recall needing about 40GB for an 80X human dataset.
Konnector2 has a known issue where it will sometimes stall at low k values (typically values in the range of k=20..60). Unfortunately there is no fix for this at the moment, but it is something to be aware of. Run konnector with the verbose flag (i.e. -v) and you will be able see regular progress messages to verify that your jobs are proceeding successfully.
Regarding your second question, I recommend the following configuration:
Hi Ben,
thanks for your helpful suggestions. I will try just as proposed .. :-)
best,
Sven
Hi Sven, you're welcome.
A couple of things I forgot mention regarding konnector performance:
Decreasing the -B (max-branches) parameter can really speed things up. -B specifies the maximum search breadth before "giving up" and I often decrease from the default value of 350 to 100 to get more reasonable run times.
Make sure -F (max fragment length) is set correctly for your PET data. It limits the depth of the graph search and so having it set higher than necessary (default is 1000) can slow things down.
There is some additional computational overhead to using Konnector2's -E (outward extension) and -D (duplication sequence filtering) options. You also may wish to try without those options (i.e. Konnector1 mode).
Related the point above, we have done a lot more assembly testing with Konnector1 mode than with Konnector2 (-E/-D options). So I would say that Konnector1 mode is a 'safer' strategy. But if you want to live on the bleeding edge, feel free :-)
Sorry about the late reply.
Hi,
I have a couple followup questions:
Thanks so far sealer has been very fast!
Best,
Jennifer M Shelton
Hi Jennifer,
abyss-bloom. (See here for an abyss-bloom usage example)Log in to answer this question.