sylfy 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/Rakefile +13 -0
  4. data/lib/sylfy.rb +12 -25
  5. data/lib/sylfy/add.rb +10 -0
  6. data/lib/sylfy/add/bio_kegg_kgml.rb +108 -0
  7. data/lib/sylfy/datamodel.rb +141 -0
  8. data/lib/sylfy/feature.rb +128 -0
  9. data/lib/sylfy/mathf.rb +40 -0
  10. data/lib/sylfy/pattern.rb +14 -0
  11. data/lib/sylfy/service.rb +34 -0
  12. data/lib/sylfy/service/biocycrest.rb +41 -0
  13. data/lib/sylfy/service/cactusncirest.rb +64 -0
  14. data/lib/sylfy/service/cbioportal.rb +156 -0
  15. data/lib/sylfy/service/chembl.rb +106 -0
  16. data/lib/sylfy/service/ebisoap.rb +55 -0
  17. data/lib/sylfy/service/ensemblrest.rb +64 -0
  18. data/lib/sylfy/service/ensemblrest/archive.rb +35 -0
  19. data/lib/sylfy/service/ensemblrest/comparative.rb +146 -0
  20. data/lib/sylfy/service/ensemblrest/xrefs.rb +73 -0
  21. data/lib/sylfy/service/hgncrest.rb +52 -0
  22. data/lib/sylfy/service/keggrest.rb +6 -19
  23. data/lib/sylfy/service/keggrest/conv.rb +64 -40
  24. data/lib/sylfy/service/keggrest/find.rb +27 -48
  25. data/lib/sylfy/service/keggrest/get.rb +82 -0
  26. data/lib/sylfy/service/keggrest/link.rb +17 -37
  27. data/lib/sylfy/service/keggrest/list.rb +18 -50
  28. data/lib/sylfy/service/lipidmaprest.rb +228 -0
  29. data/lib/sylfy/service/pubchem.rb +71 -0
  30. data/lib/sylfy/service/pubchemrest.rb +249 -0
  31. data/lib/sylfy/service/rest.rb +26 -0
  32. data/lib/sylfy/service/soapwsdl.rb +78 -0
  33. data/lib/sylfy/service/unichemrest.rb +106 -0
  34. data/lib/sylfy/utils.rb +18 -0
  35. data/lib/sylfy/utils/keyhash.rb +1149 -0
  36. data/lib/sylfy/utils/reactionkey.rb +197 -0
  37. data/lib/sylfy/version.rb +1 -1
  38. data/sylfy.gemspec +11 -15
  39. data/test/test_kegg_rest.rb +58 -0
  40. data/test/test_reactionkey.rb +37 -0
  41. metadata +87 -15
  42. data/lib/sylfy/math.rb +0 -24
  43. data/lib/sylfy/service/keggrest/restKegg_get.rb +0 -130
@@ -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