From 2ee26168bc41888759e18bed4fc99a22e79c8400 Mon Sep 17 00:00:00 2001 From: Lan Le Date: Tue, 27 Aug 2024 15:27:12 +0200 Subject: [PATCH 1/5] feat WIP: handle zip lcms --- chem_spectra/lib/composer/lcms.py | 140 +++++++++++++++++ chem_spectra/lib/converter/lcms/__init__.py | 0 chem_spectra/lib/converter/lcms/base.py | 22 +++ chem_spectra/model/transformer.py | 14 ++ tests/fixtures/source/lcms/lcms.zip | Bin 0 -> 11273365 bytes tests/lib/composer/test_lcms_composer.py | 37 +++++ .../lib/converter/lcms/test_lcms_converter.py | 147 ++++++++++++++++++ 7 files changed, 360 insertions(+) create mode 100644 chem_spectra/lib/composer/lcms.py create mode 100644 chem_spectra/lib/converter/lcms/__init__.py create mode 100644 chem_spectra/lib/converter/lcms/base.py create mode 100644 tests/fixtures/source/lcms/lcms.zip create mode 100644 tests/lib/composer/test_lcms_composer.py create mode 100644 tests/lib/converter/lcms/test_lcms_converter.py diff --git a/chem_spectra/lib/composer/lcms.py b/chem_spectra/lib/composer/lcms.py new file mode 100644 index 00000000..9d401c03 --- /dev/null +++ b/chem_spectra/lib/composer/lcms.py @@ -0,0 +1,140 @@ +import tempfile # noqa: E402 + +from chem_spectra.lib.composer.base import BaseComposer # noqa: E402 + + +TEXT_SPECTRUM_ORIG = '$$ === CHEMSPECTRA SPECTRUM ORIG ===\n' +TEXT_MS_DATA_TABLE = '##DATA TABLE= (XY..XY), PEAKS\n' # '##XYDATA= (X++(Y..Y))\n' # noqa + +class LCMSComposer(BaseComposer): + def __init__(self, core): + super().__init__(core) + self.title = core.fname + self.meta = self.__compose() + + def __gen_headers_spectrum_orig(self): + return [ + '\n', + TEXT_SPECTRUM_ORIG, + '##TITLE={}\n'.format(self.title), + '##JCAMP-DX=5.00\n', + '##DATA TYPE={}\n'.format('LC/MS'), + '##DATA CLASS= NTUPLES\n', + '##ORIGIN=\n', + '##OWNER=\n', + '##SPECTROMETER/DATA SYSTEM=\n', + # '##.SPECTROMETER TYPE={}\n'.format(self.core.dic.get('SPECTROMETER TYPE', '')), # TRAP # noqa: E501 + # '##.INLET={}\n'.format(self.core.dic.get('INLET', '')), # GC + # '##.IONIZATION MODE={}\n'.format(self.core.dic.get('IONIZATION MODE', '')), # EI+ # noqa: E501 + '##$CSCATEGORY=SPECTRUM\n', + # '##$CSSCANAUTOTARGET={}\n'.format(self.core.auto_scan), + # '##$CSSCANEDITTARGET={}\n'.format( + # self.core.edit_scan or self.core.auto_scan + # ), + # '##$CSSCANCOUNT={}\n'.format(len(self.core.datatables)), + # '##$CSTHRESHOLD={}\n'.format(self.core.thres / 100), + ] + + def __gen_ntuples_begin(self): + return ['##NTUPLES={}\n'.format('MASS SPECTRUM')] + + def __gen_ntuples_end(self): + return ['##END NTUPLES={}\n'.format('MASS SPECTRUM')] + + def __gen_config(self): + return [ + '##VAR_NAME= MASS, INTENSITY, RETENTION TIME\n', + '##SYMBOL= X, Y, T\n', + '##VAR_TYPE= INDEPENDENT, DEPENDENT, INDEPENDENT\n', + '##VAR_FORM= AFFN, AFFN, AFFN\n', + '##VAR_DIM= , , 3\n', + '##UNITS= M/Z, RELATIVE ABUNDANCE, SECONDS\n', + '##FIRST= , , 1\n', + # '##LAST= , , {}\n'.format(len(self.core.datatables)), + ] + + def __gen_ms_spectra(self): + msspcs = [] + ms_tempfile = tempfile.TemporaryFile() + for time, value in self.core.data.items(): + xs, ys = value['mz'], value['intensities'] + msspc = [ + '##PAGE={}\n'.format(time), + '##NPOINTS={}\n'.format(len(value['mz'])), + '##DATA TABLE= (XY..XY), PEAKS\n', + ] + for idx in range(len(xs)): + my_content = '{}, {};\n'.format(xs[idx], ys[idx]) + msspc += my_content + file_content = ''.join(msspc) + ms_tempfile.write(file_content.encode('utf-8')) + + ms_tempfile.seek(0) + lines = ms_tempfile.readlines() + decoded_lines = [line.decode('utf-8').strip() for line in lines] + msspcs = '\n'.join(decoded_lines) + ms_tempfile.close() + return msspcs + + def __compose(self): + meta = [] + meta.extend(self.__gen_headers_spectrum_orig()) + + meta.extend(self.__gen_ntuples_begin()) + meta.extend(self.__gen_config()) + meta.extend(self.__gen_ms_spectra()) + meta.extend(self.__gen_ntuples_end()) + + # meta.extend(self.generate_original_metadata()) + + meta.extend(self.gen_ending()) + return meta + + # def __prism(self, spc): + # blues_x, blues_y, greys_x, greys_y = [], [], [], [] + # thres = 0 + # if spc.shape[0] > 0: # RESOLVE_VSMBNAN2 + # thres = spc[:, 1].max() * (self.core.thres / 100) + + # for pt in spc: + # x, y = pt[0], pt[1] + # if y >= thres: + # blues_x.append(x) + # blues_y.append(y) + # else: + # greys_x.append(x) + # greys_y.append(y) + # return blues_x, blues_y, greys_x, greys_y + + # def prism_peaks(self): + # idx = (self.core.edit_scan or self.core.auto_scan) - 1 + # spc = self.core.spectra[idx] + # return self.__prism(spc) + tuple([idx+1]) + + def tf_img(self): + # plt.rcParams['figure.figsize'] = [16, 9] + # plt.rcParams['font.size'] = 14 + # # PLOT data + # blues_x, blues_y, greys_x, greys_y, _ = self.prism_peaks() + # plt.bar(greys_x, greys_y, width=0, edgecolor='#dddddd') + # plt.bar(blues_x, blues_y, width=0, edgecolor='#1f77b4') + + # # PLOT label + # plt.xlabel('X (m/z)', fontsize=18) + # plt.ylabel('Y (Relative Abundance)', fontsize=18) + # plt.grid(False) + + # # Save + # tf = tempfile.NamedTemporaryFile(suffix='.png') + # plt.savefig(tf, format='png') + # tf.seek(0) + # plt.clf() + # plt.cla() + # return tf + return None + + def tf_csv(self): + return None + + def generate_nmrium(self): + return None \ No newline at end of file diff --git a/chem_spectra/lib/converter/lcms/__init__.py b/chem_spectra/lib/converter/lcms/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/chem_spectra/lib/converter/lcms/base.py b/chem_spectra/lib/converter/lcms/base.py new file mode 100644 index 00000000..c8600144 --- /dev/null +++ b/chem_spectra/lib/converter/lcms/base.py @@ -0,0 +1,22 @@ +import os +import pandas as pd +from chem_spectra.lib.converter.share import parse_params + +class LCMSBaseConverter: + def __init__(self, target_dir, params=False, fname=''): + self.params = parse_params(params) + self.typ = None + self.fname = fname + if target_dir is None: + self.data = None + else: + self.data = self.__read(target_dir, fname) + + def __read(self, target_dir, fname): + spectra_file_path = os.path.join(target_dir, 'MZ_Spectra.csv') + data_frame = pd.read_csv(spectra_file_path, index_col='time', header=0) + grouped_df = data_frame.groupby('time').agg(list) + grouped_dict = {time: {'mz': group['mz'], 'intensities': group['intensities']} for time, group in grouped_df.iterrows()} + return grouped_dict + + diff --git a/chem_spectra/model/transformer.py b/chem_spectra/model/transformer.py index fd8b363f..4d5fe8ff 100644 --- a/chem_spectra/model/transformer.py +++ b/chem_spectra/model/transformer.py @@ -13,9 +13,11 @@ from chem_spectra.lib.converter.fid.base import FidBaseConverter from chem_spectra.lib.converter.fid.bruker import FidHasBruckerProcessed from chem_spectra.lib.converter.bagit.base import BagItBaseConverter +from chem_spectra.lib.converter.lcms.base import LCMSBaseConverter from chem_spectra.lib.converter.ms import MSConverter from chem_spectra.lib.composer.ni import NIComposer from chem_spectra.lib.composer.ms import MSComposer +from chem_spectra.lib.composer.lcms import LCMSComposer from chem_spectra.lib.composer.base import BaseComposer # noqa: F401 from chem_spectra.lib.converter.nmrium.base import NMRiumDataConverter import matplotlib.pyplot as plt # noqa: E402 @@ -63,6 +65,13 @@ def search_bag_it_file(td): except: # noqa: E722 return False +def search_lcms_file(td): + try: + target_dir = find_dir(td, 'MZ_Spectra.csv') + return target_dir + except: # noqa: E722 + return False + class TransformerModel: def __init__(self, file, molfile=None, params=False, multiple_files=False): @@ -180,9 +189,14 @@ def zip2cvp(self): return nicv, nicp, invalid_molfile else: is_bagit = search_bag_it_file(td) + is_lcms = search_lcms_file(td) if is_bagit: bagcv = BagItBaseConverter(td, self.params, self.file.name) return bagcv, bagcv, False + elif is_lcms: + lcms_cv = LCMSBaseConverter(td, self.params, self.file.name) + lcms_np = LCMSComposer(lcms_cv) + return lcms_cv, lcms_np, False return False, False, False diff --git a/tests/fixtures/source/lcms/lcms.zip b/tests/fixtures/source/lcms/lcms.zip new file mode 100644 index 0000000000000000000000000000000000000000..8379c210e67f725a5e6f9ab69569133a22cadcd7 GIT binary patch literal 11273365 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 lIxQW3~_^0|Eq_+RVUjw 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