virelay

ViRelAy is a visualization tool for the analysis of data as generated by CoRelAy.

https://github.com/virelay/virelay

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    3 of 7 committers (42.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.7%) to scientific vocabulary

Keywords

angular flask interpretability machine-learning python visualization xai

Keywords from Contributors

pipeline-framework spectral-clustering
Last synced: 4 months ago · JSON representation ·

Repository

ViRelAy is a visualization tool for the analysis of data as generated by CoRelAy.

Basic Info
  • Host: GitHub
  • Owner: virelay
  • License: agpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 39.4 MB
Statistics
  • Stars: 27
  • Watchers: 3
  • Forks: 5
  • Open Issues: 6
  • Releases: 8
Topics
angular flask interpretability machine-learning python visualization xai
Created almost 5 years ago · Last pushed 5 months ago
Metadata Files
Readme Changelog License Citation

README.md

ViRelAy Logo # Visualizing Relevance Analyses [![License](https://img.shields.io/pypi/l/virelay)](https://github.com/virelay/virelay?tab=License-1-ov-file) [![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/virelay/virelay/tests.yaml)](https://github.com/virelay/virelay/actions) [![Documentation Status](https://readthedocs.org/projects/virelay/badge?version=latest)](https://virelay.readthedocs.io/en/latest) [![GitHub Release](https://img.shields.io/github/v/release/virelay/virelay)](https://github.com/virelay/virelay/releases/latest) [![PyPI Package](https://img.shields.io/pypi/v/virelay)](https://pypi.org/project/virelay/) **ViRelAy** is an XAI visualization tool for the analysis of the results of spectral relevance analysis (SpRAy) pipelines, as generated by **[CoRelAy](https://github.com/virelay/corelay)**. It runs a small web application to view, explore, and interact with the source data, its attributions, clusterings, and embeddings. ViRelAy is designed to simplify the analysis of classifiers and their underlying datasets. Findings can be imported, exported, and shared with others for easy collaboration. Currently, only image data is supported and attributions are expected to have the same shape as the corresponding input data.

ViRelAy Light Mode UI ViRelAy Dark Mode UI

For more information about ViRelAy, getting started guides, in-depth tutorials, and API documentation, please refer to the documentation.

If you find ViRelAy useful for your research, why not cite our related paper:

bibtex @article{anders2021software, author = {Anders, Christopher J. and Neumann, David and Samek, Wojciech and Müller, Klaus-Robert and Lapuschkin, Sebastian}, title = {Software for Dataset-wide XAI: From Local Explanations to Global Insights with {Zennit}, {CoRelAy}, and {ViRelAy}}, year = {2021}, volume = {abs/2106.13200}, journal = {CoRR} }

Features

  • Visually inspect analyses generated using tools like CoRelAy
  • Open multiple projects side-by-side
  • Collaborate using export, import, and share functionality
  • Easily find outlier classification strategies by visualizing classifications using different clustering methods
  • Understand the classification strategies of your model by viewing attribution data as heatmaps
  • Easily run ViRelAy locally or on a server

Getting Started

To get started, you first have to install ViRelAy on your system. The recommended and easiest way to install ViRelAy is to use pipx, which is a tool for installing Python applications from the Python package index (PyPI) in isolated environments:

shell $ pipx install virelay

Alternatively, you can also install ViRelAy using pip, although it is recommended to create a virtual environment to avoid conflicts with other Python packages:

shell $ python3 -m venv virelay-env $ source virelay-env/bin/activate $ pip install virelay

ViRelAy uses a custom file format, which usually comprises a project file in YAML format, a dataset either in HDF5 format or in a directory structure, one or more attribution databases in HDF5 format, and one or more analyses databases for various analyses methods in HDF5 format. For more information on the project file format, please refer to the project file format documentation and for more information on the formats for the dataset, attribution, and analyses databases, see the database specifications.

ViRelAy projects can be generated using CoRelAy, but if you want to get a fast first glimpse at ViRelAy, you can also create a randomly generated example project.

When you have a project ready, you can open it in ViRelAy using the following command:

