htslib 0.0.10 → 0.2.1
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 +4 -4
- data/README.md +46 -27
- data/lib/hts/bam/aux.rb +40 -0
- data/lib/hts/bam/cigar.rb +5 -10
- data/lib/hts/bam/flag.rb +26 -57
- data/lib/hts/bam/header.rb +2 -4
- data/lib/hts/bam/record.rb +94 -47
- data/lib/hts/bam.rb +125 -37
- data/lib/hts/bcf/format.rb +84 -13
- data/lib/hts/bcf/header.rb +1 -0
- data/lib/hts/bcf/header_record.rb +11 -0
- data/lib/hts/bcf/info.rb +57 -31
- data/lib/hts/bcf/record.rb +63 -35
- data/lib/hts/bcf.rb +204 -30
- data/lib/hts/faidx.rb +62 -24
- data/lib/hts/ffi_ext/pointer.rb +18 -0
- data/lib/hts/hts.rb +71 -6
- data/lib/hts/libhts/bgzf.rb +5 -5
- data/lib/hts/libhts/constants.rb +45 -23
- data/lib/hts/libhts/cram.rb +295 -292
- data/lib/hts/libhts/hfile.rb +29 -11
- data/lib/hts/libhts/hts.rb +158 -25
- data/lib/hts/libhts/sam.rb +683 -94
- data/lib/hts/libhts/sam_funcs.rb +131 -588
- data/lib/hts/libhts/vcf.rb +433 -220
- data/lib/hts/libhts/vcf_funcs.rb +258 -424
- data/lib/hts/libhts.rb +5 -0
- data/lib/hts/{tabix.rb → tbx.rb} +6 -14
- data/lib/hts/version.rb +1 -1
- data/lib/htslib.rb +1 -1
- data/vendor/libhts.dylib +0 -0
- metadata +12 -8
data/lib/hts/libhts/cram.rb
CHANGED
@@ -2,296 +2,299 @@
|
|
2
2
|
|
3
3
|
module HTS
|
4
4
|
module LibHTS
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
attach_function \
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
attach_function \
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
5
|
+
typedef :pointer, :cram_fd
|
6
|
+
typedef :pointer, :cram_container
|
7
|
+
typedef :pointer, :cram_block
|
8
|
+
typedef :pointer, :cram_metrics
|
9
|
+
|
10
|
+
attach_function \
|
11
|
+
:cram_fd_get_header,
|
12
|
+
[:cram_fd],
|
13
|
+
SamHdr.by_ref
|
14
|
+
|
15
|
+
attach_function \
|
16
|
+
:cram_fd_set_header,
|
17
|
+
[:cram_fd, SamHdr.by_ref],
|
18
|
+
:void
|
19
|
+
|
20
|
+
attach_function \
|
21
|
+
:cram_fd_get_version,
|
22
|
+
[:cram_fd],
|
23
|
+
:int
|
24
|
+
|
25
|
+
attach_function \
|
26
|
+
:cram_fd_set_version,
|
27
|
+
%i[cram_fd int],
|
28
|
+
:void
|
29
|
+
|
30
|
+
attach_function \
|
31
|
+
:cram_major_vers,
|
32
|
+
[:cram_fd],
|
33
|
+
:int
|
34
|
+
|
35
|
+
attach_function \
|
36
|
+
:cram_minor_vers,
|
37
|
+
[:cram_fd],
|
38
|
+
:int
|
39
|
+
|
40
|
+
attach_function \
|
41
|
+
:cram_fd_get_fp,
|
42
|
+
[:cram_fd],
|
43
|
+
HFile.by_ref
|
44
|
+
|
45
|
+
attach_function \
|
46
|
+
:cram_fd_set_fp,
|
47
|
+
[:cram_fd, HFile],
|
48
|
+
:void
|
49
|
+
|
50
|
+
attach_function \
|
51
|
+
:cram_container_get_length,
|
52
|
+
[:cram_container],
|
53
|
+
:int32
|
54
|
+
|
55
|
+
attach_function \
|
56
|
+
:cram_container_set_length,
|
57
|
+
%i[cram_container int32],
|
58
|
+
:void
|
59
|
+
|
60
|
+
attach_function \
|
61
|
+
:cram_container_get_num_blocks,
|
62
|
+
[:cram_container],
|
63
|
+
:int32
|
64
|
+
|
65
|
+
attach_function \
|
66
|
+
:cram_container_set_num_blocks,
|
67
|
+
%i[cram_container int32],
|
68
|
+
:void
|
69
|
+
|
70
|
+
attach_function \
|
71
|
+
:cram_container_get_landmarks,
|
72
|
+
%i[cram_container int32],
|
73
|
+
:pointer
|
74
|
+
|
75
|
+
attach_function \
|
76
|
+
:cram_container_set_landmarks,
|
77
|
+
%i[cram_container int32 pointer],
|
78
|
+
:void
|
79
|
+
|
80
|
+
attach_function \
|
81
|
+
:cram_container_is_empty,
|
82
|
+
[:cram_fd],
|
83
|
+
:int
|
84
|
+
|
85
|
+
attach_function \
|
86
|
+
:cram_block_get_content_id,
|
87
|
+
[:cram_block],
|
88
|
+
:int32
|
89
|
+
|
90
|
+
attach_function \
|
91
|
+
:cram_block_get_comp_size,
|
92
|
+
[:cram_block],
|
93
|
+
:int32
|
94
|
+
|
95
|
+
attach_function \
|
96
|
+
:cram_block_get_uncomp_size,
|
97
|
+
[:cram_block],
|
98
|
+
:int32
|
99
|
+
|
100
|
+
attach_function \
|
101
|
+
:cram_block_get_crc32,
|
102
|
+
[:cram_block],
|
103
|
+
:int32
|
104
|
+
|
105
|
+
attach_function \
|
106
|
+
:cram_block_get_data,
|
107
|
+
[:cram_block],
|
108
|
+
:pointer
|
109
|
+
|
110
|
+
attach_function \
|
111
|
+
:cram_block_get_content_type,
|
112
|
+
[:cram_block],
|
113
|
+
CramContentType
|
114
|
+
|
115
|
+
attach_function \
|
116
|
+
:cram_block_set_content_id,
|
117
|
+
%i[cram_block int32],
|
118
|
+
:void
|
119
|
+
|
120
|
+
attach_function \
|
121
|
+
:cram_block_set_comp_size,
|
122
|
+
%i[cram_block int32],
|
123
|
+
:void
|
124
|
+
|
125
|
+
attach_function \
|
126
|
+
:cram_block_set_uncomp_size,
|
127
|
+
%i[cram_block int32],
|
128
|
+
:void
|
129
|
+
|
130
|
+
attach_function \
|
131
|
+
:cram_block_set_crc32,
|
132
|
+
%i[cram_block int32],
|
133
|
+
:void
|
134
|
+
|
135
|
+
attach_function \
|
136
|
+
:cram_block_set_data,
|
137
|
+
%i[cram_block pointer],
|
138
|
+
:void
|
139
|
+
|
140
|
+
attach_function \
|
141
|
+
:cram_block_append,
|
142
|
+
%i[cram_block pointer int],
|
143
|
+
:int
|
144
|
+
|
145
|
+
attach_function \
|
146
|
+
:cram_block_update_size,
|
147
|
+
[:cram_block],
|
148
|
+
:void
|
149
|
+
|
150
|
+
attach_function \
|
151
|
+
:cram_block_get_offset,
|
152
|
+
[:cram_block],
|
153
|
+
:size_t
|
154
|
+
|
155
|
+
attach_function \
|
156
|
+
:cram_block_set_offset,
|
157
|
+
%i[cram_block size_t],
|
158
|
+
:void
|
159
|
+
|
160
|
+
attach_function \
|
161
|
+
:cram_block_size,
|
162
|
+
[:cram_block],
|
163
|
+
:uint32
|
164
|
+
|
165
|
+
attach_function \
|
166
|
+
:cram_transcode_rg,
|
167
|
+
%i[cram_fd cram_fd cram_container int pointer pointer],
|
168
|
+
:int
|
169
|
+
|
170
|
+
attach_function \
|
171
|
+
:cram_copy_slice,
|
172
|
+
%i[cram_fd cram_fd int32],
|
173
|
+
:int
|
174
|
+
|
175
|
+
attach_function \
|
176
|
+
:cram_new_block,
|
177
|
+
[CramContentType, :int],
|
178
|
+
:cram_block
|
179
|
+
|
180
|
+
attach_function \
|
181
|
+
:cram_read_block,
|
182
|
+
[:cram_fd],
|
183
|
+
:cram_block
|
184
|
+
|
185
|
+
attach_function \
|
186
|
+
:cram_write_block,
|
187
|
+
%i[cram_fd cram_block],
|
188
|
+
:int
|
189
|
+
|
190
|
+
attach_function \
|
191
|
+
:cram_free_block,
|
192
|
+
[:cram_block],
|
193
|
+
:void
|
194
|
+
|
195
|
+
attach_function \
|
196
|
+
:cram_uncompress_block,
|
197
|
+
[:cram_block],
|
198
|
+
:int
|
199
|
+
|
200
|
+
attach_function \
|
201
|
+
:cram_compress_block,
|
202
|
+
%i[cram_fd cram_block cram_metrics int int],
|
203
|
+
:int
|
204
|
+
|
205
|
+
# attach_function \
|
206
|
+
# :cram_compress_block2,
|
207
|
+
# %i[cram_fd cram_slice cram_block cram_metrics int int],
|
208
|
+
# :int
|
209
|
+
|
210
|
+
attach_function \
|
211
|
+
:cram_new_container,
|
212
|
+
%i[int int],
|
213
|
+
:cram_container
|
214
|
+
|
215
|
+
attach_function \
|
216
|
+
:cram_free_container,
|
217
|
+
[:cram_container],
|
218
|
+
:void
|
219
|
+
|
220
|
+
attach_function \
|
221
|
+
:cram_read_container,
|
222
|
+
[:cram_fd],
|
223
|
+
:cram_container
|
224
|
+
|
225
|
+
attach_function \
|
226
|
+
:cram_write_container,
|
227
|
+
%i[cram_fd cram_container],
|
228
|
+
:int
|
229
|
+
|
230
|
+
attach_function \
|
231
|
+
:cram_store_container,
|
232
|
+
%i[cram_fd cram_container string pointer],
|
233
|
+
:int
|
234
|
+
|
235
|
+
attach_function \
|
236
|
+
:cram_container_size,
|
237
|
+
[:cram_container],
|
238
|
+
:int
|
239
|
+
|
240
|
+
attach_function \
|
241
|
+
:cram_open,
|
242
|
+
%i[string string],
|
243
|
+
:cram_fd
|
244
|
+
|
245
|
+
attach_function \
|
246
|
+
:cram_dopen,
|
247
|
+
%i[pointer string string],
|
248
|
+
:cram_fd
|
249
|
+
|
250
|
+
attach_function \
|
251
|
+
:cram_close,
|
252
|
+
[:cram_fd],
|
253
|
+
:int
|
254
|
+
|
255
|
+
attach_function \
|
256
|
+
:cram_seek,
|
257
|
+
%i[pointer off_t int],
|
258
|
+
:int # FIXME: pointer should be :cram_fd
|
259
|
+
|
260
|
+
attach_function \
|
261
|
+
:cram_flush,
|
262
|
+
[:cram_fd],
|
263
|
+
:int
|
264
|
+
|
265
|
+
attach_function \
|
266
|
+
:cram_eof,
|
267
|
+
[:cram_fd],
|
268
|
+
:int
|
269
|
+
|
270
|
+
attach_function \
|
271
|
+
:cram_set_option,
|
272
|
+
[:cram_fd, HtsFmtOption, :varargs],
|
273
|
+
:int
|
274
|
+
|
275
|
+
attach_function \
|
276
|
+
:cram_set_voption,
|
277
|
+
[:cram_fd, HtsFmtOption, :pointer], # va_list
|
278
|
+
:int
|
279
|
+
|
280
|
+
attach_function \
|
281
|
+
:cram_set_header,
|
282
|
+
[:cram_fd, SamHdr.by_ref],
|
283
|
+
:int
|
284
|
+
|
285
|
+
attach_function \
|
286
|
+
:cram_check_EOF,
|
287
|
+
[:cram_fd],
|
288
|
+
:int
|
289
|
+
|
290
|
+
attach_function \
|
291
|
+
:int32_put_blk,
|
292
|
+
%i[cram_block int32_t],
|
293
|
+
:int
|
294
|
+
|
295
|
+
attach_function \
|
296
|
+
:cram_get_refs,
|
297
|
+
[HtsFile.by_ref],
|
298
|
+
:pointer # refs_t
|
296
299
|
end
|
297
|
-
end
|
300
|
+
end
|
data/lib/hts/libhts/hfile.rb
CHANGED
@@ -6,13 +6,13 @@ module HTS
|
|
6
6
|
attach_function \
|
7
7
|
:hopen,
|
8
8
|
%i[string string varargs],
|
9
|
-
|
9
|
+
HFile.by_ref
|
10
10
|
|
11
11
|
# Associate a stream with an existing open file descriptor
|
12
12
|
attach_function \
|
13
13
|
:hdopen,
|
14
14
|
%i[int string],
|
15
|
-
|
15
|
+
HFile.by_ref
|
16
16
|
|
17
17
|
# Report whether the file name or URL denotes remote storage
|
18
18
|
attach_function \
|
@@ -29,19 +29,19 @@ module HTS
|
|
29
29
|
# Flush (for output streams) and close the stream
|
30
30
|
attach_function \
|
31
31
|
:hclose,
|
32
|
-
[
|
32
|
+
[HFile],
|
33
33
|
:int
|
34
34
|
|
35
35
|
# Close the stream, without flushing or propagating errors
|
36
36
|
attach_function \
|
37
37
|
:hclose_abruptly,
|
38
|
-
[
|
38
|
+
[HFile],
|
39
39
|
:void
|
40
40
|
|
41
41
|
# Reposition the read/write stream offset
|
42
42
|
attach_function \
|
43
43
|
:hseek,
|
44
|
-
[
|
44
|
+
[HFile, :off_t, :int],
|
45
45
|
:off_t
|
46
46
|
|
47
47
|
# Report the current stream offset
|
@@ -55,37 +55,55 @@ module HTS
|
|
55
55
|
# Read from the stream until the delimiter, up to a maximum length
|
56
56
|
attach_function \
|
57
57
|
:hgetdelim,
|
58
|
-
[:string, :size_t, :int,
|
58
|
+
[:string, :size_t, :int, HFile],
|
59
59
|
:ssize_t
|
60
60
|
|
61
61
|
# Read a line from the stream, up to a maximum length
|
62
62
|
attach_function \
|
63
63
|
:hgets,
|
64
|
-
[:string, :int,
|
64
|
+
[:string, :int, HFile],
|
65
65
|
:string
|
66
66
|
|
67
67
|
# Peek at characters to be read without removing them from buffers
|
68
68
|
attach_function \
|
69
69
|
:hpeek,
|
70
|
-
[
|
70
|
+
[HFile, :pointer, :size_t],
|
71
71
|
:ssize_t
|
72
72
|
|
73
73
|
# For writing streams, flush buffered output to the underlying stream
|
74
74
|
attach_function \
|
75
75
|
:hflush,
|
76
|
-
[
|
76
|
+
[HFile],
|
77
77
|
:int
|
78
78
|
|
79
79
|
# For hfile_mem: get the internal buffer and it's size from a hfile
|
80
80
|
attach_function \
|
81
81
|
:hfile_mem_get_buffer,
|
82
|
-
[
|
82
|
+
[HFile, :pointer],
|
83
83
|
:string
|
84
84
|
|
85
85
|
# For hfile_mem: get the internal buffer and it's size from a hfile.
|
86
86
|
attach_function \
|
87
87
|
:hfile_mem_steal_buffer,
|
88
|
-
[
|
88
|
+
[HFile, :pointer],
|
89
89
|
:string
|
90
|
+
|
91
|
+
# Fills out sc_list[] with the list of known URL schemes.
|
92
|
+
attach_function \
|
93
|
+
:hfile_list_schemes,
|
94
|
+
%i[string pointer pointer], # mutable string
|
95
|
+
:int
|
96
|
+
|
97
|
+
# Fills out plist[] with the list of known hFILE plugins.
|
98
|
+
attach_function \
|
99
|
+
:hfile_list_plugins,
|
100
|
+
%i[pointer pointer], # mutable string
|
101
|
+
:int
|
102
|
+
|
103
|
+
# Tests for the presence of a specific hFILE plugin.
|
104
|
+
attach_function \
|
105
|
+
:hfile_has_plugin,
|
106
|
+
[:string],
|
107
|
+
:int
|
90
108
|
end
|
91
109
|
end
|