diff --git a/CMakeLists.txt b/CMakeLists.txt index b5dd1cc53..2b062624b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -224,10 +224,10 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") endif() set(WARNING_IGNORE_FLAGS "${WARNING_IGNORE_FLAGS} -Wno-unused-local-typedefs") - set(BOOST_TOOLSET "${CC}") + set(BOOST_TOOLSET "gcc") set(BOOST_CONFIGURE_TOOLSET "--with-toolset=gcc") set(BCXX_FLAGS "${CXXSTDFLAG} ${SCHAR_FLAG}") - set(BOOST_EXTRA_FLAGS toolset=${CC} cxxflags=${BCXX_FLAGS}) + set(BOOST_EXTRA_FLAGS toolset=gcc cxxflags=${BCXX_FLAGS}) # Tentatively, we support clang now elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") set(CLANG TRUE) @@ -580,22 +580,21 @@ set(EXTERNAL_LIBRARY_PATH $CMAKE_CURRENT_SOURCE_DIR/lib) # set(SUFFARRAY_INCLUDE_DIRS ${SUFFARRAY_INCLUDE_DIR}) #endif() - -find_package(Cereal) +find_package(cereal "1.3.2") if (NOT CEREAL_FOUND) - message("Build system will fetch and build the Cereal serialization library") + message("Build system will fetch and build the cereal serialization library") message("==================================================================") include(ExternalProject) externalproject_add(libcereal DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external - DOWNLOAD_COMMAND curl -k -L https://github.com/USCiLab/cereal/archive/v1.3.0.tar.gz -o cereal-v1.3.0.tar.gz && - ${SHASUM} 329ea3e3130b026c03a4acc50e168e7daff4e6e661bc6a7dfec0d77b570851d5 cereal-v1.3.0.tar.gz && - tar -xzvf cereal-v1.3.0.tar.gz + DOWNLOAD_COMMAND curl -k -L https://github.com/USCiLab/cereal/archive/refs/tags/v1.3.2.tar.gz -o cereal-v1.3.2.tar.gz && + ${SHASUM} 16a7ad9b31ba5880dac55d62b5d6f243c3ebc8d46a3514149e56b5e7ea81f85f cereal-v1.3.2.tar.gz && + tar -xzvf cereal-v1.3.2.tar.gz - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.3.0 + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.3.2 INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install #UPDATE_COMMAND sh -c "mkdir -p /build" - BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.3.0/build + BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.3.2/build CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND sh -c "mkdir -p /include && cp -r /include/cereal /include" diff --git a/cmake/Modules/FindCereal.cmake b/cmake/Modules/FindCereal.cmake deleted file mode 100644 index f58e5ce3f..000000000 --- a/cmake/Modules/FindCereal.cmake +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# Find Cereal -# -# This sets the following variables: -# CEREAL_FOUND - True if Cereal was found. -# CEREAL_INCLUDE_DIRS - Directories containing the Cereal include files. -# CEREAL_DEFINITIONS - Compiler flags for Cereal. - -find_path(CEREAL_INCLUDE_DIR cereal - HINTS "${CEREAL_ROOT}/include" "$ENV{CEREAL_ROOT}/include" "/usr/include" "$ENV{PROGRAMFILES}/cereal/include") - -set(CEREAL_INCLUDE_DIRS ${CEREAL_INCLUDE_DIR}) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Cereal DEFAULT_MSG CEREAL_INCLUDE_DIR) - -mark_as_advanced(CEREAL_INCLUDE_DIR) - -if(CEREAL_FOUND) - message(STATUS "Cereal found (include: ${CEREAL_INCLUDE_DIRS})") -endif(CEREAL_FOUND) diff --git a/cmake/Modules/Findcereal.cmake b/cmake/Modules/Findcereal.cmake new file mode 100644 index 000000000..18d9888e5 --- /dev/null +++ b/cmake/Modules/Findcereal.cmake @@ -0,0 +1,44 @@ +############################################################################### +# Find Cereal +# +# This sets the following variables: +# CEREAL_FOUND - True if Cereal was found. +# CEREAL_INCLUDE_DIRS - Directories containing the Cereal include files. +# CEREAL_DEFINITIONS - Compiler flags for Cereal. + +find_path(CEREAL_INCLUDE_DIR cereal + HINTS "${CEREAL_ROOT}/include" "$ENV{CEREAL_ROOT}/include" "/usr/include" "$ENV{PROGRAMFILES}/cereal/include") + +set(CEREAL_INCLUDE_DIRS ${CEREAL_INCLUDE_DIR}) + +if(CEREAL_INCLUDE_DIR) + set(CEREAL_FOUND YES) + set(CEREAL_VERSION_MAJOR 0) + set(CEREAL_VERSION_MINOR 0) + set(CEREAL_VERSION_PATCH 0) + if(EXISTS "${CEREAL_INCLUDE_DIR}/cereal/version.hpp") + # Read and parse cereal version header file for version number + file(READ "${CEREAL_INCLUDE_DIR}/cereal/version.hpp" + _CEREAL_HEADER_CONTENTS) + string(REGEX REPLACE ".*#define CEREAL_VERSION_MAJOR ([0-9]+).*" "\\1" + CEREAL_VERSION_MAJOR "${_CEREAL_HEADER_CONTENTS}") + string(REGEX REPLACE ".*#define CEREAL_VERSION_MINOR ([0-9]+).*" "\\1" + CEREAL_VERSION_MINOR "${_CEREAL_HEADER_CONTENTS}") + string(REGEX REPLACE ".*#define CEREAL_VERSION_PATCH ([0-9]+).*" "\\1" + CEREAL_VERSION_PATCH "${_CEREAL_HEADER_CONTENTS}") + set(CEREAL_VERSION_STRING "${CEREAL_VERSION_MAJOR}.${CEREAL_VERSION_MINOR}.${CEREAL_VERSION_PATCH}") + else() + set(CEREAL_FOUND NO) + endif() +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(cereal + REQUIRED_VARS CEREAL_INCLUDE_DIR + VERSION_VAR CEREAL_VERSION_STRING) + +mark_as_advanced(CEREAL_INCLUDE_DIR) + +if(CEREAL_FOUND) + message(STATUS "cereal found (include: ${CEREAL_INCLUDE_DIRS})") +endif(CEREAL_FOUND) diff --git a/current_version.txt b/current_version.txt index 227e558bd..52d02dad4 100644 --- a/current_version.txt +++ b/current_version.txt @@ -1,3 +1,3 @@ VERSION_MAJOR 1 VERSION_MINOR 10 -VERSION_PATCH 0 +VERSION_PATCH 1 diff --git a/doc/source/conf.py b/doc/source/conf.py index 3cb812f4e..006b39625 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -57,7 +57,7 @@ # The short X.Y version. version = '1.10' # The full version, including alpha/beta/rc tags. -release = '1.10.0' +release = '1.10.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/source/salmon.rst b/doc/source/salmon.rst index 092c1e11c..38f36179b 100644 --- a/doc/source/salmon.rst +++ b/doc/source/salmon.rst @@ -269,8 +269,8 @@ mode, and a description of each, run ``salmon quant --help-alignment``. header sections must be identical). -Description of important options --------------------------------- +Description of some important options +------------------------------------- Salmon exposes a number of useful optional command-line parameters to the user. The particularly important ones are explained here, but you can always run @@ -296,6 +296,20 @@ by RSEM), but using the default scoring scheme and allowing both mismatches and indels in alignments. These setting essentially disallow indels in the resulting alignments. +"""""""""""""""""""""""""""""" +``--meta`` +"""""""""""""""""""""""""""""" + +As with the flags described above, this is a "meta-flag" that simply enables some options +that may make more sense when quantifying metagenomic data. Specifically, the ``--meta`` +flag sets the following options: + +* The abundance optimization is initialized from the uniform distribution (compared to the default of using a weighted combination of the uniform intialization and the abundances learned during the online optimization) + +* Rich equivalence classes are disabled. Using rich equivalence classes with metagenomic data should not be particularly problematic, but since they have been developed and tested most in the context of bulk RNA-seq quantification, they are currently disabled under this flag. + +* The EM algorithm is used for abundance optimization instead of the default VBEM optimization. Neither is universally better than the other, but the parameters for the VBEM (e.g. the prior size and type) are set based on typical bulk RNA-seq transcriptome samples, and so may be less appropriate in the metagenomic context. Hence the ``--meta`` flags opts for the basic EM algorithm instead. + """""""""""""""""""""""""""""" ``--recoverOrphans`` """""""""""""""""""""""""""""" diff --git a/docker/Dockerfile b/docker/Dockerfile index 578b25b4d..51f034c3e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,7 +6,7 @@ MAINTAINER salmon.maintainer@gmail.com ENV PACKAGES git gcc make g++ libboost-all-dev liblzma-dev libbz2-dev \ ca-certificates zlib1g-dev libcurl4-openssl-dev curl unzip autoconf apt-transport-https ca-certificates gnupg software-properties-common wget -ENV SALMON_VERSION 1.10.0 +ENV SALMON_VERSION 1.10.1 # salmon binary will be installed in /home/salmon/bin/salmon diff --git a/docker/build_test.sh b/docker/build_test.sh index a52edf11f..031108365 100644 --- a/docker/build_test.sh +++ b/docker/build_test.sh @@ -1,3 +1,3 @@ #! /bin/bash -SALMON_VERSION=1.10.0 -docker build --no-cache -t combinelab/salmon:${SALMON_VERSION} -t combinelab/salmon:latest . +SALMON_VERSION=1.10.1 +TMPDIR=/mnt/scratch2/DELETE_ME_TEMP docker build --no-cache -t combinelab/salmon:${SALMON_VERSION} -t combinelab/salmon:latest . diff --git a/include/SalmonConfig.hpp b/include/SalmonConfig.hpp index 24dcebd7c..6d65049eb 100644 --- a/include/SalmonConfig.hpp +++ b/include/SalmonConfig.hpp @@ -27,8 +27,8 @@ namespace salmon { constexpr char majorVersion[] = "1"; constexpr char minorVersion[] = "10"; -constexpr char patchVersion[] = "0"; -constexpr char version[] = "1.10.0"; +constexpr char patchVersion[] = "1"; +constexpr char version[] = "1.10.1"; constexpr uint32_t indexVersion = 5; constexpr char requiredQuasiIndexVersion[] = "p7"; } // namespace salmon diff --git a/scripts/fetchPufferfish.sh b/scripts/fetchPufferfish.sh index b067751dc..6b586e249 100755 --- a/scripts/fetchPufferfish.sh +++ b/scripts/fetchPufferfish.sh @@ -23,11 +23,11 @@ if [ -d ${INSTALL_DIR}/src/pufferfish ] ; then rm -fr ${INSTALL_DIR}/src/pufferfish fi -SVER=salmon-v1.10.0 +SVER=salmon-v1.10.1 #SVER=develop #SVER=sketch-mode -EXPECTED_SHA256=c961b9c252856b53c6538d22103b711c924ea1e649516de81efb85870aa8b143 +EXPECTED_SHA256=cf2a007f3817c1087abd4170db70e6b3c04aa24babecf92a2d9d2eb7784b6021 mkdir -p ${EXTERNAL_DIR} curl -k -L https://github.com/COMBINE-lab/pufferfish/archive/${SVER}.zip -o ${EXTERNAL_DIR}/pufferfish.zip