Analyze the simulated data#

Simulation on 2K SNPs#

import numpy as np
import pandas as pd

import tskit

from tskitetude import get_data_dir

Analyze the data/sheepTSsimMilano/ts300I2k.vcf.gz generated using msprime. Get a list of all sample names from VCF file:

export TSKIT_DIR=${PWD}
cd data/sheepTSsimMilano/
bcftools query -l ts300I2k.vcf.gz > ts300I2k.sample_names.txt

Now add population information to the sample names, and then write them into a file:

with open(get_data_dir() / "sheepTSsimMilano" / "ts300I2k.sample_names.txt") as f:
    sample_names = f.read().splitlines()

pop_names = ["MM", "II", "A", "B", "C", "D", "E", "F", "G"]

# create a column for FID
fids = [pop_names[0]] * 5 + [pop_name for pop_name in pop_names[1:] for _ in range(300)]
sample_names = pd.DataFrame({"FID": fids, "IID": sample_names})

sample_names.to_csv(
    get_data_dir() / "sheepTSsimMilano" / "ts300I2k.sample_names_fid.csv",
    sep="\t",
    index=False,
    header=False
)

Analyze the data/sheepTSsimMilano/ts300I2k.vcf.gz generated using msprime. Call the create_tstree with the following parameters:

create_tstree --vcf ts300I2k.vcf.gz --focal ts300I2k.sample_names_fid.csv --ancestral_as_reference \
    --output_samples ts300I2k.inferred.samples --output_trees ts300I2k.inferred.trees --num_threads 16 \
    --mutation_rate 5.87e-9 --ne 34500

The 5.87-9 and 34500 are the mutation rate and effective population size respectively. The --ancestral_as_reference flag is used to treat the ancestral allele as the reference allele. The --num_threads 4 flag is used to specify the number of threads to use. The --output_samples flag is used to specify the output file for the inferred samples. The --output_trees flag is used to specify the output file for the inferred trees.

mutation_rate = 5.87e-9
print("Mutation rate: ", mutation_rate)
Mutation rate:  5.87e-09
ts300I2k = tskit.load(get_data_dir() / "sheepTSsimMilano/ts300I2k.inferred.trees")
ts300I2k
Tree Sequence
Trees1 994
Sequence Length1e+08
Time Unitsgenerations
Sample Nodes4 810
Total Size51.2 MiB
Metadata
dict
Table Rows Size Has Metadata
Edges 1 288 678 39.3 MiB
Individuals 2 405 123.4 KiB
Migrations 0 8 Bytes
Mutations 2 069 171.5 KiB
Nodes 24 964 1.7 MiB
Populations 9 208 Bytes
Provenances 4 2.4 KiB
Sites 2 000 99.6 KiB
Provenance Timestamp Software Name Version Command Full record
14 November, 2024 at 10:43:04 AM tsdate 0.2.1 variational_gamma
Details
dict schema_version: 1.0.0
software:
dict name: tsdate
version: 0.2.1

parameters:
dict mutation_rate: 5.87e-09
recombination_rate: None
time_units: None
progress: None
population_size: None
eps: 1e-06
max_iterations: 10
max_shape: 1000
rescaling_intervals: 1000
rescaling_iterations: 5
match_segregating_sites: False
regularise_roots: True
singletons_phased: True
command: variational_gamma

environment:
dict
os:
dict system: Linux
node: bullseye-laptop
release: 5.10.0-28-amd64
version: #1 SMP Debian 5.10.209-2
(2024-01-31)
machine: x86_64

python:
dict implementation: CPython
version: 3.10.15

libraries:
dict
tskit:
dict version: 0.6.0



14 November, 2024 at 10:42:42 AM tsdate 0.2.1 preprocess_ts
Details
dict schema_version: 1.0.0
software:
dict name: tsdate
version: 0.2.1

parameters:
dict minimum_gap: 1000000
remove_telomeres: True
split_disjoint: True
filter_populations: False
filter_individuals: False
filter_sites: False
delete_intervals:
list
list 0
8567.0

list 99989827.0
100000000.0


command: preprocess_ts

environment:
dict
os:
dict system: Linux
node: bullseye-laptop
release: 5.10.0-28-amd64
version: #1 SMP Debian 5.10.209-2
(2024-01-31)
machine: x86_64

python:
dict implementation: CPython
version: 3.10.15

libraries:
dict
tskit:
dict version: 0.6.0



14 November, 2024 at 10:42:38 AM tskit 0.6.0 simplify
Details
dict schema_version: 1.0.0
software:
dict name: tskit
version: 0.6.0

parameters:
dict command: simplify
TODO: add simplify parameters

environment:
dict
os:
dict system: Linux
node: bullseye-laptop
release: 5.10.0-28-amd64
version: #1 SMP Debian 5.10.209-2
(2024-01-31)
machine: x86_64

python:
dict implementation: CPython
version: 3.10.15

libraries:
dict
kastore:
dict version: 2.1.1



14 November, 2024 at 10:42:37 AM tsinfer 0.3.3 infer
Details
dict schema_version: 1.0.0
software:
dict name: tsinfer
version: 0.3.3

parameters:
dict mismatch_ratio: None
command: infer

environment:
dict
libraries:
dict
zarr:
dict version: 2.18.3

numcodecs:
dict version: 0.13.1

lmdb:
dict version: 1.5.1

tskit:
dict version: 0.6.0


os:
dict system: Linux
node: bullseye-laptop
release: 5.10.0-28-amd64
version: #1 SMP Debian 5.10.209-2
(2024-01-31)
machine: x86_64

python:
dict implementation: CPython
version:
list 3
10
15



To cite this software, please consult the citation manual: https://tskit.dev/citation/
ts300I2k.diversity()
np.float64(6.2924016481571095e-06)
ts300I2k.diversity(mode="branch") * mutation_rate
np.float64(7.094446757337434e-06)

Simulation on 25K SNPs#

Get sample names (should be equal to previous run):

bcftools query -l ts300I25k.vcf.gz > ts300I25k.sample_names.txt

Now add population information to the sample names, and then write them into a file:

with open(get_data_dir() / "sheepTSsimMilano" / "ts300I25k.sample_names.txt") as f:
    sample_names = f.read().splitlines()

pop_names = ["MM", "II", "A", "B", "C", "D", "E", "F", "G"]

# create a column for FID
fids = [pop_names[0]] * 5 + [pop_name for pop_name in pop_names[1:] for _ in range(300)]
sample_names = pd.DataFrame({"FID": fids, "IID": sample_names})

sample_names.to_csv(
    get_data_dir() / "sheepTSsimMilano" / "ts300I25k.sample_names_fid.csv",
    sep="\t",
    index=False,
    header=False
)

Generate tree:

create_tstree --vcf ts300I25k.vcf.gz --focal ts300I25k.sample_names_fid.csv --ancestral_as_reference \
    --output_samples ts300I25k.inferred.samples --output_trees ts300I25k.inferred.trees --num_threads 16 \
    --mutation_rate 5.87e-9 --ne 34500
ts300I25k = tskit.load(get_data_dir() / "sheepTSsimMilano/ts300I25k.inferred.trees")
ts300I25k
Tree Sequence
Trees24 685
Sequence Length1e+08
Time Unitsgenerations
Sample Nodes4 810
Total Size153.1 MiB
Metadata
dict
Table Rows Size Has Metadata
Edges 3 617 318 110.4 MiB
Individuals 2 405 123.4 KiB
Migrations 0 8 Bytes
Mutations 29 099 1.0 MiB
Nodes 172 744 12.8 MiB
Populations 9 208 Bytes
Provenances 4 2.4 KiB
Sites 25 000 1.2 MiB
Provenance Timestamp Software Name Version Command Full record
13 September, 2024 at 01:36:46 PM tsdate 0.1.7 inside_outside
Details
dict schema_version: 1.0.0
software:
dict name: tsdate
version: 0.1.7

parameters:
dict mutation_rate: 5.87e-09
recombination_rate: None
time_units: None
progress: None
population_size: 34500.0
eps: 1e-06
outside_standardize: True
ignore_oldest_root: False
probability_space: logarithmic
num_threads: None
cache_inside: False
command: inside_outside

environment:
dict
os:
dict system: Linux
node: core
release: 5.15.0-50-generic
version: #56-Ubuntu SMP Tue Sep 20
13:23:26 UTC 2022
machine: x86_64

python:
dict implementation: CPython
version: 3.9.16

libraries:
dict
tskit:
dict version: 0.5.8



13 September, 2024 at 01:20:17 PM tsdate 0.1.7 preprocess_ts
Details
dict schema_version: 1.0.0
software:
dict name: tsdate
version: 0.1.7

parameters:
dict minimum_gap: 1000000
remove_telomeres: True
filter_populations: False
filter_individuals: False
filter_sites: False
delete_intervals:
list
list 0
6713.0

list 99995468.0
100000000.0


command: preprocess_ts

environment:
dict
os:
dict system: Linux
node: core
release: 5.15.0-50-generic
version: #56-Ubuntu SMP Tue Sep 20
13:23:26 UTC 2022
machine: x86_64

python:
dict implementation: CPython
version: 3.9.16

libraries:
dict
tskit:
dict version: 0.5.8



13 September, 2024 at 01:19:30 PM tskit 0.5.8 simplify
Details
dict schema_version: 1.0.0
software:
dict name: tskit
version: 0.5.8

parameters:
dict command: simplify
TODO: add simplify parameters

environment:
dict
os:
dict system: Linux
node: core
release: 5.15.0-50-generic
version: #56-Ubuntu SMP Tue Sep 20
13:23:26 UTC 2022
machine: x86_64

python:
dict implementation: CPython
version: 3.9.16

libraries:
dict
kastore:
dict version: 2.1.1



13 September, 2024 at 01:18:45 PM tsinfer 0.3.3 infer
Details
dict schema_version: 1.0.0
software:
dict name: tsinfer
version: 0.3.3

parameters:
dict mismatch_ratio: None
command: infer

environment:
dict
libraries:
dict
zarr:
dict version: 2.16.1

numcodecs:
dict version: 0.12.1

lmdb:
dict version: 1.4.1

tskit:
dict version: 0.5.8


os:
dict system: Linux
node: core
release: 5.15.0-50-generic
version: #56-Ubuntu SMP Tue Sep 20
13:23:26 UTC 2022
machine: x86_64

python:
dict implementation: CPython
version:
list 3
9
16



To cite this software, please consult the citation manual: https://tskit.dev/citation/
ts300I25k.diversity()
np.float64(5.04781517762309e-05)
ts300I25k.diversity(mode="branch") * mutation_rate
np.float64(3.753770863863539e-05)

Simulation on entire dataset#

Get samples names (like we did before):

bbcftools query -l tsm100M300I.vcf.gz > tsm100M300I.sample_names.txt

Now add population information to the sample names, and then write them into a file:

with open(get_data_dir() / "sheepTSsimMilano" / "tsm100M300I.sample_names.txt") as f:
    sample_names = f.read().splitlines()

pop_names = ["MM", "II", "A", "B", "C", "D", "E", "F", "G"]

# create a column for FID
fids = [pop_names[0]] * 5 + [pop_name for pop_name in pop_names[1:] for _ in range(300)]
sample_names = pd.DataFrame({"FID": fids, "IID": sample_names})

sample_names.to_csv(
    get_data_dir() / "sheepTSsimMilano" / "tsm100M300I.sample_names_fid.csv",
    sep="\t",
    index=False,
    header=False
)

This step will require a lot of time: Submit the job to the cluster:

