Well, I'm glad I'm not the only one :-)
After spending numerous hours trying to install bcl2fastq 2.20 in my server I decided to ask for help.
I am trying to install bcl2fastq 2.20 in Ubuntu 18.04. I have followed multiple recommendations for fixing inconveniences while installing bcl2fastq with newer boost versions (as in these posts here and here ).
I don't get any errors after running configure from the build directory. My error appears after typing make afterwards.
$ make
Scanning dependencies of target BCL2FASTQ_OPT
[ 0%] Built target BCL2FASTQ_OPT
Scanning dependencies of target bcl2fastq_common
[ 1%] Building CXX object cxx/lib/common/CMakeFiles/bcl2fastq_common.dir/Logger.cpp.o
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp: In constructor ‘bcl2fastq::common::detail::LogStream::LogStream()’:
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp:122:13: error: ‘clog’ is not a member of ‘std’
, ias_(std::clog)
^~~~
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp:122:13: note: suggested alternative: ‘log’
, ias_(std::clog)
^~~~
log
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp: In constructor ‘bcl2fastq::common::detail::LogStream::LogStream(bcl2fastq::common::LogLevel::value_type)’:
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp:130:13: error: ‘clog’ is not a member of ‘std’
, ias_(std::clog)
^~~~
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp:130:13: note: suggested alternative: ‘log’
, ias_(std::clog)
^~~~
log
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp: In copy constructor ‘bcl2fastq::common::detail::LogStream::LogStream(const bcl2fastq::common::detail::LogStream&)’:
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp:146:13: error: ‘clog’ is not a member of ‘std’
, ias_(std::clog)
^~~~
/media/software/bcl2fastq/bcl2fastq/src/cxx/lib/common/Logger.cpp:146:13: note: suggested alternative: ‘log’
, ias_(std::clog)
^~~~
log
cxx/lib/common/CMakeFiles/bcl2fastq_common.dir/build.make:57: recipe for target 'cxx/lib/common/CMakeFiles/bcl2fastq_common.dir/Logger.cpp.o' failed
make[2]: *** [cxx/lib/common/CMakeFiles/bcl2fastq_common.dir/Logger.cpp.o] Error 1
CMakeFiles/Makefile2:257: recipe for target 'cxx/lib/common/CMakeFiles/bcl2fastq_common.dir/all' failed
make[1]: *** [cxx/lib/common/CMakeFiles/bcl2fastq_common.dir/all] Error 2
Makefile:126: recipe for target 'all' failed
make: *** [all] Error 2
ANy ideas on how to fix this? Suggestions are highly appreciated.
5 answers
I finally found a post on how to install bcl2fastq v2.20 from a tarball. I followed the instructions and installed it with no errors!!! https://sarahpenir.github.io/linux/Installing-bcl2fastq/
FWIW, my IT guy couldn't install bcl2fastq like this either. He used the rpm.
Have you tried installing via freenome?
[~/Downloads]$ docker run -it --entrypoint /bin/bash ubuntu:18.04
root@2dc2434b4405:/# conda install -c freenome bcl2fastq
...
root@2dc2434b4405:/# bcl2fastq -v
BCL to FASTQ file converter
bcl2fastq v2.20.0.422
Copyright (c) 2007-2017 Illumina, Inc.
I had a similar error (CentOS 8.1) with
bcl2fastq/src/cxx/include/common/Logger.hh:38:14: error: ‘clog’ is not a member of ‘std’
Following motivation from stackoverflow, I added
#include <iostream>
to line 24 of Logger.hh
This got past this error and then encountered the same issue experienced by backwards incompatible. Using his solution, in bcl2fastq/src/cxx/lib/io/Xml.cpp, I converted :
#ifndef WIN32
boost::property_tree::write_xml(os, treeWithIndexAttributes, boost::property_tree::xml_writer_make_settings(' ', 2));
#else
boost::property_tree::write_xml(os, treeWithIndexAttributes, boost::property_tree::xml_writer_make_settings<std::string>(' ', 2));
#endif
}
else
{
#ifndef WIN32
boost::property_tree::write_xml(os, tree, boost::property_tree::xml_writer_make_settings(' ', 2));
#else
boost::property_tree::write_xml(os, tree, boost::property_tree::xml_writer_make_settings<std::string>(' ', 2));
#endif
to :
boost::property_tree::write_xml(os, treeWithIndexAttributes, boost::property_tree:
}
else
{
boost::property_tree::write_xml(os, tree, boost::property_tree::xml_writer_make_se
}
With this the compilation successfully completed.
Both of these fixes were also necessary for me.
This is not an answer for the original question but since it is an important change I am adding this here:
You should consider installing bcl-convert (LINK) instead of bcl2fastq in 2021. bcl-convert is replacing bcl2fastq and will be supported in future. If you need to process NextSeq 2K data then bcl-convert is a requirement. bcl-convert can process data from all other sequencers Illumina makes and can fully replace bcl2fastq.
Log in to answer this question.
Perhaps you should save yourself the trouble and use
condato install: https://anaconda.org/dranew/bcl2fastq ?But the version in conda is still on 2.19.
What works for me, is to take the rpm file and simply unpack the files in it.
Unless OP needs to use this for a NovaSeq S4 flowcell, v. 2.19.0 should be ok for all other data.
There is a patch available by Lior Galanti.
https://backwardincompatible.com/post/169360794395/compiling-illumina-bcl2fastq-220-on-ubuntu-with
Thanks everyone for their suggestions. I am looking to install version 2.20 rather to 2.19. I'll try the rpm approach and also the patch to see if that solves my problem. Thanks I appreciate your help :-)
I found a solution. Look below