Skip to content

Scientific Python Environment for Neurophysiology

License

Notifications You must be signed in to change notification settings

ctigaret/scipyen

Repository files navigation

Welcome to Scipyen

Scipyen (Scientific python environment for neuroscience) is an open-source environment for the analysis of electrophysiology and microscopy imaging data using Python programming language.

Scipyen provides a framework similar to an Integrated Development Environment (IDE)1, where the user creates their own data analysis workflows or pipelines according to their need. Instead of offering a preset collection of analysis scenarios2, Scipyen integrates third party numerical analysis software, a set of GUI tools for the visualization of electrophysiology3, microscopy4, and tabular5 data, and provides a mechanism to run your own Python scripts6.

THIS SOFTWARE IS PROVIDED AS IS AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Main features

  • Graphical User Interface(GUI) with
    • read-only7 access to the file system
    • a dynamic view into the workspace variables8
    • a command history viewer9
    • viewers for data objects
    • script manager10
  • A Python console11
  • Possibility to run external python processes via an "External console", and also accessible via jupyter notebooks).
  • A system for data plotting (via matplotlib, seaborn, pyqtgraph) that can be extended to use other libraries12.
  • A script manager13 for user-written Python code6.

Getting started

Scipyen should be used inside a virtual Python environment which allows the local installation of 3rd party Python packages without interfering with the host computer.

Before using Scipyen, follow these steps:

  1. Clone the Scipyenv repository:

    git clone github.com/ctigaret/scipyen.git
    
  2. Create a virtual python environment, see doc/install/INSTALL.md for details.

  3. Activate the virtual environment then simply run the scipyen.py script located in the top scipyen directory, e.g.:

python ~/scipyen/scipyen.py

Author:

Cezar M. Tigaret cezar.tigaret@gmail.com, tigaretc@cardiff.ac.uk

Distributed under GNU General Public License v.3.0 (GPLv3)

Scipyen Screenshot Scipyen session with:

  1. The main window, with workspace viewer ("User variables"), file system viewer and command history.
  2. The console
  3. The script manager
  4. Dictionary viewer (DataViewer_0)
  5. Electrophysiology data viewer (SignalViewer_0)

Footnotes

  1. See Spyder for a comprehensive scientific python environment and Eric for Python programming with a wider purpose. Also, see GNU Octave, Scilab, Matlab and Sage for scientific programming environments 'outside' the Python universe.

  2. Scipyen does contain some example analyses workflows e.g. for mEPSC analysis, action potential analysis, LTP, and two-photon line scanning for fluorescence Ca^2+^ imaging. These workflows are specific to the author's lab environment and they are in continuous development.

  3. Electrophysiology data is represented using NeuralEnsemble's python neo package.

  4. For for a more extensive, open source, software for image analysis see, for example, ImageJ/Fiji .

  5. DataFrame objects from Python pandas package and matrices.

  6. Scipyen's author tries hard to avoid re-inventing the wheel, therefore Scipyen does not provide a code editor for Python. While any text editor can be used, there are several powerful open source editors available e.g., Kate, vim, GNU Emacs, NEdit (the Nirvana Editor), Atom, to name just a few. 2 3

  7. This is by design. Following the principle of not reinventing the wheel6, Scipyen has no functionality to create/delete files and directories, apart from reading/writing data objects to the disk. Scipyen is intended to be used in a Desktop environment with tools to navigate and modify the file system, and gives the possibility to open the current working directory in a desktop tool via a context menu. 2

  8. Provides access to variables created during a session, including instances of data type-specific viewers, and updates itself whenever variables are created, modified, or removed. The items in the viewer are actionable via a context menu.

  9. Commands are grouped by session, and can be replayed by double clicking, dragging into the console, or copy then pasted in a text editor to create scripts.

  10. The Script manager simply provides a convenience to collect python scripts so they are readily available across sessions.

  11. Scipyen's console is based on jupyter qtconsole, and gives access to the "user workspace"7 and various modules (either part of Scipyen, or installed in your Python environment). To keep things "clean", the workspace viewer shows only the variables created since the start of the session.

  12. For more extensive data plotting applications see Veusz, SciDaVis, LabPlot2, XmGrace, and not least the venerable GNU Plot, in addition to a galaxy of Python-based data visualization frameworks. Python-based visualization frameworks can be used from within Scipyen's console as long as they provide modules and extensions available to Scipyen's python environment (this typcially required their installation (inside the environment in which Scipyen is used).

  13. The scripts are written in Python language and can be located anywhere in the file system. They typically are meant to be used within a Scipyen session, and therefore may depend on modules and packages installed inside the virtual Python environment where Scipyen runs. Some scripts may use modules already loaded (or imported) in a Scipyen session, and available at the Scipyen console. Therefore, such scripts are not guaranteed to run in an independent Python session, although they can be written to enable this.

About

Scientific Python Environment for Neurophysiology

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages