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 data/staph/guide.json # 1>data/staph/pangraph.json
# 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*
|