ruby-ensembl-api 0.9.6

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 (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,54 @@
1
+ #
2
+ # = test/unit/release_53/core/test_slice.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 setup
22
+ DBConnection.connect('homo_sapiens', 56)
23
+ end
24
+
25
+ def teardown
26
+ DBConnection.remove_connection
27
+ end
28
+
29
+ def test_forward
30
+ seq1 = "GGCCAAGCTGGTCTCAAACTCCTGACCTCGTGATCCGCCCACCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGGGCCACTGGGTCCGGCCGCATGTCTGGCTAATTTTGTAGAGACAGGGCCTCCCTATACTGCCCAGGCTGGTTTCAAGCTCCTGGCTTCAAGGGGTCCTCCTGCCTTGGCCTCCCGAAGTGCTGG"
31
+ s = Slice.fetch_by_region("chromosome","13",31786617,31786816,1)
32
+ assert_equal(seq1,s.seq.upcase)
33
+ assert_equal("13",s.seq_region.name)
34
+ assert_equal(31786617,s.start)
35
+ assert_equal(31786816,s.stop)
36
+ end
37
+
38
+ def test_reverse
39
+ seq2 = "CCAGCACTTCGGGAGGCCAAGGCAGGAGGACCCCTTGAAGCCAGGAGCTTGAAACCAGCCTGGGCAGTATAGGGAGGCCCTGTCTCTACAAAATTAGCCAGACATGCGGCCGGACCCAGTGGCCCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGTGGGCGGATCACGAGGTCAGGAGTTTGAGACCAGCTTGGCC"
40
+ s_rev = Slice.fetch_by_region("chromosome","13",31786617,31786816,-1)
41
+ assert_equal(seq2,s_rev.seq.upcase)
42
+ assert_equal("13",s_rev.seq_region.name)
43
+ assert_equal(31786617,s_rev.start)
44
+ assert_equal(31786816,s_rev.stop)
45
+ end
46
+
47
+ def test_slice_genes
48
+ slice = Slice.fetch_by_region("chromosome","13",31773073,31909413,1)
49
+ genes = slice.genes
50
+ assert_equal("ENSG00000229427",genes[1].stable_id)
51
+ assert_equal("ENSG00000187676",genes[0].stable_id)
52
+ end
53
+
54
+ end
@@ -0,0 +1,63 @@
1
+ #
2
+ # = test/unit/release_53/core/test_transform.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Jan Aerts <http://jandot.myopenid.com>
6
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
7
+ # License:: Ruby's
8
+ #
9
+ # $Id:
10
+
11
+ require 'pathname'
12
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
13
+ $:.unshift(libpath) unless $:.include?(libpath)
14
+
15
+ require 'test/unit'
16
+
17
+ require 'lib/ensembl'
18
+
19
+ include Ensembl::Core
20
+
21
+
22
+ # For all tests, the source (i.e. the seq_region that the feature is annotated
23
+ # on initially) remains forward.
24
+ #
25
+ # Same coordinate system: test names refer to direction of gene vs chromosome
26
+ class TransformOntoSameCoordinateSystem < Test::Unit::TestCase
27
+
28
+ def setup
29
+ DBConnection.connect('homo_sapiens', 56)
30
+ end
31
+
32
+ def teardown
33
+ DBConnection.remove_connection
34
+ end
35
+
36
+ def test_rev
37
+ source_gene = Gene.find_by_stable_id("ENSG00000165322")
38
+ target_gene = source_gene.transform('chromosome')
39
+
40
+ assert_equal('10', source_gene.seq_region.name)
41
+ assert_equal(32094365, source_gene.seq_region_start)
42
+ assert_equal(32217770, source_gene.seq_region_end)
43
+ assert_equal(-1, source_gene.seq_region_strand)
44
+ assert_equal('10', target_gene.seq_region.name)
45
+ assert_equal(32094365, target_gene.seq_region_start)
46
+ assert_equal(32217770, target_gene.seq_region_end)
47
+ assert_equal(-1, target_gene.seq_region_strand)
48
+ end
49
+
50
+ def test_fw
51
+ source_gene = Gene.find_by_stable_id("ENSG00000133401")
52
+ target_gene = source_gene.transform('chromosome')
53
+ assert_equal('5', source_gene.seq_region.name)
54
+ assert_equal(31639517, source_gene.seq_region_start)
55
+ assert_equal(32111037, source_gene.seq_region_end)
56
+ assert_equal(1, source_gene.seq_region_strand)
57
+ assert_equal('5', target_gene.seq_region.name)
58
+ assert_equal(31639517, target_gene.seq_region_start)
59
+ assert_equal(32111037, target_gene.seq_region_end)
60
+ assert_equal(1, target_gene.seq_region_strand)
61
+ end
62
+
63
+ end
@@ -0,0 +1,142 @@
1
+ #
2
+ # = test/unit/release_50/variation/test_activerecord.rb - Unit test for Ensembl::Variation
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
6
+ #
7
+ # License:: Ruby's
8
+ #
9
+ # $Id:
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::Variation
18
+
19
+ class ActiveRecordVariation < Test::Unit::TestCase
20
+
21
+ def setup
22
+ DBConnection.connect('homo_sapiens',56)
23
+ end
24
+
25
+ def teardown
26
+ DBConnection.remove_connection
27
+ end
28
+
29
+ def test_allele
30
+ allele = Allele.find(1)
31
+ assert_equal('T', allele.allele)
32
+ assert_equal(0.04, allele.frequency)
33
+ end
34
+
35
+ def test_sample
36
+ n = Sample.count(:all)
37
+ assert_equal(17822,n)
38
+ individual = Sample.find(12468).individual
39
+ assert_equal('Male',individual.gender)
40
+ i = Sample.find(13131).individual_genotype_multiple_bp
41
+ assert_equal(3,i.size)
42
+ assert_equal(17510,i[0].variation_id)
43
+ syn = Sample.find(21).sample_synonym
44
+ assert_equal('477',syn.name)
45
+ end
46
+
47
+ def test_individual
48
+ n = Individual.count(:all)
49
+ assert_equal(10132,n)
50
+ end
51
+
52
+ def test_individual_genotype_multiple_bp
53
+ n = IndividualGenotypeMultipleBp.count(:all)
54
+ assert_equal(712267,n)
55
+ end
56
+
57
+ def test_compressed_genotype_single_bp
58
+ n = CompressedGenotypeSingleBp.count(:all)
59
+ assert_equal(12736658,n)
60
+ end
61
+
62
+ def test_read_coverage
63
+ n = ReadCoverage.count(:all)
64
+ assert_equal(6521608,n)
65
+ end
66
+
67
+ def test_population
68
+ n = Population.count(:all)
69
+ assert_equal(7690,n)
70
+ end
71
+
72
+ def test_variation
73
+ n = Variation.count(:all)
74
+ assert_equal(18909925,n)
75
+
76
+ syn = Variation.find(712422).variation_synonyms
77
+ assert_equal(6,syn.size)
78
+ assert_equal('SNP_A-1507972',syn[0].name)
79
+
80
+ flanking = Variation.find(10000).flanking_sequence
81
+ assert_equal(3705521,flanking.up_seq_region_start)
82
+ assert_equal(3705770,flanking.up_seq_region_end)
83
+ assert_equal(3705772,flanking.down_seq_region_start)
84
+ assert_equal(3706021,flanking.down_seq_region_end)
85
+ assert_equal(27509,flanking.seq_region_id)
86
+ assert_equal(1,flanking.seq_region_strand)
87
+
88
+ ag = Variation.find(10000).allele_groups
89
+ assert_nil ag[0]
90
+
91
+ pg = Variation.find(10000).population_genotypes
92
+ assert_equal(12,pg.size)
93
+ assert_equal('C',pg[0].allele_1)
94
+ assert_equal('C',pg[0].allele_2)
95
+ assert_equal(1,pg[0].frequency)
96
+
97
+ a = Variation.find(115).alleles
98
+ assert_equal(8,a.size)
99
+ assert_equal('C',a[0].allele)
100
+ assert_equal(0.733,a[0].frequency)
101
+
102
+ vf = Variation.find(5345540).variation_features[0]
103
+ assert_equal('T/A',vf.allele_string)
104
+ assert_equal('rs8189747',vf.variation_name)
105
+ assert_equal(27526,vf.seq_region_id)
106
+ assert_equal(24606076,vf.seq_region_start)
107
+ assert_equal(24606076,vf.seq_region_end)
108
+ assert_equal(1,vf.seq_region_strand)
109
+
110
+ vg = Variation.find(1352735).variation_groups
111
+ assert_nil vg[0]
112
+
113
+ i = Variation.find(1533176).individual_genotype_multiple_bps
114
+ assert_equal(42,i.size)
115
+ end
116
+
117
+ def test_variation_feature
118
+ vf_sample = VariationFeature.find(38461).samples
119
+ assert_equal(8,vf_sample.size)
120
+ assert_equal('PERLEGEN:AFD_EUR_PANEL',vf_sample[0].name)
121
+ end
122
+
123
+ def test_variation_transcript
124
+ t = Variation.find_by_name('rs7671997').variation_features[0].transcript_variations
125
+ assert_equal(2,t.size)
126
+ transcript = t[0].transcript
127
+ assert_equal('protein_coding',transcript.biotype)
128
+ assert_equal(2230096,transcript.seq_region_start)
129
+ assert_equal(2243860,transcript.seq_region_end)
130
+ assert_equal('ENST00000243706',transcript.stable_id)
131
+ e = transcript.exons
132
+ assert_equal('CTCCCGTGAGGCAGTGCGAGGCGCGCGGGGCACGGAGGGCGGTGGCGGCGGGCTCCTGCGAGAAGCAAGCGGAACTTCCTGAG',e[0].seq.upcase)
133
+ end
134
+
135
+ def test_source
136
+ syn = Source.find(1).sample_synonyms
137
+ assert_equal(17806,syn.size)
138
+
139
+ ag = Source.find(1).allele_groups
140
+ assert_nil ag[0]
141
+ end
142
+ end
@@ -0,0 +1,68 @@
1
+ #
2
+ # = test/unit/release_50/variation/test_variation.tb - Unit test for Ensembl::Variation
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
6
+ # License:: Ruby's
7
+ #
8
+ require 'pathname'
9
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
10
+ $:.unshift(libpath) unless $:.include?(libpath)
11
+
12
+ require 'test/unit'
13
+ require 'lib/ensembl'
14
+
15
+ include Ensembl::Variation
16
+
17
+ class TestVariation < Test::Unit::TestCase
18
+
19
+ def setup
20
+ DBConnection.connect('homo_sapiens',56)
21
+ end
22
+
23
+ def teardown
24
+ DBConnection.remove_connection
25
+ end
26
+
27
+ def test_fetch_region
28
+ vf = Variation.find_by_name('rs2076175').variation_features[0]
29
+ slice = vf.fetch_region
30
+ assert_equal(29708370,slice.start)
31
+ assert_equal(29718370,slice.stop)
32
+ assert_equal('6',slice.seq_region.name)
33
+ slice = vf.fetch_region(30,30)
34
+ assert_equal(29713340,slice.start)
35
+ assert_equal(29713400,slice.stop)
36
+ assert_equal('CTCCCAGGACTGCTTCTGCCCACTGTCCCCGGGGCCCTGCCCTGCCTTTCTGCCTGTCACA',slice.seq.upcase)
37
+ end
38
+
39
+ def test_flanking_seq
40
+ vf = Variation.find_by_name('rs2076175').variation_features[0]
41
+ up,down = vf.flanking_seq
42
+ assert_equal(29713371,up.start)
43
+ assert_equal(29713770,up.stop)
44
+ assert_equal(29712970,down.start)
45
+ assert_equal(29713369,down.stop)
46
+ assert_equal('GGGCCCTGCCCTGCCTTTCTGCCTGTCACAGAGCAGGAAGAGCTGACCATCCAGATGTCCCTCAGCGAGAAACCCTGACTGCACAGATCCATCCTGGGACAGCACCGTGAGGTTGTAACAAAGACTGTGGGGCTCTGGGGAAGAGGAAATCACAGATGAAACTTCTTCCTGGAAGTAACTTCACATCAATGTTTAACACACAGGTCTGCTGTCCCGACCTTCCTGAGGAGGCAGGAAATGCACACGGGCAAAGGGACAAGAATGAGGATTTCAGACGCAAGGAAAACTGGGAAGGTGGGAGGATAGAGGAGGGGACTGAGGAACAGAAGAAGGGGGAATGGGGATGGCAAACTTGTAGGCCAGGTGCCAGGGCAGGGCAGCCACAGGCCCCCTCAGGATA',
47
+ up.seq.upcase)
48
+ assert_equal('TCCTGATCTCACAAACCCTAATCTCCTGGAGGGAATGCAAGGCTGCCTGCCCCTACCCAGCAGTGACTTCTCCATTCCAGTCCAAGTGAGGAACTCGGACCAGGAAGGACCCCTCCCTGGCCCTCTTCCATCCCTCCCTGTGTGGGCTGAGCCCCGCTGAGCACCATTCCTCACCCCTACTCACAGCCAAATCCAGTGGGAAGAGACAGGTCCTGCTCTCTGCCCCCAACTCTCCTGGAAAAGGCCTCTCCCATTACTCTTGCCCACTGCCCACTCTCACCTCCTTTCTGGCCCTTGATATGAGCCAGGGTCCTCCTGAGCTCCTGCCCATTCTCTGTCAAGTCTTCAGTCTCTGTGTCCCAGGTCTCAGCTCCCAGGACTGCTTCTGCCCACTGTCCCC',
49
+ down.seq.upcase)
50
+
51
+ end
52
+
53
+ def test_slice_variation
54
+ slice = Ensembl::Core::Slice.fetch_by_region('chromosome',1,100834,101331)
55
+ variations = slice.get_variation_features
56
+ assert_equal(6,variations.size)
57
+
58
+ assert_equal('rs3912703',variations[0].variation_name)
59
+ assert_equal('ENSSNP5435782',variations[1].variation_name)
60
+ assert_equal('ENSSNP3491774',variations[2].variation_name)
61
+ assert_equal('ENSSNP283782',variations[3].variation_name)
62
+ assert_equal('ENSSNP4578340',variations[4].variation_name)
63
+
64
+ end
65
+
66
+
67
+
68
+ end
@@ -0,0 +1,66 @@
1
+ #
2
+ # = test/unit/test_connection.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Jan Aerts <http://jandot.myopenid.com>
6
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
7
+ # License:: Ruby's
8
+ #
9
+ # $Id:
10
+
11
+ require 'pathname'
12
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 2, 'lib')).cleanpath.to_s
13
+ $:.unshift(libpath) unless $:.include?(libpath)
14
+
15
+ require 'test/unit'
16
+
17
+ require 'ensembl'
18
+
19
+
20
+ class TestConnection < Test::Unit::TestCase
21
+
22
+ def test_remote_core_connection
23
+ assert_nothing_raised do
24
+ Ensembl::Core::DBConnection.connect('homo_sapiens',56)
25
+ end
26
+ end
27
+
28
+ # This is to check if the overwrite of the default parameters is possible,
29
+ # so you can specify an Ensembl database on a host that is different from the official Ensembl website.
30
+
31
+ def test_local_core_connection
32
+
33
+ # Change username, password, host and port in order to test the connection with a different Ensembl db server
34
+ assert_nothing_raised do
35
+ Ensembl::Core::DBConnection.connect('homo_sapiens',56,:username => "anonymous",:host => "ensembldb.ensembl.org", :port => 5306)
36
+ end
37
+ end
38
+
39
+ def test_remote_variation_connection
40
+ assert_nothing_raised do
41
+ Ensembl::Variation::DBConnection.connect('homo_sapiens',56)
42
+ end
43
+ end
44
+
45
+ def test_local_variation_connection
46
+
47
+ # Change username, password, host and port in order to test the connection with a different Ensembl db server
48
+ assert_nothing_raised do
49
+ Ensembl::Variation::DBConnection.connect('bos_taurus',56,:username => "anonymous",:host => "ensembldb.ensembl.org", :port => 5306)
50
+ end
51
+ end
52
+
53
+ def test_connection_ensembl_genomes
54
+ assert_nothing_raised do
55
+ Ensembl::Core::DBConnection.ensemblgenomes_connect('Staphylococcus_aureus_MRSA252',3)
56
+ end
57
+ end
58
+
59
+ def test_manual_connection_ensembl_genomes
60
+ assert_nothing_raised do
61
+ Ensembl::Core::DBConnection.connect("bacillus_collection",3,:host => "mysql.ebi.ac.uk", :port => 4157)
62
+ end
63
+ end
64
+
65
+ end
66
+
@@ -0,0 +1,136 @@
1
+ #
2
+ # = test/unit/test_releases.rb - Unit test for Ensembl::Core
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Jan Aerts <http://jandot.myopenid.com>
6
+ # Francesco Strozzi <francesco.strozzi@gmail.com>
7
+ # License:: Ruby's
8
+ #
9
+ # $Id:
10
+
11
+ require 'pathname'
12
+ libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 3, 'lib')).cleanpath.to_s
13
+ $:.unshift(libpath) unless $:.include?(libpath)
14
+
15
+ require 'test/unit'
16
+
17
+ require 'lib/ensembl'
18
+
19
+ include Ensembl::Core
20
+
21
+ class TestRelease53 < Test::Unit::TestCase
22
+
23
+ def teardown
24
+ DBConnection.remove_connection
25
+ end
26
+
27
+ def test_gene_stable_id_human
28
+ DBConnection.connect('homo_sapiens', 53)
29
+ @slice = Slice.fetch_by_region('chromosome','1',1000,100000)
30
+ assert_equal(["ENSG00000146556","ENSG00000177693","ENSG00000197490","ENSG00000205292","ENSG00000219789","ENSG00000221311","ENSG00000222003","ENSG00000222027"], @slice.genes.collect{|g| g.stable_id}.sort)
31
+ end
32
+ end
33
+
34
+ class TestRelease50 < Test::Unit::TestCase
35
+
36
+ def teardown
37
+ DBConnection.remove_connection
38
+ end
39
+
40
+ def test_gene_stable_id
41
+ DBConnection.connect('homo_sapiens', 50)
42
+ @slice = Slice.fetch_by_region('chromosome','1',1000,100000)
43
+ assert_equal(["ENSG00000146556", "ENSG00000177693", "ENSG00000197194", "ENSG00000197490", "ENSG00000205292", "ENSG00000219789", "ENSG00000221311"], @slice.genes.collect{|g| g.stable_id}.sort)
44
+ end
45
+ end
46
+
47
+ class TestRelease49 < Test::Unit::TestCase
48
+
49
+ def teardown
50
+ DBConnection.remove_connection
51
+ end
52
+
53
+ def test_slice_and_genes_mouse
54
+ DBConnection.connect('mus_musculus',49)
55
+
56
+ slice = Slice.fetch_by_region('chromosome',"19",52571924,52572023)
57
+ assert_equal("AAGGTTGTATTCTAGTTTGCTCTCTGTTATTGTGACAAAGACAGGACCAAAGAAACTTGAGTAGGAAATGGTTGATAAAATCTTACAAGTTAGAAGGCAG",slice.seq.upcase)
58
+
59
+ gene = Gene.find_by_stable_id("ENSMUSG00000017167")
60
+ assert_equal(101037431, gene.start)
61
+ assert_equal(101052034, gene.stop)
62
+ assert_equal(1,gene.transcripts.size)
63
+ assert_equal("ENSMUST00000103109",gene.transcripts[0].stable_id)
64
+ end
65
+
66
+ end
67
+
68
+ class TestRelease47 < Test::Unit::TestCase
69
+
70
+ def teardown
71
+ DBConnection.remove_connection
72
+ end
73
+
74
+ def test_slice_and_genes_mouse
75
+ DBConnection.connect('mus_musculus',47)
76
+
77
+ slice = Slice.fetch_by_region('chromosome',"5",123840876,123912619)
78
+ genes = slice.genes
79
+ assert_equal("ENSMUSG00000038342",genes[0].stable_id)
80
+ slice = Slice.fetch_by_region('chromosome',"5",123840876,123840975)
81
+ assert_equal("TCTCAGTTCAGGTTCTATGGGGGGGAGGGGAGGGAATGAAAAGGATGTTAACAATCACCATCACCAGGGGGGACCAATTTGAAGATCTGATCGCCGGTGT",slice.seq.upcase)
82
+
83
+ gene = Gene.find_by_stable_id("ENSMUSG00000017167")
84
+ assert_equal(101037431, gene.start)
85
+ assert_equal(101052034, gene.stop)
86
+ assert_equal(1,gene.transcripts.size)
87
+ assert_equal("ENSMUST00000103109",gene.transcripts[0].stable_id)
88
+ end
89
+
90
+ end
91
+
92
+ class TestRelease45 < Test::Unit::TestCase
93
+
94
+ def teardown
95
+ DBConnection.remove_connection
96
+ end
97
+
98
+ def test_gene_stable_id_human
99
+ DBConnection.connect('homo_sapiens', 45)
100
+ @slice = Slice.fetch_by_region('chromosome','1',1000,100000)
101
+ assert_equal(["ENSG00000146556", "ENSG00000177693", "ENSG00000197194", "ENSG00000197490", "ENSG00000205292"], @slice.genes.collect{|g| g.stable_id}.sort)
102
+ end
103
+
104
+ def test_slice_and_genes_mouse
105
+ DBConnection.connect('mus_musculus',45)
106
+
107
+ slice = Slice.fetch_by_region('chromosome',"11",101037431,101037530)
108
+ assert_equal("ACTCTATCCAACTGAAACTGGAGATTAGTAACAGGGAAAAACAAACTCAACTGACAGCTGCTCCCAGTACAGTTCTTATGGTACAGGGAGCGTGGGAGTG",slice.seq.upcase)
109
+
110
+ gene = Gene.find_by_stable_id("ENSMUSG00000017167")
111
+ assert_equal(100992131,gene.start)
112
+ assert_equal(101006814,gene.stop)
113
+ assert_equal("11",gene.seq_region.name)
114
+ assert_equal(2,gene.transcripts.size)
115
+ end
116
+
117
+ end
118
+
119
+ class TestRelease37 < Test::Unit::TestCase
120
+
121
+ def teardown
122
+ DBConnection.remove_connection
123
+ end
124
+
125
+ def test_gene_stable_id_human
126
+ DBConnection.connect('homo_sapiens', 37)
127
+ @slice = Slice.fetch_by_region('chromosome','1',1000,100000)
128
+ assert_equal(["ENSG00000146556", "ENSG00000177693", "ENSG00000197194", "ENSG00000197490"], @slice.genes.collect{|g| g.stable_id}.sort)
129
+ end
130
+ end
131
+
132
+
133
+
134
+
135
+
136
+