Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Google Summer of Code program provides a stipend for university students who want to spend a summer contributing code to open-source projects. Open Ephys participated as a mentoring organization in 2016, and we're applying again in 2017but we were not accepted for the 2017 program. We'll know by February 27th whether or not we've been accepted.Below is try again in 2018. Until then, this page will serve as a list of projects that would be extremely beneficial to our user base, and which could be completed in a 12-week period

Getting started

If you're new to Open Ephys, we recommend reading through our main website, this wiki, and our google group, or just email info@open-ephys.org and let us know what projects you might be interested in working on. You should also download our software and work your way through this Tutorial

To start working with our code, please work with the newer, plugin-based code base at https://github.com/open-ephys/plugin-GUI. Most of the open issues and bugs are still located in the repository of our slightly older non-plugin software at https://github.com/open-ephys/GUI/issues.

If you haven't already, you should read through the GSoC Student Manual. The 2017 student application window is March 20th through April 3rd.

Please use info@open-ephys.org for all communication related to GSoC. Do not email open-ephys@googlegroups.com unless you have a specific question about the software.

Application instructions

You'll officially apply through Google starting March 20th. The information on this page is intended to help you decide if you'd like to develop a proposal with us.

Open Ephys is looking for students to help us improve our GUI, an open-source data acquisition application used by neuroscientists. You'll have the opportunity to contribute code that will be applied immediately to real experiments in labs around the world, as well as to learn about the scientific motivations that drove us to create Open Ephys.

The only prerequisite is proficiency in C++, as demonstrated through coursework, code samples, and discussions with potential mentors. Experience with signal processing, data visualization, machine learning, embedded systems, and/or the Juce framework may be helpful, but are not necessary. Our software runs on Windows, Mac, and Linux, so you'll be able to work with the OS of your choice.

To start developing your proposal with Open Ephys, please send the following information to info@open-ephys.org:

...


...

1

...

.

...

Proposal ideas

Below is a list of potential projects for GSoC students. This is just a subset of the many possibilities, so feel free to suggest your own ideas as well. This list will also be useful for anyone else that's looking for ways to contribute to the GUI.

1. Julia plugin module

Description: Creating custom processing modules for the Open Ephys GUI currently requires knowledge of C++. However, most scientists prefer to write code in high-level languages, such as Python and Matlab. Julia is a relatively new language for scientific computing that combines a syntax similar to Matlab with the speed of compiled C++. It's easy to call Julia code from a C++ application using the Julia C++ interface. In order to take advantage of the vast amount of signal processing code that's been written by neuroscientists, and to make it easier for users to modify the GUI, we'd like to make it possible to run Julia code directly within our software. Julia modules could be used for such applications as detecting patterns in spiking activity or performing spectral analysis on neural signals. We already have a working minimal prototype (https://github.com/open-ephys/gui/tree/jvoigts), but it needs to be made more robust and user-friendly.

...

Description: Every processing module within the Open Ephys GUI includes a generic interface that allows the user to select subsets of channels for editing parameters and toggling recording on and off. Currently, users can only select or deselect one channel at a time, and the interface does not scale well to high channel counts. We're looking for someone to re-design the interface so that the buttons for each channel can be visualized more effectively and channel selection can be performed more efficiently. This project could also include an improved display and UI for managing the passage of data between modules: Sometimes large numbers of data channels are passed from one module to the next, but sometimes individual channels or groups of channels need to be split off or combined. 

Skills required: Proficiency in C++, experience designing user interfaces

...