|
0 |
Description: adapt test cases for new PyMUMmer version
|
|
1 |
pymummer 0.11 uses a different internal format which is incompatible
|
|
2 |
with the one assumed by Ariba. Note that ariba hard-requires an earlier
|
|
3 |
version than the one in Debian. However, since Debian has updated
|
|
4 |
pymummer now, we need to catch up even though upstream does not.
|
|
5 |
Author: Sascha Steinbiss <satta@debian.org>
|
|
6 |
Last-Update: 2020-06-30
|
|
7 |
--- a/ariba/tests/assembly_variants_test.py
|
|
8 |
+++ b/ariba/tests/assembly_variants_test.py
|
|
9 |
@@ -52,23 +52,23 @@
|
|
10 |
def test_get_variant_effect(self):
|
|
11 |
'''test _get_variant_effect'''
|
|
12 |
ref_seq = pyfastaq.sequences.Fasta('gene', 'GATCGCGAAGCGATGACCCATGAAGCGACCGAACGCTGA')
|
|
13 |
- v1 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tT\t6\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
14 |
- v1 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tT\t6\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
15 |
- v2 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\tA\t6\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
16 |
- v3 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\tT\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
17 |
- v4 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tA\t6\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
18 |
- v5 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\t.\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
19 |
- v6 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tA\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
20 |
- v7 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tG\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
21 |
+ v1 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tT\t6\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
22 |
+ v1 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tT\t6\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
23 |
+ v2 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\tA\t6\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
24 |
+ v3 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\tT\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
25 |
+ v4 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tA\t6\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
26 |
+ v5 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\t.\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
27 |
+ v6 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tA\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
28 |
+ v7 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tG\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
29 |
v7.qry_base = 'GAT'
|
|
30 |
- v8 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tG\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
31 |
+ v8 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tG\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
32 |
v8.qry_base = 'TGA'
|
|
33 |
- v9 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tG\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
34 |
+ v9 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tG\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
35 |
v9.qry_base = 'ATTCCT'
|
|
36 |
- v10 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\t.\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
37 |
+ v10 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\t.\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
38 |
v10.ref_base = 'CGC'
|
|
39 |
v10.ref_end = 5
|
|
40 |
- v11 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\t.\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
41 |
+ v11 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\t.\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
42 |
v11.ref_base = 'CGCGAA'
|
|
43 |
v11.ref_end = 8
|
|
44 |
|
|
45 |
@@ -93,9 +93,9 @@
|
|
46 |
def test_filter_mummer_variants(self):
|
|
47 |
'''test filter_mummer_variants'''
|
|
48 |
ref_seq = pyfastaq.sequences.Fasta('gene', 'GATCGCGAAGCGATGACCCATGAAGCGACCGAACGCTGA')
|
|
49 |
- v1 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\tT\t4\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
50 |
- v2 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tA\t6\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
51 |
- v3 = pymummer.variant.Variant(pymummer.snp.Snp('12\tG\tT\t12\tx\tx\t39\t39\tx\tx\tgene\tcontig'))
|
|
52 |
+ v1 = pymummer.variant.Variant(pymummer.snp.Snp('4\tC\tT\t4\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
53 |
+ v2 = pymummer.variant.Variant(pymummer.snp.Snp('6\tC\tA\t6\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
54 |
+ v3 = pymummer.variant.Variant(pymummer.snp.Snp('12\tG\tT\t12\tx\tx\t39\t39\tx\t1\tgene\tcontig'))
|
|
55 |
mummer_variants = {'contig': [[v1, v2], v3]}
|
|
56 |
assembly_variants.AssemblyVariants._filter_mummer_variants(mummer_variants, ref_seq)
|
|
57 |
expected = {'contig': [[v1, v2]]}
|
|
58 |
@@ -110,13 +110,13 @@
|
|
59 |
ref_sequence_name = 'non_coding'
|
|
60 |
refdata_var_dict = refdata.metadata[ref_sequence_name]
|
|
61 |
|
|
62 |
- v0 = pymummer.variant.Variant(pymummer.snp.Snp('2\tT\tA\t2\tx\tx\t42\t42\tx\tx\tnon_coding\tcontig'))
|
|
63 |
+ v0 = pymummer.variant.Variant(pymummer.snp.Snp('2\tT\tA\t2\tx\tx\t42\t42\tx\t1\tnon_coding\tcontig'))
|
|
64 |
|
|
65 |
# ref has A at position 3, which is variant type. This gives contig the wild type C. Shouldn't report
|
|
66 |
- v1 = pymummer.variant.Variant(pymummer.snp.Snp('3\tA\tC\t3\tx\tx\t42\t42\tx\tx\tnon_coding\tcontig'))
|
|
67 |
+ v1 = pymummer.variant.Variant(pymummer.snp.Snp('3\tA\tC\t3\tx\tx\t42\t42\tx\t1\tnon_coding\tcontig'))
|
|
68 |
|
|
69 |
# ref has T at position 5, which is wild type. This gives contig variant type A. Should report
|
|
70 |
- v2 = pymummer.variant.Variant(pymummer.snp.Snp('5\tT\tA\t5\tx\tx\t42\t42\tx\tx\tnon_coding\tcontig'))
|
|
71 |
+ v2 = pymummer.variant.Variant(pymummer.snp.Snp('5\tT\tA\t5\tx\tx\t42\t42\tx\t1\tnon_coding\tcontig'))
|
|
72 |
|
|
73 |
meta0 = sequence_metadata.SequenceMetadata('non_coding\t0\t0\tC3A\tid1\tref has variant type A')
|
|
74 |
meta2 = sequence_metadata.SequenceMetadata('non_coding\t0\t0\tT5A\tid1\tref has wild type T')
|
|
75 |
@@ -153,33 +153,33 @@
|
|
76 |
ref_sequence = refdata.sequence(ref_sequence_name)
|
|
77 |
refdata_var_dict = refdata.metadata[ref_sequence_name]
|
|
78 |
|
|
79 |
- v0 = pymummer.variant.Variant(pymummer.snp.Snp('6\tT\tA\t6\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
80 |
- v1 = pymummer.variant.Variant(pymummer.snp.Snp('9\tA\tT\t9\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
81 |
- v2 = pymummer.variant.Variant(pymummer.snp.Snp('18\tG\tT\t18\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
82 |
- v3 = pymummer.variant.Variant(pymummer.snp.Snp('21\tC\tT\t21\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
83 |
- v4 = pymummer.variant.Variant(pymummer.snp.Snp('7\tA\tT\t7\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
84 |
- v5 = pymummer.variant.Variant(pymummer.snp.Snp('12\tA\tC\t11\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
85 |
-
|
|
86 |
- v6 = pymummer.variant.Variant(pymummer.snp.Snp('4\tG\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
87 |
- self.assertTrue(v6.update_indel(pymummer.snp.Snp('5\tA\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
88 |
-
|
|
89 |
- v7 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tA\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
90 |
- self.assertTrue(v7.update_indel(pymummer.snp.Snp('4\t.\tA\t5\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
91 |
-
|
|
92 |
- v8 = pymummer.variant.Variant(pymummer.snp.Snp('4\tG\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
93 |
- self.assertTrue(v8.update_indel(pymummer.snp.Snp('5\tA\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
94 |
- self.assertTrue(v8.update_indel(pymummer.snp.Snp('6\tT\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
95 |
-
|
|
96 |
- v9 = pymummer.variant.Variant(pymummer.snp.Snp('4\tG\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
97 |
- self.assertTrue(v9.update_indel(pymummer.snp.Snp('5\tA\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
98 |
- self.assertTrue(v9.update_indel(pymummer.snp.Snp('6\tT\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
99 |
- self.assertTrue(v9.update_indel(pymummer.snp.Snp('7\tA\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
100 |
- self.assertTrue(v9.update_indel(pymummer.snp.Snp('8\tG\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
101 |
- self.assertTrue(v9.update_indel(pymummer.snp.Snp('9\tA\t.\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
102 |
-
|
|
103 |
- v10 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tA\t4\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig'))
|
|
104 |
- self.assertTrue(v10.update_indel(pymummer.snp.Snp('4\t.\tT\t5\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
105 |
- self.assertTrue(v10.update_indel(pymummer.snp.Snp('4\t.\tT\t6\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig')))
|
|
106 |
+ v0 = pymummer.variant.Variant(pymummer.snp.Snp('6\tT\tA\t6\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
107 |
+ v1 = pymummer.variant.Variant(pymummer.snp.Snp('9\tA\tT\t9\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
108 |
+ v2 = pymummer.variant.Variant(pymummer.snp.Snp('18\tG\tT\t18\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
109 |
+ v3 = pymummer.variant.Variant(pymummer.snp.Snp('21\tC\tT\t21\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
110 |
+ v4 = pymummer.variant.Variant(pymummer.snp.Snp('7\tA\tT\t7\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
111 |
+ v5 = pymummer.variant.Variant(pymummer.snp.Snp('12\tA\tC\t11\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
112 |
+
|
|
113 |
+ v6 = pymummer.variant.Variant(pymummer.snp.Snp('4\tG\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
114 |
+ self.assertTrue(v6.update_indel(pymummer.snp.Snp('5\tA\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
115 |
+
|
|
116 |
+ v7 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tA\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
117 |
+ self.assertTrue(v7.update_indel(pymummer.snp.Snp('4\t.\tA\t5\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
118 |
+
|
|
119 |
+ v8 = pymummer.variant.Variant(pymummer.snp.Snp('4\tG\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
120 |
+ self.assertTrue(v8.update_indel(pymummer.snp.Snp('5\tA\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
121 |
+ self.assertTrue(v8.update_indel(pymummer.snp.Snp('6\tT\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
122 |
+
|
|
123 |
+ v9 = pymummer.variant.Variant(pymummer.snp.Snp('4\tG\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
124 |
+ self.assertTrue(v9.update_indel(pymummer.snp.Snp('5\tA\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
125 |
+ self.assertTrue(v9.update_indel(pymummer.snp.Snp('6\tT\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
126 |
+ self.assertTrue(v9.update_indel(pymummer.snp.Snp('7\tA\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
127 |
+ self.assertTrue(v9.update_indel(pymummer.snp.Snp('8\tG\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
128 |
+ self.assertTrue(v9.update_indel(pymummer.snp.Snp('9\tA\t.\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
129 |
+
|
|
130 |
+ v10 = pymummer.variant.Variant(pymummer.snp.Snp('4\t.\tA\t4\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig'))
|
|
131 |
+ self.assertTrue(v10.update_indel(pymummer.snp.Snp('4\t.\tT\t5\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
132 |
+ self.assertTrue(v10.update_indel(pymummer.snp.Snp('4\t.\tT\t6\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig')))
|
|
133 |
|
|
134 |
mummer_variants = [[v0], [v1], [v2], [v3], [v4], [v5], [v6], [v7], [v8], [v9], [v10]]
|
|
135 |
|
|
136 |
@@ -306,8 +306,8 @@
|
|
137 |
os.unlink(metadata_tsv)
|
|
138 |
|
|
139 |
nucmer_snp_file = os.path.join(data_dir, 'assembly_variants_test_get_variants_presence_absence.snps')
|
|
140 |
- v2 = pymummer.variant.Variant(pymummer.snp.Snp('14\tC\tA\t14\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig1'))
|
|
141 |
- v3 = pymummer.variant.Variant(pymummer.snp.Snp('15\tG\tC\t15\tx\tx\t42\t42\tx\tx\tpresence_absence\tcontig1'))
|
|
142 |
+ v2 = pymummer.variant.Variant(pymummer.snp.Snp('14\tC\tA\t14\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig1'))
|
|
143 |
+ v3 = pymummer.variant.Variant(pymummer.snp.Snp('15\tG\tC\t15\tx\tx\t42\t42\tx\t1\tpresence_absence\tcontig1'))
|
|
144 |
|
|
145 |
ref_nucmer_coords = {
|
|
146 |
'contig1': [pyfastaq.intervals.Interval(0, 30)],
|
|
147 |
@@ -354,8 +354,8 @@
|
|
148 |
os.unlink(metadata_tsv)
|
|
149 |
|
|
150 |
nucmer_snp_file = os.path.join(data_dir, 'assembly_variants_test_get_variants_variants_only.snps')
|
|
151 |
- v2 = pymummer.variant.Variant(pymummer.snp.Snp('14\tC\tA\t14\tx\tx\t42\t42\tx\tx\tvariants_only\tcontig1'))
|
|
152 |
- v3 = pymummer.variant.Variant(pymummer.snp.Snp('15\tG\tC\t15\tx\tx\t42\t42\tx\tx\tvariants_only\tcontig1'))
|
|
153 |
+ v2 = pymummer.variant.Variant(pymummer.snp.Snp('14\tC\tA\t14\tx\tx\t42\t42\tx\t1\tvariants_only\tcontig1'))
|
|
154 |
+ v3 = pymummer.variant.Variant(pymummer.snp.Snp('15\tG\tC\t15\tx\tx\t42\t42\tx\t1\tvariants_only\tcontig1'))
|
|
155 |
|
|
156 |
ctg_nucmer_coords = {
|
|
157 |
'contig1': [pyfastaq.intervals.Interval(0, 41)],
|
|
158 |
--- a/ariba/tests/data/assembly_variants_test_get_variants_variants_only.snps
|
|
159 |
+++ b/ariba/tests/data/assembly_variants_test_get_variants_variants_only.snps
|
|
160 |
@@ -1,3 +1,3 @@
|
|
161 |
-9 A T 9 x x 42 42 x x variants_only contig1
|
|
162 |
-14 C A 14 x x 42 42 x x variants_only contig1
|
|
163 |
-15 G C 15 x x 42 42 x x variants_only contig1
|
|
164 |
+9 A T 9 x x 42 42 x 1 variants_only contig1
|
|
165 |
+14 C A 14 x x 42 42 x 1 variants_only contig1
|
|
166 |
+15 G C 15 x x 42 42 x 1 variants_only contig1
|
|
167 |
--- a/ariba/tests/data/assembly_variants_test_get_variants_presence_absence.snps
|
|
168 |
+++ b/ariba/tests/data/assembly_variants_test_get_variants_presence_absence.snps
|
|
169 |
@@ -1,3 +1,3 @@
|
|
170 |
-9 A T 9 x x 42 42 x x presence_absence contig1
|
|
171 |
-14 C A 14 x x 42 42 x x presence_absence contig1
|
|
172 |
-15 G C 15 x x 42 42 x x presence_absence contig1
|
|
173 |
+9 A T 9 x x 42 42 x 1 presence_absence contig1
|
|
174 |
+14 C A 14 x x 42 42 x 1 presence_absence contig1
|
|
175 |
+15 G C 15 x x 42 42 x 1 presence_absence contig1
|