Ejemplo n.º 1
0
    def parameters_to_json(self):

        dict_setting = parameter_to_dict.get_dict_data_ms(self.mass_spectrum)

        dict_setting['MassSpecAttrs'] = self.get_mass_spec_attrs(mass_spectrum)
        dict_setting['analyzer'] = self.mass_spectrum.analyzer
        dict_setting['instrument_label'] = self.mass_spectrum.instrument_label
        dict_setting['sample_name'] = self.mass_spectrum.sample_name

        return json.dumps(dict_setting)
Ejemplo n.º 2
0
    def parameters_to_json(self):

        dict_setting = parameter_to_dict.get_dict_data_ms(self.mass_spectrum)

        dict_setting['MassSpecAttrs'] = self.get_mass_spec_attrs(
            self.mass_spectrum)
        dict_setting['analyzer'] = self.mass_spectrum.analyzer
        dict_setting['instrument_label'] = self.mass_spectrum.instrument_label
        dict_setting['sample_name'] = self.mass_spectrum.sample_name

        import re
        # pretty print
        output = json.dumps(dict_setting)
        # output = json.dumps(dict_setting, sort_keys=False, indent=4, separators=(',', ': '))

        # output = re.sub(r'",\s+', '", ', output)

        return output
Ejemplo n.º 3
0
    def write_settings(self, output_path, mass_spectrum):

        import json

        dict_setting = parameter_to_dict.get_dict_data_ms(mass_spectrum)

        dict_setting['MassSpecAttrs'] = self.get_mass_spec_attrs(mass_spectrum)
        dict_setting['analyzer'] = mass_spectrum.analyzer
        dict_setting['instrument_label'] = mass_spectrum.instrument_label
        dict_setting['sample_name'] = mass_spectrum.sample_name

        with open(
                output_path.with_suffix('.json'),
                'w',
                encoding='utf8',
        ) as outfile:

            output = json.dumps(dict_setting,
                                sort_keys=True,
                                indent=4,
                                separators=(',', ': '))
            outfile.write(output)
Ejemplo n.º 4
0
    def to_hdf(self):

        import h5py
        import json
        from datetime import datetime, timezone

        with h5py.File(self.output_file.with_suffix('.hdf5'),
                       'a') as hdf_handle:

            list_results = self.list_dict_to_list(self.mass_spectrum,
                                                  is_hdf5=True)

            dict_ms_attrs = self.get_mass_spec_attrs(self.mass_spectrum)

            setting_dicts = parameter_to_dict.get_dict_data_ms(
                self.mass_spectrum)

            columns_labels = json.dumps(
                self.columns_label +
                self.get_all_used_atoms_in_order(self.mass_spectrum),
                sort_keys=False,
                indent=4,
                separators=(',', ': '))

            if not hdf_handle.attrs.get('date_utc'):

                timenow = str(
                    datetime.now(
                        timezone.utc).strftime("%d/%m/%Y %H:%M:%S %Z"))
                hdf_handle.attrs['date_utc'] = timenow
                hdf_handle.attrs[
                    'file_name'] = self.mass_spectrum.filename.name
                hdf_handle.attrs['data_structure'] = 'mass_spectrum'
                hdf_handle.attrs['analyzer'] = self.mass_spectrum.analyzer
                hdf_handle.attrs[
                    'instrument_label'] = self.mass_spectrum.instrument_label
                hdf_handle.attrs[
                    'sample_name'] = self.mass_spectrum.sample_name

            group_key = str(self.mass_spectrum.scan_number)

            if group_key not in hdf_handle.keys():

                scan_group = hdf_handle.create_group(
                    str(self.mass_spectrum.scan_number))

                if list(self.mass_spectrum.abundance_profile):

                    mz_abun_array = empty(
                        shape=(2, len(self.mass_spectrum.abundance_profile)))

                    mz_abun_array[0] = self.mass_spectrum.abundance_profile
                    mz_abun_array[1] = self.mass_spectrum.mz_exp_profile

                    raw_ms_dataset = scan_group.create_dataset(
                        'raw_ms', data=mz_abun_array, dtype="f8")

                else:
                    #  create empy dataset for missing raw data
                    raw_ms_dataset = scan_group.create_dataset('raw_ms',
                                                               dtype="f8")

                raw_ms_dataset.attrs['MassSpecAttrs'] = json.dumps(
                    dict_ms_attrs)

                if isinstance(self.mass_spectrum, MassSpecfromFreq):
                    raw_ms_dataset.attrs['TransientSetting'] = json.dumps(
                        setting_dicts.get('TransientSetting'),
                        sort_keys=False,
                        indent=4,
                        separators=(',', ': '))

            else:

                scan_group = hdf_handle.get(group_key)

            # if there is not processed data len = 0, otherwise len() will return next index
            index_processed_data = str(len(scan_group.keys()))

            print('index_processed_data', index_processed_data)

            timenow = str(
                datetime.now(timezone.utc).strftime("%d/%m/%Y %H:%M:%S %Z"))

            processed_dset = scan_group.create_dataset(index_processed_data,
                                                       data=list_results)

            processed_dset.attrs['date_utc'] = timenow

            processed_dset.attrs['ColumnsLabels'] = columns_labels

            processed_dset.attrs['MoleculaSearchSetting'] = json.dumps(
                setting_dicts.get('MoleculaSearch'),
                sort_keys=False,
                indent=4,
                separators=(',', ': '))

            processed_dset.attrs['MassSpecPeakSetting'] = json.dumps(
                setting_dicts.get('MassSpecPeak'),
                sort_keys=False,
                indent=4,
                separators=(',', ': '))

            processed_dset.attrs['MassSpectrumSetting'] = json.dumps(
                setting_dicts.get('MassSpectrum'),
                sort_keys=False,
                indent=4,
                separators=(',', ': '))