def testDetailedSummary_noFinders(self): amr_detection_summary = AMRDetectionSummaryResistance( self.resfinder_table1_files, self.resfinder_table_empty.set_index('Isolate ID'), self.quality_module_table_file_1, self.pointfinder_table_empty.set_index('Isolate ID'), self.plasmidfinder_table_empty.set_index('Isolate ID')) detailed_summary = amr_detection_summary.create_detailed_summary() self.assertEqual(2, len(detailed_summary.index), 'Invalid number of rows, expected 2') self.assertEqual('file1', detailed_summary.index[0], 'File name not equal') self.assertEqual('file1', detailed_summary.index[1], 'File name not equal') self.assertEqual('Plasmid', detailed_summary['Data Type'].iloc[0], 'Incorrect Data Type') self.assertEqual('Resistance', detailed_summary['Data Type'].iloc[1], 'Incorrect Data Type') self.assertEqual('None', detailed_summary['Gene'].iloc[0], 'Genes not equal') self.assertEqual('None', detailed_summary['Gene'].iloc[1], 'Genes not equal') self.assertEqual('', detailed_summary['Predicted Phenotype'].iloc[0], 'Predicted Phenotype not equal') self.assertEqual('Sensitive', detailed_summary['Predicted Phenotype'].iloc[1], 'Predicted Phenotype not equal')
def testDetailedSummary_noPoint(self): plasmid_table = self.plasmidfinder_table1 plasmid_table['Isolate ID'] = 'file1' plasmid_table = plasmid_table.set_index('Isolate ID') amr_detection_summary = AMRDetectionSummaryResistance( self.resfinder_table1_files, self.resfinder_table1.set_index('Isolate ID'), self.quality_module_table_file_1, plasmidfinder_dataframe=plasmid_table) detailed_summary = amr_detection_summary.create_detailed_summary() self.assertEqual(2, len(detailed_summary.index), 'Invalid number of rows, expected 2') self.assertEqual('file1', detailed_summary.index[0], 'File name not equal') self.assertEqual('file1', detailed_summary.index[1], 'File name not equal') self.assertEqual('Plasmid', detailed_summary['Data Type'].iloc[0], 'Incorrect Data Type') self.assertEqual('Resistance', detailed_summary['Data Type'].iloc[1], 'Incorrect Data Type') self.assertEqual('IncFIB(S)', detailed_summary['Gene'].iloc[0], 'Genes not equal') self.assertEqual('blaIMP-42', detailed_summary['Gene'].iloc[1], 'Genes not equal') self.assertEqual('', detailed_summary['Predicted Phenotype'].iloc[0], 'Predicted Phenotype not equal') self.assertEqual('', detailed_summary['Predicted Phenotype'].iloc[1], 'Predicted Phenotype not equal')
def testPointfinderResfinder(self): amr_detection_summary = AMRDetectionSummaryResistance(self.files, self.resfinder_table, self.pointfinder_table) summary = amr_detection_summary.create_summary() self.assertEqual(1, len(summary.index), 'Invalid number of rows in results') self.assertEqual('file1', summary.index[0], 'File name not equal') self.assertEqual('blaIMP-42, gyrA', summary['Genotype'].iloc[0], 'Genes not equal') self.assertEqual('ampicillin, amoxi/clav, cefoxitin, ceftriaxone, meropenem, ciprofloxacin I/R, nalidixic acid', summary['Predicted Phenotype'].iloc[0], 'Phenotypes not equal')
def testResfinderDuplicateResistances(self): amr_detection_summary = AMRDetectionSummaryResistance(self.files, self.resfinder_table_duplicate_resistances) summary = amr_detection_summary.create_summary() self.assertEqual(1, len(summary.index), 'Invalid number of rows in results') self.assertEqual('file1', summary.index[0], 'File name not equal') self.assertEqual('blaCTX-M-55, blaIMP-42', summary['Genotype'].iloc[0], 'Genes not equal') self.assertEqual('ampicillin, ceftriaxone', summary['Predicted Phenotype'].iloc[0], 'Phenotypes not equal')
def testPointfinder(self): amr_detection_summary = AMRDetectionSummaryResistance(self.files, self.resfinder_table_empty, self.pointfinder_table) summary = amr_detection_summary.create_summary() self.assertEqual(1, len(summary.index), 'Invalid number of rows in results') self.assertEqual('file1', summary.index[0], 'File name not equal') self.assertEqual('gyrA', summary['Genotype'].iloc[0], 'Genes not equal') self.assertEqual('ciprofloxacin I/R, nalidixic acid', summary['Predicted Phenotype'].iloc[0], 'Phenotypes not equal')
def _create_detailed_amr_summary(self, files: List[str], resfinder_dataframe: DataFrame, quality_module_dataframe: DataFrame, pointfinder_dataframe: Optional[BlastResultsParserPointfinder], plasmidfinder_dataframe: DataFrame, mlst_dataframe) -> DataFrame: amr_detection_summary = AMRDetectionSummaryResistance(files, resfinder_dataframe,quality_module_dataframe, pointfinder_dataframe, plasmidfinder_dataframe, mlst_dataframe) return amr_detection_summary.create_detailed_summary(self._include_negative_results)
def _create_amr_summary(self, files, resfinder_dataframe, quality_module_dataframe,pointfinder_dataframe, plasmidfinder_dataframe, mlst_dataframe): amr_detection_summary = AMRDetectionSummaryResistance(files, resfinder_dataframe,quality_module_dataframe,pointfinder_dataframe, plasmidfinder_dataframe, mlst_dataframe) return amr_detection_summary.create_summary(self._include_negative_results)
def testDetailedSummary_multiFiles(self): amr_detection_summary = AMRDetectionSummaryResistance( self.detailed_summary_multi_files, self.resfinder_table_mult_file.set_index('Isolate ID'), self.quality_module_table_file_1_and_2_and_4_and_5, self.pointfinder_table_multiple_gene.set_index('Isolate ID'), self.plasmidfinder_table_mult_file.set_index('Isolate ID')) detailed_summary = amr_detection_summary.create_detailed_summary() self.assertEqual(12, len(detailed_summary.index), 'Invalid number of rows, expected 12') self.assertEqual('file1', detailed_summary.index[0], 'File name not equal') self.assertEqual('file1', detailed_summary.index[4], 'File name not equal') self.assertEqual('file2', detailed_summary.index[5], 'File name not equal') self.assertEqual('file2', detailed_summary.index[6], 'File name not equal') self.assertEqual('file4', detailed_summary.index[7], 'File name not equal') self.assertEqual('file4', detailed_summary.index[9], 'File name not equal') self.assertEqual('file5', detailed_summary.index[10], 'File name not equal') self.assertEqual('file5', detailed_summary.index[11], 'File name not equal') self.assertEqual('Plasmid', detailed_summary['Data Type'].iloc[0], 'Incorrect Data Type') self.assertEqual('Resistance', detailed_summary['Data Type'].iloc[1], 'Incorrect Data Type') self.assertEqual('Plasmid', detailed_summary['Data Type'].iloc[5], 'Incorrect Data Type') self.assertEqual('Resistance', detailed_summary['Data Type'].iloc[6], 'Incorrect Data Type') self.assertEqual('Plasmid', detailed_summary['Data Type'].iloc[8], 'Incorrect Data Type') self.assertEqual('Resistance', detailed_summary['Data Type'].iloc[9], 'Incorrect Data Type') self.assertEqual('Plasmid', detailed_summary['Data Type'].iloc[10], 'Incorrect Data Type') self.assertEqual('Resistance', detailed_summary['Data Type'].iloc[11], 'Incorrect Data Type') self.assertEqual('None', detailed_summary['Gene'].iloc[0], 'Genes not equal') self.assertEqual('blaIMP-42', detailed_summary['Gene'].iloc[1], 'Genes not equal') self.assertEqual('None', detailed_summary['Gene'].iloc[5], 'Genes not equal') self.assertEqual('blaIMP-42', detailed_summary['Gene'].iloc[6], 'Genes not equal') self.assertEqual('IncFIB(S)', detailed_summary['Gene'].iloc[7], 'Genes not equal') self.assertEqual('None', detailed_summary['Gene'].iloc[9], 'Genes not equal') self.assertEqual('IncFIB(K)', detailed_summary['Gene'].iloc[10], 'Genes not equal') self.assertEqual('None', detailed_summary['Gene'].iloc[11], 'Genes not equal') self.assertEqual('Sensitive', detailed_summary['Predicted Phenotype'].iloc[9], 'Predicted Phenotype not equal') self.assertEqual('Sensitive', detailed_summary['Predicted Phenotype'].iloc[11], 'Predicted Phenotype not equal')