Пример #1
0
    def testMutationPositionGapReferenceStartMiddleEnd(self):
        mutation_position = 3
        # @formatter:off
        database_amr_gene_string = "CCC---GAC"
        input_genome_string = "CCCATCGAC"
        # @formatter:on
        # @formatter:on
        amr_gene_start = 1

        mutation = CodonMutationPosition(mutation_position,
                                         database_amr_gene_string,
                                         input_genome_string, amr_gene_start)

        self.assertEqual(mutation.get_nucleotide_position(), 4,
                         'Incorrect nucleotide position')
        self.assertEqual(mutation.get_codon_start(), 2,
                         'Incorrect codon start')
        self.assertEqual(mutation.get_mutation_position(), 2,
                         'Incorrect mutation start')
        self.assertEqual(mutation.get_database_amr_gene_codon(), '---',
                         'Incorrect database codon')
        self.assertEqual(mutation.get_input_genome_codon(), 'ATC',
                         'Incorrect query codon')
        self.assertEqual(mutation.get_database_amr_gene_mutation(), 'ins',
                         'Incorrect database amino acid')
        self.assertEqual(mutation.get_input_genome_mutation(), 'I',
                         'Incorrect query amino acid')
        self.assertEqual(mutation.get_mutation_string_short(), 'ins2I',
                         'Incorrect string')
Пример #2
0
    def testMutationPositionGapBeforeAfter(self):
        mutation_position = 3
        # @formatter:off
        database_amr_gene_string = "CCCATCGACT"
        input_genome_string = "-CCA--GA-T"
        # @formatter:on
        amr_gene_start = 1

        mutation = CodonMutationPosition(mutation_position,
                                         database_amr_gene_string,
                                         input_genome_string, amr_gene_start)

        self.assertEqual(mutation.get_nucleotide_position(), 4,
                         'Incorrect nucleotide position')
        self.assertEqual(mutation.get_codon_start(), 2,
                         'Incorrect codon start')
        self.assertEqual(mutation.get_mutation_position(), 2,
                         'Incorrect mutation start')
        self.assertEqual(mutation.get_database_amr_gene_codon(), 'ATC',
                         'Incorrect database codon')
        self.assertEqual(mutation.get_input_genome_codon(), 'A--',
                         'Incorrect query codon')
        self.assertEqual(mutation.get_database_amr_gene_mutation(), 'I',
                         'Incorrect database amino acid')
        self.assertEqual(mutation.get_input_genome_mutation(), 'del',
                         'Incorrect query amino acid')
        self.assertEqual(mutation.get_mutation_string_short(), 'I2del',
                         'Incorrect string')
Пример #3
0
    def testMutationPositionGapReferenceEnd(self):
        mutation_position = 2
        # @formatter:off
        database_amr_gene_string = "AT-G"
        input_genome_string = "ATCG"
        # @formatter:on
        amr_gene_start = 1

        mutation = CodonMutationPosition(mutation_position,
                                         database_amr_gene_string,
                                         input_genome_string, amr_gene_start)

        self.assertEqual(mutation.get_nucleotide_position(), 3,
                         'Incorrect nucleotide position')
        self.assertEqual(mutation.get_codon_start(), 1,
                         'Incorrect codon start')
        self.assertEqual(mutation.get_mutation_position(), 1,
                         'Incorrect mutation start')
        self.assertEqual(mutation.get_database_amr_gene_codon(), 'AT-',
                         'Incorrect database codon')
        self.assertEqual(mutation.get_input_genome_codon(), 'ATC',
                         'Incorrect query codon')
        self.assertEqual(mutation.get_database_amr_gene_mutation(), 'ins',
                         'Incorrect database amino acid')
        self.assertEqual(mutation.get_input_genome_mutation(), 'I',
                         'Incorrect query amino acid')
        self.assertEqual(mutation.get_mutation_string_short(), 'ins1I',
                         'Incorrect string')
