This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Error installing bcl2fastq 2.20 in make step - Ubuntu 18.04

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.

software error bcl2fastq ubuntu

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.

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

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.

Well, I'm glad I'm not the only one :-)

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.