shell $ virelay <project-file> [<project-file> ...]

This will start the server at http://localhost:8000 and automatically open your default browser. Optionally, you can specify an alternative host and port using the --host and --port command-line arguments. For more in-depth instructions, please refer to our getting started guide.

Please note that starting ViRelAy using the command-line interface, will start a simple built-in HTTP server. While this built-in server is suitable for small projects and testing purposes, it may not provide the performance and scalability required for larger-scale deployments, such as required when installing ViRelAy on a remote server for collaborative work.

To unlock faster performance and scalability, we recommend running ViRelAy with Gunicorn, a WSGI-compliant HTTP server that provides robust features and configuration options. To find out how to run ViRelAy using Gunicorn, please refer to our "Using ViRelAy with Gunicorn" guide.

Contributing

If you would like to contribute, there are multiple ways you can help out. If you find a bug or have a feature request, please feel free to open an issue on GitHub. If you want to contribute code, please fork the repository and use a feature branch. Pull requests are always welcome. Before forking, please open an issue where you describe what you want to do. This helps to align your ideas with ours and may prevent you from doing work, that we are already planning on doing. If you have contributed to the project, please add yourself to the contributors list.

To help speed up the merging of your pull request, please comment and document your code extensively, try to emulate the coding style of the project, and update the documentation if necessary.

For more information on how to contribute, please refer to our contributor's guide.

License

ViRelAy is licensed under the GNU Affero General Public License Version 3 (AGPL v3) later. For more information see the license. For licenses of bundled third party software packages please refer to the 3rd party license list, which is available in source/frontend/distribution/3rdpartylicenses.txt after building the frontend.

Owner

  • Name: virelay
  • Login: virelay
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
title: >-
  Software for Dataset-wide XAI: From Local Explanations to
  Global Insights with Zennit, CoRelAy, and ViRelAy
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Christopher J.
    family-names: Anders
    orcid: 'https://orcid.org/0000-0003-3295-8486'
  - given-names: David
    family-names: Neumann
    orcid: 'https://orcid.org/0000-0003-1907-8329'
  - given-names: Wojciech
    family-names: Samek
    orcid: 'https://orcid.org/0000-0002-6283-3265'
  - given-names: Klaus-Robert
    family-names: Müller
    orcid: 'https://orcid.org/0000-0002-3861-7685'
  - given-names: Sebastian
    family-names: Lapuschkin
    orcid: 'https://orcid.org/0000-0002-0762-7258'
identifiers:
  - type: doi
    value: 10.48550/arXiv.2106.13200
    description: arXiv Preprint
  - type: url
    value: 'https://arxiv.org/abs/2106.13200'
    description: arXiv Preprint
repository-code: 'https://github.com/virelay/virelay.git'
url: 'https://virelay.readthedocs.io/en/latest/'
abstract: >-
  Deep Neural Networks (DNNs) are known to be strong
  predictors, but their prediction strategies can rarely be
  understood. With recent advances in Explainable Artificial
  Intelligence (XAI), approaches are available to explore
  the reasoning behind those complex models' predictions.
  Among post-hoc attribution methods, Layer-wise Relevance
  Propagation (LRP) shows high performance. For deeper
  quantitative analysis, manual approaches exist, but
  without the right tools they are unnecessarily labor
  intensive. In this software paper, we introduce three
  software packages targeted at scientists to explore model
  reasoning using attribution approaches and beyond: (1)
  Zennit - a highly customizable and intuitive attribution
  framework implementing LRP and related approaches in
  PyTorch, (2) CoRelAy - a framework to easily and quickly
  construct quantitative analysis pipelines for dataset-wide
  analyses of explanations, and (3) ViRelAy - a
  web-application to interactively explore data,
  attributions, and analysis results. With this, we provide
  a standardized implementation solution for XAI, to
  contribute towards more reproducibility in our field.
keywords:
  - Explainable Artificial Intelligence
  - XAI
  - Layer-Wise Relevance Propagation
  - LRP
  - Spectral Relevance Analysis
  - SpRAy
  - Zennit
  - CoRelAy
  - ViRelAy
