minimap2 0.2.25.0 → 0.2.25.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -3
- data/ext/minimap2/Makefile +6 -2
- data/ext/minimap2/NEWS.md +38 -0
- data/ext/minimap2/README.md +9 -3
- data/ext/minimap2/align.c +5 -3
- data/ext/minimap2/cookbook.md +2 -2
- data/ext/minimap2/format.c +7 -4
- data/ext/minimap2/kalloc.c +20 -1
- data/ext/minimap2/kalloc.h +13 -2
- data/ext/minimap2/ksw2.h +1 -0
- data/ext/minimap2/ksw2_extd2_sse.c +1 -1
- data/ext/minimap2/ksw2_exts2_sse.c +79 -40
- data/ext/minimap2/ksw2_extz2_sse.c +1 -1
- data/ext/minimap2/lchain.c +15 -16
- data/ext/minimap2/lib/simde/CONTRIBUTING.md +114 -0
- data/ext/minimap2/lib/simde/COPYING +20 -0
- data/ext/minimap2/lib/simde/README.md +333 -0
- data/ext/minimap2/lib/simde/amalgamate.py +58 -0
- data/ext/minimap2/lib/simde/meson.build +33 -0
- data/ext/minimap2/lib/simde/netlify.toml +20 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/float32x2.h +140 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/float32x4.h +137 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/float64x1.h +142 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/float64x2.h +145 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int16x4.h +140 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int16x8.h +145 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int32x2.h +140 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int32x4.h +143 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int64x1.h +137 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int64x2.h +141 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int8x16.h +147 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/int8x8.h +141 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint16x4.h +134 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint16x8.h +138 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint32x2.h +134 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint32x4.h +137 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint64x1.h +131 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint64x2.h +135 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint8x16.h +141 -0
- data/ext/minimap2/lib/simde/simde/arm/neon/uint8x8.h +135 -0
- data/ext/minimap2/lib/simde/simde/arm/neon.h +97 -0
- data/ext/minimap2/lib/simde/simde/check.h +267 -0
- data/ext/minimap2/lib/simde/simde/debug-trap.h +83 -0
- data/ext/minimap2/lib/simde/simde/hedley.h +1899 -0
- data/ext/minimap2/lib/simde/simde/simde-arch.h +445 -0
- data/ext/minimap2/lib/simde/simde/simde-common.h +697 -0
- data/ext/minimap2/lib/simde/simde/x86/avx.h +5385 -0
- data/ext/minimap2/lib/simde/simde/x86/avx2.h +2402 -0
- data/ext/minimap2/lib/simde/simde/x86/avx512bw.h +391 -0
- data/ext/minimap2/lib/simde/simde/x86/avx512f.h +3389 -0
- data/ext/minimap2/lib/simde/simde/x86/avx512vl.h +112 -0
- data/ext/minimap2/lib/simde/simde/x86/fma.h +659 -0
- data/ext/minimap2/lib/simde/simde/x86/mmx.h +2210 -0
- data/ext/minimap2/lib/simde/simde/x86/sse.h +3696 -0
- data/ext/minimap2/lib/simde/simde/x86/sse2.h +5991 -0
- data/ext/minimap2/lib/simde/simde/x86/sse3.h +343 -0
- data/ext/minimap2/lib/simde/simde/x86/sse4.1.h +1783 -0
- data/ext/minimap2/lib/simde/simde/x86/sse4.2.h +105 -0
- data/ext/minimap2/lib/simde/simde/x86/ssse3.h +1053 -0
- data/ext/minimap2/lib/simde/simde/x86/svml.h +543 -0
- data/ext/minimap2/lib/simde/test/CMakeLists.txt +166 -0
- data/ext/minimap2/lib/simde/test/arm/meson.build +4 -0
- data/ext/minimap2/lib/simde/test/arm/neon/meson.build +23 -0
- data/ext/minimap2/lib/simde/test/arm/neon/skel.c +871 -0
- data/ext/minimap2/lib/simde/test/arm/neon/test-neon-internal.h +134 -0
- data/ext/minimap2/lib/simde/test/arm/neon/test-neon.c +39 -0
- data/ext/minimap2/lib/simde/test/arm/neon/test-neon.h +10 -0
- data/ext/minimap2/lib/simde/test/arm/neon/vadd.c +1260 -0
- data/ext/minimap2/lib/simde/test/arm/neon/vdup_n.c +873 -0
- data/ext/minimap2/lib/simde/test/arm/neon/vmul.c +1084 -0
- data/ext/minimap2/lib/simde/test/arm/neon/vsub.c +1260 -0
- data/ext/minimap2/lib/simde/test/arm/test-arm-internal.h +18 -0
- data/ext/minimap2/lib/simde/test/arm/test-arm.c +20 -0
- data/ext/minimap2/lib/simde/test/arm/test-arm.h +8 -0
- data/ext/minimap2/lib/simde/test/cmake/AddCompilerFlags.cmake +171 -0
- data/ext/minimap2/lib/simde/test/cmake/ExtraWarningFlags.cmake +68 -0
- data/ext/minimap2/lib/simde/test/meson.build +64 -0
- data/ext/minimap2/lib/simde/test/munit/COPYING +21 -0
- data/ext/minimap2/lib/simde/test/munit/Makefile +55 -0
- data/ext/minimap2/lib/simde/test/munit/README.md +54 -0
- data/ext/minimap2/lib/simde/test/munit/example.c +351 -0
- data/ext/minimap2/lib/simde/test/munit/meson.build +37 -0
- data/ext/minimap2/lib/simde/test/munit/munit.c +2055 -0
- data/ext/minimap2/lib/simde/test/munit/munit.h +535 -0
- data/ext/minimap2/lib/simde/test/run-tests.c +20 -0
- data/ext/minimap2/lib/simde/test/run-tests.h +260 -0
- data/ext/minimap2/lib/simde/test/x86/avx.c +13752 -0
- data/ext/minimap2/lib/simde/test/x86/avx2.c +9977 -0
- data/ext/minimap2/lib/simde/test/x86/avx512bw.c +2664 -0
- data/ext/minimap2/lib/simde/test/x86/avx512f.c +10416 -0
- data/ext/minimap2/lib/simde/test/x86/avx512vl.c +210 -0
- data/ext/minimap2/lib/simde/test/x86/fma.c +2557 -0
- data/ext/minimap2/lib/simde/test/x86/meson.build +33 -0
- data/ext/minimap2/lib/simde/test/x86/mmx.c +2878 -0
- data/ext/minimap2/lib/simde/test/x86/skel.c +2984 -0
- data/ext/minimap2/lib/simde/test/x86/sse.c +5121 -0
- data/ext/minimap2/lib/simde/test/x86/sse2.c +9860 -0
- data/ext/minimap2/lib/simde/test/x86/sse3.c +486 -0
- data/ext/minimap2/lib/simde/test/x86/sse4.1.c +3446 -0
- data/ext/minimap2/lib/simde/test/x86/sse4.2.c +101 -0
- data/ext/minimap2/lib/simde/test/x86/ssse3.c +2084 -0
- data/ext/minimap2/lib/simde/test/x86/svml.c +1545 -0
- data/ext/minimap2/lib/simde/test/x86/test-avx.h +16 -0
- data/ext/minimap2/lib/simde/test/x86/test-avx512.h +25 -0
- data/ext/minimap2/lib/simde/test/x86/test-mmx.h +13 -0
- data/ext/minimap2/lib/simde/test/x86/test-sse.h +13 -0
- data/ext/minimap2/lib/simde/test/x86/test-sse2.h +13 -0
- data/ext/minimap2/lib/simde/test/x86/test-x86-internal.h +196 -0
- data/ext/minimap2/lib/simde/test/x86/test-x86.c +48 -0
- data/ext/minimap2/lib/simde/test/x86/test-x86.h +8 -0
- data/ext/minimap2/main.c +13 -6
- data/ext/minimap2/map.c +0 -5
- data/ext/minimap2/minimap.h +40 -31
- data/ext/minimap2/minimap2.1 +19 -5
- data/ext/minimap2/misc/paftools.js +545 -24
- data/ext/minimap2/options.c +1 -1
- data/ext/minimap2/pyproject.toml +2 -0
- data/ext/minimap2/python/mappy.pyx +3 -1
- data/ext/minimap2/seed.c +1 -1
- data/ext/minimap2/setup.py +32 -22
- data/lib/minimap2/version.rb +1 -1
- metadata +100 -3
@@ -0,0 +1,16 @@
|
|
1
|
+
#include "../../simde/x86/avx.h"
|
2
|
+
|
3
|
+
#include "test-sse2.h"
|
4
|
+
|
5
|
+
#if !defined(SIMDE_TEST_X86_AVX)
|
6
|
+
#define SIMDE_TEST_X86_AVX
|
7
|
+
|
8
|
+
SIMDE_TEST_DEFINE_ASSERT_VEC_CLOSE(m256, f32)
|
9
|
+
SIMDE_TEST_DEFINE_ASSERT_VEC_CLOSE(m256d, f64)
|
10
|
+
|
11
|
+
#define simde_assert_m256_close(a, b, precision) \
|
12
|
+
simde_assert_m256_f32_close_ex(__LINE__, __FILE__, a, b, precision)
|
13
|
+
#define simde_assert_m256d_close(a, b, precision) \
|
14
|
+
simde_assert_m256d_f64_close_ex(__LINE__, __FILE__, a, b, precision)
|
15
|
+
|
16
|
+
#endif /* !defined(SIMDE_TEST_X86_AVX) */
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#include "../../simde/x86/avx512f.h"
|
2
|
+
|
3
|
+
#include "test-avx.h"
|
4
|
+
|
5
|
+
#if !defined(SIMDE_TEST_X86_AVX512)
|
6
|
+
#define SIMDE_TEST_X86_AVX512
|
7
|
+
|
8
|
+
SIMDE_TEST_DEFINE_ASSERT_VEC_CLOSE(m512, f32)
|
9
|
+
SIMDE_TEST_DEFINE_ASSERT_VEC_CLOSE(m512d, f64)
|
10
|
+
|
11
|
+
#define simde_assert_m512_close(a, b, precision) \
|
12
|
+
simde_assert_m512_f32_close_ex(__LINE__, __FILE__, a, b, precision)
|
13
|
+
#define simde_assert_m512d_close(a, b, precision) \
|
14
|
+
simde_assert_m512d_f64_close_ex(__LINE__, __FILE__, a, b, precision)
|
15
|
+
|
16
|
+
#define simde_assert_mmask8(a, op, b) \
|
17
|
+
munit_assert_uint8(HEDLEY_STATIC_CAST(uint8_t, a), op, HEDLEY_STATIC_CAST(uint8_t, b))
|
18
|
+
#define simde_assert_mmask16(a, op, b) \
|
19
|
+
munit_assert_uint16(HEDLEY_STATIC_CAST(uint16_t, a), op, HEDLEY_STATIC_CAST(uint16_t, b))
|
20
|
+
#define simde_assert_mmask32(a, op, b) \
|
21
|
+
munit_assert_uint32(HEDLEY_STATIC_CAST(uint32_t, a), op, HEDLEY_STATIC_CAST(uint32_t, b))
|
22
|
+
#define simde_assert_mmask64(a, op, b) \
|
23
|
+
munit_assert_uint64(HEDLEY_STATIC_CAST(uint64_t, a), op, HEDLEY_STATIC_CAST(uint64_t, b))
|
24
|
+
|
25
|
+
#endif /* !defined(SIMDE_TEST_X86_AVX512) */
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#include "../../simde/x86/mmx.h"
|
2
|
+
|
3
|
+
#include "test-x86-internal.h"
|
4
|
+
|
5
|
+
#if !defined(SIMDE_TEST_X86_MMX)
|
6
|
+
#define SIMDE_TEST_X86_MMX
|
7
|
+
|
8
|
+
SIMDE_TEST_DEFINE_ASSERT_VEC_CLOSE(m64, f32)
|
9
|
+
|
10
|
+
#define simde_assert_m64_close(a, b, precision) \
|
11
|
+
simde_assert_m64_f32_close_ex(__LINE__, __FILE__, a, b, precision)
|
12
|
+
|
13
|
+
#endif /* !defined(SIMDE_TEST_X86_MMX) */
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#include "../../simde/x86/sse.h"
|
2
|
+
|
3
|
+
#include "test-mmx.h"
|
4
|
+
|
5
|
+
#if !defined(SIMDE_TEST_X86_SSE)
|
6
|
+
#define SIMDE_TEST_X86_SSE
|
7
|
+
|
8
|
+
SIMDE_TEST_DEFINE_ASSERT_VEC_CLOSE(m128, f32)
|
9
|
+
|
10
|
+
#define simde_assert_m128_close(a, b, precision) \
|
11
|
+
simde_assert_m128_f32_close_ex(__LINE__, __FILE__, a, b, precision)
|
12
|
+
|
13
|
+
#endif /* !defined(SIMDE_TEST_X86_SSE) */
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#include "../../simde/x86/sse2.h"
|
2
|
+
|
3
|
+
#include "test-sse.h"
|
4
|
+
|
5
|
+
#if !defined(SIMDE_TEST_X86_SSE2)
|
6
|
+
#define SIMDE_TEST_X86_SSE2
|
7
|
+
|
8
|
+
SIMDE_TEST_DEFINE_ASSERT_VEC_CLOSE(m128d, f64)
|
9
|
+
|
10
|
+
#define simde_assert_m128d_close(a, b, precision) \
|
11
|
+
simde_assert_m128d_f64_close_ex(__LINE__, __FILE__, a, b, precision)
|
12
|
+
|
13
|
+
#endif /* !defined(SIMDE_TEST_X86_SSE2) */
|
@@ -0,0 +1,196 @@
|
|
1
|
+
#if !defined(SIMDE_TESTS_X86_INTERNAL_H)
|
2
|
+
#define SIMDE_TESTS_CURRENT_ARCH x86
|
3
|
+
|
4
|
+
#include "../run-tests.h"
|
5
|
+
|
6
|
+
/* Assert that two vectors are bit-identical without worring about the
|
7
|
+
underlying type. */
|
8
|
+
#define simde_assert_vec_equal(a, b, T) do { \
|
9
|
+
const T##_private simde_a_ = T##_to_private(a); \
|
10
|
+
const T##_private simde_b_ = T##_to_private(b); \
|
11
|
+
for (int simde_i_ = 0 ; simde_i_ < HEDLEY_STATIC_CAST(int, (sizeof(simde_a_.u32f) / sizeof(simde_a_.u32f[0]))) ; simde_i_++) { \
|
12
|
+
if (HEDLEY_UNLIKELY(simde_a_.u32f[simde_i_] != simde_b_.u32f[simde_i_])) { \
|
13
|
+
munit_errorf("assertion failed: " #a ".u32f[%d] (%" PRIxFAST32 ") != " #b ".u32f[%d] (%" PRIxFAST32 ")", \
|
14
|
+
simde_i_, simde_a_.u32f[simde_i_], \
|
15
|
+
simde_i_, simde_b_.u32f[simde_i_]); \
|
16
|
+
} \
|
17
|
+
} \
|
18
|
+
} while(0)
|
19
|
+
#define simde_assert_m64_equal(a, b) \
|
20
|
+
simde_assert_vec_equal(a, b, simde__m64)
|
21
|
+
#define simde_assert_m128_equal(a, b) \
|
22
|
+
simde_assert_vec_equal(a, b, simde__m128)
|
23
|
+
#define simde_assert_m128i_equal(a, b) \
|
24
|
+
simde_assert_vec_equal(a, b, simde__m128i)
|
25
|
+
#define simde_assert_m128d_equal(a, b) \
|
26
|
+
simde_assert_vec_equal(a, b, simde__m128d)
|
27
|
+
#define simde_assert_m256_equal(a, b) \
|
28
|
+
simde_assert_vec_equal(a, b, simde__m256)
|
29
|
+
#define simde_assert_m256i_equal(a, b) \
|
30
|
+
simde_assert_vec_equal(a, b, simde__m256i)
|
31
|
+
#define simde_assert_m256d_equal(a, b) \
|
32
|
+
simde_assert_vec_equal(a, b, simde__m256d)
|
33
|
+
|
34
|
+
/* Assert that every integer in two vectors are equal */
|
35
|
+
#define simde_assert_vec_i(a, op, b, T, accessor, fmt) do { \
|
36
|
+
const T##_private simde_a_ = T##_to_private(a); \
|
37
|
+
const T##_private simde_b_ = T##_to_private(b); \
|
38
|
+
for (int simde_i_ = 0 ; simde_i_ < HEDLEY_STATIC_CAST(int, (sizeof(simde_a_.accessor) / sizeof(simde_a_.accessor[0]))) ; simde_i_++) { \
|
39
|
+
if (HEDLEY_UNLIKELY(!(simde_a_.accessor[simde_i_] op simde_b_.accessor[simde_i_]))) { \
|
40
|
+
munit_errorf("assertion failed: " #a "." #accessor "[%d] " #op " " #b "." #accessor "[%d] (%" fmt " " #op " %" fmt ")", \
|
41
|
+
simde_i_, simde_i_, simde_a_.accessor[simde_i_], simde_b_.accessor[simde_i_]); \
|
42
|
+
} \
|
43
|
+
} \
|
44
|
+
} while (0)
|
45
|
+
#define simde_assert_m512i_i8(a, op, b) \
|
46
|
+
simde_assert_vec_i(a, op, b, simde__m512i, i8, PRId8)
|
47
|
+
#define simde_assert_m512i_i16(a, op, b) \
|
48
|
+
simde_assert_vec_i(a, op, b, simde__m512i, i16, PRId16)
|
49
|
+
#define simde_assert_m512i_i32(a, op, b) \
|
50
|
+
simde_assert_vec_i(a, op, b, simde__m512i, i32, PRId32)
|
51
|
+
#define simde_assert_m512i_i64(a, op, b) \
|
52
|
+
simde_assert_vec_i(a, op, b, simde__m512i, i64, PRId64)
|
53
|
+
#define simde_assert_m512i_u8(a, op, b) \
|
54
|
+
simde_assert_vec_i(a, op, b, simde__m512i, u8, PRIu8)
|
55
|
+
#define simde_assert_m512i_u16(a, op, b) \
|
56
|
+
simde_assert_vec_i(a, op, b, simde__m512i, u16, PRIu16)
|
57
|
+
#define simde_assert_m512i_u32(a, op, b) \
|
58
|
+
simde_assert_vec_i(a, op, b, simde__m512i, u32, PRIu32)
|
59
|
+
#define simde_assert_m512i_u64(a, op, b) \
|
60
|
+
simde_assert_vec_i(a, op, b, simde__m512i, u64, PRIu64)
|
61
|
+
#define simde_assert_m256i_i8(a, op, b) \
|
62
|
+
simde_assert_vec_i(a, op, b, simde__m256i, i8, PRId8)
|
63
|
+
#define simde_assert_m256i_i16(a, op, b) \
|
64
|
+
simde_assert_vec_i(a, op, b, simde__m256i, i16, PRId16)
|
65
|
+
#define simde_assert_m256i_i32(a, op, b) \
|
66
|
+
simde_assert_vec_i(a, op, b, simde__m256i, i32, PRId32)
|
67
|
+
#define simde_assert_m256i_i64(a, op, b) \
|
68
|
+
simde_assert_vec_i(a, op, b, simde__m256i, i64, PRId64)
|
69
|
+
#define simde_assert_m256i_u8(a, op, b) \
|
70
|
+
simde_assert_vec_i(a, op, b, simde__m256i, u8, PRIu8)
|
71
|
+
#define simde_assert_m256i_u16(a, op, b) \
|
72
|
+
simde_assert_vec_i(a, op, b, simde__m256i, u16, PRIu16)
|
73
|
+
#define simde_assert_m256i_u32(a, op, b) \
|
74
|
+
simde_assert_vec_i(a, op, b, simde__m256i, u32, PRIu32)
|
75
|
+
#define simde_assert_m256i_u64(a, op, b) \
|
76
|
+
simde_assert_vec_i(a, op, b, simde__m256i, u64, PRIu64)
|
77
|
+
#define simde_assert_m128i_i8(a, op, b) \
|
78
|
+
simde_assert_vec_i(a, op, b, simde__m128i, i8, PRId8)
|
79
|
+
#define simde_assert_m128i_i16(a, op, b) \
|
80
|
+
simde_assert_vec_i(a, op, b, simde__m128i, i16, PRId16)
|
81
|
+
#define simde_assert_m128i_i32(a, op, b) \
|
82
|
+
simde_assert_vec_i(a, op, b, simde__m128i, i32, PRId32)
|
83
|
+
#define simde_assert_m128i_i64(a, op, b) \
|
84
|
+
simde_assert_vec_i(a, op, b, simde__m128i, i64, PRId64)
|
85
|
+
#define simde_assert_m128i_u8(a, op, b) \
|
86
|
+
simde_assert_vec_i(a, op, b, simde__m128i, u8, PRIu8)
|
87
|
+
#define simde_assert_m128i_u16(a, op, b) \
|
88
|
+
simde_assert_vec_i(a, op, b, simde__m128i, u16, PRIu16)
|
89
|
+
#define simde_assert_m128i_u32(a, op, b) \
|
90
|
+
simde_assert_vec_i(a, op, b, simde__m128i, u32, PRIu32)
|
91
|
+
#define simde_assert_m128i_u64(a, op, b) \
|
92
|
+
simde_assert_vec_i(a, op, b, simde__m128i, u64, PRIu64)
|
93
|
+
#define simde_assert_m64_i8(a, op, b) \
|
94
|
+
simde_assert_vec_i(a, op, b, simde__m64, i8, PRId8)
|
95
|
+
#define simde_assert_m64_i16(a, op, b) \
|
96
|
+
simde_assert_vec_i(a, op, b, simde__m64, i16, PRId16)
|
97
|
+
#define simde_assert_m64_i32(a, op, b) \
|
98
|
+
simde_assert_vec_i(a, op, b, simde__m64, i32, PRId32)
|
99
|
+
#define simde_assert_m64_i64(a, op, b) \
|
100
|
+
simde_assert_vec_i(a, op, b, simde__m64, i64, PRId64)
|
101
|
+
#define simde_assert_m64_u8(a, op, b) \
|
102
|
+
simde_assert_vec_i(a, op, b, simde__m64, u8, PRIu8)
|
103
|
+
#define simde_assert_m64_u16(a, op, b) \
|
104
|
+
simde_assert_vec_i(a, op, b, simde__m64, u16, PRIu16)
|
105
|
+
#define simde_assert_m64_u32(a, op, b) \
|
106
|
+
simde_assert_vec_i(a, op, b, simde__m64, u32, PRIu32)
|
107
|
+
#define simde_assert_m64_u64(a, op, b) \
|
108
|
+
simde_assert_vec_i(a, op, b, simde__m64, u64, PRIu64)
|
109
|
+
|
110
|
+
/* Assert that the integer values in each vector are approximately equal. */
|
111
|
+
#define simde_assert_vec_i_close(a, b, precision, T, accessor, fmt) do { \
|
112
|
+
const T##_private simde_a_ = T##_to_private(a); \
|
113
|
+
const T##_private simde_b_ = T##_to_private(b); \
|
114
|
+
for (int simde_i_ = 0 ; simde_i_ < HEDLEY_STATIC_CAST(int, (sizeof(simde_a_.accessor) / sizeof(simde_a_.accessor[0]))) ; simde_i_++) { \
|
115
|
+
if (!((simde_a_.accessor[simde_i_] <= (simde_b_.accessor[simde_i_] + precision)) && (simde_a_.accessor[simde_i_] >= (simde_b_.accessor[simde_i_] - precision)))) { \
|
116
|
+
munit_errorf("assertion failed: " #a "." #accessor "[%d] " SIMDE_ALMOST_EQUAL_TO " " #b "." #accessor "[%d] (%" fmt " " SIMDE_ALMOST_EQUAL_TO " %" fmt ")", \
|
117
|
+
simde_i_, simde_i_, simde_a_.accessor[simde_i_], simde_b_.accessor[simde_i_]); \
|
118
|
+
} \
|
119
|
+
} \
|
120
|
+
} while(0)
|
121
|
+
|
122
|
+
#define simde_assert_m64_i8_close(a, b, precision) \
|
123
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, i8, PRId8)
|
124
|
+
#define simde_assert_m64_i16_close(a, b, precision) \
|
125
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, i16, PRId16)
|
126
|
+
#define simde_assert_m64_i32_close(a, b, precision) \
|
127
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, i32, PRId32)
|
128
|
+
#define simde_assert_m64_i64_close(a, b, precision) \
|
129
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, i64, PRId64)
|
130
|
+
#define simde_assert_m64_u8_close(a, b, precision) \
|
131
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, u8, PRIu8)
|
132
|
+
#define simde_assert_m64_u16_close(a, b, precision) \
|
133
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, u16, PRIu16)
|
134
|
+
#define simde_assert_m64_u32_close(a, b, precision) \
|
135
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, u32, PRIu32)
|
136
|
+
#define simde_assert_m64_u64_close(a, b, precision) \
|
137
|
+
simde_assert_vec_i_close(a, b, precision, simde__m64, u64, PRIu64)
|
138
|
+
#define simde_assert_m128i_i8_close(a, b, precision) \
|
139
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, i8, PRId8)
|
140
|
+
#define simde_assert_m128i_i16_close(a, b, precision) \
|
141
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, i16, PRId16)
|
142
|
+
#define simde_assert_m128i_i32_close(a, b, precision) \
|
143
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, i32, PRId32)
|
144
|
+
#define simde_assert_m128i_i64_close(a, b, precision) \
|
145
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, i64, PRId64)
|
146
|
+
#define simde_assert_m128i_u8_close(a, b, precision) \
|
147
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, u8, PRIu8)
|
148
|
+
#define simde_assert_m128i_u16_close(a, b, precision) \
|
149
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, u16, PRIu16)
|
150
|
+
#define simde_assert_m128i_u32_close(a, b, precision) \
|
151
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, u32, PRIu32)
|
152
|
+
#define simde_assert_m128i_u64_close(a, b, precision) \
|
153
|
+
simde_assert_vec_i_close(a, b, precision, simde__m128i, u64, PRIu64)
|
154
|
+
#define simde_assert_m256i_i8_close(a, b, precision) \
|
155
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, i8, PRId8)
|
156
|
+
#define simde_assert_m256i_i16_close(a, b, precision) \
|
157
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, i16, PRId16)
|
158
|
+
#define simde_assert_m256i_i32_close(a, b, precision) \
|
159
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, i32, PRId32)
|
160
|
+
#define simde_assert_m256i_i64_close(a, b, precision) \
|
161
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, i64, PRId64)
|
162
|
+
#define simde_assert_m256i_u8_close(a, b, precision) \
|
163
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, u8, PRIu8)
|
164
|
+
#define simde_assert_m256i_u16_close(a, b, precision) \
|
165
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, u16, PRIu16)
|
166
|
+
#define simde_assert_m256i_u32_close(a, b, precision) \
|
167
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, u32, PRIu32)
|
168
|
+
#define simde_assert_m256i_u64_close(a, b, precision) \
|
169
|
+
simde_assert_vec_i_close(a, b, precision, simde__m256i, u64, PRIu64)
|
170
|
+
|
171
|
+
HEDLEY_BEGIN_C_DECLS
|
172
|
+
|
173
|
+
#define SIMDE_TESTS_GENERATE_SUITE_GETTERS(isax) \
|
174
|
+
MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, native, c)(void); \
|
175
|
+
MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, native, cpp)(void); \
|
176
|
+
MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, emul, c)(void); \
|
177
|
+
MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, emul, cpp)(void)
|
178
|
+
|
179
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(mmx);
|
180
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(sse);
|
181
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(sse2);
|
182
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(sse3);
|
183
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(ssse3);
|
184
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(sse4_1);
|
185
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(sse4_2);
|
186
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(avx);
|
187
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(fma);
|
188
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(avx2);
|
189
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(avx512f);
|
190
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(avx512bw);
|
191
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(avx512vl);
|
192
|
+
SIMDE_TESTS_GENERATE_SUITE_GETTERS(svml);
|
193
|
+
|
194
|
+
HEDLEY_END_C_DECLS
|
195
|
+
|
196
|
+
#endif /* !defined(SIMDE_TESTS_X86_INTERNAL_H) */
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#include "test-x86.h"
|
2
|
+
#include "test-x86-internal.h"
|
3
|
+
|
4
|
+
#include <stdio.h>
|
5
|
+
|
6
|
+
#if defined(SIMDE_BUILD_CPP_TESTS)
|
7
|
+
#define SUITES_PER_ISAX 4
|
8
|
+
#define SET_CHILDREN_FOR_ARCH(isax) \
|
9
|
+
children[i++] = *SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, native, c)(); \
|
10
|
+
children[i++] = *SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, emul, c)(); \
|
11
|
+
children[i++] = *SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, native, cpp)(); \
|
12
|
+
children[i++] = *SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, emul, cpp)()
|
13
|
+
#else
|
14
|
+
#define SUITES_PER_ISAX 2
|
15
|
+
#define SET_CHILDREN_FOR_ARCH(isax) \
|
16
|
+
children[i++] = *SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, native, c)(); \
|
17
|
+
children[i++] = *SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, emul, c)()
|
18
|
+
#endif
|
19
|
+
|
20
|
+
MunitSuite*
|
21
|
+
simde_tests_x86_get_suite(void) {
|
22
|
+
static MunitSuite children[(14 * SUITES_PER_ISAX) + 1];
|
23
|
+
static MunitSuite suite = { "/x86", NULL, children, 1, MUNIT_SUITE_OPTION_NONE };
|
24
|
+
static const MunitSuite empty = { NULL, NULL, NULL, 1, MUNIT_SUITE_OPTION_NONE };
|
25
|
+
|
26
|
+
size_t i = 0;
|
27
|
+
|
28
|
+
SET_CHILDREN_FOR_ARCH(mmx);
|
29
|
+
SET_CHILDREN_FOR_ARCH(sse);
|
30
|
+
SET_CHILDREN_FOR_ARCH(sse2);
|
31
|
+
SET_CHILDREN_FOR_ARCH(sse3);
|
32
|
+
SET_CHILDREN_FOR_ARCH(ssse3);
|
33
|
+
SET_CHILDREN_FOR_ARCH(sse4_1);
|
34
|
+
SET_CHILDREN_FOR_ARCH(sse4_2);
|
35
|
+
SET_CHILDREN_FOR_ARCH(avx);
|
36
|
+
SET_CHILDREN_FOR_ARCH(fma);
|
37
|
+
SET_CHILDREN_FOR_ARCH(avx2);
|
38
|
+
SET_CHILDREN_FOR_ARCH(avx512f);
|
39
|
+
SET_CHILDREN_FOR_ARCH(avx512bw);
|
40
|
+
SET_CHILDREN_FOR_ARCH(avx512vl);
|
41
|
+
SET_CHILDREN_FOR_ARCH(svml);
|
42
|
+
|
43
|
+
children[i++] = empty;
|
44
|
+
|
45
|
+
munit_assert_size(i, <=, sizeof(children) / sizeof(children[0]));
|
46
|
+
|
47
|
+
return &suite;
|
48
|
+
}
|
data/ext/minimap2/main.c
CHANGED
@@ -7,8 +7,6 @@
|
|
7
7
|
#include "mmpriv.h"
|
8
8
|
#include "ketopt.h"
|
9
9
|
|
10
|
-
#define MM_VERSION "2.24-r1122"
|
11
|
-
|
12
10
|
#ifdef __linux__
|
13
11
|
#include <sys/resource.h>
|
14
12
|
#include <sys/time.h>
|
@@ -78,6 +76,7 @@ static ko_longopt_t long_options[] = {
|
|
78
76
|
{ "chain-skip-scale",ko_required_argument,351 },
|
79
77
|
{ "print-chains", ko_no_argument, 352 },
|
80
78
|
{ "no-hash-name", ko_no_argument, 353 },
|
79
|
+
{ "secondary-seq", ko_no_argument, 354 },
|
81
80
|
{ "help", ko_no_argument, 'h' },
|
82
81
|
{ "max-intron-len", ko_required_argument, 'G' },
|
83
82
|
{ "version", ko_no_argument, 'V' },
|
@@ -121,7 +120,7 @@ static inline void yes_or_no(mm_mapopt_t *opt, int64_t flag, int long_idx, const
|
|
121
120
|
|
122
121
|
int main(int argc, char *argv[])
|
123
122
|
{
|
124
|
-
const char *opt_str = "2aSDw:k:K:t:r:f:Vv:g:G:I:d:XT:s:x:Hcp:M:n:z:A:B:O:E:m:N:Qu:R:hF:LC:yYPo:e:U:";
|
123
|
+
const char *opt_str = "2aSDw:k:K:t:r:f:Vv:g:G:I:d:XT:s:x:Hcp:M:n:z:A:B:O:E:m:N:Qu:R:hF:LC:yYPo:e:U:J:";
|
125
124
|
ketopt_t o = KETOPT_INIT;
|
126
125
|
mm_mapopt_t opt;
|
127
126
|
mm_idxopt_t ipt;
|
@@ -187,7 +186,12 @@ int main(int argc, char *argv[])
|
|
187
186
|
else if (c == 'R') rg = o.arg;
|
188
187
|
else if (c == 'h') fp_help = stdout;
|
189
188
|
else if (c == '2') opt.flag |= MM_F_2_IO_THREADS;
|
190
|
-
else if (c == '
|
189
|
+
else if (c == 'J') {
|
190
|
+
int t;
|
191
|
+
t = atoi(o.arg);
|
192
|
+
if (t == 0) opt.flag |= MM_F_SPLICE_OLD;
|
193
|
+
else if (t == 1) opt.flag &= ~MM_F_SPLICE_OLD;
|
194
|
+
} else if (c == 'o') {
|
191
195
|
if (strcmp(o.arg, "-") != 0) {
|
192
196
|
if (freopen(o.arg, "wb", stdout) == NULL) {
|
193
197
|
fprintf(stderr, "[ERROR]\033[1;31m failed to write the output to file '%s'\033[0m: %s\n", o.arg, strerror(errno));
|
@@ -237,6 +241,7 @@ int main(int argc, char *argv[])
|
|
237
241
|
else if (c == 350) opt.q_occ_frac = atof(o.arg); // --q-occ-frac
|
238
242
|
else if (c == 352) mm_dbg_flag |= MM_DBG_PRINT_CHAIN; // --print-chains
|
239
243
|
else if (c == 353) opt.flag |= MM_F_NO_HASH_NAME; // --no-hash-name
|
244
|
+
else if (c == 354) opt.flag |= MM_F_SECONDARY_SEQ; // --secondary-seq
|
240
245
|
else if (c == 330) {
|
241
246
|
fprintf(stderr, "[WARNING] \033[1;31m --lj-min-ratio has been deprecated.\033[0m\n");
|
242
247
|
} else if (c == 314) { // --frag
|
@@ -261,7 +266,8 @@ int main(int argc, char *argv[])
|
|
261
266
|
} else if (c == 326) { // --dual
|
262
267
|
yes_or_no(&opt, MM_F_NO_DUAL, o.longidx, o.arg, 0);
|
263
268
|
} else if (c == 347) { // --rmq
|
264
|
-
yes_or_no(&opt, MM_F_RMQ, o.longidx, o.arg, 1);
|
269
|
+
if (o.arg) yes_or_no(&opt, MM_F_RMQ, o.longidx, o.arg, 1);
|
270
|
+
else opt.flag |= MM_F_RMQ;
|
265
271
|
} else if (c == 'S') {
|
266
272
|
opt.flag |= MM_F_OUT_CS | MM_F_CIGAR | MM_F_OUT_CS_LONG;
|
267
273
|
if (mm_verbose >= 2)
|
@@ -322,7 +328,7 @@ int main(int argc, char *argv[])
|
|
322
328
|
fprintf(fp_help, " -H use homopolymer-compressed k-mer (preferrable for PacBio)\n");
|
323
329
|
fprintf(fp_help, " -k INT k-mer size (no larger than 28) [%d]\n", ipt.k);
|
324
330
|
fprintf(fp_help, " -w INT minimizer window size [%d]\n", ipt.w);
|
325
|
-
fprintf(fp_help, " -I NUM split index for every ~NUM input bases [
|
331
|
+
fprintf(fp_help, " -I NUM split index for every ~NUM input bases [8G]\n");
|
326
332
|
fprintf(fp_help, " -d FILE dump index to FILE []\n");
|
327
333
|
fprintf(fp_help, " Mapping:\n");
|
328
334
|
fprintf(fp_help, " -f FLOAT filter out top FLOAT fraction of repetitive minimizers [%g]\n", opt.mid_occ_frac);
|
@@ -344,6 +350,7 @@ int main(int argc, char *argv[])
|
|
344
350
|
fprintf(fp_help, " -z INT[,INT] Z-drop score and inversion Z-drop score [%d,%d]\n", opt.zdrop, opt.zdrop_inv);
|
345
351
|
fprintf(fp_help, " -s INT minimal peak DP alignment score [%d]\n", opt.min_dp_max);
|
346
352
|
fprintf(fp_help, " -u CHAR how to find GT-AG. f:transcript strand, b:both strands, n:don't match GT-AG [n]\n");
|
353
|
+
fprintf(fp_help, " -J INT splice mode. 0: original minimap2 model; 1: miniprot model [1]\n");
|
347
354
|
fprintf(fp_help, " Input/Output:\n");
|
348
355
|
fprintf(fp_help, " -a output in the SAM format (PAF by default)\n");
|
349
356
|
fprintf(fp_help, " -o FILE output alignments to FILE [stdout]\n");
|
data/ext/minimap2/map.c
CHANGED
data/ext/minimap2/minimap.h
CHANGED
@@ -5,41 +5,45 @@
|
|
5
5
|
#include <stdio.h>
|
6
6
|
#include <sys/types.h>
|
7
7
|
|
8
|
-
#define
|
9
|
-
|
10
|
-
#define
|
11
|
-
#define
|
12
|
-
#define
|
13
|
-
#define
|
14
|
-
#define
|
15
|
-
#define
|
16
|
-
#define
|
17
|
-
#define
|
18
|
-
#define
|
19
|
-
#define
|
20
|
-
#define
|
21
|
-
#define
|
22
|
-
#define
|
23
|
-
#define
|
24
|
-
#define
|
25
|
-
#define
|
26
|
-
#define
|
27
|
-
#define
|
28
|
-
#define
|
29
|
-
#define
|
30
|
-
#define
|
31
|
-
#define
|
32
|
-
#define
|
33
|
-
#define
|
34
|
-
#define
|
35
|
-
#define
|
36
|
-
#define
|
37
|
-
#define
|
38
|
-
#define
|
8
|
+
#define MM_VERSION "2.25-r1173"
|
9
|
+
|
10
|
+
#define MM_F_NO_DIAG (0x001LL) // no exact diagonal hit
|
11
|
+
#define MM_F_NO_DUAL (0x002LL) // skip pairs where query name is lexicographically larger than target name
|
12
|
+
#define MM_F_CIGAR (0x004LL)
|
13
|
+
#define MM_F_OUT_SAM (0x008LL)
|
14
|
+
#define MM_F_NO_QUAL (0x010LL)
|
15
|
+
#define MM_F_OUT_CG (0x020LL)
|
16
|
+
#define MM_F_OUT_CS (0x040LL)
|
17
|
+
#define MM_F_SPLICE (0x080LL) // splice mode
|
18
|
+
#define MM_F_SPLICE_FOR (0x100LL) // match GT-AG
|
19
|
+
#define MM_F_SPLICE_REV (0x200LL) // match CT-AC, the reverse complement of GT-AG
|
20
|
+
#define MM_F_NO_LJOIN (0x400LL)
|
21
|
+
#define MM_F_OUT_CS_LONG (0x800LL)
|
22
|
+
#define MM_F_SR (0x1000LL)
|
23
|
+
#define MM_F_FRAG_MODE (0x2000LL)
|
24
|
+
#define MM_F_NO_PRINT_2ND (0x4000LL)
|
25
|
+
#define MM_F_2_IO_THREADS (0x8000LL)
|
26
|
+
#define MM_F_LONG_CIGAR (0x10000LL)
|
27
|
+
#define MM_F_INDEPEND_SEG (0x20000LL)
|
28
|
+
#define MM_F_SPLICE_FLANK (0x40000LL)
|
29
|
+
#define MM_F_SOFTCLIP (0x80000LL)
|
30
|
+
#define MM_F_FOR_ONLY (0x100000LL)
|
31
|
+
#define MM_F_REV_ONLY (0x200000LL)
|
32
|
+
#define MM_F_HEAP_SORT (0x400000LL)
|
33
|
+
#define MM_F_ALL_CHAINS (0x800000LL)
|
34
|
+
#define MM_F_OUT_MD (0x1000000LL)
|
35
|
+
#define MM_F_COPY_COMMENT (0x2000000LL)
|
36
|
+
#define MM_F_EQX (0x4000000LL) // use =/X instead of M
|
37
|
+
#define MM_F_PAF_NO_HIT (0x8000000LL) // output unmapped reads to PAF
|
38
|
+
#define MM_F_NO_END_FLT (0x10000000LL)
|
39
|
+
#define MM_F_HARD_MLEVEL (0x20000000LL)
|
40
|
+
#define MM_F_SAM_HIT_ONLY (0x40000000LL)
|
39
41
|
#define MM_F_RMQ (0x80000000LL)
|
40
42
|
#define MM_F_QSTRAND (0x100000000LL)
|
41
43
|
#define MM_F_NO_INV (0x200000000LL)
|
42
44
|
#define MM_F_NO_HASH_NAME (0x400000000LL)
|
45
|
+
#define MM_F_SPLICE_OLD (0x800000000LL)
|
46
|
+
#define MM_F_SECONDARY_SEQ (0x1000000000LL) //output SEQ field for seqondary alignments using hard clipping
|
43
47
|
|
44
48
|
#define MM_I_HPC 0x1
|
45
49
|
#define MM_I_NO_SEQ 0x2
|
@@ -189,6 +193,11 @@ typedef struct {
|
|
189
193
|
} mm_idx_reader_t;
|
190
194
|
|
191
195
|
// memory buffer for thread-local storage during mapping
|
196
|
+
struct mm_tbuf_s {
|
197
|
+
void *km;
|
198
|
+
int rep_len, frag_gap;
|
199
|
+
};
|
200
|
+
|
192
201
|
typedef struct mm_tbuf_s mm_tbuf_t;
|
193
202
|
|
194
203
|
// global variables
|
data/ext/minimap2/minimap2.1
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
.TH minimap2 1 "
|
1
|
+
.TH minimap2 1 "25 April 2023" "minimap2-2.25 (r1173)" "Bioinformatics tools"
|
2
2
|
.SH NAME
|
3
3
|
.PP
|
4
4
|
minimap2 - mapping and alignment between collections of DNA sequences
|
@@ -79,6 +79,19 @@ Minimizer k-mer length [15]
|
|
79
79
|
.BI -w \ INT
|
80
80
|
Minimizer window size [10]. A minimizer is the smallest k-mer
|
81
81
|
in a window of w consecutive k-mers.
|
82
|
+
.TP
|
83
|
+
.BI -j \ INT
|
84
|
+
Syncmer submer size [10]. Option
|
85
|
+
.B -j
|
86
|
+
and
|
87
|
+
.B -w
|
88
|
+
will override each: if
|
89
|
+
.B -w
|
90
|
+
is applied after
|
91
|
+
.BR -j ,
|
92
|
+
.B -j
|
93
|
+
will have no effect, and vice versa.
|
94
|
+
|
82
95
|
.TP
|
83
96
|
.B -H
|
84
97
|
Use homopolymer-compressed (HPC) minimizers. An HPC sequence is constructed by
|
@@ -88,16 +101,17 @@ on the HPC sequence.
|
|
88
101
|
.BI -I \ NUM
|
89
102
|
Load at most
|
90
103
|
.I NUM
|
91
|
-
target bases into RAM for indexing [
|
104
|
+
target bases into RAM for indexing [8G]. If there are more than
|
92
105
|
.I NUM
|
93
106
|
bases in
|
94
107
|
.IR target.fa ,
|
95
108
|
minimap2 needs to read
|
96
109
|
.I query.fa
|
97
|
-
multiple times to map it against each batch of target sequences.
|
110
|
+
multiple times to map it against each batch of target sequences. This would create a multi-part index.
|
98
111
|
.I NUM
|
99
112
|
may be ending with k/K/m/M/g/G. NB: mapping quality is incorrect given a
|
100
|
-
multi-part index.
|
113
|
+
multi-part index. See also option
|
114
|
+
.BR --split-prefix .
|
101
115
|
.TP
|
102
116
|
.B --idx-no-seq
|
103
117
|
Don't store target sequences in the index. It saves disk space and memory but
|
@@ -587,7 +601,7 @@ Up to 20% sequence divergence.
|
|
587
601
|
.B splice
|
588
602
|
Long-read spliced alignment
|
589
603
|
.RB ( -k15
|
590
|
-
.B -w5 --splice -g2k -G200k -A1 -B2 -O2,32 -E1,0 -
|
604
|
+
.B -w5 --splice -g2k -G200k -A1 -B2 -O2,32 -E1,0 -C9 -z200 -ub --junc-bonus=9 --cap-sw-mem=0
|
591
605
|
.BR --splice-flank=yes ).
|
592
606
|
In the splice mode, 1) long deletions are taken as introns and represented as
|
593
607
|
the
|