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
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
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
def test_intensity_array_errors(self, obj, im, expects): with pytest.raises(expects): IntensityMatrix(im.time_list, im.mass_list, obj)
def test_mass_list_errors(self, obj, im, expects): with pytest.raises(TypeError): IntensityMatrix(im.time_list, obj, im.intensity_array)
def test_creation(self, im): assert isinstance(im, IntensityMatrix) IntensityMatrix(im.time_list, im.mass_list, im.intensity_array)