Skip to content

Commit

Permalink
Merge pull request #223 from DaehwanKimLab/release/2.2.0-rc
Browse files Browse the repository at this point in the history
Release/2.2.0
  • Loading branch information
parkchanhee authored Feb 6, 2020
2 parents 0b2fe54 + 948d982 commit 20f24e3
Show file tree
Hide file tree
Showing 102 changed files with 21,249 additions and 3,050 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
*~
*.dSYM
.DS_Store
tags
*-debug
*-s
*-l
hisat2.xcodeproj/project.xcworkspace
hisat2.xcodeproj/xcuserdata
hisat2.xcodeproj/xcshareddata
*.patch

build_automaton
build_index
clean_alignment
determinize
gcsa_alignment
gcsa_test
hisat2-repeat

hisat2_test/*.bt2
hisat2_test/*.ht2
Expand All @@ -28,6 +31,13 @@ hisat2_test/genome*
hisat2_test/2*
hisat2_test/snp142*
hisat2_test/testset*

.idea
.vscode

.ht2lib-obj*
*.a
*.so
docs/_site
docs/*.lock
docs/.*-cache
247 changes: 247 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
cmake_minimum_required(VERSION 3.10)
project(hisat2)

# escape preprocessor definition
cmake_policy(SET CMP0005 NEW)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()

option(BOWTIE_MM "enable memory mapping" ON)
option(BOWTIE_SHARED_MEM "enable shared memory mapping" OFF)
option(USE_SRA "enable NCBI SRA Toolkit" OFF)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_VERBOSE_MAKEFILE true)
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
set(NCBI_NGS_DIR ${NCBI_NGS_DIR})

# Common Flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -g3 -Wall -msse2")

# Debug/Release Flag
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -funroll-loops")

set(INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")

if(MINGW OR CYGWIN)
option(BOWTIE_MM "Memory mapped files not supported on Windows" OFF)
option(BOWTIE_SHARED_MEM "Shared memory not supported on Windows" OFF)
endif()

if (USE_SRA AND APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.6")
endif()

set(HISAT2_BIN_LIST
hisat2-build-s
hisat2-build-l
hisat2-align-s
hisat2-align-l
hisat2-inspect-s
hisat2-inspect-l
hisat2-repeat
)

set(HISAT2_LIB_LIST
hisat2lib
)


# Source Codes
set(SHARED_CPPS
alphabet.cpp
ccnt_lut.cpp
ds.cpp
edit.cpp
gfm.cpp
limit.cpp
multikey_qsort.cpp
random_source.cpp
reference.cpp
ref_read.cpp
shmem.cpp
tinythread.cpp
)

set(SEARCH_CPPS
aligner_bt.cpp
aligner_cache.cpp
aligner_driver.cpp
aligner_result.cpp
aligner_seed.cpp
aligner_seed2.cpp
aligner_seed_policy.cpp
aligner_sw.cpp
aligner_sw_driver.cpp
aligner_swsse.cpp
aligner_swsse_ee_i16.cpp
aligner_swsse_ee_u8.cpp
aligner_swsse_loc_i16.cpp
aligner_swsse_loc_u8.cpp
aln_sink.cpp
dp_framer.cpp
outq.cpp
pat.cpp
pe.cpp
presets.cpp
qual.cpp
random_util.cpp
read_qseq.cpp
ref_coord.cpp mask.cpp
scoring.cpp
simple_func.cpp
splice_site.cpp
sse_util.cpp
unique.cpp
hisat2_main.cpp
hisat2.cpp
)

set(BUILD_CPPS
diff_sample.cpp
hisat2_build_main.cpp
hisat2_build.cpp
)

set(REPEAT_CPPS
aligner_bt.cpp
aligner_result.cpp
aligner_sw_driver.cpp
aligner_sw.cpp
aligner_swsse_ee_i16.cpp
aligner_swsse_ee_u8.cpp
aligner_swsse_loc_i16.cpp
aligner_swsse_loc_u8.cpp
aligner_swsse.cpp
bit_packed_array.cpp
bit_packed_array.h
dp_framer.cpp
mask.cpp
qual.cpp
repeat_builder.cpp
scoring.cpp
simple_func.cpp
diff_sample.cpp
hisat2_repeat_main.cpp
hisat2_repeat.cpp
)

set(INSPECT_CPPS
hisat2_inspect.cpp
)


set(HT2LIB_CPPS
hisat2lib/ht2_init.cpp
hisat2lib/ht2_repeat.cpp
hisat2lib/ht2_index.cpp
)


string(TIMESTAMP BUILD_DATE)
file(STRINGS VERSION HISAT2_VERSION)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -v OUTPUT_VARIABLE COMPILER_VERSION)

add_definitions(
-DBOWTIE2
-DBUILD_HOST="${CMAKE_HOST_SYSTEM}"
-DBUILD_TIME="${BUILD_DATE}"
-DCOMPILER_VERSION="${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_VERSION}"
-DHISAT2_VERSION="${HISAT2_VERSION}"
-D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64
-D_GNU_SOURCE
-DPOPCNT_CAPABILITY
)


include_directories(third_party)

link_libraries(
pthread
)


if(BOWTIE_MM)
add_definitions(-DBOWTIE_MM)
endif()

if(BOWTIE_SHARED_MEM)
add_definitions(-DBOWTIE_SHARED_MEM)
endif()

include_directories(${PROJECT_SOURCE_DIR})
add_definitions(-DCOMPILER_OPTIONS="${CMAKE_CXX_FLAGS}")

add_library(hisat2lib_static STATIC ${HT2LIB_CPPS} ${SHARED_CPPS})
add_library(hisat2lib_shared SHARED ${HT2LIB_CPPS} ${SHARED_CPPS})
add_custom_target(ht2lib)
add_dependencies(ht2lib hisat2lib_static hisat2lib_shared)

set_target_properties(hisat2lib_static PROPERTIES OUTPUT_NAME hisat2lib)
set_target_properties(hisat2lib_shared PROPERTIES OUTPUT_NAME hisat2lib)





add_executable(hisat2-align-s ${SEARCH_CPPS} ${SHARED_CPPS})
add_executable(hisat2-align-l ${SEARCH_CPPS} ${SHARED_CPPS})
add_executable(hisat2-build-s ${BUILD_CPPS} ${SHARED_CPPS})
add_executable(hisat2-build-l ${BUILD_CPPS} ${SHARED_CPPS})
add_executable(hisat2-inspect-s ${INSPECT_CPPS} ${SHARED_CPPS})
add_executable(hisat2-inspect-l ${INSPECT_CPPS} ${SHARED_CPPS})
add_executable(hisat2-repeat ${REPEAT_CPPS} ${SHARED_CPPS})
set_target_properties(${HISAT2_BIN_LIST} PROPERTIES DEBUG_POSTFIX "-debug")
set_target_properties(hisat2-align-l hisat2-build-l hisat2-inspect-l hisat2-repeat
PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -DBOWTIE_64BIT_INDEX")

target_compile_options(hisat2-inspect-s PUBLIC "-DHISAT2_INSPECT_MAIN")
target_compile_options(hisat2-inspect-l PUBLIC "-DHISAT2_INSPECT_MAIN")

target_compile_options(hisat2-build-s PUBLIC "-DMASSIVE_DATA_RLCSA")

target_compile_options(hisat2lib_static PUBLIC "-fPIC")
target_include_directories(hisat2lib_static PUBLIC hisat2lib)
target_include_directories(hisat2lib_shared PUBLIC hisat2lib)

if(USE_SRA)
if(NOT NCBI_NGS_DIR)
message(FATAL_ERROR "You should set NCBI_NGS_DIR path. cmake3 .... -DNCBI_NGS_DIR=/path/to/ngs")
endif()
#set(NCBI_NGS_DIR /home/parkch/.local/ngs)

target_compile_options(hisat2-align-s PUBLIC "-DUSE_SRA")
target_compile_options(hisat2-align-l PUBLIC "-DUSE_SRA")
target_include_directories(hisat2-align-s PUBLIC "${NCBI_NGS_DIR}/include")
target_include_directories(hisat2-align-l PUBLIC "${NCBI_NGS_DIR}/include")

set(NCBI_LIBS
${NCBI_NGS_DIR}/lib64/libncbi-ngs-c++-static.a
${NCBI_NGS_DIR}/lib64/libngs-c++-static.a
${NCBI_NGS_DIR}/lib64/libncbi-vdb-static.a
${CMAKE_DL_LIBS}
)

target_link_libraries(hisat2-align-s ${NCBI_LIBS})
target_link_libraries(hisat2-align-l ${NCBI_LIBS})
endif()

add_custom_target(hisat2-all)
add_dependencies(hisat2-all
hisat2-align-s
hisat2-align-l
hisat2-build-s
hisat2-build-l
hisat2-inspect-s
hisat2-inspect-l
hisat2-repeat)

#
# Examples
#
#target_compile_options(hisat2-inspect-s PUBLIC $<$<CONFIG:DEBUG>:-DDEBUGONLY>)
#target_compile_options(hisat2-inspect-s PUBLIC $<$<CONFIG:RELEASE>:-DRELEASEONLY>)
Binary file added HISAT2-genotype.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 20f24e3

Please sign in to comment.