minimap2 0.0.4 → 0.2.23.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +113 -98
  3. data/ext/Rakefile +41 -0
  4. data/ext/cmappy/cmappy.c +129 -0
  5. data/ext/cmappy/cmappy.h +44 -0
  6. data/ext/minimap2/FAQ.md +46 -0
  7. data/ext/minimap2/LICENSE.txt +24 -0
  8. data/ext/minimap2/MANIFEST.in +10 -0
  9. data/ext/minimap2/Makefile +132 -0
  10. data/ext/minimap2/Makefile.simde +97 -0
  11. data/ext/minimap2/NEWS.md +807 -0
  12. data/ext/minimap2/README.md +403 -0
  13. data/ext/minimap2/align.c +1020 -0
  14. data/ext/minimap2/bseq.c +169 -0
  15. data/ext/minimap2/bseq.h +64 -0
  16. data/ext/minimap2/code_of_conduct.md +30 -0
  17. data/ext/minimap2/cookbook.md +243 -0
  18. data/ext/minimap2/esterr.c +64 -0
  19. data/ext/minimap2/example.c +63 -0
  20. data/ext/minimap2/format.c +559 -0
  21. data/ext/minimap2/hit.c +466 -0
  22. data/ext/minimap2/index.c +775 -0
  23. data/ext/minimap2/kalloc.c +205 -0
  24. data/ext/minimap2/kalloc.h +76 -0
  25. data/ext/minimap2/kdq.h +132 -0
  26. data/ext/minimap2/ketopt.h +120 -0
  27. data/ext/minimap2/khash.h +615 -0
  28. data/ext/minimap2/krmq.h +474 -0
  29. data/ext/minimap2/kseq.h +256 -0
  30. data/ext/minimap2/ksort.h +153 -0
  31. data/ext/minimap2/ksw2.h +184 -0
  32. data/ext/minimap2/ksw2_dispatch.c +96 -0
  33. data/ext/minimap2/ksw2_extd2_sse.c +402 -0
  34. data/ext/minimap2/ksw2_exts2_sse.c +416 -0
  35. data/ext/minimap2/ksw2_extz2_sse.c +313 -0
  36. data/ext/minimap2/ksw2_ll_sse.c +152 -0
  37. data/ext/minimap2/kthread.c +159 -0
  38. data/ext/minimap2/kthread.h +15 -0
  39. data/ext/minimap2/kvec.h +105 -0
  40. data/ext/minimap2/lchain.c +344 -0
  41. data/ext/minimap2/main.c +455 -0
  42. data/ext/minimap2/map.c +714 -0
  43. data/ext/minimap2/minimap.h +409 -0
  44. data/ext/minimap2/minimap2.1 +722 -0
  45. data/ext/minimap2/misc/README.md +179 -0
  46. data/ext/minimap2/misc/mmphase.js +335 -0
  47. data/ext/minimap2/misc/paftools.js +3149 -0
  48. data/ext/minimap2/misc.c +162 -0
  49. data/ext/minimap2/mmpriv.h +131 -0
  50. data/ext/minimap2/options.c +233 -0
  51. data/ext/minimap2/pe.c +177 -0
  52. data/ext/minimap2/python/README.rst +196 -0
  53. data/ext/minimap2/python/cmappy.h +152 -0
  54. data/ext/minimap2/python/cmappy.pxd +153 -0
  55. data/ext/minimap2/python/mappy.pyx +273 -0
  56. data/ext/minimap2/python/minimap2.py +39 -0
  57. data/ext/minimap2/sdust.c +213 -0
  58. data/ext/minimap2/sdust.h +25 -0
  59. data/ext/minimap2/seed.c +131 -0
  60. data/ext/minimap2/setup.py +55 -0
  61. data/ext/minimap2/sketch.c +143 -0
  62. data/ext/minimap2/splitidx.c +84 -0
  63. data/ext/minimap2/sse2neon/emmintrin.h +1689 -0
  64. data/ext/minimap2/test/MT-human.fa +278 -0
  65. data/ext/minimap2/test/MT-orang.fa +276 -0
  66. data/ext/minimap2/test/q-inv.fa +4 -0
  67. data/ext/minimap2/test/q2.fa +2 -0
  68. data/ext/minimap2/test/t-inv.fa +127 -0
  69. data/ext/minimap2/test/t2.fa +2 -0
  70. data/ext/minimap2/tex/Makefile +21 -0
  71. data/ext/minimap2/tex/bioinfo.cls +930 -0
  72. data/ext/minimap2/tex/blasr-mc.eval +17 -0
  73. data/ext/minimap2/tex/bowtie2-s3.sam.eval +28 -0
  74. data/ext/minimap2/tex/bwa-s3.sam.eval +52 -0
  75. data/ext/minimap2/tex/bwa.eval +55 -0
  76. data/ext/minimap2/tex/eval2roc.pl +33 -0
  77. data/ext/minimap2/tex/graphmap.eval +4 -0
  78. data/ext/minimap2/tex/hs38-simu.sh +10 -0
  79. data/ext/minimap2/tex/minialign.eval +49 -0
  80. data/ext/minimap2/tex/minimap2.bib +460 -0
  81. data/ext/minimap2/tex/minimap2.tex +724 -0
  82. data/ext/minimap2/tex/mm2-s3.sam.eval +62 -0
  83. data/ext/minimap2/tex/mm2-update.tex +240 -0
  84. data/ext/minimap2/tex/mm2.approx.eval +12 -0
  85. data/ext/minimap2/tex/mm2.eval +13 -0
  86. data/ext/minimap2/tex/natbib.bst +1288 -0
  87. data/ext/minimap2/tex/natbib.sty +803 -0
  88. data/ext/minimap2/tex/ngmlr.eval +38 -0
  89. data/ext/minimap2/tex/roc.gp +60 -0
  90. data/ext/minimap2/tex/snap-s3.sam.eval +62 -0
  91. data/ext/minimap2.patch +19 -0
  92. data/ext/vendor/libminimap2.so +0 -0
  93. data/lib/minimap2/aligner.rb +16 -5
  94. data/lib/minimap2/alignment.rb +6 -2
  95. data/lib/minimap2/ffi/constants.rb +74 -53
  96. data/lib/minimap2/ffi/functions.rb +5 -0
  97. data/lib/minimap2/ffi.rb +1 -2
  98. data/lib/minimap2/version.rb +2 -1
  99. data/lib/minimap2.rb +67 -22
  100. metadata +98 -64
  101. data/lib/minimap2/ffi_helper.rb +0 -53
