Commit cde4721f authored by Andreas Tille's avatar Andreas Tille
Browse files

New upstream version 2.0a

parent 00933ac4
Loading
Loading
Loading
Loading
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				
+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
-----
+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 ###

@@ -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()
+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