sylfy 0.0.2 → 0.1.0

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.
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