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

Uploaded Source

Built Distributions

efel-5.5.4-cp312-cp312-win_amd64.whl (213.6 kB view details)

Uploaded CPython 3.12 Windows x86-64

efel-5.5.4-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.4-cp312-cp312-macosx_10_9_x86_64.whl (259.2 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

efel-5.5.4-cp311-cp311-win_amd64.whl (213.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.5.4-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.4-cp311-cp311-macosx_10_9_x86_64.whl (259.1 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

efel-5.5.4-cp310-cp310-win_amd64.whl (213.6 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.5.4-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.4-cp310-cp310-macosx_10_9_x86_64.whl (259.1 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

efel-5.5.4-cp39-cp39-win_amd64.whl (213.6 kB view details)

Uploaded CPython 3.9 Windows x86-64

efel-5.5.4-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.4-cp39-cp39-macosx_10_9_x86_64.whl (259.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

efel-5.5.4-cp38-cp38-win_amd64.whl (213.6 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.5.4-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.4-cp38-cp38-macosx_10_9_x86_64.whl (259.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: efel-5.5.4.tar.gz
  • Upload date:
  • Size: 100.4 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.4.tar.gz
Algorithm Hash digest
SHA256 a5353dcf15d5a44f9f93065cd71d1ba5f5f08449238298836297348668f4b359
MD5 6026584eccb8b9cd96801a3801158c71
BLAKE2b-256 0f36d2254f6e91588aaed29cfce3af445f1dfa4b2190c0a50a78e64061781a1f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 213.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.5.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8f0a5e055e8f2e20c6031c3683e8eb3939c01b2b77c960e6490e0126ed752cc7
MD5 7ff99b9f42d878169f0d5f731bb2f5c9
BLAKE2b-256 08150708a45e3ed2e2c32124e67b33099510c13062987ae53a3a60a9c3e6ffb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c6c992ca691ba903d09e88e0df2a03840ed874d81244d4faa849d1a16449e88
MD5 f0c767412f7cd85fc682046d372db80f
BLAKE2b-256 2fc786e5339e6a68fdfece89f4791fa1b81170f85f33dc72a83fa7fcebd2b21a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e313651764a2be030107c27119758d294ac89eaba3d7d10aa979acae0a2928b6
MD5 054891d5359ab63618f850526e784479
BLAKE2b-256 3978c89862e860cb0f4b86dbbdd423af37d0a5b68c0ed2d5544dd39486ac82f3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 213.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.5.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 49e1160149fd0517a2012c7e209e782c0d40ddf4b80c472f0141f1a81cb1bc03
MD5 3c60ea81c677bf81f8475dea470ad520
BLAKE2b-256 84bc8ad9d215c9cb5c770eb29346c3ee6b8b8282a84eade279854384bd2f4d64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c46d8f10f7c5e6363c1de697f0850bcd9041962501f652ee407fcebe5579bf81
MD5 0ab85f5ebdaa149a2aa17771b8019c4b
BLAKE2b-256 e6180be436c01fbaf373c40c00aa643d2014cf9de3003dc4094403abaa82559a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9b08b2e69c0bf1f32ff44f215a0f017c6ba7e316279f5ba7b194c675ecba103a
MD5 d91d3ec370b036ff2d2617d434f6c0ff
BLAKE2b-256 29f707689afd4e89741ba1fcc80f58e961be4fb718c300634c58a7f3e650872f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 213.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.5.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2792699b72bb4ee1b5108e27a7c46ba12ed03be9d360f6434a58f97d9260a81c
MD5 521e3c0fa8e2b3158682de1d139ac870
BLAKE2b-256 5103782dfd9fac1f5e6cf973250ce62baf03bbe01fe1684f7f3d25ff9f940ff6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 993e586bce92fe6f357720495258b3d32ebddcc0df80f4388fe10b37e0fbc06f
MD5 311a67cf0c9aea4d3837f6066f66fc29
BLAKE2b-256 b61e369cf460fc23b15ddc3a097cd03ee53ebb7a006872f17afa36b00548674e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f8e169450195564acdc111f490ac1c330f63c13e984094c42e93d7f6e8163bd0
MD5 62e083ccd488db6d5808fd567ebb1363
BLAKE2b-256 b6edb5ada53808ea77eabf712cd821ca2297d7b92a51d8261f615ce136ab4e92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 213.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.5.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2fae2252801ff2af491c1f87451565107ff065c2efda81c31b775beda3cb9266
MD5 cea90099b6e3fb0d2fd879fe56f0f459
BLAKE2b-256 10db749112e7690eeacdacaceef03945e16089f9a033cfa065a33a4d1c47c4c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 295026a82a7336959d9c084b5105a89009e4f4a0af9b85352b985808b25ebd2b
MD5 3a91e62c65109180e1a29b93875dd2a9
BLAKE2b-256 34f8e856f2eed33906fa5fc5576cc2d810d39f80ce1dddb7511a75a370d53975

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b80d5b3279547365a0506122f7586d978eaa5e971efa80f630e9163c6d723888
MD5 431c323a3402a2c4ed7dc4bb707f1e14
BLAKE2b-256 d555b7cf0fef4599cc8355726ae0cd9c3710f9a2aef951a1bbf21944440d90e4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.4-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 213.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.5.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b17022be0a9da343e863808c8200776611721a496267b78229ba89e34a45f385
MD5 78ed9825b7445daf2c431e797153819f
BLAKE2b-256 75d8ff2909cf8bb08b6f0cb73c0c3a72052559b21b534422327c3e92870ac7ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 731c9f96559dfa79c80c74f72c561190ab79e51d6e04c89d5c11a7ad30edd079
MD5 2877952e288bf193346084531c789a8f
BLAKE2b-256 30aa67513cf3b903e8a8ca2914a81f8248d98150b454ce69697201ec23a68724

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a36ec0a88fa8c2e08d61fc63a6da41a223e252a7de7a16dac2aab001e989b0d9
MD5 2fe81d5ad5934199fe08ac36a16ca9bb
BLAKE2b-256 5c7a2a61d6959e1ee0eabd7535a10bcf613f568ea77b3971db0a97d6657ce6bc

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