File: test_obo.py

package info (click to toggle)
python-pymzml 0.7.6-dfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 66,128 kB
  • ctags: 335
  • sloc: python: 2,428; makefile: 142; sh: 38
file content (74 lines) | stat: -rw-r--r-- 2,362 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
72
73
74
import unittest
import os

import pymzml.obo

class TestObo(unittest.TestCase):

    def test_valid_obo(self):
        # Test features of the OBO that differ for each version
        obos = {
            version: pymzml.obo.oboTranslator(version)
            for version in ('1.18.2', '2.0.0', '2.01.0')
        }

        # Changes from 1.18.2 to 2.0.0
        self.assertEqual(
            obos['1.18.2']['MS:0000000'],
            'Proteomics Standards Initiative Mass Spectrometry Ontology'
        )
        self.assertEqual(
            obos['2.0.0']['MS:0000000'],
            'Proteomics Standards Initiative Mass Spectrometry Vocabularies'
        )
        self.assertEqual(
            obos['2.0.0']['MS:0000000'],
            obos['2.01.0']['MS:0000000'],
        )

        # Changes from 2.0.0 to 2.01.0
        self.assertEqual(obos['1.18.2']['MS:1000854'], None)
        self.assertEqual(obos['2.0.0']['MS:1000854'], None)
        self.assertEqual(obos['2.01.0']['MS:1000854'], 'LTQ XL')

    def test_most_recent_obo(self):
        obo = pymzml.obo.oboTranslator()
        self.assertEqual(obo.version, None)

        # Changes only implemented in 3.78.0
        self.assertEqual(
            obo[obo['MS:1000130']]['is_a'],
            'MS:1000808 ! chromatogram attribute',
        )

    def test_invalid_obo(self):
        with self.assertRaises(Exception):
            obo = pymzml.obo.oboTranslator('1.1.1')
            parsing_on_demand = obo['MS:1002569']

    def test_getitem(self):
        obo = pymzml.obo.oboTranslator('3.78.0')
        data = {
            'id': 'MS:1002569',
            'name': 'ProteomeDiscoverer:Number of Spectra Processed At Once',
            'def': '"Number of spectra processed at once in a ProteomeDiscoverer search." [PSI:PI]',
            'xref': 'value-type:xsd\:int "The allowed value-type for this CV term."',
            'is_a': 'MS:1002101 ! ProteomeDiscoverer input parameter',
        }

        # Lookup by ID and get name
        self.assertEqual(obo[data['id']], data['name'])

        # Lookup by name and get a dict
        self.assertEqual(obo[data['name']], data)

        # Nested lookup
        self.assertEqual(obo[obo[data['id']]], data)

        # Lookup by definition and get a name
        self.assertEqual(obo[data['def']], data)



if __name__ == '__main__':
    unittest.main()