bio-ensembl 1.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.
- data/.document +5 -0
- data/Gemfile +20 -0
- data/Gemfile.lock +40 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +71 -0
- data/VERSION +1 -0
- data/bin/ensembl +40 -0
- data/bin/variation_effect_predictor +106 -0
- data/bio-ensembl.gemspec +190 -0
- data/lib/bio-ensembl.rb +65 -0
- data/lib/bio-ensembl/core/activerecord.rb +1812 -0
- data/lib/bio-ensembl/core/collection.rb +64 -0
- data/lib/bio-ensembl/core/project.rb +262 -0
- data/lib/bio-ensembl/core/slice.rb +657 -0
- data/lib/bio-ensembl/core/transcript.rb +409 -0
- data/lib/bio-ensembl/core/transform.rb +95 -0
- data/lib/bio-ensembl/db_connection.rb +205 -0
- data/lib/bio-ensembl/variation/activerecord.rb +536 -0
- data/lib/bio-ensembl/variation/variation_feature.rb +376 -0
- data/lib/bio-ensembl/variation/variation_feature62.rb +444 -0
- 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_effect_predictor_data.txt +4 -0
- data/samples/variation_example.rb +67 -0
- data/test/data/seq_c6qbl.fa +10 -0
- data/test/data/seq_cso19_coding.fa +16 -0
- data/test/data/seq_cso19_transcript.fa +28 -0
- data/test/data/seq_drd3_gene.fa +838 -0
- data/test/data/seq_drd3_transcript.fa +22 -0
- data/test/data/seq_drd4_transcript.fa +24 -0
- data/test/data/seq_forward_composite.fa +1669 -0
- data/test/data/seq_par_boundary.fa +169 -0
- data/test/data/seq_rnd3_transcript.fa +47 -0
- data/test/data/seq_ub2r1_coding.fa +13 -0
- data/test/data/seq_ub2r1_gene.fa +174 -0
- data/test/data/seq_ub2r1_transcript.fa +26 -0
- data/test/data/seq_y.fa +2 -0
- data/test/default/test_connection.rb +60 -0
- data/test/default/test_releases.rb +130 -0
- data/test/ensembl_genomes/test_collection.rb +122 -0
- data/test/ensembl_genomes/test_gene.rb +46 -0
- data/test/ensembl_genomes/test_slice.rb +65 -0
- data/test/ensembl_genomes/test_variation.rb +38 -0
- data/test/helper.rb +18 -0
- data/test/release_50/core/test_project.rb +210 -0
- data/test/release_50/core/test_project_human.rb +52 -0
- data/test/release_50/core/test_relationships.rb +72 -0
- data/test/release_50/core/test_sequence.rb +170 -0
- data/test/release_50/core/test_slice.rb +116 -0
- data/test/release_50/core/test_transcript.rb +125 -0
- data/test/release_50/core/test_transform.rb +217 -0
- data/test/release_50/variation/test_activerecord.rb +138 -0
- data/test/release_50/variation/test_variation.rb +79 -0
- data/test/release_53/core/test_gene.rb +61 -0
- data/test/release_53/core/test_project.rb +91 -0
- data/test/release_53/core/test_project_human.rb +61 -0
- data/test/release_53/core/test_slice.rb +42 -0
- data/test/release_53/core/test_transform.rb +57 -0
- data/test/release_53/variation/test_activerecord.rb +137 -0
- data/test/release_53/variation/test_variation.rb +66 -0
- data/test/release_56/core/test_gene.rb +61 -0
- data/test/release_56/core/test_project.rb +91 -0
- data/test/release_56/core/test_slice.rb +49 -0
- data/test/release_56/core/test_transform.rb +57 -0
- data/test/release_56/variation/test_activerecord.rb +141 -0
- data/test/release_56/variation/test_consequence.rb +131 -0
- data/test/release_56/variation/test_variation.rb +63 -0
- data/test/release_60/core/test_gene.rb +61 -0
- data/test/release_60/core/test_project_human.rb +34 -0
- data/test/release_60/core/test_slice.rb +42 -0
- data/test/release_60/core/test_transcript.rb +120 -0
- data/test/release_60/core/test_transform.rb +57 -0
- data/test/release_60/variation/test_activerecord.rb +216 -0
- data/test/release_60/variation/test_consequence.rb +153 -0
- data/test/release_60/variation/test_variation.rb +64 -0
- data/test/release_62/core/test_gene.rb +42 -0
- data/test/release_62/variation/test_activerecord.rb +86 -0
- data/test/release_62/variation/test_consequence.rb +191 -0
- metadata +287 -0
| @@ -0,0 +1,52 @@ | |
| 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 File.expand_path File.join(File.dirname(__FILE__),"../../helper.rb")
         | 
| 10 | 
            +
            include Ensembl::Core
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            DBConnection.connect('homo_sapiens', 50)
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            class AssemblyExceptions < Test::Unit::TestCase
         | 
| 15 | 
            +
              def test_chr_x
         | 
| 16 | 
            +
                source_slice = Slice.fetch_by_region('chromosome','X', 2709497, 2709520)
         | 
| 17 | 
            +
                assert_equal('tagttatagattaaaagaagttaa', source_slice.seq)
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              def test_slice_overlapping_PAR_and_allosome
         | 
| 21 | 
            +
                source_slice = Slice.fetch_by_region('chromosome','Y',2709500,2709540)
         | 
| 22 | 
            +
                target_slices = source_slice.project('contig')
         | 
| 23 | 
            +
                assert_equal('contig::AC006209.25.1.141759:23323:23343:-1', target_slices[0].display_name)
         | 