Пример #4
0
    def testMutationPositionMiddleCodon1(self):
        mutation_position = 1
        # @formatter:off
        database_amr_gene_string = "ATCGATCGA"
        input_genome_string = "AGCGATCGA"
        # @formatter:on
        amr_gene_start = 1

        mutation = CodonMutationPosition(mutation_position,
                                         database_amr_gene_string,
                                         input_genome_string, amr_gene_start)

        self.assertEqual(mutation.get_nucleotide_position(), 2,
                         'Incorrect nucleotide position')
        self.assertEqual(mutation.get_codon_start(), 1,
                         'Incorrect codon start')
        self.assertEqual(mutation.get_mutation_position(), 1,
                         'Incorrect mutation start')
        self.assertEqual(mutation.get_database_amr_gene_codon(), 'ATC',
                         'Incorrect database codon')
        self.assertEqual(mutation.get_input_genome_codon(), 'AGC',
                         'Incorrect query codon')
        self.assertEqual(mutation.get_database_amr_gene_mutation(), 'I',
                         'Incorrect database amino acid')
        self.assertEqual(mutation.get_input_genome_mutation(), 'S',
                         'Incorrect query amino acid')
        self.assertEqual(mutation.get_mutation_string_short(), 'I1S',
                         'Incorrect string')
Пример #5
0
    def testMutationPositionStartCodon1Stop(self):
        mutation_position = 2
        # @formatter:off
        database_amr_gene_string = "TACGATCGA"
        input_genome_string = "TAAGATCGA"
        # @formatter:on
        amr_gene_start = 1

        mutation = CodonMutationPosition(mutation_position,
                                         database_amr_gene_string,
                                         input_genome_string, amr_gene_start)

        self.assertEqual(mutation.get_nucleotide_position(), 3,
                         'Incorrect nucleotide position')
        self.assertEqual(mutation.get_codon_start(), 1,
                         'Incorrect codon start')
        self.assertEqual(mutation.get_mutation_position(), 1,
                         'Incorrect mutation start')
        self.assertEqual(mutation.get_database_amr_gene_codon(), 'TAC',
                         'Incorrect database codon')
        self.assertEqual(mutation.get_input_genome_codon(), 'TAA',
                         'Incorrect query codon')
        self.assertEqual(mutation.get_database_amr_gene_mutation(), 'Y',
                         'Incorrect database amino acid')
        self.assertEqual(mutation.get_input_genome_mutation(), '*',
                         'Incorrect query amino acid')
        self.assertEqual(mutation.get_mutation_string_short(), 'Y1*',
                         'Incorrect string')
Пример #6
0
    def testMutationPositionStartCodon3(self):
        mutation_position = 6
        # @formatter:off
        database_amr_gene_string = "ATCGATCGA"
        input_genome_string = "ATCGATGGA"
        # @formatter:on
        amr_gene_start = 1

        mutation = CodonMutationPosition(mutation_position,
                                         database_amr_gene_string,
                                         input_genome_string, amr_gene_start)

        self.assertEqual(mutation.get_nucleotide_position(), 7,
                         'Incorrect nucleotide position')
        self.assertEqual(mutation.get_codon_start(), 3,
                         'Incorrect codon start')
        self.assertEqual(mutation.get_mutation_position(), 3,
                         'Incorrect mutation start')
        self.assertEqual(mutation.get_database_amr_gene_codon(), 'CGA',
                         'Incorrect database codon')
        self.assertEqual(mutation.get_input_genome_codon(), 'GGA',
                         'Incorrect query codon')
        self.assertEqual(mutation.get_database_amr_gene_mutation(), 'R',
                         'Incorrect database amino acid')
        self.assertEqual(mutation.get_input_genome_mutation(), 'G',
                         'Incorrect query amino acid')
        self.assertEqual(mutation.get_mutation_string_short(), 'R3G',
                         'Incorrect string')
Пример #7
0
    def testMutationPositionEndCodon2(self):
        mutation_position = 5
        # @formatter:off
        database_amr_gene_string = "ATCGATCGA"
        input_genome_string = "ATCGACCGA"
        # @formatter:on
        amr_gene_start = 1

        mutation = CodonMutationPosition(mutation_position,
                                         database_amr_gene_string,
                                         input_genome_string, amr_gene_start)

        self.assertEqual(mutation.get_nucleotide_position(), 6,
                         'Incorrect nucleotide position')
        self.assertEqual(mutation.get_codon_start(), 2,
                         'Incorrect codon start')
        self.assertEqual(mutation.get_mutation_position(), 2,
                         'Incorrect mutation start')
        self.assertEqual(mutation.get_database_amr_gene_codon(), 'GAT',
                         'Incorrect database codon')
        self.assertEqual(mutation.get_input_genome_codon(), 'GAC',
                         'Incorrect query codon')
        self.assertEqual(mutation.get_database_amr_gene_mutation(), 'D',
                         'Incorrect database amino acid')
        self.assertEqual(mutation.get_input_genome_mutation(), 'D',
                         'Incorrect query amino acid')
        self.assertEqual(mutation.get_mutation_string_short(), 'D2D',
                         'Incorrect string')
