From 3664e69fab9e1bfac6a3c09d43f67d31710050d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Wieiw=C3=B3rka?= Date: Mon, 16 Dec 2024 21:22:17 +0100 Subject: [PATCH] Poetry setup --- .github/workflows/publish_to_pypi.yml | 27 +- .pre-commit-config.yaml | 1 + Makefile | 4 +- benchmark/run_bench.ipynb | 673 ++++++++++++++++---------- docs/notebooks/tutorial.ipynb | 153 +++--- poetry.lock | 66 ++- pyproject.toml | 6 +- tests/test_bioframe.py | 1 - 8 files changed, 589 insertions(+), 342 deletions(-) diff --git a/.github/workflows/publish_to_pypi.yml b/.github/workflows/publish_to_pypi.yml index ba280c2..0090a56 100644 --- a/.github/workflows/publish_to_pypi.yml +++ b/.github/workflows/publish_to_pypi.yml @@ -21,7 +21,8 @@ permissions: # Make sure CI fails on all warnings, including Clippy lints env: - RUSTFLAGS: "-Dwarnings" + RUSTFLAGS: "-Dwarnings -Ctarget-cpu=native" + POETRY_VERSION: 1.8.4 jobs: linux_tests: @@ -29,15 +30,15 @@ jobs: strategy: matrix: target: [x86_64] - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: ${{ matrix.python-version }} - - + - uses: abatilo/actions-poetry@v2 + with: + poetry-version: ${{ env.POETRY_VERSION }} - name: Set up Rust run: rustup show - uses: mozilla-actions/sccache-action@v0.0.3 @@ -56,6 +57,9 @@ jobs: - uses: actions/setup-python@v4 with: python-version: '3.10' + - uses: abatilo/actions-poetry@v2 + with: + poetry-version: ${{ env.POETRY_VERSION }} - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -80,9 +84,10 @@ jobs: - uses: actions/setup-python@v4 with: python-version: '3.10' - architecture: ${{ matrix.target }} - + - uses: abatilo/actions-poetry@v2 + with: + poetry-version: ${{ env.POETRY_VERSION }} - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -108,12 +113,13 @@ jobs: - uses: actions/setup-python@v4 with: python-version: '3.10' + - uses: abatilo/actions-poetry@v2 + with: + poetry-version: ${{ env.POETRY_VERSION }} - name: Build wheels uses: PyO3/maturin-action@v1 with: - target: ${{ matrix.target }} - args: --release --out dist --find-interpreter sccache: 'true' - name: Upload wheels @@ -128,6 +134,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - uses: abatilo/actions-poetry@v2 + with: + poetry-version: ${{ env.POETRY_VERSION }} - name: Build sdist uses: PyO3/maturin-action@v1 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e9529e8..6352607 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,6 +13,7 @@ repos: - id: ruff types_or: [python, pyi, jupyter] args: [--fix, --show-fixes, --exit-non-zero-on-fix] + - id: ruff-format - repo: https://github.com/pycqa/isort rev: 5.13.2 hooks: diff --git a/Makefile b/Makefile index aee7bda..dbc230f 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,8 @@ SHELL=/bin/bash venv: ## Set up virtual environment python3 -m venv .venv - .venv/bin/pip install -r requirements.txt + poetry lock --no-update + poetry install install: venv unset CONDA_PREFIX && \ @@ -17,7 +18,6 @@ pre-commit: venv cargo fmt --all && cargo clippy --all-features .venv/bin/python -m ruff check polars_bio tests --fix --exit-non-zero-on-fix .venv/bin/python -m ruff format polars_bio tests - .venv/bin/python -m mypy polars_bio tests test: venv .venv/bin/python -m pytest tests diff --git a/benchmark/run_bench.ipynb b/benchmark/run_bench.ipynb index f888f2b..ea1e40b 100644 --- a/benchmark/run_bench.ipynb +++ b/benchmark/run_bench.ipynb @@ -26,6 +26,7 @@ }, { "cell_type": "code", + "execution_count": 9, "id": "bc154f4724028a04", "metadata": { "ExecuteTime": { @@ -33,10 +34,6 @@ "start_time": "2024-12-16T06:43:35.801676Z" } }, - "source": [ - "%env BENCH_DATA_ROOT=/Users/mwiewior/research/git/openstack-bdg-runners/ansible/roles/gha_runner/files/databio\n", - "%env SEQUILA_CLI=/Users/mwiewior/CLionProjects/sequila-native/target/release/sequila-cli" - ], "outputs": [ { "name": "stdout", @@ -47,10 +44,14 @@ ] } ], - "execution_count": 9 + "source": [ + "%env BENCH_DATA_ROOT=/Users/mwiewior/research/git/openstack-bdg-runners/ansible/roles/gha_runner/files/databio\n", + "%env SEQUILA_CLI=/Users/mwiewior/CLionProjects/sequila-native/target/release/sequila-cli" + ] }, { "cell_type": "code", + "execution_count": 10, "id": "ae490515180f0af4", "metadata": { "ExecuteTime": { @@ -58,15 +59,16 @@ "start_time": "2024-12-16T06:43:37.128323Z" } }, + "outputs": [], "source": [ "import os\n", - "BENCH_DATA_ROOT= os.getenv('BENCH_DATA_ROOT', '/data/bench_data/databio/')" - ], - "outputs": [], - "execution_count": 10 + "\n", + "BENCH_DATA_ROOT = os.getenv(\"BENCH_DATA_ROOT\", \"/data/bench_data/databio/\")" + ] }, { "cell_type": "code", + "execution_count": 11, "id": "4ade8155f7bea44b", "metadata": { "ExecuteTime": { @@ -74,90 +76,90 @@ "start_time": "2024-12-16T06:43:38.482490Z" } }, + "outputs": [], "source": [ "import pandas as pd" - ], - "outputs": [], - "execution_count": 11 + ] }, { + "cell_type": "code", + "execution_count": 21, + "id": "21bb288ddcb3bc12", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T06:52:36.306325Z", "start_time": "2024-12-16T06:52:36.304523Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "# 0-\n", "df_path_0 = f\"{BENCH_DATA_ROOT}/chainRn4/*.parquet\"\n", - "df_path_1 = f\"{BENCH_DATA_ROOT}/fBrain-DS14718/*.parquet\"\n" - ], - "id": "21bb288ddcb3bc12", - "outputs": [], - "execution_count": 21 + "df_path_1 = f\"{BENCH_DATA_ROOT}/fBrain-DS14718/*.parquet\"" + ] }, { + "cell_type": "code", + "execution_count": 22, + "id": "9d4b74fee7c23e1f", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T06:52:37.511959Z", "start_time": "2024-12-16T06:52:37.510079Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "# 0-3\n", "df_path_0 = f\"{BENCH_DATA_ROOT}/chainRn4/*.parquet\"\n", "df_path_3 = f\"{BENCH_DATA_ROOT}/chainOrnAna1/*.parquet\"" - ], - "id": "9d4b74fee7c23e1f", - "outputs": [], - "execution_count": 22 + ] }, { + "cell_type": "code", + "execution_count": 23, + "id": "696876ae1fc468b9", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T06:52:38.857019Z", "start_time": "2024-12-16T06:52:38.855346Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "# 0-8\n", "df_path_0 = f\"{BENCH_DATA_ROOT}/chainRn4/*.parquet\"\n", "df_path_8 = f\"{BENCH_DATA_ROOT}/ex-rna/*.parquet\"" - ], - "id": "696876ae1fc468b9", - "outputs": [], - "execution_count": 23 + ] }, { + "cell_type": "code", + "execution_count": 24, + "id": "fdd8e48c1393bc2b", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T06:52:41.350810Z", "start_time": "2024-12-16T06:52:41.348934Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "# 7-8\n", "df_path_7 = f\"{BENCH_DATA_ROOT}/ex-anno/*.parquet\"\n", "df_path_8 = f\"{BENCH_DATA_ROOT}/ex-rna/*.parquet\"" - ], - "id": "fdd8e48c1393bc2b", - "outputs": [], - "execution_count": 24 + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "", - "id": "948c4a842a06030a" + "id": "948c4a842a06030a", + "metadata": {}, + "outputs": [], + "source": [] }, { "cell_type": "code", + "execution_count": 26, "id": "3621a226d6b36e61", "metadata": { "ExecuteTime": { @@ -165,18 +167,18 @@ "start_time": "2024-12-16T06:52:58.246305Z" } }, - "source": [ - "df_0=pd.read_parquet(df_path_0.replace(\"*.parquet\",\"\"), engine='pyarrow')\n", - "df_1=pd.read_parquet(df_path_1.replace(\"*.parquet\",\"\"), engine='pyarrow')\n", - "df_3=pd.read_parquet(df_path_3.replace(\"*.parquet\",\"\"), engine='pyarrow')\n", - "df_7=pd.read_parquet(df_path_7.replace(\"*.parquet\",\"\"), engine='pyarrow')\n", - "df_8=pd.read_parquet(df_path_8.replace(\"*.parquet\",\"\"), engine='pyarrow')" - ], "outputs": [], - "execution_count": 26 + "source": [ + "df_0 = pd.read_parquet(df_path_0.replace(\"*.parquet\", \"\"), engine=\"pyarrow\")\n", + "df_1 = pd.read_parquet(df_path_1.replace(\"*.parquet\", \"\"), engine=\"pyarrow\")\n", + "df_3 = pd.read_parquet(df_path_3.replace(\"*.parquet\", \"\"), engine=\"pyarrow\")\n", + "df_7 = pd.read_parquet(df_path_7.replace(\"*.parquet\", \"\"), engine=\"pyarrow\")\n", + "df_8 = pd.read_parquet(df_path_8.replace(\"*.parquet\", \"\"), engine=\"pyarrow\")" + ] }, { "cell_type": "code", + "execution_count": 27, "id": "90831b206d78970a", "metadata": { "ExecuteTime": { @@ -184,11 +186,6 @@ "start_time": "2024-12-16T06:53:02.506476Z" } }, - "source": [ - "import bioframe as bf\n", - "\n", - "bf.overlap(df_0, df_1,cols1=('contig','pos_start','pos_end'), cols2=('contig','pos_start','pos_end'), how=\"inner\").count()" - ], "outputs": [ { "data": { @@ -207,7 +204,17 @@ "output_type": "execute_result" } ], - "execution_count": 27 + "source": [ + "import bioframe as bf\n", + "\n", + "bf.overlap(\n", + " df_0,\n", + " df_1,\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " how=\"inner\",\n", + ").count()" + ] }, { "cell_type": "code", @@ -268,7 +275,13 @@ "metadata": {}, "outputs": [], "source": [ - "bf.overlap(df_0, df_3,cols1=('contig','pos_start','pos_end'), cols2=('contig','pos_start','pos_end'), how=\"inner\").count()" + "bf.overlap(\n", + " df_0,\n", + " df_3,\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " how=\"inner\",\n", + ").count()" ] }, { @@ -289,7 +302,13 @@ "metadata": {}, "outputs": [], "source": [ - "bf.overlap(df_0, df_8,cols1=('contig','pos_start','pos_end'), cols2=('contig','pos_start','pos_end'), how=\"inner\").count()" + "bf.overlap(\n", + " df_0,\n", + " df_8,\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " how=\"inner\",\n", + ").count()" ] }, { @@ -310,7 +329,13 @@ "metadata": {}, "outputs": [], "source": [ - "bf.overlap(df_7, df_8,cols1=('contig','pos_start','pos_end'), cols2=('contig','pos_start','pos_end'), how=\"inner\").count()" + "bf.overlap(\n", + " df_7,\n", + " df_8,\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " how=\"inner\",\n", + ").count()" ] }, { @@ -332,6 +357,7 @@ }, { "cell_type": "code", + "execution_count": 13, "id": "ab270537110baba2", "metadata": { "ExecuteTime": { @@ -339,21 +365,22 @@ "start_time": "2024-12-16T06:44:07.699735Z" } }, + "outputs": [], "source": [ "import pyranges as pr\n", "\n", + "\n", "def df2pr(df):\n", " return pr.PyRanges(\n", " chromosomes=df.contig,\n", " starts=df.pos_start,\n", " ends=df.pos_end,\n", " )" - ], - "outputs": [], - "execution_count": 13 + ] }, { "cell_type": "code", + "execution_count": 14, "id": "920fc6c0e98b23d4", "metadata": { "ExecuteTime": { @@ -361,23 +388,22 @@ "start_time": "2024-12-16T06:44:10.496332Z" } }, + "outputs": [], "source": [ "df_0_pr = df2pr(df_0)\n", "df_1_pr = df2pr(df_1)\n", "df_3_pr = df2pr(df_3)\n", "df_7_pr = df2pr(df_7)\n", "df_8_pr = df2pr(df_8)" - ], - "outputs": [], - "execution_count": 14 + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "", - "id": "d5514b11e4315a18" + "id": "d5514b11e4315a18", + "metadata": {}, + "outputs": [], + "source": [] }, { "cell_type": "code", @@ -432,7 +458,7 @@ "metadata": {}, "outputs": [], "source": [ - "import pybedtools\n" + "import pybedtools" ] }, { @@ -503,7 +529,7 @@ "outputs": [], "source": [ "from pygenomics.interval import GenomicBase\n", - "import itertools\n" + "import itertools" ] }, { @@ -545,8 +571,7 @@ "source": [ "df_1_a = df_1.values.tolist()\n", "df_3_a = df_3.values.tolist()\n", - "df_8_a = df_8.values.tolist()\n", - "\n" + "df_8_a = df_8.values.tolist()" ] }, { @@ -566,7 +591,13 @@ "metadata": {}, "outputs": [], "source": [ - "len(list(itertools.chain.from_iterable([df_0_pg.find_all((r[0], r[1], r[2])) for r in df_1_a])))" + "len(\n", + " list(\n", + " itertools.chain.from_iterable(\n", + " [df_0_pg.find_all((r[0], r[1], r[2])) for r in df_1_a]\n", + " )\n", + " )\n", + ")" ] }, { @@ -576,8 +607,8 @@ "metadata": {}, "outputs": [], "source": [ - "#slower than array\n", - "#len(list(itertools.chain.from_iterable([df_0_pg.find_all((r.contig, r.pos_start, r.pos_end)) for r in df_3.itertuples()])))\n" + "# slower than array\n", + "# len(list(itertools.chain.from_iterable([df_0_pg.find_all((r.contig, r.pos_start, r.pos_end)) for r in df_3.itertuples()])))\n" ] }, { @@ -587,7 +618,13 @@ "metadata": {}, "outputs": [], "source": [ - "len(list(itertools.chain.from_iterable([df_0_pg.find_all((r[0], r[1], r[2])) for r in df_3_a])))" + "len(\n", + " list(\n", + " itertools.chain.from_iterable(\n", + " [df_0_pg.find_all((r[0], r[1], r[2])) for r in df_3_a]\n", + " )\n", + " )\n", + ")" ] }, { @@ -597,7 +634,13 @@ "metadata": {}, "outputs": [], "source": [ - "len(list(itertools.chain.from_iterable([df_0_pg.find_all((r[0], r[1], r[2])) for r in df_8_a])))" + "len(\n", + " list(\n", + " itertools.chain.from_iterable(\n", + " [df_0_pg.find_all((r[0], r[1], r[2])) for r in df_8_a]\n", + " )\n", + " )\n", + ")" ] }, { @@ -607,7 +650,16 @@ "metadata": {}, "outputs": [], "source": [ - "len(list(itertools.chain.from_iterable([df_7_pg.find_all((r.contig, r.pos_start, r.pos_end)) for r in df_8.itertuples()])))" + "len(\n", + " list(\n", + " itertools.chain.from_iterable(\n", + " [\n", + " df_7_pg.find_all((r.contig, r.pos_start, r.pos_end))\n", + " for r in df_8.itertuples()\n", + " ]\n", + " )\n", + " )\n", + ")" ] }, { @@ -617,7 +669,13 @@ "metadata": {}, "outputs": [], "source": [ - "len(list(itertools.chain.from_iterable([df_7_pg.find_all((r[0], r[1], r[2])) for r in df_8_a ])))" + "len(\n", + " list(\n", + " itertools.chain.from_iterable(\n", + " [df_7_pg.find_all((r[0], r[1], r[2])) for r in df_8_a]\n", + " )\n", + " )\n", + ")" ] }, { @@ -636,6 +694,7 @@ }, { "cell_type": "code", + "execution_count": 5, "id": "f77062ce640cc526", "metadata": { "ExecuteTime": { @@ -643,9 +702,12 @@ "start_time": "2024-12-15T13:21:32.197916Z" } }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", + "\n", + "\n", "def plot_metrics(metrics, labels, title):\n", " x = np.arange(len(labels)) # the label locations\n", " width = 0.10 # the width of the bars\n", @@ -654,7 +716,12 @@ " for m in metrics:\n", " ax.bar(\n", " x + width * k,\n", - " [metrics[m][\"0-1\"], metrics[m][\"0-3\"], metrics[m][\"0-8\"], metrics[m][\"7-8\"]],\n", + " [\n", + " metrics[m][\"0-1\"],\n", + " metrics[m][\"0-3\"],\n", + " metrics[m][\"0-8\"],\n", + " metrics[m][\"7-8\"],\n", + " ],\n", " width,\n", " label=m,\n", " )\n", @@ -667,12 +734,11 @@ " ax.grid(True)\n", " fig.set_size_inches(10, 5)\n", " plt.show()" - ], - "outputs": [], - "execution_count": 5 + ] }, { "cell_type": "code", + "execution_count": 6, "id": "75aba28753e4572c", "metadata": { "ExecuteTime": { @@ -680,39 +746,39 @@ "start_time": "2024-12-15T13:21:33.400773Z" } }, - "source": [ - "#pygenomic uses ge/lte for comparison - results differ\n", - "\n", - "metrics = {\n", - " \"seq-native\": {\"0-1\": 0.144, \"0-3\": 9.425, \"0-8\": 3.374, \"7-8\": 4.756},\n", - " \"polars-bio-nat-pl-lf\" : {\"0-1\": 0.164, \"0-3\": 9.248, \"0-8\": 3.470, \"7-8\": 5.090},\n", - " \"polars-bio-nat-pl-df\" : {\"0-1\": 0.145, \"0-3\": 24.668, \"0-8\": 4.210, \"7-8\": 6.698},\n", - " \"polars-bio-nat-pd-df\" : {\"0-1\": 0.150, \"0-3\": 41.995, \"0-8\": 6.392, \"7-8\": 10.639},\n", - " \"Bioframe\": {\"0-1\": 0.559, \"0-3\": 196.0, \"0-8\": 21.128, \"7-8\": 41.103},\n", - " \"PyRanges\": {\"0-1\": 0.135, \"0-3\": 92.0, \"0-8\": 10.629, \"7-8\": 19.461},\n", - " \"PyBedTools\": {\"0-1\": 1.512, \"0-3\": 2029.0, \"0-8\": 350.0, \"7-8\": 611.0},\n", - " \"PyGenomics\": {\"0-1\": 1.579, \"0-3\": 487.0, \"0-8\": 153.0, \"7-8\": 193},\n", - "}\n", - "plot_metrics(\n", - " metrics, [\"0-1\", \"0-3\", \"0-8\",\"7-8\"], \"Overlap operation performance comparison\"\n", - ")" - ], "outputs": [ { "data": { + "image/png": "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Dipbtqz69++vl19+OVu/D3Xnwx7s7e3l7++v7t27a/r06XJycspZ8FlYuXKlnn766bu2OXfunMqVK2eV7cF6uLIF5KKiRYuqRIkSuR0GcN9s9YPojo6O8vX1LVRPrMqJCxcuKDk5WR06dJCfn59cXV1zO6R8o23btoqJiVFMTIx27typIkWKqGPHjpJuf1D29fXN0Q+wnj17Vn5+fmrcuHGW69rqfQLrSc+LM2fOaMyYMYqIiNCsWbOyvf6KFSsUExOjc+fO6e2339bq1av12muvWS2+Xr16mfM2JiZGISEhGjhwoMW8gIAAq20P1kOxhXznk08+UY0aNeTi4qISJUqodevWSkhIkCS99957qlq1qpydnfXQQw/p7bfftlj38OHDql27tpydnVWvXj1t3LjxnsM+0ofvbNu2TVWrVlXRokXNJ+V033zzjdq0aaOSJUvK09NTzZs313fffWdenv5N0+OPPy6TyWSevnMY4fbt2+Xs7Jzh2/MXXnhBjz76f9/gfvXVV2ratKlcXFwUEBCgESNGmPcfhUuLFi00bNgwDRs2TJ6enipZsqQmTpxoHqJx7do19e/fX8WLF5erq6vatWunM2fOZNnf2bNn1blzZ/n4+Kho0aKqX7++duzYYdGmXLlymjZtmvr37y8PDw8999xzunXrloYNGyY/Pz85OzsrMDBQ06dPv2f8P/74oxo3bixnZ2c9/PDD2rt3r3lZZsMIP/30U1WvXl1OTk4qV66c5syZk61jNGLECL344ovy8vKSr6+vIiIiLNrMnTtXNWrUkJubmwICAjRkyBDz/QR79uzR008/rRs3bshkMslkMmVY/04mk0lLlixRu3bt5OLiogoVKuiTTz65Z5z/tHLlSpUtW1aurq56/PHHdeXKFYtlNWrcvupaoUIFmUwmnT9/PsfbKKycnJzk6+srX19f1apVSy+99JJ+/fVX/fHHH5kOI9y7d68aNGggJycn+fn56aWXXlJKSoqk21dEhg8frgsXLlic29PfmyNHjlTJkiUVFhYm6e65Jv3f/zebN29WUFCQXF1d1b17dyUmJmrVqlUqV66cihcvrhEjRig1NdW8XlJSksaOHavSpUvLzc1NDRs21J49e2x+LAuS9LwIDAzU4MGD1bp1a3300Ufy8PDI8B7etGmT3NzcdPPmTfO8YsWKydfXVwEBAerYsaM6d+5s8TlAkj777DPVqVNHzs7OqlChgqZMmWLOJUk6c+aMmjVrJmdnZ1WrVk2RkZHmZS4uLua89fX1laOjo1xdXc3Tt27dUteuXVW0aFF5eHioZ8+eunTpksX2lyxZoooVK8rR0VFBQUFavXp1lsfjfs/ryIhiC/lKTEyM+vTpo2eeeUanTp3Snj171LVrVxmGoTVr1mjSpEl6/fXXderUKb3xxhuaOHGieWhAfHy8OnbsqGrVqunIkSOKiIjQ2LFjs7XdxMREzZ49W6tXr9a+fft04cIFi3Vv3ryp8PBwffXVVzp48KAqV66s9u3bm0/E33zzjaT/++YrffpOrVq1UrFixfTpp5+a56Wmpmr9+vXq27evpNsfhtu2batu3brp2LFjWr9+vb766isNGzbs/g4o8r1Vq1apSJEiOnz4sObPn6+5c+fqvffek3T7g+C3336rzz//XFFRUTIMQ+3bt8/yKVDx8fFq3769du7cqaNHj6pt27bq1KmTLly4YNFu9uzZqlmzpo4ePaqJEydqwYIF+vzzz/XRRx/p9OnTWrNmTbaGsowbN05jxozR0aNHFRISok6dOlkUFXc6cuSIevbsqd69e+v48eOKiIjQxIkTtXLlymwdIzc3Nx06dEgzZ87U1KlTLT7E2NnZacGCBTpx4oRWrVqlXbt26cUXX5R0ezjjW2+9JQ8PD/O3x/c6b0ycOFHdunXT999/r759+6p37946derUPeNMd+jQIQ0YMEDDhg1TdHS0WrZsafENea9evcxF8OHDh/lG+1+Ij4/Xhx9+qEqVKmU6yuD3339X+/btVb9+fX3//fdasmSJli9fbn495s+fr6lTp6pMmTIZzu2rVq2So6OjDhw4oHfeeUfS3XMtXWJiohYsWKB169Zp69at2rNnjx5//HFt2bJFW7Zs0erVq7V06VKLAmDYsGGKiorSunXrdOzYMfXo0UNt27a965cruDsXFxfZ2dmpd+/eWrFihcWyFStWqHv37nJ3d8903Z9++km7du1Sw4YNzfP279+v/v3764UXXtDJkye1dOlSrVy5Uq+//rqk2z/+27VrVzk6OurQoUN65513NH78+GzFmpaWps6dO+vq1avau3evIiMj9b///U+9evUyt9m4caNeeOEFjRkzRj/88IOef/55Pf3009q9e3emfd7veR0Zcc8W8pWYmBilpKSoa9eu5l8hT/+Gd/LkyZozZ466du0qSSpfvrz5hBYeHq61a9cqLS1Ny5cvl7Ozs6pXr67ffvtNgwcPvud2k5OT9c4776hixYqSbv/HNnXqVPPyO688SbdvXC9WrJj27t2rjh07qlSpUpL+75uvzNjb26t3795au3atBgwYIEnauXOnrl+/rm7dukmSpk+frr59+2rkyJGSpMqVK2vBggVq3ry5lixZImdn52wdRxQcAQEBmjdvnkwmk4KCgnT8+HHNmzdPLVq00Oeff64DBw6ocePGkqQ1a9YoICBAmzZtUo8ePTL0VbNmTdWsWdM8PW3aNG3cuFGff/65RUH/6KOPasyYMebpCxcuqHLlymrSpIlMJpP5vXkvw4YNM+f2kiVLtHXrVi1fvjzDh0/p9hWBVq1aaeLEiZKkKlWq6OTJk5o1a5aeeuqpu24nODhYkydPlnT7PbNo0SLt3LlTbdq0kSTz+0m6feXutdde06BBg/T222/L0dFRnp6eMplM2f4B+B49eujZZ5+VdPsYRkZGauHChRmutGdl/vz5atu2rfk4VKlSRV9//bW2bt0qSear+pJUqlQpfpg+hzZv3mz+zZ+EhAT5+flp8+bNmf4Uyttvv62AgAAtWrRIJpNJDz30kC5evKjx48dr0qRJ8vT0lLu7u3n44Z0qV66smTNnWsy7W66lS05ONl+BkKTu3btr9erVunTpkooWLapq1aqpZcuW2r17t3r16qULFy5oxYoVunDhgvz9/SXdvh9469atWrFihd544w2rHLfCwjAM7dy5U9u2bdPw4cPVo0cP8z2kfn5+unz5srZs2ZLhqn+fPn1kb2+vlJQUJSUlqWPHjpowYYJ5+ZQpU/TSSy8pPDxc0u2r0tOmTdOLL76oyZMna8eOHfrxxx+1bds28+v4xhtvqF27dveMeefOnTp+/LjOnTtn/uLlgw8+UPXq1fXNN9+ofv36mj17tp566ikNGTJEkjR69GgdPHhQs2fPVsuWLTP0eb/ndWTElS3kKzVr1lSrVq1Uo0YN9ejRQ++++66uXbumhIQEnT17VgMGDFDRokXNf6+99prOnj0rSTp16pSCg4MtCpKQkBCL/qtXr25e984TnKurq/k/PknmE266S5cuaeDAgapcubI8PT3l4eGh+Pj4DFcE7qVv377as2ePLl68KOn2h+MOHTqYn0L2/fffa+XKlRb7GBYWprS0NJ07dy5H20LB0KhRI4v7mkJCQnTmzBmdPHlSRYoUsfhmtUSJEgoKCsryKkt8fLzGjh2rqlWrqlixYipatKhOnTqVIY/r1atnMf3UU08pOjpaQUFBGjFihLZv325eNmjQIIt8vdOd778iRYqoXr16WcZ26tQpPfLIIxbzHnnkEZ05c0apqanav3+/xXbWrFljbhccHGyx3j/fvzt27FCrVq1UunRpubu7q1+/frpy5YoSExMzjUW6/SHozu3deYz+eV4JCQnJcr8yO+ecOnXK4nXLrE/cv5YtWyo6OlrR0dE6fPiwwsLC1K5dO/3yyy8Z2p46dUohISEW77FHHnlE8fHx+u233+66nbp162aYl51c++f/Nz4+PipXrpzF+8fHx8ecw8ePH1dqaqqqVKlikZN79+41//+He0svwp2dndWuXTv16tVLERERatCggapXr24eJfPhhx8qMDBQzZo1s1h/3rx5io6O1vfff6/Nmzfrp59+Ur9+/czLv//+e02dOtXiNUq/5yoxMVGnTp1SQECAudCSsv++T1/3zivc1apVU7FixcznnqzOoVmdm+52XkfOcGUL+Yq9vb0iIyP19ddfa/v27Vq4cKFeeeUV/fe//5Ukvfvuuxk+pNjb22e7/y1btpiHWLm4uJjnOzg4WLQzmUwWjy4NDw/XlStXNH/+fAUGBsrJyUkhISE5vim6fv36qlixotatW6fBgwdr48aNFsOk4uPj9fzzz2vEiBEZ1i1btmyOtgX809ixYxUZGanZs2erUqVKcnFxUffu3TPksZubm8V0nTp1dO7cOX355ZfasWOHevbsqdatW+uTTz7R1KlTsz1c99+oV6+exX02Pj4+5n9n9v5NS0uTdPtR3x07dtTgwYP1+uuvy8vLS1999ZUGDBigW7duZfngiUGDBqlnz57m6Ts/IOVEVucc2I6bm5sqVapknn7vvffk6empd99913xF0lrbuVN2cy2zfL1bDsfHx8ve3l5HjhzJ8P/dP7/gQNZatmypJUuWyNHRUf7+/hYPOnn22We1ePFivfTSS1qxYoWefvrpDA/v8fX1NedVUFCQbt68qT59+ui1115TpUqVFB8frylTpphH39wpL45Kudt5HTlDsYV8x2Qy6ZFHHtEjjzyiSZMmKTAwUAcOHJC/v7/+97//me9v+qeqVatq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", "text/plain": [ "
" - ], - "image/png": "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Dipbtqz69++vl19+OVu/D3Xnwx7s7e3l7++v7t27a/r06XJycspZ8FlYuXKlnn766bu2OXfunMqVK2eV7cF6uLIF5KKiRYuqRIkSuR0GcN9s9YPojo6O8vX1LVRPrMqJCxcuKDk5WR06dJCfn59cXV1zO6R8o23btoqJiVFMTIx27typIkWKqGPHjpJuf1D29fXN0Q+wnj17Vn5+fmrcuHGW69rqfQLrSc+LM2fOaMyYMYqIiNCsWbOyvf6KFSsUExOjc+fO6e2339bq1av12muvWS2+Xr16mfM2JiZGISEhGjhwoMW8gIAAq20P1kOxhXznk08+UY0aNeTi4qISJUqodevWSkhIkCS99957qlq1qpydnfXQQw/p7bfftlj38OHDql27tpydnVWvXj1t3LjxnsM+0ofvbNu2TVWrVlXRokXNJ+V033zzjdq0aaOSJUvK09NTzZs313fffWdenv5N0+OPPy6TyWSevnMY4fbt2+Xs7Jzh2/MXXnhBjz76f9/gfvXVV2ratKlcXFwUEBCgESNGmPcfhUuLFi00bNgwDRs2TJ6enipZsqQmTpxoHqJx7do19e/fX8WLF5erq6vatWunM2fOZNnf2bNn1blzZ/n4+Kho0aKqX7++duzYYdGmXLlymjZtmvr37y8PDw8999xzunXrloYNGyY/Pz85OzsrMDBQ06dPv2f8P/74oxo3bixnZ2c9/PDD2rt3r3lZZsMIP/30U1WvXl1OTk4qV66c5syZk61jNGLECL344ovy8vKSr6+vIiIiLNrMnTtXNWrUkJubmwICAjRkyBDz/QR79uzR008/rRs3bshkMslkMmVY/04mk0lLlixRu3bt5OLiogoVKuiTTz65Z5z/tHLlSpUtW1aurq56/PHHdeXKFYtlNWrcvupaoUIFmUwmnT9/PsfbKKycnJzk6+srX19f1apVSy+99JJ+/fVX/fHHH5kOI9y7d68aNGggJycn+fn56aWXXlJKSoqk21dEhg8frgsXLlic29PfmyNHjlTJkiUVFhYm6e65Jv3f/zebN29WUFCQXF1d1b17dyUmJmrVqlUqV66cihcvrhEjRig1NdW8XlJSksaOHavSpUvLzc1NDRs21J49e2x+LAuS9LwIDAzU4MGD1bp1a3300Ufy8PDI8B7etGmT3NzcdPPmTfO8YsWKydfXVwEBAerYsaM6d+5s8TlAkj777DPVqVNHzs7OqlChgqZMmWLOJUk6c+aMmjVrJmdnZ1WrVk2RkZHmZS4uLua89fX1laOjo1xdXc3Tt27dUteuXVW0aFF5eHioZ8+eunTpksX2lyxZoooVK8rR0VFBQUFavXp1lsfjfs/ryIhiC/lKTEyM+vTpo2eeeUanTp3Snj171LVrVxmGoTVr1mjSpEl6/fXXderUKb3xxhuaOHGieWhAfHy8OnbsqGrVqunIkSOKiIjQ2LFjs7XdxMREzZ49W6tXr9a+fft04cIFi3Vv3ryp8PBwffXVVzp48KAqV66s9u3bm0/E33zzjaT/++YrffpOrVq1UrFixfTpp5+a56Wmpmr9+vXq27evpNsfhtu2batu3brp2LFjWr9+vb766isNGzbs/g4o8r1Vq1apSJEiOnz4sObPn6+5c+fqvffek3T7g+C3336rzz//XFFRUTIMQ+3bt8/yKVDx8fFq3769du7cqaNHj6pt27bq1KmTLly4YNFu9uzZqlmzpo4ePaqJEydqwYIF+vzzz/XRRx/p9OnTWrNmTbaGsowbN05jxozR0aNHFRISok6dOlkUFXc6cuSIevbsqd69e+v48eOKiIjQxIkTtXLlymwdIzc3Nx06dEgzZ87U1KlTLT7E2NnZacGCBTpx4oRWrVqlXbt26cUXX5R0ezjjW2+9JQ8PD/O3x/c6b0ycOFHdunXT999/r759+6p37946derUPeNMd+jQIQ0YMEDDhg1TdHS0WrZsafENea9evcxF8OHDh/lG+1+Ij4/Xhx9+qEqVKmU6yuD3339X+/btVb9+fX3//fdasmSJli9fbn495s+fr6lTp6pMmTIZzu2rVq2So6OjDhw4oHfeeUfS3XMtXWJiohYsWKB169Zp69at2rNnjx5//HFt2bJFW7Zs0erVq7V06VKLAmDYsGGKiorSunXrdOzYMfXo0UNt27a965cruDsXFxfZ2dmpd+/eWrFihcWyFStWqHv37nJ3d8903Z9++km7du1Sw4YNzfP279+v/v3764UXXtDJkye1dOlSrVy5Uq+//rqk2z/+27VrVzk6OurQoUN65513NH78+GzFmpaWps6dO+vq1avau3evIiMj9b///U+9evUyt9m4caNeeOEFjRkzRj/88IOef/55Pf3009q9e3emfd7veR0Zcc8W8pWYmBilpKSoa9eu5l8hT/+Gd/LkyZozZ466du0qSSpfvrz5hBYeHq61a9cqLS1Ny5cvl7Ozs6pXr67ffvtNgwcPvud2k5OT9c4776hixYqSbv/HNnXqVPPyO688SbdvXC9WrJj27t2rjh07qlSpUpL+75uvzNjb26t3795au3atBgwYIEnauXOnrl+/rm7dukmSpk+frr59+2rkyJGSpMqVK2vBggVq3ry5lixZImdn52wdRxQcAQEBmjdvnkwmk4KCgnT8+HHNmzdPLVq00Oeff64DBw6ocePGkqQ1a9YoICBAmzZtUo8ePTL0VbNmTdWsWdM8PW3aNG3cuFGff/65RUH/6KOPasyYMebpCxcuqHLlymrSpIlMJpP5vXkvw4YNM+f2kiVLtHXrVi1fvjzDh0/p9hWBVq1aaeLEiZKkKlWq6OTJk5o1a5aeeuqpu24nODhYkydPlnT7PbNo0SLt3LlTbdq0kSTz+0m6feXutdde06BBg/T222/L0dFRnp6eMplM2f4B+B49eujZZ5+VdPsYRkZGauHChRmutGdl/vz5atu2rfk4VKlSRV9//bW2bt0qSear+pJUqlQpfpg+hzZv3mz+zZ+EhAT5+flp8+bNmf4Uyttvv62AgAAtWrRIJpNJDz30kC5evKjx48dr0qRJ8vT0lLu7u3n44Z0qV66smTNnWsy7W66lS05ONl+BkKTu3btr9erVunTpkooWLapq1aqpZcuW2r17t3r16qULFy5oxYoVunDhgvz9/SXdvh9469atWrFihd544w2rHLfCwjAM7dy5U9u2bdPw4cPVo0cP8z2kfn5+unz5srZs2ZLhqn+fPn1kb2+vlJQUJSUlqWPHjpowYYJ5+ZQpU/TSSy8pPDxc0u2r0tOmTdOLL76oyZMna8eOHfrxxx+1bds28+v4xhtvqF27dveMeefOnTp+/LjOnTtn/uLlgw8+UPXq1fXNN9+ofv36mj17tp566ikNGTJEkjR69GgdPHhQs2fPVsuWLTP0eb/ndWTElS3kKzVr1lSrVq1Uo0YN9ejRQ++++66uXbumhIQEnT17VgMGDFDRokXNf6+99prOnj0rSTp16pSCg4MtCpKQkBCL/qtXr25e984TnKurq/k/PknmE266S5cuaeDAgapcubI8PT3l4eGh+Pj4DFcE7qVv377as2ePLl68KOn2h+MOHTqYn0L2/fffa+XKlRb7GBYWprS0NJ07dy5H20LB0KhRI4v7mkJCQnTmzBmdPHlSRYoUsfhmtUSJEgoKCsryKkt8fLzGjh2rqlWrqlixYipatKhOnTqVIY/r1atnMf3UU08pOjpaQUFBGjFihLZv325eNmjQIIt8vdOd778iRYqoXr16WcZ26tQpPfLIIxbzHnnkEZ05c0apqanav3+/xXbWrFljbhccHGyx3j/fvzt27FCrVq1UunRpubu7q1+/frpy5YoSExMzjUW6/SHozu3deYz+eV4JCQnJcr8yO+ecOnXK4nXLrE/cv5YtWyo6OlrR0dE6fPiwwsLC1K5dO/3yyy8Z2p46dUohISEW77FHHnlE8fHx+u233+66nbp162aYl51c++f/Nz4+PipXrpzF+8fHx8ecw8ePH1dqaqqqVKlikZN79+41//+He0svwp2dndWuXTv16tVLERERatCggapXr24eJfPhhx8qMDBQzZo1s1h/3rx5io6O1vfff6/Nmzfrp59+Ur9+/czLv//+e02dOtXiNUq/5yoxMVGnTp1SQECAudCSsv++T1/3zivc1apVU7FixcznnqzOoVmdm+52XkfOcGUL+Yq9vb0iIyP19ddfa/v27Vq4cKFeeeUV/fe//5Ukvfvuuxk+pNjb22e7/y1btpiHWLm4uJjnOzg4WLQzmUwWjy4NDw/XlStXNH/+fAUGBsrJyUkhISE5vim6fv36qlixotatW6fBgwdr48aNFsOk4uPj9fzzz2vEiBEZ1i1btmyOtgX809ixYxUZGanZs2erUqVKcnFxUffu3TPksZubm8V0nTp1dO7cOX355ZfasWOHevbsqdatW+uTTz7R1KlTsz1c99+oV6+exX02Pj4+5n9n9v5NS0uTdPtR3x07dtTgwYP1+uuvy8vLS1999ZUGDBigW7duZfngiUGDBqlnz57m6Ts/IOVEVucc2I6bm5sqVapknn7vvffk6empd99913xF0lrbuVN2cy2zfL1bDsfHx8ve3l5HjhzJ8P/dP7/gQNZatmypJUuWyNHRUf7+/hYPOnn22We1ePFivfTSS1qxYoWefvrpDA/v8fX1NedVUFCQbt68qT59+ui1115TpUqVFB8frylTpphH39wpL45Kudt5HTlDsYV8x2Qy6ZFHHtEjjzyiSZMmKTAwUAcOHJC/v7/+97//me9v+qeqVatq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" + ] }, "metadata": {}, "output_type": "display_data" } ], - "execution_count": 6 + "source": [ + "# pygenomic uses ge/lte for comparison - results differ\n", + "\n", + "metrics = {\n", + " \"seq-native\": {\"0-1\": 0.144, \"0-3\": 9.425, \"0-8\": 3.374, \"7-8\": 4.756},\n", + " \"polars-bio-nat-pl-lf\": {\"0-1\": 0.164, \"0-3\": 9.248, \"0-8\": 3.470, \"7-8\": 5.090},\n", + " \"polars-bio-nat-pl-df\": {\"0-1\": 0.145, \"0-3\": 24.668, \"0-8\": 4.210, \"7-8\": 6.698},\n", + " \"polars-bio-nat-pd-df\": {\"0-1\": 0.150, \"0-3\": 41.995, \"0-8\": 6.392, \"7-8\": 10.639},\n", + " \"Bioframe\": {\"0-1\": 0.559, \"0-3\": 196.0, \"0-8\": 21.128, \"7-8\": 41.103},\n", + " \"PyRanges\": {\"0-1\": 0.135, \"0-3\": 92.0, \"0-8\": 10.629, \"7-8\": 19.461},\n", + " \"PyBedTools\": {\"0-1\": 1.512, \"0-3\": 2029.0, \"0-8\": 350.0, \"7-8\": 611.0},\n", + " \"PyGenomics\": {\"0-1\": 1.579, \"0-3\": 487.0, \"0-8\": 153.0, \"7-8\": 193},\n", + "}\n", + "plot_metrics(\n", + " metrics, [\"0-1\", \"0-3\", \"0-8\", \"7-8\"], \"Overlap operation performance comparison\"\n", + ")" + ] }, { "cell_type": "code", + "execution_count": 7, "id": "657a85d9bf76f15c", "metadata": { "ExecuteTime": { @@ -720,71 +786,88 @@ "start_time": "2024-12-15T13:21:43.285502Z" } }, - "source": [ - "metrics = {\n", - " \"polars-bio-nat-pl-lf\" : {\"0-1\": 0.164, \"0-3\": 9.248, \"0-8\": 3.470, \"7-8\": 5.090},\n", - " \"polars-bio-pl-df--pl-lf\" : {\"0-1\": 0.147, \"0-3\": 44.942, \"0-8\": 6.096, \"7-8\": 9.522},\n", - " \"polars-bio-pd-df--pl-lf\" : {\"0-1\": 0.177, \"0-3\": 43.369, \"0-8\": 6.241, \"7-8\": 9.688},\n", - " \"polars-bio-pd-df--pd-df\" : {\"0-1\": 0.175 , \"0-3\": 51.226 , \"0-8\": 7.435 , \"7-8\": 11.756 },\n", - "}\n", - "plot_metrics(\n", - " metrics, [\"0-1\", \"0-3\", \"0-8\",\"7-8\"], \"Overlap operation performance comparison between DataFrames\"\n", - ")" - ], "outputs": [ { "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2EAAAHeCAYAAAASDwO2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAABV+ElEQVR4nO3deZyN9f//8eeZ7cwwZhjbWMaMfWuiCCP7koSIUCpDWhRJQ33SJzFaRLbKWh8hJSK0WyKSkETqY82HlGVkGctgZjjv3x/95nwds8+cuc7MeNxvN7ebc53rvK/XdZ3rdc48z3Wd69iMMUYAAAAAAEt4eboAAAAAALiREMIAAAAAwEKEMAAAAACwECEMAAAAACxECAMAAAAACxHCAAAAAMBChDAAAAAAsBAhDAAAAAAsRAgDAAAAAAsRwgA3mjt3rmw2mw4dOuTpUgqN0aNHy2azeboMS2zdulVNmzZV0aJFZbPZtGPHDk+XhAJo3bp1stlsWrdunadLSeXQoUOy2WyaMGGCp0sBAI8ihKFA+u9//6sHH3xQFSpUkN1uV/ny5fXAAw/ov//9r6dLQw5cvHhRo0ePzpd/NFolOTlZPXv21OnTpzV58mTNnz9f4eHhni4LyPd27dql0aNHF+oPvyIiImSz2WSz2eTl5aXixYsrMjJSjz32mLZs2ZKrsV977TUtX748x49PCf1p/bvvvvtyVRtQmPl4ugAgu5YuXar7779fISEhGjBggCpXrqxDhw5p9uzZWrJkiRYuXKh77rnH02UiGy5evKjY2FhJUqtWrVzue/HFF/X88897oCprHThwQH/88YfeffddPfLII54uBwVYixYtdOnSJfn5+Xm6FEvs2rVLsbGxatWqlSIiIjxdTp6pX7++hg0bJkk6f/68du/ercWLF+vdd9/VM888o0mTJuVo3Ndee0333nuvunXrlqv6hgwZottuu81lWmF+PoDcIoShQDlw4IAeeughValSRd99951Kly7tvO/pp59W8+bN9dBDD2nnzp2qUqWKZXUlJCSoaNGili0vv7ty5YocDodb/gj08fGRj0/hfalK2XdOnDghSSpevLjbx8aN4fLly/Lz85OXl5f8/f09XQ7crEKFCnrwwQddpo0bN059+vTR5MmTVb16dT3xxBMeqk5q3ry57r333izN6873CKCg4nREFChvvPGGLl68qHfeecclgElSqVKlNGvWLCUkJGj8+PGSpCVLlshms2n9+vWpxpo1a5ZsNpt+++0357Q9e/bo3nvvVUhIiPz9/dWwYUN99tlnLo9L+d7X+vXr9eSTT6pMmTKqWLFiujV/+umn6tSpk8qXLy+73a6qVavq5Zdf1tWrV13ma9WqlW666SZt27ZNTZs2VUBAgCpXrqyZM2dmadtcuXJFL7/8sqpWrSq73a6IiAi98MILSkxMdJkvIiJCnTt31qpVq1S/fn35+/urTp06Wrp0aaox4+PjNXToUIWFhclut6tatWoaN26cHA6Hc55rv+MxZcoU5/J37dqlpKQkvfTSS2rQoIGCg4NVtGhRNW/eXN9++63L41Oey9jYWOdpLKNHj5aU9nfCsruu33//vRo1aiR/f39VqVJF77//fqbb89r1mjx5ssLDwxUQEKCWLVu67DMpcrPv9OvXTy1btpQk9ezZUzabzeWI4Nq1a9W8eXMVLVpUxYsXV9euXbV7926XsVO2065du9SnTx+VKFFCzZo1c9kO69atU8OGDRUQEKDIyEjn6Z9Lly5VZGSk/P391aBBA23fvt1l7J07d6pfv36qUqWK/P39FRoaqocfflinTp1Ks4bff/9d/fr1U/HixRUcHKz+/fvr4sWLqbbZBx98oEaNGqlIkSIqUaKEWrRooVWrVrnM8/XXXzvXvVixYurUqVOWTzuOj4/XM888o4iICNntdlWsWFF9+/bVyZMnnfOcOHFCAwYMUNmyZeXv76969epp3rx5LuNcuy9MmzZNVapUUZEiRXTHHXfozz//lDFGL7/8sipWrKiAgAB17dpVp0+fdhkjq313+vRpDR8+XJGRkQoMDFRQUJA6duyoX375xWW+lFPAFi5cqBdffFEVKlRQkSJFdO7cuTS/E7Z//3716NFDoaGh8vf3V8WKFXXffffp7Nmzznms6KtruaOv5s6dq549e0qSWrdu7Xz9WLdunWJiYlSyZEkZY5zzP/XUU7LZbHrrrbec0+Li4mSz2TRjxgzntMTERI0aNUrVqlWT3W5XWFiYnnvuuVTbQvpnP27QoIECAgIUEhKi++67T3/++afLPCmv77t27VLr1q1VpEgRVahQwflelVMBAQGaP3++QkJC9Oqrr7qs64QJE9S0aVOVLFlSAQEBatCggZYsWeLyeJvNpoSEBM2bN8+57fr16ydJ+uOPP/Tkk0+qZs2aCggIUMmSJdWzZ89sn/aZ2/eI68fIaQ9KWXs9OX78uPr376+KFSvKbrerXLly6tq1a6E+3RUeYoACpHz58iYiIiLDeSIiIkzFihWNMcZcvHjRBAYGmieffDLVfK1btzZ169Z13v7tt99McHCwqVOnjhk3bpyZOnWqadGihbHZbGbp0qXO+ebMmWMkmTp16piWLVuat99+27z++usu9x08eNA5f7du3UyvXr3MG2+8YWbMmGF69uxpJJnhw4e71NOyZUtTvnx5U6ZMGTN48GDz1ltvmWbNmhlJZvbs2Zlum+joaCPJ3HvvvWbatGmmb9++RpLp1q2by3zh4eGmRo0apnjx4ub55583kyZNMpGRkcbLy8usWrXKOV9CQoK5+eabTcmSJc0LL7xgZs6cafr27WtsNpt5+umnnfMdPHjQuT2qVKliXn/9dTN58mTzxx9/mL///tuUK1fOxMTEmBkzZpjx48ebmjVrGl9fX7N9+3ZjjDEXLlwwM2bMMJLMPffcY+bPn2/mz59vfvnlF2OMMaNGjTLXv1RlZ11r1qxpypYta1544QUzdepUc+uttxqbzWZ+++23DLdnynpFRkaaiIgIM27cOBMbG2tCQkJM6dKlzfHjx53z5nbf+eGHH8wLL7xgJJkhQ4aY+fPnO5+L1atXGx8fH1OjRg0zfvx4Exsba0qVKmVKlCjhsp+lbKc6deqYrl27munTp5tp06a5bIdy5cqZ0aNHm8mTJ5sKFSqYwMBA88EHH5hKlSqZ119/3bz++usmODjYVKtWzVy9etU59oQJE0zz5s3NmDFjzDvvvGOefvppExAQYBo1amQcDkeqGm655RbTvXt3M336dPPII48YSea5555z2b6jR482kkzTpk3NG2+8Yd58803Tp08f869//cs5z/vvv29sNpu58847zdtvv23GjRtnIiIiTPHixV3WPS3nz583N910k/H29jaPPvqomTFjhnn55ZfNbbfd5tz3Ll68aGrXrm18fX3NM888Y9566y3TvHlzI8lMmTIl1b5Qv359U6dOHTNp0iTz4osvGj8/P9OkSRPzwgsvmKZNm5q33nrLDBkyxNhsNtO/f3+XerLad1u3bjVVq1Y1zz//vJk1a5YZM2aMqVChggkODjZHjhxxzvftt986n+/69eubSZMmmbFjx5qEhATn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hCTJ29tboaGhstlsCg4OztH+OmrUKGdvzps3TxUrVtSyZcvUq1evbI8VHBysYsWKOetC+uif3PXPvn379PXXX+vHH3/UbbfdJkmaPXu2atfO+LtL9FThRU/dmD315ptv6s4773Ruqxo1auiHH37QihUrMhxzypQpGjFihLp37y5JmjlzplauXOm8Py96jyNhudSkSRPZbDbn7aioKO3fv1+7du2Sj4+PGjdu7LyvZMmSqlmzZrpHZS5cuKDhw4erdu3aKl68uAIDA7V79+5Un7Q0bNjQ5Xa/fv20Y8cO1axZU0OGDNGqVauc9w0cOFCBgYHOf9eKiopy/t/Hx0cNGzZMt7bdu3fr9ttvd5l2++23a//+/bp69ao2bNjgspxrD1nffPPNLo8rV66cyycp33zzjdq2basKFSqoWLFieuihh3Tq1KkML+v52muvuSzv2m107Xql3E5vverWresco2PHjukuD5mjFzLvhfS20dWrV1MtJ616d+/e7TwFI63a05LWOB07dnTerlu3brrbIiQkJN3n6fDhwy7jvvbaaxnWgYzRP7nrn927d8vHx0cNGjRw3l+rVi2XK6LRUzcWeurG7Kndu3e7PLfXz59Wn509e1bHjh1zeVzKds9LHAnLR4YPH67Vq1drwoQJqlatmgICAnTvvfcqKSnJZb6iRYu63L711lt18OBBff311/rmm2/Uq1cvtWvXTkuWLNGYMWMyPX3PHRo2bOhyqc6yZcs6/+/r6+syr81mk8PhkPTPucGdO3fWE088oVdffVUhISH6/vvvNWDAACUlJalIkSJpLm/gwIEunyKWL18+R3V/9dVXzkPYAQEBORoD7ldYeyE73FVvWuP85z//0aVLlySl7s+sKl++vMt6hoSE5LhGuBf9kzZ6CjlFT6Utv/dUWvJTnxHCcmnLli0utzdv3qzq1aurTp06unLlirZs2eI83H3q1Cnt3btXderUSXOsjRs3ql+/frrnnnsk/fPJS1YvAhEUFKTevXurd+/euvfee3XnnXfq9OnTKlOmjMqUKZPmYzZv3qwWLVpIkq5cuaJt27a5HFa/Vu3atbVx48ZU9daoUUPe3t4KCAhQtWrVslTrtbZt2yaHw6GJEyc6f2X8448/dpnHz88v1ZGCkJCQdBtn8+bN6tu3r8vtW265Jc15s3pqADJHL2TeC+ltI29v71TzplVv7dq1NX/+fF2+fNn5KePmzZvTXFZG41SoUCHd+Tdv3qxKlSpJ+ufL6/v27Uvz9BMfH58c9TzSRv/krn9q1arlXHbKqVN79+51uXgBPXVjoaduzJ6qXbt2muuVIr0+K1eunLZs2ZJqu996660Z1p4bnI6YS4cPH1ZMTIz27t2rjz76SG+//baefvppVa9eXV27dtWjjz6q77//Xr/88osefPBBVahQQV27dk1zrOrVq2vp0qXasWOHfvnlF/Xp08d5xCgjkyZN0kcffaQ9e/Zo3759Wrx4sUJDQzP9Ybpp06Zp2bJl2rNnjwYNGqQzZ87o4YcfTnPeYcOGac2aNXr55Ze1b98+zZs3T1OnTs31JyDVqlVTcnKy3n77bf3vf//T/PnzNXPmTJd5IiIidOHCBa1Zs0YnT57M8DRFSVq8eLHee+897du3T6NGjdKPP/6Y7osX3IdeyLwX0ttGWdWnTx/ZbDY9+uij2rVrl7766itNmDAhy4/PijFjxmjNmjX67bff1K9fP5UqVSrPf0gT9E9u+6dmzZq688479fjjj2vLli3atm2bHnnkkUzPcKCnCi966sbsqSFDhmjFihWaMGGC9u/fr6lTp2b6fTBJevrpp/X6669r+fLl2rNnj5588sm8/31akw8kJCSYn376ySQkJHi6lGxp2bKlefLJJ83AgQNNUFCQKVGihHnhhReMw+Ewxhhz+vRp89BDD5ng4GATEBBgOnToYPbt2+d8/Jw5c0xwcLDz9sGDB03r1q1NQECACQsLM1OnTjUtW7Y0Tz/9tHOe8PBwM3nyZJc63nnnHVO/fn1TtGhRExQUZNq2bWt+/vnndOs+ePCgkWQWLFhgGjVqZPz8/EydOnXM2rVrnfN8++23RpI5c+aMc9qSJUtMnTp1jK+vr6lUqZJ54403srSNrq3fGGO6du1qoqOjnbcnTZpkypUr59xG77//fqplDxw40JQsWdJIMqNGjUp3eZLMtGnTTPv27Y3dbjcRERFm0aJFqdZ9+/bt6Y5x/fOyfft2I8kcPHgw0/W9UdELWeuFjLZReut0vU2bNpl69eoZPz8/U79+ffPJJ5+k2qeDg4PNnDlzMq3pWinr+fnnn5u6desaPz8/06hRI/PLL78457n+eUpLdHS06dq1q/P25MmTTXh4eLZqudHQP+7pn2PHjplOnToZu91uKlWqZN5//3166gZFT924PWWMMbNnzzYVK1Y0AQEBpkuXLmbChAmZ9llycrJ5+umnTVBQkClevLiJiYkxffv2zXbvpWSaJUuWmLFjx5qdO3emO6/NmGz+SE0euHjxonbv3q3atWun+x2g/KhVq1aqX7++pkyZ4ulS8P/ZbDYtW7aMTxktRi9kLr9vo3Xr1ql169Y6c+ZMpp/Swr3y+76RHxTEbURPeU5B3F+sVhC3UUHoqZRMc+jQIe3fv1+dOnVy/t7s9TgdEQAAAAAsRAgDAAAAAAtxOiIAAAAA5BKnIwIAAABAPpWvQlhWLvcJAAAAAPlNdrJMvghhfn5+kv758TsAAAAAKGhSskxycnKm8/rkdTFZ4ePjo1KlSunIkSOSpMDAQHl55Yt8CAAAAADpcjgcunDhgo4cOaL4+PgsHRHLFyFMkipVqqSrV686gxgAAAAAFBTx8fGKi4uTMUbGGPn6+qY7b74JYTabTZUrV9bOnTv1559/qnTp0hkWDgAAAAD5QXJyshwOhxwOh44ePaoSJUqoVKlS6c6fLy5Rf62EhAStWLFCv//+u/JZaQAAAACQLmOMSpQooY4dOyo8PDzd+fJdCJOkS5cu6fjx47p06RJBDAAAAECB4Ofnp5CQEJUsWTLD+fJlCAMAAACAwopLEAIAAACAhQhhAAAAAGAhQhgAAAAAWIgQBgAAAAAWIoQBAAAAgIX+H6r/mOkC97ucAAAAAElFTkSuQmCC", "text/plain": [ "
" - ], - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2EAAAHeCAYAAAASDwO2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAABV+ElEQVR4nO3deZyN9f//8eeZ7cwwZhjbWMaMfWuiCCP7koSIUCpDWhRJQ33SJzFaRLbKWh8hJSK0WyKSkETqY82HlGVkGctgZjjv3x/95nwds8+cuc7MeNxvN7ebc53rvK/XdZ3rdc48z3Wd69iMMUYAAAAAAEt4eboAAAAAALiREMIAAAAAwEKEMAAAAACwECEMAAAAACxECAMAAAAACxHCAAAAAMBChDAAAAAAsBAhDAAAAAAsRAgDAAAAAAsRwgA3mjt3rmw2mw4dOuTpUgqN0aNHy2azeboMS2zdulVNmzZV0aJFZbPZtGPHDk+XhAJo3bp1stlsWrdunadLSeXQoUOy2WyaMGGCp0sBAI8ihKFA+u9//6sHH3xQFSpUkN1uV/ny5fXAAw/ov//9r6dLQw5cvHhRo0ePzpd/NFolOTlZPXv21OnTpzV58mTNnz9f4eHhni4LyPd27dql0aNHF+oPvyIiImSz2WSz2eTl5aXixYsrMjJSjz32mLZs2ZKrsV977TUtX748x49PCf1p/bvvvvtyVRtQmPl4ugAgu5YuXar7779fISEhGjBggCpXrqxDhw5p9uzZWrJkiRYuXKh77rnH02UiGy5evKjY2FhJUqtWrVzue/HFF/X88897oCprHThwQH/88YfeffddPfLII54uBwVYixYtdOnSJfn5+Xm6FEvs2rVLsbGxatWqlSIiIjxdTp6pX7++hg0bJkk6f/68du/ercWLF+vdd9/VM888o0mTJuVo3Ndee0333nuvunXrlqv6hgwZottuu81lWmF+PoDcIoShQDlw4IAeeughValSRd99951Kly7tvO/pp59W8+bN9dBDD2nnzp2qUqWKZXUlJCSoaNGili0vv7ty5YocDodb/gj08fGRj0/hfalK2XdOnDghSSpevLjbx8aN4fLly/Lz85OXl5f8/f09XQ7crEKFCnrwwQddpo0bN059+vTR5MmTVb16dT3xxBMeqk5q3ry57r333izN6873CKCg4nREFChvvPGGLl68qHfeecclgElSqVKlNGvWLCUkJGj8+PGSpCVLlshms2n9+vWpxpo1a5ZsNpt+++0357Q9e/bo3nvvVUhIiPz9/dWwYUN99tlnLo9L+d7X+vXr9eSTT6pMmTKqWLFiujV/+umn6tSpk8qXLy+73a6qVavq5Zdf1tWrV13ma9WqlW666SZt27ZNTZs2VUBAgCpXrqyZM2dmadtcuXJFL7/8sqpWrSq73a6IiAi98MILSkxMdJkvIiJCnTt31qpVq1S/fn35+/urTp06Wrp0aaox4+PjNXToUIWFhclut6tatWoaN26cHA6Hc55rv+MxZcoU5/J37dqlpKQkvfTSS2rQoIGCg4NVtGhRNW/eXN9++63L41Oey9jYWOdpLKNHj5aU9nfCsruu33//vRo1aiR/f39VqVJF77//fqbb89r1mjx5ssLDwxUQEKCWLVu67DMpcrPv9OvXTy1btpQk9ezZUzabzeWI4Nq1a9W8eXMVLVpUxYsXV9euXbV7926XsVO2065du9SnTx+VKFFCzZo1c9kO69atU8OGDRUQEKDIyEjn6Z9Lly5VZGSk/P391aBBA23fvt1l7J07d6pfv36qUqWK/P39FRoaqocfflinTp1Ks4bff/9d/fr1U/HixRUcHKz+/fvr4sWLqbbZBx98oEaNGqlIkSIqUaKEWrRooVWrVrnM8/XXXzvXvVixYurUqVOWTzuOj4/XM888o4iICNntdlWsWFF9+/bVyZMnnfOcOHFCAwYMUNmyZeXv76969epp3rx5LuNcuy9MmzZNVapUUZEiRXTHHXfozz//lDFGL7/8sipWrKiAgAB17dpVp0+fdhkjq313+vRpDR8+XJGRkQoMDFRQUJA6duyoX375xWW+lFPAFi5cqBdffFEVKlRQkSJFdO7cuTS/E7Z//3716NFDoaGh8vf3V8WKFXXffffp7Nmzznms6KtruaOv5s6dq549e0qSWrdu7Xz9WLdunWJiYlSyZEkZY5zzP/XUU7LZbHrrrbec0+Li4mSz2TRjxgzntMTERI0aNUrVqlWT3W5XWFiYnnvuuVTbQvpnP27QoIECAgIUEhKi++67T3/++afLPCmv77t27VLr1q1VpEgRVahQwflelVMBAQGaP3++QkJC9Oqrr7qs64QJE9S0aVOVLFlSAQEBatCggZYsWeLyeJvNpoSEBM2bN8+57fr16ydJ+uOPP/Tkk0+qZs2aCggIUMmSJdWzZ89sn/aZ2/eI68fIaQ9KWXs9OX78uPr376+KFSvKbrerXLly6tq1a6E+3RUeYoACpHz58iYiIiLDeSIiIkzFihWNMcZcvHjRBAYGmieffDLVfK1btzZ169Z13v7tt99McHCwqVOnjhk3bpyZOnWqadGihbHZbGbp0qXO+ebMmWMkmTp16piWLVuat99+27z++usu9x08eNA5f7du3UyvXr3MG2+8YWbMmGF69uxpJJnhw4e71NOyZUtTvnx5U6ZMGTN48GDz1ltvmWbNmhlJZvbs2Zlum+joaCPJ3HvvvWbatGmmb9++RpLp1q2by3zh4eGmRo0apnjx4ub55583kyZNMpGRkcbLy8usWrXKOV9CQoK5+eabTcmSJc0LL7xgZs6cafr27WtsNpt5+umnnfMdPHjQuT2qVKliXn/9dTN58mTzxx9/mL///tuUK1fOxMTEmBkzZpjx48ebmjVrGl9fX7N9+3ZjjDEXLlwwM2bMMJLMPffcY+bPn2/mz59vfvnlF2OMMaNGjTLXv1RlZ11r1qxpypYta1544QUzdepUc+uttxqbzWZ+++23DLdnynpFRkaaiIgIM27cOBMbG2tCQkJM6dKlzfHjx53z5nbf+eGHH8wLL7xgJJkhQ4aY+fPnO5+L1atXGx8fH1OjRg0zfvx4Exsba0qVKmVKlCjhsp+lbKc6deqYrl27munTp5tp06a5bIdy5cqZ0aNHm8mTJ5sKFSqYwMBA88EHH5hKlSqZ119/3bz++usmODjYVKtWzVy9etU59oQJE0zz5s3NmDFjzDvvvGOefvppExAQYBo1amQcDkeqGm655RbTvXt3M336dPPII48YSea5555z2b6jR482kkzTpk3NG2+8Yd58803Tp08f869//cs5z/vvv29sNpu58847zdtvv23GjRtnIiIiTPHixV3WPS3nz583N910k/H29jaPPvqomTFjhnn55ZfNbbfd5tz3Ll68aGrXrm18fX3NM888Y9566y3TvHlzI8lMmTIl1b5Qv359U6dOHTNp0iTz4osvGj8/P9OkSRPzwgsvmKZNm5q33nrLDBkyxNhsNtO/f3+XerLad1u3bjVVq1Y1zz//vJk1a5YZM2aMqVChggkODjZHjhxxzvftt986n+/69eubSZMmmbFjx5qEhATn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hCTJ29tboaGhstlsCg4OztH+OmrUKGdvzps3TxUrVtSyZcvUq1evbI8VHBysYsWKOetC+uif3PXPvn379PXXX+vHH3/UbbfdJkmaPXu2atfO+LtL9FThRU/dmD315ptv6s4773Ruqxo1auiHH37QihUrMhxzypQpGjFihLp37y5JmjlzplauXOm8Py96jyNhudSkSRPZbDbn7aioKO3fv1+7du2Sj4+PGjdu7LyvZMmSqlmzZrpHZS5cuKDhw4erdu3aKl68uAIDA7V79+5Un7Q0bNjQ5Xa/fv20Y8cO1axZU0OGDNGqVauc9w0cOFCBgYHOf9eKiopy/t/Hx0cNGzZMt7bdu3fr9ttvd5l2++23a//+/bp69ao2bNjgspxrD1nffPPNLo8rV66cyycp33zzjdq2basKFSqoWLFieuihh3Tq1KkML+v52muvuSzv2m107Xql3E5vverWresco2PHjukuD5mjFzLvhfS20dWrV1MtJ616d+/e7TwFI63a05LWOB07dnTerlu3brrbIiQkJN3n6fDhwy7jvvbaaxnWgYzRP7nrn927d8vHx0cNGjRw3l+rVi2XK6LRUzcWeurG7Kndu3e7PLfXz59Wn509e1bHjh1zeVzKds9LHAnLR4YPH67Vq1drwoQJqlatmgICAnTvvfcqKSnJZb6iRYu63L711lt18OBBff311/rmm2/Uq1cvtWvXTkuWLNGYMWMyPX3PHRo2bOhyqc6yZcs6/+/r6+syr81mk8PhkPTPucGdO3fWE088oVdffVUhISH6/vvvNWDAACUlJalIkSJpLm/gwIEunyKWL18+R3V/9dVXzkPYAQEBORoD7ldYeyE73FVvWuP85z//0aVLlySl7s+sKl++vMt6hoSE5LhGuBf9kzZ6CjlFT6Utv/dUWvJTnxHCcmnLli0utzdv3qzq1aurTp06unLlirZs2eI83H3q1Cnt3btXderUSXOsjRs3ql+/frrnnnsk/fPJS1YvAhEUFKTevXurd+/euvfee3XnnXfq9OnTKlOmjMqUKZPmYzZv3qwWLVpIkq5cuaJt27a5HFa/Vu3atbVx48ZU9daoUUPe3t4KCAhQtWrVslTrtbZt2yaHw6GJEyc6f2X8448/dpnHz88v1ZGCkJCQdBtn8+bN6tu3r8vtW265Jc15s3pqADJHL2TeC+ltI29v71TzplVv7dq1NX/+fF2+fNn5KePmzZvTXFZG41SoUCHd+Tdv3qxKlSpJ+ufL6/v27Uvz9BMfH58c9TzSRv/krn9q1arlXHbKqVN79+51uXgBPXVjoaduzJ6qXbt2muuVIr0+K1eunLZs2ZJqu996660Z1p4bnI6YS4cPH1ZMTIz27t2rjz76SG+//baefvppVa9eXV27dtWjjz6q77//Xr/88osefPBBVahQQV27dk1zrOrVq2vp0qXasWOHfvnlF/Xp08d5xCgjkyZN0kcffaQ9e/Zo3759Wrx4sUJDQzP9Ybpp06Zp2bJl2rNnjwYNGqQzZ87o4YcfTnPeYcOGac2aNXr55Ze1b98+zZs3T1OnTs31JyDVqlVTcnKy3n77bf3vf//T/PnzNXPmTJd5IiIidOHCBa1Zs0YnT57M8DRFSVq8eLHee+897du3T6NGjdKPP/6Y7osX3IdeyLwX0ttGWdWnTx/ZbDY9+uij2rVrl7766itNmDAhy4/PijFjxmjNmjX67bff1K9fP5UqVSrPf0gT9E9u+6dmzZq688479fjjj2vLli3atm2bHnnkkUzPcKCnCi966sbsqSFDhmjFihWaMGGC9u/fr6lTp2b6fTBJevrpp/X6669r+fLl2rNnj5588sm8/31akw8kJCSYn376ySQkJHi6lGxp2bKlefLJJ83AgQNNUFCQKVGihHnhhReMw+Ewxhhz+vRp89BDD5ng4GATEBBgOnToYPbt2+d8/Jw5c0xwcLDz9sGDB03r1q1NQECACQsLM1OnTjUtW7Y0Tz/9tHOe8PBwM3nyZJc63nnnHVO/fn1TtGhRExQUZNq2bWt+/vnndOs+ePCgkWQWLFhgGjVqZPz8/EydOnXM2rVrnfN8++23RpI5c+aMc9qSJUtMnTp1jK+vr6lUqZJ54403srSNrq3fGGO6du1qoqOjnbcnTZpkypUr59xG77//fqplDxw40JQsWdJIMqNGjUp3eZLMtGnTTPv27Y3dbjcRERFm0aJFqdZ9+/bt6Y5x/fOyfft2I8kcPHgw0/W9UdELWeuFjLZReut0vU2bNpl69eoZPz8/U79+ffPJJ5+k2qeDg4PNnDlzMq3pWinr+fnnn5u6desaPz8/06hRI/PLL78457n+eUpLdHS06dq1q/P25MmTTXh4eLZqudHQP+7pn2PHjplOnToZu91uKlWqZN5//3166gZFT924PWWMMbNnzzYVK1Y0AQEBpkuXLmbChAmZ9llycrJ5+umnTVBQkClevLiJiYkxffv2zXbvpWSaJUuWmLFjx5qdO3emO6/NmGz+SE0euHjxonbv3q3atWun+x2g/KhVq1aqX7++pkyZ4ulS8P/ZbDYtW7aMTxktRi9kLr9vo3Xr1ql169Y6c+ZMpp/Swr3y+76RHxTEbURPeU5B3F+sVhC3UUHoqZRMc+jQIe3fv1+dOnVy/t7s9TgdEQAAAAAsRAgDAAAAAAtxOiIAAAAA5BKnIwIAAABAPpWvQlhWLvcJAAAAAPlNdrJMvghhfn5+kv758TsAAAAAKGhSskxycnKm8/rkdTFZ4ePjo1KlSunIkSOSpMDAQHl55Yt8CAAAAADpcjgcunDhgo4cOaL4+PgsHRHLFyFMkipVqqSrV686gxgAAAAAFBTx8fGKi4uTMUbGGPn6+qY7b74JYTabTZUrV9bOnTv1559/qnTp0hkWDgAAAAD5QXJyshwOhxwOh44ePaoSJUqoVKlS6c6fLy5Rf62EhAStWLFCv//+u/JZaQAAAACQLmOMSpQooY4dOyo8PDzd+fJdCJOkS5cu6fjx47p06RJBDAAAAECB4Ofnp5CQEJUsWTLD+fJlCAMAAACAwopLEAIAAACAhQhhAAAAAGAhQhgAAAAAWIgQBgAAAAAWIoQBAAAAgIX+H6r/mOkC97ucAAAAAElFTkSuQmCC" + ] }, "metadata": {}, "output_type": "display_data" } ], - "execution_count": 7 + "source": [ + "metrics = {\n", + " \"polars-bio-nat-pl-lf\": {\"0-1\": 0.164, \"0-3\": 9.248, \"0-8\": 3.470, \"7-8\": 5.090},\n", + " \"polars-bio-pl-df--pl-lf\": {\n", + " \"0-1\": 0.147,\n", + " \"0-3\": 44.942,\n", + " \"0-8\": 6.096,\n", + " \"7-8\": 9.522,\n", + " },\n", + " \"polars-bio-pd-df--pl-lf\": {\n", + " \"0-1\": 0.177,\n", + " \"0-3\": 43.369,\n", + " \"0-8\": 6.241,\n", + " \"7-8\": 9.688,\n", + " },\n", + " \"polars-bio-pd-df--pd-df\": {\n", + " \"0-1\": 0.175,\n", + " \"0-3\": 51.226,\n", + " \"0-8\": 7.435,\n", + " \"7-8\": 11.756,\n", + " },\n", + "}\n", + "plot_metrics(\n", + " metrics,\n", + " [\"0-1\", \"0-3\", \"0-8\", \"7-8\"],\n", + " \"Overlap operation performance comparison between DataFrames\",\n", + ")" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "## Nearest", - "id": "caccc329ea316f05" + "id": "caccc329ea316f05", + "metadata": {}, + "source": "## Nearest" }, { + "cell_type": "code", + "execution_count": 43, + "id": "7307580054aa7d4e", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T06:54:58.562728Z", "start_time": "2024-12-16T06:54:58.560945Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "from polars_bio import FilterOp\n", "import polars_bio as pb\n", + "\n", "pb.ctx.set_option(\"datafusion.execution.target_partitions\", \"1\")\n", "pb.ctx.set_option(\"datafusion.optimizer.repartition_joins\", \"false\")" - ], - "id": "7307580054aa7d4e", - "outputs": [], - "execution_count": 43 + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "### 0-1", - "id": "d808c04c9f99c6b6" + "id": "d808c04c9f99c6b6", + "metadata": {}, + "source": "### 0-1" }, { + "cell_type": "code", + "execution_count": 71, + "id": "821e3151e6a6e1f", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:10:27.983325Z", "start_time": "2024-12-16T07:10:27.258575Z" } }, - "cell_type": "code", - "source": "len(df_0_pr.nearest(df_1_pr))", - "id": "821e3151e6a6e1f", "outputs": [ { "data": { @@ -797,18 +880,20 @@ "output_type": "execute_result" } ], - "execution_count": 71 + "source": [ + "len(df_0_pr.nearest(df_1_pr))" + ] }, { + "cell_type": "code", + "execution_count": 72, + "id": "44f3329dc936f096", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:10:29.672109Z", "start_time": "2024-12-16T07:10:29.438203Z" } }, - "cell_type": "code", - "source": "pb.nearest(df_path_0, df_path_1, overlap_filter=FilterOp.Strict).collect().count()", - "id": "44f3329dc936f096", "outputs": [ { "name": "stderr", @@ -819,16 +904,6 @@ }, { "data": { - "text/plain": [ - "shape: (1, 7)\n", - "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", - "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", - "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", - "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", - "│ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 │\n", - "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" - ], "text/html": [ "
\n", "shape: (1, 7)
contig_1pos_start_1pos_end_1contig_2pos_start_2pos_end_2distance
u32u32u32u32u32u32u32
2350965235096523509652350965235096523509652350965
" + ], + "text/plain": [ + "shape: (1, 7)\n", + "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", + "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", + "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", + "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", + "│ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 │\n", + "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" ] }, "execution_count": 72, @@ -845,18 +930,20 @@ "output_type": "execute_result" } ], - "execution_count": 72 + "source": [ + "pb.nearest(df_path_0, df_path_1, overlap_filter=FilterOp.Strict).collect().count()" + ] }, { + "cell_type": "code", + "execution_count": 83, + "id": "48a0121f4a018d32", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:30:54.883707Z", "start_time": "2024-12-16T07:30:54.556121Z" } }, - "cell_type": "code", - "source": "len(pb.nearest(df_0, df_1, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"))", - "id": "48a0121f4a018d32", "outputs": [ { "name": "stderr", @@ -876,18 +963,24 @@ "output_type": "execute_result" } ], - "execution_count": 83 + "source": [ + "len(\n", + " pb.nearest(\n", + " df_0, df_1, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"\n", + " )\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 76, + "id": "851b2aac4c2007c1", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:22:37.785612Z", "start_time": "2024-12-16T07:22:36.286072Z" } }, - "cell_type": "code", - "source": "len(bf.closest(df_0, df_1, suffixes=('_1','_2'),cols1=(\"contig\", \"pos_start\", \"pos_end\"),cols2=(\"contig\", \"pos_start\", \"pos_end\")))", - "id": "851b2aac4c2007c1", "outputs": [ { "data": { @@ -900,31 +993,43 @@ "output_type": "execute_result" } ], - "execution_count": 76 + "source": [ + "len(\n", + " bf.closest(\n", + " df_0,\n", + " df_1,\n", + " suffixes=(\"_1\", \"_2\"),\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " )\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 46, + "id": "1635e076c58e372f", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T06:55:36.059294Z", "start_time": "2024-12-16T06:55:36.057562Z" } }, - "cell_type": "code", - "source": "### 0-3", - "id": "1635e076c58e372f", "outputs": [], - "execution_count": 46 + "source": [ + "### 0-3" + ] }, { + "cell_type": "code", + "execution_count": 65, + "id": "742a4f3e4e829068", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:09:51.687014Z", "start_time": "2024-12-16T07:09:50.966193Z" } }, - "cell_type": "code", - "source": "len(df_0_pr.nearest(df_3_pr))", - "id": "742a4f3e4e829068", "outputs": [ { "data": { @@ -937,18 +1042,20 @@ "output_type": "execute_result" } ], - "execution_count": 65 + "source": [ + "len(df_0_pr.nearest(df_3_pr))" + ] }, { + "cell_type": "code", + "execution_count": 77, + "id": "3c1d8f23eea97c63", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:22:46.856131Z", "start_time": "2024-12-16T07:22:44.911028Z" } }, - "cell_type": "code", - "source": "pb.nearest(df_path_0, df_path_3, overlap_filter=FilterOp.Strict).collect().count()", - "id": "3c1d8f23eea97c63", "outputs": [ { "name": "stderr", @@ -959,16 +1066,6 @@ }, { "data": { - "text/plain": [ - "shape: (1, 7)\n", - "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", - "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", - "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", - "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", - "│ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 │\n", - "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" - ], "text/html": [ "
\n", "shape: (1, 7)
contig_1pos_start_1pos_end_1contig_2pos_start_2pos_end_2distance
u32u32u32u32u32u32u32
2350965235096523509652350965235096523509652350965
" + ], + "text/plain": [ + "shape: (1, 7)\n", + "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", + "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", + "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", + "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", + "│ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 │\n", + "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" ] }, "execution_count": 77, @@ -985,18 +1092,20 @@ "output_type": "execute_result" } ], - "execution_count": 77 + "source": [ + "pb.nearest(df_path_0, df_path_3, overlap_filter=FilterOp.Strict).collect().count()" + ] }, { + "cell_type": "code", + "execution_count": 82, + "id": "9511200a4747c7ac", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:30:35.059914Z", "start_time": "2024-12-16T07:30:33.120323Z" } }, - "cell_type": "code", - "source": "len(pb.nearest(df_0, df_3, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"))", - "id": "9511200a4747c7ac", "outputs": [ { "name": "stderr", @@ -1016,18 +1125,24 @@ "output_type": "execute_result" } ], - "execution_count": 82 + "source": [ + "len(\n", + " pb.nearest(\n", + " df_0, df_3, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"\n", + " )\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 78, + "id": "45b5c52d86addda1", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:24:33.106378Z", "start_time": "2024-12-16T07:22:49.056273Z" } }, - "cell_type": "code", - "source": "len(bf.closest(df_0, df_3, suffixes=('_1','_2'),cols1=(\"contig\", \"pos_start\", \"pos_end\"),cols2=(\"contig\", \"pos_start\", \"pos_end\")))", - "id": "45b5c52d86addda1", "outputs": [ { "data": { @@ -1040,24 +1155,34 @@ "output_type": "execute_result" } ], - "execution_count": 78 + "source": [ + "len(\n", + " bf.closest(\n", + " df_0,\n", + " df_3,\n", + " suffixes=(\"_1\", \"_2\"),\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " )\n", + ")" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "### 0-8", - "id": "d24b8def21308bb0" + "id": "d24b8def21308bb0", + "metadata": {}, + "source": "### 0-8" }, { + "cell_type": "code", + "execution_count": 67, + "id": "c656968bfe2fb445", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:10:03.959021Z", "start_time": "2024-12-16T07:10:00.992170Z" } }, - "cell_type": "code", - "source": "len(df_0_pr.nearest(df_8_pr))", - "id": "c656968bfe2fb445", "outputs": [ { "data": { @@ -1070,18 +1195,20 @@ "output_type": "execute_result" } ], - "execution_count": 67 + "source": [ + "len(df_0_pr.nearest(df_8_pr))" + ] }, { + "cell_type": "code", + "execution_count": 68, + "id": "9b0a3f17d49d1a8b", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:10:06.694111Z", "start_time": "2024-12-16T07:10:05.578835Z" } }, - "cell_type": "code", - "source": "pb.nearest(df_path_0, df_path_8, overlap_filter=FilterOp.Strict).collect().count()", - "id": "9b0a3f17d49d1a8b", "outputs": [ { "name": "stderr", @@ -1092,16 +1219,6 @@ }, { "data": { - "text/plain": [ - "shape: (1, 7)\n", - "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", - "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", - "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", - "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", - "│ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 │\n", - "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" - ], "text/html": [ "
\n", "shape: (1, 7)
contig_1pos_start_1pos_end_1contig_2pos_start_2pos_end_2distance
u32u32u32u32u32u32u32
2350965235096523509652350965235096523509652350965
" + ], + "text/plain": [ + "shape: (1, 7)\n", + "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", + "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", + "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", + "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", + "│ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 ┆ 2350965 │\n", + "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" ] }, "execution_count": 68, @@ -1118,18 +1245,20 @@ "output_type": "execute_result" } ], - "execution_count": 68 + "source": [ + "pb.nearest(df_path_0, df_path_8, overlap_filter=FilterOp.Strict).collect().count()" + ] }, { + "cell_type": "code", + "execution_count": 81, + "id": "e8d72e412223bcfd", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:30:15.829254Z", "start_time": "2024-12-16T07:30:14.600179Z" } }, - "cell_type": "code", - "source": "len(pb.nearest(df_0, df_8, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"))", - "id": "e8d72e412223bcfd", "outputs": [ { "name": "stderr", @@ -1149,18 +1278,24 @@ "output_type": "execute_result" } ], - "execution_count": 81 + "source": [ + "len(\n", + " pb.nearest(\n", + " df_0, df_8, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"\n", + " )\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 75, + "id": "778737f01bb55519", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:22:25.865473Z", "start_time": "2024-12-16T07:21:51.411229Z" } }, - "cell_type": "code", - "source": "len(bf.closest(df_0, df_8, suffixes=('_1','_2'),cols1=(\"contig\", \"pos_start\", \"pos_end\"),cols2=(\"contig\", \"pos_start\", \"pos_end\")))", - "id": "778737f01bb55519", "outputs": [ { "data": { @@ -1173,24 +1308,34 @@ "output_type": "execute_result" } ], - "execution_count": 75 + "source": [ + "len(\n", + " bf.closest(\n", + " df_0,\n", + " df_8,\n", + " suffixes=(\"_1\", \"_2\"),\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " )\n", + ")" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "### 7-8", - "id": "88d308f61a234402" + "id": "88d308f61a234402", + "metadata": {}, + "source": "### 7-8" }, { + "cell_type": "code", + "execution_count": 69, + "id": "778bed8b6ecbeac2", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:10:12.566070Z", "start_time": "2024-12-16T07:10:09.679856Z" } }, - "cell_type": "code", - "source": "len(df_7_pr.nearest(df_8_pr))", - "id": "778bed8b6ecbeac2", "outputs": [ { "data": { @@ -1203,18 +1348,20 @@ "output_type": "execute_result" } ], - "execution_count": 69 + "source": [ + "len(df_7_pr.nearest(df_8_pr))" + ] }, { + "cell_type": "code", + "execution_count": 70, + "id": "4c63620db4a80cb2", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:10:15.674024Z", "start_time": "2024-12-16T07:10:14.648745Z" } }, - "cell_type": "code", - "source": "pb.nearest(df_path_7, df_path_8, overlap_filter=FilterOp.Strict).collect().count()", - "id": "4c63620db4a80cb2", "outputs": [ { "name": "stderr", @@ -1225,16 +1372,6 @@ }, { "data": { - "text/plain": [ - "shape: (1, 7)\n", - "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", - "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", - "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", - "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", - "│ 1194285 ┆ 1194285 ┆ 1194285 ┆ 1194262 ┆ 1194262 ┆ 1194262 ┆ 1194285 │\n", - "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" - ], "text/html": [ "
\n", "shape: (1, 7)
contig_1pos_start_1pos_end_1contig_2pos_start_2pos_end_2distance
u32u32u32u32u32u32u32
1194285119428511942851194262119426211942621194285
" + ], + "text/plain": [ + "shape: (1, 7)\n", + "┌──────────┬─────────────┬───────────┬──────────┬─────────────┬───────────┬──────────┐\n", + "│ contig_1 ┆ pos_start_1 ┆ pos_end_1 ┆ contig_2 ┆ pos_start_2 ┆ pos_end_2 ┆ distance │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", + "│ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 ┆ u32 │\n", + "╞══════════╪═════════════╪═══════════╪══════════╪═════════════╪═══════════╪══════════╡\n", + "│ 1194285 ┆ 1194285 ┆ 1194285 ┆ 1194262 ┆ 1194262 ┆ 1194262 ┆ 1194285 │\n", + "└──────────┴─────────────┴───────────┴──────────┴─────────────┴───────────┴──────────┘" ] }, "execution_count": 70, @@ -1251,18 +1398,20 @@ "output_type": "execute_result" } ], - "execution_count": 70 + "source": [ + "pb.nearest(df_path_7, df_path_8, overlap_filter=FilterOp.Strict).collect().count()" + ] }, { + "cell_type": "code", + "execution_count": 80, + "id": "f34aac1ff1ec9ac4", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:29:35.817730Z", "start_time": "2024-12-16T07:29:34.625710Z" } }, - "cell_type": "code", - "source": "len(pb.nearest(df_7, df_8, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"))", - "id": "f34aac1ff1ec9ac4", "outputs": [ { "name": "stderr", @@ -1282,18 +1431,24 @@ "output_type": "execute_result" } ], - "execution_count": 80 + "source": [ + "len(\n", + " pb.nearest(\n", + " df_7, df_8, overlap_filter=FilterOp.Strict, output_type=\"pandas.DataFrame\"\n", + " )\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 74, + "id": "d232e39d53502d3f", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:21:43.770509Z", "start_time": "2024-12-16T07:20:35.225095Z" } }, - "cell_type": "code", - "source": "len(bf.closest(df_7, df_8, suffixes=('_1','_2'),cols1=(\"contig\", \"pos_start\", \"pos_end\"),cols2=(\"contig\", \"pos_start\", \"pos_end\")))", - "id": "d232e39d53502d3f", "outputs": [ { "data": { @@ -1306,41 +1461,51 @@ "output_type": "execute_result" } ], - "execution_count": 74 + "source": [ + "len(\n", + " bf.closest(\n", + " df_7,\n", + " df_8,\n", + " suffixes=(\"_1\", \"_2\"),\n", + " cols1=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " cols2=(\"contig\", \"pos_start\", \"pos_end\"),\n", + " )\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 84, + "id": "d712e9a31b24a645", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T07:33:16.548733Z", "start_time": "2024-12-16T07:33:16.483366Z" } }, - "cell_type": "code", - "source": [ - "metrics = {\n", - " \"polars-bio-nat-pl-lf\" : {\"0-1\": 0.233, \"0-3\": 1.945, \"0-8\": 1.115, \"7-8\": 1.025},\n", - " \"polars-bio-pandas\" : {\"0-1\": 0.327, \"0-3\": 1.939, \"0-8\": 1.229, \"7-8\": 1.192},\n", - " \"Bioframe\": {\"0-1\": 1.499, \"0-3\": 104.0, \"0-8\": 34.454, \"7-8\": 68.00},\n", - " \"PyRanges\": {\"0-1\": 0.724, \"0-3\": 0.720, \"0-8\": 2.966, \"7-8\": 2.866},\n", - "}\n", - "plot_metrics(\n", - " metrics, [\"0-1\", \"0-3\", \"0-8\",\"7-8\"], \"Nearest operation performance comparison\"\n", - ")" - ], - "id": "d712e9a31b24a645", "outputs": [ { "data": { + "image/png": "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71f7ypXP0eWV/9Pc6Wc3vw7c3d1VvHhxdenSRW+++aby5r3zx+Cb72bn5+enhx56SG+//bZatWplrnDclzgiBdwj9+oHjPPly6eQkBBuVSrp6NGjSk1NVfPmzRUaGipvb29nl4QMMBbgLE899ZROnDihEydOaM2aNcqbN69atGghScqTJ49CQkKy9GE6zaFDhxQaGqo6depk+lx+vN71pL0ODh48qNdee00jR47UBx98kOXnx8bG6sSJE9q2bZvq1q2r9u3ba/duc8Ee9yeCFO5LTzzxhPr27au+ffsqICBAhQoV0vDhw5V2t//z58+rS5cuKlCggLy9vdW0aVMdPHgw0/4OHTqkVq1aKTg4WL6+vqpRo4ZWr15t1yY8PFzvvvuuunTpIn9/f/Xs2VNXr15V3759FRoaKk9PT5UoUUJjx469Y/1//vmn6tSpI09PTz388MP68ccfbfMyOp1p0aJFqlixojw8PBQeHq6PPvooS9uof//+GjJkiAIDAxUSEqKRI0fatZkwYYIqVaokHx8fhYWFqXfv3kpMTLTV0a1bN128eFEWi0UWiyXd829msVg0bdo0NW3aVF5eXipZsqQWLlx4xzozM3v2bFWqdOMb8ZIlS8pisejw4cPZ7u9+xVjI2li43TaSpC+//FLVq1eXn5+fQkJC9Nxzz9nd4SqtljVr1qh69ery9vZWnTp1tH//frtljRs3TsHBwfLz81P37t115coVu/lbt25Vo0aNVKhQIQUEBKh+/fr67bffbPMNw9DIkSNVvHhxeXh4qEiRIurfv/8d1/FB5eHhoZCQEIWEhKhq1aoaOnSojh07pn/++SfDU/t+/PFH1axZUx4eHgoNDdXQoUN17do1STeObPTr109Hjx6VxWJReHi4pP97/QwcOFCFChVSkyZNJN1+/yn932mzy5Yt00MPPSRvb2+1b99eycnJmjNnjsLDw1WgQAH1799f169ftz0vJSVFgwcPVtGiReXj46NatWpp/fr193xb5mZpr4MSJUrolVdeUVRUlObPny9/f/9070NLliyRj4+PLl26ZJuWP39+hYSEqGzZsnr33Xd17do1rVu3zjZ/xYoVqlevnvLnz6+CBQuqRYsWOnTokG1+2mvtu+++U4MGDeTt7a0qVapo48aNdsueNWuWwsLC5O3trTZt2mjChAnpTq3+97//rUcffVSenp4qWbKkYmJibK9R9g85jyCF+9acOXOUN29ebdmyRR9//LEmTJigzz77TNKNN8Rt27Zp6dKl2rhxowzDULNmzZSampphX4mJiWrWrJnWrFmjHTt26KmnnlLLli119OhRu3YffvihqlSpoh07dmj48OGaPHmyli5dqvnz52v//v2aO3eu7c33dl5//XW99tpr2rFjhyIjI9WyZUudPXs2w7bbt29Xx44d1alTJ+3evVsjR47U8OHDNXv27CxtIx8fH23evFnjx4/XqFGjFBcXZ5vv5uamyZMna8+ePZozZ47Wrl2rIUOGSLpxWtWkSZPk7+9v+8Z38ODBt13e8OHD1a5dO+3atUudO3dWp06dsn2XoGeeecb2AX7Lli06ceKEwsLCstXX/Y6xMPuutpEkpaam6t1339WuXbu0ZMkSHT58WF27dk3Xz1tvvaWPPvpI27ZtU968efXiiy/a5s2fP18jR47Ue++9p23btik0NFSffvqp3fMvXbqk6Oho/fLLL9q0aZPKlCmjZs2a2T7ULVq0SBMnTtSMGTN08OBBLVmyxPaFAm4vMTFRX331lUqXLq2CBQumm//333+rWbNmqlGjhnbt2qVp06bp888/1+jRoyVJH3/8sUaNGqVixYrpxIkT2rp1q+25c+bMUb58+bRhwwZNnz5d0u33n2mSk5M1efJkffPNN1qxYoXWr1+vNm3aaPny5Vq+fLm+/PJLzZgxw+7Dft++fbVx40Z98803+v3339WhQwc99dRTt/0CBPa8vLzk5uamTp06KTY21m5ebGys2rdvLz8/v3TPu3btmj7//HNJN46Ip0lKStKgQYO0bds2rVmzRm5ubmrTpk26a47eeustDR48WDt37lTZsmX17LPP2kLQhg0b1KtXLw0YMEA7d+5Uo0aNNGbMGLvn//zzz+rSpYsGDBigvXv3asaMGZo9e7atHfuHnMcP8iJTycnJ2rdvn8qXL5/ulClXv0bqiSee0OnTp7Vnzx7baT9Dhw7V0qVL9e9//1tly5bVhg0bVKdOHUnS2bNnFRYWpjlz5qhDhw5Zuvbn4YcfVq9evdS3b19JN76Ff+SRR7R48WJbm/79+2vPnj1avXp1lk4/Onz4sCIiIjRu3Di98cYbkm7suCMiItSvXz8NGTJE69evV4MGDXT+/Hnlz59fnTt31j///KNVq1bZ+hkyZIj+85//aM+ePbfdRtevX9fPP/9sm1azZk09+eSTGjduXIbPWbhwoXr16qUzZ85IMneNlMViUa9evTRt2jTbtNq1a+vRRx/Vp59+alv3HTt2ZHrx/a3L27lzpx555BHFx8dn6UO5w+WCa6QYC1kbC5lto71792b4nG3btqlGjRq6dOmSfH19bbWsXr1aDRs2lCQtX75czZs31+XLl+Xp6ak6derokUce0dSpU2391K5dW1euXMn0pgVWq1X58+fXvHnz1KJFC02YMEEzZszQH3/8IXd39ztux3spN1wj9dVXX8nT01PSjQ+7oaGhWrZsmR599NF0+5y33npLixYt0r59+2yvg08//VRvvPGGLl68aLuhzaRJk+yOfj/xxBNKSEiwO3KYkYz2n926ddNff/2lUqVKSZJ69eqlL7/8UqdOnbL9huNTTz2l8PBwTZ8+XUePHlXJkiV19OhRFSlSxNZ3VFSUatasqffee8/UNnKE3HCN1IULF7RkyRIZhqE1a9aoRYsW6tevnzp06KA6dero2LFjCg0N1enTp1W0aFGtXr1a9evXl3TjvcvT01N58uTR5cuXZbVaFR4eru3btyswMDDDZZ45c0aFCxfW7t279fDDD9tea5999pm6d+8uSdq7d68qVqyoffv2qVy5curUqZMSExO1bNkyWz/PP/+8li1bZtv/RkVFqWHDhho2bJitzVdffaUhQ4bo+PHjpvcPaZ/zDh8+rPj4eJUuXVqtW7c2tX0fdByRwn2rdu3adh/YIiMjdfDgQe3du1d58+ZVrVq1bPMKFiyohx56KNOjI4mJiRo8eLDKly+v/Pnzy9fXV/v27Uv3LXz16tXtHnft2lU7d+7UQw89pP79+9t9wOvVq5d8fX1t/24WGRlp+3/evHlVvXr1TGvbt2+f6tatazetbt26OnjwoC0o3bycuXPn2tpVrlzZ7nlpbyRp0j4UFi1aVH5+fnrhhRd09uxZJScnZ1iLJL333nt2y7t5G928XmmPM1uvihUr2vpo2rRppsvDnTEW7jwWMttGaadUbd++XS1btlTx4sXl5+dn+5B163rfPKZCQ0MlyTam9u3bZ7etb10/STp16pR69OihMmXKKCAgQP7+/kpMTLQtp0OHDrp8+bJKliypHj16aPHixbZvtJFegwYNtHPnTu3cuVNbtmxRkyZN1LRpUx05ciRd2337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", "text/plain": [ "
" - ], - "image/png": "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71f7ypXP0eWV/9Pc6Wc3vw7c3d1VvHhxdenSRW+++aby5r3zx+Cb72bn5+enhx56SG+//bZatWplrnDclzgiBdwj9+oHjPPly6eQkBBuVSrp6NGjSk1NVfPmzRUaGipvb29nl4QMMBbgLE899ZROnDihEydOaM2aNcqbN69atGghScqTJ49CQkKy9GE6zaFDhxQaGqo6depk+lx+vN71pL0ODh48qNdee00jR47UBx98kOXnx8bG6sSJE9q2bZvq1q2r9u3ba/duc8Ee9yeCFO5LTzzxhPr27au+ffsqICBAhQoV0vDhw5V2t//z58+rS5cuKlCggLy9vdW0aVMdPHgw0/4OHTqkVq1aKTg4WL6+vqpRo4ZWr15t1yY8PFzvvvuuunTpIn9/f/Xs2VNXr15V3759FRoaKk9PT5UoUUJjx469Y/1//vmn6tSpI09PTz388MP68ccfbfMyOp1p0aJFqlixojw8PBQeHq6PPvooS9uof//+GjJkiAIDAxUSEqKRI0fatZkwYYIqVaokHx8fhYWFqXfv3kpMTLTV0a1bN128eFEWi0UWiyXd829msVg0bdo0NW3aVF5eXipZsqQWLlx4xzozM3v2bFWqdOMb8ZIlS8pisejw4cPZ7u9+xVjI2li43TaSpC+//FLVq1eXn5+fQkJC9Nxzz9nd4SqtljVr1qh69ery9vZWnTp1tH//frtljRs3TsHBwfLz81P37t115coVu/lbt25Vo0aNVKhQIQUEBKh+/fr67bffbPMNw9DIkSNVvHhxeXh4qEiRIurfv/8d1/FB5eHhoZCQEIWEhKhq1aoaOnSojh07pn/++SfDU/t+/PFH1axZUx4eHgoNDdXQoUN17do1STeObPTr109Hjx6VxWJReHi4pP97/QwcOFCFChVSkyZNJN1+/yn932mzy5Yt00MPPSRvb2+1b99eycnJmjNnjsLDw1WgQAH1799f169ftz0vJSVFgwcPVtGiReXj46NatWpp/fr193xb5mZpr4MSJUrolVdeUVRUlObPny9/f/9070NLliyRj4+PLl26ZJuWP39+hYSEqGzZsnr33Xd17do1rVu3zjZ/xYoVqlevnvLnz6+CBQuqRYsWOnTokG1+2mvtu+++U4MGDeTt7a0qVapo48aNdsueNWuWwsLC5O3trTZt2mjChAnpTq3+97//rUcffVSenp4qWbKkYmJibK9R9g85jyCF+9acOXOUN29ebdmyRR9//LEmTJigzz77TNKNN8Rt27Zp6dKl2rhxowzDULNmzZSampphX4mJiWrWrJnWrFmjHTt26KmnnlLLli119OhRu3YffvihqlSpoh07dmj48OGaPHmyli5dqvnz52v//v2aO3eu7c33dl5//XW99tpr2rFjhyIjI9WyZUudPXs2w7bbt29Xx44d1alTJ+3evVsjR47U8OHDNXv27CxtIx8fH23evFnjx4/XqFGjFBcXZ5vv5uamyZMna8+ePZozZ47Wrl2rIUOGSLpxWtWkSZPk7+9v+8Z38ODBt13e8OHD1a5dO+3atUudO3dWp06dsn2XoGeeecb2AX7Lli06ceKEwsLCstXX/Y6xMPuutpEkpaam6t1339WuXbu0ZMkSHT58WF27dk3Xz1tvvaWPPvpI27ZtU968efXiiy/a5s2fP18jR47Ue++9p23btik0NFSffvqp3fMvXbqk6Oho/fLLL9q0aZPKlCmjZs2a2T7ULVq0SBMnTtSMGTN08OBBLVmyxPaFAm4vMTFRX331lUqXLq2CBQumm//333+rWbNmqlGjhnbt2qVp06bp888/1+jRoyVJH3/8sUaNGqVixYrpxIkT2rp1q+25c+bMUb58+bRhwwZNnz5d0u33n2mSk5M1efJkffPNN1qxYoXWr1+vNm3aaPny5Vq+fLm+/PJLzZgxw+7Dft++fbVx40Z98803+v3339WhQwc99dRTt/0CBPa8vLzk5uamTp06KTY21m5ebGys2rdvLz8/v3TPu3btmj7//HNJN46Ip0lKStKgQYO0bds2rVmzRm5ubmrTpk26a47eeustDR48WDt37lTZsmX17LPP2kLQhg0b1KtXLw0YMEA7d+5Uo0aNNGbMGLvn//zzz+rSpYsGDBigvXv3asaMGZo9e7atHfuHnMcP8iJTycnJ2rdvn8qXL5/ulClXv0bqiSee0OnTp7Vnzx7baT9Dhw7V0qVL9e9//1tly5bVhg0bVKdOHUnS2bNnFRYWpjlz5qhDhw5Zuvbn4YcfVq9evdS3b19JN76Ff+SRR7R48WJbm/79+2vPnj1avXp1lk4/Onz4sCIiIjRu3Di98cYbkm7suCMiItSvXz8NGTJE69evV4MGDXT+/Hnlz59fnTt31j///KNVq1bZ+hkyZIj+85//aM+ePbfdRtevX9fPP/9sm1azZk09+eSTGjduXIbPWbhwoXr16qUzZ85IMneNlMViUa9evTRt2jTbtNq1a+vRRx/Vp59+alv3HTt2ZHrx/a3L27lzpx555BHFx8dn6UO5w+WCa6QYC1kbC5lto71792b4nG3btqlGjRq6dOmSfH19bbWsXr1aDRs2lCQtX75czZs31+XLl+Xp6ak6derokUce0dSpU2391K5dW1euXMn0pgVWq1X58+fXvHnz1KJFC02YMEEzZszQH3/8IXd39ztux3spN1wj9dVXX8nT01PSjQ+7oaGhWrZsmR599NF0+5y33npLixYt0r59+2yvg08//VRvvPGGLl68aLuhzaRJk+yOfj/xxBNKSEiwO3KYkYz2n926ddNff/2lUqVKSZJ69eqlL7/8UqdOnbL9huNTTz2l8PBwTZ8+XUePHlXJkiV19OhRFSlSxNZ3VFSUatasqffee8/UNnKE3HCN1IULF7RkyRIZhqE1a9aoRYsW6tevnzp06KA6dero2LFjCg0N1enTp1W0aFGtXr1a9evXl3TjvcvT01N58uTR5cuXZbVaFR4eru3btyswMDDDZZ45c0aFCxfW7t279fDDD9tea5999pm6d+8uSdq7d68qVqyoffv2qVy5curUqZMSExO1bNkyWz/PP/+8li1bZtv/RkVFqWHDhho2bJitzVdffaUhQ4bo+PHjpvcPaZ/zDh8+rPj4eJUuXVqtW7c2tX0fdByRwn2rdu3adh/YIiMjdfDgQe3du1d58+ZVrVq1bPMKFiyohx56KNOjI4mJiRo8eLDKly+v/Pnzy9fXV/v27Uv3LXz16tXtHnft2lU7d+7UQw89pP79+9t9wOvVq5d8fX1t/24WGRlp+3/evHlVvXr1TGvbt2+f6tatazetbt26OnjwoC0o3bycuXPn2tpVrlzZ7nlpbyRp0j4UFi1aVH5+fnrhhRd09uxZJScnZ1iLJL333nt2y7t5G928XmmPM1uvihUr2vpo2rRppsvDnTEW7jwWMttGaadUbd++XS1btlTx4sXl5+dn+5B163rfPKZCQ0MlyTam9u3bZ7etb10/STp16pR69OihMmXKKCAgQP7+/kpMTLQtp0OHDrp8+bJKliypHj16aPHixbZvtJFegwYNtHPnTu3cuVNbtmxRkyZN1LRpUx05ciRd23379ikyMtLudVC3bl0lJibqf//7322XU61atXTTsrL/9Pb2toUoSQoODlZ4eLjdOAgODra9hnbv3q3r16+rbNmydq/lH3/80e5UMthbtmyZfH195enpqaZNm+qZZ57RyJEjVbNmTVWsWNF2M4qvvvpKJUqU0OOPP273/IkTJ2rnzp364YcfVKFCBX322Wd2IergwYN69tlnVbJkSfn7+9u+2DOzf9i/f79q1qxp1/7Wx7t27dKoUaPs/vY9evTQiRMnlJyczP7BCbhrH5AFgwcPVlxcnD788EOVLl1aXl5eat++fbqLin18fOweP/roo4qPj9cPP/yg1atXq2PHjoqKitLChQs1atSoO54K5wjVq1e3+7Y7ODjY9v9bv7G6+fanhw8fVosWLfTKK69ozJgxCgwM1C+//KLu3bvr6tWrmd7YoVevXurYsaPt8c3fmpqxfPly2+llXl5e2eoDjne/joXbSUpKUpMmTdSkSRPNnTtXhQsX1tGjR9WkSZN0633zmEr7QG7mlsLR0dE6e/asPv74Y5UoUUIeHh6KjIy0LScsLEz79+/X6tWrFRcXp969e+uDDz7Qjz/+6PQjVK7Ix8dHpUuXtj3+7LPPFBAQoFmzZumll15y6HJultX9Z0b74NvtlxMTE5UnTx5t375defLksWt365cQ+D8NGjTQtGnTlC9fPhUpUsTuJiEvvfSSpk6dqqFDhyo2NlbdunVLd9Q8JCREpUuXVunSpRUbG6tmzZpp7969CgoKkiS1bNlSJUqU0KxZs1SkSBFZrVY9/PDDDt8/JCYmKiYmRm3btk03z9PTk/2DExCkcN/avHmz3eO06w0qVKiga9euafPmzXanM+3fv18VKlTIsK8NGzaoa9euatOmjaQbO7Os3tjA399fzzzzjJ555hm1b99eTz31lM6dO6egoCDbTvhWmzZtsn0jdu3aNW3fvt122tStypcvrw0bNqSrt2zZssqTJ4+8vLzsPkhk1fbt22W1WvXRRx/Jze3Gwev58+fbtcmXL5/dRdDSjVsMZ3a6w6ZNm9SlSxe7x4888kiGbUuUKGG6ZmSMsXDnsZDZNsqTJ4/+/PNPnT17VuPGjbNdh7dt27YsrfOt9W3evDndGLi13k8//VTNmjWTJB07dsx2KlgaLy8vtWzZUi1btlSfPn1Urlw57d69W48++qjpmh40FotFbm5uunz5crp55cuX16JFi2QYhu1D7oYNG+Tn56dixYqZWk5W9p/Z8cgjj+j69es6ffq0Hnvssbvu70Fxa6C+2fPPP68hQ4Zo8uTJ2rt3r6Kjo2/bV82aNVWtWjWNGTNGH3/8sW2fOWvWLNvf5JdffjFd40MPPWR33Z2kdI8fffRR7d+//7bv6ewfchZBCveto0ePatCgQXr55Zf122+/acqUKfroo49UpkwZtWrVSj169NCMGTPk5+enoUOHqmjRopn+LkSZMmX03XffqWXLlrJYLBo+fHiWvkWaMGGCQkND9cgjj8jNzU0LFixQSEjIHX/gdOrUqSpTpozKly+viRMn6vz583YXrd/stddeU40aNfTuu+/qmWee0caNG/XJJ5+ku4jdrNKlSys1NVVTpkxRy5Yt7S6iThMeHq7ExEStWbNGVapUkbe3921vQb5gwQJVr15d9erV09y5c7Vlyxbbhbu4dxgLdx4LmW0jSSpevLjy5cunKVOmqFevXvrjjz/07rvv3rHPWw0YMEBdu3ZV9erVVbduXc2dO1d79uxRyZIlbW3KlClju0NgQkKCXn/9dbsjsrNnz9b169dVq1YteXt766uvvpKXlxdfPGQiJSVFJ0+elHTjDpWffPKJEhMT1bJly3Rte/furUmTJqlfv37q27ev9u/frxEjRmjQoEG2MJRVWdl/ZkfZsmXVuXNndenSRR999JEeeeQR/fPPP1qzZo0qV66s5s353UWzChQooLZt2+r1119X48aNsxSaBw4cqDZt2mjIkCEKDQ1VwYIFNXPmTIWGhuro0aMaOnSo6Tr69eunxx9/XBMmTFDLli21du1a/fDDD3ZHx9555x21aNFCxYsXV/v27eXm5qZdu3bpjz/+0OjRo9k/OIMBZCIpKcnYtm2bkZSU5OxSTKtfv77Ru3dvo1evXoa/v79RoEAB48033zSsVqthGIZx7tw544UXXjACAgIMLy8vo0mTJsaBAwdsz4+NjTUCAgJsj+Pj440GDRoYXl5eRlhYmPHJJ58Y9evXNwYMGGBrU6JECWPixIl2dcycOdOoWrWq4ePjY/j7+xsNGzY0fvvtt0zrjo+PNyQZ8+bNM2rWrGnky5fPqFChgrF27Vpbm3Xr1hmSjPPnz9umLVy40KhQoYLh7u5uFC9e3Pjggw+ytI1urt8wDKNVq1ZGdHS07fGECROM0NBQ2zb64osv0i27V69eRsGCBQ1JxogRIzJdniRj6tSpRqNGjQwPDw8jPDzc+Pbbb9Ot+44dOzLt49a/y44dOwxJRnx8/B3X90HFWMjaWLjdNjIMw5g3b54RHh5ueHh4GJGRkcbSpUvtXq8Z1ZLR63PMmDFGoUKFDF9fXyM6OtoYMmSIUaVKFdv83377zahevbrh6elplClTxliwYIHd9ly8eLFRq1Ytw9/f3/Dx8TFq165trF69+o7r+CCKjo42JNn++fn5GTVq1DAWLlxoGEbG+5z169cbNWrUMPLly2eEhIQYb7zxhpGammqbP3HiRKNEiRJ2y8loX2oYd95/3jq2DMMwRowYYfd6SFuPVq1a2R5fvXrVeOedd4zw8HDD3d3dCA0NNdq0aWP8/vvvZjfRA+HW7ZeRNWvWGJKM+fPnp5snyVi8eLHdNKvVapQrV8545ZVXDMMwjLi4OKN8+fKGh4eHUblyZWP9+vV2z8votXb+/HlDkrFu3TrbtJkzZxpFixY1vLy8jNatWxujR482QkJC7Ja9YsUKo06dOoaXl5fh7+9v1KxZ05g5c6ZhGOb3D2mf8xYuXGh88MEH6dYTd8Zd+5Cp2921z9U98cQTqlq1qiZNmuTsUvD/WSwWLV68mDsC5TDGwp2xjYAH25dffqlXX31Vx48ft7utubP16NFDf/75p93ddR2Ju/bdPU7tAwAAwAMnOTlZJ06c0Lhx4/Tyyy87PUR9+OGHatSokXx8fPTDDz9ozpw5d32aPu4tbn8OAACAB8748eNVrlw5hYSE2P02k7Ns2bJFjRo1UqVKlTR9+nRNnjzZoXeXhONxah8ylZtP7QMAAEDmOLXv7nFECgAAAABMIkjhjsz8WBwAAABcHyel3T2CFDKVdtFlYmKikysBAACAI6WkpEi68WPnyB7u2odM5c2bV4UKFdLff/8tSfL19TX9o4QAAABwLVarVceOHVNycrKuX7/u7HJyLYIUbqt48eKSZAtTAAAAyP2sVqtOnjwp6cZRKS8vLydXlPsQpHBbFotFJUqU0NGjR7Vz504VKFCAgQYAAJCLGYah1NRUWa1WXbx4UW5ubgoJCXF2WbkOQQpZUrt2bV2+fFm///67UlNTZbFYnF0SAAAA7oJhGPLw8FC9evVUqVIlZ5eT6/A7Usiy1NRUnThxQomJidzpBQAAIJfLkyePfH19VaRIEa6DzwaCFAAAAACYRPQEAAAAAJMIUgAAAABgEkEKAAAAAEwiSAEAAACASQQpAAAAADDp/wGdN+PkwbqspAAAAABJRU5ErkJggg==" + ] }, "metadata": {}, "output_type": "display_data" } ], - "execution_count": 84 + "source": [ + "metrics = {\n", + " \"polars-bio-nat-pl-lf\": {\"0-1\": 0.233, \"0-3\": 1.945, \"0-8\": 1.115, \"7-8\": 1.025},\n", + " \"polars-bio-pandas\": {\"0-1\": 0.327, \"0-3\": 1.939, \"0-8\": 1.229, \"7-8\": 1.192},\n", + " \"Bioframe\": {\"0-1\": 1.499, \"0-3\": 104.0, \"0-8\": 34.454, \"7-8\": 68.00},\n", + " \"PyRanges\": {\"0-1\": 0.724, \"0-3\": 0.720, \"0-8\": 2.966, \"7-8\": 2.866},\n", + "}\n", + "plot_metrics(\n", + " metrics, [\"0-1\", \"0-3\", \"0-8\", \"7-8\"], \"Nearest operation performance comparison\"\n", + ")" + ] } ], "metadata": { diff --git a/docs/notebooks/tutorial.ipynb b/docs/notebooks/tutorial.ipynb index 41b569c..a365a7e 100644 --- a/docs/notebooks/tutorial.ipynb +++ b/docs/notebooks/tutorial.ipynb @@ -1,75 +1,72 @@ { "cells": [ { - "metadata": {}, "cell_type": "markdown", - "source": "### Import dependencies", - "id": "947f441f13ced60a" + "id": "947f441f13ced60a", + "metadata": {}, + "source": "### Import dependencies" }, { + "cell_type": "code", + "execution_count": 2, + "id": "7b173024d3e8f76", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T17:08:31.971223Z", "start_time": "2024-12-16T17:08:31.059381Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "import polars_bio as pb\n", "import pandas as pd\n", - "from polars_bio.range_viz import visualize_intervals\n" - ], - "id": "7b173024d3e8f76", - "outputs": [], - "execution_count": 2 + "from polars_bio.range_viz import visualize_intervals" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "### Sample data", - "id": "d2bb8c193890f27f" + "id": "d2bb8c193890f27f", + "metadata": {}, + "source": "### Sample data" }, { + "cell_type": "code", + "execution_count": 3, + "id": "86fe039c3780140e", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T17:09:13.015338Z", "start_time": "2024-12-16T17:09:13.012824Z" } }, - "cell_type": "code", + "outputs": [], "source": [ - "df1 = pd.DataFrame([\n", - " ['chr1', 1, 5],\n", - " ['chr1', 3, 8],\n", - " ['chr1', 8, 10],\n", - " ['chr1', 12, 14]],\n", - " columns=['contig', 'pos_start', 'pos_end']\n", + "df1 = pd.DataFrame(\n", + " [[\"chr1\", 1, 5], [\"chr1\", 3, 8], [\"chr1\", 8, 10], [\"chr1\", 12, 14]],\n", + " columns=[\"contig\", \"pos_start\", \"pos_end\"],\n", ")\n", "\n", "df2 = pd.DataFrame(\n", - " [['chr1', 4, 8],\n", - " ['chr1', 10, 11]],\n", - " columns=['contig', 'pos_start', 'pos_end' ]\n", + " [[\"chr1\", 4, 8], [\"chr1\", 10, 11]], columns=[\"contig\", \"pos_start\", \"pos_end\"]\n", ")" - ], - "id": "86fe039c3780140e", - "outputs": [], - "execution_count": 3 + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "### Overlap", - "id": "a884cd2960796fdb" + "id": "a884cd2960796fdb", + "metadata": {}, + "source": "### Overlap" }, { + "cell_type": "code", + "execution_count": 4, + "id": "304f3aa6fcdc9650", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T17:10:01.746359Z", "start_time": "2024-12-16T17:10:01.739768Z" } }, - "cell_type": "code", "outputs": [ { "name": "stderr", @@ -79,26 +76,23 @@ ] } ], - "execution_count": 4, - "source": "overlapping_intervals = pb.overlap(df1, df2, output_type=\"pandas.DataFrame\")", - "id": "304f3aa6fcdc9650" + "source": [ + "overlapping_intervals = pb.overlap(df1, df2, output_type=\"pandas.DataFrame\")" + ] }, { + "cell_type": "code", + "execution_count": 5, + "id": "61c9254622598622", "metadata": { "ExecuteTime": { "end_time": "2024-12-16T17:11:22.536541Z", "start_time": "2024-12-16T17:11:22.524316Z" } }, - "cell_type": "code", "outputs": [ { "data": { - "text/plain": [ - " contig_1 pos_start_1 pos_end_1 contig_2 pos_start_2 pos_end_2\n", - "0 chr1 1 5 chr1 4 8\n", - "1 chr1 3 8 chr1 4 8" - ], "text/html": [ "
\n", "