/EpiCode

Code to analyze projects of the research group "Cellular excitability and neuronal network dynamics" at ICM, Paris

Primary LanguageMATLABGNU General Public License v3.0GPL-3.0

The EpiCode repository has been moved to the Paris Brain Institute (ICM), where we can better maintain and further develop it. Please update your links to: https://gitlab.com/icm-institute/iconics/EpiCode

Thank you, and see you there!

         _            _        _           _             _            _            _      
        /\ \         /\ \     /\ \       /\ \           /\ \         /\ \         /\ \    
       /  \ \       /  \ \    \ \ \     /  \ \         /  \ \       /  \ \____   /  \ \   
      / /\ \ \     / /\ \ \   /\ \_\   / /\ \ \       / /\ \ \     / /\ \_____\ / /\ \ \  
     / / /\ \_\   / / /\ \_\ / /\/_/  / / /\ \ \     / / /\ \ \   / / /\/___  // / /\ \_\
    / /_/_ \/_/  / / /_/ / // / /    / / /  \ \_\   / / /  \ \_\ / / /   / / // /_/_ \/_/
   / /____/\    / / /__\/ // / /    / / /    \/_/  / / /   / / // / /   / / // /____/\    
  / /\____\/   / / /_____// / /    / / /          / / /   / / // / /   / / // /\____\/    
 / / /______  / / /   ___/ / /__  / / /________  / / /___/ / / \ \ \__/ / // / /______    
/ / /_______\/ / /   /\__\/_/___\/ / /_________\/ / /____\/ /   \ \___\/ // / /_______\   
\/__________/\/_/    \/_________/\/____________/\/_________/     \/_____/ \/__________/   

Analysis scripts for projects of the research group: "Cellular excitability and neuronal network dynamics" ICM, Paris

Goals

  • Make analyses easier by providing high-level functions for common analyses on our data.
  • Increase robustness and automatization of our analyses.
  • Develop and share code and analysis pipelines that are common between research projects.
  • Make analysis pipelines and parameters visible and comparable between projects.
  • Reduce repetition/duplication of code (and work)
  • Backup and version control, and a way to update between computers/servers.
  • Single solution for interfacing with in-house (MUSE) and external software (Spyking-Circus).
  • Synchronization between different recording systems and their annotation systems (NeuraLynx, MicroMed and Brainvision)
  • Facilitate use of FieldTrip.
  • Facilitate documentation and publication of methodology.

Design

  • A single MATLAB struct contains all settings.
  • This settings struct is passed to all functions, so that the analysis script stays clean.
  • Data, results and figures are saved in project-specific directories
  • Important steps in the analyses are read from file if done earlier, or forced to run again.
  • Processed data follows as much as possible FieldTrip conventions, making it easier to use FieldTrip at any point of the analysis pipeline. In fact, much of the code uses functions from FieldTrip, and EpiCode functions can be considered higher-level wrapper functions for FieldTrip functions.
  • Because many of our analyses revolve around events identified manually with MUSE, those are read into a MATLAB struct which is used to keep track of timings, and can be used to read/write markers created/read by MUSE.

Organization

EpiCode is organized as follows:

  • shared contains the main code, and their documentation, shared between projects
  • external contains code not made by me, and not within the EpiCode GNU license
  • development contains code in development, and old code, just in case
  • projects contains analysis projects. Each project contains:
    • One or more settings file(s) that contains all parameters using it the corresponding analysis script
    • An analysis script that calls EpiCode (and other) MATLAB functions, and i.e. loops over patients.
    • Optionally: An R script for statistical analyses
    • Optionally: A MATLAB and bash/SLURM script, for running analyses on the computing cluster

Dependencies

  • EpiCode relies heavily on FieldTrip, which should be on your MATLAB path, and regularly updated.
  • Spike analyses rely on Spyking-Circus.
  • The creation of markers/annotations in the data is done with in-house developed software (MUSE), and the functions and analysis pipeline reflects this.

Limitations and considerations

  • Use at your own risk.
  • The code is under heavy development, and will be (but will hopefully stabilize over time).
  • The code is aimed specifically at analysing intercranial data that is recorded from epileptic patients over the course of presurgical evaluation.
  • No data is or will ever be shared through this repository.

Reporting issues & Contributing

Code of Conduct

  • By participating in this project, you agree to abide by our code of conduct.

License

  • GNU GPL v3, see LICENSE for more details.
  • Files in External are shared according to their own license.
  • All contributions will conform to our LICENSE.