Skip to content
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
03ab50c
don't show progress bar while extracting contigs from the query graph
karasikov May 16, 2025
2ad67fd
compile on MacOS
karasikov May 16, 2025
977199e
keep column positions in small vectors
karasikov May 16, 2025
3ec88ce
always compile htslib
karasikov May 16, 2025
5688029
revert CMakeLists.txt
karasikov May 16, 2025
3b8e67d
revert
karasikov May 16, 2025
7cac361
back to Vector
karasikov May 16, 2025
4b68370
pass verbose without changing the global veriable
karasikov May 16, 2025
11d6002
keep rows in small vectors
karasikov May 16, 2025
f5d7fee
use uint32_t for column indexes
karasikov May 16, 2025
c6bd124
minor
karasikov May 17, 2025
30102c0
minor
karasikov May 18, 2025
1b72092
minor
karasikov May 18, 2025
6c4a94d
up
karasikov May 18, 2025
04bbca2
Merge branch 'master' into mk/query
adamant-pwn May 18, 2025
993ed04
minor
karasikov May 18, 2025
ae7f467
minor
karasikov May 18, 2025
acf74f4
report the number of query k-mer matches for each batch
karasikov May 18, 2025
f40c097
batch accumulation in query
karasikov May 19, 2025
f46682a
Merge remote-tracking branch 'origin/master' into mk/query
karasikov May 19, 2025
b35a2de
deduplicate rows in aggregated batches
karasikov May 19, 2025
27b0171
Merge remote-tracking branch 'origin/master' into mk/query
karasikov May 19, 2025
1c16215
fix
karasikov May 19, 2025
2f8048a
fix: aggregate the number of bp in aggregated batches
karasikov May 19, 2025
014b3fe
print size of aggregated batches in logs
karasikov May 19, 2025
44e4719
Merge remote-tracking branch 'origin/master' into mk/query
karasikov May 19, 2025
5166c2d
added flag --batch-min-matches to control the batch aggregation
karasikov May 20, 2025
9a1b2b6
refactoring: decoupled graph and annotation in query.cpp
karasikov May 20, 2025
22a47a3
don't pass the entire anno_graph where unnecessary
karasikov May 20, 2025
2a8baca
fix typo
karasikov May 20, 2025
d717f0c
cleanup/refactoring
karasikov May 20, 2025
6960c5f
refactoring: removed QueryExecutor for simplification
karasikov May 21, 2025
a5cef5a
load annotation in a separate thread
karasikov May 22, 2025
1775c3f
fix
karasikov May 22, 2025
926d2df
fix wrapping
karasikov May 22, 2025
8e8e0ef
minor
karasikov May 22, 2025
df5e05d
last part of batch query (fetch annotations) in a single worker
karasikov May 22, 2025
5e7c969
minor
karasikov May 24, 2025
fdebe57
move lock
karasikov May 24, 2025
17ec5c9
change threading
karasikov May 25, 2025
6944b07
change
karasikov May 25, 2025
696fe57
minor
karasikov May 25, 2025
dff0f7a
cleanup logs
karasikov May 25, 2025
5ab5410
use query sequences without extracting contigs
karasikov May 26, 2025
4a33b93
cleanup
karasikov May 26, 2025
4eb9be1
fix
karasikov May 26, 2025
ebd3c12
optimization
karasikov May 26, 2025
5ca0e71
canonical mode
karasikov May 26, 2025
e5078b9
fix
karasikov May 26, 2025
2af7fa7
minor
karasikov May 26, 2025
4849833
mapping single thread
karasikov May 26, 2025
947f88f
parallel mapping
karasikov May 26, 2025
fc60ad0
log query graph construction and mapping separately
karasikov May 26, 2025
0f4cdb6
build primary batch graph instead of canonical
karasikov May 26, 2025
7b6047d
map with all threads
karasikov May 26, 2025
5d9bb14
revert
karasikov May 26, 2025
39e8a8b
revert
karasikov May 27, 2025
4cee813
fix for short sequences: check length
karasikov May 28, 2025
5e03993
cleanup
karasikov May 28, 2025
273f83a
load graph and annotation in parallel
karasikov May 28, 2025
a92dab7
fix
karasikov May 28, 2025
1225412
Merge branch 'master' into mk/query
karasikov Sep 29, 2025
e374fac
Merge remote-tracking branch 'origin/master' into mk/query
karasikov Mar 23, 2026
ae0f8b6
Merge remote-tracking branch 'origin/master' into mk/query
karasikov Apr 23, 2026
14fc939
Merge remote-tracking branch 'origin/master' into mk/query
karasikov Apr 30, 2026
5410804
Merge remote-tracking branch 'origin/master' into mk/query
karasikov May 2, 2026
ccab5f6
assemble: load graph and annotation in parallel
karasikov May 2, 2026
17cc825
query: use load_graph_with_async_annotation; drop unused load_annotat…
karasikov May 2, 2026
c71c954
load_annotated_graph: revert load_annotation extraction
karasikov May 2, 2026
642dfab
threading: remove unused ThreadPool::num_waiting_tasks
karasikov May 2, 2026
22fba95
dbg_hash_ordered: rename loop variable in_graph -> valid
karasikov May 2, 2026
31f55b0
Merge master (#625) into mk/query
karasikov May 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions metagraph/src/annotation/annotation_converters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ void convert_to_row_diff<RowDiffRowSparseAnnotator>(

std::unique_ptr<MultiBRWTAnnotator>
convert_to_BRWT(
const std::vector<std::vector<uint64_t>> &linkage,
const std::vector<std::vector<uint32_t>> &linkage,
size_t num_parallel_nodes,
size_t num_threads,
const fs::path &tmp_path,
Expand Down Expand Up @@ -456,7 +456,7 @@ convert_to_BRWT(
template <>
std::unique_ptr<MultiBRWTAnnotator> convert_to_BRWT<MultiBRWTAnnotator>(
const std::vector<std::string> &annotation_files,
const std::vector<std::vector<uint64_t>> &linkage,
const std::vector<std::vector<uint32_t>> &linkage,
size_t num_parallel_nodes,
size_t num_threads,
const fs::path &tmp_path) {
Expand Down Expand Up @@ -487,7 +487,7 @@ std::unique_ptr<MultiBRWTAnnotator> convert_to_BRWT<MultiBRWTAnnotator>(
template<>
std::unique_ptr<RowDiffBRWTAnnotator>
convert_to_BRWT<RowDiffBRWTAnnotator>(const std::vector<std::string> &annotation_files,
const std::vector<std::vector<uint64_t>> &linkage,
const std::vector<std::vector<uint32_t>> &linkage,
size_t num_parallel_nodes,
size_t num_threads,
const fs::path &tmp_path) {
Expand Down
2 changes: 1 addition & 1 deletion metagraph/src/annotation/annotation_converters.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ convert_to_greedy_BRWT(RowDiffColumnAnnotator &&annotation,
template <class StaticAnnotation>
std::unique_ptr<StaticAnnotation>
convert_to_BRWT(const std::vector<std::string> &annotation_files,
const std::vector<std::vector<uint64_t>> &linkage_matrix,
const std::vector<std::vector<uint32_t>> &linkage_matrix,
size_t num_parallel_nodes = 1,
size_t num_threads = 1,
const std::filesystem::path &tmp_dir = "");
Expand Down
4 changes: 2 additions & 2 deletions metagraph/src/annotation/binary_matrix/base/binary_matrix.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ namespace matrix {
class BinaryMatrix {
public:
typedef uint64_t Row;
typedef uint64_t Column;
typedef uint32_t Column;

typedef Vector<Column> SetBitPositions;
typedef SmallVector<Column> SetBitPositions;
typedef std::function<void(const SetBitPositions &)> RowCallback;
typedef std::function<void(Row, Column)> ValueCallback;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ ColumnMajor::sum_rows(const std::vector<std::pair<Row, size_t>> &index_counts,
if (total_sum_count < min_count)
return {};

std::vector<std::pair<uint64_t, size_t>> result;
std::vector<std::pair<Column, size_t>> result;
result.reserve(num_columns());

for (size_t j = 0; j < num_columns(); ++j) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ BRWT BRWTBottomUpBuilder::concatenate(std::vector<BRWT>&& submatrices,
uint64_t num_columns = 0;
Partition partition;
for (const BRWT &submatrix : submatrices) {
partition.push_back(utils::arange(num_columns, submatrix.num_columns()));
partition.push_back(utils::arange<BRWT::Column, std::vector<BRWT::Column>>(num_columns, submatrix.num_columns()));
num_columns += submatrix.num_columns();
}
parent.assignments_ = RangePartition(std::move(partition));
Expand Down Expand Up @@ -130,7 +130,7 @@ BRWT BRWTBottomUpBuilder::concatenate_sparse(std::vector<BRWT>&& submatrices,
uint64_t num_columns = 0;
Partition partition;
for (const BRWT &submatrix : submatrices) {
partition.push_back(utils::arange(num_columns, submatrix.num_columns()));
partition.push_back(utils::arange<BRWT::Column, std::vector<BRWT::Column>>(num_columns, submatrix.num_columns()));
num_columns += submatrix.num_columns();
}
parent.assignments_ = RangePartition(std::move(partition));
Expand Down Expand Up @@ -162,7 +162,7 @@ BRWT BRWTBottomUpBuilder::concatenate_sparse(std::vector<BRWT>&& submatrices,

template <typename T>
std::vector<T> subset(std::vector<T> *vector,
const std::vector<uint64_t> indexes) {
const std::vector<BRWT::Column> indexes) {
assert(vector);

std::vector<T> result;
Expand Down Expand Up @@ -195,7 +195,7 @@ BRWT BRWTBottomUpBuilder::build(std::vector<std::unique_ptr<bit_vector>>&& colum
// linkage[c] = {} for each c < num_columns
BRWT BRWTBottomUpBuilder::build(
const std::function<void(const CallColumn &)> &get_columns,
const std::vector<std::vector<uint64_t>> &linkage,
const std::vector<std::vector<BRWT::Column>> &linkage,
const std::filesystem::path &tmp_path,
size_t num_nodes_parallel,
size_t num_threads) {
Expand Down Expand Up @@ -322,7 +322,7 @@ BRWT BRWTBottomUpBuilder::build(

ThreadPool thread_pool(num_threads, 100'000 * num_threads);

std::vector<std::vector<uint64_t>> stored_columns(linkage.size());
std::vector<std::vector<BRWT::Column>> stored_columns(linkage.size());

#pragma omp parallel for num_threads(num_nodes_parallel) schedule(dynamic)
for (size_t i = num_leaves; i < linkage.size(); ++i) {
Expand Down Expand Up @@ -454,7 +454,7 @@ BRWT BRWTBottomUpBuilder::merge(std::vector<BRWT>&& nodes,
uint64_t num_columns_total = 0;
Partition current_partition;
for (const BRWT &node : nodes) {
current_partition.push_back(utils::arange(num_columns_total, node.num_columns()));
current_partition.push_back(utils::arange<BRWT::Column, std::vector<BRWT::Column>>(num_columns_total, node.num_columns()));
num_columns_total += node.num_columns();
}

Expand Down Expand Up @@ -572,7 +572,7 @@ void BRWTOptimizer::reassign(size_t node_rank, BRWT *parent, size_t num_threads)

BRWT &node = dynamic_cast<BRWT&>(*parent->child_nodes_.at(node_rank));

std::vector<uint64_t> column_arrangement;
std::vector<BRWT::Column> column_arrangement;
std::vector<size_t> group_sizes;
for (size_t g = 0; g < parent->assignments_.num_groups(); ++g) {
if (g == node_rank)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class BRWTBottomUpBuilder {
= std::function<void(uint64_t, std::unique_ptr<bit_vector>&&)>;

static BRWT build(const std::function<void(const CallColumn &)> &get_columns,
const std::vector<std::vector<uint64_t>> &linkage,
const std::vector<std::vector<BRWT::Column>> &linkage,
const std::filesystem::path &tmp_dir,
size_t num_nodes_parallel = 1,
size_t num_threads = 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace matrix {

using mtg::common::logger;

typedef std::vector<std::vector<uint64_t>> Partition;
typedef std::vector<std::vector<uint32_t>> Partition;
Comment thread
hmusta marked this conversation as resolved.
Outdated
typedef std::vector<const bit_vector *> VectorPtrs;


Expand Down Expand Up @@ -258,7 +258,7 @@ Partition greedy_matching(const std::vector<T> &columns, size_t num_threads) {
++progress_bar;
}

for (size_t i = 0; i < columns.size(); ++i) {
for (uint32_t i = 0; i < columns.size(); ++i) {
Comment thread
hmusta marked this conversation as resolved.
Outdated
if (!matched[i])
partition.push_back({ i });
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ struct SparseColumn {
// `SparseColumn` storing the column size and the positions of its set bits.
// Output: a set of greedily matched column pairs.
template <class T>
std::vector<std::vector<uint64_t>>
std::vector<std::vector<uint32_t>>
greedy_matching(const std::vector<T> &columns, size_t num_threads = 1);

// Format resembling the Z matrix from scipy.cluster.hierarchy.linkage
Expand Down
6 changes: 3 additions & 3 deletions metagraph/src/annotation/binary_matrix/row_diff/row_diff.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class RowDiff : public IRowDiff, public BinaryMatrix {
BaseMatrix& diffs() { return diffs_; }

private:
static void add_diff(const Vector<uint64_t> &diff, Vector<uint64_t> *row);
static void add_diff(const SetBitPositions &diff, SetBitPositions *row);

BaseMatrix diffs_;
};
Expand Down Expand Up @@ -210,14 +210,14 @@ void RowDiff<BaseMatrix>::serialize(std::ostream &f) const {
}

template <class BaseMatrix>
void RowDiff<BaseMatrix>::add_diff(const Vector<uint64_t> &diff, Vector<uint64_t> *row) {
void RowDiff<BaseMatrix>::add_diff(const SetBitPositions &diff, SetBitPositions *row) {
assert(std::is_sorted(row->begin(), row->end()));
assert(std::is_sorted(diff.begin(), diff.end()));

if (diff.empty())
return;

Vector<uint64_t> result;
SetBitPositions result;
result.reserve(row->size() + diff.size());
std::set_symmetric_difference(row->begin(), row->end(),
diff.begin(), diff.end(),
Expand Down
3 changes: 2 additions & 1 deletion metagraph/src/cli/query.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -945,7 +945,8 @@ construct_query_graph(const AnnotatedDBG &anno_graph,
},
num_threads,
// pull only primary contigs when building canonical query graph
full_dbg.get_mode() == DeBruijnGraph::CANONICAL);
full_dbg.get_mode() == DeBruijnGraph::CANONICAL,
false);

logger->trace("[Query graph construction] Contig extraction took {} sec", timer.elapsed());
timer.reset();
Expand Down
7 changes: 3 additions & 4 deletions metagraph/src/cli/transform_annotation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,11 @@ matrix::LinkageMatrix compute_linkage(const std::vector<std::string> &files,
}
}

std::vector<std::vector<uint64_t>>
std::vector<std::vector<uint32_t>>
parse_linkage_matrix(const std::string &filename) {
std::ifstream in(filename);

std::vector<std::vector<uint64_t>> linkage;
std::vector<std::vector<uint32_t>> linkage;
std::string line;
while (std::getline(in, line)) {
std::vector<std::string> parts = utils::split_string(line, " ");
Expand Down Expand Up @@ -858,8 +858,7 @@ int transform_annotation(Config *config) {
logger->trace("Generated new linkage and saved to {}",
config->linkage_file);
}
std::vector<std::vector<uint64_t>> linkage
= parse_linkage_matrix(config->linkage_file);
auto linkage = parse_linkage_matrix(config->linkage_file);
logger->trace("Linkage loaded from {}", config->linkage_file);

auto brwt_annotator = convert_to_BRWT<RowDiffBRWTAnnotator>(
Expand Down
16 changes: 6 additions & 10 deletions metagraph/src/common/range_partition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include "common/serialization.hpp"


RangePartition::RangePartition(const std::vector<uint64_t> &arrangement,
RangePartition::RangePartition(const std::vector<T> &arrangement,
const std::vector<size_t> &group_sizes) {
size_t offset = 0;
for (size_t group_size : group_sizes) {
Expand All @@ -19,15 +19,11 @@ RangePartition::RangePartition(const std::vector<uint64_t> &arrangement,
initialize_groups_and_ranks();
}

RangePartition::RangePartition(std::vector<std::vector<uint64_t>>&& partition) {
partition_.reserve(partition.size());
for (auto &group : partition) {
assert(group.size() && "partition blocks must not be empty");
partition_.emplace_back(group.begin(), group.end());
group.clear();
}
partition.clear();

RangePartition::RangePartition(std::vector<std::vector<T>>&& partition)
: partition_(std::move(partition)) {
assert(std::all_of(partition_.begin(), partition_.end(),
[](const auto &group) { return !group.empty(); })
&& "partition blocks must not be empty");
assert(initialize_groups_and_ranks());
initialize_groups_and_ranks();
}
Expand Down
4 changes: 2 additions & 2 deletions metagraph/src/common/range_partition.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ class RangePartition {
typedef uint32_t R;

RangePartition() {}
RangePartition(const std::vector<uint64_t> &arrangement,
RangePartition(const std::vector<T> &arrangement,
const std::vector<size_t> &group_sizes);
explicit RangePartition(std::vector<std::vector<uint64_t>>&& partition);
explicit RangePartition(std::vector<std::vector<T>>&& partition);

// get group that contains value
inline G group(T value) const;
Expand Down
2 changes: 1 addition & 1 deletion metagraph/src/graph/alignment/aligner_labeled.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ typedef AnnotationBuffer::Columns Columns;
typedef DeBruijnGraph::node_index node_index;

// dummy index for an unfetched annotations
static constexpr size_t nannot = std::numeric_limits<size_t>::max();
static constexpr Column nannot = std::numeric_limits<Column>::max();

template <class T1, class T2>
bool overlap_with_diff(const T1 &tuple1, const T2 &tuple2, int64_t diff) {
Expand Down
2 changes: 1 addition & 1 deletion metagraph/src/graph/alignment/annotation_buffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ void AnnotationBuffer::fetch_queued_annotations() {
} else {
for (auto&& labels : annotator_.get_matrix().get_rows(queued_rows)) {
std::sort(labels.begin(), labels.end());
push_node_labels(node_it++, row_it++, std::move(labels));
push_node_labels(node_it++, row_it++, Columns(labels.begin(), labels.end()));
}
}

Expand Down
2 changes: 1 addition & 1 deletion metagraph/src/graph/annotated_graph_algorithm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ construct_diff_label_count_vector(const AnnotatedDBG &anno_graph,
code_to_indicator[label_encoder.encode(label_out)] |= 2;
}

std::vector<uint64_t> label_codes;
std::vector<annot::matrix::BinaryMatrix::Column> label_codes;
label_codes.reserve(code_to_indicator.size());
for (const auto &[code, indicator] : code_to_indicator) {
label_codes.push_back(code);
Expand Down
10 changes: 6 additions & 4 deletions metagraph/src/graph/representation/base/sequence_graph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,8 @@ void call_sequences(const DeBruijnGraph &graph,
size_t num_threads,
bool call_unitigs,
uint64_t min_tip_size,
bool kmers_in_single_form) {
bool kmers_in_single_form,
bool verbose = common::get_verbose()) {
// TODO: port over the implementation from BOSS
std::ignore = num_threads;

Expand All @@ -351,7 +352,7 @@ void call_sequences(const DeBruijnGraph &graph,

ProgressBar progress_bar(visited.size() - sdsl::util::cnt_one_bits(visited),
"Traverse graph",
std::cerr, !common::get_verbose());
std::cerr, !verbose);

auto call_paths_from = [&](node_index node) {
call_sequences_from(graph,
Expand Down Expand Up @@ -417,8 +418,9 @@ void call_sequences(const DeBruijnGraph &graph,

void DeBruijnGraph::call_sequences(const CallPath &callback,
size_t num_threads,
bool kmers_in_single_form) const {
::mtg::graph::call_sequences(*this, callback, num_threads, false, 0, kmers_in_single_form);
bool kmers_in_single_form,
bool verbose) const {
::mtg::graph::call_sequences(*this, callback, num_threads, false, 0, kmers_in_single_form, verbose);
}

void DeBruijnGraph::call_unitigs(const CallPath &callback,
Expand Down
3 changes: 2 additions & 1 deletion metagraph/src/graph/representation/base/sequence_graph.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,8 @@ class DeBruijnGraph : public SequenceGraph {
*/
virtual void call_sequences(const CallPath &callback,
size_t num_threads = 1,
bool kmers_in_single_form = false) const;
bool kmers_in_single_form = false,
bool verbose = common::get_verbose()) const;
/**
* Call all unitigs except short tips, where tips are
* the unitigs with InDegree(first) + OutDegree(last) < 2.
Expand Down
7 changes: 4 additions & 3 deletions metagraph/src/graph/representation/canonical_dbg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -424,12 +424,13 @@ size_t CanonicalDBG::indegree(node_index node) const {

void CanonicalDBG::call_sequences(const CallPath &callback,
size_t num_threads,
bool kmers_in_single_form) const {
bool kmers_in_single_form,
bool verbose) const {
if (kmers_in_single_form) {
graph_->call_sequences(callback, num_threads, true);
graph_->call_sequences(callback, num_threads, true, verbose);
} else {
// TODO: port over implementation from DBGSuccinct to DeBruijnGraph
DeBruijnGraph::call_sequences(callback, num_threads, false);
DeBruijnGraph::call_sequences(callback, num_threads, false, verbose);
}
}

Expand Down
3 changes: 2 additions & 1 deletion metagraph/src/graph/representation/canonical_dbg.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@ class CanonicalDBG : public DBGWrapper<DeBruijnGraph> {

virtual void call_sequences(const CallPath &callback,
size_t num_threads = 1,
bool kmers_in_single_form = false) const override final;
bool kmers_in_single_form = false,
bool verbose = common::get_verbose()) const override final;

virtual void call_unitigs(const CallPath &callback,
size_t num_threads = 1,
Expand Down
7 changes: 4 additions & 3 deletions metagraph/src/graph/representation/masked_graph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ bit_vector_stat get_boss_mask(const DBGSuccinct &dbg_succ,

void MaskedDeBruijnGraph::call_sequences(const CallPath &callback,
size_t num_threads,
bool kmers_in_single_form) const {
bool kmers_in_single_form,
bool verbose) const {
if (auto *dbg_succ = dynamic_cast<const DBGSuccinct*>(graph_.get())) {
bit_vector_stat mask = get_boss_mask(*dbg_succ, *kmers_in_graph_,
only_valid_nodes_in_mask_);
Expand All @@ -117,10 +118,10 @@ void MaskedDeBruijnGraph::call_sequences(const CallPath &callback,
}
callback(sequence, path);

}, num_threads, kmers_in_single_form, &mask);
}, num_threads, kmers_in_single_form, verbose, &mask);

} else {
DeBruijnGraph::call_sequences(callback, num_threads, kmers_in_single_form);
DeBruijnGraph::call_sequences(callback, num_threads, kmers_in_single_form, verbose);
}
}

Expand Down
3 changes: 2 additions & 1 deletion metagraph/src/graph/representation/masked_graph.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ class MaskedDeBruijnGraph : public DBGWrapper<DeBruijnGraph> {

virtual void call_sequences(const CallPath &callback,
size_t num_threads = 1,
bool kmers_in_single_form = false) const override;
bool kmers_in_single_form = false,
bool verbose = common::get_verbose()) const override;

virtual void call_unitigs(const CallPath &callback,
size_t num_threads = 1,
Expand Down
Loading
Loading