def testNCOMuchHigherThanUnacceptable(self): file = path.join(self.test_data_dir, "test-NCO-Much-Higher-Than-Unacceptable.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-NCO-Much-Higher-Than-Unacceptable', quality_module.index[0], 'File name not equal') self.assertEqual( 110, quality_module['Number of Contigs Greater Than Or Equal To ' + str(self.minimum_contig_length) + ' bp'].iloc[0], 'Number of Contigs Greater Than Or Equal To Our Minimum Contig Length Not Equal' ) self.assertEqual('Failed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual( 'Genome length is not within the acceptable length range [{},{}] ; Number of Contigs with a length greater than or equal to the minimum Contig length [{}] exceeds the acceptable number [{}]' .format(self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_contig_length, self.unacceptable_num_contigs), quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def testNCUnacceptableByEmptyContigs(self): file = path.join(self.test_data_dir, "test-NC-Unacceptable-By-Empty-Contigs.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-NC-Unacceptable-By-Empty-Contigs', quality_module.index[0], 'File name not equal') self.assertEqual( 9, quality_module['Number of Contigs Greater Than Or Equal To ' + str(self.minimum_contig_length) + ' bp'].iloc[0], 'Number of Contigs Greater Than Or Equal To Our Minimum Contig Length Not Equal' ) self.assertEqual('Failed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual( 'Genome length is not within the acceptable length range [{},{}]'. format(self.genome_size_lower_bound, self.genome_size_upper_bound), quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def testGenomeSizeExactlyMaximum(self): file = path.join(self.test_data_dir, "test-Genome-Size-Exactly-Maximum.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-Genome-Size-Exactly-Maximum', quality_module.index[0], 'File name not equal') self.assertEqual(600, quality_module['Genome Length'].iloc[0], 'Genome length not equal') self.assertEqual('Passed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual('', quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def testN50Calculation(self): #tests to make sure N50 contig length +all contig lengths greater than it >= half of genome length, here we are testing the = part file = path.join(self.test_data_dir, "test-N50-Calculation.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-N50-Calculation', quality_module.index[0], 'File name not equal') self.assertEqual(102, quality_module['N50 value'].iloc[0], 'N50 vlaue not equal') self.assertEqual('Passed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual('', quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def testN50MuchLargerThanMinimumValue(self): file = path.join(self.test_data_dir, "test-N50-Much-Larger-Than-Minimum-Value.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-N50-Much-Larger-Than-Minimum-Value', quality_module.index[0], 'File name not equal') self.assertEqual(1000, quality_module['N50 value'].iloc[0], 'N50 vlaue not equal') self.assertEqual('Failed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual( 'Genome length is not within the acceptable length range [{},{}]'. format(self.genome_size_lower_bound, self.genome_size_upper_bound), quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def testNCOMuchLowerThanUnacceptable(self): file = path.join(self.test_data_dir, "test-NCO-Much-Lower-Than-Unacceptable.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-NCO-Much-Lower-Than-Unacceptable', quality_module.index[0], 'File name not equal') self.assertEqual( 1, quality_module['Number of Contigs Greater Than Or Equal To ' + str(self.minimum_contig_length) + ' bp'].iloc[0], 'Number of Contigs Greater Than Or Equal To Our Minimum Contig Length Not Equal' ) self.assertEqual('Passed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual('', quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def testGenomeSizeUnaffectedByEmptyContigs(self): file = path.join(self.test_data_dir, "test-Genome-Size-Unaffected-By-Empty-Contigs.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-Genome-Size-Unaffected-By-Empty-Contigs', quality_module.index[0], 'File name not equal') self.assertEqual(600, quality_module['Genome Length'].iloc[0], 'Genome length not equal') self.assertEqual('Failed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual( 'N50 value is not greater than the specified minimum value [{}]'. format(self.minimum_N50_value), quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def testGenomeSizeLargerThanMaximum(self): file = path.join(self.test_data_dir, "test-Genome-Size-Larger-Than-Maximum.fasta") files = [file] quality_module = QualityModule(files, self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value, self.minimum_contig_length, self.unacceptable_num_contigs) quality_module = quality_module.create_quality_module_dataframe() self.assertEqual(1, len(quality_module.index), 'Invalid number of rows in results') self.assertEqual('test-Genome-Size-Larger-Than-Maximum', quality_module.index[0], 'File name not equal') self.assertEqual(700, quality_module['Genome Length'].iloc[0], 'Genome length not equal') self.assertEqual('Failed', quality_module['Quality Module'].iloc[0], 'Quality result not equal') self.assertEqual( 'Genome length is not within the acceptable length range [{},{}] ; N50 value is not greater than the specified minimum value [{}]' .format(self.genome_size_lower_bound, self.genome_size_upper_bound, self.minimum_N50_value), quality_module['Quality Module Feedback'].iloc[0], 'Quality feedback not equal')
def create_quality_module_dataframe(self,files,genome_size_lower_bound,genome_size_upper_bound,minimum_N50_value, minimum_contig_length,unacceptable_num_contigs) ->DataFrame: quality_module = QualityModule(files,genome_size_lower_bound,genome_size_upper_bound,minimum_N50_value, minimum_contig_length,unacceptable_num_contigs) return quality_module.create_quality_module_dataframe()