Skip to main content

Electrophys Feature Extract Library (eFEL)

Project description

eFEL banner
Latest Release latest release
Documentation latest documentation
License license
Build Status actions build status
Coverage coverage
Gitter
Citation DOI

Introduction

The Electrophys Feature Extraction Library (eFEL) allows neuroscientists to automatically extract features from time series data recorded from neurons (both in vitro and in silico). Examples are the action potential width and amplitude in voltage traces recorded during whole-cell patch clamp experiments. The user of the library provides a set of traces and selects the features to be calculated. The library will then extract the requested features and return the values to the user.

The core of the library is written in C++, and a Python wrapper is included. At the moment we provide a way to automatically compile and install the library as a Python module. Instructions on how to compile the eFEL as a standalone C++ library can be found here.

How to cite

When you use this eFEL software for your research, we ask you to cite it (this includes poster presentations) by referring to the "Cite this repository" button at the top of the repository page to get various citation formats, including APA and BibTeX.

For detailed citation information, please refer to the CITATION.cff file.

Requirements

  • Python 3.9+
  • Pip (installed by default in newer versions of Python)
  • C++ compiler that can be used by pip
  • Numpy (will be installed automatically by pip)
  • The instruction below are written assuming you have access to a command shell on Linux / UNIX / MacOSX / Cygwin

Installation

The easiest way to install eFEL is to use pip

pip install efel

In case you don't have administrator access this command might fail with a permission error. In that case you could install eFEL in your home directory

pip install efel --user

Or you could use a python virtual environment

virtualenv pythonenv
. ./pythonenv/bin/activate
# If you use csh or tcsh, you should use:
# source ./pythonenv/bin/activate.csh
pip install efel

If you want to install straight from the github repository you can use

pip install git+git://github.com/BlueBrain/eFEL

Quick Start

First you need to import the module

import efel

To get a list with all the available feature names

efel.get_feature_names()

To change the spike detection threshold setting (default is -20 mV)

efel.set_setting('Threshold', -30)

For a full list of available settings, please refer to the Setting class

The python function to extract features is get_feature_values(...). Below is a short example on how to use this function. The code and example trace are available here

"""Basic example 1 for eFEL"""

import efel
import numpy

def main():
    """Main"""

    # Use numpy to read the trace data from the txt file
    data = numpy.loadtxt('example_trace1.txt')

    # Time is the first column
    time = data[:, 0]
    # Voltage is the second column
    voltage = data[:, 1]

    # Now we will construct the datastructure that will be passed to eFEL

    # A 'trace' is a dictionary
    trace1 = {}

    # Set the 'T' (=time) key of the trace
    trace1['T'] = time

    # Set the 'V' (=voltage) key of the trace
    trace1['V'] = voltage

    # Set the 'stim_start' (time at which a stimulus starts, in ms)
    # key of the trace
    # Warning: this need to be a list (with one element)
    trace1['stim_start'] = [700]

    # Set the 'stim_end' (time at which a stimulus end) key of the trace
    # Warning: this need to be a list (with one element)
    trace1['stim_end'] = [2700]

    # Multiple traces can be passed to the eFEL at the same time, so the
    # argument should be a list
    traces = [trace1]

    # set the threshold for spike detection to -20 mV
    efel.set_setting('Threshold', -20)

    # Now we pass 'traces' to the efel and ask it to calculate the feature
    # values
    traces_results = efel.get_feature_values(traces,
                                           ['AP_amplitude', 'voltage_base'])

    # The return value is a list of trace_results, every trace_results
    # corresponds to one trace in the 'traces' list above (in same order)
    for trace_results in traces_results:
        # trace_result is a dictionary, with as keys the requested features
        for feature_name, feature_values in trace_results.items():
            print("Feature %s has the following values: %s" %
                (feature_name, ', '.join([str(x) for x in feature_values])))


if __name__ == '__main__':
    main()

The output of this example is

Feature AP_amplitude has the following values: 72.5782441262, 46.3672552618, 41.1546679158, 39.7631750953, 36.1614653031, 37.8489295737
Feature voltage_base has the following values: -75.446665721

This means that the eFEL found 5 action potentials in the voltage trace. The amplitudes of these APs are the result of the 'AP_amplitude' feature. The voltage before the start of the stimulus is measured by 'voltage_base'. Results are in mV.

Full documentation

The full documentation can be found here

Funding

This work has been partially funded by the European Union Seventh Framework Program (FP7/2007­2013) under grant agreement no. 604102 (HBP), the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 720270, 785907 (Human Brain Project SGA1/SGA2) and by the EBRAINS research infrastructure, funded from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 945539 (Human Brain Project SGA3). This project/research was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

Copyright (c) 2009-2024 Blue Brain Project/EPFL

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

efel-5.7.10.tar.gz (108.3 kB view details)

Uploaded Source

Built Distributions

efel-5.7.10-cp312-cp312-win_amd64.whl (222.9 kB view details)

Uploaded CPython 3.12 Windows x86-64

efel-5.7.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

