htslib 0.2.0 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,41 +2,50 @@
2
2
 
3
3
  module HTS
4
4
  module LibHTS
5
+ # Create an empty BCF header.
5
6
  attach_function \
6
7
  :bcf_hdr_init,
7
8
  [:string],
8
9
  BcfHdr.by_ref
9
10
 
11
+ # Destroy a BCF header struct
10
12
  attach_function \
11
13
  :bcf_hdr_destroy,
12
14
  [BcfHdr],
13
15
  :void
14
16
 
17
+ # Allocate and initialize a bcf1_t object.
15
18
  attach_function \
16
19
  :bcf_init,
17
20
  [],
18
21
  Bcf1.by_ref
19
22
 
23
+ # Deallocate a bcf1_t object
20
24
  attach_function \
21
25
  :bcf_destroy,
22
26
  [Bcf1],
23
27
  :void
24
28
 
29
+ # Same as bcf_destroy() but frees only the memory allocated by bcf1_t,
30
+ # not the bcf1_t object itself.
25
31
  attach_function \
26
32
  :bcf_empty,
27
33
  [Bcf1],
28
34
  :void
29
35
 
36
+ # Make the bcf1_t object ready for next read.
30
37
  attach_function \
31
38
  :bcf_clear,
32
39
  [Bcf1],
33
40
  :void
34
41
 
42
+ # Read a VCF or BCF header
35
43
  attach_function \
36
44
  :bcf_hdr_read,
37
45
  [HtsFile],
38
46
  BcfHdr.by_ref
39
47
 
48
+ # for more efficient VCF parsing when only one/few samples are needed
40
49
  attach_function \
41
50
  :bcf_hdr_set_samples,
42
51
  [BcfHdr, :string, :int],
@@ -47,36 +56,43 @@ module HTS
47
56
  [BcfHdr, Bcf1],
48
57
  :int
49
58
 
59
+ # Write a VCF or BCF header
50
60
  attach_function \
51
61
  :bcf_hdr_write,
52
62
  [HtsFile, BcfHdr],
53
63
  :int
54
64
 
65
+ # Parse VCF line contained in kstring and populate the bcf1_t struct
55
66
  attach_function \
56
67
  :vcf_parse,
57
68
  [KString, BcfHdr, Bcf1],
58
69
  :int
59
70
 
71
+ # Complete the file opening mode, according to its extension.
60
72
  attach_function \
61
73
  :vcf_open_mode,
62
74
  %i[string string string],
63
75
  :int
64
76
 
77
+ # The opposite of vcf_parse.
65
78
  attach_function \
66
79
  :vcf_format,
67
80
  [BcfHdr, Bcf1, KString],
68
81
  :int
69
82
 
83
+ # Read next VCF or BCF record
70
84
  attach_function \
71
85
  :bcf_read,
72
86
  [HtsFile, BcfHdr, Bcf1],
73
87
  :int
74
88
 
89
+ # unpack/decode a BCF record (fills the bcf1_t::d field)
75
90
  attach_function \
76
91
  :bcf_unpack,
77
92
  [Bcf1, :int],
78
93
  :int
79
94
 
95
+ # Create a copy of BCF record.
80
96
  attach_function \
81
97
  :bcf_dup,
82
98
  [Bcf1],
@@ -87,78 +103,95 @@ module HTS
87
103
  [Bcf1, Bcf1],
88
104
  Bcf1.by_ref
89
105
 
106
+ # Write one VCF or BCF record.
90
107
  attach_function \
91
108
  :bcf_write,
92
109
  [HtsFile, BcfHdr, Bcf1],
93
110
  :int
94
111
 
112
+ # Read a VCF format header
95
113
  attach_function \
96
114
  :vcf_hdr_read,
97
115
  [HtsFile],
98
116
  BcfHdr.by_ref
99
117
 
118
+ # Write a VCF format header
100
119
  attach_function \
101
120
  :vcf_hdr_write,
102
121
  [HtsFile, BcfHdr],
103
122
  :int
104
123
 
124
+ # Read a record from a VCF file
105
125
  attach_function \
106
126
  :vcf_read,
107
127
  [HtsFile, BcfHdr, Bcf1],
108
128
  :int
109
129
 
130
+ # Write a record to a VCF file
110
131
  attach_function \
111
132
  :vcf_write,
112
133
  [HtsFile, BcfHdr, Bcf1],
113
134
  :int
114
135
 
136
+ # Helper function for the bcf_itr_next() macro
115
137
  attach_function \
