# .gitignore for a bioinformatics project — copy to the project root as `.gitignore`.
#
# Principle (Noble 2009, Wilson 2017): version-control ONLY hand-edited files.
# Everything under results/ is regenerable by `runall`, so it is ignored — then the
# few hand-edited files that live there (the driver, its README, the lab notebook)
# are allow-listed back. Order matters: a file cannot be re-included while a parent
# directory is still excluded, so directories are re-included before their files.
#
# NOTE: git only treats `#` as a comment at the START of a line. Never put a comment
# on the same line as a pattern — it becomes part of the pattern and silently breaks.

# --- Raw data: large, immutable, deposited to a repository; never in git ---------
data/raw/
*.fastq
*.fastq.gz
*.fq.gz
*.fasta.gz
*.bam
*.bai
*.sam
*.cram

# --- Environments / caches -------------------------------------------------------
.pixi/
.venv/
__pycache__/
*.pyc

# --- results/: ignore generated outputs, keep hand-edited files ------------------
# Ignore everything directly under results/ ...
results/*
# ... but keep the dated decision log (it is hand-edited) ...
!results/lab_notebook.md
# ... and descend into experiment dirs so their files can be allow-listed below.
!results/*/

# Ignore everything inside each experiment dir ...
results/*/*
# ... except the hand-edited driver, summarize step, workflow, and README.
!results/*/runall
!results/*/summarize
!results/*/summarize.py
!results/*/*.smk
!results/*/README.md
# provenance.txt is written by runall (regenerable) -> stays ignored.
# Per-stage output dirs (qc/, assembly/, bins/, ...) stay ignored automatically.

# --- Working notes stay local; tasks/METHODS.md is analysis provenance ---------
tasks/*
!tasks/METHODS.md

# --- Compiled third-party tools in bin/ (track only your own wrappers) -----------
bin/checkm
bin/*.bin

# Application builds, browser checks, and local credentials.
node_modules/
dist/
dist-python/
site/
.env
.env.*
*.egg-info/
.pytest_cache/
.ruff_cache/
.mypy_cache/
test-results/
playwright-report/
.memd/
memory.md
packages/python/src/syntviz/_assets/
