# An Overview of Open Source Deep Learning-Based Libraries for Neuroscience
## 3 Materials and Methods  
The large corpus of available open code makes it useful to specify what qualifies as a coding library or a framework rather than as a model accompanied by utilities for the present scope. In programming, a library is a collection of pre-coded functions and object definitions, often relying on one another and written to optimize programming for custom tasks. The functions are considered useful and unmodified across multiple unrelated programs and tasks. The main program at hand calls the library in the control flow specified by the end users. A framework is a higher level concept, akin to the library, but typically with pre-designed control flows in which custom code from the end users is inserted. In this review, a repository that simply collects a set of functions that defines and instantiates a deep learning model is not considered a library. On the contrary, a collection of notebooks that allows us to train, retrain, and test models with different architectures, also taking care of data preprocessing and preparation, fully meets the present scopes. The explicit definition given by the authors, their aims, and their level of maintenance were relevant in determining if a repository would be considered a library (or toolkit/toolbox, etc.). Open code for this review comprises code for proprietary languages such as MATLAB, the reasons being the compatibility with free languages such as GNU Octave ([[https://octave.org/](https://octave.org/)]([https://octave.org/](https://octave.org/))) (where noted), and the general value of open accessing algorithms. For the sake of the review, several resources were queried or scanned. Google Scholar was queried with:  
* Allintitle: \"deep learning library\";
* Allintitle: \"deep learning toolbox\";
* Allintitle: \"deep learning package\";
* \"deep learning library | toolbox | package\" AND \"neuroscience | neuroimaging\";
* \"deep learning library | toolbox | package\" AND \"EEG | EMG\";
* \"deep learning library\" OR \"deep learning toolbox\" OR \"deep learning package\" -\"MATLAB deep learning toolbox\"  
preserving the top 100 search results, ordered for relevance by the engine algorithm. On PubMed the queries were:  
* opensource (deep learning) AND (toolbox OR toolkit OR library);
* (EEG OR EMG OR MRI OR (brain (X-ray OR CT OR PT))) (deep learning) AND (toolbox OR toolkit OR library). Moreover, the site [[https://open-neuroscience.com/](https://open-neuroscience.com/)]([https://open-neuroscience.com/](https://open-neuroscience.com/)) was scanned specifically for \"deep learning\" mentions. Stemming citations and automatic recommendations from the engines of the hosting and publishing platforms were also analyzed. The time window was unrestricted in the past, given the recent development of the field, and the search was finished by 22 November 2022 for the selection of library entries. Data regarding library use were updated to 17 April 2023. The collected libraries were organized according to the principal aim, in the form of data type processed or the supporting function in the workflow, thus dividing:  
1. Libraries for sequence data (e.g., EMG, EEG)
2. Libraries for image data (including scalar volumes, 4-dimensional data as in fMRI, video)
3. Libraries and frameworks for further data types and abstractions (including data handling, evaluation, and cloud platforms) In each category, a set of three tables present separately the results related to the following library characteristics:  
1. Domain of application
2. Model engineering
3. Technology and sources  
The domain of application comprises the _Neuroscience area_, the _Data types_ handled, the provision of _Datasets_, and the machine learning _Task_ to which the library is dedicated. When available (73 entries out of 74), a publication is referenced for the library entry in the domain table.