Skip to content

SIMURAN#

NB - there is an existing workflow management system for neuroimaging here https://nipype.readthedocs.io/en/latest/examples.html - can compare to this.
This is quite interesting, called GUIX - on scientific data journal.

Here is a paper on a tool - I should also definitely check this out https://www.nature.com/articles/nmeth.3041

The main aim of SIMURAN is to remove the need for people to code standard data management, file selection methods, batch coding, multiprocessing, etc. and simply focus on the analysis that they want to perform, facilitating performing large analyses on multi-region data.
To use it, one provides the program with a description of their data, how to load that data if it is not an already supported format, what analysis to perform on the data, and what to save from the analysis (by default it saves everything).
This is close, but not quite accurate anymore

The program is heavily inspired by:

  1. NeuroChaT - Considering cells, lfps, spatial data, etc. as singular objects and coding the relationship between them to perform analyses.
  2. Inviwo (https://inviwo.org/) - How to add your own custom code into a project. Inviwo's method is to provide you with a folder which you can simply drag and drop any additional analysis into, which is very convenient.
  3. Sumatra (https://neuralensemble.org/sumatra/) - Keeping track of the code used to produce analyses. Basically it stores extra information when the code is run about the system used, time that was taken, code version, etc.
  4. SpikeInterface (https://www.biorxiv.org/content/10.1101/796599v2) - The code is structured similarly to theirs, they aim to provide code that works with any spike sorting format. The idea here is to provide code that works with any electrophys format.
  5. Snakemake.
  6. MNE-python.

User stories#

  1. As a non-programmer, I want to open the UI and create a network using drop in boxes to analyse files.
  2. As a non-programmer, I want to be able to view parameters and results from within the UI.
  3. As a programmer, I want assistance to create tables and parameter files in the correct format for the program.
  4. As a programmer, I want to take advantage of program structure to speed up my development.

Diagram of architecture#

SIMURAN diagram

Possible things to talk to#

  1. NeuroChaT
  2. MNE
  3. Elephant
  4. NWB NC?

GUI requirements#

  1. Dynamically adding nodes either via another window or a popup menu.
  2. Support custom nodes.
  3. Set parameters on nodes and use these for computation.
  4. Show plots on right click.
  5. Show tooltips of variables.

https://github.com/hoffstadt/DearPyGui - dear py gui.

Considerations#

Paragraph from Shane#

The results will be graphically displayed, as will the processing method. A click and drag interface will allow processing flow-charts to be constructed and reconstructed while the consequent results are seamlessly displayed and updated. Multi-route and branched flow-charts will be possible, allowing for easy comparison of different processing methods and different processing parameters. Dialogue boxes will offer explanation and detailed customisation of processing units. The automation will be done within Python, which has the advantage that many of the analysis tools already have freely available Python implementations.

Handling extra requirements#

xarray deals with optional requirements - see their installation documentation.
Specifically this line too "If you are using pip to install xarray, optional dependencies can be installed by specifying extras. Instructions for both pip and conda are given below."

Idea#

Simplifying creating a reproducibile and managable data analysis and processing pipeline in neuroscience.