Skip to content

Commit 3b55373

Browse files
committed
Add test for importing exporting corems spectrum with annotations and isotopes
1 parent 0bbd60e commit 3b55373

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from corems.mass_spectrum.input.numpyArray import ms_from_array_centroid
2+
from corems.molecular_id.search.molecularFormulaSearch import SearchMolecularFormulas
3+
from corems.encapsulation.factory.parameters import MSParameters
4+
from corems.mass_spectrum.output.export import HighResMassSpecExport
5+
from corems.mass_spectrum.input.coremsHDF5 import ReadCoreMSHDF_MassSpectrum
6+
7+
def prep_mass_spec_obj():
8+
# Test for generating accurate molecular formula from a single mass using the local sql database
9+
# Now also tests that it is handling isotopes correctly (for non-adducts)
10+
mz = [760.58156938877, 761.58548]
11+
abundance = [1, 0.4]
12+
rp, s2n = [[1, 1],[1, 1]]
13+
14+
MSParameters.mass_spectrum.noise_threshold_method = 'relative_abundance'
15+
MSParameters.mass_spectrum.noise_threshold_absolute_abundance = 0
16+
17+
MSParameters.molecular_search.url_database = ''
18+
MSParameters.molecular_search.error_method = 'None'
19+
MSParameters.molecular_search.min_ppm_error = -5
20+
MSParameters.molecular_search.max_ppm_error = 5
21+
MSParameters.molecular_search.mz_error_range = 1
22+
MSParameters.molecular_search.isProtonated = True
23+
MSParameters.molecular_search.isRadical= False
24+
MSParameters.molecular_search.isAdduct= False
25+
26+
usedatoms = {'C': (1,57) , 'H': (4,200), 'N': (0,1)}
27+
MSParameters.molecular_search.usedAtoms = usedatoms
28+
mass_spectrum_obj = ms_from_array_centroid(mz, abundance, rp, s2n, 'single mf search', polarity=1, auto_process=True)
29+
return mass_spectrum_obj
30+
31+
def run_molecular_formula_search(mass_spectrum_obj):
32+
mass_spectrum_obj.molecular_search_settings.use_min_peaks_filter = False
33+
mass_spectrum_obj.molecular_search_settings.use_isotopologue_filter = False
34+
SearchMolecularFormulas(mass_spectrum_obj, find_isotopologues=True).run_worker_ms_peaks([mass_spectrum_obj[0]])
35+
return mass_spectrum_obj
36+
37+
mass_spectrum_obj = prep_mass_spec_obj()
38+
mass_spectrum_obj = run_molecular_formula_search(mass_spectrum_obj)
39+
ms_df1 = mass_spectrum_obj.to_dataframe()
40+
assert mass_spectrum_obj[0][0].string == 'C56 H73 N1'
41+
assert ms_df1.shape == (2, 26)
42+
43+
exportMS = HighResMassSpecExport('my_mass_spec', mass_spectrum_obj)
44+
exportMS._output_type = 'hdf5'
45+
exportMS.save()
46+
47+
parser = ReadCoreMSHDF_MassSpectrum('my_mass_spec.hdf5')
48+
mass_spectrum_obj2 = parser.get_mass_spectrum(auto_process=True, load_settings=True)
49+
50+
# Below errors out:
51+
ms_df2 = mass_spectrum_obj2.to_dataframe()
52+

0 commit comments

Comments
 (0)