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

This version

5.3.5

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.3.5.tar.gz (109.3 kB view details)

Uploaded Source

Built Distributions

efel-5.3.5-cp312-cp312-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.12 Windows x86-64

efel-5.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

efel-5.3.5-cp312-cp312-macosx_10_9_x86_64.whl (234.2 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

efel-5.3.5-cp311-cp311-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

efel-5.3.5-cp311-cp311-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

efel-5.3.5-cp310-cp310-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

efel-5.3.5-cp310-cp310-macosx_10_9_x86_64.whl (234.2 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

efel-5.3.5-cp39-cp39-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.9 Windows x86-64

efel-5.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

efel-5.3.5-cp39-cp39-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

efel-5.3.5-cp38-cp38-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

efel-5.3.5-cp38-cp38-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for efel-5.3.5.tar.gz
Algorithm Hash digest
SHA256 c6f8124fbbcc15860c91dadf3f5b5156f8a47666f716cafeeb2c282e870402e7
MD5 63381c473debe41b3879c732cac9c6c3
BLAKE2b-256 95c6b989d14a01fc4d0769402b3768be59464a4943341f828fe17170ff4c4eff

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for efel-5.3.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 db995c8ba758150b5c4310841da99661b7b38df2ffbcdd1398870f9199d1c98d
MD5 686f1d3f4868f70f55d11712841d6bef
BLAKE2b-256 5ec378328a7092deebef3c6fb99ed02e1bc723db96c48ebf31c2c649fbf2f7eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 929c44cf400a4823e479162ba07aba28b87123ba2e6a93fe53657bffce000a40
MD5 aea7fbaa67358bbba133cfb7997b14bb
BLAKE2b-256 795a7384f0aeec77f0115a8f3aa6b19efba17acb34e77fcd804828d8778a3358

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1dfe68698205d9028bd37550a7bd0c12b01ff261c569ccf6806d74a571666210
MD5 8e81300e9707f49af4940d37a931eb27
BLAKE2b-256 eb8ed5f1a60f6cf89d7771c78bbcc7a023e2d60bd0062c5eb16f2d6c64902497

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for efel-5.3.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b38b193515e0beaf4adb43baeeb9f5fa0e98d55a477bd6cb488f7fb6cda44492
MD5 0d83122a624d7d0e7e5946eea98de3cc
BLAKE2b-256 b3b9eca54852688ed421d96d9e9fff472bd1567a6b2735696092f2f4da6b647b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7306bb3ed80051aa2a5e1c9205bfde5e4b49ead7ede94edebc7c587a6a54d84b
MD5 326fbe808e935610c5b01f40016dc94e
BLAKE2b-256 c67dfcff670093d50969939af16191279d2d81c993510966f21a6839f0689e5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b64eee69cc1eaf7c34bc114f98f754b088baae1371899d8669456bbf038443b9
MD5 1dc88b7af77b769e9ad5f59aed3602d5
BLAKE2b-256 67ac35fb0a182e3b0cce09ec2775efc61b64871fb913a058a1cc0e0ec2fc54ad

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for efel-5.3.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 48c8738ab72a7b14ee92767c6f1703f5406c199798fad281afe33076e86f642b
MD5 502bff608fa027d72f3ba3da94fbfcfa
BLAKE2b-256 fc788ba029e752f465dc23970b27936dd91a680646179f78ab3b06cef346d5f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 877bf1c3b2da1b59c7ca9196fbed5fd42f10cb7a48c665d249369a85d144ca3f
MD5 7a87e86aff41f743c7832a653a139bb6
BLAKE2b-256 82986434057475ae016a91460a0e7910ee9546392e7f1b215196e63375138a6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5890dcab4dde123c7e42312156bcaf5a7fd4258746e205209a538322ed261b56
MD5 42344a3c04899ceff1719eea6c5097f0
BLAKE2b-256 9fb660f37c86fe61ae246b8e6825d6b459e5b534f0e09984bb4217d5d465cbfe

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for efel-5.3.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4c2ef8cd182e6db6ca46efcb10598681e62b60afcc45ad0a05b03fff2c43aa08
MD5 3fb5f50497b1af4a090690dfffb308f3
BLAKE2b-256 b7c773ea27df828dd4e4c54015b2e6261978fc137b5090964e377246ac612a25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87a9f714301807e989159376b7fce2eca899f94cf8d2c198f3020f90c3f66c76
MD5 c8a036007cfa2a4186bf40916dec5cec
BLAKE2b-256 58352300185ca72864b84c0be553ae52087664ac99d39f870d8de4db6751d4d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2179795d8c01383f4f69f11755216cf4f80193367d950848cca347b08e1c596d
MD5 9749f169027d19048c67d9de8a771eff
BLAKE2b-256 f040ff2cd0906069467a1e92917542fb1a6f00858fe8b38e713c617637623525

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for efel-5.3.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c26362241dd4a80a58869c0b7b386f521939cd3b06f4e75cbbe9388b27f2230e
MD5 686626a8697ff04bc974abe76371e538
BLAKE2b-256 73ee3e2e7c5f3d0537acfbd8adf8e4a357e6f49c7517cbc80cc305f8891818cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bf4caea54025c2c523c1b9d78ff865979c555f11d06618ba75ede484483a82c
MD5 c76436835c4a84013b5ea0b64aa4bc8f
BLAKE2b-256 c4586450607b826d3b0cb8486d8b3bbf7e03570466df4adbf9fe1152e27fad22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 16d75c3cee01ffbea06c40287f9e727d664fbc590b2c4e11ec168660cb62d7cc
MD5 7f2f2b6d9c5b823f85bb19f91a733685
BLAKE2b-256 de07d996b218ee81b520773e8f2f44e23b46abb965eb0a9e6258d169ef975991

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