diff --git a/pyfastani/_utils.cpp b/pyfastani/_utils.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c3c37c444a0369d355b71f6598bc8a634291752b --- /dev/null +++ b/pyfastani/_utils.cpp @@ -0,0 +1,26 @@ +#include <iostream> +#include <ctime> +#include <chrono> +#include <functional> + +#include "_utils.hpp" + + +skch::Map* new_map_with_result_vector( + const skch::Parameters &p, + const skch::Sketch &refsketch, + uint64_t &totalQueryFragments, + int queryno, + skch::MappingResultsVector_t &r +) { + auto fn = std::bind(skch::Map::insertL2ResultsToVec, std::ref(r), std::placeholders::_1); + return new skch::Map( p, refsketch, totalQueryFragments, queryno, fn ); +} + +int omp_get_thread_num(void) { + return 0; +} + +int omp_get_num_threads(void) { + return 1; +} diff --git a/pyfastani/_utils.hpp b/pyfastani/_utils.hpp new file mode 100644 index 0000000000000000000000000000000000000000..74c08bf5241b92884e1ed8c20573b3ff272c009b --- /dev/null +++ b/pyfastani/_utils.hpp @@ -0,0 +1,25 @@ +#ifndef __UTILS_HPP +#define __UTILS_HPP + +#include "map/include/computeMap.hpp" + +#include <stdint.h> +#include <functional> + +#include "map/include/base_types.hpp" +#include "map/include/computeMap.hpp" + +skch::Map* new_map_with_result_vector( + const skch::Parameters &p, + const skch::Sketch &refsketch, + uint64_t &totalQueryFragments, + int queryno, + skch::MappingResultsVector_t &r +); + +// not needed anywhere except in `cgi::correctRefGenomeIds` +// so we can just patch them +extern int omp_get_thread_num(void); +extern int omp_get_num_threads(void); + +#endif diff --git a/pyfastani/_utils.pxd b/pyfastani/_utils.pxd new file mode 100644 index 0000000000000000000000000000000000000000..fd07fe3d7cc07fa397a19d4683025158dea879a0 --- /dev/null +++ b/pyfastani/_utils.pxd @@ -0,0 +1,17 @@ +from libc.stdint cimport uint64_t + +from fastani.map.base_types cimport MappingResultsVector_t +from fastani.map.compute_map cimport Map +from fastani.map.map_parameters cimport Parameters +from fastani.map.win_sketch cimport Sketch + + +cdef extern from "_utils.hpp" nogil: + + Map* new_map_with_result_vector( + const Parameters &p, + const Sketch &refsketch, + uint64_t &totalQueryFragments, + int queryno, + MappingResultsVector_t &r + )