File: test_species.py

package info (click to toggle)
python-cogent 1.5.3-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 16,424 kB
  • ctags: 24,343
  • sloc: python: 134,200; makefile: 100; ansic: 17; sh: 10
file content (71 lines) | stat: -rw-r--r-- 3,546 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from cogent.util.unit_test import TestCase, main
from cogent.db.ensembl.species import Species

__author__ = "Gavin Huttley, Hua Ying"
__copyright__ = "Copyright 2007-2012, The Cogent Project"
__credits__ = ["Gavin Huttley", "hua Ying"]
__license__ = "GPL"
__version__ = "1.5.3"
__maintainer__ = "Gavin Huttley"
__email__ = "Gavin.Huttley@anu.edu.au"
__status__ = "alpha"

class TestSpeciesNamemaps(TestCase):
    def test_get_name_type(self):
        """should return the (latin|common) name given a latin, common or ensembl
        db prefix names"""
        self.assertEqual(Species.getSpeciesName("human"), "Homo sapiens")
        self.assertEqual(Species.getSpeciesName("homo_sapiens"), "Homo sapiens")
        self.assertEqual(Species.getCommonName("Mus musculus"), "Mouse")
        self.assertEqual(Species.getCommonName("mus_musculus"), "Mouse")
    
    def test_get_ensembl_format(self):
        """should take common or latin names and return the corresponding
        ensembl db prefix"""
        self.assertEqual(Species.getEnsemblDbPrefix("human"), "homo_sapiens")
        self.assertEqual(Species.getEnsemblDbPrefix("mouse"), "mus_musculus")
        self.assertEqual(Species.getEnsemblDbPrefix("Mus musculus"),
                                                "mus_musculus")
    
    def test_add_new_species(self):
        """should correctly add a new species/common combination and infer the
        correct ensembl prefix"""
        species_name, common_name = "Otolemur garnettii", "Bushbaby"
        Species.amendSpecies(species_name, common_name)
        self.assertEqual(Species.getSpeciesName(species_name), species_name)
        self.assertEqual(Species.getSpeciesName("Bushbaby"), species_name)
        self.assertEqual(Species.getSpeciesName(common_name), species_name)
        self.assertEqual(Species.getCommonName(species_name), common_name)
        self.assertEqual(Species.getCommonName("Bushbaby"), common_name)
        self.assertEqual(Species.getEnsemblDbPrefix("Bushbaby"), "otolemur_garnettii")
        self.assertEqual(Species.getEnsemblDbPrefix(species_name), "otolemur_garnettii")
        self.assertEqual(Species.getEnsemblDbPrefix(common_name), "otolemur_garnettii")
    
    def test_amend_existing(self):
        """should correctly amend an existing species"""
        species_name = 'Ochotona princeps'
        common_name1 = 'american pika'
        common_name2 = 'pika'
        ensembl_pref = 'ochotona_princeps'
        Species.amendSpecies(species_name, common_name1)
        self.assertEqual(Species.getCommonName(species_name),common_name1)
        Species.amendSpecies(species_name, common_name2)
        self.assertEqual(Species.getSpeciesName(common_name2), species_name)
        self.assertEqual(Species.getSpeciesName(ensembl_pref), species_name)
        self.assertEqual(Species.getCommonName(species_name), common_name2)
        self.assertEqual(Species.getCommonName(ensembl_pref), common_name2)
        self.assertEqual(Species.getEnsemblDbPrefix(species_name),
            ensembl_pref)
        self.assertEqual(Species.getEnsemblDbPrefix(common_name2),
            ensembl_pref)
    
    def test_get_compara_name(self):
        """should correctly form valid names for assignment onto objects"""
        self.assertEqual(Species.getComparaName('pika'), 'Pika')
        self.assertEqual(Species.getComparaName('C.elegans'), 'Celegans')
        self.assertEqual(Species.getComparaName('Caenorhabditis elegans'),
                'Celegans')
    

if __name__ == "__main__":
    main()