{"id":37069702,"url":"https://github.com/unigrazmath/vitabel","last_synced_at":"2026-01-14T08:01:30.867Z","repository":{"id":272770702,"uuid":"906337390","full_name":"UniGrazMath/vitabel","owner":"UniGrazMath","description":"Python toolbox for plotting, processing, and interactively labeling vital data","archived":false,"fork":false,"pushed_at":"2025-12-17T17:23:06.000Z","size":46432,"stargazers_count":12,"open_issues_count":54,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-19T19:41:13.470Z","etag":null,"topics":["health-data","interactive-annotation","interactive-visualizations","jupyter-notebook","python","timeseries"],"latest_commit_sha":null,"homepage":"https://vitabel.readthedocs.io/en/latest/index.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UniGrazMath.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-20T17:11:15.000Z","updated_at":"2025-12-17T17:23:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"994d42c4-e9bf-4d98-849e-1e29a9be0df6","html_url":"https://github.com/UniGrazMath/vitabel","commit_stats":null,"previous_names":["unigrazmath/vitabel"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/UniGrazMath/vitabel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UniGrazMath%2Fvitabel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UniGrazMath%2Fvitabel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UniGrazMath%2Fvitabel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UniGrazMath%2Fvitabel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UniGrazMath","download_url":"https://codeload.github.com/UniGrazMath/vitabel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UniGrazMath%2Fvitabel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["health-data","interactive-annotation","interactive-visualizations","jupyter-notebook","python","timeseries"],"created_at":"2026-01-14T08:01:30.015Z","updated_at":"2026-01-14T08:01:30.849Z","avatar_url":"https://github.com/UniGrazMath.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ctable width=\"100%\"\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"170\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/UniGrazMath/vitabel/main/assets/logo/Vitabel_Logo.png\" width=\"150\"\u003e\u003c/td\u003e\n    \u003ctd width=\"850\"\u003e\n      \u003cb\u003e\u003ch1 style=\"margin: 0;\"\u003evitabel\u003c/h1\u003e\u003c/b\u003e\n      \u003cp style=\"margin-top: 0;\"\u003ea toolbox for interactively annotating and labeling vital data\u003c/p\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n[![Documentation Status](https://readthedocs.org/projects/vitabel/badge/?version=latest)](https://vitabel.readthedocs.io/en/latest/index.html)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/UniGrazMath/vitabel/main?urlpath=%2Flab%2Ftree%2Fexamples)\n![PyPI](https://img.shields.io/pypi/v/vitabel)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/vitabel/badges/version.svg)](https://anaconda.org/conda-forge/vitabel)\n\n\nIn a nutshell, the vitabel package enables interactive loading, processing, and annotation of vital medical time-series data (e.g., from defibrillators, anesthesia records, or critical care monitors) within a Jupyter notebook. By structuring and labeling data efficiently and intuitively, it paves the way for AI-driven analysis.\n\n![vitabel annotation screenshot](assets/vitabel-demo.png)\n\n### Interactive Demo in the Browser\n\nWe have setup an interactive demo illustrating some standard use cases of `vitabel`\nwith the help of Binder: [head over to mybinder.org](https://mybinder.org/v2/gh/UniGrazMath/vitabel/main?urlpath=%2Flab%2Ftree%2Fexamples),\nor click the binder badge at the top of this README to access the demo right in\nyour browser. \n\n### Installation and Usage\n\nThe latest stable release of `vitabel` is distributed via PyPI and can be installed via\n```sh\n$ pip install vitabel\n```\n\nAlternatively, if you prefer using **Conda**, you can install `vitabel` from the `conda-forge` channel:\n```sh\n$ conda install -c conda-forge vitabel\n```\n\nThe latest development version can be installed [from the `main` branch on\nGitHub](https://github.com/UniGrazMath/vitabel) by running\n```sh\n$ pip install git+https://github.com/UniGrazMath/vitabel.git\n```\n\nThe main feature of `vitabel`, interactive plots that can be used to annotate data,\nis designed to work in Jupyter notebooks. Start a new server by running `jupyter notebook`\n(or create a new notebook in an existing server), then import the central `Vitals` class\nthat acts as a container for the vital data. A set of data can be added using, for example,\nthe `Vitals.add_defibrillator_recording` method, or `Vitals.add_vital_db_recording`; various output formats of defibrillators\nand VitalDB are supported.  \n\nA typical use of this package reads as follows:\n\n```py\nfrom vitabel import Vitals, Label\n\n# create case and load data\ncase = Vitals()\ncase.add_defibrillator_recording(\"path/to/ZOLL_data_file.json\")\n\n# use in-built methods for processing available data, compute etco2\n# and predict circulatory state\ncase.compute_etco2_and_ventilations()\ncase.predict_circulation()\n\n# create a new label for ROSC events\nROSC_label = Label('ROSC', plotstyle={'marker': '$\\u2665$', 'color': 'red', 'ms': 10, 'linestyle': ''})\ncase.add_global_label(ROSC_label)\n\n# display an interactive plot that allows annotations and further data adjustments\ncase.plot_interactive(\n    channels=[['cpr_acceleration'], ['capnography'], ['ecg_pads'], []],\n    labels = [['ROSC'], ['etco2_from_capnography', 'ROSC'], ['ROSC'], ['ROSC', 'rosc_probability']],\n    channel_overviews=[['cpr_acceleration']],\n    time_unit='s',\n    subplots_kwargs={'figsize': (22, 9)}\n)\n```\n\nMore detailed explicit examples (including the required test data) are\ncontained in the [examples directory](/examples/).\n\n### 📚 Documentation\n\nYou can find the full API documentation here: [vitabel.readthedocs.io – vitals module](https://vitabel.readthedocs.io/en/latest/autoapi/vitabel/vitals/index.html)\n\n### 🧾 Citing vitabel\n\nSimon Orlob, Wolfgang J. Kern, Benjamin Hackl, Jan Wnent, Jan-Thorsten Gräsner, Martin Holler  \n**Vitabel: Bridging Clinical Expertise and the Machine Learning Pipeline in Critical Care**. PREPRINT (Version 1), 29 September 2025. Research Square. [https://doi.org/10.21203/rs.3.rs-7227195/v1]()\n\n### 🛠️ Development\n\nSetup a development environment by using the Python project and environment [management\ntool `uv`](https://docs.astral.sh/uv/). To setup the environment, simply run\n```sh\nuv sync\n```\n\nPackage tests are contained in [the `tests` directory](/tests/); run them locally via\n```sh\nuv run pytest\n```\n\nWe use [`ruff`](https://docs.astral.sh/ruff/) for linting and formatting the code base,\nand [semantic versioning](https://semver.org/) for the release tags.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funigrazmath%2Fvitabel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funigrazmath%2Fvitabel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funigrazmath%2Fvitabel/lists"}