Skip to main content

Interactive widgets to construct data analysis notebooks for Mascope

Project description

Mascope Jupyter Widgets

This repository contains interactive widgets to construct data analysis notebooks for Mascope, utilizing Mascope SDK to fetch data from the server. The package is published in PyPI and therefore is publicly available.

Example notebooks are maintained in a separate (private) repository: mascope-jupyter-notebooks.

All developer docs are in this document:

🚀 Getting started

Installation

This project uses uv for dependency management, and therefore it is a prerequisite for installation. Install uv following their instructions.

Once installed, open a terminal, navigate into the repository directory mascope-jupyter-widgets/ and run

uv sync

Environment configuration

NOTE: The .env file needs to be placed in the directory from which you launch the notebooks

To load data from the Mascope database, you will need to configure the URL as well as a personal access token.

  1. In the source code directory, copy .env.example to a new file named .env in the same location.
  2. Generate and copy a Jupyter Notebooks access token in your Mascope account management.
  3. Replace placeholders in the .env file with the URL of your Mascope instance and your personal access token:
MASCOPE_ACCESS_TOKEN=p3R5oN4l4cC35s70Ken
MASCOPE_URL="https://org.mascope.app"

Note: The .env file is gitignored to prevent accidental commit of personal access tokens. Never commit your actual token to the repository.

📚 Modules

The repository is structured into modules as follows:

mascope-jupyter-widgets/      Repository root
  mascope-jupyter-widgets/      Package directory
    binning/                      Dataset binning module
    click_event_handler/          Attach callbacks to figure click events
    filtering/                    Dataset filtering module
    mascope_data/                 Data loading module
    mass_defect/                  Mass defect analysis module
    sample_timeseries/            Sample peak timeseries analysis module
    spectrum/                     Spectrum analysis module
    timeseries/                   Timeseries analysis module
    logging_config.py             Logger configuration
    plot_tools.py                 Reusable plot utilities
    widgets_config.py             Global widget configuration

binning/

Module providing tools to bin data to mz-groups.

Names exported to package namespace:

  • BinningWidget

    Interactive notebook widget to bin peaks of the dataset samples to mz-groups. It provides different methods and vizualisations for the binning analyze.

click_event_handler/

Module providing tools to bin data to mz-groups.

Names exported to package namespace:

  • click_event_callbacks

    Functions which can be attached as callbacks to figure click events.

  • ClickEventHandler

    Class to be attached to a widget, providing the click event handling. Takes the desired callback function (from click_event_callbacks) as an argument.

filtering/

Module providing tools to select a subset of the loaded dataset based on various filtering criteria.

Names exported to package namespace:

  • FilteringWidget

    Interactive notebook widget to filter a subset of the data currently loaded into MascopeDataWrapper. With the filters applied, all the data propertites exposed by MascopeDataWrapper return the filtered data.

mascope_data/

Module providing tools to load and interface with Mascope data.

Names exported to package namespace:

  • MascopeDataBrowser

    Interactive notebook widget to browse and load data from Mascope server.

  • MascopeDataWrapper

    A class providing a standardized interface to the data loaded from Mascope, consisting of various pandas dataframes exposed as class properties. An instance of the data wrapper is used as the input to analysis modules.

mass_defect/

Module providing tools to perform mass defect analysis on the loaded dataset.

Names exported to package namespace:

  • MassDefectWidget

    Interactive notebook widget to visualize the dataset based on mass defect, providing various ways of scaling and normalization.

sample_timeseries/

Module providing tools to perform sample peak timeseries analysis on the loaded dataset.

Names exported to package namespace:

  • SampleTimeSeriesWidget

    Interactive notebook widget to visualize the dataset sample peak timeseries.

spectrum/

Module providing tools to perform spectrum analysis on the loaded dataset.

Names exported to package namespace:

  • SpectrumWidget

    Interactive notebook widget to visualize the dataset spectrums.

timeseries/

Module providing tools to perform timeseries analysis on the loaded dataset.

Names exported to package namespace:

  • TimeSeriesWidget

    Interactive notebook widget to visualize the dataset based on time, providing various ways of aggregation.

📡 Publishing

The package is published in PyPI. There is a Github workflow; .github/release.yaml which automatically publishes a new version whenever there is a commit to the main branch, typically when develop is merged to main.

📝 Git conventions

To encourage consistency and homogenousity in the Git history across developers, the guidelines presented in the organization README should be followed. For project specific additions to the general guidelines, see below.

Commit message scopes

Due to the relatively small size of the repository, usage of the optional scope field is not encouraged.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mascope_jupyter_widgets-2025.8.7.tar.gz (117.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mascope_jupyter_widgets-2025.8.7-py3-none-any.whl (142.4 kB view details)

Uploaded Python 3

File details

Details for the file mascope_jupyter_widgets-2025.8.7.tar.gz.

File metadata

File hashes

Hashes for mascope_jupyter_widgets-2025.8.7.tar.gz
Algorithm Hash digest
SHA256 cfac1d3ef1ac21129c43c1686ac0c979e914b611b2b264279327c4708ad8ca9e
MD5 9fd6628898059175dffb48c468d5513c
BLAKE2b-256 27a18d272b3713a4e9bc188694501c71b035a65e99ed709a3e489e1b3c556601

See more details on using hashes here.

File details

Details for the file mascope_jupyter_widgets-2025.8.7-py3-none-any.whl.

File metadata

File hashes

Hashes for mascope_jupyter_widgets-2025.8.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c690aae30439059e034a42294abe743e8cd9d7ecc1ce163b1dd96a7b711408b8
MD5 90c76d30757e3e60b6e81b9f1476625e
BLAKE2b-256 d586dbcf1f06cc2e789cfbd87bbda8c7cc7a9903b4bd01d7b07defa7ecea149d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page