efel-5.7.10-cp312-cp312-macosx_10_13_x86_64.whl (274.3 kB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

efel-5.7.10-cp311-cp311-win_amd64.whl (222.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.7.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

efel-5.7.10-cp311-cp311-macosx_10_9_x86_64.whl (275.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

efel-5.7.10-cp310-cp310-win_amd64.whl (222.8 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.7.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

efel-5.7.10-cp310-cp310-macosx_10_9_x86_64.whl (275.3 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

efel-5.7.10-cp39-cp39-win_amd64.whl (222.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

efel-5.7.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

efel-5.7.10-cp39-cp39-macosx_10_9_x86_64.whl (275.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

Details for the file efel-5.7.10.tar.gz.

File metadata

  • Download URL: efel-5.7.10.tar.gz
  • Upload date:
  • Size: 108.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for efel-5.7.10.tar.gz
Algorithm Hash digest
SHA256 be707c149cc1f37f4b06bb6a8e766ad47c4d9bfc94b1b517d68512039db33797
MD5 eac954ef0d2d7408cc2a410e8936a1c8
BLAKE2b-256 687f718a8e588f5f40226c84a92c15c07d889cee25ad349d3ccba5942e737345

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: efel-5.7.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 222.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for efel-5.7.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6cafd4645d6214f26b1ed67d809e5bda77f933a6561bbac0c7ee7191d1eeeb3a
MD5 84cca35413b7f2ad4de6885ab183bf71
BLAKE2b-256 e6344b40aa4706a2551641b7f0273476b07c595b325ec2dfb4c66b946085afb9

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41b9195a5dd90845de92984e457a47ea92516627321b1835e7d83d91fb0f8340
MD5 206cb237b6449fc59c48ec976f6cffb8
BLAKE2b-256 9fbafd085457b83e2c18a7d36a341657436b9eb3524884fa83a88a0c313e2db0

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d83c9908af85fdd9c2b8fb7fc8dae8968cd369ecb02a873fb5a21707b31ebd3f
MD5 71a0a6616caf6780463bd6b6a2c79b12
BLAKE2b-256 4867db2f0899a0f14965ff3fa2a436724c4c9cb7a5047abb9e1716cd19b40b2e

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: efel-5.7.10-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 222.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for efel-5.7.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9f58014a34e5c27494e12d485dcb80e64873c8c391d99a6805f6b8dc6e44960d
MD5 89b9a65b247761c9a622d625c1c42460
BLAKE2b-256 9adcf7fddc832f98baf3aeee1526bcbbcb2c14397ab17341e58b25c64b302795

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd8ac398aeed0793779985a1f9f61fa5231e149de5a835d3b08abe93e471219d
MD5 d16aef0ca17be05e5a3065b86641cca8
BLAKE2b-256 d897b2fd3836a4e964d936eb659118b8339549224591838f7000f4cd9c4b8ba8

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3bb4428f7ae0057f3da937165609be79420317f055c35922d824bc9560063b6b
MD5 cd62078d9eac4cd65a15911730d128e1
BLAKE2b-256 0a0f098a095d314fe6524c6591b38194a32d1f47278e724959f8ba554a33854c

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: efel-5.7.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 222.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for efel-5.7.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cc55b195061ea8a1ec6a836595429d0c75c8fe39cf34e385bfaaa702d93c2f38
MD5 c62b72c3c20da855abc32ee403c50bdf
BLAKE2b-256 971eded5c02525f1997fd832eb472f91b53005201a0c0996a85a391b8cddc4e8

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14b14014426ed207da2a5d0a1f4004fd9963469b63f469d1e5fd26fb580566d4
MD5 e682835cdc751776856071a05cfbb5ec
BLAKE2b-256 a2fca0c2a7b6326f9d1a23a4b16b9dc800646a1f8a7d889776f5755c38e3eef4

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 980129e08939d0cf8c1c28f9dba37cbbeb005372a753001b1078a4ed19d88d21
MD5 66d68abe8cb0dbd15d29f6a92568c69d
BLAKE2b-256 7d571dc2f8a3cf6f4a70d76f60465b879e0570be831b79adc3994f665247fc0d

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: efel-5.7.10-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 222.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for efel-5.7.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 043479485a7a1470be8e3763f9ecb697ac316fd8d6c8954fd0d6f215406e8f7f
MD5 298f56502921aa02866476b219995ca7
BLAKE2b-256 eac5464e113fc235b56ef8e8c1395817d1d114da57176ff537024e23516349e0

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c2a2b7bc8232b859264ad4e67b308c45da15c890334a8d8f773f4c6af37cc1c0
MD5 c9401888b70432e80ff1922dd37b0dfa
BLAKE2b-256 0dd855b1fe2e28eaa0d189a7068b2c537be5f6cfe036d8c531ac7e75364151f0

See more details on using hashes here.

Provenance

File details

Details for the file efel-5.7.10-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.7.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c8bf7195bda0dcf8df23a80acaa2a846d1804cea67585039010dc8080a48b08b
MD5 0ac39b482a248b987f0efec66cec6db5
BLAKE2b-256 374333716bce35c32da35929c597bb194a486d390fc5237583d11e458e66534e

See more details on using hashes here.

Provenance

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