rbbt-phgx 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rbbt/mutation/chasm.rb +79 -0
- data/lib/rbbt/sources/kegg.rb +1 -1
- data/lib/rbbt/sources/matador.rb +1 -1
- data/lib/rbbt/sources/pina.rb +1 -1
- data/lib/rbbt/sources/stitch.rb +1 -1
- data/lib/rbbt/sources/string.rb +1 -1
- data/test/rbbt/mutation/test_chasm.rb +14 -0
- metadata +19 -16
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'rbbt/util/open'
|
2
|
+
require 'rbbt/tsv'
|
3
|
+
require 'nokogiri'
|
4
|
+
require 'digest/md5'
|
5
|
+
require 'net/http/post/multipart'
|
6
|
+
|
7
|
+
module CHASM
|
8
|
+
|
9
|
+
class NotDone < StandardError; end
|
10
|
+
|
11
|
+
URL="http://www.cravat.us/ClassifierSelect1"
|
12
|
+
ASTERISK = "*"[0]
|
13
|
+
|
14
|
+
# Hash of samples pointing to mutations specified in Ensembl Transcript ID
|
15
|
+
def self.predict(mutations_by_sample, options = {})
|
16
|
+
options = Misc.add_defaults options, :chosendb => "CHASM", :emailbox => 'dev@null.org', :analysistype => 'driver', :inputfile => nil
|
17
|
+
mutationbox = []
|
18
|
+
i = 1
|
19
|
+
mutations_by_sample.each do |sample,mutations|
|
20
|
+
mutations.each do |mutation|
|
21
|
+
mutationbox << [i, sample].concat(mutation.split(":"))
|
22
|
+
end
|
23
|
+
i += 1
|
24
|
+
end
|
25
|
+
|
26
|
+
options[:mutationbox] = mutationbox.collect{|line| line * "\t"} * "\n"
|
27
|
+
post_data = options.collect{|k,v| [k,v] * "="} * "&"
|
28
|
+
|
29
|
+
Log.debug "Querying CHASM for: #{mutationbox.length} mutations in #{mutations_by_sample.length} samples"
|
30
|
+
|
31
|
+
tries = 0
|
32
|
+
nocache = false
|
33
|
+
begin
|
34
|
+
doc = nil
|
35
|
+
TmpFile.with_file(post_data) do |post_file|
|
36
|
+
Log.medium "Updating cache:" if nocache == :update
|
37
|
+
|
38
|
+
url = URI.parse(URL)
|
39
|
+
req = Net::HTTP::Post::Multipart.new url.path, options
|
40
|
+
res = Net::HTTP.start(url.host, url.port) do |http|
|
41
|
+
http.request(req)
|
42
|
+
end
|
43
|
+
job_id = JSON.parse(res.body)["jobId"]
|
44
|
+
puts job_id
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.chunked_predict(mutations, max = 1000)
|
50
|
+
flattened_mutations = mutations.collect{|g,list| list = [list] unless Array === list; list.collect{|m| [g,m] } }.flatten(1)
|
51
|
+
chunks = flattened_mutations.length.to_f / max
|
52
|
+
chunks = chunks.ceil
|
53
|
+
|
54
|
+
Log.debug("Mutation Assessor ran with #{chunks} chunks of #{ max } mutations") if chunks > 1
|
55
|
+
num = 1
|
56
|
+
Misc.divide(flattened_mutations, chunks).inject(nil) do |acc, list|
|
57
|
+
Log.debug("Mutation Assessor ran with #{chunks} chunks: chunk #{num}") if chunks > 1
|
58
|
+
unflattened_mutations = {}
|
59
|
+
list.each{|g,m| next if g.nil?; unflattened_mutations[g] ||= []; unflattened_mutations[g] << m}
|
60
|
+
if acc.nil?
|
61
|
+
acc = predict(unflattened_mutations)
|
62
|
+
else
|
63
|
+
acc = TSV.setup(acc.merge(predict(unflattened_mutations)))
|
64
|
+
end
|
65
|
+
num += 1
|
66
|
+
acc
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
__END__
|
73
|
+
|
74
|
+
name="mutationbox" 1 NP_001135977 R641W 1
|
75
|
+
name="inputfile"
|
76
|
+
name="analysistype" driver
|
77
|
+
name="chosendb" CHASM
|
78
|
+
name="cancertype" Breast
|
79
|
+
name="emailbox" mikisvaz@gmail.com
|
data/lib/rbbt/sources/kegg.rb
CHANGED
@@ -7,7 +7,7 @@ module KEGG
|
|
7
7
|
self.subdir = "share/kegg"
|
8
8
|
|
9
9
|
|
10
|
-
KEGG.claim KEGG.root
|
10
|
+
KEGG.claim KEGG.root, :rake, Rbbt.share.install.KEGG.Rakefile.find(:lib)
|
11
11
|
|
12
12
|
def self.names
|
13
13
|
@@names ||= KEGG.pathways.tsv :fields => ["Pathway Name"], :persist => true, :type => :single, :unnamed => true
|
data/lib/rbbt/sources/matador.rb
CHANGED
data/lib/rbbt/sources/pina.rb
CHANGED
@@ -5,7 +5,7 @@ module Pina
|
|
5
5
|
self.pkgdir = "phgx"
|
6
6
|
self.subdir = "share/pina"
|
7
7
|
|
8
|
-
Pina.claim Pina.root
|
8
|
+
Pina.claim Pina.root, :rake, Rbbt.share.install.Pina.Rakefile.find(:lib)
|
9
9
|
end
|
10
10
|
|
11
11
|
if defined? Entity and defined? Gene and Entity === Gene
|
data/lib/rbbt/sources/stitch.rb
CHANGED
data/lib/rbbt/sources/string.rb
CHANGED
@@ -5,7 +5,7 @@ module STRING
|
|
5
5
|
self.pkgdir = "phgx"
|
6
6
|
self.subdir = "share/string"
|
7
7
|
|
8
|
-
STRING.claim STRING.root
|
8
|
+
STRING.claim STRING.root, :rake, Rbbt.share.install.STRING.Rakefile.find(:lib)
|
9
9
|
end
|
10
10
|
|
11
11
|
if defined? Entity and defined? Gene and Entity === Gene
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
|
2
|
+
require 'rbbt/mutation/chasm'
|
3
|
+
|
4
|
+
class TestCHASM < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_predict_aminoacid_mutation
|
7
|
+
sample_mutations = {
|
8
|
+
"Sample_1" => ["ENST00000531739:R641W"]
|
9
|
+
|
10
|
+
}
|
11
|
+
ddd CHASM.predict(sample_mutations, :cancertype => "Breast")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-phgx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rbbt-util
|
@@ -36,6 +36,7 @@ extra_rdoc_files:
|
|
36
36
|
files:
|
37
37
|
- LICENSE
|
38
38
|
- lib/phgx.rb
|
39
|
+
- lib/rbbt/mutation/chasm.rb
|
39
40
|
- lib/rbbt/mutation/fireDB.rb
|
40
41
|
- lib/rbbt/mutation/mutation_assessor.rb
|
41
42
|
- lib/rbbt/mutation/oncodriveFM.rb
|
@@ -67,17 +68,18 @@ files:
|
|
67
68
|
- share/install/lib/rake_helper.rb
|
68
69
|
- share/install/software/OncodriveFM
|
69
70
|
- test/rbbt/sources/test_matador.rb
|
70
|
-
- test/rbbt/sources/test_pharmagkb.rb
|
71
|
-
- test/rbbt/sources/test_stitch.rb
|
72
71
|
- test/rbbt/sources/test_cancer.rb
|
72
|
+
- test/rbbt/sources/test_stitch.rb
|
73
|
+
- test/rbbt/sources/test_pharmagkb.rb
|
73
74
|
- test/rbbt/sources/test_kegg.rb
|
74
|
-
- test/rbbt/mutation/test_snps_and_go.rb
|
75
|
-
- test/rbbt/mutation/test_fireDB.rb
|
76
|
-
- test/rbbt/mutation/test_sift.rb
|
77
|
-
- test/rbbt/mutation/test_polyphen.rb
|
78
|
-
- test/rbbt/mutation/test_mutation_assessor.rb
|
79
75
|
- test/rbbt/mutation/test_oncodriveFM.rb
|
76
|
+
- test/rbbt/mutation/test_polyphen.rb
|
77
|
+
- test/rbbt/mutation/test_chasm.rb
|
78
|
+
- test/rbbt/mutation/test_sift.rb
|
80
79
|
- test/rbbt/mutation/test_transFIC.rb
|
80
|
+
- test/rbbt/mutation/test_snps_and_go.rb
|
81
|
+
- test/rbbt/mutation/test_mutation_assessor.rb
|
82
|
+
- test/rbbt/mutation/test_fireDB.rb
|
81
83
|
- test/test_helper.rb
|
82
84
|
homepage: http://github.com/mikisvaz/rbbt-phgx
|
83
85
|
licenses: []
|
@@ -105,15 +107,16 @@ specification_version: 3
|
|
105
107
|
summary: Pharmaco-genomics for the Ruby Bioinformatics Toolkit (rbbt)
|
106
108
|
test_files:
|
107
109
|
- test/rbbt/sources/test_matador.rb
|
108
|
-
- test/rbbt/sources/test_pharmagkb.rb
|
109
|
-
- test/rbbt/sources/test_stitch.rb
|
110
110
|
- test/rbbt/sources/test_cancer.rb
|
111
|
+
- test/rbbt/sources/test_stitch.rb
|
112
|
+
- test/rbbt/sources/test_pharmagkb.rb
|
111
113
|
- test/rbbt/sources/test_kegg.rb
|
112
|
-
- test/rbbt/mutation/test_snps_and_go.rb
|
113
|
-
- test/rbbt/mutation/test_fireDB.rb
|
114
|
-
- test/rbbt/mutation/test_sift.rb
|
115
|
-
- test/rbbt/mutation/test_polyphen.rb
|
116
|
-
- test/rbbt/mutation/test_mutation_assessor.rb
|
117
114
|
- test/rbbt/mutation/test_oncodriveFM.rb
|
115
|
+
- test/rbbt/mutation/test_polyphen.rb
|
116
|
+
- test/rbbt/mutation/test_chasm.rb
|
117
|
+
- test/rbbt/mutation/test_sift.rb
|
118
118
|
- test/rbbt/mutation/test_transFIC.rb
|
119
|
+
- test/rbbt/mutation/test_snps_and_go.rb
|
120
|
+
- test/rbbt/mutation/test_mutation_assessor.rb
|
121
|
+
- test/rbbt/mutation/test_fireDB.rb
|
119
122
|
- test/test_helper.rb
|