Velvet-SC installation/compilation issues
1
1
Entering edit mode
10.3 years ago
JV ▴ 470

Hi,

I want to try out Velvet-SC in the context of single cell genome assemblies.

I downloaded the source code from their website.

However, when I try to compile it (using the arguments I also use for standard velvet, e.g "CATEGORIES=6", "MAXKMERLENGTH=120", "BIGASSEMBLY=1", "OPENMP=1"), I get a lot of errors and the make script exits with "Error 1"

This is the output i get when running make:

MP=1'
rm obj/*.o obj/dbg/*.o
rm: cannot remove 'obj/dbg/*.o': No such file or directory
make: [cleanobj] Error 1 (ignored)
cd third-party/zlib-1.2.3; ./configure; make; rm minigzip.o; rm example.o
Checking for gcc...
Building static library libz.a version 1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.
make[1]: Entering directory `/home/user/Downloads/velvet-sc/third-party/zlib-1.2.3'
gcc -O3 -DUSE_MMAP   -c -o example.o example.c
gcc -O3 -DUSE_MMAP   -c -o adler32.o adler32.c
gcc -O3 -DUSE_MMAP   -c -o compress.o compress.c
gcc -O3 -DUSE_MMAP   -c -o crc32.o crc32.c
gcc -O3 -DUSE_MMAP   -c -o gzio.o gzio.c
gcc -O3 -DUSE_MMAP   -c -o uncompr.o uncompr.c
gcc -O3 -DUSE_MMAP   -c -o deflate.o deflate.c
gcc -O3 -DUSE_MMAP   -c -o trees.o trees.c
gcc -O3 -DUSE_MMAP   -c -o zutil.o zutil.c
gcc -O3 -DUSE_MMAP   -c -o inflate.o inflate.c
gcc -O3 -DUSE_MMAP   -c -o infback.o infback.c
gcc -O3 -DUSE_MMAP   -c -o inftrees.o inftrees.c
gcc -O3 -DUSE_MMAP   -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a
gcc -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a
make[1]: Leaving directory `/home/user/Downloads/velvet-sc/third-party/zlib-1.2.3'
mkdir -p obj
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/tightString.c -o obj/tightString.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/run.c -o obj/run.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/splay.c -o obj/splay.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/splayTable.c -o obj/splayTable.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/graph.c -o obj/graph.o
src/graph.c: In function 'addBufferToDescriptor':
src/graph.c:870:14: warning: variable 'twinDescr' set but not used [-Wunused-but-set-variable]
  Descriptor *twinDescr;
              ^
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/run2.c -o obj/run2.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/fibHeap.c -o obj/fibHeap.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/fib.c -o obj/fib.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/concatenatedGraph.c -o obj/concatenatedGraph.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/passageMarker.c -o obj/passageMarker.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/graphStats.c -o obj/graphStats.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/correctedGraph.c -o obj/correctedGraph.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/dfib.c -o obj/dfib.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/dfibHeap.c -o obj/dfibHeap.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/recycleBin.c -o obj/recycleBin.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/readSet.c -o obj/readSet.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/shortReadPairs.c -o obj/shortReadPairs.o
src/shortReadPairs.c: In function 'pushNeighbours':
src/shortReadPairs.c:928:8: warning: variable 'lastCandidate' set but not used [-Wunused-but-set-variable]
  Node *lastCandidate = NULL;
        ^
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/locallyCorrectedGraph.c -o obj/locallyCorrectedGraph.o
src/locallyCorrectedGraph.c: In function 'tourBusNode_local':
src/locallyCorrectedGraph.c:380:8: warning: variable 'destination' set but not used [-Wunused-but-set-variable]
  Node *destination;
        ^
src/locallyCorrectedGraph.c: In function 'clipTipsVeryHardLocally':
src/locallyCorrectedGraph.c:427:18: warning: variable 'twin' set but not used [-Wunused-but-set-variable]
  Node *current, *twin;
                  ^
src/locallyCorrectedGraph.c: In function 'correctGraphLocally':
src/locallyCorrectedGraph.c:517:8: warning: variable 'index' set but not used [-Wunused-but-set-variable]
  IDnum index, nodeIndex;
        ^
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/graphReConstruction.c -o obj/graphReConstruction.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/roadMap.c -o obj/roadMap.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/preGraph.c -o obj/preGraph.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/preGraphConstruction.c -o obj/preGraphConstruction.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/concatenatedPreGraph.c -o obj/concatenatedPreGraph.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/readCoherentGraph.c -o obj/readCoherentGraph.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/crc.c -o obj/crc.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/utility.c -o obj/utility.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/kmer.c -o obj/kmer.o
gcc -Wall -O3 -D MAXKMERLENGTH=120 -D CATEGORIES=6 -c src/scaffold.c -o obj/scaffold.o
gcc -Wall -O3 -lm -o velveth obj/tightString.o obj/run.o obj/recycleBin.o obj/splay.o obj/splayTable.o obj/readSet.o obj/crc.o obj/utility.o obj/kmer.o third-party/zlib-1.2.3/*.o
obj/readSet.o: In function `convertConfidenceScores':
readSet.c:(.text+0x3c47): undefined reference to `pow'
readSet.c:(.text+0x3c8a): undefined reference to `pow'
collect2: error: ld returned 1 exit status
make: *** [velveth] Error 1

Any Ideas/Suggestions?

velvet-sc velvet • 3.0k views
ADD COMMENT
2
Entering edit mode
10.3 years ago

The significant problem is here:

gcc \
  -Wall \
  -O3 \
  -lm \
  -o velveth \
  obj/tightString.o \
  obj/run.o \
  obj/recycleBin.o \
  obj/splay.o \
  obj/splayTable.o \
  obj/readSet.o \
  obj/crc.o \
  obj/utility.o \
  obj/kmer.o \
  third-party/zlib-1.2.3/*.o

Find the link commands in the Makefile, and move -lm to the end of the line.

You can arrange this at the top of the Makefile by removing -lm from LDFLAGS and adding it to Z_LIB_FILES instead. (Wow, that's forked from a prehistoric version of velvet!)

ADD COMMENT
0
Entering edit mode

Thanks That worked!

And yes, it is derived from a very outdated version of velvet. It seems velvet-sc is not being supported anymore. But I have seen it referenced fairly often and since I am quite familiar with velvet, wanted to give it a try (and compare it to other assemblers).

ADD REPLY

Login before adding your answer.

Traffic: 1977 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6