def _process_control_tables(self, control_tables):
     ref_controls = {}
     if not control_tables:
         return ref_controls
     
     for table in control_tables:
         controls_table = ControlsTable(table, 
                                        self.catalog_accessor.get_control_type(),
                                        self.catalog_accessor.get_fluid_units(),
                                        self.catalog_accessor.get_time_units()) 
         controls_data = controls_table.process_table()
         table_caption = controls_table.get_table_caption()
         if table_caption:
             ref_controls[table_caption] = controls_data
         self.validation_errors.extend(controls_table.get_validation_errors())
         self.validation_warnings.extend(controls_table.get_validation_warnings())
     return ref_controls
Exemple #2
0
    def _process_control_tables(self, control_tables, strain_mapping):
        if not control_tables:
            self.validation_errors.append(
                'No control tables to parse from document.')
            return
        try:
            for table in control_tables:
                controls_table = ControlsTable(
                    table,
                    control_types=self._CONTROL_TYPES,
                    fluid_units=self._FLUID_UNITS,
                    timepoint_units=self._TIME_UNITS,
                    strain_mapping=strain_mapping)
                controls_table.process_table()
                table_caption = controls_table.get_table_caption()
                if table_caption:
                    self.processed_controls[table_caption] = controls_table

                self.validation_errors.extend(
                    controls_table.get_validation_errors())
                self.validation_warnings.extend(
                    controls_table.get_validation_warnings())
        except IntentParserException as err:
            self.validation_errors.extend([err.get_message()])
    def process_control_tables(self, control_tables):
        if not control_tables:
            self.validation_warnings.append('No measurement table to parse from document.')
            return

        strain_mapping = {}
        try:
            strain_mapping = self.sbol_dictionary.get_mapped_strain(self.processed_labs[dc_constants.LAB])
        except (DictionaryMaintainerException, TableException) as err:
            self.validation_errors.extend([err.get_message()])

        for table in control_tables:
            controls_table = ControlsTable(table,
                                           control_types=self.catalog_accessor.get_control_type(),
                                           fluid_units=self.catalog_accessor.get_fluid_units(),
                                           timepoint_units=self.catalog_accessor.get_time_units(),
                                           strain_mapping=strain_mapping)
            controls_table.process_table()
            control_intents = controls_table.get_intents()
            table_caption = controls_table.get_table_caption()
            if table_caption:
                self.processed_controls[table_caption] = control_intents
            self.validation_errors.extend(controls_table.get_validation_errors())
            self.validation_warnings.extend(controls_table.get_validation_warnings())