# Justfile for data generation tasks (data_gen directory)
# Run these commands from the repo root with: just -f data_gen/justfile <recipe>

# Use bash for commands
set shell := ["bash", "-cu"]

# Downloaders
download-uni:
	wget https://www.unimod.org/obo/unimod.obo -O data/UNIMOD.obo

download-uni-if-missing:
	test -f data/UNIMOD.obo || just download-uni

download-psi:
	wget https://purl.obolibrary.org/obo/mod.obo -O data/PSI-MOD.obo

download-psi-if-missing:
	test -f data/PSI-MOD.obo || just download-psi

download-gno:
	wget https://purl.obolibrary.org/obo/gno.obo -O data/GNOme.obo

download-gno-if-missing:
    test -f data/GNOme.obo || just download-gno

download-xlmod:
	wget https://purl.obolibrary.org/obo/xlmod.obo -O data/XLMod.obo

download-xlmod-if-missing:
	test -f data/XLMod.obo || just download-xlmod

download-all: download-uni download-psi download-gno download-xlmod
	@echo "All downloads complete!"

download-all-if-missing: download-uni-if-missing download-psi-if-missing download-gno-if-missing download-xlmod-if-missing
	@echo "All downloads complete!"

download: download-all-if-missing

# Individual generator recipes
gen-mono:
	uv run generator/gen_monosachs.py

gen-uni: download-uni-if-missing
	uv run generator/gen_unimod.py

gen-psi: download-psi-if-missing
	uv run generator/gen_psimod.py

gen-aa:
	uv run generator/gen_amino_acids.py

gen-frag:
	uv run generator/gen_fragment_ions.py

gen-pro:
	uv run generator/gen_proteases.py

gen-ref:
	uv run generator/gen_refmol.py

gen-delta:
	uv run generator/gen_neutral_deltas.py

gen-xlmod: download-xlmod-if-missing
	uv run generator/gen_xlmod.py

# Included in PSI-MOD download
gen-resid: download-psi-if-missing
	uv run generator/gen_resid.py

gen-gno: download-gno-if-missing
	uv run generator/gen_gno.py

gen-all: gen-mono gen-uni gen-psi gen-aa gen-frag gen-pro gen-ref gen-delta gen-xlmod gen-resid gen-gno
	@echo "All generators complete!"

gen: gen-all

update: download-all gen-all
