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

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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded CPython 3.12Windows x86-64

efel-5.3.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

efel-5.3.8-cp312-cp312-macosx_10_9_x86_64.whl (234.2 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

efel-5.3.8-cp311-cp311-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.11Windows x86-64

efel-5.3.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

efel-5.3.8-cp311-cp311-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

efel-5.3.8-cp310-cp310-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.10Windows x86-64

efel-5.3.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

efel-5.3.8-cp310-cp310-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows x86-64

efel-5.3.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

efel-5.3.8-cp39-cp39-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

efel-5.3.8-cp38-cp38-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.8Windows x86-64

efel-5.3.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

efel-5.3.8-cp38-cp38-macosx_10_9_x86_64.whl (234.1 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: efel-5.3.8.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.8.tar.gz
Algorithm Hash digest
SHA256 594638c0cb1a8e3795276ee3a9c8f99596bb7760c76a2558390dad4b5fcae81e
MD5 c73db4d6edf0aa26cb84ff46e8158a9d
BLAKE2b-256 7218727b7d2bb07a1ca96b1f4730c3c8cfa57b5a1c25f90afea33d35f2c98cb7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.3.8-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.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0c61982dfbc79d55dc4414383912974b8f6397c01b35b7e142b61bdba0bbe2fb
MD5 fc8fced4e929555192d6510f1f8a4864
BLAKE2b-256 8a41259e61fd5eb6c3bf888f4ccb567b92f9da2565bd3873278fd9bbc0003f52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8bf982a96d44a2f2718e6d147d0426cd26b687cce5c792d236eb4ad7002ac315
MD5 7caff743d6ed3eba29bc426cd60d563e
BLAKE2b-256 fc040ac66cdba1f8990e6eba78186932aefe9997b60d4ac7271b039a9fed9d8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 85e7b669e46c6ee289c9df6b6bd1194fda7b89864380a88c658cfad23afee43d
MD5 755d0c083d9f619bb9afd6a1cab9fe6e
BLAKE2b-256 319c2274c69a9154872a4ddc28ad2613faf46f60ea3ab6a3e7cb23aeb6317349

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.3.8-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.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 69489fa97439e1a4991e1f5324b7c8ccf74c68c4b6323ca6d4cf4e034fae4ce5
MD5 82967765b072e06374f1bc0608f7c3fd
BLAKE2b-256 18db7d5169eb87543399e4f6ad429a217c7d6cee7879bce6a61a1433eca8de9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c442defb4f6840a3c9f768f335aacfdff97ea844d4e3d3e0ca7f39adf09a06d4
MD5 d17129e4bde1db6864d077b2b0571ee4
BLAKE2b-256 549c62e723e5861d8c556f4ffa5328847c8e6bbefde2099d508a575e60fb062d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0b699211f4fe76cc6bf4cb05904fdefc1122da0a74e84cc7eba3cbe962424596
MD5 d13db0615a2df1d779700d37ed13628d
BLAKE2b-256 ecf43c189fad9566d16cfbaa9de69e84cbc45adbc0952a168f22a813606b23c6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.3.8-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.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 238d244d13a63196e1135726efae7160a1c73b8bee5fcdcde89f125cc330da29
MD5 dbafd9533cdcd46859529e65aa359e00
BLAKE2b-256 6613f767e0556831bc3e5216930da51de5acd49da150119da1e5540ec97a91d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49c237dd9e9c0495428241a8ed64f934ec41be9131047922921bd3a33fd66f11
MD5 7fc1eedfaa176fa5fb21cfb72cb0acd4
BLAKE2b-256 64a7efa69646b7fda16900ec977351db94447f72087888a1276694a45843219e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1d1ce359f9cccd114bfff51a02e777f6995497f901f4646f2099f485c790cfd7
MD5 7d58dfee82bc837abfd408e2361db6c8
BLAKE2b-256 332936d16efd46aabb069de46c707fcb164bb5360f4a666cc9a7267609b67334

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.3.8-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.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 961d6607c3e494906f1bbc2ee8bc81a4f654b74d3ca6035c247937eef6d3dd34
MD5 c25eb5e0f609bbd07af7c3ec44aae82b
BLAKE2b-256 e6acdb42a9e2151b3cfa1c695c81f0bf18dab2b61334b673f8f385de9a4ed13c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 773b16647aa1efceed3e837c0ae0bb1894f98a0478e6fe6d85d58f80c1002f1c
MD5 2458f486c343fb1fd72c862958dbf2ad
BLAKE2b-256 ef225eafb54f17b729b9116eb7e89c10526bbb63881eb6df3e9b087d6fac5062

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.3.8-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 234.1 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for efel-5.3.8-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d43577bc25aed3fbfc9a89dc18a79c99c58f15d72399ef3c34deae0baa43561c
MD5 dbc59521053152dd5532f2431072db3c
BLAKE2b-256 e539101ee44c1452bc59ad16d65c4766dc99b1f91244d76347640bc585085db6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.3.8-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.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 245e6cee3d84abcb48dc9cfc152f56006508984466f0384b92200fd00b0abcd0
MD5 a7739ee7106fc33218fa407f9c192ca9
BLAKE2b-256 950c80ffbfed54464c80fdfb574dc654ea0a42b2d9069a01418e2aac48afb9ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.3.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 865edd98d3393960da5be7f67fb9a64f0ea88af01545b27b98aaa927c18270f6
MD5 21040b502e35025dc75218825e1031ba
BLAKE2b-256 31a9eaa75d052bc4472aff7d77dd2ccfc79db11213a6c5c8334fc4da5c0048a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.3.8-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 234.1 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for efel-5.3.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 88e9a099435e7163b1c717664f2bb85fb37098644786a8df05c8f8491ebb20aa
MD5 71e3300a7a120abba320404e7ba84d60
BLAKE2b-256 1772af631ea34859a4f2d467565807a3965ab21af1908a9859dfd7645d1a946c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page