def populate_free_pin(self): self.queue_model_hwobj.clear_model('free-pin') self.queue_model_hwobj.select_model('free-pin') sample = queue_model_objects.Sample() sample.free_pin_mode = True sample.set_name('manually-mounted') self.queue_model_hwobj.add_child( self.queue_model_hwobj.get_model_root(), sample)
def get_default_prefix(sample_data, generic_name): sample = qmo.Sample() sample.code = sample_data.get("code", "") sample.name = sample_data.get("sampleName", "") sample.location = sample_data.get("location", "").split(':') sample.crystals[0].protein_acronym = sample_data.get("proteinAcronym", "") return mxcube.session.get_default_prefix(sample, generic_name)
def samples_from_sc_content(self, sc_content): sample_list = [] for sample_info in sc_content: sample = queue_model_objects.Sample() sample.init_from_sc_sample(sample_info) sample_list.append(sample) return sample_list
def samples_from_sc_content(self, sc_basket_content, sc_sample_content): basket_list = [] sample_list = [] for basket_info in sc_basket_content: basket = queue_model_objects.Basket() basket.init_from_sc_basket(basket_info, "Puck") basket_list.append(basket) for sample_info in sc_sample_content: sample = queue_model_objects.Sample() sample.init_from_sc_sample(sample_info) sample_list.append(sample) return basket_list, sample_list
def get_default_prefix(sample_data, generic_name): if isinstance(sample_data, dict): sample = qmo.Sample() sample.code = sample_data.get("code", "") sample.name = sample_data.get("sampleName", "") sample.location = sample_data.get("location", "").split(':') sample.lims_id = sample_data.get("limsID", -1) sample.crystals[0].protein_acronym = sample_data.get("proteinAcronym", "") else: sample = sample_data return mxcube.session.get_default_prefix(sample, generic_name)
def samples_from_lims(self, lims_sample_list): barcode_samples = {} location_samples = {} for lims_sample in lims_sample_list: sample = queue_model_objects.Sample() sample.init_from_lims_object(lims_sample) if sample.lims_code: barcode_samples[sample.lims_code] = sample if sample.lims_location: location_samples[sample.lims_location] = sample return (barcode_samples, location_samples)
def samples_from_plate_content(self, plate_sample_content): row_list = [] sample_list = [] actual_row_index = -1 for sample_info in plate_sample_content: if actual_row_index < sample_info[1]: row = queue_model_objects.Basket() row_info = [sample_info[1], None] row.init_from_sc_basket(row_info, "Row") row_list.append(row) actual_row_index = sample_info[1] sample = queue_model_objects.Sample() sample.init_from_plate_sample(sample_info) sample_list.append(sample) return row_list, sample_list
def add_sample(sample_id, item): """ Adds a sample with sample id <sample_id> the queue. :param str sample_id: Sample id (often sample changer location) :returns: SampleQueueEntry """ # Is the sample with location sample_id already in the queue, # in that case, send error response for sampleId, sampleData in queue_to_dict().iteritems(): if sampleId == sample_id: msg = "[QUEUE] sample could not be added, already in the queue" raise Exception(msg) sample_model = qmo.Sample() # We should really use sample_id instead of loc_str sample_model.loc_str = sample_id sample_model.free_pin_mode = item['location'] == 'Manual' sample_model.set_name(item['sampleName']) sample_model.crystals[0].protein_acronym = item.get('proteinAcronym', '') if sample_model.free_pin_mode: sample_model.location = (None, sample_id) else: sample_model.location = tuple(map(int, item['location'].split(':'))) sample_entry = qe.SampleQueueEntry(Mock(), sample_model) sample_entry.set_enabled(True) mxcube.queue.add_child(mxcube.queue.get_model_root(), sample_model) mxcube.queue.queue_hwobj.enqueue(sample_entry) return sample_model._node_id
def __init__(self, *args): """ Descript. : """ BlissWidget.__init__(self, *args) # Internal variables ------------------------------------------------ self.sample = queue_model_objects.Sample() self.crystal = self.sample.crystals[0] self.sample_mib = DataModelInputBinder(self.sample) self.crystal_mib = DataModelInputBinder(self.crystal) # Signals ------------------------------------------------------------ # Slots -------------------------------------------------------------- self.defineSlot("populate_sample_details", ({})) # Graphic elements ---------------------------------------------------- _info_widget = QWidget(self) self.crystal_widget = loadUi(\ os.path.join(os.path.dirname(__file__), "widgets/ui_files/Qt4_crystal_widget_layout.ui")) self.sample_info_widget = loadUi( os.path.join(os.path.dirname(__file__), "widgets/ui_files/Qt4_sample_info_widget_layout.ui")) #self.ispyb_sample_info_widget = ISPyBSampleInfoWidget(self) # Layout -------------------------------------------------------------- _info_widget_hlayout = QHBoxLayout(_info_widget) _info_widget_hlayout.addWidget(self.sample_info_widget) _info_widget_hlayout.addWidget(self.crystal_widget) _info_widget_hlayout.addStretch(0) _info_widget_hlayout.setSpacing(0) _info_widget_hlayout.setContentsMargins(2, 2, 2, 2) _main_hlayout = QVBoxLayout(self) _main_hlayout.addWidget(_info_widget) #_main_hlayout.addWidget(self.ispyb_sample_info_widget) _main_hlayout.addStretch(0) _main_hlayout.setSpacing(0) _main_hlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ # Other --------------------------------------------------------------- self.crystal_mib.bind_value_update( 'space_group', self.crystal_widget.space_group_value_label, str, None) self.crystal_mib.bind_value_update( 'protein_acronym', self.crystal_widget.protein_acronym_value_label, str, None) self.crystal_mib.bind_value_update('cell_a', self.crystal_widget.a_value_label, str, None) self.crystal_mib.bind_value_update( 'cell_alpha', self.crystal_widget.alpha_value_label, str, None) self.crystal_mib.bind_value_update('cell_b', self.crystal_widget.b_value_label, str, None) self.crystal_mib.bind_value_update( 'cell_beta', self.crystal_widget.beta_value_label, str, None) self.crystal_mib.bind_value_update('cell_c', self.crystal_widget.c_value_label, str, None) self.crystal_mib.bind_value_update( 'cell_gamma', self.crystal_widget.gamma_value_label, str, None) self.sample_mib.bind_value_update( 'name', self.sample_info_widget.name_value_label, str, None) self.sample_mib.bind_value_update( 'code', self.sample_info_widget.data_matrix_value_label, str, None) self.sample_mib.bind_value_update( 'holder_length', self.sample_info_widget.holder_length_value_label, str, None) self.sample_mib.bind_value_update( 'lims_sample_location', self.sample_info_widget.sample_location_value_label, str, None) self.sample_mib.bind_value_update( 'lims_container_location', self.sample_info_widget.basket_location_value_label, str, None)
def __init__(self, *args): BaseComponents.BlissWidget.__init__(self, *args) # # Data attributes # self.sample = queue_model_objects.Sample() self.crystal = self.sample.crystals[0] self.sample_mib = DataModelInputBinder(self.sample) self.crystal_mib = DataModelInputBinder(self.crystal) # # Qt - Signals/Slots # self.defineSlot("populate_sample_details", ({})) # # Layout # main_layout = qt.QHBoxLayout(self, 11, 15, "main_layout") self.crystal_widget = CrystalWidgetLayout(self) self.sample_info_widget = SampleInfoWidgetLayout(self) main_layout.addWidget(self.sample_info_widget) main_layout.addWidget(self.crystal_widget) main_layout.addStretch(10) self.crystal_mib.bind_value_update( 'space_group', self.crystal_widget.space_group_value_label, str, None) self.crystal_mib.bind_value_update( 'protein_acronym', self.crystal_widget.protein_acronym_value_label, str, None) self.crystal_mib.bind_value_update('cell_a', self.crystal_widget.a_value_label, str, None) self.crystal_mib.bind_value_update( 'cell_alpha', self.crystal_widget.alpha_value_label, str, None) self.crystal_mib.bind_value_update('cell_b', self.crystal_widget.b_value_label, str, None) self.crystal_mib.bind_value_update( 'cell_beta', self.crystal_widget.beta_value_label, str, None) self.crystal_mib.bind_value_update('cell_c', self.crystal_widget.c_value_label, str, None) self.crystal_mib.bind_value_update( 'cell_gamma', self.crystal_widget.gamma_value_label, str, None) self.sample_mib.bind_value_update( 'name', self.sample_info_widget.name_value_label, str, None) self.sample_mib.bind_value_update( 'code', self.sample_info_widget.data_matrix_value_label, str, None) self.sample_mib.bind_value_update( 'holder_length', self.sample_info_widget.holder_length_value_label, str, None) self.sample_mib.bind_value_update( 'lims_sample_location', self.sample_info_widget.sample_location_value_label, str, None) self.sample_mib.bind_value_update( 'lims_container_location', self.sample_info_widget.basket_location_value_label, str, None)