This post is related to, but different (a continuation) from my earlier post at https://www.biostars.org/p/268060/ seeking help with running the genome assembler software - ABySS. I got my ABySS runs going. 

But in order to assess the optimal k-mer, I was trying values 21-97 (increments of 2).

Related to this attempt, at k-mer value>64 (i.e. 65), the STDERR log terminated with the line - "ABYSS: ../Common/Kmer.h:48: static void Kmer::setLength(unsigned int): Assertion `length <= 64' failed."

Obviously my university's compute cluster has ABySS compiled and configured to allow k-mers <= 64.

Some context for my questions below - I have 2*150 PE Illumina HiSeq400 reads from fungal spore DNA (haploid genome). Read length trimming has resulted in size distribution between 41 (min) and 150 (max).

1a. How do I execute ABySS with k-mer value > 64, but WITHOUT re-compiling? Is that possible? I ask in the context of what is written at https://insidedna.me/tool_page_assets/pdf_manual/abyss.pdf, which reads:

>     ./configure --enable-maxk=96
> 
> "The default maximum k-mer size is 64 and may be decreased to reduce
> memory usage or increased at compile time. This value must be a
> multiple of 32 (i.e. 32, 64, 96, 128, etc):"

1b. If running k-mer > 64 is NOT possible without recompiling, is there a work-around that allows re-setting local variable(s) on just my compute cluster account?

2. Is there a theoretical / practical limit on k-mer value > default 64? I know SPAdes, for example, permits as high as 127. What is it for ABySS? Is it 128?

3. Is checking k-mer value > 64 **necessary**? Which is a different question from whether it is **possible**?

Thank you!



Hi Anand,

Glad to hear you were able to get some assemblies running!

To answer your questions:

* Unfortunately, there is no way to run an assembly with k-mer size > 64 without re-compiling the software.
* There is no upper bound for `--enable-maxk`.  However: (i) increasing `--enable-maxk` increases the memory requirements of ABySS, and (ii) you will have to adjust some MPI settings for large k-mer sizes, as described here: https://github.com/bcgsc/abyss/wiki/ABySS-Users-FAQ#2-my-abyss-assembly-jobs-hang-when-i-run-them-with-high-k-values-eg-k250
* Yes, it is very likely that you will need to use k-mer sizes > 64 in order to achieve the best possible assembly of your data

If you are uncomfortable with compiling software from source, you can perhaps get your IT team to do it for you (if you have an IT team).  That said, knowing how to compile software from source is a very useful skill in the bioinformatics domain.  If you are interested in learning, here is an introductory tutorial that may be helpful: http://www.thegeekstuff.com/2012/06/install-from-source/