ruby-minigraph 0.0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +62 -0
  4. data/ext/Rakefile +56 -0
  5. data/ext/cmappy/cmappy.c +7 -0
  6. data/ext/cmappy/cmappy.h +8 -0
  7. data/ext/minigraph/LICENSE.txt +23 -0
  8. data/ext/minigraph/Makefile +66 -0
  9. data/ext/minigraph/NEWS.md +317 -0
  10. data/ext/minigraph/README.md +207 -0
  11. data/ext/minigraph/algo.c +194 -0
  12. data/ext/minigraph/algo.h +33 -0
  13. data/ext/minigraph/asm-call.c +147 -0
  14. data/ext/minigraph/bseq.c +133 -0
  15. data/ext/minigraph/bseq.h +76 -0
  16. data/ext/minigraph/cal_cov.c +139 -0
  17. data/ext/minigraph/doc/example1.png +0 -0
  18. data/ext/minigraph/doc/example2.png +0 -0
  19. data/ext/minigraph/doc/examples.graffle +0 -0
  20. data/ext/minigraph/format.c +241 -0
  21. data/ext/minigraph/galign.c +140 -0
  22. data/ext/minigraph/gchain1.c +532 -0
  23. data/ext/minigraph/gcmisc.c +223 -0
  24. data/ext/minigraph/gfa-aug.c +260 -0
  25. data/ext/minigraph/gfa-base.c +526 -0
  26. data/ext/minigraph/gfa-bbl.c +372 -0
  27. data/ext/minigraph/gfa-ed.c +617 -0
  28. data/ext/minigraph/gfa-io.c +395 -0
  29. data/ext/minigraph/gfa-priv.h +154 -0
  30. data/ext/minigraph/gfa.h +166 -0
  31. data/ext/minigraph/ggen.c +182 -0
  32. data/ext/minigraph/ggen.h +21 -0
  33. data/ext/minigraph/ggsimple.c +570 -0
  34. data/ext/minigraph/gmap.c +211 -0
  35. data/ext/minigraph/index.c +230 -0
  36. data/ext/minigraph/kalloc.c +224 -0
  37. data/ext/minigraph/kalloc.h +82 -0
  38. data/ext/minigraph/kavl.h +414 -0
  39. data/ext/minigraph/kdq.h +134 -0
  40. data/ext/minigraph/ketopt.h +116 -0
  41. data/ext/minigraph/khashl.h +348 -0
  42. data/ext/minigraph/krmq.h +474 -0
  43. data/ext/minigraph/kseq.h +256 -0
  44. data/ext/minigraph/ksort.h +164 -0
  45. data/ext/minigraph/kstring.h +165 -0
  46. data/ext/minigraph/kthread.c +159 -0
  47. data/ext/minigraph/kthread.h +15 -0
  48. data/ext/minigraph/kvec-km.h +105 -0
  49. data/ext/minigraph/kvec.h +110 -0
  50. data/ext/minigraph/lchain.c +441 -0
  51. data/ext/minigraph/main.c +301 -0
  52. data/ext/minigraph/map-algo.c +500 -0
  53. data/ext/minigraph/mgpriv.h +128 -0
  54. data/ext/minigraph/minigraph.1 +359 -0
  55. data/ext/minigraph/minigraph.h +176 -0
  56. data/ext/minigraph/miniwfa.c +834 -0
  57. data/ext/minigraph/miniwfa.h +95 -0
  58. data/ext/minigraph/misc/mgutils.js +1451 -0
  59. data/ext/minigraph/misc.c +12 -0
  60. data/ext/minigraph/options.c +134 -0
  61. data/ext/minigraph/shortk.c +251 -0
  62. data/ext/minigraph/sketch.c +109 -0
  63. data/ext/minigraph/sys.c +147 -0
  64. data/ext/minigraph/sys.h +20 -0
  65. data/ext/minigraph/test/MT-chimp.fa +277 -0
  66. data/ext/minigraph/test/MT-human.fa +239 -0
  67. data/ext/minigraph/test/MT-orangA.fa +276 -0
  68. data/ext/minigraph/test/MT.gfa +19 -0
  69. data/ext/minigraph/tex/Makefile +13 -0
  70. data/ext/minigraph/tex/minigraph.bib +676 -0
  71. data/ext/minigraph/tex/minigraph.tex +986 -0
  72. data/ext/minigraph/tex/plots/CHM13-f1-90.bb.anno.gp +42 -0
  73. data/ext/minigraph/tex/plots/CHM13-f1-90.bb.anno.tbl +13 -0
  74. data/ext/minigraph/tex/plots/CHM13-f1-90.bb.mini-inter-none.win.gp +269 -0
  75. data/ext/minigraph/tex/plots/CHM13-f1-90.bb.mini-inter-none.win.sh +7 -0
  76. data/ext/minigraph/tex/plots/CHM13v1.cen.bed +23 -0
  77. data/ext/minigraph/tex/plots/CHM13v1.size +23 -0
  78. data/ext/minigraph/tex/plots/anno2tbl.js +40 -0
  79. data/ext/minigraph/tex/plots/bedutils.js +367 -0
  80. data/ext/minigraph/tex/plots/chr-plot.js +130 -0
  81. data/ext/minigraph/tex/plots/gen-anno.mak +24 -0
  82. data/ext/minigraph.patch +21 -0
  83. data/lib/minigraph/ffi/constants.rb +230 -0
  84. data/lib/minigraph/ffi/functions.rb +70 -0
  85. data/lib/minigraph/ffi/mappy.rb +8 -0
  86. data/lib/minigraph/ffi.rb +27 -0
  87. data/lib/minigraph/version.rb +5 -0
  88. data/lib/minigraph.rb +72 -0
  89. metadata +159 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 49f58deab3da3bede2c3097c3f1cd2c246adc9f327b2c1f4dce099d60b4ddddb