Пример #8
0
    def _get_mutation_positions(self, start):
        amr_seq = self.get_amr_gene_seq()
        genome_seq = self.get_genome_contig_hsp_seq()

        # @formatter:off
        return [
            CodonMutationPosition(i, amr_seq, genome_seq, start)
            for i in self._get_match_positions()
        ]
    def testGetResistanceCodons1MutationStartCodon(self):
        mutation_position = 0
        amr_gene_string = "ATCGATCGA"
        genome_string = "ATGGATCGA"
        amr_gene_start = 1
        mutation_start_methionine = CodonMutationPosition(
            mutation_position, amr_gene_string, genome_string, amr_gene_start)
        resistance_mutations = self.database.get_resistance_codons(
            'gyrA', [mutation_start_methionine])

        self.assertEqual(resistance_mutations, [],
                         "Did not pick up correct mutations")
    def setUp(self):
        pandas_pointfinder_table = pd.DataFrame([
            ['gyrA', 'gyrA', 1, 1, 'ATC', 'I', 'F', 'Quinolones', 15848289],
            ['gyrA', 'gyrA', 1, 2, 'GAT', 'D', 'N,H', 'Quinolones', 15848289],
        ],
                                                columns=(
                                                    '#Gene_ID', 'Gene_name',
                                                    'No of mutations needed',
                                                    'Codon_pos', 'Ref_nuc',
                                                    'Ref_codon', 'Res_codon',
                                                    'Resistance', 'PMID'))

        self.database = PointfinderDatabaseInfo.from_pandas_table(
            pandas_pointfinder_table)

        mutation_position = 0
        amr_gene_string = "ATCGATCGA"
        genome_string = "TTCGATCGA"
        amr_gene_start = 1
        self.mutation1 = CodonMutationPosition(mutation_position,
                                               amr_gene_string, genome_string,
                                               amr_gene_start)

        mutation_position = 3
        amr_gene_string = "ATCGATCGA"
        genome_string = "ATCAATCGA"
        amr_gene_start = 1
        self.mutation2 = CodonMutationPosition(mutation_position,
                                               amr_gene_string, genome_string,
                                               amr_gene_start)

        mutation_position = 8
        amr_gene_string = "ATCGATCGA"
        genome_string = "ATCGATCGT"
        amr_gene_start = 1
        self.mutation_missing = CodonMutationPosition(mutation_position,
                                                      amr_gene_string,
                                                      genome_string,
                                                      amr_gene_start)
    def testGetResistanceCodons1MutationAANotMatch(self):
        mutation_position = 3
        amr_gene_string = "ATCGATCGA"
        genome_string = "ATCGAACGA"
        amr_gene_start = 1
        mutation_aa_not_match = CodonMutationPosition(mutation_position,
                                                      amr_gene_string,
                                                      genome_string,
                                                      amr_gene_start)
        resistance_mutations = self.database.get_resistance_codons(
            'gyrA', [mutation_aa_not_match])

        self.assertEqual(resistance_mutations, [],
                         "Did not pick up correct mutations")
Пример #12
0
    def _get_mutation_positions(self, start):
        mutation_positions_filtered = []
        codon_starts = []

        amr_seq = self.get_amr_gene_seq()
        genome_seq = self.get_genome_contig_hsp_seq()

        # Only return mutation position objects with unique codon start positions
        mutation_positions = [
            CodonMutationPosition(i, amr_seq, genome_seq, start)
            for i in self._get_match_positions()
        ]

        for m in mutation_positions:
            if m._codon_start not in codon_starts:
                codon_starts.append(m._codon_start)
                mutation_positions_filtered.append(m)

        # @formatter:off
        return mutation_positions_filtered