def test_collate_samples(self):
        """Ensure collate_samples task works."""
        sample1_data = {'name': 'Sample01', KRAKEN_NAME: create_kraken()}
        sample2_data = {'name': 'Sample02', KRAKEN_NAME: create_kraken()}
        sample1 = Sample(**sample1_data).save()
        sample2 = Sample(**sample2_data).save()
        sample_group = add_sample_group(name='SampleGroup01')
        sample_group.samples = [sample1, sample2]
        db.session.commit()

        samples = [sample.fetch_safe() for sample in [sample1, sample2]]
        result = collate_samples.delay(KRAKEN_NAME, ['taxa'], samples).get()
        self.assertIn('Sample01', result)
        self.assertIn('Sample02', result)
        self.assertIn('taxa', result['Sample01'])
        self.assertIn('taxa', result['Sample02'])
Beispiel #2
0
 def test_run_taxa_tree_sample(self):  # pylint: disable=invalid-name
     """Ensure TaxaTree run_sample produces correct results."""
     kwargs = {
         KrakenResultModule.name(): create_kraken(),
         KrakenHLLResultModule.name(): create_krakenhll(),
         Metaphlan2ResultModule.name(): create_metaphlan2(),
     }
     self.generic_run_sample_test(kwargs, TaxaTreeDisplayModule)
Beispiel #3
0
    def test_tsne_returns_data(self):
        """
        Ensure run_tsne method returns array of the correct size.

        tSNE is non-deterministic so that is as close as we can get to a real test.
        """
        sample_dict = {f'SMPL_{i}': dict(create_kraken().taxa) for i in range(3)}
        tsne_output = run_tsne(sample_dict)
        self.assertEqual((3, 2), tsne_output.shape)
Beispiel #4
0
 def create_sample(i):
     """Create unique sample for index i."""
     args = {
         'name': f'Sample{i}',
         'metadata': {'foobar': f'baz{i}'},
         CARDAMRResultModule.name(): create_card_amr(),
         KrakenResultModule.name(): create_kraken(),
         Metaphlan2ResultModule.name(): create_metaphlan2(),
     }
     return Sample(**args).save()
Beispiel #5
0
 def create_sample(i):
     """Create unique sample for index i."""
     metadata = {'foobar': f'baz{i}'}
     sample_data = {
         'name': f'Sample{i}',
         'metadata': metadata,
         KRAKEN_NAME: create_kraken(),
         KRAKENHLL_NAME: create_krakenhll(),
         METAPHLAN2_NAME: create_metaphlan2(),
     }
     return Sample(**sample_data).save()
Beispiel #6
0
 def create_sample(i):
     """Create unique sample for index i."""
     return Sample(
         **{
             'name': f'Sample{i}',
             'metadata': {
                 'foobar': f'baz{i}'
             },
             KrakenResultModule.name(): create_kraken(),
             KrakenHLLResultModule.name(): create_krakenhll(),
             Metaphlan2ResultModule.name(): create_metaphlan2(),
         }).save()
Beispiel #7
0
    def test_clean_zeroed_samples(self):
        """Ensure get_clean_samples method removes features below threshold."""
        sample_dict = {f'SMPL_{i}': dict(create_kraken().taxa) for i in range(3)}
        sample_dict['SMPL_1']['somebadkingdom'] = 0.0000001

        all_feature_ids = set([])
        for feature_set in sample_dict.values():
            all_feature_ids |= set(feature_set.keys())

        result = get_clean_samples(sample_dict)

        for feature_set in result.values():
            self.assertNotIn('somebadkingdom', feature_set)
Beispiel #8
0
    def test_clean_samples(self):
        """Ensure get_clean_samples method adds missing features to all samples."""
        sample_dict = {f'SMPL_{i}': create_kraken().taxa for i in range(3)}

        all_feature_ids = set([])
        for feature_set in sample_dict.values():
            all_feature_ids |= set(feature_set.keys())

        result = get_clean_samples(sample_dict, no_zero_features=False)

        for feature_set in result.values():
            for feature_id in all_feature_ids:
                self.assertIn(feature_id, feature_set)
Beispiel #9
0
 def create_sample(i):
     """Create unique sample for index."""
     sample_data = {'name': f'SMPL_{i}', KRAKEN_NAME: create_kraken()}
     return Sample(**sample_data)
Beispiel #10
0
 def test_tool_result_names(self):
     """Ensure tool_result_names property works as expected."""
     sample_data = {'name': 'SMPL_01', KRAKEN_NAME: create_kraken()}
     sample = Sample(**sample_data).save()
     self.assertEqual(len(sample.tool_result_names), 1)
     self.assertIn(KRAKEN_NAME, sample.tool_result_names)