File: seqmapping_tests.py

package info (click to toggle)
python-bx 0.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,000 kB
  • sloc: python: 17,136; ansic: 2,326; makefile: 24; sh: 8
file content (98 lines) | stat: -rw-r--r-- 2,832 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
"""
Tests for `bx.seqmapping`.
"""

import unittest
from io import StringIO

from numpy import (
    allclose,
    array,
)

import bx.seqmapping


class CharMappingTests(unittest.TestCase):
    __test__ = False

    def test_DNA(self):
        assert allclose(bx.seqmapping.DNA.translate("ACGTacgt-?X"), [0, 1, 2, 3, 0, 1, 2, 3, 4, -1, -1])

    def test_DNA_list(self):
        assert allclose(
            bx.seqmapping.DNA.translate_list(["ACGTA", "TGCAX"]), [0 + 3 * 6, 1 + 2 * 6, 2 + 1 * 6, 3 + 0 * 6, -1]
        )

    def test_other(self):
        m = bx.seqmapping.CharToIntArrayMapping()
        m.set_mapping("A", 0)
        m.set_mapping("B", 7)
        assert allclose(m.translate("ABCCBA"), [0, 7, -1, -1, 7, 0])


class IntMappingTests(unittest.TestCase):
    __test__ = False

    def test_simple(self):
        m = bx.seqmapping.IntToIntMapping(4)
        m.set_mapping(0, 0)
        m.set_mapping(2, 0)
        m.set_mapping(1, 1)
        m.set_mapping(3, 1)
        assert allclose(m.translate(array([0, 1, 2, 3, 4], "i")), array([0, 1, 0, 1, -1]))


eight_species_mapping = """TTTTTTTT 0
CCCCCCCC 4
AAAAAAAA 1
GGGGGGGG 5
AAAAA*AA 2
TTTTT*TT 0
GGGGG*GG 5
CCCCC*CC 4
GGGG*GGG 5
TTTT*TTT 2
GGGAAGGG 5
AAAA*AAA 2
TTTTT*T* 2
CCCCC*C* 4
CCCTTCCC 4
CCCC*CCC 4
TTTT**TT 2
AAAA**AA 2
AAAAA*A* 2
GGGGG*G* 5
AAAAAGAA 2
TTTTTCTT 2
GGGAA*GG 5
TTTT**T* 2
TTTCCTTT 0
AAAAAAA* 1
CCCTT*CC 3
TTTTTTT* 2
CC*CC*CC 3
AAAGGAAA 2
------G- 2
"""

rows = [
    "AAATTGT-----ATGTCCATCCTTTAAAGGTCATTCCTTTAATGGTCTTTTCTGGACACCACTAGGGGTCAGAAGTAGTTCATCAAAC-----------------TTTCTTCCCTCCC-TACTTCAGTG",
    "AAATTGT-----ATGTCCATCCTTTAAAGGTCATTCCTTTAATGGTCTTTTCTGGACACCACTAGGGGTCAGAAGTAGTTCATCAAAC-----------------TTTCTTCCCTCCC-TACTTCAGTG",
    "AAATTTT-----ATGTCTATCCTTTAAAGGTCATTCCTCTAATAGTCTTTTCTGGACACCACTAGGGGTCAGAAGTAGTTCATTAAAC-----------------TTTCTTCCCTCCC-TACCTCAGTG",
    "AAACTGT-----ATCACCACCTTTTTAAGGTCATTTCTCTAATGATCCTGTT-GCATACCAGTAGGGGGCAGAAGTGTTCCGCTGATTTCCGCCCTCCTCCCCACCCCCCCACCCCCC-TTATTCAAAG",
    "*********************************************************************************************************************************",
    "-TATTAT-----ATGGCCATGTTCAAAAGGTTGTTTCTCTAATGATTCCTTC-TGATACCAGTAGGGGTCAGAAGTGGTCCATTGATT---------------------CTTTTCCTC-TGATTC-AAG",
    "AAATTGA--AAGATCTCACTCTTTGCCAGGTAGTCCATCTAAGGGTCACATATGGATACCAGCAGGGCCT-GAAGAAGCCCATTGAAT------------------------TTTCCC-ATCTTCAAGG",
    "AAATTCATGATAGTGTCACTCTTAAATAGATGATTC--------TTCACAT---GATGCCAGCAGGGGGC-AGAGCAGGCTGTGAAAT------------------------TTTCCCTTTCTTCAAAG",
]


class AlignmentMappingTests(unittest.TestCase):
    __test__ = False

    def test_largescale(self):
        f = StringIO(eight_species_mapping)
        n, m = bx.seqmapping.alignment_mapping_from_file(f)
        t = bx.seqmapping.DNA.translate_list(rows)
        m.translate(t)