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

Uploaded Source

Built Distributions

efel-5.4.0-cp312-cp312-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.12 Windows x86-64

efel-5.4.0-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.4.0-cp312-cp312-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

efel-5.4.0-cp311-cp311-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

efel-5.4.0-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.4.0-cp311-cp311-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

efel-5.4.0-cp310-cp310-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.10 Windows x86-64

efel-5.4.0-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.4.0-cp310-cp310-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

efel-5.4.0-cp39-cp39-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.9 Windows x86-64

efel-5.4.0-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.4.0-cp39-cp39-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

efel-5.4.0-cp38-cp38-win_amd64.whl (211.6 kB view details)

Uploaded CPython 3.8 Windows x86-64

efel-5.4.0-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.4.0-cp38-cp38-macosx_10_9_x86_64.whl (256.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: efel-5.4.0.tar.gz
  • Upload date:
  • Size: 99.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for efel-5.4.0.tar.gz
Algorithm Hash digest
SHA256 9bb47104259e5d06f4dfa7b6bf90baa71f5de6fa1a46cc78467359f6cbefefa9
MD5 225403d6e545126c941437ff2bb63ffd
BLAKE2b-256 debaa08d59bf2784bca67b1baeca15aabe894b06610bc6eeab3a278db61daaa2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a4979b514478d3fcde0d569dc9043086d68a30f3cfd9fe922d55e012a9ea8404
MD5 bcd5f3615913f3cf58fa579a75f21751
BLAKE2b-256 78767fd3d3d9c3474cd2bc463d34ae5f85f716caf3ee966f6647328999424a9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ec22cdedf9d23db899c709ec48f08d3d0114b489b6ec36e54d682b7971e9b47
MD5 04f631d3b07441bb7059cbc934bcab62
BLAKE2b-256 c71bd9c5ce296bfc6d0c72e15eb56217206dedb2cbf026aba881382bcde16514

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2a0e6d966fde1636f0669d21220f179cd3d5780de85aad9193374134ae36c31a
MD5 7afb3f11411db534750105e479c58659
BLAKE2b-256 24008c355b221757a9c42cc8e8965c41f347807b13bdcd514ec9600c21627c90

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 948eeeb202cb34a3e314812a7e4b064380daa37fd050058a41fdb8370a981158
MD5 9ddec491257ed6689427127a64b51e52
BLAKE2b-256 34e2e8713c028281eb00adb0adbe950eae8c7fa67560f1702ce25d63a3248dc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3276f2ec07ede74ae21d87300be7554a380d9cf64076303c6380ae5d6668a59
MD5 a83d76263ecf0bdda594caa8345481af
BLAKE2b-256 8fc11ba8fa94826f0dee9e886734d2b2581df563c488c3964642163ae29a4099

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1b5aa7401686db1ae3b5acd30166e49d44009680f7702bd6dcedd4b412713989
MD5 0e57635a639fd927d05cd80cb60844ed
BLAKE2b-256 bfb25af4ac159ee3a21fafd9256874eb7e5a0d4aebce216a552af6fd6c3dc660

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ec28569506ae5ecbf39a9e25aaad04548c731f8bc38ed5c8307c676521ee05e2
MD5 fe8bacdbac8ad834c49b2efb445c9b9d
BLAKE2b-256 82159ebf41ea8a8c0f2733a0500e55a534b05eef850a3887959b46734d8d7801

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1bbf2f59d8ab3c67c24130a014d6878350d258352fef3b1058fae621c0817b84
MD5 a139c296e05ce616eccdd643d6f1d278
BLAKE2b-256 dc316e9866cdca1f5f2ced22f50e75d9afdd9f48372a110f5ce64349ba48b65a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 090b79e1fc542c2c815082cf1606c12e3c97ef4cb3347b1eba12c52e9befd6d7
MD5 36e9978045f3d2a0df8ac0eaf62570de
BLAKE2b-256 e99e2d729e84621c2a0a495396dc3416b1dc8a97278700e7b5341011aafd86e5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6553c36d8fec3fc3a09d24a2d9e6736eef2d01ceb6f6418e78ba7b4263637b91
MD5 d654cb70d09f3f195ee75628068c7aa5
BLAKE2b-256 e4d6e3f6cfd9e97cdea316686e19855eb223f875f43cd57dc74d2d33d8304a6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cef790eba0ee37a04ffd9b9fed400f4313e5866f72d601ca272a8af649a8a5e
MD5 7d13842a299708cee6753f7b0866aaec
BLAKE2b-256 f8635309ae10ff7b8e4402cfef0e3498cd34b2fffee10af54bf78acc3d3ae934

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a487bb7a4f35bfd17125f3f986941c9b1f75b1c66fa854703062537568070021
MD5 cd623cd12ec0884069395f404183b01d
BLAKE2b-256 915ffb2f2ddd4b7961f2bb14230fc831a76dd16fc19232bd1e3e3f5b51f26fc4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efel-5.4.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 211.6 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.4.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f46f1b50b46e9514510a711e830ae60ccb7b5f8f86acf8ca6fe3494b0f08e64b
MD5 e3f6a72d044ac2709c1daba31f0c5e5f
BLAKE2b-256 4ffb6c59b5e95c66eb36f36e7765a1e30b9a5464dbfdaf1d5d521e14071b2241

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa0ec77e77b2b6f466fd177142f27bc3c453b82b029247fc92bcec7a6f283cc6
MD5 8d88828ae9fbd1fdabd07474d14904c7
BLAKE2b-256 df4e7edb426652ef355040687fd2d27bb4283bed73d36b89d3932533ea9b28ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for efel-5.4.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 987f82e4cb6b88d58e709641502aeee6630440440912b027f6a2c1f6f12ee3e0
MD5 9da286cb4948b8b2be293e32117cbff6
BLAKE2b-256 bfcab2ce65afde1ea72de9bf18055cf20337a3550eceb72074b67cc846cad5de

See more details on using hashes here.

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