minimap2 0.2.21 → 0.2.22.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bd850f529cb82950c16581735bdd74f232e0ef3490e5cb5b6f7045faa1fe696
4
- data.tar.gz: 40d00cf14886a35f831b593d541cf9e72f8e5cf07d87be31116c215799449f62
3
+ metadata.gz: 7ceb411a88448c6ed13e6d842450264e91569260c9b19d77e699a93736768522
4
+ data.tar.gz: 76c1f3466375b73c54db6cd2574ffe19a817b11994d50e9e8473a209566b14f5
5
5
  SHA512:
6
- metadata.gz: 669bd6d5a4eb0dc37f12ee4c0f9653bfe76afec70b8d592e291269cb97b90b493b398b8d68ebacb64ba2ce28187a32a32fdb3fb77ef070023ffa27983f479929
7
- data.tar.gz: 12c2fd1ace06a7e6a1734cb27f09091851f3fe917714156b27a003a168815dbef83eabc00c56c701bdcd5f982db873346bca375b3e8f05764b7fb797d2d5c898
6
+ metadata.gz: 05a313f05984e2afab772da3971249327a9461a92d8b1fbcf53329ea5cd9d421e4ab8a137bd16213b86d6912bf1d43fd7f22c1bb5408a36004a64296fab294d9
7
+ data.tar.gz: 7739312455aba2b14192eef634623f351fc4cea721d142b815ce41d651bc3de84e0fe413de6d24e8551ed90a2d71bcbf82a3df5b87685cb1474e6a134ed9fefe
data/lib/minimap2.rb CHANGED
@@ -34,27 +34,31 @@ module Minimap2
34
34
 
35
35
  # methods from mappy
36
36
  class << self
37
+ # Set verbosity level.
38
+ # @param [Integer] level
39
+
40
+ def verbose(level = -1)
41
+ FFI.mm_verbose_level(level)
42
+ end
43
+
37
44
  # Read fasta/fastq file.
38
45
  # @param [String] file_path
39
- # @param [Boolean] read_comment If false or nil, the comment will not be read.
46
+ # @param [Boolean] comment If True, the comment will be read.
40
47
  # @yield [name, seq, qual, comment]
41
- # Note: You can also use a generic library such as BioRuby instead of this method.
48
+ # @return [Enumerator] enum Retrun Enumerator if not block given.
49
+ # Note: You can BioRuby instead of this method.
42
50
 
43
- def fastx_read(file_path, read_comment = false)
51
+ def fastx_read(file_path, comment: false, &block)
44
52
  path = File.expand_path(file_path)
45
53
  ks = FFI.mm_fastx_open(path)
46
- while FFI.kseq_read(ks) >= 0
47
- qual = ks[:qual][:s] if (ks[:qual][:l]).positive?
48
- name = ks[:name][:s]
49
- seq = ks[:seq][:s]
50
- if read_comment
51
- comment = ks[:comment][:s] if (ks[:comment][:l]).positive?
52
- yield [name, seq, qual, comment]
53
- else
54
- yield [name, seq, qual]
54
+ if block_given?
55
+ fastx_each(ks, comment, &block)
56
+ else
57
+ Enumerator.new do |y|
58
+ # rewind not work
59
+ fastx_each(ks, comment) { |r| y << r }
55
60
  end
56
61
  end
57
- FFI.mm_fastx_close(ks)
58
62
  end
59
63
 
60
64
  # Reverse complement sequence.
@@ -68,11 +72,23 @@ module Minimap2
68
72
  FFI.mappy_revcomp(l, bseq)
69
73
  end
70
74
 
71
- # Set verbosity level.
72
- # @param [Integer] level
75
+ private
73
76
 
74
- def verbose(level = -1)
75
- FFI.mm_verbose_level(level)
77
+ def fastx_each(ks, comment)
78
+ yield fastx_next(ks, comment) while FFI.kseq_read(ks) >= 0
79
+ FFI.mm_fastx_close(ks)
80
+ end
81
+
82
+ def fastx_next(ks, read_comment)
83
+ qual = ks[:qual][:s] if (ks[:qual][:l]).positive?
84
+ name = ks[:name][:s]
85
+ seq = ks[:seq][:s]
86
+ if read_comment
87
+ comment = ks[:comment][:s] if (ks[:comment][:l]).positive?
88
+ [name, seq, qual, comment]
89
+ else
90
+ [name, seq, qual]
91
+ end
76
92
  end
77
93
  end
78
94
  end
@@ -3,48 +3,60 @@
3
3
  module Minimap2
4
4
  module FFI
5
5
  # flags