cd ${TSKIT_DIR}
sbatch scripts/simulation-tsm100M300I.sh
tsm100M300I = tskit.load(get_data_dir() / "sheepTSsimMilano/tsm100M300I.inferred.trees")
tsm100M300I
Tree Sequence
Trees919 607
Sequence Length1e+08
Time Unitsgenerations
Sample Nodes4 810
Total Size511.4 MiB
Metadata
dict
Table Rows Size Has Metadata
Edges 7 300 103 222.8 MiB
Individuals 2 405 123.4 KiB
Migrations 0 8 Bytes
Mutations 1 756 162 62.0 MiB
Nodes 1 141 491 85.5 MiB
Populations 9 208 Bytes
Provenances 4 2.4 KiB
Sites 1 712 522 85.2 MiB
Provenance Timestamp Software Name Version Command Full record
15 September, 2024 at 05:24:07 AM tsdate 0.1.7 inside_outside
Details
dict schema_version: 1.0.0
software:
dict name: tsdate
version: 0.1.7

parameters:
dict mutation_rate: 5.87e-09
recombination_rate: None
time_units: None
progress: None
population_size: 34500.0
eps: 1e-06
outside_standardize: True
ignore_oldest_root: False
probability_space: logarithmic
num_threads: None
cache_inside: False
command: inside_outside

environment:
dict
os:
dict system: Linux
node: node2
release: 5.15.0-58-generic
version: #64-Ubuntu SMP Thu Jan 5
11:43:13 UTC 2023
machine: x86_64

python:
dict implementation: CPython
version: 3.9.18

libraries:
dict
tskit:
dict version: 0.5.8



15 September, 2024 at 03:51:46 AM tsdate 0.1.7 preprocess_ts
Details
dict schema_version: 1.0.0
software:
dict name: tsdate
version: 0.1.7

parameters:
dict minimum_gap: 1000000
remove_telomeres: True
filter_populations: False
filter_individuals: False
filter_sites: False
delete_intervals:
list
list 0
88.0

list 99999991.0
100000000.0


command: preprocess_ts

environment:
dict
os:
dict system: Linux
node: node2
release: 5.15.0-58-generic
version: #64-Ubuntu SMP Thu Jan 5
11:43:13 UTC 2023
machine: x86_64

python:
dict implementation: CPython
version: 3.9.18

libraries:
dict
tskit:
dict version: 0.5.8



15 September, 2024 at 03:50:34 AM tskit 0.5.8 simplify
Details
dict schema_version: 1.0.0
software:
dict name: tskit
version: 0.5.8

parameters:
dict command: simplify
TODO: add simplify parameters

environment:
dict
os:
dict system: Linux
node: node2
release: 5.15.0-58-generic
version: #64-Ubuntu SMP Thu Jan 5
11:43:13 UTC 2023
machine: x86_64

python:
dict implementation: CPython
version: 3.9.18

libraries:
dict
kastore:
dict version: 2.1.1



15 September, 2024 at 03:49:39 AM tsinfer 0.3.3 infer
Details
dict schema_version: 1.0.0
software:
dict name: tsinfer
version: 0.3.3

parameters:
dict mismatch_ratio: None
command: infer

environment:
dict
libraries:
dict
zarr:
dict version: 2.16.1

numcodecs:
dict version: 0.12.1

lmdb:
dict version: 1.4.1

tskit:
dict version: 0.5.8


os:
dict system: Linux
node: node2
release: 5.15.0-58-generic
version: #64-Ubuntu SMP Thu Jan 5
11:43:13 UTC 2023
machine: x86_64

python:
dict implementation: CPython
version:
list 3
9
18



To cite this software, please consult the citation manual: https://tskit.dev/citation/
tsm100M300I.diversity()
np.float64(0.0008102636799985429)
tsm100M300I.diversity(mode="branch") * mutation_rate
np.float64(0.0007728152520235786)

Calculate FST#

define individuals list:

