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
|
# File 'lib/rbbt/matrix/knowledge_base.rb', line 11
def matrix(name)
matrix, options = @matrix_registry[name]
return matrix if Matrix === matrix
Path.setup(matrix) if not Path === matrix and File.exists? matrix
raise "Registered matrix is strange: #{Misc.fingerprint matrix}" unless Path === matrix
path = matrix
raise "Registered path not found: #{path.find}" unless path.exists?
if path.find.directory?
data, labels, value_type, format, organism, identifiers = Misc.process_options options, :data, :labels, :value_type, :format, :organism, :identifiers
data ||= path.data if path.data.exists?
data ||= path.values if path.values.exists?
labels ||= path.labels if path.labels.exists?
labels ||= path.samples if path.samples.exists?
identifiers ||= path.identifiers if path.identifiers.exists?
value_type = TSV.(data.find).key_field if data
value_type ||= "Unknown ID"
Matrix.new data, labels, value_type, format, organism, identifiers
else
end
end
|