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.5.6

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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

efel-5.5.6-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.6-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.6-cp311-cp311-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.5.6-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.6-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.6-cp310-cp310-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.5.6-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.6-cp310-cp310-macosx_10_9_x86_64.whl (259.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

efel-5.5.6-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.6-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.6-cp38-cp38-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.5.6-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.6-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.6.tar.gz.

File metadata

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

File hashes

Hashes for efel-5.5.6.tar.gz
Algorithm Hash digest
SHA256 b07a917556823b77eb50f96185fa95e6e6f4554b4b5cb21ef133adb85da2202c
MD5 4468552b30665d6299c3f512b6bf7633
BLAKE2b-256 c609dfdfc2fe2d167ec609ee0201cdf9f15684f21a89d2e8d09e57efd66ce55e

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.6-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.7

File hashes

Hashes for efel-5.5.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0b189d9a30b087a69fc840f77671dd3bfc905420a29e4e11aec5ae6cc2ab101d
MD5 913731287de3de508ae3c238211f3af2
BLAKE2b-256 91d5d56fe963811c60299a14c56352dd09032929f61fd240a14cd1542a4eb9e5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67b69c82c72ae24397c2d95304c425032d24b8b85f37702c4a58e8b8405578c7
MD5 ce169035d21d84b0e9b5ef2299a82c80
BLAKE2b-256 8b8b8d3c835f25ad26269dc9e61734e0335de1d175d957ff0d20f572f0ba6169

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bd1b962d758a1d5a35c9459d1e38393b45c3f61c4a680bc34f5caf76fbbf5143
MD5 30a6c3d32564e6eb3228380878b7257c
BLAKE2b-256 cc1a55baa36ef9d175ae051c3d6aed2b3ece429224457017036ec4f951d8d5a9

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.6-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.7

File hashes

Hashes for efel-5.5.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c6bb524ccd42805170d2da260f2c9e2e1b38f3dfc5f3e101a5568c88f0120221
MD5 1c80885f9445b759dac7de906c4ce44e
BLAKE2b-256 12d3e73852c2e1c4f6e62f7441691de6a250b87618051c82ee471b256f6ab4ec

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58d224b54f367f2bb1971ae86c25a67908b4268aebbe99a350947fa46e5fbb43
MD5 bbd0723dca2adc53208e729a9b79f5e6
BLAKE2b-256 45153e6dbbfa4c669fb84e08c389b3e85f0ed5ca2946916f426ebcf9acf49a54

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aafb22430cc8b3d0b0a6b0319cebda9f9cd1cfce7fd1157e6debbe5e86475f41
MD5 75868f7481223acbef976e90fe10b3a6
BLAKE2b-256 d07e03c1f616c5461a6abf458106707bf8aeaba768ba223f62fd06e6c31fb741

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.6-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.7

File hashes

Hashes for efel-5.5.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e5b33fd0b0f0effe9d5fb03a9a54fd3428e52522394d25049d2c1c3b3ed5f28c
MD5 64f81bc4b4fd5d717bcf4e55f044fc9f
BLAKE2b-256 72fdc308777059f6737c19d5f4a4fa0d3a45ce3ce77e5a5918116e899c858c7a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef3fc7928b8a671f87cd89d7d0116c8b4e960290389710084bccf973344ec42f
MD5 9dafc5be55e2a3d19d168285b34f2082
BLAKE2b-256 6ca57c5a275a6feee128952845cb62329a31fd8f0b57223e2fadb49ff58605d4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a3b94afc7f99c9ec312bcaac1b9937f1f9c1bf07bb576d1029c89ddcd600776e
MD5 eb503cca78f23934fef11d6c2b90c04b
BLAKE2b-256 065638a252800e6ce12dabb0f808231586abd7079a41f6ff896d25a5d6da1e87

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.6-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.7

File hashes

Hashes for efel-5.5.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4f8d66e421b5385bfb65fe5ba577d46a938ffdc727ad05d04853bb551a354e3f
MD5 3f958e19ee96dce9cadd509e94df1782
BLAKE2b-256 278567b5afe49fc2a8f618aa707e40720ffd877d89060b691d86ec77c48bddb9

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e816051d6bd9c80ca5586a5f19a42dd8a4a035639eaada173b270cba0ebe963f
MD5 fe8e7d005abfd4119d7843d23a80ff34
BLAKE2b-256 6f5d2541da723d844a45320656bf60f58029b9fc1bb256af10e8aacf89af3dfe

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e5a2432fa92e5dbeaf33ca0a932893863cb40c2a270043dcba18733052652f5
MD5 a38971441e5aa776168f6fb302f75fb2
BLAKE2b-256 37dfffa84e87ba3ecdcc841bf6c92e636155465e48a512b23fa78e35dd315cc3

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.6-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.7

File hashes

Hashes for efel-5.5.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f6fc49085a43c38ac98847457f91ebc8b1a0c0bc875b33d9b70e461deabc3cca
MD5 f6e541f1c9fd469b9531b2e9f3524cd9
BLAKE2b-256 d9872b8a2e0beaf2f1f964bab6c56347fa555a49cfeb8ea29a954028db293cb2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3ea4e7f60da04311d05ce11016298811de802af0644a351a3ef701b11beb597
MD5 57fa9a5828ce6e406d0d261264e334ad
BLAKE2b-256 5f8a40e926667e63c578cc1e9b5cba366fc9ba4360e8282e142c48439a6e3dce

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9b9c00ab8d9a8a20f6a33e606cd09a23eb713e9a7b8f0525ce58e550053f4709
MD5 d819d0558e2f3ab264bcc5921d19f41d
BLAKE2b-256 8b4231ae5722496c957e317d56089246a991e352a87427fbc073f7fc84c55d14

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