aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 85c1b242004591cd54c201953ec23ea4927de9a4 (plain)
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
.PHONY:	all clean ecoli
.SUFFIXES:
.SECONDARY:

ROOT_DIR := data/synth
TGT_FILE := targets

DIRS := $(shell sed "/^\#.*$$/d" "$(TGT_FILE)")
DIRS := $(addprefix $(ROOT_DIR)/, $(DIRS))
STAT := $(addsuffix /algo_stats.json, $(DIRS))

figures := \
	figs/figure1.png

all: $(STAT)

# synthetic data

%seq.fa:
	@mkdir -p $(@D)
	@$(eval vars=$(subst _, ,$(@D)))
	@$(eval N=$(word 2,$(vars)))
	@$(eval T=$(word 3,$(vars)))
	@$(eval M=$(word 4,$(vars)))
	@$(eval H=$(word 5,$(vars)))
	@$(eval I=$(word 6,$(vars)))
	@$(eval X=$(word 7,$(vars)))
	@echo "generate    "$(@D);\
	pangraph generate -d $(@D) -L 10000 -m $(M) -N $(N) -T $(T) --rate_hgt $(H) --rate_indel $(I) --rate_transpose $(X)

%guide.json: %seq.fa
	@echo "cluster     "$(@D);\
	pangraph cluster -d $(@D) $^

.SECONDEXPANSION:
%pangraph.json: $$(@D)/guide.json
	@$(eval vars=$(subst ., ,$(@F)))
	@$(eval MU=$(word 1,$(vars)))
	@$(eval BETA=$(word 2,$(vars)))
	@echo "build       "$(@D) "("$(MU), $(BETA)")";\
	pangraph build -s -d $(@D) -m $(MU) -b $(BETA) $^ 1>$@ 2>$(@D)/build_$(MU)_$(BETA).log 

%algo_stats.json: %0.0.pangraph.json %500.0.pangraph.json %1000.0.pangraph.json %2000.0.pangraph.json %5000.0.pangraph.json %10000.0.pangraph.json %15000.0.pangraph.json
	@echo "assay       "$(@D);\
	./scripts/assess_algo.py $(@D)

# real data
ecoli:
	@echo "cluster    ecoli"; \
	pangraph cluster -d data/ecoli data/ecoli/assemblies/*.fna.gz
	@echo "build      ecoli"; \
	pangraph build -d data/ecoli -m 500 -b 0 data/ecoli/guide.json 1>data/ecoli/pangraph.json

staph:
	@echo "cluster    staph"; \
	pangraph cluster -d data/staph data/staph/assemblies/*.fna.gz
	@echo "build      staph"; \
	pangraph build -d data/staph -m 500 -b 0 -e 25 -w 1000 data/staph/guide.json
# 2>staph-e2500-w1000.err 1>staph-e2500-w1000.log
# figures

# figs/figure1.png: $(STAT)
# 	@echo "making figure 1";\
# 	./scripts/figure1.py $(ROOT_DIR)

clean:
	rm -rf $(ROOT_DIR)/*
	rm -rf data/ecoli/tmp*
	rm -rf data/staph/tmp*