This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How To Build Bambus Scaffolder On Ubuntu 10.04?

I've been trying to assemble 454 bacterial scaffolds into a draft assembly using Bambus and a reference genome. I can't however get bambus to compile on my ubuntu machine. According to this guide (PDF) you need to update the header file to include additional references which I have done. However I am still unable to get the grommit binary to compile. The error messages produced by make are shown below. Can anyone offer any suggestions?

for i in src doc ;do cd $i ; make all; cd .. ; done
make[1]: Entering directory `/tmp/bambus-2.33/src'
for i in IO DotLib TIGR_Foundation_CC grommit ;do cd $i ; make all; cd .. ; done
make[2]: Entering directory `/tmp/bambus-2.33/src/IO'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/tmp/bambus-2.33/src/IO'
make[2]: Entering directory `/tmp/bambus-2.33/src/DotLib'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/tmp/bambus-2.33/src/DotLib'
make[2]: Entering directory `/tmp/bambus-2.33/src/TIGR_Foundation_CC'
g++  -D_HAS_GETOPT  -c -o FileSystem.o FileSystem.cc
FileSystem.cc: In static member function ‘static bool         
FileSystem::isCreatableFile(const char*)’:
FileSystem.cc:58: error: invalid conversion from ‘const char*’ to ‘char*’
make[2]: *** [FileSystem.o] Error 1
make[2]: Leaving directory `/tmp/bambus-2.33/src/TIGR_Foundation_CC'
make[2]: Entering directory `/tmp/bambus-2.33/src/grommit'
g++ -Wl  -L../TIGR_Foundation_CC/ -o grommit grommit.o -L. -lgraph -lTigrFoundation
/usr/bin/ld: cannot find -lTigrFoundation
collect2: ld returned 1 exit status
make[2]: *** [grommit] Error 1
make[2]: Leaving directory `/tmp/bambus-2.33/src/grommit'
make[1]: Leaving directory `/tmp/bambus-2.33/src'
make[1]: Entering directory `/tmp/bambus-2.33/doc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/bambus-2.33/doc'
assembly scaffolding genome

4 answers

Edited just these four files

nano ./src/TIGR_Foundation_CC/ConfigFile.hh 
nano ./src/TIGR_Foundation_CC/Logger.hh
nano ./src/TIGR_Foundation_CC/OptionResult.hh 
nano ./src/TIGR_Foundation_CC/Options.hh

plus BASEDIR in Makefile. No errors while compiling bambus_2.33 on Debian 5.04 inside VirtualBox. gcc 4.3.2.

In your case I would:

  • check the edits after good night sleep on a fresh source
  • wait a day for some C guru before going some heroic route of switching systems

If you are in a hurry then setting up VirtualBox + Debian takes few hours max, but I am not sure how much load (genome size etc) this can take.

EDIT: format

I picked yours as the answer. I didn't work for me but may be useful to others doing something similar.

Just at a first glance, the key error line is:

/usr/bin/ld: cannot find -lTigrFoundation

This tells you that the linker (ld) is looking for a library file named TigrFoundation and cannot find it. That may be because it does not exist - do you need to install something else before BAMBUS? - or because it is in a non-standard location. if the latter, you can try something like (in bash):

export LD_LIBRARY_PATH=/path/to/directory_containing_TigrFoundation/:$LD_LIBRARY_PATH
make clean
make

or just run the line and replace -lTigrFoundation with -l/path/to/TigrFoundation libraries ...

I can't find find any files called TigrFoundation. There are however .cc and .hh files called TIGR_Foundation. I've tried updating the makefile so that it's -lTIGR_Foundation how I still get the same error. Specifically what file type is the linker looking for?

Probably the linker is looking for compiled libraries. Is there a way for you to compile the TIGR_Foundation?

I am also getting this same error.If you find some solution please let me know and definitively if I find a solution...I will post it here.

I was able to compile succesfully with the PDF guide. Under the following ubuntu distro:

2.6.32-27-generic #49-Ubuntu SMP Thu Dec 2 00:51:09 UTC 2010 x86_64 GNU/Linux | gcc version 4.4.3

But first compiling & installing the Tigr_Foundation libraries the trick is adding this header to the Options.hh ($/bambus-2.33/src/TIGR_Foundation_CC/Options.hh)

"#include <cstdio>"

Then you compile & install bambus 2.3

*if you got some previous issues with the gcc substitute the syntaxis following the next help:

An example.

const char* str1;
char* str2 = strchr(str1, 'a');

Gives the following compiler error:

error: invalid conversion from ‘const char*’ to ‘char*’

Fixing this is easy, as demonstrated below.

const char* str1;
const char* str2 = strchr(str1, 'a');

Log in to answer this question.