Class: HTS::Tbx
- Inherits:
-
Hts
show all
- Includes:
- Enumerable
- Defined in:
- lib/hts/tbx.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Hts
#close, #closed?, #fai=, #file_format, #file_format_version, #rewind, #seek, #set_threads, #struct, #tell, #to_ptr
Constructor Details
#initialize(file_name, mode = "r", index: nil, threads: nil, build_index: false) ⇒ Tbx
Returns a new instance of Tbx.
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/hts/tbx.rb', line 25
def initialize(file_name, mode = "r", index: nil, threads: nil, build_index: false)
if block_given?
message = "HTS::Tbx.new() dose not take block; Please use HTS::Tbx.open() instead"
raise message
end
@file_name = file_name
@index_name = index
@mode = mode
@nthreads = threads
@hts_file = LibHTS.hts_open(@file_name, @mode)
raise Errno::ENOENT, "Failed to open #{@file_name}" if @hts_file.null?
set_threads(threads) if threads
raise "Not implemented" if @mode[0] == "w"
@idx = load_index(index)
end
|
Instance Attribute Details
#file_name ⇒ Object
Returns the value of attribute file_name.
11
12
13
|
# File 'lib/hts/tbx.rb', line 11
def file_name
@file_name
end
|
#index_name ⇒ Object
Returns the value of attribute index_name.
11
12
13
|
# File 'lib/hts/tbx.rb', line 11
def index_name
@index_name
end
|
#mode ⇒ Object
Returns the value of attribute mode.
11
12
13
|
# File 'lib/hts/tbx.rb', line 11
def mode
@mode
end
|
#nthreads ⇒ Object
Returns the value of attribute nthreads.
11
12
13
|
# File 'lib/hts/tbx.rb', line 11
def nthreads
@nthreads
end
|
Class Method Details
.open(*args, **kw) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/hts/tbx.rb', line 13
def self.open(*args, **kw)
file = new(*args, **kw) return file unless block_given?
begin
yield file
ensure
file.close
end
file
end
|
Instance Method Details
#build_index ⇒ Object
50
51
52
|
# File 'lib/hts/tbx.rb', line 50
def build_index
raise "Not implemented yet"
end
|
#index_loaded? ⇒ Boolean
62
63
64
|
# File 'lib/hts/tbx.rb', line 62
def index_loaded?
!@idx.null?
end
|
#load_index(index_name = nil) ⇒ Object
#query(region, start = nil, end_ = nil, &block) ⇒ Object
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/hts/tbx.rb', line 77
def query(region, start = nil, end_ = nil, &block)
check_closed
raise "Index file is required to call the query method." unless index_loaded?
if start && end_
queryi(tid(region), start, end_, &block)
else
querys(region, &block)
end
end
|
#seqnames ⇒ Object
70
71
72
73
74
75
|
# File 'lib/hts/tbx.rb', line 70
def seqnames
nseq = FFI::MemoryPointer.new(:int)
LibHTS.tbx_seqnames(@idx, nseq).then do |pts|
pts.read_array_of_pointer(nseq.read_int).map(&:read_string)
end
end
|
#tid(name) ⇒ Object
66
67
68
|
# File 'lib/hts/tbx.rb', line 66
def tid(name)
LibHTS.tbx_name2id(@idx, name)
end
|