diff options
Diffstat (limited to 'make/plot.make')
-rw-r--r-- | make/plot.make | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/make/plot.make b/make/plot.make new file mode 100644 index 0000000..514958d --- /dev/null +++ b/make/plot.make @@ -0,0 +1,111 @@ +define make-dir = +@mkdir -p $(shell dirname "$@") +endef + +# plot/$model/$seed/$prop_$from_$till_$step.replay.data +.SECONDEXPANSION: +plot/%.replay.data: SIM_MODEL=$(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f2) +plot/%.replay.data: PLOT_NAME=$(shell echo "$(@F)" | sed 's/\(.*\).replay.data/\1/' | cut -f1 -d_) +plot/%.replay.data: PLOT_INST=$(shell echo "$(@F)" | sed 's/\(.*\).replay.data/\1/' | cut -f2 -d_) +plot/%.replay.data: PLOT_FROM=$(shell echo "$(@F)" | sed 's/\(.*\).replay.data/\1/' | cut -f3 -d_) +plot/%.replay.data: SIM_UNTIL=$(shell echo "$(@F)" | sed 's/\(.*\).replay.data/\1/' | cut -f4 -d_) +plot/%.replay.data: PLOT_STEP=$(shell echo "$(@F)" | sed 's/\(.*\).replay.data/\1/' | cut -f5 -d_) +plot/%.replay.data: bin/$$(SIM_MODEL)-replay $$(shell dirname sim/%)/.$$(SIM_UNTIL).simulate + @[ -n "$(SIM_MODEL)" -a -n "$(PLOT_NAME)" -a -n "$(PLOT_INST)" -a -n "$(PLOT_FROM)" -a -n "$(SIM_UNTIL)" -a -n "$(PLOT_STEP)" ] || (echo "Missing parameter"; false) + @echo "Replaying $(PLOT_NAME) of instance $(PLOT_INST) of model $(SIM_MODEL) from $(PLOT_FROM) to $(SIM_UNTIL)" + @mkdir -p $(shell dirname $@) + @cd "$(shell dirname $@ | sed 's/^plot/sim/')" && ../../../$< $(PLOT_NAME) $(PLOT_INST) $(PLOT_FROM) $(SIM_UNTIL) $(PLOT_STEP) > ../../../$@~ + @mv "$@~" "$@" + +plot/%.replay.x11: plot/%.replay.data + echo "plot '$<' using 1:2 with lines" | gnuplot -persist + +plot/%.replay.pdf: PLOT_NAME=$(shell echo "$(@F)" | sed 's/\(.*\).replay.data/\1/' | cut -f1 -d_) +plot/%.replay.pdf: PLOT_INST=$(shell echo "$(@F)" | sed 's/\(.*\).replay.data/\1/' | cut -f2 -d_) +plot/%.replay.pdf: plot/%.replay.data R/plot.R + @echo "Plotting $@" + @R < R/plot.R --vanilla --args "$<" "$@~" "$(PLOT_NAME)" "$(PLOT_INST)" > /dev/null + @mv "$@~" "$@" + + +# plot/$model/$seed/$prop_$from_$till_$step.coarse_replay.data +.SECONDEXPANSION: +plot/%.coarse_replay.data: SIM_MODEL=$(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f2) +plot/%.coarse_replay.data: PLOT_NAME=$(shell echo "$(@F)" | sed 's/\(.*\).coarse_replay.data/\1/' | cut -f1 -d_) +plot/%.coarse_replay.data: PLOT_INST=$(shell echo "$(@F)" | sed 's/\(.*\).coarse_replay.data/\1/' | cut -f2 -d_) +plot/%.coarse_replay.data: PLOT_FROM=$(shell echo "$(@F)" | sed 's/\(.*\).coarse_replay.data/\1/' | cut -f3 -d_) +plot/%.coarse_replay.data: SIM_UNTIL=$(shell echo "$(@F)" | sed 's/\(.*\).coarse_replay.data/\1/' | cut -f4 -d_) +plot/%.coarse_replay.data: bin/$$(SIM_MODEL)-coarse_replay $$(shell dirname sim/%)/.$$(SIM_UNTIL).simulate + @[ -n "$(SIM_MODEL)" -a -n "$(PLOT_NAME)" -a -n "$(PLOT_INST)" -a -n "$(PLOT_FROM)" -a -n "$(SIM_UNTIL)" ] || (echo "Missing parameter"; false) + @echo "Coarsely replaying $(PLOT_NAME) of instance $(PLOT_INST) of model $(SIM_MODEL) from $(PLOT_FROM) to $(SIM_UNTIL)" + $(make-dir) + @cd "$(shell dirname $@ | sed 's/^plot/sim/')" && ../../../$< $(PLOT_NAME) $(PLOT_INST) $(PLOT_FROM) $(SIM_UNTIL) > ../../../$@~ + @mv "$@~" "$@" + +plot/%.coarse_replay.x11: plot/%.coarse_replay.data + echo "plot '$<' using 1:2 with lines" | gnuplot -persist + +plot/%.coarse_replay.pdf: PLOT_NAME=$(shell echo "$(@F)" | sed 's/\(.*\).coarse_replay.data/\1/' | cut -f1 -d_) +plot/%.coarse_replay.pdf: PLOT_INST=$(shell echo "$(@F)" | sed 's/\(.*\).coarse_replay.data/\1/' | cut -f2 -d_) +plot/%.coarse_replay.pdf: plot/%.coarse_replay.data R/plot.R + @echo "Plotting $@" + @R < R/plot.R --vanilla --args "$<" "$@" "$(PLOT_NAME)" "$(PLOT_INST)" > /dev/null + +# plot/$model/$seed/$from_$till.all_spikes.data +.SECONDEXPANSION: +plot/%.all_spikes.data: SIM_MODEL=$(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f2) +plot/%.all_spikes.data: PLOT_FROM=$(shell echo "$(@F)" | sed 's/\(.*\).all_spikes.data/\1/' | cut -f1 -d_) +plot/%.all_spikes.data: SIM_UNTIL=$(shell echo "$(@F)" | sed 's/\(.*\).all_spikes.data/\1/' | cut -f2 -d_) +plot/%.all_spikes.data: bin/all_spikes $$(shell dirname sim/%)/.$$(SIM_UNTIL).simulate + @[ -n "$(SIM_MODEL)" -a -n "$(PLOT_FROM)" -a -n "$(SIM_UNTIL)" ] || (echo "Missing parameter"; false) + @echo "Dumping all spikes of model $(SIM_MODEL) from $(PLOT_FROM) to $(SIM_UNTIL)" + $(make-dir) + @cd "$(shell dirname $@ | sed 's/^plot/sim/')" && ../../../$< $(PLOT_FROM) $(SIM_UNTIL) > ../../../$@~ + @mv "$@~" "$@" + +plot/%.all_spikes.x11: plot/%.all_spikes.data + @echo "plot '$<' using 1:2 with dots" | gnuplot -persist + +plot/%.all_spikes.pdf: plot/%.all_spikes.data R/plot_all.R + @echo "Plotting $@" + @R < R/plot_all.R --vanilla --args "$<" "$@~" &> /dev/null + @mv "$@~" "$@" + +# plot/$model/$seed/$time_.synapse_heatmap.data +.SECONDEXPANSION: +plot/%.synapse_heatmap.data: SIM_MODEL=$(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f2) +plot/%.synapse_heatmap.data: PLOT_NAME=$(shell echo "$(@F)" | sed 's/\(.*\).synapse_heatmap.data/\1/' | cut -f1 -d_) +plot/%.synapse_heatmap.data: SIM_TIME=$(shell echo "$(@F)" | sed 's/\(.*\).synapse_heatmap.data/\1/' | cut -f2 -d_) +plot/%.synapse_heatmap.data: bin/$$(SIM_MODEL)-coarse_replay $$(shell dirname sim/%)/.$$(SIM_UNTIL).simulate + @[ -n "$(SIM_MODEL)" -a -n "$(PLOT_FROM)" -a -n "$(SIM_TIME)" ] || (echo "Missing parameter"; false) + @echo "Heatmap of $(PLOT_NAME) model $(SIM_MODEL) at $(SIM_TIME)" + $(make-dir) + @cd "$(shell dirname $@ | sed 's/^plot/sim/')" && ../../../$< $(PLOT_NAME) $(SIM_TIME) $(SIM_TIME) > ../../../$@~ + @mv "$@~" "$@" + +plot/%.synapse_heatmap.pdf: plot/%.synapse_heatmap.data R/plot_all.R + @echo "Plotting $@" + @R < R/hm.R --vanilla --args "$<" "$@~" &> /dev/null + @mv "$@~" "$@" + + + +# plot/$model/$seed/$prop_$from_$till_$step.replay_mean.data +.SECONDEXPANSION: +plot/%.replay_mean.data: plot/%.replay.data + @echo Compute mean over $< + @(echo "scale=10"; grep -v '^#' $< | cut -f2- | tr "\t" "+" \ + | sed 's/e/*10^/g' | sed 'ss\(.*\)s(\1)/'$$( \ + grep -v '^#' $< | head -n1 | tr -dc "\t" | wc -c \ + )'s') | bc > $@.raw + @grep -v '^#' $< | cut -f1 | paste - $@.raw > $@~ + @mv "$@~" "$@" + +plot/%.replay_mean.x11: plot/%.replay_mean.data + echo "plot '$<' using 1:2 with lines" | gnuplot -persist + +plot/%.replay_mean.pdf: PLOT_NAME=$(shell echo "$(@F)" | sed 's/\(.*\).replay_mean.data/\1/' | cut -f1 -d_) +plot/%.replay_mean.pdf: plot/%.replay_mean.data R/plot.R + @echo "Plotting $@" + @R < R/plot.R --vanilla --args "$<" "$@~" "$(PLOT_NAME)" "0" > /dev/null + @mv "$@~" "$@" |