Example #1
0
    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)
Example #2
0
    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', )
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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,
        )
Example #6
0
    def test_model_representation(self):

        name = 'Saccharomyces cerevisiae'
        reference = EntryFactory()

        species = models.Species.objects.create(
            name=name,
            reference=reference,
        )

        self.assertEqual(str(species), name)
Example #7
0
    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))
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
 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,
     )
Example #11
0
    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)