def test_size_of_create_subcomponents_from_template(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     measurement_table = MeasurementTable(
         self._create_dummy_measurement_table())
     measurement_table.process_table()
     experimental_request.load_from_measurement_table(measurement_table)
     experimental_request.load_sample_template_from_protocol_interface()
     experimental_request.create_subcomponents_from_template()
     self.assertEqual(4, len(experimental_request.sample_template.features))
 def test_subcomponent_names(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     measurement_table = MeasurementTable(
         self._create_dummy_measurement_table())
     measurement_table.process_table()
     experimental_request.load_from_measurement_table(measurement_table)
     experimental_request.load_sample_template_from_protocol_interface()
     experimental_request.create_subcomponents_from_template()
     expected_subcomponent_names = [
         'Antibiotic', 'Inducer', 'Media', 'Strain'
     ]
     for feature in experimental_request.sample_template.features:
         self.assertTrue(feature.name in expected_subcomponent_names)
 def test_for_original_sample_set_by_identity(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     measurement_table = MeasurementTable(
         self._create_dummy_measurement_table())
     measurement_table.process_table()
     experimental_request.load_from_measurement_table(measurement_table)
     experimental_request.load_sample_template_from_protocol_interface()
     experimental_request.create_subcomponents_from_template()
     experimental_request.load_sample_set(
         len(measurement_table.get_intents()))
     actual_sample_set_identities = [
         sample.identity for sample in experimental_request.opil_sample_sets
     ]
     self.assertTrue('http://aquarium.bio/culture_conditions' in
                     actual_sample_set_identities)
 def test_size_of_add_variable_features_from_measurement_intents(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     measurement_table = MeasurementTable(
         self._create_dummy_measurement_table())
     measurement_table.process_table()
     experimental_request.load_from_measurement_table(measurement_table)
     experimental_request.load_sample_template_from_protocol_interface()
     experimental_request.create_subcomponents_from_template()
     experimental_request.load_sample_set(
         len(measurement_table.get_intents()))
     experimental_request.add_variable_features_from_measurement_intents(
         measurement_table.get_intents())
     self.assertEqual(2, len(experimental_request.opil_sample_sets))
     sample_set1 = experimental_request.opil_sample_sets[0]
     sample_set2 = experimental_request.opil_sample_sets[1]
     self.assertEqual(3, len(sample_set1.variable_features))
     self.assertEqual(3, len(sample_set2.variable_features))
示例#5
0
    def _process_opil(self):
        if not self.processed_protocol_name:
            raise IntentParserException(
                'Name of lab must be provided for describing an experimental request but'
                'none was given.')

        opil_lab_template = self._lab_protocol_accessor.load_protocol_interface_from_lab(
            self.processed_protocol_name, self.processed_lab_name)
        experiment_id = self.processed_lab.to_structured_request()[
            dc_constants.EXPERIMENT_ID]
        experimental_request = ExperimentalRequest(
            self._get_namespace_from_lab(), opil_lab_template, experiment_id,
            self._experiment_ref, self._experiment_ref_url)
        experimental_request.load_experimental_request()

        # add control table info
        if self.processed_controls:
            for control_table in self.processed_controls.values():
                experimental_request.load_from_control_table(control_table)

        # add measurement table info
        if self.measurement_table:
            experimental_request.load_from_measurement_table(
                self.measurement_table)
            experimental_request.load_sample_template_from_protocol_interface()
            experimental_request.create_subcomponents_from_template()
            experimental_request.load_sample_set(
                len(self.measurement_table.get_intents()))
            experimental_request.add_variable_features_from_measurement_intents(
                self.measurement_table.get_intents())
            experimental_request.load_and_update_measurement(
                self.measurement_table.get_intents())

        # add parameter table info
        if self.processed_parameter:
            experimental_request.load_lab_parameters()
            experimental_request.update_parameter_values(
                self.processed_parameter.get_default_parameters())
            experimental_request.add_run_parameters(self.processed_parameter)

        experimental_request.connect_properties()
        self.opil_document = experimental_request.to_opil()