Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_empty_files_sequence_length(self):
nodes_file = six.StringIO("is_sample\ttime\n")
edges_file = six.StringIO("left\tright\tparent\tchild\n")
sites_file = six.StringIO("position\tancestral_state\n")
mutations_file = six.StringIO("site\tnode\tderived_state\n")
ts = tskit.load_text(
nodes=nodes_file, edges=edges_file, sites=sites_file,
mutations=mutations_file, sequence_length=100)
self.assertEqual(ts.sequence_length, 100)
self.assertEqual(ts.num_nodes, 0)
self.assertEqual(ts.num_edges, 0)
self.assertEqual(ts.num_sites, 0)
self.assertEqual(ts.num_edges, 0)
0 1 0
1 1 0
2 1 0
3 1 2
""")
edges = six.StringIO("""\
left right parent child
0 1 3 0
0 1 3 1
0 1 3 2
""")
tree = (
" 3 \n"
"┏━╋━┓\n"
"0 1 2\n")
ts = tskit.load_text(nodes, edges, strict=False)
t = next(ts.trees())
drawn = t.draw(format="unicode")
self.verify_text_rendering(drawn, tree)
id is_sample time
0 1 0
""")
edges = six.StringIO("""\
left right parent child
""")
sites = six.StringIO("""\
position ancestral_state
0.1 0
""")
mutations = six.StringIO("""\
site node derived_state parent
1 0 1 -2
""")
self.assertRaises(
_tskit.LibraryError, tskit.load_text,
nodes=nodes, edges=edges, sites=sites, mutations=mutations,
sequence_length=1, strict=False)
1 0.3 0
2 0.9 0
""")
mutations = six.StringIO("""\
site node derived_state parent
0 0 1 -1
0 0 2 0
0 0 0 1
0 1 2 -1
1 1 1 -1
1 2 1 -1
2 4 1 -1
2 1 2 6
2 2 3 6
""")
ts = tskit.load_text(
nodes=nodes, edges=edges, sites=sites, mutations=mutations, strict=False)
site_tsc = tskit.SiteStatCalculator(ts)
py_site_tsc = PythonSiteStatCalculator(ts)
# Y3:
site_tsc_Y = site_tsc.Y3([[0], [1], [2]], [0.0, 1.0])[0][0]
py_site_tsc_Y = py_site_tsc.Y3([0], [1], [2], 0.0, 1.0)
self.assertAlmostEqual(site_tsc_Y, site_true_Y)
self.assertAlmostEqual(py_site_tsc_Y, site_true_Y)
0 1 0
1 1 1
2 1 2
""")
edges = six.StringIO("""\
left right parent child
0 1 1 0
0 1 2 1
""")
tree = (
"2\n"
"┃\n"
"1\n"
"┃\n"
"0\n")
ts = tskit.load_text(nodes, edges, strict=False)
t = next(ts.trees())
drawn = t.draw(format="unicode")
self.verify_text_rendering(drawn, tree)
2 1 2
3 1 1
4 1 4
5 1 5
6 1 7
""")
edges = six.StringIO("""\
left right parent child
0 1 6 0
0 1 6 1
0 1 6 2
0 1 6 3
0 1 6 4
0 1 6 5
""")
ts = tskit.load_text(nodes, edges, strict=False)
t = next(ts.trees())
text = t.draw(format=self.drawing_format)
self.verify_basic_text(text)
""")
sites = six.StringIO("""\
position ancestral_state
0.1 0
0.2 0
""")
mutations = six.StringIO("""\
site node derived_state parent
1 0 1 -1
1 0 0 0
1 0 1 1
0 0 1 -1
0 0 0 3
0 0 1 4
""")
ts = tskit.load_text(
nodes=nodes, edges=edges, sites=sites, mutations=mutations,
sequence_length=1, strict=False)
# Load text automatically calls sort tables, so we can test the
# output directly.
sites = ts.tables.sites
mutations = ts.tables.mutations
self.assertEqual(len(sites), 2)
self.assertEqual(len(mutations), 6)
self.assertEqual(list(mutations.site), [0, 0, 0, 1, 1, 1])
self.assertEqual(list(mutations.node), [0, 0, 0, 0, 0, 0])
self.assertEqual(list(mutations.parent), [-1, 0, 1, -1, 3, 4])
def test_empty_files(self):
nodes_file = six.StringIO("is_sample\ttime\n")
edges_file = six.StringIO("left\tright\tparent\tchild\n")
sites_file = six.StringIO("position\tancestral_state\n")
mutations_file = six.StringIO("site\tnode\tderived_state\n")
self.assertRaises(
_tskit.LibraryError, tskit.load_text,
nodes=nodes_file, edges=edges_file, sites=sites_file,
mutations=mutations_file)
1 1 0
2 1 0
3 1 0
4 1 0
5 0 1
6 0 2
7 0 3
"""
edges = """\
left right parent child
0 1 5 0,1,2
0 1 6 3,4
0 1 7 5,6
"""
# NB same tree as used above, and we're using the same diagram.
ts = tskit.load_text(
nodes=io.StringIO(nodes), edges=io.StringIO(edges), strict=False)
tree = ts.first()
for order in ["preorder", "inorder", "postorder"]:
print(f"{order}:\t", list(tree.nodes(order=order)))
total_branch_length = sum(tree.branch_length(u) for u in tree.nodes())
print(total_branch_length, tree.total_branch_length)
for u in tree.samples():
path = []
v = u
while v != tskit.NULL:
path.append(v)
v = tree.parent(v)