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

Uploaded Source

Built Distributions

efel-5.5.1-cp312-cp312-win_amd64.whl (213.1 kB view details)

Uploaded CPython 3.12 Windows x86-64

efel-5.5.1-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.1-cp312-cp312-macosx_10_9_x86_64.whl (258.7 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

efel-5.5.1-cp311-cp311-win_amd64.whl (213.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.5.1-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.1-cp311-cp311-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

efel-5.5.1-cp310-cp310-win_amd64.whl (213.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.5.1-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.1-cp310-cp310-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

efel-5.5.1-cp39-cp39-win_amd64.whl (213.1 kB view details)

Uploaded CPython 3.9 Windows x86-64

efel-5.5.1-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.1-cp39-cp39-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

efel-5.5.1-cp38-cp38-win_amd64.whl (213.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.5.1-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.1-cp38-cp38-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: efel-5.5.1.tar.gz
  • Upload date:
  • Size: 100.2 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.1.tar.gz
Algorithm Hash digest
SHA256 2f36d40df84e0fc90fdb917136be9941cc76abc7d28798cb245db0673f84d023
MD5 5a6e1576d96b67d427e121115da33523
BLAKE2b-256 56dfa3c750dc40e6627ffb0d4dd6c289205116e982d2cf688c59aeee4c0ec139

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 213.1 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2a3006642e4dbbb452a792dfedb875e5f1ac91a1c4fc83d80d4e528e0087e2c4
MD5 1a18ee6dbcfdcfaaae462d1bc0724754
BLAKE2b-256 b95a3cbd1dd9f941e56580fb4c95faa91e96d50668547b16d8a82e9bffae986e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6f905f85d863af6acffd8e480bcd656b2489589d2c4d289e3ceeae74e98aff2
MD5 7338cacd50d7012c35709d49ca770fc6
BLAKE2b-256 f83cb38ec9ca5baadcc79603486603c1c13a810d6bfc71d5ad5e85c580d1a974

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f2bf48d51e8305f529f58cf59112a8abd17dd4b7539427bcd7fc01867c972ef
MD5 93642beaea47fba71b1ddbd710c0ca95
BLAKE2b-256 41a8773000ce1ec8dc572d15cbc994ad63e31c2a9b3ada661f264ed254a15337

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 213.1 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 eff05c24d63372028e4ea9cd1e343a7aa03547ea3f0dd2c5e4e11a91aa3d57c1
MD5 6e3524d427a24a9ce7b819956c38aa1c
BLAKE2b-256 67f911b381f1bc2e2b4f018a3ce4877fca106cfeca26575f0135e09e53b24c13

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 325ff28f656303dc05d22612e877a70d66ff60ab20af5c1e58402e2628c6f76f
MD5 526f097c6fcc7cf05e2a2c926add49c7
BLAKE2b-256 33d127fb50e0eaf2d4e955b800e9bd50dce0459c20fa087d4ce8766cd1af04e6

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9a46ec7f277e247cc35a67213e9f45409acd135c2e8fac66183b7342b0165664
MD5 e1dce52f730ca02a1cf6b4f709e9b2a0
BLAKE2b-256 863a2bf3d1dc9f47d4234b242d503e3df5b086ea5ec02c8a976d7e13fdb992a5

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 213.1 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5cc2ea49d4d281d2b45753f39d56c5598c726e29bf8c153edeafc9afea7d0d44
MD5 c400d0bd8a95e0a9b8d220246af2da56
BLAKE2b-256 a591fb1bd8b68b43f59d41e14470979024747b16f90cd9097523ce5cab5ab2b5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7eb4392457c79c6978cb304bbe8b19bc0f82e8feaee375ede5cd7f5b91aa1c9
MD5 8d7c402708ae7eb8fa55d06aed66d0cb
BLAKE2b-256 e494041dd8152e5507b2c2788a7f154826fda35e1936e80b7005a2b1ffc1c0aa

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1e1ce3eca703621efff7888aa2bec23e4765e502e619321ce376c835676f2177
MD5 55ea241d17a206b9f46c6f134e29ef86
BLAKE2b-256 ed223870e4184cc6aeffdf8955c2ec6093948827ab9cc55ac598dda124ac3c7f

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 213.1 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 402d3ab5a1affae74501fb08e4f9ac72f6cb7bd775718c48e2372b0859a63717
MD5 53c124f4652860bfb65a17abb3e551f1
BLAKE2b-256 64eab3a9a6667cf2b20c17ab33e4e6a7a3086afde1191f17c59a5f1996886953

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 374e8b566ff5b755aeb378688933306a35777a9130a6159d0e6efbccd8690c38
MD5 a5e0775b266b470c2ecd517b4f017198
BLAKE2b-256 f925c9116fb22772490a62bd3b7c723606e4cfae6b433fddd31eb00a7579bb67

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 50dc8b46ad6c813a04f9edc4a8b787c885e9d3a40c9901aef642c0d3b33d0d57
MD5 5ab4c5380d21227425739b14deab447b
BLAKE2b-256 ae3a235ef85224b17752a413ed2af5b5c9e750af9daf98c5592ad10e41aa3eda

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 213.0 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.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f8a7f5db22a41bbc2b7b801beaa9c2c8eef0fa39e54b45a2076f6881644238bc
MD5 625db775ad3fb8c68b2fab9cd0db8f89
BLAKE2b-256 8c526ff40f4099130cd487b2dba8e6989758caee56469f1e58bef143e06ffe0e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f64235469d58aeb65f992afd4228b5a434241d48c3aee0eb6ee43b150a35cd3b
MD5 be30944c28e569a1c91277d07b7ed63e
BLAKE2b-256 f9ddebf91fbfa8169dff8e31488a2785426c78e2a8107ca908ca3bc5b9cb6974

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c46fde312615b1c8aa3c48c1318ad83cd69f56ea08e27dc4e454ae23cde89d4
MD5 20a66a3b977d102d0226742906474aae
BLAKE2b-256 393287aca92ff72cac3cbe8aee78ab7ef80ae3ac8e0be0c74615151afd2a9262

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