diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f7422e..4ba58f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,10 @@ project(spoa VERSION 4.1.4 LANGUAGES CXX DESCRIPTION "Spoa is a c++ library (and tool) for SIMD vectorized partial order alignment.") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic") +if(NOT MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic") +endif() + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/include/spoa/graph.hpp b/include/spoa/graph.hpp index 5645766..7833e99 100644 --- a/include/spoa/graph.hpp +++ b/include/spoa/graph.hpp @@ -161,8 +161,7 @@ class Graph { const char* sequence, std::uint32_t sequence_len, const char* quality, std::uint32_t quality_len); - std::vector GenerateMultipleSequenceAlignment( - bool include_consensus = false); + std::vector GenerateMultipleSequenceAlignment(bool include_consensus = false, char gap='-'); std::string GenerateConsensus(); diff --git a/src/graph.cpp b/src/graph.cpp index 44cedd6..f58ae70 100644 --- a/src/graph.cpp +++ b/src/graph.cpp @@ -336,14 +336,13 @@ std::vector Graph::InitializeMultipleSequenceAlignment( return dst; } -std::vector Graph::GenerateMultipleSequenceAlignment( - bool include_consensus) { +std::vector Graph::GenerateMultipleSequenceAlignment(bool include_consensus, char gap) { std::uint32_t row_size = 0; auto node_id_to_column = InitializeMultipleSequenceAlignment(&row_size); std::vector dst; for (std::uint32_t i = 0; i < sequences_.size(); ++i) { - std::string row(row_size, '-'); + std::string row(row_size, gap); auto it = sequences_[i]; while (true) { row[node_id_to_column[it->id]] = decoder_[it->code]; @@ -355,7 +354,7 @@ std::vector Graph::GenerateMultipleSequenceAlignment( } if (include_consensus) { TraverseHeaviestBundle(); - std::string row(row_size, '-'); + std::string row(row_size, gap); for (const auto& it : consensus_) { row[node_id_to_column[it->id]] = decoder_[it->code]; }