def test_save_with_same_reference_omics_units(self): # Create two OmicsUnits with the same identifier but for different # strains/types identifier = 'CAGL0B00990g' OmicsUnitFactory(reference=EntryFactory(identifier=identifier), strain=StrainFactory(), type=OmicsUnitTypeFactory()) OmicsUnitFactory(reference=EntryFactory(identifier=identifier), strain=self.strain, type=self.omics_unit_type) parser = PixelSetParser( Path('apps/submission/fixtures/dataset-0002/data.txt'), description=self.description, analysis=self.analysis, omics_unit_type=self.omics_unit_type, strain=self.strain, ) parser.parse() self._load_cgd_entries() self.assertEqual(Pixel.objects.count(), 0) parser.save() # Even if we've created two OmicsUnits with the same reference # identifier, only the pixel corresponding to the OmicsUnit with the # relevant strain & OmicsUnitType will be imported. Hence, we expect # to have created 7 pixels and not 8, see: # - https://github.com/Candihub/pixel/pull/292 # - https://github.com/Candihub/pixel/pull/296 self.assertEqual(Pixel.objects.count(), 7)
def setUp(self): species = models.Species.objects.create( name='Saccharomyces cerevisiae', reference=EntryFactory(), description='lorem ipsum', ) self.strain = models.Strain.objects.create( name='S288c / XJ24-24a', species=species, ) self.reference = EntryFactory() self.type = models.OmicsUnitType.objects.create(name='Promoter', )
def test_fills_rows_correctly(self): entity = EntryFactory.create() pixel_sets = factories.PixelSetFactory.create_batch(2) pixel_1 = factories.PixelFactory.create(omics_unit__reference=entity, pixel_set=pixel_sets[0]) pixel_2 = factories.PixelFactory.create(omics_unit__reference=entity, pixel_set=pixel_sets[1]) pixel_set_ids = [pixel_set.id for pixel_set in pixel_sets] expected_row = """ <tr> <th>0</th> <td><a href="{url}">{identifier}</a></td> <td>{description}</td> <td>{value_1}</td> <td>{quality_score_1}</td> <td>{value_2}</td> <td>{quality_score_2}</td> </tr> """.format( url=entity.url, identifier=entity.identifier, description=entity.description, value_1=pixel_1.value, quality_score_1=pixel_1.quality_score, value_2=pixel_2.value, quality_score_2=pixel_2.quality_score, ) html = export_pixelsets_as_html(pixel_set_ids=pixel_set_ids) self.assertInHTML(expected_row, html) self.assertNotIn('<span class="highlight">', html)
def setUp(self): self.species_name = 'Saccharomyces cerevisiae' self.species_reference = EntryFactory() self.species_description = 'lorem ipsum' self.species = models.Species.objects.create( name=self.species_name, reference=self.species_reference, description=self.species_description)
def setUp(self): # OmicsUnit species = models.Species.objects.create( name='Saccharomyces cerevisiae', reference=EntryFactory(), description='lorem ipsum', ) strain = models.Strain.objects.create( name='S288c / XJ24-24a', species=species, ) reference = EntryFactory() type = models.OmicsUnitType.objects.create(name='Promoter') self.omics_unit = models.OmicsUnit.objects.create( reference=reference, strain=strain, type=type, ) # Analysis omics_area = models.OmicsArea.objects.create(name='RNAseq') experiment = models.Experiment.objects.create( omics_area=omics_area, completed_at=datetime.date(1980, 10, 14), released_at=datetime.date(1980, 10, 14), ) pixeler = models.Pixeler.objects.create(username='******', email='*****@*****.**', password='******') self.analysis = models.Analysis.objects.create( pixeler=pixeler, completed_at=datetime.date(1980, 10, 14), ) self.analysis.secondary_data.name = ( factories.SECONDARY_DATA_DEFAULT_PATH) self.analysis.save() self.analysis.experiments.add(experiment) # Pixel set self.pixel_set = factories.PixelSetFactory( analysis=self.analysis, pixels_file__from_path=factories.PIXELS_DEFAULT_PATH, )
def test_model_representation(self): name = 'Saccharomyces cerevisiae' reference = EntryFactory() species = models.Species.objects.create( name=name, reference=reference, ) self.assertEqual(str(species), name)
def test_can_add_entries_to_experiment(self): experiment = models.Experiment.objects.create( description='lorem ipsum', omics_area=self.omics_area, completed_at=datetime.date(1980, 10, 14), released_at=datetime.date(1980, 10, 14), ) entries = [EntryFactory() for e in range(2)] experiment.entries.add(*entries) self.assertEqual(experiment.entries.count(), len(entries))
def test_can_create_species_without_description(self): name = 'Saccharomyces cerevisiae' reference = EntryFactory() qs = models.Species.objects.all() self.assertEqual(qs.count(), 0) species = models.Species.objects.create( name=name, reference=reference, ) self.assertEqual(species.name, name) self.assertEqual(species.reference.id, reference.id) self.assertEqual(qs.count(), 1)
def test_can_create_species(self): name = 'Saccharomyces cerevisiae' reference = EntryFactory() description = 'lorem ipsum' qs = models.Species.objects.all() self.assertEqual(qs.count(), 0) species = models.Species.objects.create( name=name, reference=reference, description=description, ) self.assertEqual(species.name, name) self.assertEqual(species.reference.id, reference.id) self.assertEqual(species.description, description) self.assertEqual(qs.count(), 1)
def _create_pixel_from_set(self, pixelset): entry = EntryFactory( identifier='CAGL0K09834g', description=( 'Ortholog(s) have role in response to salt stress and ' 'cytoplasm localization'), url=('http://www.candidagenome.org/cgi-bin/locus.pl?dbid=/' 'CAL0134577'), repository=Repository.objects.get(name='CGD')) omics_unit = OmicsUnitFactory( reference=entry, strain=self.strain, type=self.omics_unit_type, ) return PixelFactory( value=4.2, quality_score=0.8, omics_unit=omics_unit, pixel_set=pixelset, )
def test_can_create_strain(self): name = 'S288c / XJ24-24a' description = 'lorem ipsum' reference = EntryFactory() qs = models.Strain.objects.all() self.assertEqual(qs.count(), 0) strain = models.Strain.objects.create( name=name, description=description, species=self.species, reference=reference, ) self.assertEqual(strain.name, name) self.assertEqual(strain.description, description) self.assertEqual(strain.species.id, self.species.id) self.assertEqual(strain.reference.id, reference.id) self.assertEqual(qs.count(), 1)