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

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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

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

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.10 Windows x86-64

efel-5.3.3-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.3-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.3-cp39-cp39-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.8 Windows x86-64

efel-5.3.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: efel-5.3.3.tar.gz
  • Upload date:
  • Size: 109.3 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.3.tar.gz
Algorithm Hash digest
SHA256 efbf101116af84f57d818676a56f349e0cd28047333ab0eb7f6bf2ca0b7ab8c7
MD5 a097479712849c60b06d1d8ca92e2580
BLAKE2b-256 d84bc6066b9fd5a18cf5946e09eb49a3736412c97d2502f23df48c3d322daa2c

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3c5fe4ffd0a10e77fc0f7498d17ff91ce91173cc3e697debfd4c0213b8edd4e0
MD5 f22ba58e9c0067057bb5bbf9aba1c887
BLAKE2b-256 3bf458a540052a21b97992419847cf66ee45827c7e565bbb1e987968a64de570

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df3b392223ba99d34c2ca4c7b38ac18726ebc68afb569c494b4dd05e91abc234
MD5 86bb881c072b613d6c1818e77f3d313b
BLAKE2b-256 401b31f02fd3d505b777c59682afb058a4f2596bc6e56167d73a47d6b68cb1bf

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 979d77fc5a8205bb9118d63bdda076fe0af28ae355e1d80277c278098da3520b
MD5 d7000edb4f61d5f74a8294e6f62023a8
BLAKE2b-256 caf0821ea0a5be68a3c5eb5babde3949ff60e233222c046730f4e18d80d4be66

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.3-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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 000d664279be46cba2bb2ee4ebafbc3b9e679b0f8e4b7d6c8c390363d4056d2e
MD5 d0a26a1870d1f3b06f43a7511e59e338
BLAKE2b-256 4e3a53d7c74dc687d5754c8f9f1df4381135133cff444ef8c1a96f5a1dbe4384

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 101dfca00c8c8a81b1db1cc16d229628adb8ec3a6be604889a55a1952d4ef181
MD5 4411179bbeed3a7f5dfb9fa44d8b9e78
BLAKE2b-256 3c9281878f27360ba212afe2ecea12ec945bb00a845202a02bc5cc6ccdf0b3b7

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c4aa795eda39a28f04b0941b82f482ec22084c009ebcb6f62a955982af06f07a
MD5 8dbfffec988292febe0aafc8e42f231a
BLAKE2b-256 1b8715a2a1fdda20f7dbb3331cc86156b575df8ae662d5ab970d4f02f7cb0dcb

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.3-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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 92c07fa3a865296712fce6400f681d9752051192a2c4675ab02ab669b1d2e7e6
MD5 8fa4d62360978e7d400d2a6251002895
BLAKE2b-256 d15a2da3b96c40bd63f56476fba189f86b7e45d9b0364e102fc6e107c331ef9e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b64ee1a104942aee422b3931bcd7c8accbb2c248b0ba5a7bf572e8d7cdb2d2d
MD5 c5036d21c145ada554ad40210c9a0533
BLAKE2b-256 8de4a0f4a84b6433cb81823e5c6586618f6f07a9590fa971a1ad7976e1906980

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9d8ba630d84359dfa5210f4dffe90456152d41eb7d5cea2effa3caf03e8c860c
MD5 b6cbfbab00ffad0dee6a2105e7c6f303
BLAKE2b-256 bc1c0af60a1ebb3cd6f40ded8625f45237a2383ca3a0ae4f6ce7a4176c0574fc

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.3-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.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 73cb0f1402f902961c7306dbe5e094a9cffd8f630770272eb28732a00fea4df2
MD5 c4c7792fec0ea6466b2fb3967dd49ba5
BLAKE2b-256 99165184bf9048d86c420fd0b9ee727815976a95c3ae29352b0445a01eeed880

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c0e6d7135bdc72904bbc54d656f642ab828e3fab3e4bb5aca1e53ae5ad3e7bf
MD5 ad0f3993c260e162cb5535d8b17e6633
BLAKE2b-256 5f896ef6c23e271f50aa445a502f1fe1eb37b77062404b2013e55b4e932a87b3

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8354564bdb397622e60dd3759dccc3c52127d4891f7a8abf080bcc5d655a0fa4
MD5 255a72c31775e12a430ef04512ce3fed
BLAKE2b-256 245bbd0d8cd650e3c09d09da49002e71570328ee56663fd3e6a97eb54fd1a20c

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.3.3-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.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b97e3a888b6728bfedaa360998722077be4243f06a947bf4a3b31a47c9eaef01
MD5 d083c8168a3bc6e640102e369da6ddda
BLAKE2b-256 eeea14c8fe50964e651f9b819b521f8de6a8b15334e364cc34c5b566d6324b88

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79e9348e3369deb6895e20759e142c3222817a967b8fd270b66b50252069f1d0
MD5 4f48cc2e74cc40a4f11d021562f83dfc
BLAKE2b-256 d6a3f7dafc6af28da6b09beab744892789dde27853c4b60fa173fa9800a02d9e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.3.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 551fa2140e67ba20b65686ff895d5b14f21220578164735885277559ace2a471
MD5 f8d0822bfce5a88d15a11fa216562857
BLAKE2b-256 0aff26b7401a59873f3d4392a30a9f9a8b0b8d7ac1ad882e1080075a3fd2f6b0

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