File: test_SILACAnalyzer.py

package info (click to toggle)
openms 1.11.1-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 436,688 kB
  • ctags: 150,907
  • sloc: cpp: 387,126; xml: 71,547; python: 7,764; ansic: 2,626; php: 2,499; sql: 737; ruby: 342; sh: 325; makefile: 128
file content (92 lines) | stat: -rw-r--r-- 2,707 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import unittest,os,copy

import env
import pyopenms
from collections import defaultdict

eps = 2

class TestSILACAnalyzer(unittest.TestCase):
    """Emulates the behavior of SILACAnalyzer"""

    def setUp(self):
        self.testdirname = os.path.join(env.OPEN_MS_SRC, "source/TEST/TOPP")
        # set up files
        self.infile = os.path.join(self.testdirname, "SILACAnalyzer.mzML")

    def test_run_SILACAnalyzer(self):

        exp = pyopenms.MSExperiment()
        out_map = pyopenms.ConsensusMap()
        pyopenms.FileHandler().loadExperiment(self.infile, exp)
        exp.updateRanges()

        # 
        # 1. filter MS1 level (only keep MS1)
        # 
        tmp = copy.copy(exp)
        for spectrum in exp:
            if spectrum.getMSLevel() == 1:
                tmp.addSpectrum(spectrum)
        exp = tmp
        exp.sortSpectra(True)

        selected_labels = "Lys8"
        charge_min = 2
        charge_max = 2
        missed_cleavages = 0
        isotopes_per_peptide_min = 3
        isotopes_per_peptide_max = 3

        rt_threshold = 80
        rt_min = 0
        intensity_cutoff = 10
        intensity_correlation = 0.95
        model_deviation = 10
        allow_missing_peaks = False
        label_identifiers = {"Lys8" : 8.0141988132}

        # 
        # 2. set parameters
        # 
        analyzer = pyopenms.SILACAnalyzer()
        analyzer.initialize(
              # section sample
              selected_labels,
              charge_min,
              charge_max,
              missed_cleavages,
              isotopes_per_peptide_min,
              isotopes_per_peptide_max,
              # section "algorithm"
              rt_threshold,
              rt_min,
              intensity_cutoff,
              intensity_correlation,
              model_deviation,
              allow_missing_peaks,
              # labels
              label_identifiers)

        # 
        # 3. run
        # 
        analyzer.run_all(exp, out_map)

        out_map.sortByPosition()

        self.assertEqual(out_map.size(), 3)
        self.assertEqual(out_map[0].getQuality(), 8.0)
        self.assertEqual(out_map[1].getQuality(), 8.0)
        self.assertEqual(out_map[2].getQuality(), 8.0)

        self.assertAlmostEqual(out_map[0].getRT(), 6632.409179688, eps)
        self.assertAlmostEqual(out_map[1].getRT(), 6635.169433594, eps)
        self.assertAlmostEqual(out_map[2].getRT(), 6657.56445312, eps)

        self.assertAlmostEqual(out_map[0].getMZ(), 668.321350097656, eps)
        self.assertAlmostEqual(out_map[1].getMZ(), 670.894470214844, eps)
        self.assertAlmostEqual(out_map[2].getMZ(), 668.8262329102, eps)

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