sylfy 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/Rakefile +13 -0
- data/lib/sylfy.rb +12 -25
- data/lib/sylfy/add.rb +10 -0
- data/lib/sylfy/add/bio_kegg_kgml.rb +108 -0
- data/lib/sylfy/datamodel.rb +141 -0
- data/lib/sylfy/feature.rb +128 -0
- data/lib/sylfy/mathf.rb +40 -0
- data/lib/sylfy/pattern.rb +14 -0
- data/lib/sylfy/service.rb +34 -0
- data/lib/sylfy/service/biocycrest.rb +41 -0
- data/lib/sylfy/service/cactusncirest.rb +64 -0
- data/lib/sylfy/service/cbioportal.rb +156 -0
- data/lib/sylfy/service/chembl.rb +106 -0
- data/lib/sylfy/service/ebisoap.rb +55 -0
- data/lib/sylfy/service/ensemblrest.rb +64 -0
- data/lib/sylfy/service/ensemblrest/archive.rb +35 -0
- data/lib/sylfy/service/ensemblrest/comparative.rb +146 -0
- data/lib/sylfy/service/ensemblrest/xrefs.rb +73 -0
- data/lib/sylfy/service/hgncrest.rb +52 -0
- data/lib/sylfy/service/keggrest.rb +6 -19
- data/lib/sylfy/service/keggrest/conv.rb +64 -40
- data/lib/sylfy/service/keggrest/find.rb +27 -48
- data/lib/sylfy/service/keggrest/get.rb +82 -0
- data/lib/sylfy/service/keggrest/link.rb +17 -37
- data/lib/sylfy/service/keggrest/list.rb +18 -50
- data/lib/sylfy/service/lipidmaprest.rb +228 -0
- data/lib/sylfy/service/pubchem.rb +71 -0
- data/lib/sylfy/service/pubchemrest.rb +249 -0
- data/lib/sylfy/service/rest.rb +26 -0
- data/lib/sylfy/service/soapwsdl.rb +78 -0
- data/lib/sylfy/service/unichemrest.rb +106 -0
- data/lib/sylfy/utils.rb +18 -0
- data/lib/sylfy/utils/keyhash.rb +1149 -0
- data/lib/sylfy/utils/reactionkey.rb +197 -0
- data/lib/sylfy/version.rb +1 -1
- data/sylfy.gemspec +11 -15
- data/test/test_kegg_rest.rb +58 -0
- data/test/test_reactionkey.rb +37 -0
- metadata +87 -15
- data/lib/sylfy/math.rb +0 -24
- data/lib/sylfy/service/keggrest/restKegg_get.rb +0 -130
data/lib/sylfy/math.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# UniSysDB library in Ruby
|
3
|
-
# Copyright (C) 2012
|
4
|
-
#
|
5
|
-
# author: Natapol Pornputtapong <natapol@chalmers.se>
|
6
|
-
#
|
7
|
-
# Documentation: Natapol Pornputtapong (RDoc'd and embellished by William Webber)
|
8
|
-
#
|
9
|
-
|
10
|
-
module Sylfy
|
11
|
-
|
12
|
-
module Mathf
|
13
|
-
|
14
|
-
def self.lnfactorial(n)
|
15
|
-
return GSL::Sf::lngamma(n+1)
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.hypergeomatrix_test(nn, m, n, k)
|
19
|
-
log_h = lnfactorial(m) - lnfactorial(k) - lnfactorial(m-k) + lnfactorial(nn-m) - lnfactorial(n-k) - lnfactorial(nn-m-n+k) - lnfactorial(nn) + lnfactorial(n) + lnfactorial(nn-n)
|
20
|
-
return (Math::E ** log_h)
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
@@ -1,130 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# UniSysDB library in Ruby
|
3
|
-
# Copyright (C) 2012
|
4
|
-
#
|
5
|
-
# @author Natapol Pornputtapong <natapol@chalmers.se>
|
6
|
-
#
|
7
|
-
require 'open-uri'
|
8
|
-
require 'net/http'
|
9
|
-
require 'rexml/document'
|
10
|
-
|
11
|
-
module Unisys
|
12
|
-
|
13
|
-
module Service
|
14
|
-
|
15
|
-
module RESTKegg
|
16
|
-
|
17
|
-
module_function
|
18
|
-
|
19
|
-
def get(id, option = nil)
|
20
|
-
|
21
|
-
help = "
|
22
|
-
help: get(id, targetdb = nil)
|
23
|
-
help:
|
24
|
-
help: <dbentries> = KEGG database entries involving the following databases: pathway | brite | module | disease | drug | environ | ko | genome |
|
25
|
-
help: <org> | compound | glycan | reaction | rpair | rclass | enzyme
|
26
|
-
help: <org> = KEGG organism code or T number
|
27
|
-
help:
|
28
|
-
help: <option> = aaseq | ntseq | mol | kcf | image
|
29
|
-
"
|
30
|
-
if id == :help
|
31
|
-
puts help
|
32
|
-
return []
|
33
|
-
else
|
34
|
-
|
35
|
-
if option != nil && ['aaseq', 'ntseq', 'mol', 'kcf', 'image'].include?(option.to_s)
|
36
|
-
text = "#{id}/#{option}"
|
37
|
-
else
|
38
|
-
text = "#{id}"
|
39
|
-
end
|
40
|
-
|
41
|
-
begin
|
42
|
-
doc = URI.parse("#{@@baseuri}/get/#{text}").read().strip()
|
43
|
-
|
44
|
-
rescue OpenURI::HTTPError
|
45
|
-
raise Unisys::ServiceException, "Query not found."
|
46
|
-
end
|
47
|
-
|
48
|
-
doc = "\n\n\n#{doc}" if option != nil && option.to_sym == :mol
|
49
|
-
|
50
|
-
return doc
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
def getSmallMolecule(id)
|
56
|
-
#:id, :dataPrimarySource, :xrefs, :relations :inchi, :formula, :smiles, :inchiKey :names :relatype :terminal
|
57
|
-
doc = get(id)
|
58
|
-
|
59
|
-
rel_conv = {"Same as" => 'obo.internal:is_a'}
|
60
|
-
ref_conv = {"PubChem:" => "urn:miriam:pubchem.substance:", "ChEBI:" => "urn:miriam:obo.chebi:", "CAS:" => "urn:miriam:cas:", "3DMET:" => "urn:miriam:3dmet:", "KNApSAcK:" => "urn:miriam:knapsack:", "PDB-CCD:" => "urn:miriam:pdb-ccd:", "DrugBank:" => "urn:miriam:drugbank:", "LIPIDMAPS:" => "urn:miriam:lipidmaps:", "LipidBank:" => "urn:miriam:lipidbank:", "GlycomeDB:" => "urn:miriam:glycomedb:" }
|
61
|
-
|
62
|
-
result = {}
|
63
|
-
result[:names] = []
|
64
|
-
result[:xrefs] = []
|
65
|
-
result[:relations] = []
|
66
|
-
|
67
|
-
field = ""
|
68
|
-
content = ""
|
69
|
-
doc.split(/\n/).each do |line|
|
70
|
-
|
71
|
-
if line =~ /^(\p{Upper}+) +(.*)/
|
72
|
-
field = $1.to_sym
|
73
|
-
content = $2.chomp
|
74
|
-
elsif line =~ /^ +(.*)/
|
75
|
-
content = $1.chomp
|
76
|
-
end
|
77
|
-
|
78
|
-
case field
|
79
|
-
when :ENTRY
|
80
|
-
dat = content.split(/ +/)
|
81
|
-
result[:dataPrimarySource] = "#{Unisys::kegg_miriam[dat[0][0]]}:#{dat[0]}"
|
82
|
-
when :NAME
|
83
|
-
result[:names].push(content[0..-2])
|
84
|
-
when :FORMULA
|
85
|
-
result[:formula] = content
|
86
|
-
when :COMPOSITION
|
87
|
-
result[:formula] = content
|
88
|
-
when :MASS
|
89
|
-
|
90
|
-
when :CLASS
|
91
|
-
|
92
|
-
when :REMARK
|
93
|
-
dat = content.split(/: /)
|
94
|
-
|
95
|
-
result[:relations].push({:relatype => rel_conv[dat[0]]}, :terminal => "#{Unisys::kegg_miriam[dat[1][0]]}:#{dat[1]}")
|
96
|
-
when :REFERENCE
|
97
|
-
|
98
|
-
|
99
|
-
when :REACTION
|
100
|
-
|
101
|
-
when :PATHWAY
|
102
|
-
|
103
|
-
when :ENZYME
|
104
|
-
|
105
|
-
when :ORTHOLOGY
|
106
|
-
|
107
|
-
when :DBLINKS
|
108
|
-
dat = content.split(/ /)
|
109
|
-
if ref_conv.has_key?(dat[0])
|
110
|
-
dat[1..-1].each do |item|
|
111
|
-
result[:xrefs].push("#{ref_conv[dat[0]]}#{item}")
|
112
|
-
end
|
113
|
-
end
|
114
|
-
when :NODE
|
115
|
-
|
116
|
-
when :EDGE
|
117
|
-
|
118
|
-
end
|
119
|
-
|
120
|
-
#result.push(line.chomp.split(/\t/))
|
121
|
-
end
|
122
|
-
|
123
|
-
return result
|
124
|
-
end
|
125
|
-
|
126
|
-
end
|
127
|
-
|
128
|
-
end
|
129
|
-
|
130
|
-
end
|