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_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))
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()
def test_size_of_load_sampleset_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.assertEqual(1, len(experimental_request.opil_sample_sets))