116
138
  :bcf_readrec,
117
139
  [BGZF, :pointer, :pointer, :pointer, :hts_pos_t, :hts_pos_t],
118
140
  :int
119
141
 
142
+ # Write a line to a VCF file
120
143
  attach_function \
121
144
  :vcf_write_line,
122
145
  [HtsFile, KString],
123
146
  :int
124
147
 
148
+ # Header querying and manipulation routines
149
+
150
+ # Create a new header using the supplied template
125
151
  attach_function \
126
152
  :bcf_hdr_dup,
127
153
  [BcfHdr],
128
154
  BcfHdr.by_ref
129
155
 
130
- # DEPRECATED
156
+ # DEPRECATED please use bcf_hdr_merge instead
131
157
  #
132
158
  # attach_function \
133
159
  # :bcf_hdr_combine,
134
160
  # [BcfHdr, BcfHdr],
135
161
  # :int
136
162
 
163
+ # Copy header lines from src to dst, see also bcf_translate()
137
164
  attach_function \
138
165
  :bcf_hdr_merge,
139
166
  [BcfHdr, BcfHdr],
140
167
  BcfHdr.by_ref
141
168
 
169
+ # Add a new sample.
142
170
  attach_function \
143
171
  :bcf_hdr_add_sample,
144
172
  [BcfHdr, :string],
145
173
  :int
146
174
 
175
+ # Read VCF header from a file and update the header
147
176
  attach_function \
148
177
  :bcf_hdr_set,
149
178
  [BcfHdr, :string],
150
179
  :int
151
180
 
181
+ # Appends formatted header text to _str_.
152
182
  attach_function \
153
183
  :bcf_hdr_format,
154
184
  [BcfHdr, :int, KString],
155
185
  :int
156
186
 
157
- attach_function \
158
- :bcf_hdr_fmt_text,
159
- [BcfHdr, :int, :pointer],
160
- :string
187
+ # DEPRECATED use bcf_hdr_format() instead
188
+ #
189
+ # attach_function \
190
+ # :bcf_hdr_fmt_text,
191
+ # [BcfHdr, :int, :pointer],
192
+ # :string
161
193
 
194
+ # Append new VCF header line
162
195
  attach_function \
163
196
  :bcf_hdr_append,
164
197
  [BcfHdr, :string],
@@ -169,26 +202,31 @@ module HTS
169
202
  [BcfHdr, :string, :varargs],
170
203
  :int
171
204
 
205
+ # VCF version, e.g. VCFv4.2
172
206
  attach_function \
173
207
  :bcf_hdr_get_version,
174
208
  [BcfHdr],
175
209
  :string
176
210
 
211
+ # Set version in bcf header
177
212
  attach_function \
178
213
  :bcf_hdr_set_version,
179
214
  [BcfHdr, :string],
180
215
  :int
181
216
 
217
+ # Remove VCF header tag
182
218
  attach_function \
183
219
  :bcf_hdr_remove,
184
220
  [BcfHdr, :int, :string],
185
221
  :void
186
222
 
223
+ # Creates a new copy of the header removing unwanted samples
187
224
  attach_function \
188
225
  :bcf_hdr_subset,
189
226
  [BcfHdr, :int, :pointer, :pointer],
190
227
  BcfHdr.by_ref
191
228
 
229
+ # Creates a list of sequence names.
192
230
  attach_function \
193
231
  :bcf_hdr_seqnames,
194
232
  [BcfHdr, :pointer],
@@ -199,16 +237,19 @@ module HTS
199
237
  [BcfHdr, :string],
200
238
  :int
201
239
 
240
+ # Synchronize internal header structures
202
241
  attach_function \
203
242
  :bcf_hdr_sync,
204
243
  [BcfHdr],
205
244
  :int
206
245
 
246
+ # parse a single line of VCF textual header
207
247
  attach_function \
208
248
  :bcf_hdr_parse_line,
209
249
  [BcfHdr, :string, :pointer],
210
250
  BcfHrec.by_ref
211
251
 
252
+ # Convert a bcf header record to string form
212
253
  attach_function \
213
254
  :bcf_hrec_format,
214
255
  [BcfHrec, KString],
@@ -219,21 +260,25 @@ module HTS
219
260
  [BcfHdr, BcfHrec],
220
261
  :int
221
262
 
263
+ # Get header line info
222
264
  attach_function \
223
265
  :bcf_hdr_get_hrec,
