-
Notifications
You must be signed in to change notification settings - Fork 1
Tech Stack & Environment
Nasrul Huda edited this page Dec 22, 2025
·
5 revisions
- OS: Linux / macOS / WSL2 (Windows native is doable but more painful for bio libs)
- Python: 3.12 (best compatibility across scanpy/anndata/torch stacks)
-
Package manager:
uv, Installation see : https://docs.astral.sh/uv/getting-started/installation/ - Compute: CPU is fine for Milestone 2. GPU is for Milestone 3.
Data + scientific
-
numpy,pandas,scipy -
pyarrow(parquet) matplotlib
Single-cell / spatial
anndatascanpy-
squidpy(spatial utilities; optional but helpful)
General
-
hydrafor managing configs tqdm-
pydantic(optional, great for schema validation) -
rich(optional, nicer logs)
torchpytorch-lightningtransformersdatasetsaccelerate-
peft(if doing parameter-efficient tuning)
-
ty(lint) [Strongly recommended] [For installation see: https://docs.astral.sh/ty/installation/] -
black(format) [Strongly recommended] Alternative: Useruffbut requires more setup. pre-commit
uv init
uv venv
uv syncThis will create a pyproject.toml for tracking dependencies. For adding a dependency, instead of doing a pip install [dep], do uv add [dep]. This will automatically install the dependency and get listed in the [depedencies] in the pyproject.toml
Adopt a strict rule: every pipeline step produces artifacts + a companion doc.
Example mapping:
-
notebooks/preprocessing.ipynb→docs/preprocessing_notes.md -
notebooks/partitioning.ipynb→docs/partitioning_strategy.md -
notebooks/stats.ipynb→docs/client_stats_summary.md
And each doc starts with:
## Depends On
- docs/data_dictionary.md
- data/processed/genes.txt
- data/processed/label_map.json