import config rule create_correlation_matrix_from_spikes: input: script = 'scripts/correlation_matrix_from_spikes.py', spikes = 'simulation_output/{simulator}/out_firings_after{t}h.dat', output: correlation = 'simulation_output/{simulator}/correlations_after{t}h.npy' params: t_start = config.t_start, t_stop = config.t_stop, bin_size = config.bin_size shell: """ python {input.script} --spikes "{input.spikes}" \ --output "{output.correlation}" \ --t_stop {params.t_stop} \ --t_start {params.t_start} \ --bin_size {params.bin_size} """ rule compare_polychrony_networks: input: script = "../scripts/{test}.py", matrix_a = 'simulation_output/C/correlations_after{t}h.npy', matrix_b = 'simulation_output/SpiNNaker/correlations_after{t}h.npy' output: temp('results/{test}_after{t}h.json') params: N = config.N, bin_num = config.bin_num shell: """ echo {params.is_connectivity} python {input.script} --matrix_a {input.matrix_a} \ --matrix_b {input.matrix_b} \ --output {output} \ --bin_num {params.bin_num} \ --N {params.N} \ """ rule score_to_dataframe: input: script = '../scripts/score_to_dataframe.py', data = 'results/{test}_after{t}h.json' output: 'results/{test}_after{t}h.csv' params: N = config.N, t_start = config.t_start, t_stop = config.t_stop, bin_size = config.bin_size, bin_num = config.bin_num, simulator_a = 'C', simulator_b = 'SpiNNaker' shell: """ python {input.script} --output "{output}" \ --input "{input.data}" \ --recording_window {wildcards.t} \ --N {params.N} \ --t_start {params.t_start} \ --t_stop {params.t_stop} \ --bin_size {params.bin_size} \ --bin_num {params.bin_num} \ --simulator_a {params.simulator_a} \ --simulator_b {params.simulator_b} \ --test {wildcards.test} """ rule merge_comparison_results: input: script = '../scripts/merge_dataframes.py', paths_file = 'results/' output: 'results/simulator_comparison.csv' shell: """ python {input.script} --input "{input.paths_file}" \ --output "{output}" """ rule scan: input: expand('results/{test}_after{t}h.csv', t=config.recording_window, test=config.test)