license: AGPL-3.0-or-later

GitHub Events

Total
  • Create event: 30
  • Release event: 4
  • Issues event: 46
  • Watch event: 1
  • Delete event: 21
  • Member event: 1
  • Issue comment event: 5
  • Push event: 105
  • Pull request event: 40
Last Year
  • Create event: 30
  • Release event: 4
  • Issues event: 46
  • Watch event: 1
  • Delete event: 21
  • Member event: 1
  • Issue comment event: 5
  • Push event: 105
  • Pull request event: 40

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 433
  • Total Committers: 7
  • Avg Commits per committer: 61.857
  • Development Distribution Score (DDS): 0.61
Top Committers
Name Email Commits
chrstphr c****r@p****u 169
David Neumann d****n@h****e 149
David Neumann d****n@l****e 54
Talmaj Marinc t****c@h****e 49
Sebastian Lapuschkin s****n@h****m 6
Sebastian Lapuschkin s****n@h****e 5
Pattarawat Chormai p****i@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 51
  • Total pull requests: 57
  • Average time to close issues: 5 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 3
  • Total pull request authors: 4
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.16
  • Merged pull requests: 56
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 45
  • Pull requests: 30
  • Average time to close issues: 26 days
  • Average time to close pull requests: 5 days
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.04
  • Average comments per pull request: 0.0
  • Merged pull requests: 30
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lecode-official (47)
  • chr5tphr (4)
  • oz-mishli (1)
Pull Request Authors
  • lecode-official (66)
  • chr5tphr (16)
  • p16i (1)
  • KjaMadsen (1)
