Skip to main content

Web-based tool for PCA/PLS model analysis in chemometrics.

Project description

ScorePilot

CI License: MIT Python 3.12+

Build, compare, and interrogate PCA and PLS models in your browser. ScorePilot is a point-and-click workbench for multivariate data analysis and chemometrics: load a table, clean it up, fit a model, and explore the scores, loadings, and diagnostics that explain your process - no code required.

It runs as a single, self-contained app you launch with one command. Standard chemometrics terms keep their established names throughout: scores (T), loadings (P), Hotelling's T², SPE/DModX, contributions, VIP, R²X / R²Y, Q².


See it in action

Explore your data - a fast spreadsheet-style grid with a live inspector for every column (distribution, sequence, summary, transform preview), data-quality flags, and one-click roles and exclusions:

The data explorer: grid, column inspector, and data-quality panel

Fit a model and read it - scores with the Hotelling's T² confidence ellipse, loadings, T² and SPE with control limits, and VIP, all interactive:

Model diagnostics: scores, loadings, T-squared, SPE, and VIP


What you can do

  • Bring in data your way - upload a CSV or Excel file, paste a public URL, or start from one of the bundled example datasets (LDPE, food consumption, solvents, NIR tablet spectra, and more).
  • Understand each variable - click any column to see its histogram, run-order sequence, and summary statistics, and preview a transform (log, logit, ...) before you commit to it. Toggle the whole grid between raw and autoscaled values.
  • Clean and shape the workset - set the primary identifier (auto-detected, with a synthetic row id when needed), mark X / Y variables, and exclude outlying samples or unwanted variables - all without altering your original data.
  • Catch problems early - duplicate identifiers, non-numeric values in numeric columns, and missing data are flagged as you go.
  • Fit PCA and PLS - choose the number of components and fit. For one-component models the plots collapse to a single, readable axis automatically.
  • Interrogate the model - plot any pair of components (or sequence order), hover a score to read its SPE and T², and double-click or long-press any point to open its contribution plot and see which variables drive it. Long-press a loadings point to jump straight to that variable's raw data.
  • Select and link across every plot - switch a plot into arrow or lasso mode and pick out points; the selection lights up the same rows (or variables) in every other plot - scores, loadings, T², SPE, VIP, and contributions - so a cluster you spot in one view is instantly visible everywhere. The lasso is forgiving on touch: a partial ring closes itself.
  • Colour and size by what matters - shade or scale the score points by SPE or Hotelling's T² to make outliers jump out.
  • Act on a selection - fork a new model variant straight from a brushed set: exclude the selected samples (or keep only them) and refit in one click, with the lineage recorded automatically.
  • Keep a history - every model variant lands in the Hangar, and each one carries a Logbook recording its preprocessing, exclusions, and lineage, so you can branch a new variant from an existing one and compare. The running version is always shown, faint, in the top-right corner so you know exactly what you are looking at.

Your datasets and models are saved, so they survive a restart and are there when you come back.


Quick start

You need Python 3.12+ and uv. Then:

uv run scorepilot

That boots the app and opens your browser at http://127.0.0.1:8000. Load a sample dataset from the home page and start exploring.

Handy flags:

uv run scorepilot --host 0.0.0.0 --port 8080 --no-browser

The packaged app is a single process with no Node required at runtime: the Python server hosts both the API and the web UI.


The assistant (optional)

ScorePilot has an optional in-app assistant, T²-D2, for help interpreting a model. It is off by default, bring-your-own-key, and the analysis never depends on it - the tool is fully usable without it.


For developers

ScorePilot is a FastAPI + SQLAlchemy backend with a SvelteKit (Svelte 5) + ECharts frontend, wrapping the process-improve chemometrics library for the numerics. The numerical core/ is pure and has no web or database imports.

The frontend ships two standalone, domain-agnostic libraries that know nothing about chemometrics and can be reused elsewhere: frontend/src/lib/grid/ (a dependency-free data grid) and frontend/src/lib/plots/ (a linked-plots collection with brushing-and-linking; see frontend/src/lib/plots/README.md).

Common tasks:

uv sync                 # set up the environment
uv run scorepilot       # run the app
uv run pytest           # tests
uv run ruff check .     # lint
uv run pyright          # type check

cd frontend && npm install && npm run dev   # frontend dev server (proxies /api)

License

MIT. See LICENSE.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

scorepilot-0.22.36-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file scorepilot-0.22.36-py3-none-any.whl.

File metadata

  • Download URL: scorepilot-0.22.36-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scorepilot-0.22.36-py3-none-any.whl
Algorithm Hash digest
SHA256 f52fc426d71b5cbcd9284ccfbce6754427fe12176aa9566cba96c0ff227eef8d
MD5 bf21c289979c9e287f545caa4c47f246
BLAKE2b-256 fcc49023bcc102a504405f2174c6605294d9ff71d5750a6d9b3c39c1e55fab94

See more details on using hashes here.

Provenance

The following attestation bundles were made for scorepilot-0.22.36-py3-none-any.whl:

Publisher: publish.yml on kgdunn/ScorePilot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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