def test_size_of_load_experimental_request(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     experimental_request.load_experimental_request()
     self.assertEqual(1,
                      len(experimental_request.opil_experimental_requests))
 def test_size_of_load_sampleset_template_from_protocol_interface(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     experimental_request.load_sample_template_from_protocol_interface()
     self.assertIsNotNone(experimental_request.sample_template)
     self.assertEqual('http://aquarium.bio/htc_design',
                      experimental_request.sample_template.identity)
 def test_experimental_reference_url_annotation(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     experimental_request.load_experimental_request()
     self.assertEqual(
         'https://docs.google.com/document/d/foo', experimental_request.
         opil_experimental_requests[0].experiment_reference_url)
 def test_size_of_sample_sets(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()))
     self.assertEqual(2, len(experimental_request.opil_sample_sets))
 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_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)
示例#7
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()