-
Notifications
You must be signed in to change notification settings - Fork 111
ABySS Users FAQ
Ben Vandervalk edited this page Mar 25, 2014
·
18 revisions
-
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 theconfigure
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'