Source code for gui.core.Standardize

import numpy as np
import pandas as pd
from PyQt5 import QtWidgets

from gui.ui.Standardize import Ui_Form
from gui.util.Modules import Modules
from libpyhat.spectral_data import SpectralData


[docs] class Standardize(Ui_Form, Modules):
[docs] def setupUi(self, Form): super().setupUi(Form) Modules.setupUi(self, Form)
[docs] def get_widget(self): return self.groupBox
[docs] def connectWidgets(self): self.setComboBox(self.chooseDataComboBox, self.datakeys) self.setComboBox(self.comboBox, self.datakeys)
[docs] def run(self): if 'Standardization Vectors' in self.datakeys: pass else: Modules.data_count += 1 self.list_amend( self.datakeys, Modules.data_count, 'Standardization Vectors' ) datakey_to_scale = self.chooseDataComboBox.currentText() datakey_to_fit = self.comboBox.currentText() try: self.data[datakey_to_scale].scale( df_to_fit=self.data[datakey_to_fit].df ) print( datakey_to_scale + " standardized using spectral channel " "mean and standard deviations from " + datakey_to_fit ) try: scaler = self.data[datakey_to_scale].scaler scaler_out = pd.DataFrame( np.vstack((scaler.var_, scaler.mean_)).T, columns=['variance', 'mean'] ) spect_label = self.data[datakey_to_fit].spect_label scaler_out.index = [(spect_label, x) for x in self.data[datakey_to_fit].df[ spect_label].columns.values] scaler_out = scaler_out.T scaler_out.reset_index( names=[('meta', 'vector')], inplace=True ) scaler_out[('meta', 'Dataset')] = datakey_to_fit scaler_out.columns = pd.MultiIndex.from_tuples( scaler_out.columns ) try: self.data['Standardization Vectors'] = SpectralData( pd.concat( [self.data['Standardization Vectors'].df, scaler_out] ), name='Standardization Vectors' ) except: self.data['Standardization Vectors'] = SpectralData( scaler_out, name='Standardization Vectors', meta_label='meta', spect_label=spect_label ) except: pass except: pass
if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Standardize() ui.setupUi(Form) Form.show() sys.exit(app.exec_())