Esempio n. 1
0
    def __find_original_positions_in_aligned_sequences(
            self, solution: MSASolution,
            column_positions_in_first_parent: list):
        positions = [-1 for _ in range(solution.number_of_variables)]

        for i in range(solution.number_of_variables):
            pos = column_positions_in_first_parent[i]
            positions[
                i] = solution.get_original_char_position_in_aligned_sequence(
                    i, pos)

        return positions
Esempio n. 2
0
    def test_should_get_original_char_position_in_aligned_sequence(self):
        # setup
        problem = MSA(score_list=[])
        problem.identifiers = ['seq1', 'seq2', 'seq3']
        problem.number_of_variables = 3
        msa = MSASolution(problem,
                          msa=[('seq1', '-ABC'), ('seq2', 'ABCD'),
                               ('seq3', '--AB')])

        # check
        self.assertEqual(
            1,
            msa.get_original_char_position_in_aligned_sequence(seq_index=0,
                                                               position=0))
        self.assertEqual(
            2,
            msa.get_original_char_position_in_aligned_sequence(seq_index=0,
                                                               position=1))
        self.assertEqual(
            3,
            msa.get_original_char_position_in_aligned_sequence(seq_index=0,
                                                               position=2))

        self.assertEqual(
            0,
            msa.get_original_char_position_in_aligned_sequence(seq_index=1,
                                                               position=0))
        self.assertEqual(
            1,
            msa.get_original_char_position_in_aligned_sequence(seq_index=1,
                                                               position=1))
        self.assertEqual(
            2,
            msa.get_original_char_position_in_aligned_sequence(seq_index=1,
                                                               position=2))

        self.assertEqual(
            2,
            msa.get_original_char_position_in_aligned_sequence(seq_index=2,
                                                               position=0))
        self.assertEqual(
            3,
            msa.get_original_char_position_in_aligned_sequence(seq_index=2,
                                                               position=1))