6
- NO_DIAG = 0x001 # no exact diagonal hit
7
- NO_DUAL = 0x002 # skip pairs where query name is lexicographically larger than target name
8
- CIGAR = 0x004
9
- OUT_SAM = 0x008
10
- NO_QUAL = 0x010
11
- OUT_CG = 0x020
12
- OUT_CS = 0x040
13
- SPLICE = 0x080 # splice mode
14
- SPLICE_FOR = 0x100 # match GT-AG
15
- SPLICE_REV = 0x200 # match CT-AC, the reverse complement of GT-AG
16
- NO_LJOIN = 0x400
17
- OUT_CS_LONG = 0x800
18
- SR = 0x1000
19
- FRAG_MODE = 0x2000
20
- NO_PRINT_2ND = 0x4000
21
- TWO_IO_THREADS = 0x8000 # Translator's Note. MM_F_2_IO_THREADS. Constants starting with numbers cannot be defined.
22
- LONG_CIGAR = 0x10000
23
- INDEPEND_SEG = 0x20000
24
- SPLICE_FLANK = 0x40000
25
- SOFTCLIP = 0x80000
26
- FOR_ONLY = 0x100000
27
- REV_ONLY = 0x200000
28
- HEAP_SORT = 0x400000
29
- ALL_CHAINS = 0x800000
30
- OUT_MD = 0x1000000
31
- COPY_COMMENT = 0x2000000
32
- EQX = 0x4000000 # use =/X instead of M
33
- PAF_NO_HIT = 0x8000000 # output unmapped reads to PAF
34
- NO_END_FLT = 0x10000000
35
- HARD_MLEVEL = 0x20000000
36
- SAM_HIT_ONLY = 0x40000000
37
- RMQ = 0x80000000 # LL
38
-
39
- HPC = 0x1
40
- NO_SEQ = 0x2
41
- NO_NAME = 0x4
42
-
43
- IDX_MAGIC = "MMI\2"
44
-
45
- MAX_SEG = 255
46
-
47
- CIGAR_STR = 'MIDNSHP=XB'
6
+ NO_DIAG = 0x001 # no exact diagonal hit
7
+ NO_DUAL = 0x002 # skip pairs where query name is lexicographically larger than target name
8
+ CIGAR = 0x004
9
+ OUT_SAM = 0x008
10
+ NO_QUAL = 0x010
11
+ OUT_CG = 0x020
12
+ OUT_CS = 0x040
13
+ SPLICE = 0x080 # splice mode
14
+ SPLICE_FOR = 0x100 # match GT-AG
15
+ SPLICE_REV = 0x200 # match CT-AC, the reverse complement of GT-AG
16
+ NO_LJOIN = 0x400
17
+ OUT_CS_LONG = 0x800
18
+ SR = 0x1000
19
+ FRAG_MODE = 0x2000
20
+ NO_PRINT_2ND = 0x4000
21
+ TWO_IO_THREADS = 0x8000 # Translator's Note. MM_F_2_IO_THREADS. Constants starting with numbers cannot be defined.
22
+ LONG_CIGAR = 0x10000
23
+ INDEPEND_SEG = 0x20000
24
+ SPLICE_FLANK = 0x40000
25
+ SOFTCLIP = 0x80000
26
+ FOR_ONLY = 0x100000
27
+ REV_ONLY = 0x200000
28
+ HEAP_SORT = 0x400000
29
+ ALL_CHAINS = 0x800000
30
+ OUT_MD = 0x1000000
31
+ COPY_COMMENT = 0x2000000
32
+ EQX = 0x4000000 # use =/X instead of M
33
+ PAF_NO_HIT = 0x8000000 # output unmapped reads to PAF
34
+ NO_END_FLT = 0x10000000
35
+ HARD_MLEVEL = 0x20000000
36
+ SAM_HIT_ONLY = 0x40000000
37
+ RMQ = 0x80000000 # LL
38
+ QSTRAND = 0x100000000 # LL
39
+ NO_INV = 0x200000000
40
+
41
+ HPC = 0x1
42
+ NO_SEQ = 0x2
43
+ NO_NAME = 0x4
44
+
45
+ IDX_MAGIC = "MMI\2"
46
+
47
+ MAX_SEG = 255
48
+
49
+ CIGAR_MATCH = 0
50
+ CIGAR_INS = 1
51
+ CIGAR_DEL = 2
52
+ CIGAR_N_SKIP = 3
53
+ CIGAR_SOFTCLIP = 4
54
+ CIGAR_HARDCLIP = 5
55
+ CIGAR_PADDING = 6
56
+ CIGAR_EQ_MATCH = 7
57
+ CIGAR_X_MISMATCH = 8
58
+
59
+ CIGAR_STR = 'MIDNSHP=XB'
48
60
 
49
61
  # emulate 128-bit integers
50
62
  class MM128 < ::FFI::Struct
@@ -115,6 +127,8 @@ module Minimap2
115
127
  :anchor_ext_len, :int,
116
128
  :anchor_ext_shift, :int,
117
129
  :max_clip_ratio, :float, # drop an alignment if BOTH ends are clipped above this ratio
130
+ :rank_min_len, :int,
131
+ :rank_frac, :float,
118
132
  :pe_ori, :int,
119
133
  :pe_bonus, :int,
120
134
  :mid_occ_frac, :float, # only used by mm_mapopt_update(); see below
@@ -123,6 +137,7 @@ module Minimap2
123
137
  :max_occ, :int32_t,
124
138
  :mini_batch_size, :int64_t, # size of a batch of query bases to process in parallel
125
139
  :max_sw_mat, :int64_t,
140
+ :cap_kalloc, :int64_t,
126
141
  :split_prefix, :string
127
142
  end
128
143
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minimap2
4
- # Minimap2-2.21 (r1071).
5
- VERSION = '0.2.21'
4
+ # Minimap2-2.22 (r1101)
5
+ VERSION = '0.2.22.0'
6
6
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minimap2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.21
4
+ version: 0.2.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kojix2
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-06 00:00:00.000000000 Z
11
+ date: 2021-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: irb
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: minitest
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -132,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
146
  - !ruby/object:Gem::Version
133
147
  version: '0'
134
148
  requirements: []
135
- rubygems_version: 3.2.15
149
+ rubygems_version: 3.2.22
136
150
  signing_key:
137
151
  specification_version: 4
138
152
  summary: minimap2