ruby-ensembl-api 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/TUTORIAL.rdoc +623 -0
  2. data/bin/ensembl +40 -0
  3. data/lib/ensembl.rb +64 -0
  4. data/lib/ensembl/core/activerecord.rb +1914 -0
  5. data/lib/ensembl/core/collection.rb +60 -0
  6. data/lib/ensembl/core/project.rb +264 -0
  7. data/lib/ensembl/core/slice.rb +693 -0
  8. data/lib/ensembl/core/transcript.rb +425 -0
  9. data/lib/ensembl/core/transform.rb +97 -0
  10. data/lib/ensembl/db_connection.rb +216 -0
  11. data/lib/ensembl/variation/activerecord.rb +253 -0
  12. data/lib/ensembl/variation/variation.rb +163 -0
  13. data/test/unit/data/seq_c6qbl.fa +10 -0
  14. data/test/unit/data/seq_cso19_coding.fa +16 -0
  15. data/test/unit/data/seq_cso19_transcript.fa +28 -0
  16. data/test/unit/data/seq_drd3_gene.fa +838 -0
  17. data/test/unit/data/seq_drd3_transcript.fa +22 -0
  18. data/test/unit/data/seq_drd4_transcript.fa +24 -0
  19. data/test/unit/data/seq_forward_composite.fa +1669 -0
  20. data/test/unit/data/seq_par_boundary.fa +169 -0
  21. data/test/unit/data/seq_rnd3_transcript.fa +47 -0
  22. data/test/unit/data/seq_ub2r1_coding.fa +13 -0
  23. data/test/unit/data/seq_ub2r1_gene.fa +174 -0
  24. data/test/unit/data/seq_ub2r1_transcript.fa +26 -0
  25. data/test/unit/data/seq_y.fa +2 -0
  26. data/test/unit/ensembl_genomes/test_collection.rb +51 -0
  27. data/test/unit/ensembl_genomes/test_gene.rb +52 -0
  28. data/test/unit/ensembl_genomes/test_slice.rb +71 -0
  29. data/test/unit/ensembl_genomes/test_variation.rb +17 -0
  30. data/test/unit/release_50/core/test_project.rb +215 -0
  31. data/test/unit/release_50/core/test_project_human.rb +58 -0
  32. data/test/unit/release_50/core/test_relationships.rb +66 -0
  33. data/test/unit/release_50/core/test_sequence.rb +175 -0
  34. data/test/unit/release_50/core/test_slice.rb +121 -0
  35. data/test/unit/release_50/core/test_transcript.rb +108 -0
  36. data/test/unit/release_50/core/test_transform.rb +223 -0
  37. data/test/unit/release_50/variation/test_activerecord.rb +143 -0
  38. data/test/unit/release_50/variation/test_variation.rb +84 -0
  39. data/test/unit/release_53/core/test_gene.rb +66 -0
  40. data/test/unit/release_53/core/test_project.rb +96 -0
  41. data/test/unit/release_53/core/test_project_human.rb +65 -0
  42. data/test/unit/release_53/core/test_slice.rb +47 -0
  43. data/test/unit/release_53/core/test_transform.rb +63 -0
  44. data/test/unit/release_53/variation/test_activerecord.rb +145 -0
  45. data/test/unit/release_53/variation/test_variation.rb +71 -0
  46. data/test/unit/release_56/core/test_gene.rb +66 -0
  47. data/test/unit/release_56/core/test_project.rb +96 -0
  48. data/test/unit/release_56/core/test_slice.rb +54 -0
  49. data/test/unit/release_56/core/test_transform.rb +63 -0
  50. data/test/unit/release_56/variation/test_activerecord.rb +142 -0
  51. data/test/unit/release_56/variation/test_variation.rb +68 -0
  52. data/test/unit/test_connection.rb +66 -0
  53. data/test/unit/test_releases.rb +136 -0
  54. metadata +128 -0
