High-resolution Rat Local Field Potential Atlas

High-resolution Rat Local Field Potential Atlas

Local field potentials (LFPs) capture electrophysiological activity recorded from neural tissue. In this example, we query LFP recordings and spectra from a high-resolution rat atlas dataset linked to regions of the Waxholm Space atlas.

import siibra

We start by selecting the Waxholm Space parcellation and choosing the caudate putamen as the anatomical region of interest.

waxholm = siibra.parcellations.get("waxholm v4")
ventral_orbital = waxholm.get_region("Ventral orbital area")

Query all local field potential features linked to the caudate putamen.

lfp_ventral_orbital = siibra.features.get(
    ventral_orbital,
    siibra.features.functional.LocalFieldPotential
)
print(f"Found {len(lfp_ventral_orbital)} local field potentials")
Found 507 local field potentials

LFP features provide metadata fields that can be used to filter the results. The options can be accessed from siibra.vocabularies:

siibra.vocabularies.get_lfp_options()
{'pathology': {'none', 'intact hemisphere in 6-OHDA hemilesioned animal', 'lesioned hemisphere in 6-OHDA hemilesioned animal'}, 'pharmacology': {'levodopa', 'baseline', 'pcp', 'ketamine', 'skf82958', 'amphetamine', 'mk801', 'sumanirole', 'doi', 'lsd'}, 'signal_quality': {'strongly atypical', 'atypical', 'typical'}}

Here, we restrict the query to baseline recordings with typical signal quality.

specs = {
    "pharmacology": "baseline",
    "signal_quality": "typical",
    "pathology": "lesioned hemisphere in 6-OHDA hemilesioned animal",
}
fts_w_specs = siibra.features.get(
    ventral_orbital,
    siibra.features.functional.LocalFieldPotential,
    **specs
)
print(f"Found {len(fts_w_specs)} local field potentials with specs: {specs}")
Found 101 local field potentials with specs: {'pharmacology': 'baseline', 'signal_quality': 'typical', 'pathology': 'lesioned hemisphere in 6-OHDA hemilesioned animal'}

The same metadata options can also be used to search for atypical recordings. This allows comparing different subsets of the available electrophysiological data.

specs["signal_quality"] = "atypical"
fts_w_specs = siibra.features.get(
    ventral_orbital,
    siibra.features.functional.LocalFieldPotential,
    **specs
)
print(f"Found {len(fts_w_specs)} local field potentials with specs: {specs}")
Found 5 local field potentials with specs: {'pharmacology': 'baseline', 'signal_quality': 'atypical', 'pathology': 'lesioned hemisphere in 6-OHDA hemilesioned animal'}

Inspect the metadata of one LFP feature. These fields describe the subject, recording session, pharmacological condition, pathology, and signal quality.

f = lfp_ventral_orbital[0]
print("subject:", f.subject)
print("session:", f.session)
print("pharmacology:", f.pharmacology)
print("pathology:", f.pathology)
print("signal_quality:", f.signal_quality)
subject: sub-02
session: ses-01
pharmacology: levodopa
pathology: intact hemisphere in 6-OHDA hemilesioned animal
signal_quality: typical

We can plot spectra using any regions including the whole Waxholm parcellation using plot_spectra` method. Here selecting Ventral orbital area, typical recordings from the healthy animals with no pharmacological treatment.

specs = dict(
    pathology="none",
    pharmacology="baseline",
    signal_quality="typical",
)
lfp_spectrum_w_specs = siibra.features.get(
    ventral_orbital,
    siibra.features.functional.LocalFieldPotential,
    **specs
)
siibra.features.functional.LocalFieldPotential.plot_spectra(lfp_spectrum_w_specs)
010 lfp query

Alternatively, region-wise potentials can be queried already grouped for ease of navigation. These are divided by pathology, pharmacology, and signal quality tuples.

lfp_spectrum_ventral_orbital = siibra.features.get(
    ventral_orbital,
    siibra.features.functional.RegionalLocalFieldPotential,
    **specs
)
lfp_spectrum_ventral_orbital[0].data
spectrogram (dB) spectrogram rhythmic (dB (fractal)) spectrogram arrhythmic (dB)
1.098633 748.092287 0.587366 633.763526
1.220703 690.431284 0.513408 579.777490
1.342773 611.726558 0.425719 543.736050
1.464844 549.536762 0.300979 501.482732
1.586914 483.548622 0.261200 453.296340
... ... ... ...
299.438477 0.084109 1.866188 0.053145
299.560547 0.084625 1.920546 0.053525
299.682617 0.085768 1.956708 0.053048
299.804688 0.083961 1.965417 0.052730
299.926758 0.084265 2.012955 0.052760

2449 rows × 3 columns



Plotting functionality requires no further input

lfp_spectrum_ventral_orbital[0].plot(backend='plotly')


Total running time of the script: (0 minutes 38.137 seconds)

Estimated memory usage: 111 MB

Gallery generated by Sphinx-Gallery