Ejemplo n.º 1
0
 def test_equality(self, im):
     assert im == IntensityMatrix(im.time_list, im.mass_list,
                                  im.intensity_array)
     assert im != test_string
     assert im != test_int
     assert im != test_float
     assert im != test_tuple
     assert im != test_list_ints
     assert im != test_list_strs
Ejemplo n.º 2
0
def gcms_sim(
    time_list: List[float],
    mass_list: List[float],
    peak_list: List[Peak.Peak],
) -> IntensityMatrix:
    """
	Simulator of GCMS data.

	:param time_list: the list of scan times
	:param mass_list: the list of m/z channels
	:param peak_list: A list of peaks

	:return: A simulated Intensity Matrix object

	:author: Sean O'Callaghan
	"""

    n_mz = len(mass_list)
    n_scan = len(time_list)

    t1 = time_list[0]
    period = time_list[1] - t1

    # initialise a 2D numpy array for intensity matrix
    i_array = numpy.zeros((n_scan, n_mz), 'd')

    for peak in peak_list:
        print('-', end='')
        index = int((peak.rt - t1) / period)

        height = sum(peak.mass_spectrum.mass_spec)
        # standard deviation = area/(height * sqrt(2/pi))
        sigma: float = peak.area / (height *
                                    (math.sqrt(2 * math.pi)))  # type: ignore
        print("width", sigma)

        for i in range(len(peak.mass_spectrum.mass_list)):
            ion_height = peak.mass_spectrum.mass_spec[i]
            ic = chromatogram(n_scan, index, sigma, ion_height)
            i_array[:, i] += ic

    im = IntensityMatrix(time_list, mass_list, i_array)

    return im
Ejemplo n.º 3
0
def gcms_sim(time_list: List, mass_list: List,
             peak_list: Peak) -> IntensityMatrix:
    """
    Simulator of GCMS data

    :param time_list: the list of scan times
    :type time_list: list
    :param mass_list: the list of m/z channels
    :type mass_list: list
    :param peak_list: A list of peaks
    :type peak_list: :class:`list` of :class:`pyms.Peak.Class.Peak` objects

    :return: A simulated Intensity Matrix object
    :rtype: pyms.IntensityMatrix.IntensityMatrix

    :author: Sean O'Callaghan
    """

    n_mz = len(mass_list)
    n_scan = len(time_list)

    t1 = time_list[0]
    period = time_list[1] - t1

    # initialise a 2D numpy array for intensity matrix
    i_array = numpy.zeros((n_scan, n_mz), 'd')

    for peak in peak_list:
        print("-", end='')
        index = int((peak.rt - t1) / period)
        height = sum(peak.get_mass_spectrum().mass_spec)
        # standard deviation = area/(height * sqrt(2/pi))
        sigma = peak.area / (height * (math.sqrt(2 * math.pi)))
        print("width", sigma)
        for i in range(len(peak.get_mass_spectrum().mass_list)):
            ion_height = peak.get_mass_spectrum().mass_spec[i]
            ic = chromatogram(n_scan, index, sigma, ion_height)
            i_array[:, i] += ic

    im = IntensityMatrix(time_list, mass_list, i_array)

    return im
Ejemplo n.º 4
0
 def test_intensity_array_errors(self, obj, im, expects):
     with pytest.raises(expects):
         IntensityMatrix(im.time_list, im.mass_list, obj)
Ejemplo n.º 5
0
 def test_mass_list_errors(self, obj, im, expects):
     with pytest.raises(TypeError):
         IntensityMatrix(im.time_list, obj, im.intensity_array)
Ejemplo n.º 6
0
    def test_creation(self, im):
        assert isinstance(im, IntensityMatrix)

        IntensityMatrix(im.time_list, im.mass_list, im.intensity_array)