diff --git a/massql/msql_extract.py b/massql/msql_extract.py index 0b22b7f..42629b1 100644 --- a/massql/msql_extract.py +++ b/massql/msql_extract.py @@ -55,6 +55,12 @@ def _extract_mzML_scan(input_filename, spectrum_identifier_list): for spec in run: if str(spec.ID) in spectrum_identifier_set: try: + try: + int(spec.ms_level) + except: + # This is likely a UV spectrum + continue + peaks = spec.peaks("raw") # Filtering out zero rows @@ -83,12 +89,8 @@ def _extract_mzML_scan(input_filename, spectrum_identifier_list): spectrum_obj = {} spectrum_obj["peaks"] = peaks_list - try: - spectrum_obj["mslevel"] = int(spec.ms_level) - except: - # This is likely a UV spectrum - continue spectrum_obj["scan"] = str(spec.ID) + spectrum_obj["mslevel"] = int(spec.ms_level) if spec.ms_level > 1: msn_mz = spec.selected_precursors[0]["mz"] @@ -96,7 +98,7 @@ def _extract_mzML_scan(input_filename, spectrum_identifier_list): output_list.append(spectrum_obj) except: - raise + pass return output_list diff --git a/tests/test_extraction.py b/tests/test_extraction.py index fb3541c..c4c08bd 100644 --- a/tests/test_extraction.py +++ b/tests/test_extraction.py @@ -87,12 +87,26 @@ def test_waters_uv_extract(): output_mzML_filename="extracted.mzML", output_summary="extracted.tsv") +def test_waters_uv_extract2(): + query = "QUERY scaninfo(MS2DATA)" + results_df = msql_engine.process_query(query, "tests/data/GT15A.mzML") + + results_df["filename"] = "MMSRG_027.mzML" + results_df = results_df.head() + + merged_summary_df = msql_extract._extract_spectra(results_df, + "tests/data/", + output_mzML_filename="extracted.mzML", + output_json_filename="extracted.json", + output_summary="extracted.tsv") + def main(): #test_extract_mzML() #test_extract_mzXML() #test_extract_MGF() #test_gnps_library_extract() - test_waters_uv_extract() + #test_waters_uv_extract() + test_waters_uv_extract2() if __name__ == "__main__":