8
8
import util
9
9
10
10
11
+ class TestInitialTs :
12
+ def test_reference_sequence (self ):
13
+ ts = sc2ts .initial_ts ()
14
+ assert ts .reference_sequence .metadata ["genbank_id" ] == "MN908947"
15
+ assert ts .reference_sequence .data == sc2ts .core .get_reference_sequence ()
16
+
17
+ def test_reference_sample (self ):
18
+ ts = sc2ts .initial_ts ()
19
+ assert ts .num_samples == 1
20
+ node = ts .node (ts .samples ()[0 ])
21
+ assert node .time == 0
22
+ assert node .metadata == {"date" : "2019-12-26" , "strain" : "Wuhan/Hu-1/2019" }
23
+ alignment = next (ts .alignments ())
24
+ assert alignment == sc2ts .core .get_reference_sequence ()
25
+
26
+
11
27
class TestAddMatchingResults :
12
28
def add_matching_results (
13
29
self ,
@@ -132,7 +148,7 @@ def test_one_sample_one_mutation(self, tmp_path):
132
148
assert ts2 .site (0 ).ancestral_state == ts .site (0 ).ancestral_state
133
149
assert ts2 .num_mutations == 1
134
150
var = next (ts2 .variants ())
135
- assert var .alleles [var .genotypes [0 ]] == "X"
151
+ assert var .alleles [var .genotypes [1 ]] == "X"
136
152
137
153
def test_one_sample_one_mutation_filtered (self , tmp_path ):
138
154
ts = sc2ts .initial_ts ()
@@ -171,7 +187,7 @@ def test_two_samples_one_mutation_one_filtered(self, tmp_path):
171
187
assert ts2 .site (0 ).ancestral_state == ts .site (0 ).ancestral_state
172
188
assert ts2 .num_mutations == 1
173
189
var = next (ts2 .variants ())
174
- assert var .alleles [var .genotypes [0 ]] == "X"
190
+ assert var .alleles [var .genotypes [1 ]] == "X"
175
191
176
192
177
193
class TestMatchTsinfer :
@@ -187,7 +203,7 @@ def test_match_reference(self, mirror):
187
203
tables .sites .truncate (20 )
188
204
ts = tables .tree_sequence ()
189
205
samples = util .get_samples (ts , [[(0 , ts .sequence_length , 1 )]])
190
- alignment = sc2ts .core .get_reference_sequence ()
206
+ alignment = sc2ts .core .get_reference_sequence (as_array = True )
191
207
ma = sc2ts .alignments .encode_and_mask (alignment )
192
208
h = ma .alignment [ts .sites_position .astype (int )]
193
209
samples [0 ].alignment = h
@@ -204,7 +220,7 @@ def test_match_reference_one_mutation(self, mirror, site_id):
204
220
tables .sites .truncate (20 )
205
221
ts = tables .tree_sequence ()
206
222
samples = util .get_samples (ts , [[(0 , ts .sequence_length , 1 )]])
207
- alignment = sc2ts .core .get_reference_sequence ()
223
+ alignment = sc2ts .core .get_reference_sequence (as_array = True )
208
224
ma = sc2ts .alignments .encode_and_mask (alignment )
209
225
h = ma .alignment [ts .sites_position .astype (int )]
210
226
# Mutate to gap
@@ -230,7 +246,7 @@ def test_match_reference_all_same(self, mirror, allele):
230
246
tables .sites .truncate (20 )
231
247
ts = tables .tree_sequence ()
232
248
samples = util .get_samples (ts , [[(0 , ts .sequence_length , 1 )]])
233
- alignment = sc2ts .core .get_reference_sequence ()
249
+ alignment = sc2ts .core .get_reference_sequence (as_array = True )
234
250
ma = sc2ts .alignments .encode_and_mask (alignment )
235
251
ref = ma .alignment [ts .sites_position .astype (int )]
236
252
h = np .zeros_like (ref ) + allele
@@ -251,7 +267,7 @@ def match_path_ts(self, samples, ts):
251
267
# FIXME this API is terrible
252
268
ts2 = sc2ts .match_path_ts (samples , ts , samples [0 ].path , [])
253
269
assert ts2 .num_samples == len (samples )
254
- for u , sample in zip (ts .samples (), samples ):
270
+ for u , sample in zip (ts .samples ()[ 1 :] , samples ):
255
271
node = ts .node (u )
256
272
assert node .time == 0
257
273
assert node .metadata == sample .metadata
0 commit comments