Source code for iocbio.kinetics.modules.sysbio.spectro.experiment_spectro

from iocbio.kinetics.handler.experiment_generic import ExperimentGeneric
from iocbio.kinetics.constants import database_table_experiment

### Module flag
IocbioKineticsModule = ['database_schema']

### Implementation

[docs]class ExperimentSpectro(ExperimentGeneric): """General description of experiment performed on Spectrophotomer Thermo Evolution 600""" database_table = "spectro" @staticmethod def database_schema(db): db.query("CREATE TABLE IF NOT EXISTS " + db.table(ExperimentSpectro.database_table) + "(experiment_id text PRIMARY KEY, rawdata text, filename text, title text, " + "FOREIGN KEY (experiment_id) REFERENCES " + db.table(database_table_experiment) + "(experiment_id) ON DELETE CASCADE" + ")") @staticmethod def store(database, data): ExperimentGeneric.database_schema(database) ExperimentSpectro.database_schema(database) experiment_id = data.experiment_id ExperimentGeneric.store(database, experiment_id, time=data.time, type_generic=data.type_generic, type_specific=data.type, hardware="spectro") c = database print(data.config) if not database.has_record(ExperimentSpectro.database_table, experiment_id = experiment_id): c.query("INSERT INTO " + database.table(ExperimentSpectro.database_table) + "(experiment_id, rawdata, filename, title) " + "VALUES(:experiment_id,:ftxt,:fname,:exptitle)", experiment_id=experiment_id, ftxt=data.fulltext, exptitle=data.config["experiment title"], fname=data.config["this file"]) @staticmethod def get_fulltxt(database, experiment_id): hw = ExperimentGeneric.hardware(database, experiment_id) if hw != "spectro": return None print('Loading raw data for experiment:', experiment_id) return database.query("SELECT rawdata FROM " + database.table(ExperimentSpectro.database_table) + " WHERE experiment_id=:experiment_id", experiment_id=experiment_id).first().rawdata def __init__(self, database, data): ExperimentGeneric.__init__(self,database) ExperimentSpectro.database_schema(database) experiment_id = data.experiment_id self.name = data.config["this file"]
##################### #### ModuleAPI ###### def database_schema(db): ExperimentSpectro.database_schema(db)