Wiki source code of Slow Wave Analysis Pipeline

Version 29.1 by denker on 2020/04/03 17:42

Hide last authors
robing 1.1 1 (% class="jumbotron" %)
2 (((
3 (% class="container" %)
4 (((
robing 9.1 5 = (% style="color:inherit" %)Slow Wave Analysis Pipeline(%%) =
robing 1.1 6
denker 22.2 7 (% class="wikigeneratedid" id="HUseCaseSGA2-SP3-002:IntegratingmultiscaledataA0inareproducibleandadaptablepipeline" %)
denker 26.1 8 (% style="color:inherit; font-size:24px" %)**Use Case SGA2-SP3-002: Integrating multi-scale data in a reproducible and adaptable pipeline**
denker 25.1 9
10 To be discussed Author order, contributions,...:
11
12 Experiments: ...?
13
14 Implementation: Robin Gutzen^^1,*^^, Elena Pastorelli^^2,*^^, ...
15
denker 28.1 16 Lead: Michael Denker^^1^^, Sonja Grün^^1^^, Pier Stanislao Paolucci^^2^^, Andrew Davison?
denker 25.1 17
18 ,,1) Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany,,
19
20 ,,2) Dipartimento di Fisica, Università di Cagliari and INFN Sezione di Cagliari, Italy,,
21
22
robing 1.1 23 )))
24 )))
25
26 (% class="row" %)
27 (((
28 (% class="col-xs-12 col-sm-8" %)
29 (((
denker 23.1 30 == Flexible workflows to generate multi-scale analysis scenarios ==
robing 1.1 31
denker 23.1 32 This Collab is aimed at experimental and computational neuroscientists interested in the usage of the Neo and Elephant tools in performing data analysis of spiking data.
robing 1.1 33
robing 10.1 34 == Executing the pipeline ==
robing 6.1 35
robing 10.1 36 [[image:pipeline_flowchart.png]]
robing 6.1 37
denker 23.1 38 === In the collab (beta) ===
robing 8.1 39
robing 19.1 40 * **Copy the collab drive to your drive space**
41 ** Open the Drive from the left menu
42 ** Select the folders 'pipeline' and 'datasets'
robing 20.1 43 ** Select 'Copy', and then 'My Library' from the dropdown 'Other Libraries'
robing 19.1 44
45 * **Start a Jupyter Hub instance **
denker 23.2 46 In another browser, open [[https:~~/~~/lab.ebrains.eu>>https://lab.ebrains.eu]]
47
robing 10.1 48 * **Edit the config files**
49 Each stage has a config file to specify which analysis/processing blocks to execute and which parameters to use. General and specific information about the blocks and parameters can found in the README and config files. The default values are set for an example dataset (ECoG, anesthetized mouse, IDIBAPS [ref]).
50 ** stage01_data_entry: [README.md](), [config.yaml]()
51 ** stage02_preprocessing: [README.md](), [config.yaml]()
52 ** stage03_trigger_detection: [README.md](), [config.yaml]()
53 ** stage04_wavefront_detection: [README.md](), [config.yaml]()
54 ** stage05_wave_characterization: [README.md](), [config.yaml]()
55
robing 20.1 56 * **Run the notebook**
57 In the jupyter hub, navigate to `drive/My Libraries/My Library/pipeline/showcase_notebooks/run_snakemake_in_collab.ipynb`, or where you copied the 'pipeline' folder to.
robing 19.1 58 * Follow the notebook to install the required packages into your Python kernel, set the output path, and execute the pipeline with snakemake.
robing 20.1 59
robing 10.1 60 * **Coming soon**
61 ** Use of KnowledgeGraph API
62 ** Provenance Tracking
63 ** HPC support
64
denker 23.1 65 === Local execution ===
robing 10.1 66
67 * **Get the code**
68 The source code of the pipeline is available via Github: [INM-6/wavescalephant]('https:~/~/github.com/INM-6/wavescalephant') and can be cloned to your machine ([how to use Github]()).
69
70 * **Build the Python environment**
71 In the wavescalephant repository, there is an environment file (`pipeline/envs/wavescalephant_env.yaml`) specifying the required packages and versions. To build the environment, we recommend using *conda* ([how to get started with conda]()).
epastorelli 15.2 72 `conda env create ~-~-file /envs/wavescalephant_env.yml`.
robing 10.1 73
74 * **Edit the settings**
75 The settings file specifies the path to the output folder, where results are saved to. Open the template file `pipeline/settings_template.py`, set the `output_path` to the desired path, and save it as `pipeline/settings.py`.
76
77 * **Edit the config files**
78 Each stage has a config file to specify which analysis/processing blocks to execute and which parameters to use. Edit the config template files `pipeline/stageXX_<stage_name>/config_template.yaml` according to your dataset and analysis goal, and save them as `pipeline/stageXX_<stage_name>/config.yaml`. A detailed description of the available parameter settings and their meaning is commented in the template files, and a more general description of the working mechanism of each stage can be found in the respective README file `pipeline/stageXX_<stage_name>/README.md`.
79
80 * **Enter a dataset**
81 see `pipeline/stage01_data_entry/README.md`
82
83 * **Run the pipeline (-stages)**
84 To run the pipeline with snakemake ([intro to snakemake]()) activate the Python environment `conda activate wavescalephant_env`, make sure you are in the working directory `pipeline/`, and call `snakemake` to run the entire pipeline.
85 To (re-)execute an individual stage, you can navigate to the corresponding stage folder and call the `snakemake` command there. For running an individual stage, you may need to manually set the path for input file for the stage (i.e. the output file of the previous stage) in the config file `INPUT: /path/to/file`.
86
87 == Accessing and using the results ==
88
89 All results are stored in the path specified in the `settings.py` file. The folder structure reflects the structuring of the pipeline into stages and blocks. All intermediate results are stored as `.nix` files using the Neo data format ([Neo]()) and can be loaded with `neo.NixIO('/path/to/file.nix').read_block()` ([documentation]()).
90 Additionally, most blocks produce a figure, and each stage a report file, to give an overview of the execution log, parameters, intermediate results, and to help with debugging.
91 The final stage (*stage05_wave_characterization*) stores the results as pandas.DataFrames ([pandas]()) in `.csv` files, separately for each measure as well as in a combined dataframe for all measures.
92
93 == References ==
94
95
denker 22.1 96 == License (to discuss) ==
97
98 All text and example data in this collab is licensed under Creative Commons CC-BY 4.0 license. Software code is licensed under a modified BSD license.
99
denker 29.1 100 [[image:https://i.creativecommons.org/l/by/4.0/88x31.png||style="float:left"]]
101
robing 10.1 102 == Acknowledgments ==
103
denker 22.1 104 This open source software code was developed in part or in whole in the Human Brain Project, funded from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 785907 (Human Brain Project SGA2).
robing 1.1 105 )))
106
107
108 (% class="col-xs-12 col-sm-4" %)
109 (((
110 {{box title="**Contents**"}}
111 {{toc/}}
112 {{/box}}
113
114
115 )))
116 )))