Note
Go to the end to download the full example code.
Exploring a patient cohort#
Scenario: You have access to the MIMIC-IV demo dataset, a subset of de-identified electronic health records from the Beth Israel Deaconess Medical Center. Each patient has a sequence of hospital admissions characterised by their type (emergency, elective, …) and admission location.
The goal of this tutorial is to load the data, build a TanaT pool, and perform an initial exploratory analysis.
Concepts covered:
Access the MIMIC-IV demo with
access()Ingest two SQL tables with the builder API into an
IntervalSequencePoolSummarise the pool with
describe()Navigate sequences and individual admissions
Visualise the admission-type distribution and individual timelines
Split into train / test with
train_test_split()
Note
MIMIC-IV data is downloaded automatically on first use and cached locally. The demo subset covers ~100 patients and is freely available via Zenodo.
Imports#
import polars as pl
from tanat.dataset import access
from tanat.sequence.type.interval.pool import IntervalSequencePool
from tanat.visualization import SequenceVisualizer
Load the MIMIC-IV demo#
access() downloads the SQLite database on the first
call and returns the local path. The builder API accepts SQL queries
directly, with no intermediate DataFrames. Two sources are chained:
hosp/admissions: one row per hospital stay (temporal, interval).hosp/patients: one row per patient (static features,is_static=True).
DB = f"sqlite:///{access('mimic4')}"
pool = IntervalSequencePool(
store=(
IntervalSequencePool.builder()
.add_sql(
DB,
"SELECT subject_id, admittime, dischtime,"
" admission_type, admission_location"
' FROM "hosp/admissions"',
id_column="subject_id",
start_column="admittime",
end_column="dischtime",
features=["admission_type", "admission_location"],
)
.add_sql(
DB,
'SELECT subject_id, gender, anchor_age AS age FROM "hosp/patients"',
id_column="subject_id",
is_static=True,
features=["gender", "age"],
)
.build("admissions_store", exist_ok=True)
)
)
# ``pl.Categorical`` is required by the metric and clustering modules, and
# enables consistent colour-coding across all visualisations.
pool.cast_features({"admission_type": pl.Categorical}, is_static=False)
mimic4.db: 0%| | 0.00/147M [00:00<?, ?B/s]
mimic4.db: 0%| | 98.3k/147M [00:00<03:16, 749kB/s]
mimic4.db: 0%| | 180k/147M [00:00<03:08, 778kB/s]
mimic4.db: 0%| | 270k/147M [00:00<03:00, 812kB/s]
mimic4.db: 0%| | 352k/147M [00:00<03:00, 814kB/s]
mimic4.db: 0%| | 451k/147M [00:00<02:50, 863kB/s]
mimic4.db: 0%| | 565k/147M [00:00<02:33, 954kB/s]
mimic4.db: 0%| | 696k/147M [00:00<02:17, 1.06MB/s]
mimic4.db: 1%| | 811k/147M [00:00<02:15, 1.08MB/s]
mimic4.db: 1%| | 926k/147M [00:00<02:14, 1.09MB/s]
mimic4.db: 1%| | 1.04M/147M [00:01<02:12, 1.10MB/s]
mimic4.db: 1%| | 1.16M/147M [00:01<02:11, 1.11MB/s]
mimic4.db: 1%| | 1.27M/147M [00:01<02:11, 1.11MB/s]
mimic4.db: 1%| | 1.38M/147M [00:01<02:10, 1.11MB/s]
mimic4.db: 1%| | 1.50M/147M [00:01<02:10, 1.11MB/s]
mimic4.db: 1%| | 1.61M/147M [00:01<02:10, 1.11MB/s]
mimic4.db: 1%| | 1.73M/147M [00:01<02:10, 1.12MB/s]
mimic4.db: 1%|▏ | 1.88M/147M [00:01<01:56, 1.25MB/s]
mimic4.db: 1%|▏ | 2.02M/147M [00:01<02:29, 974kB/s]
mimic4.db: 2%|▏ | 2.21M/147M [00:02<02:28, 979kB/s]
mimic4.db: 2%|▏ | 2.32M/147M [00:02<02:25, 997kB/s]
mimic4.db: 2%|▏ | 2.42M/147M [00:02<02:22, 1.01MB/s]
mimic4.db: 2%|▏ | 2.53M/147M [00:02<02:21, 1.03MB/s]
mimic4.db: 2%|▏ | 2.72M/147M [00:02<02:25, 992kB/s]
mimic4.db: 2%|▏ | 2.83M/147M [00:02<02:23, 1.01MB/s]
mimic4.db: 2%|▏ | 2.97M/147M [00:02<02:11, 1.10MB/s]
mimic4.db: 2%|▏ | 3.19M/147M [00:03<02:08, 1.12MB/s]
mimic4.db: 2%|▏ | 3.44M/147M [00:03<02:03, 1.16MB/s]
mimic4.db: 2%|▏ | 3.56M/147M [00:03<02:02, 1.18MB/s]
mimic4.db: 3%|▎ | 3.69M/147M [00:03<02:00, 1.19MB/s]
mimic4.db: 3%|▎ | 3.81M/147M [00:03<01:59, 1.20MB/s]
mimic4.db: 3%|▎ | 3.93M/147M [00:03<01:59, 1.20MB/s]
mimic4.db: 3%|▎ | 4.26M/147M [00:03<01:42, 1.39MB/s]
mimic4.db: 3%|▎ | 4.40M/147M [00:03<01:43, 1.38MB/s]
mimic4.db: 3%|▎ | 4.57M/147M [00:04<02:01, 1.17MB/s]
mimic4.db: 3%|▎ | 4.69M/147M [00:04<02:00, 1.18MB/s]
mimic4.db: 3%|▎ | 4.82M/147M [00:04<01:59, 1.19MB/s]
mimic4.db: 3%|▎ | 4.94M/147M [00:04<01:58, 1.20MB/s]
mimic4.db: 3%|▎ | 5.06M/147M [00:04<02:28, 955kB/s]
mimic4.db: 4%|▎ | 5.28M/147M [00:04<01:55, 1.23MB/s]
mimic4.db: 4%|▎ | 5.41M/147M [00:04<02:20, 1.01MB/s]
mimic4.db: 4%|▍ | 5.54M/147M [00:05<02:14, 1.06MB/s]
mimic4.db: 4%|▍ | 5.66M/147M [00:05<02:09, 1.09MB/s]
mimic4.db: 4%|▍ | 5.78M/147M [00:05<02:05, 1.12MB/s]
mimic4.db: 4%|▍ | 5.91M/147M [00:05<02:02, 1.15MB/s]
mimic4.db: 4%|▍ | 6.09M/147M [00:05<02:14, 1.05MB/s]
mimic4.db: 4%|▍ | 6.27M/147M [00:05<01:55, 1.22MB/s]
mimic4.db: 4%|▍ | 6.40M/147M [00:05<01:53, 1.24MB/s]
mimic4.db: 4%|▍ | 6.53M/147M [00:05<01:51, 1.26MB/s]
mimic4.db: 5%|▍ | 6.66M/147M [00:05<01:50, 1.27MB/s]
mimic4.db: 5%|▍ | 6.81M/147M [00:06<02:15, 1.03MB/s]
mimic4.db: 5%|▍ | 6.94M/147M [00:06<02:08, 1.09MB/s]
mimic4.db: 5%|▍ | 7.06M/147M [00:06<02:04, 1.13MB/s]
mimic4.db: 5%|▍ | 7.18M/147M [00:06<02:01, 1.15MB/s]
mimic4.db: 5%|▍ | 7.33M/147M [00:06<01:52, 1.24MB/s]
mimic4.db: 5%|▌ | 7.46M/147M [00:06<02:21, 987kB/s]
mimic4.db: 5%|▌ | 7.58M/147M [00:06<02:16, 1.02MB/s]
mimic4.db: 5%|▌ | 7.71M/147M [00:06<02:08, 1.09MB/s]
mimic4.db: 5%|▌ | 7.86M/147M [00:07<01:57, 1.19MB/s]
mimic4.db: 5%|▌ | 7.99M/147M [00:07<01:54, 1.22MB/s]
mimic4.db: 6%|▌ | 8.12M/147M [00:07<02:22, 973kB/s]
mimic4.db: 6%|▌ | 8.25M/147M [00:07<02:11, 1.05MB/s]
mimic4.db: 6%|▌ | 8.45M/147M [00:07<02:14, 1.03MB/s]
mimic4.db: 6%|▌ | 8.56M/147M [00:07<02:11, 1.05MB/s]
mimic4.db: 6%|▌ | 8.74M/147M [00:07<01:51, 1.24MB/s]
mimic4.db: 6%|▌ | 8.94M/147M [00:08<02:01, 1.13MB/s]
mimic4.db: 6%|▌ | 9.06M/147M [00:08<01:59, 1.15MB/s]
mimic4.db: 6%|▌ | 9.18M/147M [00:08<01:57, 1.17MB/s]
mimic4.db: 6%|▋ | 9.31M/147M [00:08<01:56, 1.18MB/s]
mimic4.db: 6%|▋ | 9.43M/147M [00:08<02:26, 938kB/s]
mimic4.db: 6%|▋ | 9.56M/147M [00:08<02:15, 1.02MB/s]
mimic4.db: 7%|▋ | 9.71M/147M [00:08<02:02, 1.12MB/s]
mimic4.db: 7%|▋ | 9.83M/147M [00:08<01:59, 1.15MB/s]
mimic4.db: 7%|▋ | 9.95M/147M [00:08<01:57, 1.17MB/s]
mimic4.db: 7%|▋ | 10.1M/147M [00:09<01:56, 1.18MB/s]
mimic4.db: 7%|▋ | 10.3M/147M [00:09<02:09, 1.06MB/s]
mimic4.db: 7%|▋ | 10.4M/147M [00:09<02:07, 1.07MB/s]
mimic4.db: 7%|▋ | 10.5M/147M [00:09<02:05, 1.09MB/s]
mimic4.db: 7%|▋ | 10.6M/147M [00:09<02:04, 1.10MB/s]
mimic4.db: 7%|▋ | 10.7M/147M [00:09<02:02, 1.11MB/s]
mimic4.db: 7%|▋ | 10.8M/147M [00:09<02:02, 1.11MB/s]
mimic4.db: 7%|▋ | 10.9M/147M [00:09<02:01, 1.12MB/s]
mimic4.db: 8%|▊ | 11.1M/147M [00:10<02:00, 1.13MB/s]
mimic4.db: 8%|▊ | 11.2M/147M [00:10<02:01, 1.12MB/s]
mimic4.db: 8%|▊ | 11.3M/147M [00:10<02:00, 1.13MB/s]
mimic4.db: 8%|▊ | 11.4M/147M [00:10<02:00, 1.12MB/s]
mimic4.db: 8%|▊ | 11.5M/147M [00:10<02:00, 1.13MB/s]
mimic4.db: 8%|▊ | 11.6M/147M [00:10<01:59, 1.13MB/s]
mimic4.db: 8%|▊ | 11.7M/147M [00:10<01:59, 1.13MB/s]
mimic4.db: 8%|▊ | 11.9M/147M [00:10<01:59, 1.13MB/s]
mimic4.db: 8%|▊ | 12.0M/147M [00:10<01:59, 1.13MB/s]
mimic4.db: 8%|▊ | 12.1M/147M [00:11<02:33, 880kB/s]
mimic4.db: 8%|▊ | 12.2M/147M [00:11<02:17, 983kB/s]
mimic4.db: 8%|▊ | 12.3M/147M [00:11<02:14, 1.00MB/s]
mimic4.db: 9%|▊ | 12.5M/147M [00:11<02:13, 1.01MB/s]
mimic4.db: 9%|▊ | 12.6M/147M [00:11<02:11, 1.02MB/s]
mimic4.db: 9%|▊ | 12.7M/147M [00:11<02:10, 1.03MB/s]
mimic4.db: 9%|▊ | 12.9M/147M [00:11<02:06, 1.06MB/s]
mimic4.db: 9%|▉ | 13.0M/147M [00:11<01:54, 1.17MB/s]
mimic4.db: 9%|▉ | 13.2M/147M [00:12<02:07, 1.05MB/s]
mimic4.db: 9%|▉ | 13.4M/147M [00:12<02:05, 1.06MB/s]
mimic4.db: 9%|▉ | 13.6M/147M [00:12<01:52, 1.19MB/s]
mimic4.db: 9%|▉ | 13.8M/147M [00:12<01:53, 1.18MB/s]
mimic4.db: 9%|▉ | 13.9M/147M [00:12<01:50, 1.20MB/s]
mimic4.db: 10%|▉ | 14.1M/147M [00:12<01:48, 1.23MB/s]
mimic4.db: 10%|▉ | 14.2M/147M [00:12<02:02, 1.08MB/s]
mimic4.db: 10%|▉ | 14.4M/147M [00:13<01:50, 1.20MB/s]
mimic4.db: 10%|▉ | 14.5M/147M [00:13<01:47, 1.23MB/s]
mimic4.db: 10%|▉ | 14.7M/147M [00:13<02:12, 998kB/s]
mimic4.db: 10%|█ | 14.8M/147M [00:13<01:52, 1.17MB/s]
mimic4.db: 10%|█ | 15.0M/147M [00:13<01:49, 1.20MB/s]
mimic4.db: 10%|█ | 15.2M/147M [00:13<01:55, 1.15MB/s]
mimic4.db: 10%|█ | 15.3M/147M [00:13<01:53, 1.16MB/s]
mimic4.db: 10%|█ | 15.4M/147M [00:13<01:52, 1.18MB/s]
mimic4.db: 11%|█ | 15.5M/147M [00:14<01:51, 1.18MB/s]
mimic4.db: 11%|█ | 15.7M/147M [00:14<01:49, 1.20MB/s]
mimic4.db: 11%|█ | 15.8M/147M [00:14<02:16, 960kB/s]
mimic4.db: 11%|█ | 16.0M/147M [00:14<01:53, 1.16MB/s]
mimic4.db: 11%|█ | 16.3M/147M [00:14<01:44, 1.26MB/s]
mimic4.db: 11%|█ | 16.6M/147M [00:14<01:37, 1.33MB/s]
mimic4.db: 11%|█▏ | 16.7M/147M [00:14<01:36, 1.35MB/s]
mimic4.db: 11%|█▏ | 16.9M/147M [00:15<01:54, 1.13MB/s]
mimic4.db: 12%|█▏ | 17.2M/147M [00:15<01:36, 1.35MB/s]
mimic4.db: 12%|█▏ | 17.4M/147M [00:15<01:47, 1.21MB/s]
mimic4.db: 12%|█▏ | 17.6M/147M [00:15<01:53, 1.14MB/s]
mimic4.db: 12%|█▏ | 17.7M/147M [00:15<01:47, 1.20MB/s]
mimic4.db: 12%|█▏ | 17.9M/147M [00:15<01:45, 1.23MB/s]
mimic4.db: 12%|█▏ | 18.0M/147M [00:16<02:07, 1.01MB/s]
mimic4.db: 12%|█▏ | 18.1M/147M [00:16<02:04, 1.04MB/s]
mimic4.db: 12%|█▏ | 18.2M/147M [00:16<02:01, 1.06MB/s]
mimic4.db: 12%|█▏ | 18.3M/147M [00:16<01:59, 1.08MB/s]
mimic4.db: 13%|█▎ | 18.5M/147M [00:16<02:02, 1.05MB/s]
mimic4.db: 13%|█▎ | 18.6M/147M [00:16<01:59, 1.07MB/s]
mimic4.db: 13%|█▎ | 18.9M/147M [00:16<01:52, 1.14MB/s]
mimic4.db: 13%|█▎ | 19.1M/147M [00:17<01:57, 1.09MB/s]
mimic4.db: 13%|█▎ | 19.4M/147M [00:17<01:44, 1.23MB/s]
mimic4.db: 13%|█▎ | 19.5M/147M [00:17<01:37, 1.31MB/s]
mimic4.db: 13%|█▎ | 19.7M/147M [00:17<01:46, 1.20MB/s]
mimic4.db: 14%|█▎ | 19.9M/147M [00:17<01:55, 1.10MB/s]
mimic4.db: 14%|█▎ | 20.1M/147M [00:17<01:46, 1.19MB/s]
mimic4.db: 14%|█▎ | 20.2M/147M [00:18<01:44, 1.22MB/s]
mimic4.db: 14%|█▍ | 20.4M/147M [00:18<01:56, 1.09MB/s]
mimic4.db: 14%|█▍ | 20.5M/147M [00:18<01:47, 1.17MB/s]
mimic4.db: 14%|█▍ | 20.7M/147M [00:18<02:09, 980kB/s]
mimic4.db: 14%|█▍ | 20.8M/147M [00:18<02:04, 1.01MB/s]
mimic4.db: 14%|█▍ | 20.9M/147M [00:18<02:02, 1.03MB/s]
mimic4.db: 14%|█▍ | 21.0M/147M [00:18<01:59, 1.06MB/s]
mimic4.db: 14%|█▍ | 21.2M/147M [00:19<02:10, 968kB/s]
mimic4.db: 14%|█▍ | 21.3M/147M [00:19<02:00, 1.04MB/s]
mimic4.db: 15%|█▍ | 21.5M/147M [00:19<01:59, 1.05MB/s]
mimic4.db: 15%|█▍ | 21.7M/147M [00:19<01:58, 1.06MB/s]
mimic4.db: 15%|█▍ | 21.9M/147M [00:19<01:52, 1.11MB/s]
mimic4.db: 15%|█▍ | 22.1M/147M [00:19<01:56, 1.07MB/s]
mimic4.db: 15%|█▌ | 22.2M/147M [00:19<01:55, 1.08MB/s]
mimic4.db: 15%|█▌ | 22.3M/147M [00:20<02:05, 996kB/s]
mimic4.db: 15%|█▌ | 22.5M/147M [00:20<02:10, 957kB/s]
mimic4.db: 15%|█▌ | 22.7M/147M [00:20<02:01, 1.03MB/s]
mimic4.db: 16%|█▌ | 22.9M/147M [00:20<02:00, 1.03MB/s]
mimic4.db: 16%|█▌ | 23.1M/147M [00:20<01:59, 1.04MB/s]
mimic4.db: 16%|█▌ | 23.2M/147M [00:20<01:58, 1.04MB/s]
mimic4.db: 16%|█▌ | 23.3M/147M [00:20<01:58, 1.05MB/s]
mimic4.db: 16%|█▌ | 23.4M/147M [00:21<01:58, 1.05MB/s]
mimic4.db: 16%|█▌ | 23.5M/147M [00:21<02:15, 912kB/s]
mimic4.db: 16%|█▌ | 23.7M/147M [00:21<02:07, 969kB/s]
mimic4.db: 16%|█▌ | 23.8M/147M [00:21<02:04, 987kB/s]
mimic4.db: 16%|█▋ | 23.9M/147M [00:21<02:02, 1.00MB/s]
mimic4.db: 16%|█▋ | 24.1M/147M [00:21<02:21, 869kB/s]
mimic4.db: 16%|█▋ | 24.2M/147M [00:21<02:17, 892kB/s]
mimic4.db: 16%|█▋ | 24.3M/147M [00:22<02:15, 905kB/s]
mimic4.db: 17%|█▋ | 24.4M/147M [00:22<02:02, 1.00MB/s]
mimic4.db: 17%|█▋ | 24.6M/147M [00:22<01:44, 1.17MB/s]
mimic4.db: 17%|█▋ | 24.7M/147M [00:22<01:43, 1.18MB/s]
mimic4.db: 17%|█▋ | 24.8M/147M [00:22<01:43, 1.18MB/s]
mimic4.db: 17%|█▋ | 24.9M/147M [00:22<02:11, 927kB/s]
mimic4.db: 17%|█▋ | 25.1M/147M [00:22<02:15, 899kB/s]
mimic4.db: 17%|█▋ | 25.3M/147M [00:23<02:06, 962kB/s]
mimic4.db: 17%|█▋ | 25.4M/147M [00:23<02:03, 982kB/s]
mimic4.db: 17%|█▋ | 25.7M/147M [00:23<01:54, 1.06MB/s]
mimic4.db: 18%|█▊ | 25.8M/147M [00:23<01:52, 1.08MB/s]
mimic4.db: 18%|█▊ | 26.0M/147M [00:23<01:59, 1.02MB/s]
mimic4.db: 18%|█▊ | 26.2M/147M [00:23<01:50, 1.09MB/s]
mimic4.db: 18%|█▊ | 26.5M/147M [00:24<01:45, 1.14MB/s]
mimic4.db: 18%|█▊ | 26.7M/147M [00:24<01:46, 1.13MB/s]
mimic4.db: 18%|█▊ | 26.9M/147M [00:24<01:44, 1.15MB/s]
mimic4.db: 18%|█▊ | 27.0M/147M [00:24<01:43, 1.16MB/s]
mimic4.db: 18%|█▊ | 27.1M/147M [00:24<01:42, 1.17MB/s]
mimic4.db: 19%|█▊ | 27.3M/147M [00:24<01:41, 1.18MB/s]
mimic4.db: 19%|█▊ | 27.4M/147M [00:24<02:00, 993kB/s]
mimic4.db: 19%|█▊ | 27.5M/147M [00:25<01:56, 1.03MB/s]
mimic4.db: 19%|█▉ | 27.7M/147M [00:25<01:49, 1.09MB/s]
mimic4.db: 19%|█▉ | 27.8M/147M [00:25<01:48, 1.10MB/s]
mimic4.db: 19%|█▉ | 27.9M/147M [00:25<01:59, 995kB/s]
mimic4.db: 19%|█▉ | 28.1M/147M [00:25<01:59, 997kB/s]
mimic4.db: 19%|█▉ | 28.3M/147M [00:25<01:51, 1.06MB/s]
mimic4.db: 19%|█▉ | 28.5M/147M [00:25<01:54, 1.04MB/s]
mimic4.db: 19%|█▉ | 28.6M/147M [00:26<01:51, 1.06MB/s]
mimic4.db: 19%|█▉ | 28.7M/147M [00:26<01:47, 1.10MB/s]
mimic4.db: 20%|█▉ | 28.8M/147M [00:26<02:05, 943kB/s]
mimic4.db: 20%|█▉ | 28.9M/147M [00:26<02:02, 963kB/s]
mimic4.db: 20%|█▉ | 29.2M/147M [00:26<01:54, 1.03MB/s]
mimic4.db: 20%|█▉ | 29.3M/147M [00:26<01:41, 1.16MB/s]
mimic4.db: 20%|██ | 29.6M/147M [00:26<01:39, 1.19MB/s]
mimic4.db: 20%|██ | 29.7M/147M [00:27<01:38, 1.19MB/s]
mimic4.db: 20%|██ | 29.9M/147M [00:27<01:43, 1.13MB/s]
mimic4.db: 20%|██ | 30.1M/147M [00:27<01:29, 1.31MB/s]
mimic4.db: 21%|██ | 30.2M/147M [00:27<01:46, 1.10MB/s]
mimic4.db: 21%|██ | 30.5M/147M [00:27<01:44, 1.12MB/s]
mimic4.db: 21%|██ | 30.6M/147M [00:27<01:42, 1.14MB/s]
mimic4.db: 21%|██ | 30.8M/147M [00:28<01:46, 1.10MB/s]
mimic4.db: 21%|██ | 31.0M/147M [00:28<01:27, 1.33MB/s]
mimic4.db: 21%|██ | 31.2M/147M [00:28<01:36, 1.20MB/s]
mimic4.db: 21%|██▏ | 31.4M/147M [00:28<01:39, 1.16MB/s]
mimic4.db: 22%|██▏ | 31.7M/147M [00:28<01:36, 1.19MB/s]
mimic4.db: 22%|██▏ | 31.9M/147M [00:28<01:35, 1.21MB/s]
mimic4.db: 22%|██▏ | 32.1M/147M [00:29<01:33, 1.23MB/s]
mimic4.db: 22%|██▏ | 32.4M/147M [00:29<01:27, 1.31MB/s]
mimic4.db: 22%|██▏ | 32.5M/147M [00:29<01:25, 1.34MB/s]
mimic4.db: 22%|██▏ | 32.7M/147M [00:29<01:34, 1.22MB/s]
mimic4.db: 22%|██▏ | 32.9M/147M [00:29<01:40, 1.14MB/s]
mimic4.db: 22%|██▏ | 33.0M/147M [00:29<01:38, 1.16MB/s]
mimic4.db: 23%|██▎ | 33.1M/147M [00:29<01:37, 1.17MB/s]
mimic4.db: 23%|██▎ | 33.3M/147M [00:30<01:49, 1.04MB/s]
mimic4.db: 23%|██▎ | 33.6M/147M [00:30<01:37, 1.17MB/s]
mimic4.db: 23%|██▎ | 33.7M/147M [00:30<01:50, 1.02MB/s]
mimic4.db: 23%|██▎ | 34.0M/147M [00:30<01:40, 1.12MB/s]
mimic4.db: 23%|██▎ | 34.1M/147M [00:30<01:52, 1.00MB/s]
mimic4.db: 23%|██▎ | 34.4M/147M [00:31<01:47, 1.05MB/s]
mimic4.db: 23%|██▎ | 34.5M/147M [00:31<01:47, 1.05MB/s]
mimic4.db: 24%|██▎ | 34.7M/147M [00:31<01:47, 1.05MB/s]
mimic4.db: 24%|██▎ | 34.9M/147M [00:31<01:34, 1.19MB/s]
mimic4.db: 24%|██▍ | 35.0M/147M [00:31<01:52, 997kB/s]
mimic4.db: 24%|██▍ | 35.2M/147M [00:31<01:51, 1.01MB/s]
mimic4.db: 24%|██▍ | 35.4M/147M [00:32<01:42, 1.09MB/s]
mimic4.db: 24%|██▍ | 35.8M/147M [00:32<01:25, 1.30MB/s]
mimic4.db: 24%|██▍ | 36.0M/147M [00:32<01:26, 1.29MB/s]
mimic4.db: 25%|██▍ | 36.3M/147M [00:32<01:23, 1.34MB/s]
mimic4.db: 25%|██▍ | 36.4M/147M [00:32<01:22, 1.35MB/s]
mimic4.db: 25%|██▍ | 36.7M/147M [00:33<01:25, 1.30MB/s]
mimic4.db: 25%|██▌ | 36.9M/147M [00:33<01:30, 1.22MB/s]
mimic4.db: 25%|██▌ | 37.1M/147M [00:33<01:29, 1.23MB/s]
mimic4.db: 25%|██▌ | 37.3M/147M [00:33<01:28, 1.24MB/s]
mimic4.db: 25%|██▌ | 37.4M/147M [00:33<01:27, 1.25MB/s]
mimic4.db: 26%|██▌ | 37.6M/147M [00:33<01:39, 1.10MB/s]
mimic4.db: 26%|██▌ | 37.7M/147M [00:34<01:46, 1.03MB/s]
mimic4.db: 26%|██▌ | 37.9M/147M [00:34<01:43, 1.05MB/s]
mimic4.db: 26%|██▌ | 38.0M/147M [00:34<01:41, 1.07MB/s]
mimic4.db: 26%|██▌ | 38.1M/147M [00:34<01:55, 946kB/s]
mimic4.db: 26%|██▌ | 38.4M/147M [00:34<01:46, 1.02MB/s]
mimic4.db: 26%|██▌ | 38.6M/147M [00:34<01:41, 1.07MB/s]
mimic4.db: 26%|██▋ | 38.7M/147M [00:34<01:39, 1.09MB/s]
mimic4.db: 26%|██▋ | 38.8M/147M [00:35<01:55, 939kB/s]
mimic4.db: 27%|██▋ | 39.0M/147M [00:35<01:49, 991kB/s]
mimic4.db: 27%|██▋ | 39.3M/147M [00:35<01:43, 1.05MB/s]
mimic4.db: 27%|██▋ | 39.5M/147M [00:35<01:42, 1.05MB/s]
mimic4.db: 27%|██▋ | 39.7M/147M [00:35<01:36, 1.11MB/s]
mimic4.db: 27%|██▋ | 39.8M/147M [00:35<01:35, 1.12MB/s]
mimic4.db: 27%|██▋ | 40.0M/147M [00:36<01:39, 1.08MB/s]
mimic4.db: 27%|██▋ | 40.2M/147M [00:36<01:32, 1.16MB/s]
mimic4.db: 27%|██▋ | 40.3M/147M [00:36<01:50, 969kB/s]
mimic4.db: 28%|██▊ | 40.5M/147M [00:36<01:44, 1.02MB/s]
mimic4.db: 28%|██▊ | 40.6M/147M [00:36<01:43, 1.03MB/s]
mimic4.db: 28%|██▊ | 40.8M/147M [00:36<01:43, 1.03MB/s]
mimic4.db: 28%|██▊ | 40.9M/147M [00:37<01:43, 1.03MB/s]
mimic4.db: 28%|██▊ | 41.1M/147M [00:37<01:52, 943kB/s]
mimic4.db: 28%|██▊ | 41.2M/147M [00:37<01:47, 982kB/s]
mimic4.db: 28%|██▊ | 41.4M/147M [00:37<01:43, 1.02MB/s]
mimic4.db: 28%|██▊ | 41.7M/147M [00:37<01:35, 1.11MB/s]
mimic4.db: 28%|██▊ | 41.9M/147M [00:37<01:22, 1.28MB/s]
mimic4.db: 29%|██▊ | 42.0M/147M [00:38<01:31, 1.15MB/s]
mimic4.db: 29%|██▊ | 42.2M/147M [00:38<01:24, 1.25MB/s]
mimic4.db: 29%|██▉ | 42.4M/147M [00:38<01:18, 1.34MB/s]
mimic4.db: 29%|██▉ | 42.5M/147M [00:38<01:16, 1.36MB/s]
mimic4.db: 29%|██▉ | 42.7M/147M [00:38<01:15, 1.39MB/s]
mimic4.db: 29%|██▉ | 42.9M/147M [00:38<01:28, 1.18MB/s]
mimic4.db: 29%|██▉ | 43.0M/147M [00:38<01:33, 1.11MB/s]
mimic4.db: 29%|██▉ | 43.2M/147M [00:38<01:31, 1.13MB/s]
mimic4.db: 29%|██▉ | 43.3M/147M [00:39<01:50, 938kB/s]
mimic4.db: 30%|██▉ | 43.5M/147M [00:39<01:52, 924kB/s]
mimic4.db: 30%|██▉ | 43.6M/147M [00:39<01:49, 949kB/s]
mimic4.db: 30%|██▉ | 43.8M/147M [00:39<01:40, 1.03MB/s]
mimic4.db: 30%|██▉ | 44.0M/147M [00:39<01:29, 1.15MB/s]
mimic4.db: 30%|██▉ | 44.1M/147M [00:39<01:26, 1.19MB/s]
mimic4.db: 30%|███ | 44.3M/147M [00:39<01:19, 1.30MB/s]
mimic4.db: 30%|███ | 44.4M/147M [00:40<01:18, 1.32MB/s]
mimic4.db: 30%|███ | 44.6M/147M [00:40<01:25, 1.20MB/s]
mimic4.db: 30%|███ | 44.8M/147M [00:40<01:21, 1.26MB/s]
mimic4.db: 31%|███ | 44.9M/147M [00:40<01:15, 1.35MB/s]
mimic4.db: 31%|███ | 45.1M/147M [00:40<01:13, 1.39MB/s]
mimic4.db: 31%|███ | 45.2M/147M [00:40<01:12, 1.41MB/s]
mimic4.db: 31%|███ | 45.4M/147M [00:40<01:31, 1.11MB/s]
mimic4.db: 31%|███ | 45.5M/147M [00:40<01:28, 1.15MB/s]
mimic4.db: 31%|███ | 45.7M/147M [00:41<01:25, 1.19MB/s]
mimic4.db: 31%|███ | 45.9M/147M [00:41<01:23, 1.21MB/s]
mimic4.db: 31%|███▏ | 46.0M/147M [00:41<01:21, 1.24MB/s]
mimic4.db: 31%|███▏ | 46.1M/147M [00:41<01:20, 1.25MB/s]
mimic4.db: 31%|███▏ | 46.3M/147M [00:41<01:19, 1.27MB/s]
mimic4.db: 32%|███▏ | 46.4M/147M [00:41<01:19, 1.27MB/s]
mimic4.db: 32%|███▏ | 46.5M/147M [00:41<01:40, 1.01MB/s]
mimic4.db: 32%|███▏ | 46.6M/147M [00:41<01:36, 1.04MB/s]
mimic4.db: 32%|███▏ | 46.8M/147M [00:42<01:34, 1.06MB/s]
mimic4.db: 32%|███▏ | 46.9M/147M [00:42<01:32, 1.08MB/s]
mimic4.db: 32%|███▏ | 47.1M/147M [00:42<01:39, 1.01MB/s]
mimic4.db: 32%|███▏ | 47.2M/147M [00:42<01:23, 1.19MB/s]
mimic4.db: 32%|███▏ | 47.4M/147M [00:42<01:38, 1.01MB/s]
mimic4.db: 32%|███▏ | 47.5M/147M [00:42<01:34, 1.06MB/s]
mimic4.db: 32%|███▏ | 47.7M/147M [00:42<01:21, 1.22MB/s]
mimic4.db: 33%|███▎ | 47.8M/147M [00:43<01:31, 1.09MB/s]
mimic4.db: 33%|███▎ | 48.0M/147M [00:43<01:35, 1.03MB/s]
mimic4.db: 33%|███▎ | 48.3M/147M [00:43<01:20, 1.23MB/s]
mimic4.db: 33%|███▎ | 48.5M/147M [00:43<01:26, 1.14MB/s]
mimic4.db: 33%|███▎ | 48.7M/147M [00:43<01:31, 1.07MB/s]
mimic4.db: 33%|███▎ | 48.9M/147M [00:44<01:30, 1.08MB/s]
mimic4.db: 33%|███▎ | 49.1M/147M [00:44<01:29, 1.09MB/s]
mimic4.db: 34%|███▎ | 49.3M/147M [00:44<01:29, 1.10MB/s]
mimic4.db: 34%|███▎ | 49.6M/147M [00:44<01:28, 1.10MB/s]
mimic4.db: 34%|███▍ | 49.7M/147M [00:44<01:35, 1.03MB/s]
mimic4.db: 34%|███▍ | 49.9M/147M [00:44<01:30, 1.08MB/s]
mimic4.db: 34%|███▍ | 50.7M/147M [00:45<00:48, 1.99MB/s]
mimic4.db: 35%|███▌ | 52.2M/147M [00:45<00:25, 3.66MB/s]
mimic4.db: 36%|███▌ | 52.9M/147M [00:46<01:11, 1.31MB/s]
mimic4.db: 36%|███▌ | 53.2M/147M [00:46<01:06, 1.42MB/s]
mimic4.db: 37%|███▋ | 53.8M/147M [00:47<00:55, 1.68MB/s]
mimic4.db: 37%|███▋ | 54.6M/147M [00:47<00:42, 2.19MB/s]
mimic4.db: 37%|███▋ | 55.0M/147M [00:47<00:38, 2.38MB/s]
mimic4.db: 38%|███▊ | 55.4M/147M [00:47<00:35, 2.56MB/s]
mimic4.db: 38%|███▊ | 55.9M/147M [00:47<00:33, 2.74MB/s]
mimic4.db: 38%|███▊ | 56.6M/147M [00:47<00:29, 3.03MB/s]
mimic4.db: 39%|███▉ | 57.5M/147M [00:47<00:25, 3.49MB/s]
mimic4.db: 40%|███▉ | 58.3M/147M [00:48<00:23, 3.75MB/s]
mimic4.db: 40%|████ | 59.2M/147M [00:48<00:22, 3.95MB/s]
mimic4.db: 41%|████ | 59.7M/147M [00:48<00:20, 4.27MB/s]
mimic4.db: 41%|████ | 60.2M/147M [00:48<00:24, 3.62MB/s]
mimic4.db: 41%|████▏ | 60.7M/147M [00:48<00:22, 3.90MB/s]
mimic4.db: 42%|████▏ | 61.2M/147M [00:48<00:21, 4.07MB/s]
mimic4.db: 42%|████▏ | 61.7M/147M [00:48<00:19, 4.33MB/s]
mimic4.db: 42%|████▏ | 62.3M/147M [00:49<00:18, 4.62MB/s]
mimic4.db: 43%|████▎ | 62.9M/147M [00:49<00:21, 3.89MB/s]
mimic4.db: 43%|████▎ | 63.5M/147M [00:49<00:23, 3.57MB/s]
mimic4.db: 44%|████▎ | 64.2M/147M [00:49<00:19, 4.33MB/s]
mimic4.db: 44%|████▍ | 64.7M/147M [00:49<00:22, 3.68MB/s]
mimic4.db: 44%|████▍ | 65.3M/147M [00:49<00:19, 4.30MB/s]
mimic4.db: 45%|████▍ | 65.9M/147M [00:50<00:21, 3.82MB/s]
mimic4.db: 45%|████▌ | 66.8M/147M [00:50<00:20, 4.01MB/s]
mimic4.db: 46%|████▌ | 67.3M/147M [00:50<00:18, 4.34MB/s]
mimic4.db: 46%|████▌ | 68.0M/147M [00:50<00:20, 3.94MB/s]
mimic4.db: 47%|████▋ | 68.6M/147M [00:50<00:17, 4.42MB/s]
mimic4.db: 47%|████▋ | 69.1M/147M [00:50<00:17, 4.52MB/s]
mimic4.db: 47%|████▋ | 69.6M/147M [00:50<00:16, 4.62MB/s]
mimic4.db: 48%|████▊ | 70.1M/147M [00:51<00:19, 3.87MB/s]
mimic4.db: 48%|████▊ | 70.8M/147M [00:51<00:16, 4.72MB/s]
mimic4.db: 48%|████▊ | 71.4M/147M [00:51<00:19, 3.97MB/s]
mimic4.db: 49%|████▉ | 72.2M/147M [00:51<00:18, 4.06MB/s]
mimic4.db: 50%|████▉ | 73.0M/147M [00:51<00:17, 4.13MB/s]
mimic4.db: 50%|█████ | 73.8M/147M [00:51<00:17, 4.20MB/s]
mimic4.db: 51%|█████ | 74.7M/147M [00:52<00:16, 4.33MB/s]
mimic4.db: 51%|█████▏ | 75.5M/147M [00:52<00:16, 4.31MB/s]
mimic4.db: 52%|█████▏ | 76.4M/147M [00:52<00:16, 4.30MB/s]
mimic4.db: 52%|█████▏ | 77.1M/147M [00:52<00:16, 4.14MB/s]
mimic4.db: 53%|█████▎ | 78.0M/147M [00:53<00:26, 2.64MB/s]
mimic4.db: 53%|█████▎ | 78.4M/147M [00:53<00:23, 2.89MB/s]
mimic4.db: 54%|█████▎ | 79.1M/147M [00:53<00:22, 3.04MB/s]
mimic4.db: 54%|█████▍ | 79.7M/147M [00:53<00:19, 3.43MB/s]
mimic4.db: 54%|█████▍ | 80.2M/147M [00:53<00:18, 3.55MB/s]
mimic4.db: 55%|█████▍ | 80.7M/147M [00:53<00:19, 3.42MB/s]
mimic4.db: 55%|█████▌ | 81.3M/147M [00:54<00:17, 3.80MB/s]
mimic4.db: 56%|█████▌ | 81.9M/147M [00:54<00:16, 3.87MB/s]
mimic4.db: 56%|█████▌ | 82.6M/147M [00:54<00:15, 4.11MB/s]
mimic4.db: 57%|█████▋ | 83.2M/147M [00:54<00:15, 4.10MB/s]
mimic4.db: 57%|█████▋ | 83.9M/147M [00:54<00:14, 4.36MB/s]
mimic4.db: 57%|█████▋ | 84.4M/147M [00:54<00:15, 4.02MB/s]
mimic4.db: 58%|█████▊ | 85.3M/147M [00:54<00:14, 4.22MB/s]
mimic4.db: 58%|█████▊ | 86.0M/147M [00:55<00:14, 4.17MB/s]
mimic4.db: 59%|█████▉ | 86.7M/147M [00:55<00:15, 3.98MB/s]
mimic4.db: 59%|█████▉ | 87.5M/147M [00:55<00:15, 3.95MB/s]
mimic4.db: 60%|█████▉ | 88.3M/147M [00:55<00:14, 4.05MB/s]
mimic4.db: 61%|██████ | 89.1M/147M [00:55<00:14, 4.06MB/s]
mimic4.db: 61%|██████ | 90.0M/147M [00:56<00:13, 4.23MB/s]
mimic4.db: 62%|██████▏ | 90.8M/147M [00:56<00:13, 4.24MB/s]
mimic4.db: 62%|██████▏ | 91.7M/147M [00:56<00:12, 4.31MB/s]
mimic4.db: 63%|██████▎ | 92.1M/147M [00:57<00:28, 1.95MB/s]
mimic4.db: 63%|██████▎ | 92.4M/147M [00:57<00:26, 2.07MB/s]
mimic4.db: 63%|██████▎ | 92.9M/147M [00:57<00:21, 2.50MB/s]
mimic4.db: 63%|██████▎ | 93.3M/147M [00:57<00:20, 2.68MB/s]
mimic4.db: 64%|██████▎ | 93.7M/147M [00:57<00:21, 2.48MB/s]
mimic4.db: 64%|██████▍ | 94.0M/147M [00:57<00:20, 2.54MB/s]
mimic4.db: 64%|██████▍ | 94.3M/147M [00:58<00:22, 2.40MB/s]
mimic4.db: 64%|██████▍ | 94.7M/147M [00:58<00:19, 2.69MB/s]
mimic4.db: 65%|██████▍ | 95.2M/147M [00:58<00:16, 3.17MB/s]
mimic4.db: 65%|██████▍ | 95.6M/147M [00:58<00:17, 2.93MB/s]
mimic4.db: 65%|██████▌ | 95.9M/147M [00:58<00:17, 2.99MB/s]
mimic4.db: 66%|██████▌ | 96.4M/147M [00:58<00:14, 3.48MB/s]
mimic4.db: 66%|██████▌ | 96.8M/147M [00:58<00:14, 3.60MB/s]
mimic4.db: 66%|██████▌ | 97.2M/147M [00:58<00:14, 3.42MB/s]
mimic4.db: 66%|██████▋ | 97.6M/147M [00:58<00:14, 3.47MB/s]
mimic4.db: 67%|██████▋ | 98.0M/147M [00:59<00:13, 3.73MB/s]
mimic4.db: 67%|██████▋ | 98.5M/147M [00:59<00:11, 4.12MB/s]
mimic4.db: 67%|██████▋ | 99.2M/147M [00:59<00:09, 4.88MB/s]
mimic4.db: 68%|██████▊ | 99.9M/147M [00:59<00:08, 5.34MB/s]
mimic4.db: 68%|██████▊ | 101M/147M [00:59<00:08, 5.79MB/s]
mimic4.db: 69%|██████▉ | 101M/147M [00:59<00:09, 4.84MB/s]
mimic4.db: 69%|██████▉ | 102M/147M [00:59<00:12, 3.75MB/s]
mimic4.db: 69%|██████▉ | 102M/147M [01:00<00:12, 3.52MB/s]
mimic4.db: 70%|██████▉ | 103M/147M [01:00<00:12, 3.66MB/s]
mimic4.db: 70%|███████ | 103M/147M [01:00<00:10, 4.04MB/s]
mimic4.db: 70%|███████ | 104M/147M [01:00<00:10, 4.34MB/s]
mimic4.db: 71%|███████ | 104M/147M [01:00<00:08, 5.05MB/s]
mimic4.db: 71%|███████▏ | 105M/147M [01:00<00:07, 5.54MB/s]
mimic4.db: 72%|███████▏ | 106M/147M [01:00<00:09, 4.19MB/s]
mimic4.db: 72%|███████▏ | 106M/147M [01:00<00:10, 3.99MB/s]
mimic4.db: 72%|███████▏ | 107M/147M [01:00<00:09, 4.20MB/s]
mimic4.db: 73%|███████▎ | 107M/147M [01:01<00:09, 4.43MB/s]
mimic4.db: 73%|███████▎ | 108M/147M [01:01<00:07, 5.04MB/s]
mimic4.db: 74%|███████▎ | 109M/147M [01:01<00:07, 5.40MB/s]
mimic4.db: 74%|███████▍ | 109M/147M [01:01<00:07, 5.31MB/s]
mimic4.db: 75%|███████▍ | 110M/147M [01:01<00:06, 5.62MB/s]
mimic4.db: 75%|███████▌ | 111M/147M [01:01<00:05, 6.34MB/s]
mimic4.db: 76%|███████▌ | 112M/147M [01:01<00:04, 7.14MB/s]
mimic4.db: 76%|███████▋ | 112M/147M [01:01<00:04, 7.15MB/s]
mimic4.db: 77%|███████▋ | 113M/147M [01:01<00:04, 6.92MB/s]
mimic4.db: 77%|███████▋ | 114M/147M [01:02<00:04, 6.89MB/s]
mimic4.db: 78%|███████▊ | 114M/147M [01:02<00:04, 6.62MB/s]
mimic4.db: 78%|███████▊ | 115M/147M [01:02<00:05, 6.05MB/s]
mimic4.db: 79%|███████▊ | 116M/147M [01:02<00:05, 5.56MB/s]
mimic4.db: 79%|███████▉ | 116M/147M [01:02<00:07, 4.12MB/s]
mimic4.db: 79%|███████▉ | 117M/147M [01:02<00:09, 3.32MB/s]
mimic4.db: 80%|███████▉ | 117M/147M [01:03<00:08, 3.42MB/s]
mimic4.db: 80%|███████▉ | 118M/147M [01:03<00:07, 3.91MB/s]
mimic4.db: 80%|████████ | 118M/147M [01:03<00:06, 4.42MB/s]
mimic4.db: 81%|████████ | 119M/147M [01:03<00:05, 4.86MB/s]
mimic4.db: 81%|████████▏ | 120M/147M [01:03<00:04, 5.54MB/s]
mimic4.db: 82%|████████▏ | 120M/147M [01:03<00:04, 6.12MB/s]
mimic4.db: 83%|████████▎ | 121M/147M [01:03<00:03, 7.16MB/s]
mimic4.db: 83%|████████▎ | 122M/147M [01:03<00:03, 7.58MB/s]
mimic4.db: 84%|████████▍ | 123M/147M [01:03<00:02, 8.45MB/s]
mimic4.db: 85%|████████▍ | 124M/147M [01:03<00:02, 8.99MB/s]
mimic4.db: 85%|████████▌ | 125M/147M [01:04<00:02, 8.05MB/s]
mimic4.db: 86%|████████▌ | 126M/147M [01:04<00:02, 8.02MB/s]
mimic4.db: 86%|████████▋ | 127M/147M [01:04<00:02, 8.53MB/s]
mimic4.db: 87%|████████▋ | 128M/147M [01:04<00:02, 7.14MB/s]
mimic4.db: 88%|████████▊ | 129M/147M [01:04<00:02, 6.28MB/s]
mimic4.db: 88%|████████▊ | 130M/147M [01:04<00:03, 5.74MB/s]
mimic4.db: 88%|████████▊ | 130M/147M [01:04<00:02, 5.68MB/s]
mimic4.db: 89%|████████▉ | 131M/147M [01:04<00:02, 5.54MB/s]
mimic4.db: 89%|████████▉ | 131M/147M [01:05<00:03, 4.88MB/s]
mimic4.db: 90%|████████▉ | 132M/147M [01:05<00:03, 4.47MB/s]
mimic4.db: 90%|████████▉ | 132M/147M [01:05<00:03, 4.55MB/s]
mimic4.db: 90%|█████████ | 133M/147M [01:05<00:03, 3.99MB/s]
mimic4.db: 91%|█████████ | 133M/147M [01:05<00:03, 4.07MB/s]
mimic4.db: 91%|█████████ | 134M/147M [01:05<00:02, 4.69MB/s]
mimic4.db: 91%|█████████▏| 135M/147M [01:05<00:02, 5.40MB/s]
mimic4.db: 92%|█████████▏| 136M/147M [01:05<00:01, 6.34MB/s]
mimic4.db: 93%|█████████▎| 136M/147M [01:06<00:01, 6.83MB/s]
mimic4.db: 93%|█████████▎| 137M/147M [01:06<00:01, 7.00MB/s]
mimic4.db: 94%|█████████▎| 138M/147M [01:06<00:01, 6.07MB/s]
mimic4.db: 94%|█████████▍| 139M/147M [01:06<00:01, 6.10MB/s]
mimic4.db: 95%|█████████▍| 139M/147M [01:06<00:01, 6.12MB/s]
mimic4.db: 95%|█████████▌| 140M/147M [01:06<00:01, 6.49MB/s]
mimic4.db: 96%|█████████▌| 141M/147M [01:06<00:00, 7.33MB/s]
mimic4.db: 96%|█████████▋| 142M/147M [01:06<00:00, 8.44MB/s]
mimic4.db: 97%|█████████▋| 143M/147M [01:06<00:00, 8.57MB/s]
mimic4.db: 98%|█████████▊| 144M/147M [01:07<00:00, 8.06MB/s]
mimic4.db: 98%|█████████▊| 145M/147M [01:07<00:00, 6.39MB/s]
mimic4.db: 99%|█████████▊| 145M/147M [01:07<00:00, 5.21MB/s]
mimic4.db: 99%|█████████▉| 146M/147M [01:07<00:00, 5.30MB/s]
mimic4.db: 100%|█████████▉| 147M/147M [01:07<00:00, 5.64MB/s]
mimic4.db: 100%|██████████| 147M/147M [01:07<00:00, 2.17MB/s]
┌─ Interval SequenceStore
│
│ Step 1/4: Sorting & preparing data
│
│ Step 2/4: Building sequence index
│
│ Step 3/4: Writing entity, time index & static features
│
│ Step 4/4: Computing & writing metadata
│
└─ Done (100 sequences · 275 entities · 0.01s)
print(pool)
┌────────────────────────────────────────────────┐
│ IntervalSequencePool Summary │
└────────────────────────────────────────────────┘
Overview
─────────────────────────
Sequences 100
Store /home/runner/.tanat_workspace/building_pools_tutorial/admissions_store
id_column id
Time Index
─────────────────────────
Type Datetime(time_unit='us', time_zone=None) [2110-04-11 15:08:00 → 2201-12-17 13:45:00]
Columns ['start', 'end']
t0 position=0, anchor=start
Entity Features (2)
─────────────────────────
• admission_location String [len 4 → 38]
• admission_type Categorical (9 categories)
Static Features (2)
─────────────────────────
• age String [len 2 → 2]
• gender String [len 1 → 1]
Describe the cohort#
describe() summarises the pool.
by_id=False returns aggregate statistics across all patients;
by_id=True returns one row per patient.
pool.describe(by_id=False)
pool.describe(by_id=True).head()
Distribution of admission types#
A barplot gives a quick overview of how often each admission type appears across the full cohort.
# fmt: off
SequenceVisualizer.barplot() \
.title("Admission-type distribution (all patients)") \
.colors("tab10") \
.draw(pool, entity_feature="admission_type") \
.show()
# fmt: on

