summaryrefslogtreecommitdiff
path: root/make/plot.make
diff options
context:
space:
mode:
Diffstat (limited to 'make/plot.make')
-rw-r--r--make/plot.make111
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 "$@~" "$@"
contact: Jan Huwald // Impressum