rbbt-dm 1.1.37 → 1.1.38
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/lib/rbbt/statistics/hypergeometric.rb +16 -5
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fc3a1528624e0026f2caa9b351aa87767c3601f1
|
|
4
|
+
data.tar.gz: 9e4d4133a3b4fe32d46ba1fb61bdaa92c6b43c73
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 337c1d68795c09299636d9b55a3bca970f64bdbfcfe6140e729300bf12c53d646f886d3a4f3790371a8f584c55cff8d0b73a90386369184c6f3b6cb86d5ffd07
|
|
7
|
+
data.tar.gz: a82b72caaeb5d429c20c19d8a7c60113abbdd52edf4ed094bd44f801b37567e763e5a7f9dec85cea536f0463e286cce2e0c7d49b03fb30518571c36fb76d8536
|
|
@@ -104,7 +104,7 @@ double hypergeometric_c(double total, double support, double list, double found)
|
|
|
104
104
|
|
|
105
105
|
def self.hypergeometric(count, positive, negative, total)
|
|
106
106
|
#RSRuby.instance.phyper(count - 1, positive, negative, total, false).to_f
|
|
107
|
-
R.eval("phyper(#{ count } - 1, #{ positive }, #{ negative }, #{ total }, FALSE)").to_f
|
|
107
|
+
R.eval("phyper(#{ count } - 1, #{ positive }, #{ negative }, #{ total }, lower.tail=FALSE)").to_f
|
|
108
108
|
end
|
|
109
109
|
end
|
|
110
110
|
|
|
@@ -114,10 +114,11 @@ module TSV
|
|
|
114
114
|
fields ||= self.fields
|
|
115
115
|
fields = [fields] if String === fields or Symbol === fields
|
|
116
116
|
rename = options.delete :rename
|
|
117
|
+
background = options.delete :background
|
|
117
118
|
|
|
118
119
|
field_pos = fields.collect{|f| self.fields.index f}.compact
|
|
119
120
|
persistence_path = self.respond_to?(:persistence_path)? self.persistence_path : nil
|
|
120
|
-
Persist.persist(filename, :yaml, :fields => fields, :persist => persistence, :prefix => "Hyp.Geo.Counts", :other => {:rename => rename, :persistence_path => persistence_path}) do
|
|
121
|
+
Persist.persist(filename, :yaml, :fields => fields, :persist => persistence, :prefix => "Hyp.Geo.Counts", :other => {:background => background, :rename => rename, :persistence_path => persistence_path}) do
|
|
121
122
|
data ||= {}
|
|
122
123
|
|
|
123
124
|
with_unnamed do
|
|
@@ -125,22 +126,26 @@ module TSV
|
|
|
125
126
|
case type
|
|
126
127
|
when :single
|
|
127
128
|
through :key, field_pos do |key, value|
|
|
129
|
+
next if background and not background.include?(key)
|
|
128
130
|
next if value.nil?
|
|
129
131
|
data[value] ||= []
|
|
130
132
|
data[value] << key
|
|
131
133
|
end
|
|
132
134
|
when :double
|
|
133
135
|
through :key, field_pos do |key, values|
|
|
136
|
+
next if background and not background.include?(key)
|
|
134
137
|
values.flatten.compact.uniq.each{|value| data[value] ||= []; data[value] << key}
|
|
135
138
|
end
|
|
136
139
|
when :list
|
|
137
140
|
through :key, field_pos do |key, values|
|
|
138
141
|
next if values.nil?
|
|
142
|
+
next if background and not background.include?(key)
|
|
139
143
|
values.compact.uniq.each{|value| data[value] ||= []; data[value] << key}
|
|
140
144
|
end
|
|
141
145
|
when :flat
|
|
142
146
|
through :key, field_pos do |key, values|
|
|
143
147
|
next if values.nil?
|
|
148
|
+
next if background and not background.include?(key)
|
|
144
149
|
values.compact.uniq.each{|value| data[value] ||= []; data[value] << key}
|
|
145
150
|
end
|
|
146
151
|
end
|
|
@@ -182,7 +187,6 @@ module TSV
|
|
|
182
187
|
|
|
183
188
|
selected = select :key => list.uniq
|
|
184
189
|
|
|
185
|
-
tsv_size = keys.length
|
|
186
190
|
found = selected.keys.length
|
|
187
191
|
Log.debug "Found #{found} of #{list.length} entities"
|
|
188
192
|
|
|
@@ -194,7 +198,14 @@ module TSV
|
|
|
194
198
|
Log.debug "Using #{ list.length } as sample size"
|
|
195
199
|
end
|
|
196
200
|
|
|
197
|
-
|
|
201
|
+
if background
|
|
202
|
+
tsv_size = background.length
|
|
203
|
+
counts = annotation_counts fields, options[:persist], :rename => rename, :masked => masked, :background => background
|
|
204
|
+
else
|
|
205
|
+
tsv_size = keys.length
|
|
206
|
+
counts = annotation_counts fields, options[:persist], :rename => rename, :masked => masked
|
|
207
|
+
end
|
|
208
|
+
|
|
198
209
|
|
|
199
210
|
annotation_keys = Hash.new
|
|
200
211
|
selected.with_unnamed do
|
|
@@ -248,8 +259,8 @@ module TSV
|
|
|
248
259
|
elems = elems.collect{|elem| rename.include?(elem)? rename[elem] : elem }.compact.uniq if rename
|
|
249
260
|
count = elems.length
|
|
250
261
|
next if count < options[:min_support] or not counts.include? annotation
|
|
251
|
-
#pvalues[annotation] = RSRuby.instance.phyper(count - 1, counts[annotation], tsv_size - counts[annotation], total, false).to_f
|
|
252
262
|
pvalues[annotation] = Hypergeometric.hypergeometric(count, counts[annotation], tsv_size - counts[annotation], total)
|
|
263
|
+
iii [annotation, elems, total, counts[annotation], tsv_size, pvalues[annotation]]
|
|
253
264
|
end
|
|
254
265
|
|
|
255
266
|
pvalues = FDR.adjust_hash! pvalues if options[:fdr]
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rbbt-dm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.38
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Miguel Vazquez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-12-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rbbt-util
|