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)
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
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)
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=(',', ': '))