4
+ data.tar.gz: e877833193973c617c12247901cc4ea18f1718dbce408f877052b702da533d94
5
+ SHA512:
6
+ metadata.gz: c185b325b680d528d55c069e9b9f0697cdde2dd73bbe7f8cce68215e07a1c32335c633217656592c0c33fdc5b97570f33768cb8208338ccbb3288d981f12ee83
7
+ data.tar.gz: a3d3787cd6534192f9366b1c4b1eb9cba0a0520904e583a21d7fd6251eb1958e0bdfa22e586ae8bb5a9223a3fc11218a0c68c830ab54c8e027f4e6f15b0a1bf6
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2020 kojix2
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # ruby-minigraph
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/ruby-minigraph.svg)](https://badge.fury.io/rb/ruby-minigraph)
4
+ [![test](https://github.com/kojix2/ruby-minigraph/actions/workflows/ci.yml/badge.svg)](https://github.com/kojix2/ruby-minigraph/actions/workflows/ci.yml)
5
+ [![Docs Latest](https://img.shields.io/badge/docs-latest-blue.svg)](https://kojix2.github.io/ruby-minigraph/)
6
+ [![The MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.txt)
7
+ [![DOI](https://zenodo.org/badge/339645970.svg)](https://zenodo.org/badge/latestdoi/339645970)
8
+
9
+ :curly_loop: [minigraph](https://github.com/lh3/minigraph) - the sequence-to-graph mapper - for [Ruby](https://github.com/ruby/ruby)
10
+
11
+ :construction: under development
12
+
13
+ ## Installation
14
+
15
+ You need to install it from the source code. Because you need to build minigraph and create a shared library. Open your terminal and type the following commands in order.
16
+
17
+ ```sh
18
+ git clone --recursive https://github.com/kojix2/ruby-minigraph
19
+ cd ruby-minigraph
20
+ bundle install
21
+ bundle exec rake minigraph:build
22
+ bundle exec rake install
23
+ ```
24
+
25
+ You can run tests to see if the installation was successful.
26
+
27
+ ```
28
+ bundle exec rake test
29
+ ```
30
+
31
+ ## Quick Start
32
+
33
+ ```ruby
34
+ require "minigraph"
35
+ ```
36
+
37
+ ## APIs
38
+
39
+ ## Development
40
+
41
+ ```sh
42
+ git clone --recursive https://github.com/kojix2/ruby-minigraph
43
+ # git clone https://github.com/kojix2/ruby-minigraph
44
+ # cd ruby-minigraph
45
+ # git submodule update -i
46
+ cd ruby-minigraph
47
+ bundle install
48
+ bundle exec rake minigraph:build
49
+ bundle exec rake test
50
+ ```
51
+
52
+ ## Contributing
53
+
54
+ ruby-minigraph is a library under development and there are many points to be improved.
55
+ If you improve the source code, please feel free to send us your pull request.
56
+ Typo corrections are also welcome.
57
+
58
+ Bug reports and pull requests are welcome on GitHub at https://github.com/kojix2/ruby-minigraph.
59
+
60
+ ## License
61
+
62
+ [MIT License](https://opensource.org/licenses/MIT).
data/ext/Rakefile ADDED
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rake"
4
+ require "fileutils"
5
+ require "ffi"
6
+
7
+ minigraph_dir = File.expand_path("minigraph", __dir__)
8
+ target_dir = "../../vendor"
9
+ target_fname = FFI.map_library_name("minigraph")
10
+ target_path = File.join(target_dir, target_fname)
11
+
12
+ task default: ["minigraph:build", "minigraph:clean"]
13
+
14
+ namespace :minigraph do
15
+ desc "Compile Minigraph"
16
+ task :build do
17
+ Dir.chdir(minigraph_dir) do
18
+ # Add -fPIC option to Makefile
19
+ sh "git apply ../minigraph.patch"
20
+ sh "cp ../cmappy/cmappy.h ../cmappy/cmappy.c ."
21
+ # case RbConfig::CONFIG["host_cpu"]
22
+ sh "make"
23
+ # end
24
+ case RbConfig::CONFIG["host_os"]
25
+ when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
26
+ warn "windows not supported"
27
+ sh "cc *.o -shared -o #{target_fname} -lm -lz -lpthread"
28
+ when /darwin|mac os/
29
+ sh "clang -dynamiclib -undefined dynamic_lookup -o #{target_fname} *.o -lm -lz -lpthread"
30
+ sh "otool -L #{target_fname}"
31
+ else
32
+ sh "cc *.o -shared -o #{target_fname} -lm -lz -lpthread"
33
+ sh "ldd -r #{target_fname}"
34
+ end
35
+ sh "rm cmappy.h cmappy.c"
36
+ sh "git apply -R ../minigraph.patch"
37
+ FileUtils.mkdir_p(target_dir)
38
+ warn "mkdir -p #{target_dir}"
39
+ sh "mv #{target_fname} #{target_path}"
40
+ end
41
+ end
42
+
43
+ desc "make clean"
44
+ task :clean do
45
+ Dir.chdir(minigraph_dir) do
46
+ sh "make clean"
47
+ end
48
+ end
49
+
50
+ desc "`make clean` and remove shared lib"
51
+ task cleanall: [:clean] do
52
+ Dir.chdir(minigraph_dir) do
53
+ sh "rm #{target_path}" if File.exist?(target_path)
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,7 @@
1
+ #include "cmappy.h"
2
+
3
+ int mg_verbose_level(int v)
4
+ {
5
+ if (v >= 0) mg_verbose = v;
6
+ return mg_verbose;
7
+ }
@@ -0,0 +1,8 @@
1
+ #ifndef CMAPPY_H
2
+ #define CMAPPY_H
3
+
4
+ #include "minigraph.h"
5
+
6
+ int mg_verbose_level(int v);
7
+
8
+ #endif
@@ -0,0 +1,23 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2019- Dana-Farber Cancer Institute
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
20
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
@@ -0,0 +1,66 @@
1
+ CC= gcc
2
+ CFLAGS= -g -Wall -Wc++-compat -std=c99 -msse4 -O3
3
+ CPPFLAGS=
4
+ INCLUDES=
5
+ OBJS= kalloc.o kthread.o algo.o sys.o gfa-base.o gfa-io.o gfa-aug.o gfa-bbl.o gfa-ed.o \
6
+ sketch.o misc.o bseq.o options.o shortk.o miniwfa.o \
7
+ index.o lchain.o gchain1.o galign.o gcmisc.o map-algo.o cal_cov.o \
8
+ format.o gmap.o ggsimple.o ggen.o asm-call.o
9
+ PROG= minigraph
10
+ LIBS= -lz -lpthread -lm
11
+
12
+ ifneq ($(asan),)
13
+ CFLAGS+=-fsanitize=address
14
+ LIBS+=-fsanitize=address -ldl
15
+ endif
16
+
17
+ .SUFFIXES:.c .o
18
+ .PHONY:all clean depend
19
+
20
+ .c.o:
21
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(INCLUDES) $< -o $@
22
+
23
+ all:$(PROG)
24
+
25
+ minigraph:$(OBJS) main.o
26
+ $(CC) $(CFLAGS) $^ -o $@ $(LIBS)
27
+
28
+ clean:
29
+ rm -fr gmon.out *.o a.out $(PROG) *~ *.a *.dSYM
30
+
31
+ depend:
32
+ (LC_ALL=C; export LC_ALL; makedepend -Y -- $(CFLAGS) $(DFLAGS) -- *.c)
33
+
34
+ # DO NOT DELETE
35
+
36
+ algo.o: kalloc.h algo.h miniwfa.h kvec-km.h ksort.h
37
+ asm-call.o: mgpriv.h minigraph.h gfa.h ggen.h bseq.h gfa-priv.h algo.h
38
+ bseq.o: bseq.h kvec-km.h kalloc.h kseq.h
39
+ cal_cov.o: mgpriv.h minigraph.h gfa.h gfa-priv.h algo.h kalloc.h
40
+ format.o: kalloc.h mgpriv.h minigraph.h gfa.h
41
+ galign.o: mgpriv.h minigraph.h gfa.h kalloc.h miniwfa.h
42
+ gchain1.o: mgpriv.h minigraph.h gfa.h ksort.h khashl.h kalloc.h gfa-priv.h
43
+ gcmisc.o: mgpriv.h minigraph.h gfa.h kalloc.h
44
+ gfa-aug.o: gfa-priv.h gfa.h ksort.h
45
+ gfa-base.o: gfa-priv.h gfa.h kstring.h khashl.h kalloc.h ksort.h
46
+ gfa-bbl.o: gfa-priv.h gfa.h kalloc.h ksort.h kvec.h
47
+ gfa-ed.o: gfa-priv.h gfa.h kalloc.h ksort.h khashl.h kdq.h kvec-km.h
48
+ gfa-io.o: kstring.h gfa-priv.h gfa.h kseq.h
49
+ ggen.o: kthread.h kalloc.h sys.h bseq.h ggen.h minigraph.h gfa.h mgpriv.h
50
+ ggen.o: gfa-priv.h
51
+ ggsimple.o: mgpriv.h minigraph.h gfa.h gfa-priv.h kalloc.h bseq.h algo.h
52
+ ggsimple.o: sys.h ggen.h kvec-km.h
53
+ gmap.o: kthread.h kalloc.h bseq.h sys.h mgpriv.h minigraph.h gfa.h gfa-priv.h
54
+ index.o: mgpriv.h minigraph.h gfa.h khashl.h kalloc.h kthread.h kvec-km.h
55
+ index.o: sys.h
56
+ kalloc.o: kalloc.h
57
+ kthread.o: kthread.h
58
+ lchain.o: mgpriv.h minigraph.h gfa.h kalloc.h krmq.h
59
+ main.o: mgpriv.h minigraph.h gfa.h gfa-priv.h sys.h ketopt.h
60
+ map-algo.o: kalloc.h mgpriv.h minigraph.h gfa.h khashl.h ksort.h
61
+ miniwfa.o: miniwfa.h kalloc.h
62
+ misc.o: mgpriv.h minigraph.h gfa.h ksort.h
63
+ options.o: mgpriv.h minigraph.h gfa.h sys.h
64
+ shortk.o: mgpriv.h minigraph.h gfa.h ksort.h kavl.h algo.h khashl.h kalloc.h
65
+ sketch.o: kvec-km.h kalloc.h mgpriv.h minigraph.h gfa.h
66
+ sys.o: sys.h
@@ -0,0 +1,317 @@
1
+ Release 0.20-r559 (20 November 2022)
2
+ ------------------------------------
3
+
4
+ This release fixes several assertion failures (#78, #79 and #80) caused by
5
+ recent changes in graph chaining. It also fixes an integer overflow that may
6
+ happen to chromosomes longer than 256 Mb (#76). Results remain the same.
7
+
8
+ (20 November 2022, r559)
9
+
10
+
11
+
12
+ Release 0.19-r551 (12 June 2022)
13
+ --------------------------------
14
+
15
+ This release fixes a segmental fault if minigraph is compiled with certain
16
+ compiler-libc combinations. This is apparently caused by memcpy(0,0,0).
17
+ Minigraph is otherwise identical v0.18.
18
+
19
+ (12 June 2022, r551)
20
+
21
+
22
+
23
+ Release 0.18-r538 (9 May 2022)
24
+ ------------------------------
25
+
26
+ This release uses heuristics to speed up base alignment in long divergent
27
+ regions. The heuristics does not guarantee optimal alignment but it reliably
28
+ produces alignment close to the optimal except in centromeres where the
29
+ algorithmically optimal alignment may not represent true evolution in biology.
30
+ The new version is 10-700% faster than v0.17 depending on input data and
31
+ parameters in use.
32
+
33
+ (9 May 2022, r538)
34
+
35
+
36
+
37
+ Release 0.17-r524 (29 April 2022)
38
+ ---------------------------------
39
+
40
+ This release adds base alignment to minigraph. It represents the first major
41
+ improvement to minigraph. Specifically, this release attempts to connect linear
42
+ chains with the graph wavefront alignemnt algorithm (GWFA) and produces the
43
+ final alignment with miniwfa under the 2-piece gap penalty. Graph generation
44
+ also considers base alignment. This gives more accurate graph alignment and
45
+ generally simpler graph topology. Note that minigraph still focuses on
46
+ structural variations and does not generate base-level graphs. To endusers,
47
+ minigraph remains similar feature wise.
48
+
49
+ Notable changes:
50
+
51
+ * New feature: option `-c` for base alignment and graph generation. In the
52
+ alignment mode, the option adds the `cg:Z` CIGAR tag like minimap2. Graph
53
+ generation still works without `-c` but applying this option is generally
54
+ recommended now.
55
+
56
+ It should be noted that the base alignment is currently slow for species of
57
+ high diversity. This will be addressed in the next couple of releases.
58
+
59
+ (29 April 2022, r524)
60
+
61
+
62
+
63
+ Release 0.16-r436 (21 February 2022)
64
+ ------------------------------------
65
+
66
+ Notable changes:
67
+
68
+ * Improvement: 2-level chaining. This is a feature backported from minimap2.
69
+ It speeds up graph generation for human graphs.
70
+
71
+ * Improvement: break a chain at poorly aligned regions, another recent
72
+ minimap2 feature.
73
+
74
+ * Added the script for generating figures in the minigraph paper.
75
+
76
+ (21 February 2022, r436)
77
+
78
+
79
+
80
+ Release 0.15-r426 (21 March 2021)
81
+ ---------------------------------
82
+
83
+ Fixed a bug in bubble identification around inversions. This version should be
84
+ used together with the latest gfatools for consistency.
85
+
86
+ (21 March 2021, r426)
87
+
88
+
89
+
90
+ Release 0.14-r415 (19 December 2020)
91
+ ------------------------------------
92
+
93
+ Notable changes:
94
+
95
+ * Added the `--call` option to find the allele/walk in each bubble.
96
+
97
+ * Reduced the default minimum variant length (option `-L`) from 100 to 50 for
98
+ the consistency with the SV community.
99
+
100
+ (19 December 2020, r415)
101
+
102
+
103
+
104
+ Release 0.13-r397 (3 December 2020)
105
+ -----------------------------------
106
+
107
+ Notable change:
108
+
109
+ * Fixed incorrect anchors in linear chains. In older versions, a linear chain
110
+ may contain two anchors with identical reference or query coordinates.
111
+
112
+ (3 December 2020, r397)
113
+
114
+
115
+
116
+ Release 0.12-r389 (26 October 2020)
117
+ -----------------------------------
118
+
119
+ Notable changes:
120
+
121
+ * Improve alignments towards ends of graph segments. If there is an SV close to
122
+ the ends but not at the ends, older versions may produce an excessively
123
+ large bubble including high-identity matches.
124
+
125
+ * Heuristically accelerates alignment in complex subgraphs by skipping
126
+ many unnecessary sequence-aware graph traversals. This speeds up graph
127
+ generation for CHM13 by three folds without obviously affecting accuracy.
128
+
129
+ * Added option --inv to optionally disable inversions. Graph traversal is hard
130
+ with inversions.
131
+
132
+ * Fixed the bug that prevents large -K.
133
+
134
+ * Apply option -K4g to the asm preset.
135
+
136
+ * Added option --write-mz to output the positions of minimizer anchors.
137
+
138
+ (26 October 2020, r389)
139
+
140
+
141
+
142
+ Release 0.11-r371 (13 September 2020)
143
+ -------------------------------------
144
+
145
+ Notable changes:
146
+
147
+ * Added option --max-rmq-size to limit the max RMQ size, which is set 100k by
148
+ default. This heuristic reduces the long running time for aligning long
149
+ centromeric sequences. The accuracy might be affected in rare cases.
150
+
151
+ * Cap the max k-mer occurrence to 250 by default. For maize genomes, the
152
+ current heuristic may choose an occurrence cutoff larger than 1000. This
153
+ makes minigraph too slow to be practical.
154
+
155
+ * Added option -S to output more detailed information about linear chains.
156
+
157
+ * Added option -D to ignore diagonal minimizer anchors. This is useful to
158
+ mapping a sequence against itself.
159
+
160
+ (13 September 2020, r371)
161
+
162
+
163
+
164
+ Release 0.10-r356 (14 February 2020)
165
+ ------------------------------------
166
+
167
+ Notable changes:
168
+
169
+ * Older releases miss a small fraction of INDELs involving repeats. This
170
+ release fixes this issue.
171
+
172
+ * Added the "stableGaf" command to mgutils.js to convert unstable GAF (e.g. by
173
+ GraphAligner) to stable GAF.
174
+
175
+ (14 February 2020, r356)
176
+
177
+
178
+
179
+ Release 0.9-r343 (31 December 2019)
180
+ -----------------------------------
181
+
182
+ Notable changes:
183
+
184
+ * RMQ based linear chaining. The chaining accuracy should be higher for large
185
+ events. The speed remains similar.
186
+
187
+ * Use ksw2 to check the sequence divergence of events to be inserted.
188
+
189
+ * Treat inversions as special events. Don't insert them as long substitutions.
190
+
191
+ (31 December 2019, r343)
192
+
193
+
194
+
195
+ Release 0.8-r316 (11 December 2019)
196
+ -----------------------------------
197
+
198
+ This release reduces suboptimal chains caused by the chaining heuristics. It
199
+ generates slightly simpler human graphs.
200
+
201
+ (11 December 2019, r316)
202
+
203
+
204
+
205
+ Release 0.7-r310 (21 November 2019)
206
+ -----------------------------------
207
+
208
+ Notable changes:
209
+
210
+ * Increased the default maximum INDEL/event length from 10kb to 100kb for
211
+ assembly mapping and graph generation.
212
+
213
+ * Decreased the default minimum INDEL/event length from 250bp to 100bp.
214
+
215
+ * Accelerated graph mapping by pre-filtering isolated anchors and disconnected
216
+ linear chains. This triples the performance when long gaps are desired.
217
+
218
+ Due to the change of default parameters, this release generates graphs
219
+ different from the previous versions.
220
+
221
+ (21 November 2019, r310)
222
+
223
+
224
+
225
+ Release 0.6-r302 (17 November 2019)
226
+ -----------------------------------
227
+
228
+ Notable changes:
229
+
230
+ * Assign weight to seeds based on their repetitiveness. This helps chaining in
231
+ repetitive regions a little bit.
232
+
233
+ * For short-read mapping, prefer the reference path if the alternate path is
234
+ not much better.
235
+
236
+ Major changes may be coming in the next release.
237
+
238
+ (17 November 2019, r302)
239
+
240
+
241
+
242
+ Release 0.5-r285 (8 September 2019)
243
+ -----------------------------------
244
+
245
+ Notable changes:
246
+
247
+ * Fixed a bug that leads to wrong mapping positions in GAF.
248
+
249
+ * Fixed two bugs related to graph chaining.
250
+
251
+ * Added option `-j` to set expected sequence divergence and to adjust other
252
+ chaining parameters accordingly.
253
+
254
+ * Increased the k-mer thresholds for fast divergence estimate. This improves
255
+ the alignment around low-complexity regions.
256
+
257
+ * Tuned the default parameters to add highly divergent events only.
258
+
259
+ * Warn about duplicated sequence names in graph construction (#3).
260
+
261
+ This version generates graphs different from the previous versions. The mapping
262
+ accuracy is improved due to the bug fixes and parameter tuning.
263
+
264
+ (8 September 2019, r285)
265
+
266
+
267
+
268
+ Release 0.4-r267 (22 August 2019)
269
+ ---------------------------------
270
+
271
+ Notable changes:
272
+
273
+ * Support paired-end mapping for short reads.
274
+
275
+ * Remap and calculate coverage (see the new --cov option in the manpage).
276
+
277
+ * Fixed multiple edges in the generated graphs. The v0.3 14-genome graph
278
+ contains one multiple edge.
279
+
280
+ * Use dynamic minimizer occurrence cutoff. For human data, the dynamic cutoff
281
+ is around 137, higher than the default cutoff 100 used in earlier versions.
282
+ As a result, graph generations will become a little slower.
283
+
284
+ Due to the last two changes, graphs generated with this version are different
285
+ from the previous versions.
286
+
287
+ (22 August 2019, r267)
288
+
289
+
290
+
291
+ Release 0.3-r243 (7 August 2019)
292
+ --------------------------------
293
+
294
+ This release generates graphs with SR tags on L-lines. The topology of the
295
+ graph is identical to the one generated with v0.2.
296
+
297
+ (7 August 2019, r243)
298
+
299
+
300
+
301
+ Release 0.2-r235 (19 July 2019)
302
+ -------------------------------
303
+
304
+ This release fixes multiple minor bugs. It also considers k-mer matches and
305
+ improves the accuracy of graph chaining. Nonetheless, the old chaining
306
+ algorithm, albeit simple, works quite well. The improvement is marginal.
307
+
308
+ (19 July 2019, r235)
309
+
310
+
311
+
312
+ Release 0.1-r191 (6 July 2019)
313
+ ------------------------------
314
+
315
+ Initial proof-of-concept release.
316
+
317
+ (6 July 2019, r191)