Go to file
Michael Pilosov e94d28b8fc filenames + run names: J in sci notation (5E-3 not 0.005)
Periods in filenames are avoidable and the Prefect UI dislikes them in
run names. Uses a shared sci_notation helper in main.py mirrored in the
flow. Stem regex (main + parser) now matches J<digits.Ee+-> to accept
both old decimal-J and new sci-J filenames so the two transition
together. J tag in Prefect tag list also uses the sci form, so chip
filters stay consistent.

Backfill script extended to find pre-transition (decimal-J) files on
disk via a second base-stem variant, then rename them to the sci form.
backfill_tags re-patches existing runs so their J tag matches the new
canonical form.

All 13 existing figs + runs renamed / retagged in-place.
2026-04-22 17:54:46 -06:00
app filenames + run names: J in sci notation (5E-3 not 0.005) 2026-04-22 17:54:46 -06:00
flows filenames + run names: J in sci notation (5E-3 not 0.005) 2026-04-22 17:54:46 -06:00
scripts filenames + run names: J in sci notation (5E-3 not 0.005) 2026-04-22 17:54:46 -06:00
.gitignore some minor upgrades to prefect syntax 2026-04-21 18:02:39 -06:00
clean.sh some minor upgrades to prefect syntax 2026-04-21 18:02:39 -06:00
makefile rename folder 2026-04-21 19:30:45 -06:00
pyproject.toml some minor upgrades to prefect syntax 2026-04-21 18:02:39 -06:00
README.md some minor upgrades to prefect syntax 2026-04-21 18:02:39 -06:00
requirements-frozen.txt some minor upgrades to prefect syntax 2026-04-21 18:02:39 -06:00
uv.lock some minor upgrades to prefect syntax 2026-04-21 18:02:39 -06:00

Dimension Reduction Lab

A Python project exploring various dimension reduction techniques using Prefect for workflow orchestration.

Overview

This project serves as an experimental sandbox for studying dimensionality reduction and embedding algorithms within a reproducible environment. The primary goal is to evaluate and compare different techniques (like UMAP, t-SNE, PaCMAP, and TriMap) while focusing on their stability characteristics, particularly in the context of changing or drifting data distributions. By leveraging Prefect's workflow management capabilities, we can systematically analyze how these algorithms perform across arbitrary datasets, track their behavior over time, and measure their sensitivity to various hyperparameters and data perturbations.

Requirements

The project uses several key dependencies (as seen in requirements.frozen.txt):

Package Management

This project uses UV (μv) as its package manager, a fast Python package installer and resolver written in Rust. The requirements.frozen.txt file was generated using UV to ensure reproducible dependencies.

To update dependencies:

uv pip compile pyproject.toml (--all-extras) -o requirements.frozen.txt

Modifying --all-extras to include either an individual optional dependency group or all of them. See the pyproject.toml file for more information.

This project uses Prefect for workflow orchestration, for it's lightweight approach to running experiments from a UI and compatibility with single-node deployments.