indList = [np.arange(10)] + [np.arange(600*i+10, 600*(i+1)+10) for i in range(8)]
[i.Fst([indList[0], indList[1]], mode="branch") for i in [ts300I2k, ts300I25k, tsm100M300I]]
[np.float64(0.004369149530414562),
 np.float64(0.006317426248074964),
 np.float64(0.011025754267375176)]

And then with site mode:

[i.Fst([indList[0], indList[1]], mode="site") for i in [ts300I2k, ts300I25k, tsm100M300I]]
[np.float64(0.009344736411834753),
 np.float64(0.011842725047691682),
 np.float64(0.01151736454415031)]
tmp = {
    "simulation": ["ts300I2k", "ts300I25k", "tsm100M300I"],
    "diversity": [ts300I2k.diversity(), ts300I25k.diversity(), tsm100M300I.diversity()],
    "diversity_branch": [
        ts300I2k.diversity(mode="branch") * mutation_rate,
        ts300I25k.diversity(mode="branch") * mutation_rate,
        tsm100M300I.diversity(mode="branch") * mutation_rate
    ],
    "FST_branch": [i.Fst([indList[0], indList[1]], mode="branch") for i in [ts300I2k, ts300I25k, tsm100M300I]],
    "FST_site": [i.Fst([indList[0], indList[1]], mode="site") for i in [ts300I2k, ts300I25k, tsm100M300I]]
}
pd.DataFrame(tmp)
simulation diversity diversity_branch FST_branch FST_site
0 ts300I2k 0.000006 0.000007 0.004369 0.009345
1 ts300I25k 0.000050 0.000038 0.006317 0.011843
2 tsm100M300I 0.000810 0.000773 0.011026 0.011517
tree = ts300I2k.at_index(1)
tree.draw_svg(y_axis=True, size=(1000, 200))
../_images/7754b106d62116185214367f9e968ad84dcba18ff49ed713db007c5b22c3e2de.svg
tree.root
22777

Print the age of the tree:

tree.time(tree.root)
2052.6908381336916

Iterate over the trees and get time (throw away the 0 time nodes):

for u in tree.nodes():
    if tree.time(u) > 0:
        print(f"Node {u}: time {tree.time(u)}")
