ruby-ensembl-api 0.9.6 → 1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/TUTORIAL.rdoc +1 -1
- data/bin/variation_effect_predictor +106 -0
- data/lib/ensembl.rb +2 -2
- data/lib/ensembl/core/activerecord.rb +119 -225
- data/lib/ensembl/core/collection.rb +14 -10
- data/lib/ensembl/core/project.rb +6 -8
- data/lib/ensembl/core/slice.rb +87 -123
- data/lib/ensembl/core/transcript.rb +49 -65
- data/lib/ensembl/core/transform.rb +6 -8
- data/lib/ensembl/db_connection.rb +56 -72
- data/lib/ensembl/variation/activerecord.rb +138 -8
- data/lib/ensembl/variation/variation.rb +284 -46
- data/samples/ensembl_genomes_example.rb +60 -0
- data/samples/examples_perl_tutorial.rb +125 -0
- data/samples/small_example_ruby_api.rb +34 -0
- data/samples/variation_example.rb +67 -0
- data/test/unit/{release_56 → release_60}/core/test_gene.rb +6 -6
- data/test/unit/release_60/core/test_project_human.rb +38 -0
- data/test/unit/{release_56 → release_60}/core/test_slice.rb +1 -8
- data/test/unit/release_60/core/test_transcript.rb +126 -0
- data/test/unit/{release_53 → release_60}/core/test_transform.rb +21 -21
- data/test/unit/release_60/variation/test_activerecord.rb +213 -0
- data/test/unit/release_60/variation/test_consequence.rb +158 -0
- data/test/unit/{release_56 → release_60}/variation/test_variation.rb +18 -17
- data/test/unit/test_connection.rb +2 -2
- data/test/unit/test_releases.rb +8 -8
- metadata +27 -43
- data/test/unit/data/seq_c6qbl.fa +0 -10
- data/test/unit/data/seq_cso19_coding.fa +0 -16
- data/test/unit/data/seq_cso19_transcript.fa +0 -28
- data/test/unit/data/seq_drd3_gene.fa +0 -838
- data/test/unit/data/seq_drd3_transcript.fa +0 -22
- data/test/unit/data/seq_drd4_transcript.fa +0 -24
- data/test/unit/data/seq_forward_composite.fa +0 -1669
- data/test/unit/data/seq_par_boundary.fa +0 -169
- data/test/unit/data/seq_rnd3_transcript.fa +0 -47
- data/test/unit/data/seq_ub2r1_coding.fa +0 -13
- data/test/unit/data/seq_ub2r1_gene.fa +0 -174
- data/test/unit/data/seq_ub2r1_transcript.fa +0 -26
- data/test/unit/data/seq_y.fa +0 -2
- data/test/unit/ensembl_genomes/test_collection.rb +0 -51
- data/test/unit/ensembl_genomes/test_gene.rb +0 -52
- data/test/unit/ensembl_genomes/test_slice.rb +0 -71
- data/test/unit/ensembl_genomes/test_variation.rb +0 -17
- data/test/unit/release_50/core/test_project.rb +0 -215
- data/test/unit/release_50/core/test_project_human.rb +0 -58
- data/test/unit/release_50/core/test_relationships.rb +0 -66
- data/test/unit/release_50/core/test_sequence.rb +0 -175
- data/test/unit/release_50/core/test_slice.rb +0 -121
- data/test/unit/release_50/core/test_transcript.rb +0 -108
- data/test/unit/release_50/core/test_transform.rb +0 -223
- data/test/unit/release_50/variation/test_activerecord.rb +0 -143
- data/test/unit/release_50/variation/test_variation.rb +0 -84
- data/test/unit/release_53/core/test_gene.rb +0 -66
- data/test/unit/release_53/core/test_project.rb +0 -96
- data/test/unit/release_53/core/test_project_human.rb +0 -65
- data/test/unit/release_53/core/test_slice.rb +0 -47
- data/test/unit/release_53/variation/test_activerecord.rb +0 -145
- data/test/unit/release_53/variation/test_variation.rb +0 -71
- data/test/unit/release_56/core/test_project.rb +0 -96
- data/test/unit/release_56/core/test_transform.rb +0 -63
- data/test/unit/release_56/variation/test_activerecord.rb +0 -142
@@ -1,143 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = test/unit/release_50/variation/test_activerecord.rb - Unit test for Ensembl::Variation
|
3
|
-
#
|
4
|
-
# Copyright:: Copyright (C) 2008 Francesco Strozzi <francesco.strozzi@gmail.com>
|
5
|
-
#
|
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::Variation
|
17
|
-
DBConnection.connect('homo_sapiens',50)
|
18
|
-
|
19
|
-
class ActiveRecordVariation < Test::Unit::TestCase
|
20
|
-
|
21
|
-
def test_allele
|
22
|
-
allele = Allele.find(1)
|
23
|
-
assert_equal('T', allele.allele)
|
24
|
-
assert_equal(0.04, allele.frequency)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_allele_group
|
28
|
-
n = AlleleGroup.count(:all)
|
29
|
-
assert_equal(0, n)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_sample
|
33
|
-
n = Sample.count(:all)
|
34
|
-
assert_equal(12385,n)
|
35
|
-
individual = Sample.find(5499).individual
|
36
|
-
assert_equal('Male',individual.gender)
|
37
|
-
i = Sample.find(6201).individual_genotype_multiple_bp
|
38
|
-
assert_equal(1256,i.size)
|
39
|
-
assert_equal(548383,i[0].variation_id)
|
40
|
-
syn = Sample.find(17).sample_synonym
|
41
|
-
assert_equal('5',syn.name)
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_individual
|
45
|
-
n = Individual.count(:all)
|
46
|
-
assert_equal(7769,n)
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_individual_genotype_multiple_bp
|
50
|
-
n = IndividualGenotypeMultipleBp.count(:all)
|
51
|
-
assert_equal(835033,n)
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_compressed_genotype_single_bp
|
55
|
-
n = CompressedGenotypeSingleBp.count(:all)
|
56
|
-
assert_equal(12473477,n)
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_read_coverage
|
60
|
-
n = ReadCoverage.count(:all)
|
61
|
-
assert_equal(9328349,n)
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_population
|
65
|
-
n = Population.count(:all)
|
66
|
-
assert_equal(4616,n)
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_variation
|
70
|
-
n = Variation.count(:all)
|
71
|
-
assert_equal(13383219,n)
|
72
|
-
|
73
|
-
syn = Variation.find(27).variation_synonyms
|
74
|
-
assert_equal('SNP001745772',syn[0].name)
|
75
|
-
|
76
|
-
flanking = Variation.find(130).flanking_sequence
|
77
|
-
assert_equal(24910767,flanking.up_seq_region_start)
|
78
|
-
assert_equal(24911281,flanking.up_seq_region_end)
|
79
|
-
assert_equal(24911283,flanking.down_seq_region_start)
|
80
|
-
assert_equal(24911367,flanking.down_seq_region_end)
|
81
|
-
assert_equal(226030,flanking.seq_region_id)
|
82
|
-
assert_equal(1,flanking.seq_region_strand)
|
83
|
-
|
84
|
-
ag = Variation.find(130).allele_groups
|
85
|
-
assert_nil ag[0]
|
86
|
-
|
87
|
-
pg = Variation.find(1125).population_genotypes
|
88
|
-
assert_equal(26,pg.size)
|
89
|
-
assert_equal('A',pg[0].allele_1)
|
90
|
-
assert_equal('A',pg[0].allele_2)
|
91
|
-
assert_equal(0.2,pg[0].frequency)
|
92
|
-
|
93
|
-
a = Variation.find(115).alleles
|
94
|
-
assert_equal(8,a.size)
|
95
|
-
assert_equal('C',a[0].allele)
|
96
|
-
assert_equal(0.733,a[0].frequency)
|
97
|
-
|
98
|
-
vf = Variation.find(5345540).variation_features[0]
|
99
|
-
assert_equal('G/A',vf.allele_string)
|
100
|
-
assert_equal('rs8175337',vf.variation_name)
|
101
|
-
assert_equal(226028,vf.seq_region_id)
|
102
|
-
assert_equal(10052344,vf.seq_region_start)
|
103
|
-
assert_equal(10052344,vf.seq_region_end)
|
104
|
-
assert_equal(1,vf.seq_region_strand)
|
105
|
-
|
106
|
-
vg = Variation.find(1352735).variation_groups
|
107
|
-
assert_nil vg[0]
|
108
|
-
|
109
|
-
i = Variation.find(1352735).individual_genotype_multiple_bps
|
110
|
-
assert_equal(31,i.size)
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_variation_feature
|
114
|
-
vf_sample = VariationFeature.find(4571).samples
|
115
|
-
assert_equal(5,vf_sample.size)
|
116
|
-
assert_equal('PERLEGEN:AFD_EUR_PANEL',vf_sample[0].name)
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_variation_transcript
|
120
|
-
t = Variation.find_by_name('rs35303525').variation_features[0].transcript_variations
|
121
|
-
assert_equal(5,t.size)
|
122
|
-
assert_equal(69644,t[0].transcript_id)
|
123
|
-
transcript = t[0].transcript
|
124
|
-
assert_equal('protein_coding',transcript.biotype)
|
125
|
-
assert_equal(2050017,transcript.seq_region_start)
|
126
|
-
assert_equal(2148813,transcript.seq_region_end)
|
127
|
-
assert_equal('ENST00000382857',transcript.stable_id)
|
128
|
-
e = transcript.exons
|
129
|
-
assert_equal('ATGGCTGTGGGGAGCCAG',e[0].seq.upcase)
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_source
|
133
|
-
syn = Source.find(1).sample_synonyms
|
134
|
-
assert_equal('2',syn[0].name)
|
135
|
-
|
136
|
-
ag = Source.find(1).allele_groups
|
137
|
-
assert_nil ag[0]
|
138
|
-
|
139
|
-
v = Source.find(6).variations
|
140
|
-
assert_equal(19,v.size)
|
141
|
-
assert_equal('SNP_A-8319323',v[0].name)
|
142
|
-
end
|
143
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = test/unit/release_50/variation/test_variation.tb - Unit test for Ensembl::Variation
|
3
|
-
#
|
4
|
-
# Copyright:: Copyright (C) 2008 Francesco Strozzi <francesco.strozzi@gmail.com>
|
5
|
-
#
|
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
|
-
DBConnection.connect('homo_sapiens',50)
|
18
|
-
|
19
|
-
class TestVariation < Test::Unit::TestCase
|
20
|
-
|
21
|
-
def test_fetch_region
|
22
|
-
vf = Variation.find_by_name('rs2076175').variation_features[0]
|
23
|
-
slice = vf.fetch_region
|
24
|
-
assert_equal(29816349,slice.start)
|
25
|
-
assert_equal(29826349,slice.stop)
|
26
|
-
assert_equal('6',slice.seq_region.name)
|
27
|
-
slice = vf.fetch_region(30,30)
|
28
|
-
assert_equal(29821319,slice.start)
|
29
|
-
assert_equal(29821379,slice.stop)
|
30
|
-
assert_equal('CTCCCAGGACTGCTTCTGCCCACTGTCCCCGGGGCCCTGCCCTGCCTTTCTGCCTGTCACA',slice.seq.upcase)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_flanking_seq
|
34
|
-
vf = Variation.find_by_name('rs2076175').variation_features[0]
|
35
|
-
up,down = vf.flanking_seq
|
36
|
-
assert_equal(29820949,up.start)
|
37
|
-
assert_equal(29821348,up.stop)
|
38
|
-
assert_equal(29821350,down.start)
|
39
|
-
assert_equal(29821749,down.stop)
|
40
|
-
assert_equal('TCCTGATCTCACAAACCCTAATCTCCTGGAGGGAATGCAAGGCTGCCTGCCCCTACCCAGCAGTGACTTCTCCATTCCAGTCCAAGTGAGGAACTCGGACCAGGAAGGACCCCTCCCTGGCCCTCTTCCATCCCTCCCTGTGTGGGCTGAGCCCCGCTGAGCACCATTCCTCACCCCTACTCACAGCCAAATCCAGTGGGAAGAGACAGGTCCTGCTCTCTGCCCCCAACTCTCCTGGAAAAGGCCTCTCCCATTACTCTTGCCCACTGCCCACTCTCACCTCCTTTCTGGCCCTTGATATGAGCCAGGGTCCTCCTGAGCTCCTGCCCATTCTCTGTCAAGTCTTCAGTCTCTGTGTCCCAGGTCTCAGCTCCCAGGACTGCTTCTGCCCACTGTCCCC',
|
41
|
-
up.seq.upcase)
|
42
|
-
assert_equal('GGGCCCTGCCCTGCCTTTCTGCCTGTCACAGAGCAGGAAGAGCTGACCATCCAGATGTCCCTCAGCGAGAAACCCTGACTGCACAGATCCATCCTGGGACAGCACCGTGAGGTTGTAACAAAGACTGTGGGGCTCTGGGGAAGAGGAAATCACAGATGAAACTTCTTCCTGGAAGTAACTTCACATCAATGTTTAACACACAGGTCTGCTGTCCCGACCTTCCTGAGGAGGCAGGAAATGCACACGGGCAAAGGGACAAGAATGAGGATTTCAGACGCAAGGAAAACTGGGAAGGTGGGAGGATAGAGGAGGGGACTGAGGAACAGAAGAAGGGGGAATGGGGATGGCAAACTTGTAGGCCAGGTGCCAGGGCAGGGCAGCCACAGGCCCCCTCAGGATA',
|
43
|
-
down.seq.upcase)
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_slice_variation
|
48
|
-
slice = Ensembl::Core::Slice.fetch_by_region('chromosome',1,50000,51000)
|
49
|
-
variations = slice.get_variation_features
|
50
|
-
assert_equal(9,variations.size)
|
51
|
-
assert_equal('ENSSNP4691381',variations[0].variation_name)
|
52
|
-
assert_equal('ENSSNP9996411',variations[1].variation_name)
|
53
|
-
assert_equal('rs2691281',variations[2].variation_name)
|
54
|
-
assert_equal('ENSSNP4068519',variations[3].variation_name)
|
55
|
-
assert_equal('ENSSNP230814',variations[4].variation_name)
|
56
|
-
assert_equal('ENSSNP4010737',variations[5].variation_name)
|
57
|
-
assert_equal('rs2531295',variations[6].variation_name)
|
58
|
-
assert_equal('ENSSNP5092147',variations[7].variation_name)
|
59
|
-
assert_equal('ENSSNP5346602',variations[8].variation_name)
|
60
|
-
|
61
|
-
genotyped = slice.get_genotyped_variation_features
|
62
|
-
assert_equal(7,genotyped.size)
|
63
|
-
assert_equal('ENSSNP4691381',genotyped[0].variation_name)
|
64
|
-
assert_equal('genotyped',genotyped[0].flags)
|
65
|
-
assert_equal('ENSSNP9996411',genotyped[1].variation_name)
|
66
|
-
assert_equal('genotyped',genotyped[1].flags)
|
67
|
-
assert_equal('ENSSNP4068519',genotyped[2].variation_name)
|
68
|
-
assert_equal('genotyped',genotyped[2].flags)
|
69
|
-
assert_equal('ENSSNP230814',genotyped[3].variation_name)
|
70
|
-
assert_equal('genotyped',genotyped[3].flags)
|
71
|
-
assert_equal('ENSSNP4010737',genotyped[4].variation_name)
|
72
|
-
assert_equal('genotyped',genotyped[4].flags)
|
73
|
-
assert_equal('ENSSNP5092147',genotyped[5].variation_name)
|
74
|
-
assert_equal('genotyped',genotyped[5].flags)
|
75
|
-
assert_equal('ENSSNP5346602',genotyped[6].variation_name)
|
76
|
-
assert_equal('genotyped',genotyped[6].flags)
|
77
|
-
|
78
|
-
v = variations[0].variation
|
79
|
-
assert_equal(16366812,v.variation_id)
|
80
|
-
end
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = test/unit/release_53/core/test_gene.rb - Unit test for Ensembl::Core
|
3
|
-
#
|
4
|
-
# Copyright:: Copyright (C) 2009 Francesco Strozzi <francesco.strozzi@gmail.com>
|
5
|
-
#
|
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.connect('homo_sapiens', 53)
|
23
|
-
end
|
24
|
-
|
25
|
-
def teardown
|
26
|
-
DBConnection.remove_connection
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_gene
|
30
|
-
g = Gene.find_by_stable_id("ENSG00000006451")
|
31
|
-
assert_equal("ENSG00000006451",g.stable_id)
|
32
|
-
assert_equal("7",g.seq_region.name)
|
33
|
-
assert_equal(39629687,g.start)
|
34
|
-
assert_equal(39714240,g.stop)
|
35
|
-
assert_equal(1,g.strand)
|
36
|
-
assert_equal(84554,g.seq.length)
|
37
|
-
assert_equal("Ras-related protein Ral-A Precursor [Source:UniProtKB/Swiss-Prot;Acc:P11233]",g.description)
|
38
|
-
assert_equal("RALA",g.name)
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_transcript
|
42
|
-
g = Gene.find_by_stable_id("ENSG00000006451")
|
43
|
-
t = g.transcripts
|
44
|
-
assert_equal(1,t.size)
|
45
|
-
assert_equal("ENST00000005257",t[0].stable_id)
|
46
|
-
t = t[0]
|
47
|
-
assert_equal(2792,t.seq.length)
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_exons
|
51
|
-
t = Transcript.find_by_stable_id("ENST00000005257")
|
52
|
-
e = t.exons
|
53
|
-
assert_equal(5,e.size)
|
54
|
-
assert_equal("ENSE00001324495",e[0].stable_id)
|
55
|
-
seq1 = "AAGTGATCTGTGGCGGCTGCTGCAGAGCCGCCAGGAGGAGGGTGGATCTCCCCAGAGCAAAGCGTCGGAGTCCTCCTCCTCCTTCTCCTCCTCCTCCTCCTCCTCCTCCAGCCGCCCAGGCTCCCCCGCCACCCGTCAGACTCCTCCTTCGACCGCTCCCGGCGCGGGGCCTTCCAGGCGACAAGGACCGAGTACCCTCCGGCCGGAGCCACGCAGCCGCGGCTTCCGGAGCCCTCGGGGCGGCGGACTGGCTCGCGGTGCAG"
|
56
|
-
assert_equal(seq1,e[0].seq.upcase)
|
57
|
-
assert_equal(39629687,e[0].start)
|
58
|
-
assert_equal(39629949,e[0].stop)
|
59
|
-
assert_equal("ENSE00000832451",e[1].stable_id)
|
60
|
-
seq2 = "ATTCTTCTTAATCCTTTGGTGAAAACTGAGACACAAAATGGCTGCAAATAAGCCCAAGGGTCAGAATTCTTTGGCTTTACACAAAGTCATCATGGTGGGCAGTGGTGGCGTGGGCAAGTCAGCTCTGACTCTACAGTTCATGTACGATGAG"
|
61
|
-
assert_equal(seq2,e[1].seq.upcase)
|
62
|
-
assert_equal(39692755,e[1].start)
|
63
|
-
assert_equal(39692905,e[1].stop)
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
@@ -1,96 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = test/unit/release_53/core/test_project.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
|
-
require 'lib/ensembl'
|
17
|
-
|
18
|
-
include Ensembl::Core
|
19
|
-
|
20
|
-
class SliceProjectFromAssemblyToComponentForwardStrands < Test::Unit::TestCase
|
21
|
-
def setup
|
22
|
-
DBConnection.connect('bos_taurus', 53)
|
23
|
-
@source_slice_single_contig = Slice.fetch_by_region('chromosome', '20', 175000, 180000)
|
24
|
-
@target_slices_single_contig = @source_slice_single_contig.project('contig')
|
25
|
-
|
26
|
-
@source_slice_two_contigs = Slice.fetch_by_region('chromosome','20', 175000, 190000)
|
27
|
-
@target_slices_two_contigs = @source_slice_two_contigs.project('contig')
|
28
|
-
|
29
|
-
@source_slice_contigs_with_strand = Slice.fetch_by_region('chromosome', '20', 160000, 190000)
|
30
|
-
@target_slices_contigs_with_strand = @source_slice_contigs_with_strand.project('contig')
|
31
|
-
|
32
|
-
@source_slice_contigs_with_strand_ends_in_gaps = Slice.fetch_by_region('chromosome', '20', 170950, 196000)
|
33
|
-
@target_slices_contigs_with_strand_ends_in_gaps = @source_slice_contigs_with_strand_ends_in_gaps.project('contig')
|
34
|
-
end
|
35
|
-
|
36
|
-
def teardown
|
37
|
-
DBConnection.remove_connection
|
38
|
-
end
|
39
|
-
|
40
|
-
# |-----------------> contig
|
41
|
-
# ^ ^
|
42
|
-
# | |
|
43
|
-
# |------------------------------------------> chromosome
|
44
|
-
def test_project_from_assembly_to_single_component
|
45
|
-
# Position 175000 on chr20 is position 4030 on contig, position 180000 is 9030
|
46
|
-
assert_equal('AAFC03028970', @target_slices_single_contig[0].seq_region.name)
|
47
|
-
assert_equal(4030, @target_slices_single_contig[0].start)
|
48
|
-
assert_equal(9030, @target_slices_single_contig[0].stop)
|
49
|
-
end
|
50
|
-
|
51
|
-
# |-----> |--------> contig
|
52
|
-
# ^ ^
|
53
|
-
# | |
|
54
|
-
# |------------------------------------------> chromosome
|
55
|
-
def test_project_from_assembly_to_two_components
|
56
|
-
# This chromosomal region is covered by contigs AAFC03028970, a gap and AAFC03028962
|
57
|
-
# * Position 175000 on chr 20 is position 4030 on contig AAFC03028970
|
58
|
-
# * Position 190000 on chr 20 is position 35 on contig AAFC03028962
|
59
|
-
assert_equal(3, @target_slices_two_contigs.length)
|
60
|
-
assert_equal('contig:Btau_4.0:AAFC03028970:4030:17365:1', @target_slices_two_contigs[0].display_name)
|
61
|
-
assert_equal(Gap, @target_slices_two_contigs[1].class)
|
62
|
-
assert_equal('contig:Btau_4.0:AAFC03028962:1:35:1', @target_slices_two_contigs[2].display_name)
|
63
|
-
end
|
64
|
-
|
65
|
-
# |-----> <-------| |-------> |-------> contig
|
66
|
-
# ^ ^
|
67
|
-
# | |
|
68
|
-
# |--------------------------------------------------> chromosome
|
69
|
-
def test_project_from_assembly_to_contigs_with_strand
|
70
|
-
# This chromosomal region is covered by 4 contigs and 3 gaps
|
71
|
-
# One of the contigs are on the reverse strand.
|
72
|
-
assert_equal(7, @target_slices_contigs_with_strand.length)
|
73
|
-
assert_equal('contig:Btau_4.0:AAFC03028964:90:9214:1', @target_slices_contigs_with_strand[0].display_name)
|
74
|
-
assert_equal(Gap, @target_slices_contigs_with_strand[1].class)
|
75
|
-
assert_equal('contig:Btau_4.0:AAFC03028959:1:1746:-1', @target_slices_contigs_with_strand[2].display_name)
|
76
|
-
assert_equal(Gap, @target_slices_contigs_with_strand[3].class)
|
77
|
-
assert_equal('contig:Btau_4.0:AAFC03028970:1:17365:1', @target_slices_contigs_with_strand[4].display_name)
|
78
|
-
assert_equal(Gap, @target_slices_contigs_with_strand[5].class)
|
79
|
-
assert_equal('contig:Btau_4.0:AAFC03028962:1:35:1', @target_slices_contigs_with_strand[6].display_name)
|
80
|
-
end
|
81
|
-
|
82
|
-
# <--| |-----> contig
|
83
|
-
# ^ ^
|
84
|
-
# | |
|
85
|
-
# |--------------------------------------------------> chromosome
|
86
|
-
def test_project_from_assembly_to_contigs_with_strand_and_ending_in_gaps
|
87
|
-
# This chromosomal region is covered by 2 contigs and 2 gaps at the end: GaCoGaCoGa
|
88
|
-
assert_equal(5, @target_slices_contigs_with_strand_ends_in_gaps.length)
|
89
|
-
assert_equal(Gap, @target_slices_contigs_with_strand_ends_in_gaps[0].class)
|
90
|
-
assert_equal('contig:Btau_4.0:AAFC03028970:1:17365:1', @target_slices_contigs_with_strand_ends_in_gaps[1].display_name)
|
91
|
-
assert_equal(Gap, @target_slices_contigs_with_strand_ends_in_gaps[2].class)
|
92
|
-
assert_equal('contig:Btau_4.0:AAFC03028962:1:5704:1', @target_slices_contigs_with_strand_ends_in_gaps[3].display_name)
|
93
|
-
assert_equal(Gap, @target_slices_contigs_with_strand_ends_in_gaps[4].class)
|
94
|
-
end
|
95
|
-
|
96
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# = test/unit/test_project.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
|
-
require 'pathname'
|
11
|
-
libpath = Pathname.new(File.join(File.dirname(__FILE__), ['..'] * 4, 'lib')).cleanpath.to_s
|
12
|
-
$:.unshift(libpath) unless $:.include?(libpath)
|
13
|
-
require 'test/unit'
|
14
|
-
require 'lib/ensembl'
|
15
|
-
|
16
|
-
include Ensembl::Core
|
17
|
-
|
18
|
-
class AssemblyExceptions < Test::Unit::TestCase
|
19
|
-
|
20
|
-
def setup
|
21
|
-
DBConnection.connect('homo_sapiens', 53)
|
22
|
-
end
|
23
|
-
|
24
|
-
def teardown
|
25
|
-
DBConnection.remove_connection
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_chr_x
|
29
|
-
source_slice = Slice.fetch_by_region('chromosome','X', 2709497, 2709520)
|
30
|
-
assert_equal('tagttatagattaaaagaagttaa', source_slice.seq)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_slice_overlapping_PAR_and_allosome
|
34
|
-
source_slice = Slice.fetch_by_region('chromosome','Y',2709500,2709540)
|
35
|
-
target_slices = source_slice.project('contig')
|
36
|
-
assert_equal('contig::AC006209.25.1.141759:23323:23343:-1', target_slices[0].display_name)
|
37
|
-
assert_equal('contig::AC006040.3.1.186504:57272:57291:1', target_slices[1].display_name)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_seq_slice_overlapping_PAR
|
41
|
-
seq = ''
|
42
|
-
File.open("test/unit/data/seq_y.fa").reject{|l| l=~/^>/}.each do |line|
|
43
|
-
line.chomp!
|
44
|
-
seq += line
|
45
|
-
end
|
46
|
-
seq.downcase!
|
47
|
-
|
48
|
-
source_slice = Slice.fetch_by_region('chromosome', 'Y', 2709497, 2709542)
|
49
|
-
assert_equal(seq.downcase, source_slice.seq)
|
50
|
-
end
|
51
|
-
|
52
|
-
# The MHC haplotypes for human are not implemented yet, so we raise an error
|
53
|
-
# in the code.
|
54
|
-
def test_seq_slice_overlapping_HAP
|
55
|
-
seq = ''
|
56
|
-
File.open('test/unit/data/seq_c6qbl.fa').reject{|l| l=~/^>/}.each do |line|
|
57
|
-
line.chomp!
|
58
|
-
seq += line
|
59
|
-
end
|
60
|
-
seq.downcase!
|
61
|
-
|
62
|
-
source_slice = Slice.fetch_by_region('chromosome', 'c6_QBL', 33451191, 33451690)
|
63
|
-
assert_raise(NotImplementedError) {source_slice.seq}
|
64
|
-
end
|
65
|
-
end
|