from helpers import original_data_path, chu2014_path area_list = ['V1', 'V2', 'VP', 'V3', 'V3A', 'MT', 'V4t', 'V4', 'VOT', 'MSTd', 'PIP', 'PO', 'DP', 'MIP', 'MDP', 'VIP', 'LIP', 'PITv', 'PITd', 'MSTl', 'CITv', 'CITd', 'FEF', 'TF', 'AITv', 'FST', '7a', 'STPp', 'STPa', '46', 'AITd', 'TH'] population_list = ['23E', '23I', '4E', '4I', '5E', '5I', '6E', '6I'] LOAD_ORIGINAL_DATA = True ORIGINAL_SIM_LABELS = {'all': ['533d73357fbe99f6178029e6054b571b485f40f6', '0adda4a542c3d5d43aebf7c30d876b6c5fd1d63e', '33fb5955558ba8bb15a3fdce49dfd914682ef3ea', '3afaec94d650c637ef8419611c3f80b3cb3ff539', '99c0024eacc275d13f719afd59357f7d12f02b77' '783cedb0ff27240133e3daa63f5d0b8d3c2e6b79', '380856f3b32f49c124345c08f5991090860bf9a3', '5a7c6c2d6d48a8b687b8c6853fb4d98048681045', 'c1876856b1b2cf1346430cf14e8d6b0509914ca1', 'a30f6fba65bad6d9062e8cc51f5483baf84a46b7', '1474e1884422b5b2096d3b7a20fd4bdf388af7e0', 'f18158895a5d682db5002489d12d27d7a974146f', '08a3a1a88c19193b0af9d9d8f7a52344d1b17498', '5bdd72887b191ec22a5abcc04ca4a488ea216e32'], 'Fig1': None, 'Fig2': ['533d73357fbe99f6178029e6054b571b485f40f6', '0adda4a542c3d5d43aebf7c30d876b6c5fd1d63e', '33fb5955558ba8bb15a3fdce49dfd914682ef3ea'], 'Fig3': '33fb5955558ba8bb15a3fdce49dfd914682ef3ea', 'Fig4': ['33fb5955558ba8bb15a3fdce49dfd914682ef3ea', '1474e1884422b5b2096d3b7a20fd4bdf388af7e0', '99c0024eacc275d13f719afd59357f7d12f02b77', 'f18158895a5d682db5002489d12d27d7a974146f', '08a3a1a88c19193b0af9d9d8f7a52344d1b17498', '5bdd72887b191ec22a5abcc04ca4a488ea216e32'], 'Fig5': ['3afaec94d650c637ef8419611c3f80b3cb3ff539', '99c0024eacc275d13f719afd59357f7d12f02b77'], 'Fig6': ['33fb5955558ba8bb15a3fdce49dfd914682ef3ea', '5bdd72887b191ec22a5abcc04ca4a488ea216e32', '99c0024eacc275d13f719afd59357f7d12f02b77', '3afaec94d650c637ef8419611c3f80b3cb3ff539'], 'Fig7': ['99c0024eacc275d13f719afd59357f7d12f02b77'], 'Fig8': ['33fb5955558ba8bb15a3fdce49dfd914682ef3ea', '783cedb0ff27240133e3daa63f5d0b8d3c2e6b79', '380856f3b32f49c124345c08f5991090860bf9a3', '5a7c6c2d6d48a8b687b8c6853fb4d98048681045', 'c1876856b1b2cf1346430cf14e8d6b0509914ca1', 'a30f6fba65bad6d9062e8cc51f5483baf84a46b7', '1474e1884422b5b2096d3b7a20fd4bdf388af7e0', 'f18158895a5d682db5002489d12d27d7a974146f', '08a3a1a88c19193b0af9d9d8f7a52344d1b17498', '5bdd72887b191ec22a5abcc04ca4a488ea216e32', '99c0024eacc275d13f719afd59357f7d12f02b77'], 'Fig9': ['99c0024eacc275d13f719afd59357f7d12f02b77']} if LOAD_ORIGINAL_DATA: DATA_DIR = original_data_path SIM_LABELS = ORIGINAL_SIM_LABELS else: from network_simulations import create_label_dict from config import data_path DATA_DIR = data_path SIM_LABELS = create_label_dict() if DATA_DIR is None: raise TypeError("The path to the data files is None. " "Please define the data path.") rule all: input: 'Fig1_model_overview.eps', 'Fig2_bistability.eps', 'Fig3_ground_state_chi1.eps', 'Fig4_metastability.eps', 'Fig5_ground_state.eps', 'Fig6_comparison_exp_spiking_data.eps', 'Fig7_temporal_hierarchy.eps', 'Fig8_interactions.eps', 'Fig9_laminar_interactions.eps' include: './Snakefile_preprocessing' rule Fig2_bistability: input: expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis/pop_rates.json'), simulation=SIM_LABELS['Fig2']) output: 'Fig2_bistability.eps' shell: 'python3 Fig2_bistability.py' rule Fig3_ground_state_chi1: input: os.path.join(DATA_DIR, SIM_LABELS['Fig3'], 'Analysis/pop_rates.json'), os.path.join(DATA_DIR, SIM_LABELS['Fig3'], 'Analysis/pop_LvR.json'), os.path.join(DATA_DIR, SIM_LABELS['Fig3'], 'Analysis/corrcoeff.json'), expand(os.path.join(DATA_DIR, SIM_LABELS['Fig3'], 'recordings', '-'.join((SIM_LABELS['Fig3'], 'spikes-{area}-{pop}.npy'))), area=['V1', 'V2', 'FEF'], pop=population_list), expand(os.path.join(DATA_DIR, SIM_LABELS['Fig3'], 'Analysis', 'rate_time_series_full', 'rate_time_series_full_{area}.npy'), area=['V1', 'V2', 'FEF']), expand(os.path.join(DATA_DIR, SIM_LABELS['Fig3'], 'Analysis', 'rate_time_series_auto_kernel', 'rate_time_series_auto_kernel_{area}.npy'), area=['V1', 'V2', 'FEF']), output: 'Fig3_ground_state_chi1.eps' shell: 'python3 Fig3_ground_state_chi1.py' rule Fig4_theory_calculations: output: 'Fig4_theory_data/results_{cc_weights_factor}.npy' shell: 'python3 Fig4_theory.py {wildcards.cc_weights_factor}' rule Fig4_metastability: input: expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'rate_time_series_full', 'rate_time_series_full_V1.npy'), simulation=SIM_LABELS['Fig4']), expand('Fig4_theory_data/results_{cc_weights_factor}.npy', cc_weights_factor=[1.0, 1.8, 1.9, 2., 2.1, 2.5]) output: 'Fig4_metastability.eps' shell: 'python3 Fig4_metastability.py' rule Fig5_ground_state: input: os.path.join(DATA_DIR, SIM_LABELS['Fig5'][1], 'Analysis', 'pop_rates.json'), os.path.join(DATA_DIR, SIM_LABELS['Fig5'][1], 'Analysis', 'pop_LvR.json'), os.path.join(DATA_DIR, SIM_LABELS['Fig5'][1], 'Analysis', 'corrcoeff.json'), expand(os.path.join(DATA_DIR, SIM_LABELS['Fig5'][0], 'recordings', '-'.join((SIM_LABELS['Fig5'][0], 'spikes-{area}-{pop}.npy'))), area=['V1', 'V2', 'FEF'], pop=population_list), expand(os.path.join(DATA_DIR, SIM_LABELS['Fig5'][1], 'Analysis', 'rate_time_series_full', 'rate_time_series_full_{area}.npy'), area=['V1', 'V2', 'FEF']), expand(os.path.join(DATA_DIR, SIM_LABELS['Fig5'][1], 'Analysis', 'rate_time_series_auto_kernel', 'rate_time_series_auto_kernel_{area}.npy'), area=['V1', 'V2', 'FEF']), output: 'Fig5_ground_state.eps' shell: 'python3 Fig5_ground_state.py' rule Fig6_comparison_exp_spiking_data: input: expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'power_spectrum_subsample', 'power_spectrum_subsample_V1.npy'), simulation=SIM_LABELS['Fig6']), expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'rate_histogram', 'rate_histogram_V1.npy'), simulation=SIM_LABELS['Fig6']), expand(os.path.join(DATA_DIR,'{simulation}', 'Analysis', 'rate_histogram', 'rate_histogram_V1.npy'), simulation=SIM_LABELS['Fig6'][:2] + SIM_LABELS['Fig6'][-1:]), os.path.join(chu2014_path, 'Analysis', 'spike_data_1mm.npy'), os.path.join(chu2014_path, 'Analysis', 'neuron_depths.npy'), os.path.join(chu2014_path, 'Analysis', 'power_spectrum_freq.npy'), os.path.join(chu2014_path, 'Analysis', 'power_spectrum_V1_full.npy'), os.path.join(chu2014_path, 'Analysis', 'power_spectrum_V1_low_fluct.npy'), os.path.join(chu2014_path, 'Analysis', 'power_spectrum_V1_high_fluct.npy'), os.path.join(chu2014_path, 'Analysis', 'rate_time_series_time.npy'), os.path.join(chu2014_path, 'Analysis', 'rate_time_series_V1.npy'), os.path.join(chu2014_path, 'Analysis', 'spectrogram_freq.npy'), os.path.join(chu2014_path, 'Analysis', 'spectrogram_Sxx.npy'), os.path.join(chu2014_path, 'Analysis', 'spectrogram_time.npy'), os.path.join(chu2014_path, 'Analysis', 'rate_histogram_bins.npy'), os.path.join(chu2014_path, 'Analysis', 'rate_histogram_low.npy'), os.path.join(chu2014_path, 'Analysis', 'rate_histogram_high.npy'), os.path.join(chu2014_path, 'Analysis', 'rate_histogram_full.npy') output: 'Fig6_comparison_exp_spiking_data.eps' shell: 'python3 Fig6_comparison_exp_spiking_data.py' rule Fig7_temporal_hierarchy: input: expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'rate_time_series_full', 'rate_time_series_full_{area}.npy'), simulation=SIM_LABELS['Fig7'], area=area_list), expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'cross_correlation', 'cross_correlation_{area1}_{area2}.npy'), simulation=SIM_LABELS['Fig7'], area1=area_list, area2=area_list), output: 'Fig7_temporal_hierarchy.eps' shell: 'python3 Fig7_temporal_hierarchy.py' rule Fig8_interactions: input: expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'functional_connectivity_synaptic_input.npy'), simulation=SIM_LABELS['Fig8']), expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'FC_synaptic_input_communities.json'), simulation=SIM_LABELS['Fig8'][-1]), 'Fig8_exp_func_conn.csv', 'FC_exp_communities.json', expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'functional_connectivity_bold_signal.npy'), simulation=SIM_LABELS['Fig8'][-1]) output: 'Fig8_interactions.eps' shell: 'python3 Fig8_interactions.py' rule Fig9_laminar_interactions: input: expand(os.path.join(DATA_DIR, '{simulation}', 'Analysis', 'granger_causality', 'granger_causality_{area}_{pop}.json'), simulation=SIM_LABELS['Fig9'], area=area_list, pop=population_list), 'Fig9_{}_significant_channels.json'.format(SIM_LABELS['Fig9'][0]), 'Fig9_{}_HL_interactions.eps'.format(SIM_LABELS['Fig9'][0]), 'Fig9_{}_HZ_interactions.eps'.format(SIM_LABELS['Fig9'][0]), 'Fig9_{}_LH_interactions.eps'.format(SIM_LABELS['Fig9'][0]), 'Fig9_{}_HL_paths.eps'.format(SIM_LABELS['Fig9'][0]), 'Fig9_{}_HZ_paths.eps'.format(SIM_LABELS['Fig9'][0]), 'Fig9_{}_LH_paths.eps'.format(SIM_LABELS['Fig9'][0]), output: 'Fig9_laminar_interactions.eps' shell: 'python3 Fig9_laminar_interactions.py' rule Fig9_significant_channels: input: expand(os.path.join(DATA_DIR, '{{simulation}}', 'Analysis', 'granger_causality', 'granger_causality_{area}_{pop}.json'), area=area_list, pop=population_list) output: 'Fig9_{simulation}_significant_channels.json', 'Fig9_tex_files/{simulation}_lw_HL_interactions.tex', 'Fig9_tex_files/{simulation}_lw_LH_interactions.tex', 'Fig9_tex_files/{simulation}_lw_HZ_interactions.tex' shell: 'python3 Fig9_significant_channels.py {} {{wildcards.simulation}}'.format(DATA_DIR) rule Fig9_interactions: input: 'Fig9_tex_files/{simulation}_lw_{type}_interactions.tex' output: 'Fig9_{simulation}_{type}_interactions.eps' shell: 'cd Fig9_tex_files &&' 'mv {wildcards.simulation}_lw_{wildcards.type}_interactions.tex lw_{wildcards.type}_interactions.tex &&' 'latex {wildcards.type}_interactions.tex &&' 'dvipdf {wildcards.type}_interactions.dvi &&' 'pdftops -eps {wildcards.type}_interactions.pdf &&' 'mv {wildcards.type}_interactions.eps ../Fig9_{wildcards.simulation}_{wildcards.type}_interactions.eps' rule Fig9_path_analysis: input: expand(os.path.join(DATA_DIR, '{{simulation}}', 'Analysis', 'pop_rates.json'), area=area_list, pop=population_list) output: 'Fig9_tex_files/{simulation}_lw_HL_paths.tex', 'Fig9_tex_files/{simulation}_lw_LH_paths.tex', 'Fig9_tex_files/{simulation}_lw_HZ_paths.tex' shell: 'python3 Fig9_path_analysis.py {} {{wildcards.simulation}}'.format(DATA_DIR) rule Fig9_paths: input: 'Fig9_tex_files/{simulation}_lw_{type}_paths.tex' output: 'Fig9_{simulation}_{type}_paths.eps' shell: 'cd Fig9_tex_files &&' 'mv {wildcards.simulation}_lw_{wildcards.type}_paths.tex lw_{wildcards.type}_paths.tex &&' 'latex {wildcards.type}_paths.tex &&' 'dvipdf {wildcards.type}_paths.dvi &&' 'pdftops -eps {wildcards.type}_paths.pdf &&' 'mv {wildcards.type}_paths.eps ../Fig9_{wildcards.simulation}_{wildcards.type}_paths.eps'