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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

efel-5.4.1-cp312-cp312-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

efel-5.4.1-cp312-cp312-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

efel-5.4.1-cp311-cp311-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

efel-5.4.1-cp311-cp311-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

efel-5.4.1-cp310-cp310-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

efel-5.4.1-cp310-cp310-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

efel-5.4.1-cp39-cp39-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

efel-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

efel-5.4.1-cp38-cp38-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

efel-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for efel-5.4.1.tar.gz
Algorithm Hash digest
SHA256 20674e9d1b240373e5b21ff3f6bc9ec8d328ff57ac8ad1003169f044b327f0a9
MD5 7df7b8a61e0a739fce2e1db30d988570
BLAKE2b-256 a17c3abce6f262dfa3449e0ca99bc3d264e6cd8e101fdf669fae684a764d9a37

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 25a38bfbf5628e7317aa7232b2cd73f83332c7796303e22ea1bab3d002112f6b
MD5 f67973ee3bf68fb46bf77d228969b1ef
BLAKE2b-256 b277bb172efaafbad0db458437f641b2f3195c7a535ac35830e19738e7f6b1d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5fc4d996291281600d80b69140ee00a2e857c1b0106ea9df7a60ae7cd26e8986
MD5 3ba8b1d157a6d7c2c4f114ed38ae48bc
BLAKE2b-256 d56444adcfbc94f9b746cf7957a2c2457e2b87d9799c653530f3ef0f7f074bcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d8489b6bf1f7f5d023d566c4ce90a0e3ccd005b8e2480439462d47eb7b13264c
MD5 5708d7751abb34c81abf390e50293f8c
BLAKE2b-256 e1f4506c2724b5f2394c879551970d639fe30aad15dabbf29b1e872de7f2b00c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b40b2cbfbd0de6bcffd35c6f4225dcddbfe5ce618af8849f140adf1c1ff28fc4
MD5 7b7dba551c992fffbac5cbd0931a8cd3
BLAKE2b-256 046f4e6da2385efb4aa2a4a3b828f93efa386cffd6d7e028fa1ccd85595b2265

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bce8c1ab85404d45a6db60aedb45b126497dc127d92e35fc49043158f1f6e223
MD5 6c791a590b90a41b7faa1e03e0e86601
BLAKE2b-256 6a1cb8e60b43e6ae49a079b22a63afda8796eea51618e3cde78f84cb92eb4089

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7f06a7cec534532990c28f7883811e52f3905d7a1a4c0b5f97e2548f93390a6b
MD5 394e04ec4eb4b3799185234addb2f05f
BLAKE2b-256 f0aaa01f377479066ab075e90d85d6762280aa172cc261b92e04293b80db68c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dd317e1b0f648c4a5b22f7d22dcefea8297a172cd3ee7d5d4fc4f1328631cfc2
MD5 1967dba6a12363a1d76838fc61c8fa04
BLAKE2b-256 a0ea55d4d4e6bf7656ccca5c66ed8565dea120b6215f56f468bab707d09c8a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4068fd683c4e05bffa792ec7821f18b0b3b4ebaabbe12523c016a3efc4013feb
MD5 aa7b147319ae6cc9edd73f4650c07d62
BLAKE2b-256 5f350327f72b0bd2517e5354969d3eba3bd50a43abf36da4e1528bbb8e59be4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d9b559133b9cbc2c5228cfe7a5293a9dce7e849de4d6fda11adef77073314ad5
MD5 a81f7a87fe99c91030928cc01562e345
BLAKE2b-256 b16a3102430c24827f56e2023a17a33f09677f9d6dec5b570d59639006ac5ba5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3715af02f5cfbaab8706a2ca428f2f0ee5ed1939f6b73a2a8b2a3607e2b29232
MD5 671f295da70c5e24721cedb0298b1b62
BLAKE2b-256 ab159357e31d97759d59394c774a7c96e1b51634eaa7da79bfb0fe8889ddc080

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ab29bfdebd1831593d9db8aabfb82fdce0388a449aacad8e2a339f7d1e4880a
MD5 15dd1d7e0e529d86b0e98bcdfe7c73a7
BLAKE2b-256 c6dfa64b1e9ada95a020f95b85de03f036a75837f60c30a163aae4993725cce0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 256.7 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for efel-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2dccc473fad4e9f4f3e0800e7ccf47ec86f65d5002ba32ff133fcc56217cea41
MD5 ddbd83918f7f6b55808353037b9e532f
BLAKE2b-256 8700b22909d2b95728464e541df2a5417a124b7c85a0c378a3861fd307ced33b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f1f235152626669234e223b53884c826a391a4a829068cbe29ecfb79f457b9ab
MD5 83492b70be36ee9fd55964471abac24e
BLAKE2b-256 f3aefa16493f421337592f7122fad289bfe0b460b38a579251113512fa42db2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ecaf296b8c14d7a5f8e1166b837af3a22e8442cf8e69a41d1981ead57e26454
MD5 ba0ad9bd1936bdf6e111c9f4d83f3d6d
BLAKE2b-256 f0d066689d56998ba290c77417be3dd725bd94e4e22c2fea42ff11b53fe0ef4a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 256.7 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for efel-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ac0c9dc6ef08f9cb654ad826ffbb32ce813b706459b28004efcee46aa1992796
MD5 197600d1a03595e5c67441c142859171
BLAKE2b-256 54eca18faab7eebecbe8124f35fe2c62868f7e4a0d532fc783eea91eced7abf5

See more details on using hashes here.

Supported by

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