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.0.tar.gz (100.2 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.5.0-cp312-cp312-win_amd64.whl (213.1 kB view details)

Uploaded CPython 3.12Windows x86-64

efel-5.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

efel-5.5.0-cp312-cp312-macosx_10_9_x86_64.whl (258.7 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

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

Uploaded CPython 3.11Windows x86-64

efel-5.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

efel-5.5.0-cp311-cp311-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

efel-5.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

efel-5.5.0-cp310-cp310-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows x86-64

efel-5.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

efel-5.5.0-cp39-cp39-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

efel-5.5.0-cp38-cp38-win_amd64.whl (213.1 kB view details)

Uploaded CPython 3.8Windows x86-64

efel-5.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

efel-5.5.0-cp38-cp38-macosx_10_9_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: efel-5.5.0.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.0.tar.gz
Algorithm Hash digest
SHA256 0c9331e6162d0de58ca5ff9279cd6474a23322c2e942fc937bebe556a29a1b8c
MD5 62d2e21498b13c434e818764e81372b5
BLAKE2b-256 9a8752fe775ea8bc714746730710c6cf7efac6245d87f5ec2595555cd19ac7e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 02fbbb0bb77d1a3a0583bf2a0a555989c4e0fe5d7c2d03d82b4b8cfb1c1bb1f9
MD5 4cc6e2706d6627f14d8e737d25a32d72
BLAKE2b-256 bace18ed28e8fdcb4aa9360bbf2bf6b26f83efd80363057b6fcb68261932bc8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1144d7cf971309ba64e85850f7aedb2a6a06578dcdddd89cb46576f109c6fe79
MD5 d0100b88037faf69bc34051d0e74c435
BLAKE2b-256 36d0f9eb1ec5572b799af94f1733ff1acdc9deb4580f452c304f1842063cbc92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0562072e96d80e5f9eef091ec8ccd8532e14181b17cecb397394cf261cafbac6
MD5 9ee1971ebacd266c2e46dba5ea26437d
BLAKE2b-256 925e13c5fe31a98119e91db0f77536acca5b681f7d02b6ad759a0c610e906dba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.0-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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9c595b2bd9b7b6e89bcc3d43c13ec8e39ecfda6f59683d1f023ff4601cf5f0a1
MD5 d5f1628e5d6939d2e5ba99e2dbf1d505
BLAKE2b-256 298388cd9cfdd9c636d4e00ce4333ec48533e984820f15777253e870bb62ebeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 943c36d943bcf44344356f2e7622c20c22dcc61050feb50066bb75a76f0b6da0
MD5 e22325e23269655d0f1c3a5572a04e4f
BLAKE2b-256 c3c7806a7e2d81fd7d7fb8b98087cf28a48121d7b49fcf2fb5dbf832a515d9f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4a9fdac50f07106d0564052c5f7e0a4852b2734839ccac340aea4797bea5a014
MD5 63b33263899d846c3830d7d497d57a40
BLAKE2b-256 7dce035d1ab0a59e578c318c71cd79efa4017793f207415ca1e8a1162996e046

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8956cc3f470fff4654d4f6d219c39ed30cb762c370f39606626ef07a45c80349
MD5 16c9a1973097b53b464deea20982917b
BLAKE2b-256 e10198ea5a6befc9c5eecbf5a87afce4edf4a560f6bfdc96d7a9e894af3dfe27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d44d06f23b0346e03b734391bcaa331da575838fa81bbaaa717ed7ece6b1115
MD5 eebfbcb380b1c7c6a4f667b5cf03c5ae
BLAKE2b-256 20d62cc73e88be71359358a43b4d6a0bd4270e4a9ceb0b85b1c544b8f149d6cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f161f104646babe6f4e4b5ea7b42531f528a072949874b5c503881785d32115d
MD5 212d7badc1b306aa646b4b910abc21ad
BLAKE2b-256 43fa3acef7c4b48141fcb6b51d671d1eabb945a9326dd4e367025e91ca1efbd0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.0-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.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 74585b66db2962055f0c54240916a78716e02b25865d516a8abadea6c9964bdd
MD5 c22a6991ea4856b1a820992184a3e44f
BLAKE2b-256 48d261c422e0fb2677a74b8a5c16fbd3aae93c6694f23d41cf14f73caf8aed26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f64bab1da5695fadf8de7a989b6536e84ab736e526b2b9aaac5897f3bd0b5a7a
MD5 2d296c052d959e9985e8d74d38038410
BLAKE2b-256 105ddf808379c82d7086236f6b2337b8cdd67d56b36c6358215361ec3cdd975f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 258.6 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.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 79b2e4a883482618d62073afd02c727666b27c49893fc6d113510b2703dd783f
MD5 c2c8e0c145186ee84a6e662ad5d70039
BLAKE2b-256 2d399fda15566fdbb144cd1a015ac10c49043348e0aba67f3e5223935111127b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 213.1 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.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f98c6bf1487fb44100c08499fdc0037c52b05331debf586afca2e5635b560346
MD5 db351c0ea61e03cb43912244cf55885e
BLAKE2b-256 298dcc0fbb45e40da1430eca4554652785a622f886d73121d5d5ec93da324e2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3fbf61be2c40bf34ec927d9d2abb2841ab4f868487a974cfe056a67c2ced4ad
MD5 4b7ebc5c75b0226fe639c4f6fd53d529
BLAKE2b-256 7ca2b19b2314531156eacbf7a1b4eb03ce0fb9e543c7796b508ee279fb6804f0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.5.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 258.6 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.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f91f03cc80a89e567610e2e4a58d12512c9e5a12e3e0e6faad7ce673d7b1097d
MD5 4775e434c00c8df2fd1fc0903622591d
BLAKE2b-256 9a3c743ad0206379e840b715ea50403e95c36b01d4db1dcaab22fccab940330e

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