224
266
  [BcfHdr, :int, :string, :string, :string],
225
267
  BcfHrec.by_ref
226
268
 
269
+ # Duplicate a header record
227
270
  attach_function \
228
271
  :bcf_hrec_dup,
229
272
  [BcfHrec],
230
273
  BcfHrec.by_ref
231
274
 
275
+ # Add a new header record key
232
276
  attach_function \
233
277
  :bcf_hrec_add_key,
234
278
  [BcfHrec, :string, :size_t],
235
279
  :int
236
280
 
281
+ # Set a header record value
237
282
  attach_function \
238
283
  :bcf_hrec_set_val,
239
284
  [BcfHrec, :int, :string, :size_t, :int],
@@ -244,61 +289,93 @@ module HTS
244
289
  [BcfHrec, :string],
245
290
  :int
246
291
 
292
+ # Add an IDX header record
247
293
  attach_function \
248
294
  :hrec_add_idx,
249
295
  [BcfHrec, :int],
250
296
  :int
251
297
 
298
+ # Free up a header record and associated structures
252
299
  attach_function \
253
300
  :bcf_hrec_destroy,
254
301
  [BcfHrec],
255
302
  :void
256
303
 
304
+ # Individual record querying and manipulation routines
305
+
306
+ # See the description of bcf_hdr_subset()
257
307
  attach_function \
258
308
  :bcf_subset,
259
309
  [BcfHdr, Bcf1, :int, :pointer],
260
310
  :int
261
311
 
312
+ # Translate tags ids to be consistent with different header.
262
313
  attach_function \
263
314
  :bcf_translate,
264
315
  [BcfHdr, BcfHdr, Bcf1],
265
316
  :int
266
317
 
318
+ # Get variant types in a BCF record
267
319
  attach_function \
268
320
  :bcf_get_variant_types,
269
321
  [Bcf1],
270
322
  :int
271
323
 
324
+ # Get variant type in a BCF record, for a given allele
272
325
  attach_function \
273
326
  :bcf_get_variant_type,
274
327
  [Bcf1, :int],
275
328
  :int
276
329
 
330
+ # Check for presence of variant types in a BCF record
331
+ attach_function \
332
+ :bcf_has_variant_types,
333
+ [Bcf1, :uint32, :int],
334
+ :int
335
+
336
+ # Check for presence of variant types in a BCF record, for a given allele
337
+ attach_function \
338
+ :bcf_has_variant_type,
339
+ [Bcf1, :int, :uint32],
340
+ :int
341
+
342
+ # Return the number of bases affected by a variant, for a given allele
343
+ attach_function \
344
+ :bcf_variant_length,
345
+ [Bcf1, :int],
346
+ :int
347
+
277
348
  attach_function \
278
349
  :bcf_is_snp,
279
350
  [Bcf1],
280
351
  :int
281
352
 
353
+ # Sets the FILTER column
282
354
  attach_function \
283
355
  :bcf_update_filter,
284
356
  [BcfHdr, Bcf1, :pointer, :int],
285
357
  :int
286
358
 
359
+ # Adds to the FILTER column
287
360
  attach_function \
288
361
  :bcf_add_filter,
289
362
  [BcfHdr, Bcf1, :int],
290
363
  :int
291
364
 
365
+ # Removes from the FILTER column
292
366
  attach_function \
293
367
  :bcf_remove_filter,
294
368
  [BcfHdr, Bcf1, :int, :int],
295
369
  :int
296
370
 
371
+ # Returns 1 if present, 0 if absent, or -1 if filter does not exist.
372
+ # "PASS" and "." can be used interchangeably.
297
373
  attach_function \
298
374
  :bcf_has_filter,
299
375
  [BcfHdr, Bcf1, :string],
300
376
  :int
301
377
 
378
+ # Update REF and ALT column
302
379
  attach_function \
303
380
  :bcf_update_alleles,
304
381
  [BcfHdr, Bcf1, :pointer, :int],
@@ -309,6 +386,7 @@ module HTS
309
386
  [BcfHdr, Bcf1, :string],
310
387
  :int
311
388
 
389
+ # Sets new ID string
312
390
  attach_function \
313
391
  :bcf_update_id,
314
392
  [BcfHdr, Bcf1, :string],
@@ -319,6 +397,7 @@ module HTS
319
397
  [BcfHdr, Bcf1, :string],
320
398
  :int
321
399
 
400
+ # Functions for updating INFO fields
322
401
  attach_function \