Individual patient timeline#
Indexing the pool by a patient ID returns a
Sequence whose admissions can be
rendered as a horizontal timeline.
pid = pool.unique_ids[0]
seq = pool[pid]
print(f"Patient {pid}: {len(seq)} admissions")
print(seq.temporal_data())
Patient 10000032: 4 admissions
id start ... admission_location admission_type
0 10000032 2180-05-06 22:23:00 ... TRANSFER FROM HOSPITAL URGENT
1 10000032 2180-06-26 18:27:00 ... EMERGENCY ROOM EW EMER.
2 10000032 2180-07-23 12:35:00 ... EMERGENCY ROOM EW EMER.
3 10000032 2180-08-05 23:44:00 ... EMERGENCY ROOM EW EMER.
[4 rows x 5 columns]
# fmt: off
SequenceVisualizer.timeline() \
.title(f"Admission timeline - patient {pid}") \
.colors("tab10") \
.draw(seq, entity_feature="admission_type") \
.show()
# fmt: on

Explore duration of admissions#
A span plot shows the duration of each admission type as a box plot. This reveals which admission types tend to be short (e.g. observation) vs. long (e.g. elective surgery).
# fmt: off
SequenceVisualizer.spanplot(display_unit="hours") \
.title("Admission durations") \
.colors("tab10") \
.x_axis(rotation=80) \
.y_axis(label="Duration (hours)") \
.draw(pool, entity_feature="admission_type") \
.show()
# fmt: on

Train / test split#
train_test_split() splits at
the patient level for downstream predictive modelling.
train, test = pool.train_test_split(test_size=0.2, random_state=42)
print(f"Train : {len(train)} patients")
print(f"Test : {len(test)} patients")
Train : 80 patients
Test : 20 patients
Merging splits#
extend() merges two pools back
into one. Here we verify that the combined pool recovers all original patients.
extended = train.extend(test)
print(len(extended))
100
Total running time of the script: (1 minutes 9.699 seconds)