@@ -0,0 +1,132 @@
1
+ CFLAGS= -g -Wall -O2 -Wc++-compat #-Wextra
2
+ CPPFLAGS= -DHAVE_KALLOC
3
+ INCLUDES=
4
+ OBJS= kthread.o kalloc.o misc.o bseq.o sketch.o sdust.o options.o index.o \
5
+ lchain.o align.o hit.o seed.o map.o format.o pe.o esterr.o splitidx.o \
6
+ ksw2_ll_sse.o
7
+ PROG= minimap2
8
+ PROG_EXTRA= sdust minimap2-lite
9
+ LIBS= -lm -lz -lpthread
10
+
11
+ ifeq ($(arm_neon),) # if arm_neon is not defined
12
+ ifeq ($(sse2only),) # if sse2only is not defined
13
+ OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
14
+ else # if sse2only is defined
15
+ OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
16
+ endif
17
+ else # if arm_neon is defined
18
+ OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
19
+ INCLUDES+=-Isse2neon
20
+ ifeq ($(aarch64),) #if aarch64 is not defined
21
+ CFLAGS+=-D_FILE_OFFSET_BITS=64 -mfpu=neon -fsigned-char
22
+ else #if aarch64 is defined
23
+ CFLAGS+=-D_FILE_OFFSET_BITS=64 -fsigned-char
24
+ endif
25
+ endif
26
+
27
+ ifneq ($(asan),)
28
+ CFLAGS+=-fsanitize=address
29
+ LIBS+=-fsanitize=address
30
+ endif
31
+
32
+ ifneq ($(tsan),)
33
+ CFLAGS+=-fsanitize=thread
34
+ LIBS+=-fsanitize=thread
35
+ endif
36
+
37
+ .PHONY:all extra clean depend
38
+ .SUFFIXES:.c .o
39
+
40
+ .c.o:
41
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(INCLUDES) $< -o $@
42
+
43
+ all:$(PROG)
44
+
45
+ extra:all $(PROG_EXTRA)
46
+
47
+ minimap2:main.o libminimap2.a
48
+ $(CC) $(CFLAGS) main.o -o $@ -L. -lminimap2 $(LIBS)
49
+
50
+ minimap2-lite:example.o libminimap2.a
51
+ $(CC) $(CFLAGS) $< -o $@ -L. -lminimap2 $(LIBS)
52
+
53
+ libminimap2.a:$(OBJS)
54
+ $(AR) -csru $@ $(OBJS)
55
+
56
+ sdust:sdust.c kalloc.o kalloc.h kdq.h kvec.h kseq.h ketopt.h sdust.h
57
+ $(CC) -D_SDUST_MAIN $(CFLAGS) $< kalloc.o -o $@ -lz
58
+
59
+ # SSE-specific targets on x86/x86_64
60
+
61
+ ifeq ($(arm_neon),) # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
62
+ ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
63
+ $(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
64
+ endif
65
+
66
+ ksw2_extz2_sse41.o:ksw2_extz2_sse.c ksw2.h kalloc.h
67
+ $(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
68
+
69
+ ksw2_extz2_sse2.o:ksw2_extz2_sse.c ksw2.h kalloc.h
70
+ $(CC) -c $(CFLAGS) -msse2 -mno-sse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH -DKSW_SSE2_ONLY $(INCLUDES) $< -o $@
71
+
72
+ ksw2_extd2_sse41.o:ksw2_extd2_sse.c ksw2.h kalloc.h
73
+ $(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
74
+
75
+ ksw2_extd2_sse2.o:ksw2_extd2_sse.c ksw2.h kalloc.h
76
+ $(CC) -c $(CFLAGS) -msse2 -mno-sse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH -DKSW_SSE2_ONLY $(INCLUDES) $< -o $@
77
+
78
+ ksw2_exts2_sse41.o:ksw2_exts2_sse.c ksw2.h kalloc.h
79
+ $(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
80
+
81
+ ksw2_exts2_sse2.o:ksw2_exts2_sse.c ksw2.h kalloc.h
82
+ $(CC) -c $(CFLAGS) -msse2 -mno-sse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH -DKSW_SSE2_ONLY $(INCLUDES) $< -o $@
83
+
84
+ ksw2_dispatch.o:ksw2_dispatch.c ksw2.h
85
+ $(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
86
+
87
+ # NEON-specific targets on ARM
88
+
89
+ ksw2_extz2_neon.o:ksw2_extz2_sse.c ksw2.h kalloc.h
90
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -DKSW_SSE2_ONLY -D__SSE2__ $(INCLUDES) $< -o $@
91
+
92
+ ksw2_extd2_neon.o:ksw2_extd2_sse.c ksw2.h kalloc.h
93
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -DKSW_SSE2_ONLY -D__SSE2__ $(INCLUDES) $< -o $@
94
+
95
+ ksw2_exts2_neon.o:ksw2_exts2_sse.c ksw2.h kalloc.h
96
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) -DKSW_SSE2_ONLY -D__SSE2__ $(INCLUDES) $< -o $@
97
+
98
+ # other non-file targets
99
+
100
+ clean:
101
+ rm -fr gmon.out *.o a.out $(PROG) $(PROG_EXTRA) *~ *.a *.dSYM build dist mappy*.so mappy.c python/mappy.c mappy.egg*
102
+
103
+ depend:
104
+ (LC_ALL=C; export LC_ALL; makedepend -Y -- $(CFLAGS) $(CPPFLAGS) -- *.c)
105
+
106
+ # DO NOT DELETE
107
+
108
+ align.o: minimap.h mmpriv.h bseq.h kseq.h ksw2.h kalloc.h
109
+ bseq.o: bseq.h kvec.h kalloc.h kseq.h
110
+ esterr.o: mmpriv.h minimap.h bseq.h kseq.h
111
+ example.o: minimap.h kseq.h
112
+ format.o: kalloc.h mmpriv.h minimap.h bseq.h kseq.h
113
+ hit.o: mmpriv.h minimap.h bseq.h kseq.h kalloc.h khash.h
114
+ index.o: kthread.h bseq.h minimap.h mmpriv.h kseq.h kvec.h kalloc.h khash.h
115
+ index.o: ksort.h
116
+ kalloc.o: kalloc.h
117
+ ksw2_extd2_sse.o: ksw2.h kalloc.h
118
+ ksw2_exts2_sse.o: ksw2.h kalloc.h
119
+ ksw2_extz2_sse.o: ksw2.h kalloc.h
120
+ ksw2_ll_sse.o: ksw2.h kalloc.h
121
+ kthread.o: kthread.h
122
+ lchain.o: mmpriv.h minimap.h bseq.h kseq.h kalloc.h krmq.h
123
+ main.o: bseq.h minimap.h mmpriv.h kseq.h ketopt.h
124
+ map.o: kthread.h kvec.h kalloc.h sdust.h mmpriv.h minimap.h bseq.h kseq.h
125
+ map.o: khash.h ksort.h
126
+ misc.o: mmpriv.h minimap.h bseq.h kseq.h ksort.h
127
+ options.o: mmpriv.h minimap.h bseq.h kseq.h
128
+ pe.o: mmpriv.h minimap.h bseq.h kseq.h kvec.h kalloc.h ksort.h
129
+ sdust.o: kalloc.h kdq.h kvec.h sdust.h
130
+ seed.o: mmpriv.h minimap.h bseq.h kseq.h kalloc.h ksort.h
131
+ sketch.o: kvec.h kalloc.h mmpriv.h minimap.h bseq.h kseq.h
132
+ splitidx.o: mmpriv.h minimap.h bseq.h kseq.h
@@ -0,0 +1,97 @@
1
+ CFLAGS= -g -Wall -O2 -Wc++-compat #-Wextra
2
+ CPPFLAGS= -DHAVE_KALLOC -DUSE_SIMDE -DSIMDE_ENABLE_NATIVE_ALIASES
3
+ INCLUDES= -Ilib/simde
4
+ OBJS= kthread.o kalloc.o misc.o bseq.o sketch.o sdust.o options.o index.o lchain.o align.o hit.o map.o format.o pe.o seed.o esterr.o splitidx.o \
5
+ ksw2_extz2_simde.o ksw2_extd2_simde.o ksw2_exts2_simde.o ksw2_ll_simde.o
6
+ PROG= minimap2
7
+ PROG_EXTRA= sdust minimap2-lite
8
+ LIBS= -lm -lz -lpthread
9
+
10
+
11
+ ifneq ($(arm_neon),) # if arm_neon is defined
12
+ ifeq ($(aarch64),) #if aarch64 is not defined
13
+ CFLAGS+=-D_FILE_OFFSET_BITS=64 -mfpu=neon -fsigned-char
14
+ else #if aarch64 is defined
15
+ CFLAGS+=-D_FILE_OFFSET_BITS=64 -fsigned-char
16
+ endif
17
+ endif
18
+
19
+ ifneq ($(asan),)
20
+ CFLAGS+=-fsanitize=address
21
+ LIBS+=-fsanitize=address
22
+ endif
23
+
24
+ ifneq ($(tsan),)
25
+ CFLAGS+=-fsanitize=thread
26
+ LIBS+=-fsanitize=thread
27
+ endif
28
+
29
+ .PHONY:all extra clean depend
30
+ .SUFFIXES:.c .o
31
+
32
+ .c.o:
33
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(INCLUDES) $< -o $@
34
+
35
+ all:$(PROG)
36
+
37
+ extra:all $(PROG_EXTRA)
38
+
39
+ minimap2:main.o libminimap2.a
40
+ $(CC) $(CFLAGS) main.o -o $@ -L. -lminimap2 $(LIBS)
41
+
42
+ minimap2-lite:example.o libminimap2.a
43
+ $(CC) $(CFLAGS) $< -o $@ -L. -lminimap2 $(LIBS)
44
+
45
+ libminimap2.a:$(OBJS)
46
+ $(AR) -csru $@ $(OBJS)
47
+
48
+ sdust:sdust.c kalloc.o kalloc.h kdq.h kvec.h kseq.h ketopt.h sdust.h
49
+ $(CC) -D_SDUST_MAIN $(CFLAGS) $< kalloc.o -o $@ -lz
50
+
51
+ ksw2_ll_simde.o:ksw2_ll_sse.c ksw2.h kalloc.h
52
+ $(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
53
+
54
+ ksw2_extz2_simde.o:ksw2_extz2_sse.c ksw2.h kalloc.h
55
+ $(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) $(INCLUDES) $< -o $@
56
+
57
+ ksw2_extd2_simde.o:ksw2_extd2_sse.c ksw2.h kalloc.h
58
+ $(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) $(INCLUDES) $< -o $@
59
+
60
+ ksw2_exts2_simde.o:ksw2_exts2_sse.c ksw2.h kalloc.h
61
+ $(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) $(INCLUDES) $< -o $@
62
+
63
+ # other non-file targets
64
+
65
+ clean:
66
+ rm -fr gmon.out *.o a.out $(PROG) $(PROG_EXTRA) *~ *.a *.dSYM build dist mappy*.so mappy.c python/mappy.c mappy.egg*
67
+
68
+ depend:
69
+ (LC_ALL=C; export LC_ALL; makedepend -Y -- $(CFLAGS) $(CPPFLAGS) -- *.c)
70
+
71
+ # DO NOT DELETE
72
+
73
+ align.o: minimap.h mmpriv.h bseq.h kseq.h ksw2.h kalloc.h
74
+ bseq.o: bseq.h kvec.h kalloc.h kseq.h
75
+ chain.o: minimap.h mmpriv.h bseq.h kseq.h kalloc.h
76
+ esterr.o: mmpriv.h minimap.h bseq.h kseq.h
77
+ example.o: minimap.h kseq.h
78
+ format.o: kalloc.h mmpriv.h minimap.h bseq.h kseq.h
79
+ hit.o: mmpriv.h minimap.h bseq.h kseq.h kalloc.h khash.h
80
+ index.o: kthread.h bseq.h minimap.h mmpriv.h kseq.h kvec.h kalloc.h khash.h
81
+ index.o: ksort.h
82
+ kalloc.o: kalloc.h
83
+ ksw2_extd2_sse.o: ksw2.h kalloc.h
84
+ ksw2_exts2_sse.o: ksw2.h kalloc.h
85
+ ksw2_extz2_sse.o: ksw2.h kalloc.h
86
+ ksw2_ll_sse.o: ksw2.h kalloc.h
87
+ kthread.o: kthread.h
88
+ main.o: bseq.h minimap.h mmpriv.h kseq.h ketopt.h
89
+ map.o: kthread.h kvec.h kalloc.h sdust.h mmpriv.h minimap.h bseq.h kseq.h
90
+ map.o: khash.h ksort.h
91
+ misc.o: mmpriv.h minimap.h bseq.h kseq.h ksort.h
92
+ options.o: mmpriv.h minimap.h bseq.h kseq.h
93
+ pe.o: mmpriv.h minimap.h bseq.h kseq.h kvec.h kalloc.h ksort.h
94
+ sdust.o: kalloc.h kdq.h kvec.h sdust.h
95
+ self-chain.o: minimap.h kseq.h
96
+ sketch.o: kvec.h kalloc.h mmpriv.h minimap.h bseq.h kseq.h
97
+ splitidx.o: mmpriv.h minimap.h bseq.h kseq.h