Skip to content
Ben Vandervalk edited this page Mar 25, 2014 · 18 revisions
  1. I am getting an error that says Kmer::setLength(unsigned int): Assertion `length <= 64' failed

    ABySS has a compile-time parameter for the maximum value of k. As of ABySS 1.3.7, the maximum k value is 64 by default. In order to do assemblies with higher k values you must compile ABySS from source and use the --enable-maxk option during the configure step, i.e.

$ ./configure --enable-maxk=128 $ make $ make install

   
   The value of ``--enable-maxk`` should be a multiple of 4.  ABySS needs to know the maximum value of k so that it can minimize the amount of memory it uses to represent the de Bruijn graph.  If memory usage is not a concern, you may set ``--enable-maxk`` as high as you like.

   Users sometimes encounter a problem where they have compiled ABySS with the appropriate --enable-maxk value and yet they still see the ``length <= 64`` error when they try to run assembly jobs.  This is usually because the ``PATH`` environment variable has not been set correctly in their cluster job script. ``abyss-pe`` is a Make that invokes a number of different ABySS binaries (e.g. 'ABYSS-P', 'abyss-scaffold'), and it will use whichever binaries it finds first on ``PATH``.  For example, consider the following script:

#!/bin/sh PATH=/home/joe/bin:$PATH /home/joe/abyss-1.3.7/maxk_96/bin/abyss-pe k=96 name=assembly in='read1.fastq read2.fastq'


    The user might expect the binaries they have compiled and installed under ``/home/joe/abyss-1.3.7/maxk_96/bin`` to be used for the assembly job.  However, if there is another set of ABySS binaries that have been compiled without the ``--enable-maxk=96`` option and installed to /home/joe/bin, those will be used instead.

    In order to debug this sort of problem, it helps to put a ``which`` command in the job script and then look at the log output of the cluster job to check where it getting its ABySS binaries from, e.g.

#!/bin/sh PATH=/home/joe/bin:$PATH which ABYSS-P /home/joe/abyss-1.3.7/maxk_96/bin/abyss-pe k=96 name=assembly in='read1.fastq read2.fastq'

  
Clone this wiki locally