Skip to main content

A python package to read data from CFS files generated by the signal software from CED systems

Project description


A very WIP python module to allow reading and import of Ced File System (CFS) electrophysiology files generated by the signal software suite: Leverages the CFS c library provided by CED to read data.

Currently supports opening the file and reading metadata, and data Currently only functions on 64-bit installations of windows.


CED's CFS library requires the 64-bit Microsoft Visual Studio C++ 2010 Runtime in order to run, which can be downloaded here. Once installed, you can install the latest PyPI release of pyCEDFS using pip:

pip install pyCEDFS

Example Usage

import pyCEDFS

cfsfile = pyCEDFS.CFS('debug.cfs') #Loads the file 
sweep1 = cfsfile.dataY[channel][sweepnumber,:] #data is loaded into dataY and dataX attributes.
y_units cfsfile.chVars[channel]['units'] #Other variables can be fetched from var dictionaries

Conversion to NWB

Conversion to NWB is currently supported. Although requires some set up. The signal files have not standardized input/output channel names, nor anything indicating clamp mode (for Intracellular EPHYS [IC-EPHYS]) Therefore the conversion process requires additional json input file(s) indicating which channels are in / out and the clamp mode (for IC-EPHYS). The json file should look like follows (found in template.json):

    "Clamp Mode": "IC", //Indicates the clamp mode, should be one of: IC (current clamp), VC (voltage clamp)
    "Stim Channels" : [0], //Indicates the stimuli channels. Can be multiple channels, written as [0, 2, 3].
    "Resp Channels" : [1] //Indicates the response channels. Can be multiple channels, written as [1, 5, 6].
    //Channels are indexed starting at 0

These settings can either be applied globally (across all files in conversion). Or on a per-file basis. To apply global settings, the file should be called in the CFS converter call:

CFSConverter.CFSConverter('C:\\Users\\SMest\\Documents\\Signal Demo\\Data\\', "test2.nwb", globalSettingsFile='template.json')

Otherwise settings can be applied on a per file basis. To do so, a json mimicking above, should be placed in the same directory as the file to be converted. This json should have the same file name as the file to be converted. For example



smestern would like to acknowledge funding support by CONP - In support of Open neuroscience

This work was supported in part by funding provided by Brain Canada, in partnership with Health
Canada, for the Canadian Open Neuroscience Platform initiative.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyCEDFS- (59.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page