@@ -0,0 +1,52 @@
1
+ #
2
+ # = test/unit/release_53/ensembl_genomes/test_gene.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
6
+ # License:: Ruby's
7
+ #
8
+ # $Id:
9
+
10
+ require 'pathname'
11
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
12
+ $:.unshift(libpath) unless $:.include?(libpath)
13
+
14
+ require 'test/unit'
15
+ require 'lib/ensembl'
16
+
17
+ include Ensembl::Core
18
+
19
+ class TestGene < Test::Unit::TestCase
20
+
21
+ def setup
22
+ DBConnection.ensemblgenomes_connect('pyrococcus_collection',3)
23
+ end
24
+
25
+ def teardown
26
+ DBConnection.remove_connection
27
+ end
28
+
29
+ def test_find_gene
30
+ g = Gene.find_by_stable_id("EBPYRG00000005609")
31
+ assert_equal("EBPYRG00000005609",g.stable_id)
32
+ assert_equal(1195302,g.start)
33
+ assert_equal(1196675,g.stop)
34
+ assert_equal("Chromosome",g.seq_region.name)
35
+ assert_equal("ATGAATAGGAGCTTGTACTTGATTTTTATAATTGTAGGATATACTTTGGGAATATGGACA",g.seq.slice(0,60).upcase)
36
+ end
37
+
38
+ def test_find_transcript
39
+ g = Gene.find_by_stable_id("EBPYRG00000005609")
40
+ t = g.transcripts
41
+ assert_equal("EBPYRT00000005610",t[0].stable_id)
42
+ end
43
+
44
+ def test_find_exons
45
+ g = Gene.find_by_stable_id("EBPYRG00000005609")
46
+ t = g.transcripts
47
+ e = t[0].exons
48
+ assert_equal("EBPYRE00000005617",e[0].stable_id)
49
+ assert_equal("ATGAATAGGAGCTTGTACTTGATTTTTATAATTGTAGGATATACTTTGGGAATATGGACA",e[0].seq.slice(0,60).upcase)
50
+ end
51
+
52
+ end
@@ -0,0 +1,71 @@
1
+ #
2
+ # = test/unit/release_53/ensembl_genomes/test_collection.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
6
+ # License:: Ruby's
7
+ #
8
+ # $Id:
9
+
10
+ require 'pathname'
11
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
12
+ $:.unshift(libpath) unless $:.include?(libpath)
13
+
14
+ require 'test/unit'
15
+ require 'lib/ensembl'
16
+
17
+ include Ensembl::Core
18
+
19
+ class TestSlice < Test::Unit::TestCase
20
+
21
+ def teardown
22
+ DBConnection.remove_connection
23
+ end
24
+
25
+ def test_fetch_by_region
26
+ DBConnection.ensemblgenomes_connect('mycobacterium_collection',3)
27
+ slice = Slice.fetch_by_region('chromosome',"Chromosome",183617,183716,1,"Mycobacterium tuberculosis H37Rv")
28
+ assert_equal("GCGCCATGACAGATCCGCAGACGCAGAGCACCAGGGTCGGGGTGGTTGCCGAGTCGGGGCCCGACGAACGACGGGTCGCGCTGGTTCCCAAGGCGGTCGC",slice.seq.upcase)
29
+
30
+ slice = Slice.fetch_by_region('chromosome',"Chromosome",4285422,4285521,1,"Mycobacterium paratuberculosis")
31
+ assert_equal("GGTGTTAACGGCCGAAAGGTGGTTGAAAGATCGGCGGAATCGGGCGCACCCGGGTGGTCGTCGACGCCGCGCTGGTGGTGCTCGGCTGCGCCGTCGTGGT",slice.seq.upcase)
32
+
33
+ slice = Slice.fetch_by_region('chromosome',"Chromosome",2667164,2667263,1,"Mycobacterium paratuberculosis")
34
+ assert_equal("GTTCCACCTGCCGATCGTCTTCCTCGCCGATAACCCGGGCATGCTGCCCGGCAGCCGGTCCGAACGCAGCGGTGTGCTGCGCGCCGGCGCGCGGATGTTC",slice.seq.upcase)
35
+ end
36
+
37
+ def test_fetch_genes_from_slice
38
+ DBConnection.ensemblgenomes_connect('mycobacterium_collection',3)
39
+ slice = Slice.fetch_by_region('chromosome',"Chromosome",620900,622130 ,1,"Mycobacterium tuberculosis H37Rv")
40
+ genes = slice.genes
41
+ assert_equal("EBMYCG00000001929",genes[0].stable_id)
42
+
43
+ slice = Slice.fetch_by_region('chromosome',"Chromosome",923890,925120 ,1,"Mycobacterium paratuberculosis")
44
+ genes = slice.genes
45
+ assert_equal("EBMYCG00000037956",genes[0].stable_id)
46
+ end
47
+
48
+ def test_new_db_and_reverse_slice
49
+ DBConnection.ensemblgenomes_connect('escherichia_coli_K12',3)
50
+ slice = Slice.fetch_by_region('chromosome',"Chromosome",831691,831790,-1)
51
+ assert_equal("AAACGATGCTTACTGGGGAGACGGTGGTCATGGTAAGGGCAAGAATCGACTGGGCTACCTTTTAATGGAGTTGCGCGAACAATTGGCTATAGAGAAGTAA",slice.seq.upcase)
52
+
53
+ slice = Slice.fetch_by_region('chromosome',"Chromosome",831690,832175,-1)
54
+ genes = slice.genes
55
+ assert_equal("EBESCG00000001341",genes[0].stable_id)
56
+ end
57
+
58
+ def test_fetch_all
59
+ DBConnection.ensemblgenomes_connect('bacillus_anthracis_Sterne',3)
60
+ slices = Slice.fetch_all('chromosome')
61
+ assert_equal(5228663,slices[0].length)
62
+ end
63
+
64
+ def test_error_species
65
+ DBConnection.ensemblgenomes_connect('bacillus_collection',3)
66
+ assert_raise ArgumentError do
67
+ Slice.fetch_by_region('chromosome',"Chromosome",831690,832175,1,"Wrong specie name")
68
+ end
69
+ end
70
+
71
+ end
@@ -0,0 +1,17 @@
1
+ #
2
+ # = test/unit/release_53/ensembl_genomes/test_variation.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
6
+ # License:: Ruby's
7
+ #
8
+ # $Id:
9
+
10
+ require 'pathname'
11
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
12
+ $:.unshift(libpath) unless $:.include?(libpath)
13
+
14
+ require 'test/unit'
15
+ require 'lib/ensembl'
16
+
17
+ # TO BE DONE AS SOON AS ENSEMBL GENOMES VARIATIONS WILL BE RELEASED
@@ -0,0 +1,215 @@
1
+ #
2
+ # = test/unit/test_project.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2007
5
+ # Jan Aerts <http://jandot.myopenid.com>
6
+ # License:: Ruby's
7
+ #
8
+ # $Id:
9
+ require 'pathname'
10
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
11
+ $:.unshift(libpath) unless $:.include?(libpath)
12
+
13
+ require 'test/unit'
14
+ require 'lib/ensembl'
15
+
16
+ include Ensembl::Core
17
+
18
+ DBConnection.connect('bos_taurus', 50)
19
+
20
+ class CoordinateMappingsTestSimple < Test::Unit::TestCase
21
+ # First see if the relationships work
22
+ def test_assemblies
23
+ # Contig AAFC03055291 should only be a component of chromosome 20
24
+ contig_coord_system = CoordSystem.find_by_name('contig')
25
+ aafc03055291 = SeqRegion.find_by_name_and_coord_system_id('AAFC03055291', contig_coord_system.id)
26
+ assert_equal(1, aafc03055291.assembled_seq_regions.length)
27
+
28
+ # Chromosome 20 has 2970 components
29
+ chr_coord_system = CoordSystem.find_by_name('chromosome')
30
+ chr20 = SeqRegion.find_by_name_and_coord_system_id('20', chr_coord_system.id)
31
+ assert_equal(2970, chr20.component_seq_regions.length)
32
+
33
+ # Chromosome 20 has 2970 contigs
34
+ assert_equal(2970, chr20.component_seq_regions('contig').length)
35
+
36
+ # Positions of the link between Chr20 and AAFC03055291
37
+ # * Contig AAFC03055291 starts at position 13970982 on chromosome Chr20
38
+ assert_equal(13970982, aafc03055291.assembly_links_as_component(chr_coord_system)[0].asm_start)
39
+ end
40
+ end
41
+
42
+ class Sequences < Test::Unit::TestCase
43
+ def setup
44
+ @seq_region = SeqRegion.find(92594)
45
+ end
46
+
47
+ def test_simple
48
+ assert_equal('AGCTATTTTATGACTT', @seq_region.seq.slice(4,16))
49
+ end
50
+
51
+ def test_subseq
52
+ assert_equal('AGCTATTTTATGACTT', @seq_region.subseq(5,20))
53
+ end
54
+ end
55
+
56
+ #class SliceProjectFromComponentToAssembly < Test::Unit::TestCase
57
+ # # |------------------------------------------> chromosome
58
+ # # ^ ^
59
+ # # | |
60
+ # # |-----------------> scaffold
61
+ # def test_project_from_whole_component_to_assembly
62
+ # source_slice = Slice.fetch_by_region('contig','AAFC03055291')
63
+ # target_slices = source_slice.project('chromosome')
64
+ #
65
+ # # Start and stop of chr4_105 on Chr4
66
+ # assert_equal(13970982, target_slices[0].start)
67
+ # assert_equal(13982069, target_slices[0].stop)
68
+ # end
69
+ #
70
+ # # |------------------------------------------> chromosome
71
+ # # ^ ^
72
+ # # | |
73
+ # # |-----------------> scaffold
74
+ # def test_project_from_component_to_assembly_with_positions
75
+ # source_slice = Slice.fetch_by_region('scaffold','Chr4.003.105', 42, 2007)
76
+ # target_slices = source_slice.project('chromosome')
77
+ #
78
+ # # Position 42 on chr4_105 is position 96652152, position 2007 is 96654117
79
+ # assert_equal(96652152, target_slices[0].start)
80
+ # assert_equal(96654117, target_slices[0].stop)
81
+ # end
82
+ #
83
+ # # |------------------------------------------> scaffold
84
+ # # ^ ^
85
+ # # | |
86
+ # # ----------------> contig
87
+ # # /
88
+ # # |--
89
+ # def test_project_from_component_to_assembly_with_positions_and_cmp_start_not_1
90
+ # source_slice = Slice.fetch_by_region('contig', 'AAFC03020247', 42, 2007)
91
+ # target_slices = source_slice.project('scaffold')
92
+ #
93
+ # # Position 42 on AAFC03020247 is position 6570 on ChrUn.003.3522, position 2007 is 8565
94
+ # assert_equal(6570, target_slices[0].start)
95
+ # assert_equal(8535, target_slices[0].stop)
96
+ # end
97
+ #
98
+ # # |------------------------------------------> scaffold
99
+ # # ^ ^
100
+ # # | |
101
+ # # <-----------------| contig
102
+ # def test_project_from_component_to_assembly_with_strand
103
+ # source_slice_fw = Slice.fetch_by_region('contig', 'AAFC03020247')
104
+ # target_slices_fw = source_slice_fw.project('scaffold')
105
+ #
106
+ # assert_equal(1, target_slices_fw[0].strand)
107
+ #
108
+ # source_slice_rev = Slice.fetch_by_region('contig', 'AAFC03061502')
109
+ # target_slices_rev = source_slice_rev.project('scaffold')
110
+ #
111
+ # assert_equal(-1, target_slices_rev[0].strand)
112
+ # end
113
+ #end
114
+
115
+ #class SliceProjectFromComponentToAssemblyUsingTopLevel < Test::Unit::TestCase
116
+ # # |------------------------------------------> chromosome
117
+ # # ^ ^
118
+ # # | |
119
+ # # |-----------------> scaffold
120
+ # def test_project_from_whole_component_to_assembly
121
+ # source_slice = Slice.fetch_by_region('scaffold','Chr4.003.105')
122
+ # target_slices = source_slice.project('toplevel')
123
+ #
124
+ # # Start and stop of chr4_105 on Chr4
125
+ # assert_equal(96652111, target_slices[0].start)
126
+ # assert_equal(97251689, target_slices[0].stop)
127
+ # end
128
+ #
129
+ # # |------------------------------------------> chromosome
130
+ # # ^ ^
131
+ # # | |
132
+ # # |-----------------> scaffold
133
+ # def test_project_from_component_to_assembly_with_positions
134
+ # source_slice = Slice.fetch_by_region('scaffold','Chr4.003.105', 42, 2007)
135
+ # target_slices = source_slice.project('toplevel')
136
+ #
137
+ # # Position 42 on chr4_105 is position 96652152, position 2007 is 96654117
138
+ # assert_equal(96652152, target_slices[0].start)
139
+ # assert_equal(96654117, target_slices[0].stop)
140
+ # end
141
+ #end
142
+
143
+ class SliceProjectFromAssemblyToComponentForwardStrands < Test::Unit::TestCase
144
+ def setup
145
+ @source_slice_single_contig = Slice.fetch_by_region('chromosome', '20', 175000, 180000)
146
+ @target_slices_single_contig = @source_slice_single_contig.project('contig')
147
+
148
+ @source_slice_two_contigs = Slice.fetch_by_region('chromosome','20', 175000, 190000)
149
+ @target_slices_two_contigs = @source_slice_two_contigs.project('contig')
150
+
151
+ @source_slice_contigs_with_strand = Slice.fetch_by_region('chromosome', '20', 160000, 190000)
152
+ @target_slices_contigs_with_strand = @source_slice_contigs_with_strand.project('contig')
153
+
154
+ @source_slice_contigs_with_strand_ends_in_gaps = Slice.fetch_by_region('chromosome', '20', 170950, 196000)
155
+ @target_slices_contigs_with_strand_ends_in_gaps = @source_slice_contigs_with_strand_ends_in_gaps.project('contig')
156
+ end
157
+
158
+ # |-----------------> contig
159
+ # ^ ^
160
+ # | |
161
+ # |------------------------------------------> chromosome
162
+ def test_project_from_assembly_to_single_component
163
+ # Position 175000 on chr20 is position 4030 on contig, position 180000 is 9030
164
+ assert_equal('AAFC03028970', @target_slices_single_contig[0].seq_region.name)
165
+ assert_equal(4030, @target_slices_single_contig[0].start)
166
+ assert_equal(9030, @target_slices_single_contig[0].stop)
167
+ end
168
+
169
+ # |-----> |--------> contig
170
+ # ^ ^
171
+ # | |
172
+ # |------------------------------------------> chromosome
173
+ def test_project_from_assembly_to_two_components
174
+ # This chromosomal region is covered by contigs AAFC03028970, a gap and AAFC03028962
175
+ # * Position 175000 on chr 20 is position 4030 on contig AAFC03028970
176
+ # * Position 190000 on chr 20 is position 35 on contig AAFC03028962
177
+ assert_equal(3, @target_slices_two_contigs.length)
178
+ assert_equal('contig:Btau_4.0:AAFC03028970:4030:17365:1', @target_slices_two_contigs[0].display_name)
179
+ assert_equal(Gap, @target_slices_two_contigs[1].class)
180
+ assert_equal('contig:Btau_4.0:AAFC03028962:1:35:1', @target_slices_two_contigs[2].display_name)
181
+ end
182
+
183
+ # |-----> <-------| |-------> |-------> contig
184
+ # ^ ^
185
+ # | |
186
+ # |--------------------------------------------------> chromosome
187
+ def test_project_from_assembly_to_contigs_with_strand
188
+ # This chromosomal region is covered by 4 contigs and 3 gaps
189
+ # One of the contigs are on the reverse strand.
190
+ assert_equal(7, @target_slices_contigs_with_strand.length)
191
+ assert_equal('contig:Btau_4.0:AAFC03028964:90:9214:1', @target_slices_contigs_with_strand[0].display_name)
192
+ assert_equal(Gap, @target_slices_contigs_with_strand[1].class)
193
+ assert_equal('contig:Btau_4.0:AAFC03028959:1:1746:-1', @target_slices_contigs_with_strand[2].display_name)
194
+ assert_equal(Gap, @target_slices_contigs_with_strand[3].class)
195
+ assert_equal('contig:Btau_4.0:AAFC03028970:1:17365:1', @target_slices_contigs_with_strand[4].display_name)
196
+ assert_equal(Gap, @target_slices_contigs_with_strand[5].class)
197
+ assert_equal('contig:Btau_4.0:AAFC03028962:1:35:1', @target_slices_contigs_with_strand[6].display_name)
198
+ end
199
+
200
+ # <--| |-----> contig
201
+ # ^ ^
202
+ # | |
203
+ # |--------------------------------------------------> chromosome
204
+ def test_project_from_assembly_to_contigs_with_strand_and_ending_in_gaps
205
+ # This chromosomal region is covered by 2 contigs and 2 gaps at the end: GaCoGaCoGa
206
+ assert_equal(5, @target_slices_contigs_with_strand_ends_in_gaps.length)
207
+ assert_equal(Gap, @target_slices_contigs_with_strand_ends_in_gaps[0].class)
208
+ assert_equal('contig:Btau_4.0:AAFC03028970:1:17365:1', @target_slices_contigs_with_strand_ends_in_gaps[1].display_name)
209
+ assert_equal(Gap, @target_slices_contigs_with_strand_ends_in_gaps[2].class)
210
+ assert_equal('contig:Btau_4.0:AAFC03028962:1:5704:1', @target_slices_contigs_with_strand_ends_in_gaps[3].display_name)
211
+ assert_equal(Gap, @target_slices_contigs_with_strand_ends_in_gaps[4].class)
212
+ end
213
+
214
+
215
+ end
@@ -0,0 +1,58 @@
1
+ #
2
+ # = test/unit/test_project.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2007
5
+ # Jan Aerts <http://jandot.myopenid.com>
6
+ # License:: Ruby's
7
+ #
8
+ # $Id:
9
+ require 'pathname'
10
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
11
+ $:.unshift(libpath) unless $:.include?(libpath)
12
+
13
+ require 'test/unit'
14
+ require 'lib/ensembl'
15
+
16
+ include Ensembl::Core
17
+
18
+ DBConnection.connect('homo_sapiens', 50)
19
+
20
+ class AssemblyExceptions < Test::Unit::TestCase
21
+ def test_chr_x
22
+ source_slice = Slice.fetch_by_region('chromosome','X', 2709497, 2709520)
23
+ assert_equal('tagttatagattaaaagaagttaa', source_slice.seq)
24
+ end
25
+
26
+ def test_slice_overlapping_PAR_and_allosome
27
+ source_slice = Slice.fetch_by_region('chromosome','Y',2709500,2709540)
28
+ target_slices = source_slice.project('contig')
29
+ assert_equal('contig::AC006209.25.1.141759:23323:23343:-1', target_slices[0].display_name)
30
+ assert_equal('contig::AC006040.3.1.186504:57272:57291:1', target_slices[1].display_name)
31
+ end
32
+
33
+ def test_seq_slice_overlapping_PAR
34
+ seq = ''
35
+ File.open('test/unit/data/seq_y.fa').reject{|l| l=~/^>/}.each do |line|
36
+ line.chomp!
37
+ seq += line
38
+ end
39
+ seq.downcase!
40
+
41
+ source_slice = Slice.fetch_by_region('chromosome', 'Y', 2709497, 2709542)
42
+ assert_equal(seq.downcase, source_slice.seq)
43
+ end
44
+
45
+ # The MHC haplotypes for human are not implemented yet, so we raise an error
46
+ # in the code.
47
+ def test_seq_slice_overlapping_HAP
48
+ seq = ''
49
+ File.open('test/unit/data/seq_c6qbl.fa').reject{|l| l=~/^>/}.each do |line|
50
+ line.chomp!
51
+ seq += line
52
+ end
53
+ seq.downcase!
54
+
55
+ source_slice = Slice.fetch_by_region('chromosome', 'c6_QBL', 33451191, 33451690)
56
+ assert_raise(NotImplementedError) {source_slice.seq}
57
+ end
58
+ end
@@ -0,0 +1,66 @@
1
+ #
2
+ # = test/unit/test_transfers.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2007
5
+ # Jan Aerts <http://jandot.myopenid.com>
6
+ # License:: Ruby's
7
+ #
8
+ # $Id:
9
+ require 'pathname'
10
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
11
+ $:.unshift(libpath) unless $:.include?(libpath)
12
+
13
+ require 'test/unit'
14
+
15
+ require 'lib/ensembl'
16
+
17
+ include Ensembl::Core
18
+
19
+ DBConnection.connect('homo_sapiens', 50)
20
+
21
+ # Let's see if we can 'find' things
22
+ class SimpleRecordsTest < Test::Unit::TestCase
23
+ def setup
24
+ @sry_gene = Gene.find(34927)
25
+ @sry_transcript = Transcript.find(60290)
26
+ end
27
+
28
+ def test_coord_system
29
+ coord_system = CoordSystem.find(17)
30
+ assert_equal('chromosome', coord_system.name)
31
+ end
32
+
33
+ def test_coord_system_toplevel
34
+ coord_system = CoordSystem.find(17).find_toplevel
35
+ assert_equal('chromosome', coord_system.name)
36
+ end
37
+
38
+ def test_coord_system_seqlevel
39
+ coord_system = CoordSystem.find(17).find_seqlevel
40
+ assert_equal('contig', coord_system.name)
41
+ end
42
+
43
+ def test_display_label
44
+ assert_equal('SRY', @sry_gene.display_label)
45
+ assert_equal('SRY', @sry_gene.display_name)
46
+ assert_equal('SRY', @sry_gene.label)
47
+ assert_equal('SRY', @sry_gene.name)
48
+
49
+ assert_equal('SRY-001', @sry_transcript.display_label)
50
+ assert_equal('SRY-001', @sry_transcript.display_name)
51
+ assert_equal('SRY-001', @sry_transcript.label)
52
+ assert_equal('SRY-001', @sry_transcript.name)
53
+ end
54
+ end
55
+
56
+ class RelationshipsTest < Test::Unit::TestCase
57
+ def test_go_terms
58
+ gene = Gene.find(34928)
59
+ assert_equal(["GO:0005576", "GO:0042742"], gene.go_terms.sort)
60
+ end
61
+
62
+ def test_hgnc
63
+ gene = Gene.find_by_stable_id('ENSG00000169740')
64
+ assert_equal('ZNF32', gene.hgnc)
65
+ end
66
+ end