323
402
  :bcf_update_info,
324
403
  [BcfHdr, Bcf1, :string, :pointer, :int, :int],
@@ -329,11 +408,13 @@ module HTS
329
408
  [BcfHdr, Bcf1, :string, :pointer, :int],
330
409
  :int
331
410
 
411
+ # Functions for updating FORMAT fields
332
412
  attach_function \
333
413
  :bcf_update_format,
334
414
  [BcfHdr, Bcf1, :string, :pointer, :int, :int],
335
415
  :int
336
416
 
417
+ # Returns pointer to FORMAT's field data
337
418
  attach_function \
338
419
  :bcf_get_fmt,
339
420
  [BcfHdr, Bcf1, :string],
@@ -344,6 +425,7 @@ module HTS
344
425
  [BcfHdr, Bcf1, :string],
345
426
  BcfInfo.by_ref
346
427
 
428
+ # Returns pointer to FORMAT/INFO field data given the header index instead of the string ID
347
429
  attach_function \
348
430
  :bcf_get_fmt_id,
349
431
  [Bcf1, :int],
@@ -354,6 +436,7 @@ module HTS
354
436
  [Bcf1, :int],
355
437
  BcfInfo.by_ref
356
438
 
439
+ # get INFO values
357
440
  attach_function \
358
441
  :bcf_get_info_values,
359
442
  [BcfHdr, Bcf1, :string, :pointer, :pointer, :int],
@@ -369,11 +452,15 @@ module HTS
369
452
  [BcfHdr, Bcf1, :string, :pointer, :pointer, :int],
370
453
  :int
371
454
 
455
+ # Helper functions
456
+
457
+ # Translates string into numeric ID
372
458
  attach_function \
373
459
  :bcf_hdr_id2int,
374
460
  [BcfHdr, :int, :string],
375
461
  :int
376
462
 
463
+ # Convert BCF FORMAT data to string form
377
464
  attach_function \
378
465
  :bcf_fmt_array,
379
466
  [KString, :int, :int, :pointer],
@@ -384,55 +471,77 @@ module HTS
384
471
  [KString, :pointer],
385
472
  :uint8_t
386
473
 
474
+ # Encode a variable-length char array in BCF format
387
475
  attach_function \
388
476
  :bcf_enc_vchar,
389
477
  [KString, :int, :string],
390
478
  :int
391
479
 
480
+ # Encode a variable-length integer array in BCF format
392
481
  attach_function \
393
482
  :bcf_enc_vint,
394
483
  [KString, :int, :pointer, :int],
395
484
  :int
396
485
 
486
+ # Encode a variable-length float array in BCF format
397
487
  attach_function \
398
488
  :bcf_enc_vfloat,
399
489
  [KString, :int, :pointer],
400
490
  :int
401
491
 
492
+ # BCF index
493
+
494
+ # Load a BCF index from a given index file name
402
495
  attach_function \
403
496
  :bcf_index_load2,
404
497
  %i[string string],
405
498
  HtsIdx.by_ref
406
499
 
500
+ # Load a BCF index from a given index file name
407
501
  attach_function \
408
502
  :bcf_index_load3,
409
503
  %i[string string int],
410
504
  HtsIdx.by_ref
411
505
 
506
+ # Generate and save an index file
412
507
  attach_function \
413
508
  :bcf_index_build,
414
509
  %i[string int],
415
510
  :int
416
511
 
512
+ # Generate and save an index to a specific file
417
513
  attach_function \
418
514
  :bcf_index_build2,
419
515
  %i[string string int],
420
516
  :int
421
517
 
518
+ # Generate and save an index to a specific file
422
519
  attach_function \
423
520
  :bcf_index_build3,
424
521
  %i[string string int int],
425
522
  :int
426
523
 
524
+ # Initialise fp->idx for the current format type, for VCF and BCF files.
427
525
  attach_function \
428
526
  :bcf_idx_init,
429
527
  [HtsFile, BcfHdr, :int, :string],
430
528
  :int
431
529
 
530
+ # Writes the index initialised with bcf_idx_init to disk.
432
531
  attach_function \
433
532
  :bcf_idx_save,
434
533
  [HtsFile],
435
534
  :int
535
+
536
+ attach_function \
537
+ :bcf_float_vector_end,
538
+ [],
539
+ :uint32
540
+
541
+ attach_function \
542
+ :bcf_float_missing,
543
+ [],
544
+ :uint32
436
545
  end
437
546
  end
438
547