Node 22777: time 2052.6908381336916
Node 8903: time 434.81231081649946
Node 6135: time 106.1892007443155
Node 6129: time 0.8934057337059567
Node 6483: time 176.72200836278202
Node 7592: time 276.96057201724227
Node 6128: time 0.8614562465737404
Node 7561: time 3.9791894052606973
Node 7563: time 3.999468241567902
Node 7564: time 1.188705735207388
Node 7567: time 3.7890351855486446
Node 7569: time 3.975476618490097
Node 7571: time 3.5365565646228947
Node 7572: time 3.6637566443635015
Node 7573: time 3.9929000439321367
Node 7575: time 4.007783930029902
Node 7580: time 4.009007303951234
Node 7581: time 3.521605046679083
Node 7583: time 3.777739324531501
Node 7584: time 4.01605093483796
Node 7589: time 3.947350924477
Node 7590: time 3.9944752918363142
Node 7898: time 229.68181326164057
Node 8881: time 4.09889737639492
Node 8887: time 12.679095449793016
Node 8890: time 12.268408112978774
Node 8899: time 8.139099194175857
Node 8901: time 12.836428736500473
Node 13050: time 4.98963690114448
Node 14931: time 500.932483963765
Node 8898: time 12.68715298661742
Node 10157: time 9.591154540000376
Node 14889: time 18.813183740173912
Node 15797: time 535.2832203029757
Node 6122: time 0.9520054312116241
Node 8896: time 10.189682764936192
Node 14797: time 477.87902741955713
Node 7587: time 3.929325566221141
Node 14793: time 15.732672612986047
Node 14794: time 16.315067071567345
Node 14796: time 4.164545942735638
Node 16675: time 4.957739848486072
Node 16678: time 2.809875076501315
Node 16687: time 3.7692387771415583
Node 16688: time 5.583649433556701
Node 16689: time 5.583801240284319
Node 16690: time 5.584009654135528
Node 16691: time 5.584274853681661
Node 16692: time 5.584597013379693
Node 16693: time 5.584976303373147
Node 16694: time 5.585412889753534
Node 16695: time 5.585906934250183
Node 16696: time 5.586458594273948
Node 16698: time 5.5900115477039085
Node 17304: time 7.986705680529684
Node 17325: time 0.7956004478275346
Node 17329: time 3.986749947975637
Node 18326: time 488.76108704192944
Node 18316: time 11.139555447856276
Node 18317: time 13.13115725549762
Node 18318: time 13.131023460322574
Node 18319: time 13.130885546524349
Node 18320: time 13.130743505803055
Node 18321: time 13.130597329888149
Node 18322: time 13.13044701046754
Node 18323: time 13.130292539212606
Node 18324: time 13.130133907712228
Node 18325: time 13.129971107576223
Node 21650: time 649.7474454048082
Node 13148: time 231.73473746953783
Node 8718: time 0.7454985191610484
Node 13116: time 2.623990817698713
Node 13117: time 2.531713631028989
Node 13118: time 1.3551410734424203
Node 13119: time 2.6873250473496437
Node 13120: time 2.569436240983686
Node 13121: time 2.4120832376890604
Node 13122: time 1.1557660370163834
Node 13123: time 2.5800379597015506
Node 13124: time 2.648095118090795
Node 13125: time 2.714712959046146
Node 13126: time 2.716490449581194
Node 13127: time 2.1499409866387693
Node 13128: time 2.152356956687588
Node 13129: time 2.5766507150077995
Node 13130: time 2.1558634010722812
Node 13131: time 2.6052120619285066
Node 13132: time 2.609168281260556
Node 13133: time 2.6131255767696953
Node 13134: time 2.754943559465906
Node 13135: time 2.6183771913530878
Node 13136: time 2.622337017377116
Node 13137: time 2.690591300147364
Node 13138: time 2.694602569472846
Node 13139: time 2.6342863324229726
Node 13140: time 2.6382501116410633
Node 13141: time 2.6422148297032817
Node 13142: time 2.6461804681038137
Node 13143: time 2.8006679821051215
Node 13144: time 1.1939634220982231
Node 13145: time 2.808125366929877
Node 13146: time 2.703482411964289
Node 13147: time 2.7574448285619275
Node 16630: time 614.3845527455742
Node 9062: time 292.27758837331703
Node 9027: time 3.8730096696583987
Node 9050: time 4.069306052061603
Node 9051: time 3.9423270145585443
Node 16297: time 556.123436267885
Node 9764: time 0.5650181627266119
Node 16265: time 4.672341823585986
Node 16266: time 14.000220960409084
Node 16267: time 9.022100881263809
Node 16268: time 9.022231448427245
Node 16269: time 9.022362034952206
Node 16270: time 9.022492640966325
Node 16271: time 9.02262326654373
Node 16272: time 1.7234690786780857
Node 16273: time 9.026434308163136
Node 16274: time 9.02296033847764
Node 16275: time 9.023091015132989
Node 16276: time 9.023221711766737
Node 16277: time 9.023352428408334
Node 16278: time 9.023483165106466
Node 16279: time 9.02361392184959
Node 16280: time 9.023744698685741
Node 16281: time 9.023875495564969
Node 16282: time 9.024006312540884
Node 16283: time 9.024137149544119
Node 16284: time 9.024268006560899
Node 16285: time 9.024398883585167
Node 16286: time 9.02452978055363
Node 16287: time 9.024660697428127
Node 16288: time 9.024791634180168
Node 16289: time 9.02492259072031
Node 16290: time 9.025053567000027
Node 16606: time 27.512453248013465
Node 16607: time 8.42303725054012
Node 16608: time 36.68937910269257
Node 16609: time 7.140429749708737
Node 16610: time 36.17715260581313
Node 16611: time 17.012553415780133
Node 16612: time 17.013050631465557
Node 16613: time 17.013547994203154
Node 16614: time 17.014045494894695
Node 16615: time 17.014543124499404
Node 16616: time 17.015040873952053
Node 16617: time 17.015538734188567
Node 16618: time 17.01603669611724
Node 16619: time 17.01653475069084
Node 16620: time 17.017032888813965
Node 16622: time 35.87791186724872
Node 16623: time 35.88013333743743
Node 16624: time 9.070737216529594
Node 16625: time 17.01917357736364
Node 16626: time 17.019671698700122
Node 16627: time 17.020169875846566
Node 16628: time 17.020668099752054
Node 16629: time 17.280056148810356
Node 21647: time 27.709908194173906
Node 22612: time 753.3502981415722
Node 22169: time 748.8815811461643
Node 21605: time 711.0370655397833
Node 19424: time 662.9737077126814
Node 16722: time 379.85699826349526
Node 10082: time 0.5704704116237834
Node 10083: time 0.5704739496820593
Node 10084: time 0.5704774919224926
Node 16666: time 9.6923057976201
Node 16667: time 9.692649144056533
Node 16669: time 1.3493225562948932
Node 16676: time 7.76886116693954
Node 16677: time 2.1530548268768497
Node 16680: time 9.798813510484685
Node 16681: time 9.799254393468106
Node 16682: time 9.799695740947872
Node 16685: time 9.801267368028737
Node 16686: time 9.80171008380704
Node 16701: time 9.808802575299746
Node 16702: time 9.809247123949865
Node 16703: time 9.809692126208374
Node 16705: time 8.510792741216186
Node 16706: time 8.94898724352245
Node 16707: time 9.439849752874638
Node 16708: time 8.992486515082533
Node 16709: time 8.951038008433635
Node 16710: time 9.814261931001605
Node 16711: time 8.952158352760092
Node 16712: time 9.443076846292904
Node 16713: time 9.443788707890702
Node 16717: time 9.818684811768044
Node 16718: time 3.184228998791497
Node 17070: time 616.8394386148441
Node 13082: time 470.3342255704131
Node 13037: time 15.647804223839623
Node 13042: time 8.907497532813101
Node 13043: time 9.79379075235168
Node 13044: time 9.986664669809631
Node 13045: time 9.794229495845668
Node 13046: time 9.98710589082205
Node 13047: time 9.987327897175815
Node 13048: time 9.794889385481657
Node 13049: time 13.17740489499901
Node 13051: time 9.988350590020532
Node 13052: time 9.988572833859081
Node 13053: time 15.798890992963667
Node 13054: time 9.796306231810231
Node 13055: time 9.989195737050016
Node 13056: time 9.796745813886153
Node 13057: time 9.796964328525766
Node 13058: time 9.797182848934815
Node 13059: time 9.797401372148396
Node 13060: time 9.990296983618506
Node 13061: time 9.79784101274007
Node 13062: time 9.990739067955863
Node 13063: time 9.990961410602296
Node 13064: time 9.798501745947796
Node 13065: time 9.798720246814476
Node 13066: time 9.798938742968822
Node 13067: time 9.479501595893415
Node 13068: time 13.18741621709565
Node 13069: time 13.18778069900522
Node 13070: time 13.188145678723716
Node 13071: time 9.799952372505052
Node 13072: time 9.99286190919817
Node 13073: time 9.993084151879186
Node 13074: time 9.993306378347857
Node 13075: time 9.993528588373545
Node 13076: time 9.993750781854825
Node 13077: time 9.80127561934983
Node 13078: time 9.482135132261984
Node 13079: time 13.193051295305875
Node 13080: time 1.100209047220454
Node 16292: time 9.226951417896258
Node 17068: time 33.58071222417884
Node 17069: time 17.216947926385018
Node 21644: time 26.52957870869525