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

Uploaded Source

Built Distributions

efel-5.5.3-cp312-cp312-win_amd64.whl (213.5 kB view details)

Uploaded CPython 3.12 Windows x86-64

efel-5.5.3-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.3-cp312-cp312-macosx_10_9_x86_64.whl (259.2 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

efel-5.5.3-cp311-cp311-win_amd64.whl (213.5 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.5.3-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.3-cp311-cp311-macosx_10_9_x86_64.whl (259.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

efel-5.5.3-cp310-cp310-win_amd64.whl (213.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.5.3-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.3-cp310-cp310-macosx_10_9_x86_64.whl (259.0 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

efel-5.5.3-cp39-cp39-win_amd64.whl (213.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

efel-5.5.3-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.3-cp39-cp39-macosx_10_9_x86_64.whl (259.0 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

efel-5.5.3-cp38-cp38-win_amd64.whl (213.5 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.5.3-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.3-cp38-cp38-macosx_10_9_x86_64.whl (259.0 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: efel-5.5.3.tar.gz
  • Upload date:
  • Size: 100.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.5.3.tar.gz
Algorithm Hash digest
SHA256 499c8626795a3e7846dcc09d13a11578abd851a18d9fd493cdc0b458ca0fa1bf
MD5 ce8587e9d4d1f36f176e8ae8502913cd
BLAKE2b-256 e2311b553c3970d9ba8f21abd461a0f31c85c95311a4d8d5c2468a679649ad14

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 213.5 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 82518bf0cc5848b74f39457206b0aa3cec27a64c8c21a0d3e90e91db0089e11c
MD5 a5074999ac9e0e16fb27d8de4be88e4d
BLAKE2b-256 79a099812a6d9c53bd2641f4e31f42b6e227b97e852e86ba1b80d5dd51e9a3f0

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5fd5f6ade53fc7d4a437f5094333ca978e586a1f59ab6d5656db3778f7e0c62
MD5 6487df3ab01d80283fc5b7b05eda8e37
BLAKE2b-256 fbc11e542434281691847185557f21441e77188bde124d7e83ae0e2bc415e100

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d91539eb289c7a0454ab4c92dde42210a4f44e21690b3c62707a25bb5ab35cc5
MD5 a7418042bc9a177444fedd350baf4cdc
BLAKE2b-256 c470fe5a6cd232bacd644ab3985b301e9ba82384d1ff550573413f61867e0841

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 213.5 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3212b8dbb8a96005597243c70d0d484e6c3f56e8e4ce6f2b47266a2a7582b380
MD5 efd867f40d6d22580551ec2bf1fb16d1
BLAKE2b-256 9fd98e027523a0a5ee386131033bb8bec60384dc43650bd4c88096f45bc6657e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b3dde6a2aaa1e8f6e54a4d30f6ce67639bd8f5dea3c0d19729a05d2eb322f7d
MD5 14f2816df2b57be164143ff7a429c0b8
BLAKE2b-256 b56a5bc5016a4dfc86e432fa1adc2a44381d598006a92e691beded94233af31f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 64a785b4ad86c10bbbaa0b7b487f7377e4249a98add33ef569f308ef94886b78
MD5 45e453400a742d2c41abda60113169b7
BLAKE2b-256 6ad1b9794bd19b1e5226b99097bfbe048d2f1e072a6d1aa043a8c28731b7bcf6

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 213.5 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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 14830ce7c3646b1d8ed59a93b244b877b34f0dd5337e97948b6c90aa567cfd72
MD5 db0bc12624b9e56548c171ec0099247e
BLAKE2b-256 5d5fd61dd80ff0f8606660d1c129fc53cda35af72cea591a66c2b8aeac3bd05f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d50e050b606aebfd6777417a9becb45be4cc7ee5823fed5a2930be2ba19259f6
MD5 c42075e23ba4622fba97306ca1addb0c
BLAKE2b-256 38cf792e6d7f5ed0cdef08edc9188d1d591fb0ad97311a87190e000bfbbdc071

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 29042496098a6390dcaf364e584cb4700683840aca718f4db98e8fa32b08f538
MD5 1ddb417838a912af8a74e452b58f7f78
BLAKE2b-256 017f012b6792040ae99d254f09a30c38658e685dfd508dea92abca240c8a0a9b

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 213.5 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.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f1f998fa67f51ac5ab7528c17f3c43f9f314366f8fee4c274d518dd4435c3109
MD5 69d050199892472247f3f6f213997450
BLAKE2b-256 94c920b6e977585a07081002f28d5bc16478d18b2493d3c628b4909c38b9168e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f22b510fc5a90abb84c737535e98fd6e867b0912e16c631ab77fcedf23811e5e
MD5 7a0998f625dbb8edca987518456c82f8
BLAKE2b-256 6fd4f3e38d31b8054b469e0fabfb50e383195a75e952221266d224771992fc0b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 25cb08957f4872ea998b6fa40dacd969817e1240491b9dfbd812127cfc798148
MD5 98926b2a0f9754d88ed70bee3c0593e6
BLAKE2b-256 1451b93f000e67fb5c164cd384e116e439e9b891918eff8cf93c429ccccea79d

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: efel-5.5.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 213.5 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.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a117526a91bc0a6eb646dceafcb2b0a946e06aade3e5f34e2f4afea6d54004bb
MD5 9adcde9097d106d2e9feb33d7c1e9121
BLAKE2b-256 316aeb39b1dfc90588763aa57ef82caa1287664b3b0670f0e51577b1213dc1b5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cadc5221949501c3ad13d96e819ca82e887857243e5ce034b4640a8369f50b97
MD5 553f9e0136ced94bb9349c7dd0bd6ca9
BLAKE2b-256 87461d3bb38eea8d13696a1900ee41a96e6b8126977e19ac75fe44a3533ed2f9

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for efel-5.5.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f598a74ce4d70e711215bb5a21c2a522a1cb32b450b078c44eebe4cdf14f5d85
MD5 bf654c21f6d22ce5e96da75c85a9ec22
BLAKE2b-256 1bccd519e1de8cb162e860cbf9b4d771bf8de6d6b1cc6c947bf1f5c6b96fd910

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