root/galaxy-central/eggs/bx_python-0.5.0_dev_f74aec067563-py2.6-macosx-10.6-universal-ucs2.egg/bx/align/score_tests.py @ 3

リビジョン 3, 3.9 KB (コミッタ: kohda, 14 年 前)

Install Unix tools  http://hannonlab.cshl.edu/galaxy_unix_tools/galaxy.html

行番号 
1"""
2Tests for `bx.align.score`.
3"""
4
5import bx.align.score
6import bx.align.maf
7import StringIO
8import unittest
9import sys
10
11from numpy import array, cumsum, allclose
12
13aligns = [ ( "CCACTAGTTTTTAAATAATCTACTATCAAATAAAAGATTTGTTAATAATAAATTTTAAATCATTAACACTT",
14             "CCATTTGGGTTCAAAAATTGATCTATCA----------TGGTGGATTATTATTTAGCCATTAAGGACAAAT",
15             -111 ),
16           ( "CCACTAGTTTTTAAATAATCTAC-----AATAAAAGATTTGTTAATAAT---AAATTTTAAATCATTAA-----CACTT",
17             "CCATTTGGGTTCAAAAATTGATCTATCA----------TGGTGGAT---TATTATTT-----AGCCATTAAGGACAAAT",
18             -3626 ),
19           ( "CCACTAGTTTTTGATTC",
20             "CCATTTGGGTTC-----",
21             -299 ),
22           ( "CTTAGTTTTTGATCACC",
23             "-----CTTGGGTTTACC",
24             -299 ),
25           ( "gggaattgaacaatgagaacacatggacacaggaaggggaacatcacacacc----------ggggcctgttgtggggtggggggaag",
26             "ggaactagaacaagggagacacatacaaacaacaacaacaacaacacagcccttcccttcaaagagcttatagtctgatggaggagag",
27             1690 )
28         ]
29
30mafs = """##maf
31a score=2883.0
32s hg17.chr1             6734 30 + 245522847 CTACCTCAGTGTGGAAGGTGGGCAGTTCTG
33s rheMac1.SCAFFOLD71394 9319 30 -     13789 CTACCTCAGTGTGGAAGGTGGGCAGTTCTG
34
35a score=8167.0
36s hg17.chr1             41401 40 + 245522847 TGTGTGATTAATGCCTGAGACTGTGTGAAGTAAGAGATGG
37s panTro1.chr1          49673 40 + 229575298 TGCGTGATTAATGCCTGAGATTGTGTGAAGTAAAAGATGG
38s rheMac1.SCAFFOLD45837 26063 33 -     31516 TGTGTGATTAATGCCTGAGATTGTGTGAAGTAA-------
39"""
40
41nonsymm_scheme = bx.align.score.build_scoring_scheme ( """  A    C    G    T
42                                                           91    0  -31 -123
43                                                         -114  100 -125  -31
44                                                          -31 -125  100 -114
45                                                         -123  -31 -114   91 """, 400, 30 )
46
47aligns_for_nonsymm_scheme = [ ( "AAAACCCCGGGGTTTT",
48                                "ACGTACGTACGTACGT",
49                                -580 )
50                            ]
51
52
53asymm_scheme = bx.align.score.build_scoring_scheme ( """    01   02    A    C    G    T
54                                                       01  200 -200  -50  100  -50  100
55                                                       02 -200  200  100  -50  100  -50 """,
56                                                       0, 0, gap1='\x00' )
57
58aligns_for_asymm_scheme = [ ( "\x01\x01\x01\x01\x01\x01",
59                              "ACGT\x01\x02",
60                              100 )
61                          ]
62
63
64class BasicTests( unittest.TestCase ):
65
66    def test_scoring_text( self ):
67        ss = bx.align.score.hox70
68        for t1, t2, score in aligns:
69            self.assertEquals( bx.align.score.score_texts( ss, t1, t2 ), score )
70           
71    def test_align( self ):
72        ss = bx.align.score.hox70
73        for block in bx.align.maf.Reader( StringIO.StringIO( mafs ) ):
74            self.assertEquals( bx.align.score.score_alignment( ss, block ), float( block.score ) )
75           
76    def test_accumulate( self ):
77        ss = bx.align.score.hox70
78        self.assert_( allclose( bx.align.score.accumulate_scores( ss, "-----CTTT", "CTTAGTTTA"  ),
79                           cumsum( array( [ -430, -30, -30, -30, -30, -31, 91, 91, -123 ] ) ) ) )
80        self.assert_( allclose( bx.align.score.accumulate_scores( ss, "-----CTTT", "CTTAGTTTA", skip_ref_gaps=True ),
81                           cumsum( array( [ -581, 91, 91, -123 ] ) ) ) )
82
83    def test_nonsymm_scoring( self ):
84        ss = nonsymm_scheme
85        for t1, t2, score in aligns_for_nonsymm_scheme:
86            self.assertEquals( bx.align.score.score_texts( ss, t1, t2 ), score )
87
88    def test_asymm_scoring( self ):
89        ss = asymm_scheme
90        for t1, t2, score in aligns_for_asymm_scheme:
91            self.assertEquals( bx.align.score.score_texts( ss, t1, t2 ), score )
92   
93test_classes = [ BasicTests ]
94suite = unittest.TestSuite( [ unittest.makeSuite( c ) for c in test_classes ] )
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。