Loading .gitignore 0 → 100644 +7 −0 Original line number Diff line number Diff line # Ignore locally built doxygen documentation documentation/doxygen/doxygen_sqlite3.db documentation/doxygen/html/ documentation/doxygen/latex/ # Ignore .DS_Store that is known to clutter repositories on MacOS .DS_Store No newline at end of file .gitlab-ci.yml 0 → 100644 +27 −0 Original line number Diff line number Diff line image: alpine before_script: - apk update - apk add doxygen ## Uncomment the following line if you use graphviz dot graphs - apk add ttf-freefont graphviz test: script: ## execute doxygen - doxygen documentation/doxygen/config.doxyfile except: - master #pages: # script: # ## execute doxygen # - doxygen documentation/doxygen/config.doxyfile # ## Move documentation/doxygen/html/ to public # - mv documentation/doxygen/html/ public/ # artifacts: # paths: # - public # only: # ## Branch # - master CHANGELOG.md +26 −5 Original line number Diff line number Diff line HiLive - Live Mapping of Illumina reads ======================================= Changelog ----------- ========= v2.0 ----- Version 2.0 comes with a completely new index and algorithm. This comes with major changes in parameter settings. Please note, that commands and index files of previous versions cannot be used with HiLive v2.0. The old HiLive version using the k-mer seed-and-extend approach is still available in a separated repository. Please visit https://gitlab.com/rki_bioinformatics/HiLive for access to both versions. General functionality: * New algorithm based on the FM-index * Exact mapping results after a potential front softclip * Support of alternative scoring models other than edit distance Parameters: * Revised parameter nomenclature * Multitoken parameters must now be comma-separated * Changed config file format to .ini * Additional parameters to facilitate parameter input (e.g., --max-tile for easier tile declaration) * Different alignment modes for automated selection of algorithmic parameters Output: * Corrected SAM flags for paired-end reads. v1.1 ----- Loading CMakeLists.txt +85 −36 Original line number Diff line number Diff line ############## ### Header ### ############## cmake_minimum_required (VERSION 2.8) project (HiLive) # Set the version number add_definitions(-DHiLive_VERSION_MAJOR=1) add_definitions(-DHiLive_VERSION_MINOR=1) cmake_minimum_required( VERSION 3.10 FATAL_ERROR ) project( HiLive VERSION 2.0 LANGUAGES CXX ) ################### ### Build Setup ### ################### # Set CXX Standard set( CMAKE_CXX_STANDARD 14 ) set( CMAKE_CXX_SANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS OFF ) # Set runtime output directory set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} ) # Error on unsupported compiler if( NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" ) message( FATAL_ERROR "Compiler id '${CMAKE_CXX_COMPILER_ID}' is not supported, please \ check the documentation." ) endif() # Compiling options option( VERBOSE_CONFIG "Verbose mode for quick build setup debugging." OFF ) option( CONDA "Flag for compilation in conda env." OFF ) option( LZ4_PATH "Path to manually installed LZ4 library." "") option( SEQAN_PATH "Path to manually installed SeqAn library." "") option( BOOST_PATH "Path to manually installed Boost library." "") option( STRICT_WARN "Flag for strict warnings." OFF ) # Set HiLive2 compile-time variables add_definitions(-DHiLive_VERSION_MAJOR=2) add_definitions(-DHiLive_VERSION_MINOR=0) ################### ### Build types ### ################### # Release flags set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" ) # Warning flags if ( STRICT_WARN ) add_compile_options( -Wall -Wextra -Wshadow -Wuninitialized -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion -Wdouble-promotion -Wformat=2 -Wstrict-aliasing -Wno-long-long -Wno-variadic-macros ) endif() # SeqAn specific flags if ( NOT CONDA ) add_compile_options( -static -march=native ) endif() # Set flags for compilation set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -pthread -W -Wall -std=gnu++14 -O0") # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -pthread -W -Wall -std=gnu++14 -O0") # add the binary tree to the search path for include files include_directories("${PROJECT_BINARY_DIR}") ############################# ### setup Boost libraries ### ############################################ ### Dependencies and 3rd party libraries ### ############################################ # BOOST if ( BOOST_PATH ) set( Boost_NO_BOOST_CMAKE TRUE ) set( Boost_NO_SYSTEM_PATHS TRUE ) set( BOOST_ROOT "${BOOST_PATH}" ) set( Boost_LIBRARY_DIRS "${BOOST_PATH}/lib" ) endif() set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME ON) find_package( Boost COMPONENTS system filesystem program_options REQUIRED ) find_package( Boost COMPONENTS system filesystem program_options iostreams REQUIRED ) include_directories( ${Boost_INCLUDE_DIR} ) ############################ ### setup Zlib and lz4 libraries ### # ZLIB find_package( ZLIB REQUIRED ) #set (LZ4_PATH /usr/local/lib) # possibly adjust this to [pathToLz4]/lib if using downloaded lz4 source code include_directories(${LZ4_PATH}) link_directories(${LZ4_PATH}) set(CompressionLibs "${ZLIB_LIBRARIES};lz4") # LZ4 if ( LZ4_PATH ) set( LZ4_LIB "${LZ4_PATH}/lib" ) endif() ############################# ### setup seqan libraries ### needs to be done AFTER searching for Zlib include_directories(${LZ4_LIB}) link_directories(${LZ4_LIB}) set(CompressionLibs "${ZLIB_LIBRARIES};lz4") set (CMAKE_MODULE_PATH "/usr/local/lib/seqan/util/cmake") # adjust this to [pathToSeqanCode]/util/cmake set (SEQAN_INCLUDE_PATH "/usr/local/lib/seqan/include/") # adjust this to [pathToSeqanCode]/include # SEQAN if ( SEQAN_PATH ) set (CMAKE_MODULE_PATH "${SEQAN_PATH}/util/cmake") set (SEQAN_INCLUDE_PATH "${SEQAN_PATH}/include/") endif() # Configure SeqAn, enabling features for libbz2 and zlib. #set (SEQAN_FIND_DEPENDENCIES ZLIB BZip2) # original version from seqan tutorial set (SEQAN_FIND_DEPENDENCIES BZip2) find_package (SeqAn REQUIRED) # Add include directories, defines, and flags for SeqAn (and its dependencies). add_library( SeqAn INTERFACE ) include_directories (${SEQAN_INCLUDE_DIRS}) add_definitions (${SEQAN_DEFINITIONS}) add_compile_options( ${SEQAN_DEFINITIONS} ) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS}") ############################## ### setup HiLive libraries ### ############################## include_directories("${PROJECT_SOURCE_DIR}/lib") # make a list of HiLive libraries set (LIB_NAMES tools_static tools alnread alnstream illumina_parsers kindex parallel argument_parser) set (LIB_NAMES tools_static tools alnread alnstream alnout illumina_parsers kindex parallel argument_parser) set(LIB_LIST "") foreach (x ${LIB_NAMES}) list(APPEND LIB_LIST "lib/${x}.cpp") endforeach() add_library(HiLiveLibs ${LIB_LIST}) ############################# ### Build the executables ### Loading @@ -76,11 +133,3 @@ target_link_libraries(hilive-build HiLiveLibs ${CompressionLibs} ${Boost_LIBRARI add_executable(hilive-out tools/hilive_out.cpp ) target_link_libraries(hilive-out HiLiveLibs ${CompressionLibs} ${Boost_LIBRARIES} ${SEQAN_LIBRARIES}) ##################### ### for debugging ### #get_cmake_property(_variableNames VARIABLES) #foreach (_variableName ${_variableNames}) #message(STATUS "${_variableName}=${${_variableName}}") #endforeach() CONTRIBUTORS→CONTRIBUTORS.md +32 −0 Original line number Diff line number Diff line Bernhard Y. Renard <renardb (at) rki.de> * Project head Contributors ============ Martin S. Lindner <martin (at) mail-linder.de> * Project founder, implemented versions 0.1 and 0.2 Active contributors ----- Jakob M. Schulze <jakobschulze (at) arcor.de> * development v0.2 -> v0.3 * development support v0.3 -> v1.0 Bernhard Y. Renard <renardb (at) rki.de> * Project head Tobias P. Loka <lokat (at) rki.de> * development v0.3 -> v1.0 * development v1.0 -> v1.1 * Development HiLive v2.0 (HiLive2) * Development HiLive v1.1 * Development HiLive v1.0 Simon H. Tausch <tauschs (at) rki.de> * continuous development support Former contributors ----- Martin S. Lindner <martin (at) mail-linder.de> * Development HiLive v0.2 * Development HiLive v0.1 * Project founder Jakob M. Schulze <jakobschulze (at) arcor.de> * Development support v1.0 * Development v0.3 Kristina Kirsten * development support v0.3 -> v1.0 (real-time SAM/BAM output) No newline at end of file * Development support v1.0 Loading
.gitignore 0 → 100644 +7 −0 Original line number Diff line number Diff line # Ignore locally built doxygen documentation documentation/doxygen/doxygen_sqlite3.db documentation/doxygen/html/ documentation/doxygen/latex/ # Ignore .DS_Store that is known to clutter repositories on MacOS .DS_Store No newline at end of file
.gitlab-ci.yml 0 → 100644 +27 −0 Original line number Diff line number Diff line image: alpine before_script: - apk update - apk add doxygen ## Uncomment the following line if you use graphviz dot graphs - apk add ttf-freefont graphviz test: script: ## execute doxygen - doxygen documentation/doxygen/config.doxyfile except: - master #pages: # script: # ## execute doxygen # - doxygen documentation/doxygen/config.doxyfile # ## Move documentation/doxygen/html/ to public # - mv documentation/doxygen/html/ public/ # artifacts: # paths: # - public # only: # ## Branch # - master
CHANGELOG.md +26 −5 Original line number Diff line number Diff line HiLive - Live Mapping of Illumina reads ======================================= Changelog ----------- ========= v2.0 ----- Version 2.0 comes with a completely new index and algorithm. This comes with major changes in parameter settings. Please note, that commands and index files of previous versions cannot be used with HiLive v2.0. The old HiLive version using the k-mer seed-and-extend approach is still available in a separated repository. Please visit https://gitlab.com/rki_bioinformatics/HiLive for access to both versions. General functionality: * New algorithm based on the FM-index * Exact mapping results after a potential front softclip * Support of alternative scoring models other than edit distance Parameters: * Revised parameter nomenclature * Multitoken parameters must now be comma-separated * Changed config file format to .ini * Additional parameters to facilitate parameter input (e.g., --max-tile for easier tile declaration) * Different alignment modes for automated selection of algorithmic parameters Output: * Corrected SAM flags for paired-end reads. v1.1 ----- Loading
CMakeLists.txt +85 −36 Original line number Diff line number Diff line ############## ### Header ### ############## cmake_minimum_required (VERSION 2.8) project (HiLive) # Set the version number add_definitions(-DHiLive_VERSION_MAJOR=1) add_definitions(-DHiLive_VERSION_MINOR=1) cmake_minimum_required( VERSION 3.10 FATAL_ERROR ) project( HiLive VERSION 2.0 LANGUAGES CXX ) ################### ### Build Setup ### ################### # Set CXX Standard set( CMAKE_CXX_STANDARD 14 ) set( CMAKE_CXX_SANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS OFF ) # Set runtime output directory set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} ) # Error on unsupported compiler if( NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" ) message( FATAL_ERROR "Compiler id '${CMAKE_CXX_COMPILER_ID}' is not supported, please \ check the documentation." ) endif() # Compiling options option( VERBOSE_CONFIG "Verbose mode for quick build setup debugging." OFF ) option( CONDA "Flag for compilation in conda env." OFF ) option( LZ4_PATH "Path to manually installed LZ4 library." "") option( SEQAN_PATH "Path to manually installed SeqAn library." "") option( BOOST_PATH "Path to manually installed Boost library." "") option( STRICT_WARN "Flag for strict warnings." OFF ) # Set HiLive2 compile-time variables add_definitions(-DHiLive_VERSION_MAJOR=2) add_definitions(-DHiLive_VERSION_MINOR=0) ################### ### Build types ### ################### # Release flags set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" ) # Warning flags if ( STRICT_WARN ) add_compile_options( -Wall -Wextra -Wshadow -Wuninitialized -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion -Wdouble-promotion -Wformat=2 -Wstrict-aliasing -Wno-long-long -Wno-variadic-macros ) endif() # SeqAn specific flags if ( NOT CONDA ) add_compile_options( -static -march=native ) endif() # Set flags for compilation set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -pthread -W -Wall -std=gnu++14 -O0") # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -pthread -W -Wall -std=gnu++14 -O0") # add the binary tree to the search path for include files include_directories("${PROJECT_BINARY_DIR}") ############################# ### setup Boost libraries ### ############################################ ### Dependencies and 3rd party libraries ### ############################################ # BOOST if ( BOOST_PATH ) set( Boost_NO_BOOST_CMAKE TRUE ) set( Boost_NO_SYSTEM_PATHS TRUE ) set( BOOST_ROOT "${BOOST_PATH}" ) set( Boost_LIBRARY_DIRS "${BOOST_PATH}/lib" ) endif() set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME ON) find_package( Boost COMPONENTS system filesystem program_options REQUIRED ) find_package( Boost COMPONENTS system filesystem program_options iostreams REQUIRED ) include_directories( ${Boost_INCLUDE_DIR} ) ############################ ### setup Zlib and lz4 libraries ### # ZLIB find_package( ZLIB REQUIRED ) #set (LZ4_PATH /usr/local/lib) # possibly adjust this to [pathToLz4]/lib if using downloaded lz4 source code include_directories(${LZ4_PATH}) link_directories(${LZ4_PATH}) set(CompressionLibs "${ZLIB_LIBRARIES};lz4") # LZ4 if ( LZ4_PATH ) set( LZ4_LIB "${LZ4_PATH}/lib" ) endif() ############################# ### setup seqan libraries ### needs to be done AFTER searching for Zlib include_directories(${LZ4_LIB}) link_directories(${LZ4_LIB}) set(CompressionLibs "${ZLIB_LIBRARIES};lz4") set (CMAKE_MODULE_PATH "/usr/local/lib/seqan/util/cmake") # adjust this to [pathToSeqanCode]/util/cmake set (SEQAN_INCLUDE_PATH "/usr/local/lib/seqan/include/") # adjust this to [pathToSeqanCode]/include # SEQAN if ( SEQAN_PATH ) set (CMAKE_MODULE_PATH "${SEQAN_PATH}/util/cmake") set (SEQAN_INCLUDE_PATH "${SEQAN_PATH}/include/") endif() # Configure SeqAn, enabling features for libbz2 and zlib. #set (SEQAN_FIND_DEPENDENCIES ZLIB BZip2) # original version from seqan tutorial set (SEQAN_FIND_DEPENDENCIES BZip2) find_package (SeqAn REQUIRED) # Add include directories, defines, and flags for SeqAn (and its dependencies). add_library( SeqAn INTERFACE ) include_directories (${SEQAN_INCLUDE_DIRS}) add_definitions (${SEQAN_DEFINITIONS}) add_compile_options( ${SEQAN_DEFINITIONS} ) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS}") ############################## ### setup HiLive libraries ### ############################## include_directories("${PROJECT_SOURCE_DIR}/lib") # make a list of HiLive libraries set (LIB_NAMES tools_static tools alnread alnstream illumina_parsers kindex parallel argument_parser) set (LIB_NAMES tools_static tools alnread alnstream alnout illumina_parsers kindex parallel argument_parser) set(LIB_LIST "") foreach (x ${LIB_NAMES}) list(APPEND LIB_LIST "lib/${x}.cpp") endforeach() add_library(HiLiveLibs ${LIB_LIST}) ############################# ### Build the executables ### Loading @@ -76,11 +133,3 @@ target_link_libraries(hilive-build HiLiveLibs ${CompressionLibs} ${Boost_LIBRARI add_executable(hilive-out tools/hilive_out.cpp ) target_link_libraries(hilive-out HiLiveLibs ${CompressionLibs} ${Boost_LIBRARIES} ${SEQAN_LIBRARIES}) ##################### ### for debugging ### #get_cmake_property(_variableNames VARIABLES) #foreach (_variableName ${_variableNames}) #message(STATUS "${_variableName}=${${_variableName}}") #endforeach()
CONTRIBUTORS→CONTRIBUTORS.md +32 −0 Original line number Diff line number Diff line Bernhard Y. Renard <renardb (at) rki.de> * Project head Contributors ============ Martin S. Lindner <martin (at) mail-linder.de> * Project founder, implemented versions 0.1 and 0.2 Active contributors ----- Jakob M. Schulze <jakobschulze (at) arcor.de> * development v0.2 -> v0.3 * development support v0.3 -> v1.0 Bernhard Y. Renard <renardb (at) rki.de> * Project head Tobias P. Loka <lokat (at) rki.de> * development v0.3 -> v1.0 * development v1.0 -> v1.1 * Development HiLive v2.0 (HiLive2) * Development HiLive v1.1 * Development HiLive v1.0 Simon H. Tausch <tauschs (at) rki.de> * continuous development support Former contributors ----- Martin S. Lindner <martin (at) mail-linder.de> * Development HiLive v0.2 * Development HiLive v0.1 * Project founder Jakob M. Schulze <jakobschulze (at) arcor.de> * Development support v1.0 * Development v0.3 Kristina Kirsten * development support v0.3 -> v1.0 (real-time SAM/BAM output) No newline at end of file * Development support v1.0