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