ruby-minigraph 0.0.20.0

Sign up to get free protection for your applications and to get access to all the features.
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)