ruby-ensembl-api 1.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/ensembl.rb +2 -0
- data/lib/ensembl/core/activerecord.rb +2 -1
- data/lib/ensembl/core/slice.rb +6 -6
- data/lib/ensembl/db_connection.rb +7 -21
- data/lib/ensembl/variation/activerecord.rb +2 -27
- metadata +34 -14
data/lib/ensembl.rb
CHANGED
data/lib/ensembl/core/slice.rb
CHANGED
@@ -593,12 +593,12 @@ SQL
|
|
593
593
|
|
594
594
|
# Method to retrieve Variation features from Ensembl::Core::Slice objects
|
595
595
|
# @example
|
596
|
-
#
|
597
|
-
#
|
598
|
-
#
|
599
|
-
#
|
600
|
-
#
|
601
|
-
#
|
596
|
+
# slice = Slice.fetch_by_region('chromosome',1,50000,51000)
|
597
|
+
# variations = slice.get_variation_features
|
598
|
+
# variations.each do |vf|
|
599
|
+
# puts vf.variation_name, vf.allele_string
|
600
|
+
# puts vf.variation.ancestral_allele
|
601
|
+
# end
|
602
602
|
def get_variation_features
|
603
603
|
variation_connection()
|
604
604
|
Ensembl::Variation::VariationFeature.find(:all,:conditions => ["seq_region_id = ? AND seq_region_start >= ? AND seq_region_end <= ?",self.seq_region.seq_region_id,self.start,self.stop])
|
@@ -20,9 +20,7 @@ module Ensembl
|
|
20
20
|
EG_PORT = 4157
|
21
21
|
|
22
22
|
|
23
|
-
# = DESCRIPTION
|
24
23
|
# Generic class to perform dynamic connections to the Ensembl database and retrieve database names
|
25
|
-
#
|
26
24
|
class DummyDBConnection < ActiveRecord::Base
|
27
25
|
self.abstract_class = true
|
28
26
|
def self.connect(args)
|
@@ -38,11 +36,9 @@ module Ensembl
|
|
38
36
|
end
|
39
37
|
|
40
38
|
module DBRegistry
|
41
|
-
# = DESCRIPTION
|
42
39
|
# The Ensembl::Registry::Base is a super class providing general methods
|
43
40
|
# to get database and connection info.
|
44
41
|
class Base < ActiveRecord::Base
|
45
|
-
|
46
42
|
self.abstract_class = true
|
47
43
|
self.pluralize_table_names = false
|
48
44
|
def self.get_info
|
@@ -55,7 +51,7 @@ module Ensembl
|
|
55
51
|
return host,user,password,db_name,port,species,release.to_i
|
56
52
|
end
|
57
53
|
end
|
58
|
-
|
54
|
+
|
59
55
|
# Method to retrieve the name of a database, using species, release and connection parameters
|
60
56
|
# passed by the user.
|
61
57
|
def self.get_name_from_db(db_type,species,release,args)
|
@@ -121,30 +117,25 @@ module Ensembl
|
|
121
117
|
|
122
118
|
|
123
119
|
module Core
|
124
|
-
# = DESCRIPTION
|
125
120
|
# The Ensembl::Core::DBConnection is the actual connection established
|
126
121
|
# with the Ensembl server.
|
127
122
|
class DBConnection < Ensembl::DBRegistry::Base
|
128
123
|
self.abstract_class = true
|
129
124
|
self.pluralize_table_names = false
|
130
|
-
# = DESCRIPTION
|
131
125
|
# The Ensembl::Core::DBConnection#connect method makes the connection
|
132
126
|
# to the Ensembl core database for a given species. By default, it connects
|
133
127
|
# to release 50 for that species. You _could_ use a lower number, but
|
134
128
|
# some parts of the API might not work, or worse: give the wrong results.
|
135
129
|
#
|
136
|
-
#
|
130
|
+
# @example
|
137
131
|
# # Connect to release 50 of human
|
138
132
|
# Ensembl::Core::DBConnection.connect('homo_sapiens')
|
139
133
|
#
|
140
134
|
# # Connect to release 42 of chicken
|
141
135
|
# Ensembl::Core::DBConnection.connect('gallus_gallus')
|
142
136
|
#
|
143
|
-
#
|
144
|
-
#
|
145
|
-
# * species:: species to connect to. Arguments should be in snake_case
|
146
|
-
# * ensembl_release:: the release of the database to connect to
|
147
|
-
# (default = 50)
|
137
|
+
# @param [String] species Species to connect to. Must be in snake_case
|
138
|
+
# @param [Integer] ensembl_release. Release to connect to (default = 60)
|
148
139
|
def self.connect(species, release = Ensembl::ENSEMBL_RELEASE, args = {})
|
149
140
|
self.generic_connect('core',species, release,args)
|
150
141
|
end
|
@@ -160,30 +151,25 @@ module Ensembl
|
|
160
151
|
end # Core
|
161
152
|
|
162
153
|
module Variation
|
163
|
-
# = DESCRIPTION
|
164
154
|
# The Ensembl::Variation::DBConnection is the actual connection established
|
165
155
|
# with the Ensembl server.
|
166
156
|
class DBConnection < Ensembl::DBRegistry::Base
|
167
157
|
self.abstract_class = true
|
168
158
|
self.pluralize_table_names = false
|
169
|
-
# = DESCRIPTION
|
170
159
|
# The Ensembl::Variation::DBConnection#connect method makes the connection
|
171
160
|
# to the Ensembl variation database for a given species. By default, it connects
|
172
161
|
# to release 50 for that species. You _could_ use a lower number, but
|
173
162
|
# some parts of the API might not work, or worse: give the wrong results.
|
174
163
|
#
|
175
|
-
#
|
164
|
+
# @example
|
176
165
|
# # Connect to release 50 of human
|
177
166
|
# Ensembl::Variation::DBConnection.connect('homo_sapiens')
|
178
167
|
#
|
179
168
|
# # Connect to release 42 of chicken
|
180
169
|
# Ensembl::Variation::DBConnection.connect('gallus_gallus')
|
181
170
|
#
|
182
|
-
#
|
183
|
-
#
|
184
|
-
# * species:: species to connect to. Arguments should be in snake_case
|
185
|
-
# * ensembl_release:: the release of the database to connect to
|
186
|
-
# (default = 50)
|
171
|
+
# @param [String] species Species to connect to. Must be in snake_case
|
172
|
+
# @param [Integer] ensembl_release. Release to connect to (default = 60)
|
187
173
|
def self.connect(species, release = Ensembl::ENSEMBL_RELEASE, args = {})
|
188
174
|
self.generic_connect('variation',species, release, args)
|
189
175
|
end
|
@@ -19,7 +19,7 @@ module Ensembl
|
|
19
19
|
# See the general documentation of the Ensembl module for
|
20
20
|
# more information on what this means and what methods are available.
|
21
21
|
#
|
22
|
-
#
|
22
|
+
# @example
|
23
23
|
# allele = Allele.find(1)
|
24
24
|
# puts allele.to_yaml
|
25
25
|
class Allele < DBConnection
|
@@ -30,7 +30,6 @@ module Ensembl
|
|
30
30
|
belongs_to :subsnp_handle
|
31
31
|
end
|
32
32
|
|
33
|
-
# = DESCRIPTION
|
34
33
|
# The AlleleGroup class represents a grouping of alleles that have tight
|
35
34
|
# linkage and are usually present together. This is commonly known as a
|
36
35
|
# Haplotype or Haplotype Block.
|
@@ -39,7 +38,7 @@ module Ensembl
|
|
39
38
|
# See the general documentation of the Ensembl module for
|
40
39
|
# more information on what this means and what methods are available.
|
41
40
|
#
|
42
|
-
#
|
41
|
+
# @example
|
43
42
|
# allele_group = AlleleGroup.find(1)
|
44
43
|
# puts allele_group.to_yaml
|
45
44
|
class AlleleGroup < DBConnection
|
@@ -50,7 +49,6 @@ module Ensembl
|
|
50
49
|
belongs_to :allele_group_allele
|
51
50
|
end
|
52
51
|
|
53
|
-
# = DESCRIPTION
|
54
52
|
# The AlleleGroupAllele class represents a connection class between Allele and AlleleGroup.
|
55
53
|
# Should not be used directly.
|
56
54
|
#
|
@@ -62,7 +60,6 @@ module Ensembl
|
|
62
60
|
belongs_to :allele_group
|
63
61
|
end
|
64
62
|
|
65
|
-
# = DESCRIPTION
|
66
63
|
# Store information on attributes types
|
67
64
|
#
|
68
65
|
# This class uses ActiveRecord to access data in the Ensembl database.
|
@@ -72,9 +69,6 @@ module Ensembl
|
|
72
69
|
set_primary_key "attrib_type_id"
|
73
70
|
end
|
74
71
|
|
75
|
-
|
76
|
-
# = DESCRIPTION
|
77
|
-
#
|
78
72
|
# This class uses ActiveRecord to access data in the Ensembl database.
|
79
73
|
# See the general documentation of the Ensembl module for
|
80
74
|
# more information on what this means and what methods are available.
|
@@ -82,8 +76,6 @@ module Ensembl
|
|
82
76
|
|
83
77
|
end
|
84
78
|
|
85
|
-
# = DESCRIPTION
|
86
|
-
#
|
87
79
|
# This class uses ActiveRecord to access data in the Ensembl database.
|
88
80
|
# See the general documentation of the Ensembl module for
|
89
81
|
# more information on what this means and what methods are available.
|
@@ -92,8 +84,6 @@ module Ensembl
|
|
92
84
|
has_many :failed_variations
|
93
85
|
end
|
94
86
|
|
95
|
-
# = DESCRIPTION
|
96
|
-
#
|
97
87
|
# This class uses ActiveRecord to access data in the Ensembl database.
|
98
88
|
# See the general documentation of the Ensembl module for
|
99
89
|
# more information on what this means and what methods are available.
|
@@ -103,8 +93,6 @@ module Ensembl
|
|
103
93
|
belongs_to :variation
|
104
94
|
end
|
105
95
|
|
106
|
-
# = DESCRIPTION
|
107
|
-
#
|
108
96
|
# This class uses ActiveRecord to access data in the Ensembl database.
|
109
97
|
# See the general documentation of the Ensembl module for
|
110
98
|
# more information on what this means and what methods are available.
|
@@ -125,9 +113,6 @@ module Ensembl
|
|
125
113
|
has_many :variation_annotations
|
126
114
|
end
|
127
115
|
|
128
|
-
|
129
|
-
|
130
|
-
# = DESCRIPTION
|
131
116
|
# The Sample class gives information about the biological samples stored in the database.
|
132
117
|
#
|
133
118
|
# This class uses ActiveRecord to access data in the Ensembl database.
|
@@ -155,7 +140,6 @@ module Ensembl
|
|
155
140
|
belongs_to :population, :foreign_key => "population_sample_id"
|
156
141
|
end
|
157
142
|
|
158
|
-
# = DESCRIPTION
|
159
143
|
# The Individual class gives information on the single individuals used
|
160
144
|
# to retrieve one or more biological samples.
|
161
145
|
#
|
@@ -207,7 +191,6 @@ module Ensembl
|
|
207
191
|
|
208
192
|
end
|
209
193
|
|
210
|
-
# = DESCRIPTION
|
211
194
|
# The PopulationGenotype class gives information about alleles and allele
|
212
195
|
# frequencies for a SNP observed within a population or a group of samples.
|
213
196
|
#
|
@@ -222,7 +205,6 @@ module Ensembl
|
|
222
205
|
has_many :compressed_genotype_single_bps, :foreign_key => "sample_id"
|
223
206
|
end
|
224
207
|
|
225
|
-
# = DESCRIPTION
|
226
208
|
# The SampleSynonym class represents information about alternative names
|
227
209
|
# for sample entries.
|
228
210
|
#
|
@@ -236,7 +218,6 @@ module Ensembl
|
|
236
218
|
belongs_to :population
|
237
219
|
end
|
238
220
|
|
239
|
-
# = DESCRIPTION
|
240
221
|
# The Source class gives information on the different databases and SNP
|
241
222
|
# panels used to retrieve the data
|
242
223
|
#
|
@@ -288,7 +269,6 @@ module Ensembl
|
|
288
269
|
has_many :variation_synonyms,:foreign_key => "subsnp_id"
|
289
270
|
end
|
290
271
|
|
291
|
-
# = DESCRIPTION
|
292
272
|
# The VariationSynonym class gives information on alterative names used
|
293
273
|
# for Variation entries.
|
294
274
|
#
|
@@ -302,7 +282,6 @@ module Ensembl
|
|
302
282
|
belongs_to :subsnp_handle
|
303
283
|
end
|
304
284
|
|
305
|
-
# = DESCRIPTION
|
306
285
|
# The VariationGroup class represents a group of variations (SNPs) that are
|
307
286
|
# linked and present toghether.
|
308
287
|
#
|
@@ -318,7 +297,6 @@ module Ensembl
|
|
318
297
|
has_one :allele_group
|
319
298
|
end
|
320
299
|
|
321
|
-
# = DESCRIPTION
|
322
300
|
# The VariationGroupVariation class is a connection class.
|
323
301
|
# Should not be used directly.
|
324
302
|
#
|
@@ -330,7 +308,6 @@ module Ensembl
|
|
330
308
|
belongs_to :variation_group
|
331
309
|
end
|
332
310
|
|
333
|
-
# = DESCRIPTION
|
334
311
|
# The VariationGroupFeature class gives information on the genomic position
|
335
312
|
# of each VariationGroup.
|
336
313
|
#
|
@@ -350,7 +327,6 @@ module Ensembl
|
|
350
327
|
end
|
351
328
|
|
352
329
|
|
353
|
-
# = DESCRIPTION
|
354
330
|
# The FlankingSequence class gives information about the genomic coordinates
|
355
331
|
# of the flanking sequences, for a single VariationFeature.
|
356
332
|
#
|
@@ -361,7 +337,6 @@ module Ensembl
|
|
361
337
|
belongs_to :variation
|
362
338
|
end
|
363
339
|
|
364
|
-
# = DESCRIPTION
|
365
340
|
# The TaggedVariationFeature class is a connection class.
|
366
341
|
# Should not be used directly.
|
367
342
|
#
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-ensembl-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 21
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 1.0.1
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Jan Aerts
|
@@ -10,29 +16,37 @@ autorequire:
|
|
10
16
|
bindir: bin
|
11
17
|
cert_chain: []
|
12
18
|
|
13
|
-
date: 2010-12-
|
19
|
+
date: 2010-12-16 00:00:00 +01:00
|
14
20
|
default_executable: ensembl
|
15
21
|
dependencies:
|
16
22
|
- !ruby/object:Gem::Dependency
|
17
23
|
name: bio
|
18
|
-
|
19
|
-
|
20
|
-
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
21
27
|
requirements:
|
22
28
|
- - ">="
|
23
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 1
|
31
|
+
segments:
|
32
|
+
- 1
|
24
33
|
version: "1"
|
25
|
-
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
26
36
|
- !ruby/object:Gem::Dependency
|
27
37
|
name: activerecord
|
28
|
-
|
29
|
-
|
30
|
-
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
31
41
|
requirements:
|
32
42
|
- - ">="
|
33
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
34
47
|
version: "0"
|
35
|
-
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
36
50
|
description: ruby-ensembl-api provides a ruby API to the Ensembl databases (http://www.ensembl.org)
|
37
51
|
email:
|
38
52
|
- jan.aerts@gmail.com
|
@@ -71,7 +85,7 @@ files:
|
|
71
85
|
- test/unit/test_connection.rb
|
72
86
|
- test/unit/test_releases.rb
|
73
87
|
- TUTORIAL.rdoc
|
74
|
-
has_rdoc:
|
88
|
+
has_rdoc: yard
|
75
89
|
homepage: http://github.com/jandot/ruby-ensembl-api
|
76
90
|
licenses: []
|
77
91
|
|
@@ -81,21 +95,27 @@ rdoc_options: []
|
|
81
95
|
require_paths:
|
82
96
|
- lib
|
83
97
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
84
99
|
requirements:
|
85
100
|
- - ">="
|
86
101
|
- !ruby/object:Gem::Version
|
102
|
+
hash: 3
|
103
|
+
segments:
|
104
|
+
- 0
|
87
105
|
version: "0"
|
88
|
-
version:
|
89
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
90
108
|
requirements:
|
91
109
|
- - ">="
|
92
110
|
- !ruby/object:Gem::Version
|
111
|
+
hash: 3
|
112
|
+
segments:
|
113
|
+
- 0
|
93
114
|
version: "0"
|
94
|
-
version:
|
95
115
|
requirements: []
|
96
116
|
|
97
117
|
rubyforge_project:
|
98
|
-
rubygems_version: 1.3.
|
118
|
+
rubygems_version: 1.3.7
|
99
119
|
signing_key:
|
100
120
|
specification_version: 3
|
101
121
|
summary: API to Ensembl databases
|