|
11 | 11 | import static org.junit.Assert.*; |
12 | 12 |
|
13 | 13 | /** |
| 14 | + * Contributed to BioJava under it's LGPL |
14 | 15 | * Created by luke czapla on 7/21/17. |
15 | 16 | */ |
16 | 17 | public class TestBasePairParameters { |
17 | 18 |
|
18 | 19 | @Test |
19 | | - public void testBasePair() { |
20 | | - |
21 | | - Structure structure; |
22 | | - try { |
23 | | - structure = StructureIO.getStructure("1KX5"); |
24 | | - } catch (IOException|StructureException e) { |
25 | | - e.printStackTrace(); |
26 | | - structure = null; |
27 | | - assertEquals(1, 2); |
28 | | - } |
| 20 | + public void testBasePair() throws IOException, StructureException { |
| 21 | + |
| 22 | + Structure structure = StructureIO.getStructure("1KX5"); |
| 23 | + |
29 | 24 | BasePairParameters bp = new BasePairParameters(structure); |
30 | 25 | bp.analyze(); |
31 | | - double[][] pairs = bp.getPairingParameters(); |
32 | | - double[][] steps = bp.getStepParameters(); |
33 | 26 | String sequence = bp.getPairSequence(); |
34 | 27 |
|
35 | 28 | assertEquals(bp.getPairingParameters().length, 147); |
36 | 29 | // below all this set of comparator data was from an external program, 3DNA. |
37 | 30 | // next three in degrees: buckle, propeller, opening |
38 | | - assertEquals(pairs[0][0], -3.796, 0.1); |
39 | | - assertEquals(pairs[0][1], 4.482, 0.1); |
40 | | - assertEquals(pairs[0][2], -0.730, 0.1); |
| 31 | + assertEquals(bp.getBuckle(0), -3.796, 0.1); |
| 32 | + assertEquals(bp.getPropeller(0), 4.482, 0.1); |
| 33 | + assertEquals(bp.getOpening(0), -0.730, 0.1); |
41 | 34 | // next three in Å: shear, stretch, stagger |
42 | | - assertEquals(pairs[0][3], -0.324, 0.01); |
43 | | - assertEquals(pairs[0][4], -0.578, 0.01); |
44 | | - assertEquals(pairs[0][5], -0.336, 0.01); |
| 35 | + assertEquals(bp.getShear(0), -0.324, 0.02); |
| 36 | + assertEquals(bp.getStretch(0), -0.578, 0.02); |
| 37 | + assertEquals(bp.getStagger(0), -0.336, 0.02); |
45 | 38 | // next three in degrees: tilt, roll, twist |
46 | | - assertEquals(steps[1][0], 2.354, 0.1); |
47 | | - assertEquals(steps[1][1], 0.785, 0.1); |
48 | | - assertEquals(steps[1][2], 32.522, 0.5); |
| 39 | + assertEquals(bp.getTilt(0), 2.354, 0.1); |
| 40 | + assertEquals(bp.getRoll(0), 0.785, 0.1); |
| 41 | + assertEquals(bp.getTwist(0), 32.522, 0.5); |
49 | 42 | // next three in Å, shift, slide, rise |
50 | | - assertEquals(steps[1][3], -0.873, 0.01); |
51 | | - assertEquals(steps[1][4], -0.607, 0.01); |
52 | | - assertEquals(steps[1][5], 3.070, 0.01); |
53 | | - |
54 | | - try { |
55 | | - structure = StructureIO.getStructure("3PHP"); |
56 | | - } catch (IOException|StructureException e) { |
57 | | - e.printStackTrace(); |
58 | | - structure = null; |
59 | | - assertEquals(1, 2); |
60 | | - } |
| 43 | + assertEquals(bp.getShift(0), -0.873, 0.02); |
| 44 | + assertEquals(bp.getSlide(0), -0.607, 0.02); |
| 45 | + assertEquals(bp.getRise(0), 3.070, 0.02); |
| 46 | + |
| 47 | + |
| 48 | + structure = StructureIO.getStructure("3PHP"); |
61 | 49 | bp = new TertiaryBasePairParameters(structure, true, false).analyze(); |
62 | 50 | assertEquals(9, bp.getPairingParameters().length); |
63 | 51 |
|
64 | | - try { |
65 | | - structure = StructureIO.getStructure("1P71"); |
66 | | - } catch (IOException|StructureException e) { |
67 | | - e.printStackTrace(); |
68 | | - structure = null; |
69 | | - assertEquals(1, 2); |
70 | | - } |
| 52 | + double[][] pairs = bp.getPairingParameters(); |
| 53 | + double[][] steps = bp.getStepParameters(); |
| 54 | + |
| 55 | + // test against values given by 3DNA, just using the raw arrays |
| 56 | + assertEquals(pairs[4][0], 0.060, 0.1); |
| 57 | + assertEquals(pairs[4][1], -9.323, 0.1); |
| 58 | + assertEquals(pairs[4][2], -5.109, 0.1); |
| 59 | + // next three in Å: shear, stretch, stagger |
| 60 | + assertEquals(pairs[4][3], 0.126, 0.02); |
| 61 | + assertEquals(pairs[4][4], -0.177, 0.02); |
| 62 | + assertEquals(pairs[4][5], 0.273, 0.02); |
| 63 | + // next three in degrees: tilt, roll, twist |
| 64 | + assertEquals(steps[4][0], -1.456, 0.1); |
| 65 | + assertEquals(steps[4][1], 6.583, 0.1); |
| 66 | + assertEquals(steps[4][2], 33.234, 0.5); |
| 67 | + // next three in Å, shift, slide, rise |
| 68 | + assertEquals(steps[4][3], -0.735, 0.02); |
| 69 | + assertEquals(steps[4][4], -0.978, 0.02); |
| 70 | + assertEquals(steps[4][5], 3.491, 0.02); |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | + structure = StructureIO.getStructure("1P71"); |
71 | 75 |
|
72 | 76 | bp = new MismatchedBasePairParameters(structure, false, false, false).analyze(); |
73 | 77 | assertEquals(17, bp.getPairingParameters().length); |
74 | 78 |
|
| 79 | + pairs = bp.getPairingParameters(); |
| 80 | + steps = bp.getStepParameters(); |
| 81 | + |
| 82 | + // this was tested against 3DNA as well. |
| 83 | + assertEquals(pairs[16][0], -11.822, 0.1); |
| 84 | + assertEquals(pairs[16][1], -11.405, 0.1); |
| 85 | + assertEquals(pairs[16][2], -9.669, 0.1); |
| 86 | + // next three in Å: shear, stretch, stagger |
| 87 | + assertEquals(pairs[16][3], 0.855, 0.02); |
| 88 | + assertEquals(pairs[16][4], -0.276, 0.02); |
| 89 | + assertEquals(pairs[16][5], -0.604, 0.02); |
| 90 | + // next three in degrees: tilt, roll, twist |
| 91 | + assertEquals(steps[16][0], 1.516, 0.1); |
| 92 | + assertEquals(steps[16][1], 9.291, 0.1); |
| 93 | + assertEquals(steps[16][2], 42.052, 1.0); |
| 94 | + // next three in Å, shift, slide, rise |
| 95 | + assertEquals(steps[16][3], -0.627, 0.02); |
| 96 | + assertEquals(steps[16][4], -0.858, 0.02); |
| 97 | + assertEquals(steps[16][5], 4.697, 0.02); |
75 | 98 |
|
76 | 99 | } |
77 | 100 |
|
|
0 commit comments