error message when using classify.seqs with Mothur 1.36.1

Dears,

I compiled Mothur 1.36.1 from sources on a 64 bits Debian Linux without any problems. The only warning during compilation is the following one:
mothurout.cpp:(.text+0xf1d8): warning: the use of tmpnam' is dangerous, better usemkstemp’
I choose to ignore this message as it is just a warning.

During the processing of my data, I get an error while executing classify.seqs against RDP:

mothur > classify.seqs(fasta=stability.trim.contigs.good.unique.good.filter.unique.precluster.pick.pick.fasta, name=stability.trim.contigs.good.unique.good.filter.unique.precluster.pick.pick.names, group=stability.trim.contigs.good.unique.good.filter.unique.precluster.pick.pick.groups, reference=/opt/Mothur/data/trainset_current.pds/trainset.pds.fasta, taxonomy=/opt/Mothur/data/trainset_current.pds/trainset.pds.tax, cutoff=80, processors=20)

Using 20 processors.
Reading template taxonomy… DONE.
Reading template probabilities… *** Error in `/opt/Mothur/mothur-1.36.1/mothur’: free(): invalid next size (normal): 0x00000000216996f0 ***
[gaia:11532] *** Process received signal ***
[gaia:11532] Signal: Aborted (6)
[gaia:11532] Signal code: (-6)
[gaia:11532] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0xf8d0) [0x7f95b87d98d0]
[gaia:11532] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37) [0x7f95b8456107]
[gaia:11532] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) [0x7f95b84574e8]
[gaia:11532] [ 3] /lib/x86_64-linux-gnu/libc.so.6(+0x73204) [0x7f95b8494204]
[gaia:11532] [ 4] /lib/x86_64-linux-gnu/libc.so.6(+0x789de) [0x7f95b84999de]
[gaia:11532] [ 5] /lib/x86_64-linux-gnu/libc.so.6(+0x796e6) [0x7f95b849a6e6]
[gaia:11532] [ 6] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSs6assignERKSs+0x87) [0x7f95b8fbe357]
[gaia:11532] [ 7] /opt/Mothur/mothur-1.36.1/mothur() [0x694574]
[gaia:11532] [ 8] /opt/Mothur/mothur-1.36.1/mothur() [0x696c27]
[gaia:11532] [ 9] /opt/Mothur/mothur-1.36.1/mothur() [0x978d1d]
[gaia:11532] [10] /opt/Mothur/mothur-1.36.1/mothur() [0x585e10]
[gaia:11532] [11] /opt/Mothur/mothur-1.36.1/mothur() [0x41171b]
[gaia:11532] [12] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f95b8442b45]
[gaia:11532] [13] /opt/Mothur/mothur-1.36.1/mothur() [0x41620c]
[gaia:11532] *** End of error message ***
./mothur36.1_pipeline.batch.sh: line 152: 11532 Aborted /opt/Mothur/mothur-1.36.1/mothur “#classify.seqs(fasta=stability.trim.contigs.good.unique.good.filter.unique.precluster.pick.pick.fasta, name=stability.trim.contigs.good.unique.good.filter.unique.precluster.pick.pick.names, group=stability.trim.contigs.good.unique.good.filter.unique.precluster.pick.pick.groups, reference=/opt/Mothur/data/trainset_current.pds/trainset.pds.fasta, taxonomy=/opt/Mothur/data/trainset_current.pds/trainset.pds.tax, cutoff=80, processors=20)”
[3;J[H[2J





mothur v.1.36.1 Last updated: 7/27/2015

by
Patrick D. Schloss

Department of Microbiology & Immunology
University of Michigan
pschloss@umich.edu
http://www.mothur.org

When using, please cite:
Schloss, P.D., et al., Introducing mothur: Open-source, platform-independent, community-supported software for describing and comparing microbial communities. Appl Environ Microbiol, 2009. 75(23):7537-41.

Distributed under the GNU General Public License

Type ‘help()’ for information on the commands that are available

Type ‘quit()’ to exit program



Do you have any ideas what is going wrong? Best regards, Florence

Have you tried it with our prebuilt version?

Hello,
Yes, I did, but I get this error message:

mothur > summary.seqs(fasta=stability.trim.contigs.good.fasta, processors=20)

Using 20 processors.
Illegal instruction

So I decided to compile myself from sources.
Thanks,
Flo

The warning is from a section of code related to the USE_COMPRESSION option. Can you try building without the compression option?

The warning is from a section of code related to the USE_COMPRESSION option. Can you try building without the compression option? What version of g++ are you using to build and which version of Debian?


Want to try this version of the makefile?
###################################################
#
# Makefile for mothur
#
###################################################

#
# Macros
#

64BIT_VERSION ?= yes
USEREADLINE ?= yes
USECOMPRESSION ?= no
USEBOOST ?= yes
MOTHUR_FILES="\"Enter_your_default_path_here\""
RELEASE_DATE = "\"7/27/2015\""
VERSION = "\"1.36.1\""


ifeq  ($(strip $(64BIT_VERSION)),yes)
    CXXFLAGS += -DBIT_VERSION
endif


CXXFLAGS += -DRELEASE_DATE=${RELEASE_DATE} -DVERSION=${VERSION}

ifeq  ($(strip $(MOTHUR_FILES)),"\"Enter_your_default_path_here\"")
else
    CXXFLAGS += -DMOTHUR_FILES=${MOTHUR_FILES}
endif


# if you do not want to use the readline library, set this to no.
# make sure you have the library installed


ifeq  ($(strip $(USEREADLINE)),yes)
    CXXFLAGS += -DUSE_READLINE
    LIBS += -lreadline
endif


#The boost libraries allow you to read gz files.
ifeq  ($(strip $(USEBOOST)),yes)
    LIBS += -lboost_iostreams
endif


# if you want to enable reading and writing of compressed files, set to yes.
# The default is no.  this may only work on unix-like systems, not for windows.


ifeq  ($(strip $(USECOMPRESSION)),yes)
    CXXFLAGS += -DUSE_COMPRESSION
endif

#
# INCLUDE directories for mothur
#
#
    VPATH=source/calculators:source/chimera:source/classifier:source/clearcut:source/commands:source/communitytype:source/datastructures:source/metastats:source/randomforest:source/read:source/svm
    skipUchime := source/uchime_src/
    subdirs :=  $(sort $(dir $(filter-out  $(skipUchime), $(wildcard source/*/))))
    subDirIncludes = $(patsubst %, -I %, $(subdirs))
    subDirLinking =  $(patsubst %, -L%, $(subdirs))
    CXXFLAGS += -I. $(subDirIncludes)
    LDFLAGS += $(subDirLinking)


#
# Get the list of all .cpp files, rename to .o files
#
    OBJECTS=$(patsubst %.cpp,%.o,$(wildcard $(addsuffix *.cpp,$(subdirs))))
    OBJECTS+=$(patsubst %.c,%.o,$(wildcard $(addsuffix *.c,$(subdirs))))
    OBJECTS+=$(patsubst %.cpp,%.o,$(wildcard *.cpp))
    OBJECTS+=$(patsubst %.c,%.o,$(wildcard *.c))

mothur : $(OBJECTS) uchime
 $(CXX) $(LDFLAGS) $(TARGET_ARCH) -o $@ $(OBJECTS) $(LIBS)

uchime:
    cd source/uchime_src && ./mk && mv uchime ../../ && cd ..

install : mothur


%.o : %.c %.h
 $(COMPILE.c) $(OUTPUT_OPTION) $<
%.o : %.cpp %.h
 $(COMPILE.cpp) $(OUTPUT_OPTION) $<
%.o : %.cpp %.hpp
 $(COMPILE.cpp) $(OUTPUT_OPTION) $<



clean :
 @rm -f $(OBJECTS)
 @rm -f uchime

Hello,

Setting USECOMPRESSION to no and recompiling solved the issue.
Could you please elaborate a bit on what this option is about? What is the consequence for my analysis without this option?

In case you need more information on my system:

  • Debian Jessie (Stable)
  • Linux gaia 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u2 (2015-07-17) x86_64 GNU/Linux
  • g++ version 4.9.2-2

If you require more information, please let me know.

Regards,
Flo

Hi Flo,
I am glad you were able to resolve the problems you were having. The USE_COMPRESSION option is one we will be removing in the next release. In version 1.36, we added the USE_BOOST option which offers the same functionality without the compliance issues.
Kindly,
Sarah

Thanks a lot for your quick and efficient help.
Regards,
Flo

Update: If you encounter this same error with 1.36.1, could you give the Mothur.cen_64.noOpt.zip version https://github.com/mothur/mothur/releases/tag/v1.36.1 a try?