Exemple #1
0
def test_IntensityMatrix_custom(data):
    # IntensityMatrix
    # must build intensity matrix before accessing any intensity matrix methods.

    # bin interval of 0.5, eg. for double charge ions
    # intensity matrix, bin interval = 0.5, boundary +/- 0.25
    im = build_intensity_matrix(data, 0.5, 0.25, 0.25)
    assert isinstance(im, IntensityMatrix)

    # size of intensity matrix (#scans, #bins)
    assert isinstance(im.size, tuple)
    assert im.size == (2103, 900)

    # start mass
    assert isinstance(im.min_mass, float)
    assert im.min_mass == 50.2516

    # end mass
    assert isinstance(im.max_mass, float)
    assert im.max_mass == 499.7516

    # the index of the nearest mass to 73.3m/z
    index = im.get_index_of_mass(73.3)
    assert isinstance(index, int)
    assert index == 46

    # the nearest mass to 73.3m/z
    assert isinstance(im.get_mass_at_index(index), float)
    assert im.get_mass_at_index(index) == 73.2516

    # get the list of masses (bin centers), and print the first ten
    masses = im.mass_list
    assert isinstance(masses, list)
    assert masses[0] == 50.2516
Exemple #2
0
def test_build_intensity_matrix_errors(data, obj):
    with pytest.raises(
            TypeError,
            match="'<=' not supported between instances of '.*' and 'int'"):
        build_intensity_matrix(data, bin_interval=obj)

    with pytest.raises(TypeError, match="'bin_left' must be a number."):
        build_intensity_matrix(data, bin_left=obj)

    with pytest.raises(TypeError, match="'bin_right' must be a number."):
        build_intensity_matrix(data, bin_right=obj)

    with pytest.raises(TypeError, match="'min_mass' must be a number."):
        build_intensity_matrix(data, min_mass=obj)

    with pytest.raises(ValueError,
                       match="The bin interval must be larger than zero."):
        build_intensity_matrix(data, bin_interval=0)
Exemple #3
0
"""proc.py
"""
# This file has been replaced by jupyter/NoiseSmoothing.ipynb

from pyms.GCMS.IO.ANDI import ANDI_reader
from pyms.IntensityMatrix import build_intensity_matrix
from pyms.Noise.SavitzkyGolay import savitzky_golay_im

# read the raw data
andi_file = "data/gc01_0812_066.cdf"
data = ANDI_reader(andi_file)

# build an intensity matrix object from the data
im = build_intensity_matrix(data)

# Use Savitzky-Golay filtering to smooth all IC's in the IM
print("Smoothing ...")
im_smooth = savitzky_golay_im(im)
print("Done")

# find the IC for derivatisation product ion before smoothing
ic = im.get_ic_at_index(73)

# find the IC for derivatisation product ion after smoothing
ic_smooth = im_smooth.get_ic_at_index(73)

ic.write("output/ic.dat", minutes=True)
ic_smooth.write("output/ic_smooth.dat", minutes=True)
Exemple #4
0
def test_build_intensity_matrix(data):
    # todo

    for obj in [test_dict, *test_lists, test_string, *test_numbers]:
        with pytest.raises(TypeError):
            build_intensity_matrix(obj)
    for obj in [test_dict, *test_lists, test_string]:
        with pytest.raises(TypeError):
            build_intensity_matrix(data, bin_interval=obj)
    for obj in [test_dict, *test_lists, test_string]:
        with pytest.raises(TypeError):
            build_intensity_matrix(data, bin_left=obj)
    for obj in [test_dict, *test_lists, test_string]:
        with pytest.raises(TypeError):
            build_intensity_matrix(data, bin_right=obj)
    for obj in [test_dict, *test_lists, test_string]:
        with pytest.raises(TypeError):
            build_intensity_matrix(data, min_mass=obj)
    with pytest.raises(ValueError):
        build_intensity_matrix(data, bin_interval=0)
Exemple #5
0
# This file has been replaced by jupyter/IntensityMatrix.ipynb

import pathlib
data_directory = pathlib.Path(".").resolve().parent.parent / "pyms-data"
# Change this if the data files are stored in a different location

from pyms.GCMS.IO.JCAMP import JCAMP_reader
from pyms.IntensityMatrix import build_intensity_matrix

# read the raw data
jcamp_file = data_directory / "gc01_0812_066.jdx"
data = JCAMP_reader(jcamp_file)

# IntensityMatrix
# must build intensity matrix before accessing any intensity matrix methods.

# bin interval of 0.5, eg. for double charge ions
print("intensity matrix, bin interval = 0.5, boundary +/- 0.25")
im = build_intensity_matrix(data, 0.5, 0.25, 0.25)

print(" -> size of intensity matrix (#scans, #bins):", im.size)

print(im.mass_list[:10])

print(" -> start mass:", im.min_mass)
print(" -> end mass:", im.max_mass)

index = im.get_index_of_mass(73.3)
print(" -> the index of the nearest mass to 73.3m/z is:", index)
print(" -> the nearest mass to 73.3m/z is:", im.get_mass_at_index(index))
Exemple #6
0
def im(data):
    # build an intensity matrix object from the data
    return build_intensity_matrix(data)
Exemple #7
0
def test_build_intensity_matrix_errors_data(obj):
    with pytest.raises(TypeError, match="'data' must be a GCMS_data object"):
        build_intensity_matrix(obj)