Top Labels
Issue Labels
Type: Idea or Request (23) Type: Documentation (20) Type: Implementation (19) Priority: Low (18) Type: CI/CD (16) Type: Testing & Linting (13) Priority: Medium (13) Type: Bug (12) Type: Design (5) Type: Content (4) Priority: Critical (4) Priority: High (4) Status: Abandoned (2) enhancement (1)
Pull Request Labels
Type: Documentation (37) Type: CI/CD (29) Type: Implementation (29) Type: Testing & Linting (16) Type: Bug (16) Type: Design (7) Type: Content (5) Type: Idea or Request (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 44 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 6
  • Total maintainers: 1
pypi.org: virelay

ViRelAy is a web-based XAI tool for analyzing classifiers and their datasets by visualizing the source-data, attributions, clusterings, and embeddings as generated by tools like CoRelAy.

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 44 Last month
Rankings
Dependent packages count: 10.1%
Stargazers count: 12.7%
Forks count: 14.2%
Dependent repos count: 21.6%
Average: 24.5%
Downloads: 63.7%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/deploy.yaml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
  • astral-sh/setup-uv v5 composite
.github/workflows/tests.yaml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
  • astral-sh/setup-uv v5 composite
source/frontend/package-lock.json npm
  • 643 dependencies
source/frontend/package.json npm
  • @angular/build ^19.2.6 development
  • @angular/cli ^19.2.6 development
  • @angular/compiler-cli ^19.2.5 development
  • @types/file-saver ^2.0.7 development
  • @types/plotly.js-basic-dist-min ^2.12.4 development
  • @types/three ^0.175.0 development
  • @virelay/eslint-config file:../../tests/eslint development
  • @virelay/stylelint-config file:../../tests/stylelint development
  • eslint ^9.24.0 development
  • html-validate ^9.5.2 development
  • html-validate-angular ^7.0.1 development
  • stylelint ^16.18.0 development
  • typescript ~5.8.3 development
  • typescript-eslint ^8.29.1 development
  • @angular/animations ^19.2.5
  • @angular/common ^19.2.5
  • @angular/compiler ^19.2.5
  • @angular/core ^19.2.5
  • @angular/forms ^19.2.5
  • @angular/platform-browser ^19.2.5
  • @angular/platform-browser-dynamic ^19.2.5
  • @angular/router ^19.2.5
  • @cds/core ^6.15.1
  • @clr/angular ^17.9.0
  • @clr/ui ^17.9.0
  • angular-plotly.js ^6.0.0
  • file-saver ^2.0.5
  • plotly.js-basic-dist-min ^3.0.1
  • rxjs ~7.8.2
  • three ^0.175.0
  • tslib ^2.8.1
  • zone.js ~0.15.0
tests/cspell/package-lock.json npm
  • 120 dependencies
tests/cspell/package.json npm
  • cspell ^8.18.1
tests/eslint/package-lock.json npm
  • 171 dependencies
tests/eslint/package.json npm
  • @types/eslint__js ^8.42.3 development
  • @eslint/js ^9.24.0
  • angular-eslint ^19.3.0
  • globals ^16.0.0
  • typescript-eslint ^8.29.1
tests/markdownlint/package-lock.json npm
  • @nodelib/fs.scandir 2.1.5
  • @nodelib/fs.stat 2.0.5
  • @nodelib/fs.walk 1.2.8
  • @sindresorhus/merge-streams 2.3.0
  • @types/debug 4.1.12
  • @types/katex 0.16.7
  • @types/ms 2.1.0
  • @types/unist 2.0.11
  • argparse 2.0.1
  • braces 3.0.3
  • character-entities 2.0.2
  • character-entities-legacy 3.0.0
  • character-reference-invalid 2.0.1
  • commander 8.3.0
  • debug 4.4.0
  • decode-named-character-reference 1.1.0
  • dequal 2.0.3
  • devlop 1.1.0
  • entities 4.5.0
  • fast-glob 3.3.2
  • fastq 1.17.1
  • fill-range 7.1.1
  • glob-parent 5.1.2
  • globby 14.0.2
  • ignore 5.3.2
  • is-alphabetical 2.0.1
  • is-alphanumerical 2.0.1
  • is-decimal 2.0.1
  • is-extglob 2.1.1
  • is-glob 4.0.3
  • is-hexadecimal 2.0.1
  • is-number 7.0.0
  • js-yaml 4.1.0
  • jsonc-parser 3.3.1
  • katex 0.16.21
  • linkify-it 5.0.0
  • markdown-it 14.1.0
  • markdownlint 0.37.4
  • markdownlint-cli2 0.17.2
  • markdownlint-cli2-formatter-default 0.0.5
  • mdurl 2.0.0
  • merge2 1.4.1
  • micromark 4.0.1
  • micromark-core-commonmark 2.0.2
  • micromark-extension-directive 3.0.2
  • micromark-extension-gfm-autolink-literal 2.1.0
  • micromark-extension-gfm-footnote 2.1.0
  • micromark-extension-gfm-table 2.1.0
  • micromark-extension-math 3.1.0
  • micromark-factory-destination 2.0.1
  • micromark-factory-label 2.0.1
  • micromark-factory-space 2.0.1
  • micromark-factory-title 2.0.1
  • micromark-factory-whitespace 2.0.1
  • micromark-util-character 2.1.1
  • micromark-util-chunked 2.0.1
  • micromark-util-classify-character 2.0.1
  • micromark-util-combine-extensions 2.0.1
  • micromark-util-decode-numeric-character-reference 2.0.2
  • micromark-util-encode 2.0.1
  • micromark-util-html-tag-name 2.0.1
  • micromark-util-normalize-identifier 2.0.1
  • micromark-util-resolve-all 2.0.1
  • micromark-util-sanitize-uri 2.0.1
  • micromark-util-subtokenize 2.1.0
  • micromark-util-symbol 2.0.1
  • micromark-util-types 2.0.1
  • micromatch 4.0.8
  • ms 2.1.3
  • parse-entities 4.0.2
  • path-type 5.0.0
  • picomatch 2.3.1
  • punycode.js 2.3.1
  • queue-microtask 1.2.3
  • reusify 1.0.4
  • run-parallel 1.2.0
  • slash 5.1.0
  • to-regex-range 5.0.1
  • uc.micro 2.1.0
  • unicorn-magic 0.1.0
tests/markdownlint/package.json npm
  • markdownlint ^0.37.4
  • markdownlint-cli2 ^0.17.2
tests/stylelint/package-lock.json npm
  • 125 dependencies
tests/stylelint/package.json npm
  • stylelint-config-recess-order ^6.0.0
  • stylelint-config-standard-scss ^14.0.0
source/backend/pyproject.toml pypi
  • flask >=3.1.0,<4.0.0
  • flask-cors >=5.0.1,<6.0.0
  • gunicorn >=23.0.0,<24.0.0
  • h5py >=3.13.0,<4.0.0
  • matplotlib >=3.10.1,<4.0.0
  • numpy >=2.1.2,<3.0.0
  • pillow >=10.4.0,<11.0.0
  • pyyaml >=6.0.2,<7.0.0
  • typing-extensions >=4.13.1,<5.0.0
source/backend/uv.lock pypi
  • alabaster 0.7.16
  • astroid 3.3.9
  • babel 2.16.0
  • blinker 1.9.0
  • cachetools 5.5.2
  • certifi 2024.8.30
  • chardet 5.2.0
  • charset-normalizer 3.4.0
  • click 8.1.7
  • colorama 0.4.6
  • contourpy 1.3.0
  • coverage 7.8.0
  • cycler 0.12.1
  • defusedxml 0.7.1
  • dill 0.3.9
  • distlib 0.3.9
  • docstring-parser-fork 0.0.12
  • docutils 0.20.1
  • exceptiongroup 1.2.2
  • filelock 3.16.1
  • flask 3.1.0
  • flask-cors 5.0.1
  • fonttools 4.54.1
  • gunicorn 23.0.0
  • h5py 3.13.0
  • idna 3.10
  • imagesize 1.4.1
  • iniconfig 2.0.0
  • isort 5.13.2
  • itsdangerous 2.2.0
  • jinja2 3.1.4
  • kiwisolver 1.4.7
  • latexcodec 3.0.0
  • markupsafe 3.0.1
  • matplotlib 3.10.1
  • mccabe 0.7.0
  • mypy 1.15.0
  • mypy-extensions 1.0.0
  • numpy 2.1.2
  • packaging 24.2
  • pillow 10.4.0
  • platformdirs 4.3.6
  • pluggy 1.5.0
  • pybtex 0.24.0
  • pybtex-docutils 1.0.3
  • pycodestyle 2.13.0
  • pydoclint 0.6.5
  • pygments 2.18.0
  • pylint 3.3.6
  • pyparsing 3.2.0
  • pyproject-api 1.8.0
  • pytest 8.3.5
  • pytest-cov 6.1.1
  • python-dateutil 2.9.0.post0
  • pyyaml 6.0.2
  • requests 2.32.3
  • setuptools 75.2.0
  • six 1.16.0
  • snowballstemmer 2.2.0
  • sphinx 8.1.3
  • sphinx-copybutton 0.5.2
  • sphinx-new-tab-link 0.8.0
  • sphinx-rtd-theme 3.0.2
  • sphinxcontrib-applehelp 2.0.0
  • sphinxcontrib-bibtex 2.6.3
  • sphinxcontrib-datatemplates 0.11.0
  • sphinxcontrib-devhelp 2.0.0
  • sphinxcontrib-extdevhelper-kasane 0.2.0
  • sphinxcontrib-htmlhelp 2.1.0
  • sphinxcontrib-jquery 4.1
  • sphinxcontrib-jsmath 1.0.1
  • sphinxcontrib-qthelp 2.0.0
  • sphinxcontrib-runcmd 0.2.0
  • sphinxcontrib-serializinghtml 2.0.0
  • tomli 2.0.2
  • tomli 2.2.1
  • tomlkit 0.13.2
  • tox 4.25.0
  • tox-uv 1.25.0
  • types-flask-cors 5.0.0.20240902
  • types-pyyaml 6.0.12.20250402
  • typing-extensions 4.13.1
  • urllib3 2.2.3
  • uv 0.6.11
  • virelay *
  • virtualenv 20.30.0
  • werkzeug 3.1.3