| 24 | 
            +
                assert_equal('contig::AC006040.3.1.186504:57272:57291:1', target_slices[1].display_name)
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              def test_seq_slice_overlapping_PAR
         | 
| 28 | 
            +
                seq = ''
         | 
| 29 | 
            +
                File.open('test/data/seq_y.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 30 | 
            +
                  line.chomp!
         | 
| 31 | 
            +
                  seq += line
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
                seq.downcase!
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                source_slice = Slice.fetch_by_region('chromosome', 'Y', 2709497, 2709542)
         | 
| 36 | 
            +
                assert_equal(seq.downcase, source_slice.seq)
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              # The MHC haplotypes for human are not implemented yet, so we raise an error
         | 
| 40 | 
            +
              # in the code.
         | 
| 41 | 
            +
              def test_seq_slice_overlapping_HAP
         | 
| 42 | 
            +
                seq = ''
         | 
| 43 | 
            +
                File.open('test/data/seq_c6qbl.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 44 | 
            +
                  line.chomp!
         | 
| 45 | 
            +
                  seq += line
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
                seq.downcase!
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                source_slice = Slice.fetch_by_region('chromosome', 'c6_QBL', 33451191, 33451690)
         | 
| 50 | 
            +
                assert_raise(NotImplementedError) {source_slice.seq}
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
            end
         | 
| @@ -0,0 +1,72 @@ | |
| 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 File.expand_path File.join(File.dirname(__FILE__),"../../helper.rb")
         | 
| 10 | 
            +
             | 
| 11 | 
            +
             | 
| 12 | 
            +
            include Ensembl::Core
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            DBConnection.connect('homo_sapiens', 50)
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            # Let's see if we can 'find' things
         | 
| 17 | 
            +
            class SimpleRecordsTest < Test::Unit::TestCase
         | 
| 18 | 
            +
              def setup
         | 
| 19 | 
            +
                @sry_gene = Gene.find(34927)
         | 
| 20 | 
            +
                @sry_transcript = Transcript.find(60290)
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def test_coord_system
         | 
| 24 | 
            +
                coord_system = CoordSystem.find(17)
         | 
| 25 | 
            +
                assert_equal('chromosome', coord_system.name)
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def test_coord_system_toplevel
         | 
| 29 | 
            +
                coord_system = CoordSystem.find(17).find_toplevel
         | 
| 30 | 
            +
                assert_equal('chromosome', coord_system.name)
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              def test_coord_system_seqlevel
         | 
| 34 | 
            +
                coord_system = CoordSystem.find(17).find_seqlevel
         | 
| 35 | 
            +
                assert_equal('contig', coord_system.name)
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              def test_display_label
         | 
| 39 | 
            +
                assert_equal('SRY', @sry_gene.display_label)
         | 
| 40 | 
            +
                assert_equal('SRY', @sry_gene.display_name)
         | 
| 41 | 
            +
                assert_equal('SRY', @sry_gene.label)
         | 
| 42 | 
            +
                assert_equal('SRY', @sry_gene.name)
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                assert_equal('SRY-001', @sry_transcript.display_label)
         | 
| 45 | 
            +
                assert_equal('SRY-001', @sry_transcript.display_name)
         | 
| 46 | 
            +
                assert_equal('SRY-001', @sry_transcript.label)
         | 
| 47 | 
            +
                assert_equal('SRY-001', @sry_transcript.name)
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
            end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            class RelationshipsTest < Test::Unit::TestCase
         | 
| 52 | 
            +
              def test_go_terms
         | 
| 53 | 
            +
                gene = Gene.find(34928)
         | 
| 54 | 
            +
                assert_equal(["GO:0005576", "GO:0042742"], gene.go_terms.sort)
         | 
| 55 | 
            +
              end
         | 
| 56 | 
            +
              
         | 
| 57 | 
            +
              def test_hgnc
         | 
| 58 | 
            +
                gene = Gene.find_by_stable_id('ENSG00000169740')
         | 
| 59 | 
            +
                assert_equal('ZNF32', gene.hgnc)
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
            end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            class ReflectionTest < Test::Unit::TestCase
         | 
| 64 | 
            +
              def test_has_what
         | 
| 65 | 
            +
                assert_equal(Gene.has_what.sort.join(';'), 'attrib_types;gene_attribs;gene_stable_id;object_xrefs;transcripts;xrefs')
         | 
| 66 | 
            +
              end
         | 
| 67 | 
            +
              
         | 
| 68 | 
            +
              def test_belongs_to_what
         | 
| 69 | 
            +
                assert_equal(Gene.belongs_to_what.sort.join(';'), 'analysis;seq_region')
         | 
| 70 | 
            +
              end
         | 
| 71 | 
            +
            end
         | 
| 72 | 
            +
             | 
| @@ -0,0 +1,170 @@ | |
| 1 | 
            +
            #
         | 
| 2 | 
            +
            # = test/unit/test_seq.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 File.expand_path File.join(File.dirname(__FILE__),"../../helper.rb")
         | 
| 10 | 
            +
             | 
| 11 | 
            +
             | 
| 12 | 
            +
            include Ensembl::Core
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            DBConnection.connect('homo_sapiens', 50)
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            #class SequenceForSlice < Test::Unit::TestCase
         | 
| 17 | 
            +
            #  def test_forward_strand_seqlevel
         | 
| 18 | 
            +
            #    slice = Slice.new(SeqRegion.find(170931),5,15)
         | 
| 19 | 
            +
            #    seq = 'gcagtggtgtg'
         | 
| 20 | 
            +
            #    assert_equal(seq, slice.seq)
         | 
| 21 | 
            +
            #  end
         | 
| 22 | 
            +
            #
         | 
| 23 | 
            +
            #  def test_reverse_strand_seqlevel
         | 
| 24 | 
            +
            #    slice = Slice.new(SeqRegion.find(170931),5,15, -1)
         | 
| 25 | 
            +
            #    seq = 'cacaccactgc'
         | 
| 26 | 
            +
            #    assert_equal(seq, slice.seq)
         | 
| 27 | 
            +
            #  end
         | 
| 28 | 
            +
            #
         | 
| 29 | 
            +
            #  def test_forward_strand_not_seqlevel_single_target
         | 
| 30 | 
            +
            #    slice = Slice.new(SeqRegion.find(226044),69437100,69437110)
         | 
| 31 | 
            +
            #    seq = 'gtctatttaca'
         | 
| 32 | 
            +
            #    assert_equal(seq, slice.seq)
         | 
| 33 | 
            +
            #  end
         | 
| 34 | 
            +
            #
         | 
| 35 | 
            +
            #  def test_reverse_strand_not_seqlevel_single_target
         | 
| 36 | 
            +
            #    slice = Slice.new(SeqRegion.find(226044),69437100,69437110,-1)
         | 
| 37 | 
            +
            #    seq = 'tgtaaatagac'
         | 
| 38 | 
            +
            #    assert_equal(seq, slice.seq)
         | 
| 39 | 
            +
            #  end
         | 
| 40 | 
            +
            #
         | 
| 41 | 
            +
            #  def test_forward_strand_not_seqlevel_composite_target
         | 
| 42 | 
            +
            #    seq = ''
         | 
| 43 | 
            +
            #    File.open('../../data/seq_forward_composite.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 44 | 
            +
            #      line.chomp!
         | 
| 45 | 
            +
            #      seq += line
         | 
| 46 | 
            +
            #    end
         | 
| 47 | 
            +
            #    seq.downcase!
         | 
| 48 | 
            +
            #    slice = Slice.new(SeqRegion.find(226044),69387650,69487649)
         | 
| 49 | 
            +
            #    assert_equal(seq, slice.seq)
         | 
| 50 | 
            +
            #  end
         | 
| 51 | 
            +
            #
         | 
| 52 | 
            +
            #  def test_reverse_strand_not_seqlevel_composite_target
         | 
| 53 | 
            +
            #    slice = Slice.new(SeqRegion.find(226044),69437061,69437160,-1)
         | 
| 54 | 
            +
            #    assert_equal('nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnatgtaaatagacaactaacaagatagctgagattgtttccttatccagaca', slice.seq)
         | 
| 55 | 
            +
            #  end
         | 
| 56 | 
            +
            #
         | 
| 57 | 
            +
            #end
         | 
| 58 | 
            +
            #
         | 
| 59 | 
            +
            #class SequenceForUnsplicedFeature < Test::Unit::TestCase
         | 
| 60 | 
            +
            #  def test_forward_strand_seqlevel
         | 
| 61 | 
            +
            #    marker_feature = MarkerFeature.find(1323757)
         | 
| 62 | 
            +
            #    marker_seq = 'ggcttacttggaaaggtctcttccaacccaatattattcaaatactttcaattttcttctaatgtttttagtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtggttttgttttatttcttttaattctctgatacatttagaatttcttttattattttattttattttattatttatttatttatttttgagacagagttttgctc'
         | 
| 63 | 
            +
            #    assert_equal(marker_seq, marker_feature.seq)
         | 
| 64 | 
            +
            #  end
         | 
| 65 | 
            +
            #
         | 
| 66 | 
            +
            #  def test_reverse_strand_seqlevel
         | 
| 67 | 
            +
            #    gene = Gene.find_by_name('ANKRD56')
         | 
| 68 | 
            +
            #
         | 
| 69 | 
            +
            #    ankrd56_seq = 'atggcccgagagctgagccaggaggcactactggactttctgtgccaggctgggggccgcgtgaccaacgctgccttgctgagccacttcaagagctttctccgagaccccgacgcgtcccccagccagcaccagcaccgccgcgagctcttcaagggcttcgtcaactcggtcgccgcagtgcgccaggaccccgacggcaccaagtacgtggtgctcaagaggagatacagggaccttttgggggaggaggggctgcagcgaccccgcgagccgcccgcggccgcccccagtgcagggggagctgcgccctgctccccgcgaggcgcgcgccggggggagccgccccagcagcagcccaggcggcggcggcgcgagaaggagccggaggaggagccagcaggtgcagcagccagagccgccgacgcagcttgcaatggactcccgggcagcgactcccgtagggcgcccgggaagggcggcggatcgaagggcagtcccggacagaggccgccggtgcccgcagctgcagcggcaggggcccaggcgagagcgagctgcgcggcggcgaagacgcagggccgctgctgctgggaatgcctccagaacaacctggctgtactgccgggagagctcggcgcactcccgcactcggccaccgcggaggagaagccggcacgggctctgcctgcccaggatgaccgcggggcttccagggagcgggaagaaggcgcgctagctgagccggcgcctgtgcctgcagtggctcactcgcctcccgccaccgtcgaggctgcgacaagcagggcttccccgcctgctctcctgcccggccccgctccccgcggagaccggccggagctgctgacccccagctccctgcattattcgaccctgcagcagcagcagcagcgcactcgagagtgggtggccaggcacccgcaggtgcccgaggcccgtgatcagggccctatccgcgcctggtcggtgctgccagacaacttcctccagctgcccttggaacccggctccacggagcctaattcagagccgccagacccctgtctttcctcgcactctctctttcctgttgttccggatgagtcctgggaatcctgggcggggaacccttcattgactgtctttcgcagcattcgttgtcagctgtccctccaagatctggatgactttgtggaccaggagagtgatggcagtgaggagagcagcagtgggcccaaagactccccgggggcttctgaagaggggctgcaggttgtcttgggaaccccagatagggggaagctcaggaatccagctgggggcctttctgtatctcggaaggagggcagccccagccggagccctcagggtctcagaaacagaggggatggtcacatctctcagcaggtccctgcaggggctaatggccttgcaggccaccccctgaagcctttgccttggccagttcctaagttaaggaggtccctcaggaggagctctctggcagggagagccaaattgtcctcctctgatgaggagtacctcgatgagggcttgctgaaaagaagtcggcgcccacctcgatccaggaagccctccaaggcaggaacggcacccagcccaagggttgatgcaggtttatcactaaaacttgcagaggttaaggctgttgtggccgagcggggttggcgacacagcctgtgggtccccagtggggaggggtctgcagccttggccccccacagaacttctgagcacaaatcatccctggttccactagatgccagggagcatgagtggattgtgaagcttgccagtggctcctggattcaggtgtggactttgttctgggaggaccctcaactggccttgcacaaagactttttgactgggtacactgcgttgcactggatagccaaacatggtgacctcagggcccttcaggacttggtgtctggagcaaagaaggcagggattgtccttgatgtaaacgtgaggtccagttgtggatataccccgctgcaccttgcagccattcacggccaccagggggtcatcaaattgctagtgcaaaggttggcttctcgggtaaatgtcagggacagcagtgggaagaagccatggcagtatctaaccagtaatacctctggggaaatatggcagctgttgggagctcctcggggcaagcccattttccctgtctatcccttagttggaagttcttcccctaccagaaaggccaagagcaaggaaatatctagaagtgtcacccgaaaaacttccttcgctgcactactcaaaagtcagcacaacaagtggaaactggccaaccagtatgagaaattccacagtccaagggaaagagaagagtatagtgactga'
         | 
| 70 | 
            +
            #    assert_equal(ankrd56_seq, gene.seq)
         | 
| 71 | 
            +
            #  end
         | 
| 72 | 
            +
            #
         | 
| 73 | 
            +
            #  def test_reverse_strand_not_seqlevel
         | 
| 74 | 
            +
            #    gene = Gene.find_by_name('DRD3')
         | 
| 75 | 
            +
            #    drd3_gene_seq = ''
         | 
| 76 | 
            +
            #    File.open('../../data/seq_drd3_gene.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 77 | 
            +
            #      line.chomp!
         | 
| 78 | 
            +
            #      drd3_gene_seq += line
         | 
| 79 | 
            +
            #    end
         | 
| 80 | 
            +
            #    drd3_gene_seq.downcase!
         | 
| 81 | 
            +
            #    assert_equal(drd3_gene_seq, gene.seq)
         | 
| 82 | 
            +
            #
         | 
| 83 | 
            +
            #  end
         | 
| 84 | 
            +
            #
         | 
| 85 | 
            +
            #  def test_exon
         | 
| 86 | 
            +
            #    exon = Exon.find(719588)
         | 
| 87 | 
            +
            #    assert_equal('atggcatctctgagccagctgagtggccacctgaactacacctgtggggcagagaactccacaggtgccagccaggcccgcccacatgcctactatgccctctcctactgcgcgctcatcctggccatcgtcttcggcaatggcctggtgtgcatggctgtgctgaaggagcgggccctgcagactaccaccaactacttagtagtgagcctggctgtggcagacttgctggtggccaccttggtgatgccctgggtggtatacctggag', exon.seq)
         | 
| 88 | 
            +
            #  end
         | 
| 89 | 
            +
            #
         | 
| 90 | 
            +
            #end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            class SequenceForSlicedFeature < Test::Unit::TestCase
         | 
| 93 | 
            +
              def test_transcript_foward
         | 
| 94 | 
            +
                transcript = Transcript.find(73491) # UB2R1 = CDC34
         | 
| 95 | 
            +
                ub2r1_transcript_seq = ''
         | 
| 96 | 
            +
                File.open('test/data/seq_ub2r1_transcript.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 97 | 
            +
                  line.chomp!
         | 
| 98 | 
            +
                  ub2r1_transcript_seq += line
         | 
| 99 | 
            +
                end
         | 
| 100 | 
            +
                ub2r1_transcript_seq.downcase!
         | 
| 101 | 
            +
                assert_equal(ub2r1_transcript_seq, transcript.seq)
         | 
| 102 | 
            +
             | 
| 103 | 
            +
              end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
              def test_transcript_reverse
         | 
| 106 | 
            +
                transcript = Transcript.find(107548)
         | 
| 107 | 
            +
                rnd3_transcript_seq = ''
         | 
| 108 | 
            +
                File.open('test/data/seq_rnd3_transcript.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 109 | 
            +
                  line.chomp!
         | 
| 110 | 
            +
                  rnd3_transcript_seq += line
         | 
| 111 | 
            +
                end
         | 
| 112 | 
            +
                rnd3_transcript_seq.downcase!
         | 
| 113 | 
            +
                assert_equal(rnd3_transcript_seq, transcript.seq)
         | 
| 114 | 
            +
              end
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            end
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            class SequenceForCDS < Test::Unit::TestCase
         | 
| 119 | 
            +
              def setup
         | 
| 120 | 
            +
                # Transcript tr_fw is ENST00000215574
         | 
| 121 | 
            +
                @tr_fw = Transcript.find(73491)
         | 
| 122 | 
            +
                # Transcript tr_rev is ENST00000315489
         | 
| 123 | 
            +
                @tr_rev = Transcript.find(73411)
         | 
| 124 | 
            +
              end
         | 
| 125 | 
            +
             | 
| 126 | 
            +
              def test_cds_fw
         | 
| 127 | 
            +
                ub2r1_coding_seq = ''
         | 
| 128 | 
            +
                File.open('test/data/seq_ub2r1_coding.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 129 | 
            +
                  line.chomp!
         | 
| 130 | 
            +
                  ub2r1_coding_seq += line
         | 
| 131 | 
            +
                end
         | 
| 132 | 
            +
                ub2r1_coding_seq.downcase!
         | 
| 133 | 
            +
                assert_equal(ub2r1_coding_seq, @tr_fw.cds_seq)
         | 
| 134 | 
            +
              end
         | 
| 135 | 
            +
             | 
| 136 | 
            +
              def test_cds_rev
         | 
| 137 | 
            +
                cso19_coding_seq = ''
         | 
| 138 | 
            +
                File.open('test/data/seq_cso19_coding.fa').reject{|l| l=~/^>/}.each do |line|
         | 
| 139 | 
            +
                  line.chomp!
         | 
| 140 | 
            +
                  cso19_coding_seq += line
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
                cso19_coding_seq.downcase!
         | 
| 143 | 
            +
                assert_equal(cso19_coding_seq, @tr_rev.cds_seq)
         | 
| 144 | 
            +
              end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
              def test_five_prime_utr_fw
         | 
| 147 | 
            +
                assert_equal('GGCAAGCGCCGGTGGGGCGGCGGCGCCAGAGCTGCTGGAGCGCTCGGGGTCCCCGGGCGGCGGCGGCGGCGCAGAGGAGGAGGCAGGCGGCGGCCCCGGTGGCTCCCCCCCGGACGGTGCGCGGCCCGGCCCGTCTCGCGAACTCGCGGTGGTCGCGCGGCCCCGCGCTGCTCCGACCCCGGGCCCCTCCGCCGCCGCC'.downcase, @tr_fw.five_prime_utr_seq)
         | 
| 148 | 
            +
              end
         | 
| 149 | 
            +
             | 
| 150 | 
            +
              def test_five_primer_utr_rev
         | 
| 151 | 
            +
                assert_equal('ACTCGATCCCGGCCCCACTTCCAGGCCAGTGTCCGGCCGACCAGCCTGCCTTGGGCCAGGGCCCCACGACTCCCTGCTGCGGGACAAGAGGCCGTCTGTGCGGCTGTGGTCGTGGGAGGGTGTGGTGAGGCCGTGAAGGTGGGGACGGTGCCTGGGCCTGTGGCCGCCAGAGCTGCTGCGGCTCAGAAGGTAGCACCAGGCCCCGTGGGTGCTGTGGGGGCCATCGCCTGCCCACC'.downcase, @tr_rev.five_prime_utr_seq)
         | 
| 152 | 
            +
              end
         | 
| 153 | 
            +
             | 
| 154 | 
            +
              def test_three_prime_utr_fw
         | 
| 155 | 
            +
                assert_equal('CACCACCAGAATAAACTTGCCGAGTTTACCTCACTAGGGCCGGACCCGTGGCTCCTTAGACGACAGACTACCTCACGGAGGTTTTGTGCTGGTCCCCGTCTCCTCTGGTTGTTTCGTTTTGGCTTTTTCTCCCTCCCCATGTCTGTTCTGGGTTTTCACGTGCTTCAGAGAAGAGGGGCTGCCCCACCGCCACTCACGTCACTCGGGGCTCGGTGGACGGGCCCAGGGTGGGAGCGGCCGGCCCACCTGTCCCCTCGGGAGGGGAGCTGAGCCCGACTTCTACCGGGGTCCCCCAGCTTCCGGACTGGCCGCACCCCGGAGGAGCCACGGGGGCGCTGCTGGGAACGTGGGCGGGGGGCCGTTTCCTGACACTACCAGCCTGGGAGGCCCAGGTGTAGCGGTCCGAGGGGCCCGGTCCTGCCTGTCAGCTCCAGGTCCTGGAGCCACGTCCAGCACAGAGTGGACGGATTCACCGTGGCCGACTCTTTTCCCTGCTTTGGTTTGTTTGAAATCTAAATAAAACTACTTTATG'.downcase, @tr_fw.three_prime_utr_seq)
         | 
| 156 | 
            +
              end
         | 
| 157 | 
            +
             | 
| 158 | 
            +
              def test_three_prime_utr_rev
         | 
| 159 | 
            +
                assert_equal('GCCAGGCCTGTTTCCCACACAGTGAACGGGGGGCTGGCGGGCCTCTCCTGGGGCCTGGCTTTGGCTGGAGGGGCTAGAAGGCGAGAGGGGCTGGGAAAGGAGTCTTCCCTCCCCTTTCCTGAACTGTCCAGGTCCTTCTAGGACACCTGATCCTTCCAGTCCCTGGGGGCTGTGACCCATGGCCCTGTGCAGGGTGCAGGGTGAGTCTCCTTCCAGTGCCCCAGTTTCTTCCAGGTCACGCCAGGCCAGGCCAGGCCAGGTGGGGAAAGGGACACCTTCCGGCCCTCCCCAGTAGCTGGCTGGAGATGGAGCTTCCTGTGTCCCAGAACTCGGCGTCCAGCTCCACTAGGGCCTGGATCCCCATCACAGCTTGGGTTAGCCCCGGTCCCAGCCCAAACTCAGGCTGGAGGCAGCCCCGAGGCCTGTGCCTTTCCCACTCCACCTTCTACAGTTGCTTAGCCAATAAACCTTTCCTGGGCTGGAG'.downcase, @tr_rev.three_prime_utr_seq)
         | 
| 160 | 
            +
              end
         | 
| 161 | 
            +
             | 
| 162 | 
            +
              def test_protein_fw
         | 
| 163 | 
            +
                assert_equal('MARPLVPSSQKALLLELKGLQEEPVEGFRVTLVDEGDLYNWEVAIFGPPNTYYEGGYFKARLKFPIDYPYSPPAFRFLTKMWHPNIYETGDVCISILHPPVDDPQSGELPSERWNPTQNVRTILLSVISLLNEPNTFSPANVDASVMYRKWKESKGKDREYTDIIRKQVLGTKVDAERDGVKVPTTLAEYCVKTKAPAPDEGSDLFYDDYYEDGEVEEEADSCFGDDEDDSGTEES*', @tr_fw.protein_seq)
         | 
| 164 | 
            +
              end
         | 
| 165 | 
            +
             | 
| 166 | 
            +
              def test_protein_rev
         | 
| 167 | 
            +
                assert_equal('MGTLSCDSTPRLATAPLGRRVTEGQIPETGLRKSCGTATLENGSGPGLYVLPSTVGFINHDCTRVASPAYSLVRRPSEAPPQDTSPGPIYFLDPKVTRFGRSCTPAYSMQGRAKSRGPEVTPGPGAYSPEKVPPVRHRTPPAFTLGCRLPLKPLDTSAPAPNAYTMPPLWGSQIFTKPSSPSYTVVGRTPPARPPQDPAEIPGPGQYDSPDANTYRQRLPAFTMLGRPRAPRPLEETPGPGAHCPEQVTVNKARAPAFSMGIRHSKRASTMAATTPSRPAGHRLPGRCC*', @tr_rev.protein_seq)
         | 
| 168 | 
            +
              end
         | 
| 169 | 
            +
            end
         | 
| 170 | 
            +
             | 
| @@ -0,0 +1,116 @@ | |
| 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 File.expand_path File.join(File.dirname(__FILE__),"../../helper.rb")
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            include Ensembl::Core
         | 
| 12 | 
            +
            DBConnection.connect('bos_taurus', 50)
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            class GetFeatures < Test::Unit::TestCase
         | 
| 15 | 
            +
              # Chr4.003.122 has no simple features in itself, but the corresponding region
         | 
| 16 | 
            +
              # covered by the chromosome has 37. In addition, contigs within the scaffold
         | 
| 17 | 
            +
              # have 85. Total should therefore be 122.
         | 
| 18 | 
            +
              def test_simple_features
         | 
| 19 | 
            +
                contig = SeqRegion.find_by_name('AAFC03055312')
         | 
| 20 | 
            +
                assert_equal(19, contig.simple_features.length)
         | 
| 21 | 
            +
                assert_equal(19, contig.slice.simple_features.length)
         | 
| 22 | 
            +
                slice = Slice.fetch_by_region('contig','AAFC03055312')
         | 
| 23 | 
            +
                assert_equal(19, slice.simple_features.length)
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            class SliceMethodMissing < Test::Unit::TestCase
         | 
| 28 | 
            +
              def setup
         | 
| 29 | 
            +
                @slice = Slice.fetch_by_region('chromosome','4',10000,10000000)
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
              
         | 
| 32 | 
            +
              # There is not NotExistingTable class
         | 
| 33 | 
            +
              def test_non_existing_tables
         | 
| 34 | 
            +
                assert_raise(NoMethodError) { @slice.not_existing_tables }
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
              
         | 
| 37 | 
            +
              # A slice can get its exons
         | 
| 38 | 
            +
              def test_exons
         | 
| 39 | 
            +
                assert_equal(291, @slice.exons.length)
         | 
| 40 | 
            +
                assert_equal(Exon, @slice.exons[0].class)
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
              
         | 
| 43 | 
            +
              # A slice can _not_ get its markers; it has marker_features instead.
         | 
| 44 | 
            +
              def test_markers
         | 
| 45 | 
            +
                assert_raise(NoMethodError) { @slice.markers }
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
              
         | 
| 48 | 
            +
              def test_transcripts
         | 
| 49 | 
            +
                assert_equal(36, @slice.transcripts.length)
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
            end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            class GetOverlappingObjects < Test::Unit::TestCase
         | 
| 54 | 
            +
              def setup
         | 
| 55 | 
            +
                @small_slice = Slice.fetch_by_region('chromosome','Un.004.10515',850,900)
         | 
| 56 | 
            +
                @genes_inclusive = @small_slice.genes(true)
         | 
| 57 | 
            +
                @genes_exclusive = @small_slice.genes
         | 
| 58 | 
            +
                
         | 
| 59 | 
            +
                @large_slice = Slice.fetch_by_region('contig','AAFC03055312',1,18210)
         | 
| 60 | 
            +
                @repeats_inclusive = @large_slice.repeat_features(true).select{|r| r.analysis_id == 6}
         | 
| 61 | 
            +
              end
         | 
| 62 | 
            +
              
         | 
| 63 | 
            +
              def test_get_gene
         | 
| 64 | 
            +
                assert_equal(1, @genes_inclusive.length)
         | 
| 65 | 
            +
                assert_equal('ENSBTAG00000039669', @genes_inclusive[0].stable_id)
         | 
| 66 | 
            +
                assert_equal(0, @genes_exclusive.length)
         | 
| 67 | 
            +
              end
         | 
| 68 | 
            +
              
         | 
| 69 | 
            +
              def test_get_repeat_features
         | 
| 70 | 
            +
                assert_equal(2, @repeats_inclusive.length)
         | 
| 71 | 
            +
              end
         | 
| 72 | 
            +
            end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            class ExcisingSlice < Test::Unit::TestCase
         | 
| 75 | 
            +
              def setup
         | 
| 76 | 
            +
                @original_slice = Slice.fetch_by_region('chromosome','1',1,1000)
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
              
         | 
| 79 | 
            +
              def test_excise_one_range
         | 
| 80 | 
            +
                output = @original_slice.excise([20..50])
         | 
| 81 | 
            +
                assert_equal(2, output.length)
         | 
| 82 | 
            +
                assert_equal('chromosome:Btau_4.0:1:1:19:1', output[0].to_s)
         | 
| 83 | 
            +
                assert_equal('chromosome:Btau_4.0:1:51:1000:1', output[1].to_s)
         | 
| 84 | 
            +
              end
         | 
| 85 | 
            +
              
         | 
| 86 | 
            +
              def test_excise_two_nonoverlapping_ranges
         | 
| 87 | 
            +
                output = @original_slice.excise([20..50,100..200])
         | 
| 88 | 
            +
                assert_equal(3, output.length)
         | 
| 89 | 
            +
                assert_equal('chromosome:Btau_4.0:1:1:19:1', output[0].to_s)
         | 
| 90 | 
            +
                assert_equal('chromosome:Btau_4.0:1:51:99:1', output[1].to_s)
         | 
| 91 | 
            +
                assert_equal('chromosome:Btau_4.0:1:201:1000:1', output[2].to_s)
         | 
| 92 | 
            +
              end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
              def test_excise_two_overlapping_ranges
         | 
| 95 | 
            +
                output = @original_slice.excise([20..150,100..200])
         | 
| 96 | 
            +
                assert_equal(2, output.length)
         | 
| 97 | 
            +
                assert_equal('chromosome:Btau_4.0:1:1:19:1', output[0].to_s)
         | 
| 98 | 
            +
                assert_equal('chromosome:Btau_4.0:1:201:1000:1', output[1].to_s)
         | 
| 99 | 
            +
              end
         | 
| 100 | 
            +
             | 
| 101 | 
            +
              def test_excise_two_adjacent_ranges
         | 
| 102 | 
            +
                output = @original_slice.excise([20..99,100..200])
         | 
| 103 | 
            +
                assert_equal(2, output.length)
         | 
| 104 | 
            +
                assert_equal('chromosome:Btau_4.0:1:1:19:1', output[0].to_s)
         | 
| 105 | 
            +
                assert_equal('chromosome:Btau_4.0:1:201:1000:1', output[1].to_s)
         | 
| 106 | 
            +
              end
         | 
| 107 | 
            +
              
         | 
| 108 | 
            +
              def test_excise_internal_ranges
         | 
| 109 | 
            +
                output = @original_slice.excise([20..300,100..200])
         | 
| 110 | 
            +
                assert_equal(2, output.length)
         | 
| 111 | 
            +
                assert_equal('chromosome:Btau_4.0:1:1:19:1', output[0].to_s)
         | 
| 112 | 
            +
                assert_equal('chromosome:Btau_4.0:1:201:1000:1', output[1].to_s)
         | 
| 113 | 
            +
              end
         | 
| 114 | 
            +
             | 
| 115 | 
            +
              
         | 
| 116 | 
            +
            end
         | 
| @@ -0,0 +1,125 @@ | |
| 1 | 
            +
            #
         | 
| 2 | 
            +
            # = test/unit/test_transcript.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 File.expand_path File.join(File.dirname(__FILE__),"../../helper.rb")
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            include Ensembl::Core
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            DBConnection.connect('homo_sapiens', 50)
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            class CodingPositions < Test::Unit::TestCase
         | 
| 16 | 
            +
              def setup
         | 
| 17 | 
            +
                # Transcript tr_fw is ENST00000215574
         | 
| 18 | 
            +
                @tr_fw = Transcript.find(73491)
         | 
| 19 | 
            +
                # Transcript tr_rev is ENST00000358041
         | 
| 20 | 
            +
                @tr_rev = Transcript.find(73774)
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def test_transcript_coords
         | 
| 24 | 
            +
                assert_equal(482733, @tr_fw.seq_region_start)
         | 
| 25 | 
            +
                assert_equal(493084, @tr_fw.seq_region_end)
         | 
| 26 | 
            +
                assert_equal(595371, @tr_rev.seq_region_start)
         | 
| 27 | 
            +
                assert_equal(598309, @tr_rev.seq_region_end)
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              def test_coding_regions_genomic_coords_of_fw
         | 
| 31 | 
            +
                assert_equal(482932, @tr_fw.coding_region_genomic_start)
         | 
| 32 | 
            +
                assert_equal(492552, @tr_fw.coding_region_genomic_end)
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
              def test_coding_regions_genomic_coords_of_rev
         | 
| 36 | 
            +
                assert_equal(597652, @tr_rev.coding_region_genomic_start)
         | 
| 37 | 
            +
                assert_equal(598047, @tr_rev.coding_region_genomic_end)
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
              
         | 
| 40 | 
            +
              def test_coding_regions_cdna_coords_of_fw
         | 
| 41 | 
            +
                assert_equal(200, @tr_fw.coding_region_cdna_start)
         | 
| 42 | 
            +
                assert_equal(910, @tr_fw.coding_region_cdna_end)
         | 
| 43 | 
            +
              end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
              def test_coding_regions_cdna_coords_of_rev
         | 
| 46 | 
            +
                assert_equal(263, @tr_rev.coding_region_cdna_start)
         | 
| 47 | 
            +
                assert_equal(658, @tr_rev.coding_region_cdna_end)
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
              
         | 
| 50 | 
            +
            end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            class GenomicVsCDna < Test::Unit::TestCase
         | 
| 53 | 
            +
              #From BioMart. Columns:
         | 
| 54 | 
            +
              #  Ensembl_Transcript_ID
         | 
| 55 | 
            +
              #  Chromosome
         | 
| 56 | 
            +
              #  Gene_Start
         | 
| 57 | 
            +
              #  Gene_End
         | 
| 58 | 
            +
              #  Transcript_Start
         | 
| 59 | 
            +
              #  Transcript_End
         | 
| 60 | 
            +
              #  Strand
         | 
| 61 | 
            +
              #  Gene
         | 
| 62 | 
            +
              #  Exon_Chr_Start
         | 
| 63 | 
            +
              #  Exon_Chr_End
         | 
| 64 | 
            +
              #  Exon_Rank_in_Transcript
         | 
| 65 | 
            +
              #  phase
         | 
| 66 | 
            +
              #ENST00000215574	19	482733	493084	482733	493084	1	CDC34	482733	483108	1	-1
         | 
| 67 | 
            +
              #ENST00000215574	19	482733	493084	482733	493084	1	CDC34	486837	486923	2	0
         | 
| 68 | 
            +
              #ENST00000215574	19	482733	493084	482733	493084	1	CDC34	487243	487340	3	0
         | 
| 69 | 
            +
              #ENST00000215574	19	482733	493084	482733	493084	1	CDC34	488013	488147	4	2
         | 
| 70 | 
            +
              #ENST00000215574	19	482733	493084	482733	493084	1	CDC34	492339	493084	5	2
         | 
| 71 | 
            +
              #
         | 
| 72 | 
            +
              #ENST00000315489	19	414360	425983	414360	425983	-1	C19orf19	425621	425983	1	-1
         | 
| 73 | 
            +
              #ENST00000315489	19	414360	425983	414360	425983	-1	C19orf19	423394	423501	2	1
         | 
| 74 | 
            +
              #ENST00000315489	19	414360	425983	414360	425983	-1	C19orf19	418649	418762	3	1
         | 
| 75 | 
            +
              #ENST00000315489	19	414360	425983	414360	425983	-1	C19orf19	414360	415364	4	1
         | 
| 76 | 
            +
              def setup
         | 
| 77 | 
            +
                # Transcript tr_fw is ENST00000215574
         | 
| 78 | 
            +
                @tr_fw = Transcript.find(73491)
         | 
| 79 | 
            +
                # Transcript tr_rev is ENST00000315489
         | 
| 80 | 
            +
                @tr_rev = Transcript.find(73411)
         | 
| 81 | 
            +
              end
         | 
| 82 | 
            +
              
         | 
| 83 | 
            +
              def test_identify_exon
         | 
| 84 | 
            +
                assert_equal(Exon.find(374767), @tr_fw.exon_for_cdna_position(601))
         | 
| 85 | 
            +
                assert_equal(Exon.find(374767), @tr_fw.exon_for_genomic_position(488053))
         | 
| 86 | 
            +
                assert_equal(Exon.find(374458), @tr_rev.exon_for_cdna_position(541))
         | 
| 87 | 
            +
                assert_equal(Exon.find(374458), @tr_rev.exon_for_genomic_position(418719))
         | 
| 88 | 
            +
              end
         | 
| 89 | 
            +
              
         | 
| 90 | 
            +
              def test_cdna2genomic
         | 
| 91 | 
            +
                assert_equal(488052, @tr_fw.cdna2genomic(601))
         | 
| 92 | 
            +
                assert_equal(418693, @tr_rev.cdna2genomic(541))
         | 
| 93 | 
            +
              end
         | 
| 94 | 
            +
              
         | 
| 95 | 
            +
              def test_cds2genomic
         | 
| 96 | 
            +
                assert_equal(488052, @tr_fw.cds2genomic(401))
         | 
| 97 | 
            +
                assert_equal(418693, @tr_rev.cds2genomic(304))
         | 
| 98 | 
            +
              end
         | 
| 99 | 
            +
              
         | 
| 100 | 
            +
              def test_genomic2cdna
         | 
| 101 | 
            +
                assert_equal(601, @tr_fw.genomic2cdna(488052))
         | 
| 102 | 
            +
                assert_equal(541, @tr_rev.genomic2cdna(418693))
         | 
| 103 | 
            +
              end
         | 
| 104 | 
            +
              
         | 
| 105 | 
            +
              def test_genomic2cds
         | 
| 106 | 
            +
                assert_equal(401, @tr_fw.genomic2cds(488052))
         | 
| 107 | 
            +
                assert_equal(304, @tr_rev.genomic2cds(418693))
         | 
| 108 | 
            +
              end
         | 
| 109 | 
            +
            end
         | 
| 110 | 
            +
             | 
| 111 | 
            +
            class TestIntron < Test::Unit::TestCase
         | 
| 112 | 
            +
              def setup
         | 
| 113 | 
            +
                @transcript = Transcript.find(58973)
         | 
| 114 | 
            +
                @introns = @transcript.introns
         | 
| 115 | 
            +
              end
         | 
| 116 | 
            +
              
         | 
| 117 | 
            +
              def test_get_introns
         | 
| 118 | 
            +
                assert_equal(2, @introns.length)
         | 
| 119 | 
            +
              end
         | 
| 120 | 
            +
              
         | 
| 121 | 
            +
              def test_intron_slices
         | 
| 122 | 
            +
                assert_equal('chromosome:NCBI36:8:159418:172128:-1', @introns[0].slice.to_s)
         | 
| 123 | 
            +
              end
         | 
| 124 | 
            +
            end
         | 
| 125 | 
            +
             |