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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

efel-5.3.10-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.10-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.10-cp311-cp311-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.3.10-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.10-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.10-cp310-cp310-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.3.10-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.10-cp310-cp310-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

efel-5.3.10-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.10-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.10-cp38-cp38-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.3.10-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.10-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.10.tar.gz.

File metadata

  • Download URL: efel-5.3.10.tar.gz
  • Upload date:
  • Size: 109.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.3.10.tar.gz
Algorithm Hash digest
SHA256 50886db22eca7797d681319acf6ffe3d0efdf3b0883c6dfc537e4cc3611ef3c8
MD5 6c347284d55414f4c7fbac2fba1e27d7
BLAKE2b-256 647c50b9ea0aeb60df035169d486070a71c435786d4e3faf4cd2c5e5e9c34f69

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.10-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.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a3d7d774ec279a5b6c36c965b2bf97432d65a64bf9e49af081cf6cebb5f0d338
MD5 35457798af1b3a441bff15f86de66143
BLAKE2b-256 4be9a6bc9cbac8b501b4531d1277d573339315e699e68029c3a84b696900476e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e7d39788d19fd9b86601dd7ff1ebcf4c4e5daf085e5d84001012ec780a3f3d3
MD5 07abea8d2222b3f3c56996aa6907bdfc
BLAKE2b-256 0cb9189f9f8203f1154ac1b2b34d2e6f78bf09c92a36dc922d7f31a245e32d86

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f7e6635cb6202c40500a76ed920ccbf58724a2007b6d7f3dac65aaff3be286cf
MD5 368d3eb87d83335220f28bd615799252
BLAKE2b-256 b22ad30338b42c615f0f6be4bf442f80479d8f99ac7bfb5cedd99f9401eb36ab

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.10-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.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8cc4821ab54bccd827551731ca354a9290bbc0ebc5be45cbe4f17d20b6581f3b
MD5 04c540b932c7557c72281f2e147e7f7a
BLAKE2b-256 285c8bfcd380043a5b8482534066ec80ec8a9736c2e2964d0f5ae5549717d1ba

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 73f5536da150196744b8fb739e3cba95a680625196969654aa27ac9d92a5f15a
MD5 60b1111149c1c0b62b6ae648cda8f5e4
BLAKE2b-256 2c5d1f18df2daf38b1d26e728764a9c42bc1974358f2b887e88b24e1f776af89

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e98034dd94aed53974b6f7fdeb56338d501837d84fffd19e0abd30b08fdee612
MD5 9fcb32851db896a27009807cd23cede4
BLAKE2b-256 a9fb848e33632210ce1ae22356f5d1ae4dc205a3cfb25497cb2a0288f114681d

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.10-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.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f8e75a6ccb53019a5c069b0bd8ed659be3d6c9b0a5d4eb50b54b46cd3a2898a1
MD5 87ae6f4add0d6bacc57d87a59e304e72
BLAKE2b-256 0be2afe2605bd43737e2b54c4e573f7a5043ae7378bb6d607fe85a453d8b574e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 22ea5234903de3a14133df63fcfed2605091b5c8b80062a397a7a9a83f0812c1
MD5 07f1c2ecb51b65a30be49b34c4848956
BLAKE2b-256 2660dc85075a93013cfa154bbfb4563490ecc47e059409be4fbb2a0d31dcb940

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 82fe0db5deca0240982692195e32dfd6ede222cb38e6fd5d90cfeb6418d96f34
MD5 740ecf8507e9798fb16102bd6489721c
BLAKE2b-256 ca7e958c120a115da1bd01bbadb89b53cf3cb62cdfc484be2d17b3511b07122c

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.10-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.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c103e0050e6b391cb4c06b2ef9b9154b9baff767836a5d71bb2d84cfb7f7d541
MD5 00087614d64745beabbde265ed45a8a7
BLAKE2b-256 89004a27a5cba168656faff981aefc8300acc0503006c10fb8f65e30ecea6160

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3444af5af861f35fce3c0c86f1c6f47d63817fe120fe71d447ba0fde0f5f1c31
MD5 bc05a9c8e259283e763346ecdd2098e5
BLAKE2b-256 af97e681a16f78cefcbb40ad090ad21d1b83f31b50d6a6cd83258991d0465327

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e000548add53c787469d4775812ea9951cbbd9402c1ee64fbda7ce32b1435c2b
MD5 c7b78d5e9fd5645364d0b120cf71a432
BLAKE2b-256 ee433c4240661b5af4f8c6e97bd6e4ea1ad1fccea4eb7c46b36b581f244852ba

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.10-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.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3349d23863d61fbab0b73be548a1249284ecbefb1496584e16c9e29c0bc87083
MD5 3f584c690562190ac13da4782e9194f2
BLAKE2b-256 cb19ef41d2d50ae0136a70ad820ae1972edff56840014032b93b16b607621d8f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9190ee193bdce619515234afe6e1b12ea2053b447abe097091b6a661787f6837
MD5 15170249e8fba660ad1b8e77a276ba9b
BLAKE2b-256 f7888d5eea007099cf88f39ef56bbfd3619870a40891ed5b29249fd81ce93ac2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 639fa934b7974e277f0010aab739d44db8b260c707c8b77011bd3628ac7f9d7c
MD5 dc98594618bc545d9e619d4aee022ff4
BLAKE2b-256 6ffceac4f78793334d32a901a0911279ca92291689340f83966d187bb13ed47b

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