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.

Citation

When you use this eFEL software for your research, we ask you to cite the following publications (this includes poster presentations):

    @article{efel,
        title={eFEL},
        DOI={10.5281/zenodo.593869},
        url={https://doi.org/10.5281/zenodo.593869}
        abstractNote={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.},
        publisher={Zenodo},
        author={Ranjan, Rajnish and
                Van Geit, Werner and
                Moor, Ruben and
                Rössert, Christian and
                Riquelme, Juan Luis and
                Damart, Tanguy and
                Jaquier, Aurélien and
                Tuncel, Anil},
        year={2023},
        month={Jul}
    }

Requirements

  • Python 3.8+
  • 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.getFeatureNames()

The python function to extract features is getFeatureValues(...). 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]

    # Now we pass 'traces' to the efel and ask it to calculate the feature
    # values
    traces_results = efel.getFeatureValues(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.5.7.tar.gz (100.6 kB view details)

Uploaded Source

Built Distributions

efel-5.5.7-cp312-cp312-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.12 Windows x86-64

efel-5.5.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

efel-5.5.7-cp312-cp312-macosx_10_9_x86_64.whl (260.0 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

efel-5.5.7-cp311-cp311-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.5.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

efel-5.5.7-cp311-cp311-macosx_10_9_x86_64.whl (259.8 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

efel-5.5.7-cp310-cp310-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.5.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

efel-5.5.7-cp310-cp310-macosx_10_9_x86_64.whl (259.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

efel-5.5.7-cp39-cp39-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

efel-5.5.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

efel-5.5.7-cp39-cp39-macosx_10_9_x86_64.whl (259.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

efel-5.5.7-cp38-cp38-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.5.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

efel-5.5.7-cp38-cp38-macosx_10_9_x86_64.whl (259.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: efel-5.5.7.tar.gz
  • Upload date:
  • Size: 100.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for efel-5.5.7.tar.gz
Algorithm Hash digest
SHA256 28fdd07ccb027c8a35823d3ff4c407b3704a7023754eec6110674825dc7b749d
MD5 72d47c9548525f76bf234dfa4c9ff69c
BLAKE2b-256 c34fbf464ced91c54d97c951abf18f987266b8fb54e3401b3feb78feee9f5c43

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 213.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for efel-5.5.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ecece7e44143c47c4a0bd8040b5165ec3b1e9b852eb9133f677c3d0c4fdbe3bc
MD5 8d979b72571e990b06012c6922b0b3b2
BLAKE2b-256 a17f5fbd98d434bdf2d17b689761880ca9ab6dc9f5c6bec35493d9dc59edef20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae24483c62d9fe28349fa392b439e66bceef53f815db5852e7c24481fcc7a79c
MD5 32388d08e5f42792b94c2d69a51fd3cc
BLAKE2b-256 4314a2124b6498584613645af19d13bc7823f7ab1d0f52f022cfa19759aabce9

See more details on using hashes here.

File details

Details for the file efel-5.5.7-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.5.7-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d603fbb3c99a6e883faa7c0cd89279c1ed162cb88e99beaff8c19e79423db495
MD5 3e0340828d9ac9d9f1767a5100f97b48
BLAKE2b-256 22f18bf1d1c392e590a25be47795f17a4227549a7dd49e479d64482f2c09eeab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 213.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for efel-5.5.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6b0c2e3d52bcc247712f6cff3f7ece9a4eff81be5428dbc0886ad5b7e8c95730
MD5 2649507678459e474436df613867f83b
BLAKE2b-256 a11722c9a977b80e6f3ce7b7883dfde0f2f8d8dce4b754c3cdf4ea32af1fd9d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ccc29acac1e84a4f3691ef3bd9b10a008ef35d98ade56177ea218a15a74b087
MD5 993e0c822b5c430eb17d86f28573e05b
BLAKE2b-256 b8a76556e3b1a0e058bdedebfe693226d81a890cb9f13900608c4704e3945553

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73ee5444d03b3bfdf00cc6f023f7ec6ce61ad3f48c3d6af86ffab28f462b909c
MD5 87fb05f4f18edfcd8774e9d0dfb75b55
BLAKE2b-256 d17c888ca633eac5156d66f2f49f937a6722e85be1a4425b8d3f2f60cd02c06b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 213.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for efel-5.5.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 62e29ec2ac5e3bdb763c95a31517e042538e5df3c4836c0e52d475f33564e111
MD5 97cb71da7878f4a450ac9ff6b1a3b9fc
BLAKE2b-256 320c60637b701ae75c63e90260a61b3624b29f8fbb18ce41b6e705d89a7483c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 34c66cdcc9c80b9bce58c4d07a62fdb7cec443da4529bd9ef8642af4c124967a
MD5 d55c4752e19fd5fe5e51b91752d1c06c
BLAKE2b-256 f296bd5367103ddb20208f7829c03a94c531d38c0d4307cb897142aa09751b9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 508d49e8a1e6bd3d3c58e8a70f37976fc1b8e03ce648ab165a630c3bbbdf4e40
MD5 2880a506d6f72619a5163f4b2d878b79
BLAKE2b-256 0afbcae645b17e8f23cacc50516e10524bd26c1f53d4dd8743e57e2593370d73

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 213.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for efel-5.5.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 be840cb2254c9731bec3f3f8f7f63a97ff5edf97a404689561078f02b6e5994f
MD5 19b3255d204714f12ee2bd7ca5384936
BLAKE2b-256 b58afe1a2e0f810af3237ffa6f4dc327ce943437341103416a98a0af4f6614f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe56c9c3396d3fe9f8fbfc32a8159b4ef583453b618c7ae818152b81dc9802bc
MD5 dbb9e23e28fe650d97c5f2c4f0f8864a
BLAKE2b-256 361f8f518a8802139a12b4849cf5234412c11659b18ecb8bf42a3df6f75e6843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.7-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bf17fa2211c3ddd3c6d09db8fb3eee93accfa124a7494d5be3cdd5d2c97e8545
MD5 eff0baa91b33cfdc6d278c7de5c7b692
BLAKE2b-256 43eba7ceedb440090350f0330f07c7483d25c71bff22a7c4076ba12d1560dc94

See more details on using hashes here.

File details

Details for the file efel-5.5.7-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: efel-5.5.7-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 213.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for efel-5.5.7-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fe17c021c6a6e95f49d4e2c3a0e868b68bd81dabba6064406c13ea4e293bfd79
MD5 0f4e75418eac95ae5b3ab500e3d2dbdf
BLAKE2b-256 3d1fcf43bd51d073259bb2e89adc29c0253b29cd0be25c3f7fad822880eadba7

See more details on using hashes here.

File details

Details for the file efel-5.5.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.5.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d49d031a2052c459359ebf14071327046439e6582a8f5c98dc6fcc9206a0e57
MD5 bae1b4a1b52779a6f5d06c2a10f1d28f
BLAKE2b-256 90c8df28d8aac568f2fcd288900b273a983531d1a9721e2dc53e1f3ab0ce89fa

See more details on using hashes here.

File details

Details for the file efel-5.5.7-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for efel-5.5.7-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1cd0ddb7660bddc4fad629cb2974682dda2fa3062016a2ad8b65c1b099166a88
MD5 6023ac793b8b946670c6136f72042dd7
BLAKE2b-256 0db093feaa8fac8b6f33c0a400a7b33645af184541e9e4bc657f062f62b8773d

See more details on using hashes here.

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