-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
71 lines (61 loc) · 2.36 KB
/
Makefile
File metadata and controls
71 lines (61 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
.PHONY: help install test run clean
# Python
VENV_PYTHON := .venv/bin/python
PIP := .venv/bin/pip
# Diretórios
EXPERIMENTS_DIR := experiments
# ============================================================================
# COMANDOS PRINCIPAIS
# ============================================================================
help: ## Mostra esta mensagem de ajuda
@echo "================================================================"
@echo " Algoritmo Genético para Alinhamento Múltiplo de Sequências"
@echo "================================================================"
@echo ""
@echo "Comandos:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf " %-15s %s\n", $$1, $$2}'
@echo ""
install: ## Instala dependências
@echo "Instalando dependências..."
@test -d .venv || python3 -m venv .venv
@$(PIP) install --upgrade pip
@$(PIP) install -r requirements.txt
@echo "✓ Instalado!"
test: ## Executa testes
@$(VENV_PYTHON) -m pytest tests/ -v
run: ## Executa experimentos (use: make run SEQ=10 RUNS=3)
@$(VENV_PYTHON) run_all_experiments.py \
--max-sequences $(or $(SEQ),10) \
--num-runs $(or $(RUNS),3) \
--output-dir $(EXPERIMENTS_DIR)
analyze: ## Analisa último experimento
@LAST=$$(ls -t $(EXPERIMENTS_DIR) 2>/dev/null | head -1); \
if [ -n "$$LAST" ] && [ -f "$(EXPERIMENTS_DIR)/$$LAST/SUMMARY_REPORT.md" ]; then \
cat "$(EXPERIMENTS_DIR)/$$LAST/SUMMARY_REPORT.md"; \
else \
echo "Nenhum experimento encontrado. Execute: make run"; \
fi
visualize: ## Gera gráficos do último experimento
@LAST=$$(ls -t $(EXPERIMENTS_DIR) 2>/dev/null | head -1); \
if [ -n "$$LAST" ]; then \
mkdir -p visualizations/$$LAST; \
for run_dir in $(EXPERIMENTS_DIR)/$$LAST/*/run_1/; do \
if [ -f "$$run_dir/generation_history.csv" ]; then \
exp=$$(basename $$(dirname $$run_dir)); \
$(VENV_PYTHON) visualize_metrics.py "$$run_dir/generation_history.csv" \
--output-dir "visualizations/$$LAST/$$exp"; \
fi; \
done; \
echo "✓ Gráficos em: visualizations/$$LAST/"; \
else \
echo "Nenhum experimento encontrado."; \
fi
clean: ## Remove resultados
@read -p "Remover todos os experimentos? [y/N] " -n 1 -r; \
echo; \
if [[ $$REPLY =~ ^[Yy]$$ ]]; then \
rm -rf $(EXPERIMENTS_DIR) visualizations; \
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true; \
echo "✓ Limpo!"; \
fi