eeguana

A package for manipulating EEG data in R.

https://github.com/bnicenboim/eeguana

Science Score: 46.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 6 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.3%) to scientific vocabulary

Keywords

dplyr eeg eeg-analysis eeg-data eeg-signals r tidyverse
Last synced: 6 months ago · JSON representation

Repository

A package for manipulating EEG data in R.

Basic Info
Statistics
  • Stars: 24
  • Watchers: 4
  • Forks: 9
  • Open Issues: 38
  • Releases: 8
Topics
dplyr eeg eeg-analysis eeg-data eeg-signals r tidyverse
Created over 7 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing License Codemeta

README.Rmd

---
bibliography: papers.bib
output: github_document
---
 [![R build status](https://github.com/bnicenboim/eeguana/workflows/R-CMD-check/badge.svg)](https://github.com/bnicenboim/eeguana/actions)
[![Codecov test coverage](https://codecov.io/gh/bnicenboim/eeguana/branch/master/graph/badge.svg)](https://codecov.io/gh/bnicenboim/eeguana?branch=master) 
[![DOI](https://zenodo.org/badge/153299577.svg)](https://zenodo.org/badge/latestdoi/153299577)  [![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)
[![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)



```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# eeguana 

## Overview

A package for flexible manipulation of EEG data. `eeguana` provides a `data.table` powered framework through `tidytable` for manipulating EEG data with *dplyr*-like functions (e.g., `eeg_mutate`, `eeg_filter`, `eeg_summarize`) extended to a new class `eeg_lst`,  other EEG-specialized functions, and `ggplot` wrapper functions.  The new class is inspired by tidyverse principles but it's not really "tidy" (due to space considerations), it's a list of (i) a wide *data table* (`signal_tbl`) that contains the signal amplitudes at every sample point of the EEG,  (ii) an events *data table* with information about markers (or triggers), blinks and other exported information, and (iii) a long table with experimental information, such as participant number (`.recording`), conditions, etc.  

*eeguana* can do only basic pre-processing for now, more complete packages exist for Matlab ([FieldTrip](http://www.fieldtriptoolbox.org/) and [EEGLAB](https://sccn.ucsd.edu/eeglab/index.php)) and python ([MNE](https://martinos.org/mne/stable/index.html)).

See [Reference](https://bnicenboim.github.io/eeguana/reference/index.html) for more information about the functions of *eeguana*.

**NOTE: Changes in dependencies that broke the package are now fixed!**

## Installation

There is still **no** released version of *eeguana*.  The package is in the early stages of development, and it **will** be subject to a lot of changes. To install the latest version from github use:


``` r
devtools::install_github("bnicenboim/eeguana")
```

## Example

Here, I exemplify the use of *eeguana* with (pre-processed) EEG data from BrainVision 2.0. The data belong to a simple experiment  where a participant was presented 100 faces and 100 assorted images in random order. The task of the experiment was to mentally count the number of faces.

First we download the data:

```{r downloading, results='hide', eval = any(!file.exists("faces.vhdr","faces.vmrk","faces.dat"))}
# Run the following or just download the files from brain_vision folder in https://osf.io/tbwvz/
library(httr)
GET("https://osf.io/q6b7x//?action=download",
  write_disk("./faces.vhdr", overwrite = TRUE),
  progress()
)
GET("https://osf.io/ft5ge//?action=download",
  write_disk("./faces.vmrk", overwrite = TRUE),
  progress()
)
GET("https://osf.io/85dgj//?action=download",
  write_disk("./faces.dat", overwrite = TRUE),
  progress()
)
```

BrainVision 2.0 exports three files: `faces.vhdr`, `faces.vmrk`, and
`faces.dat`. The file `faces.vhdr` contains the metadata and links to the other
two files, `faces.vmrk` contains the triggers and other events in the samples,
and `faces.dat` contains the signals at every sample for every channel recorded.


```{r libs, message = FALSE}
library(eeguana)
```

We first need to read the data:

```{r}
faces <- read_vhdr("faces.vhdr")
```

The function `read_vhdr()` creates a list with data frames for the signal, events,
segments information, and incorporates in its attributes generic EEG information.

```{r}
faces
```

Some intervals were marked as "bad" by BrainVision, and so we'll remove them
from the data. We'll also segment and baseline the data. In this experiment, the
trigger "s70" was used for faces and "s71" for no faces. We'll segment the data
using these two triggers.

```{r}
faces_segs <- faces |>
  eeg_segment(.description %in% c("s70", "s71"),
    .lim = c(-.2, .25)
  ) |>
  eeg_events_to_NA(.type == "Bad Interval") |>
  eeg_baseline()
```


We can also edit the segmentation information and add more descriptive labels. Once the `eeg_lst` is segmented, the segments table includes the relevant columns from the events table (but without the leading dots).

*eeguana* has wrappers for many `dplyr` commands for the EEG data.  These commands always return an entire `eeg_lst` object so that they can be piped using `magrittr`'s pipe, `|>`.

```{r}
## To only see the segments table:
segments_tbl(faces_segs)
## We modify the entire object:
faces_segs_some <- faces_segs |>
  eeg_mutate(
    condition =
      ifelse(description == "s70", "faces", "non-faces")
  ) |>
  eeg_select(-type)

faces_segs_some
```

With some "regular" `ggplot` skills, we can create customized plots. `ggplot()` applied to an `eeg_lst` object will downsample the signals (when needed), and convert them to a long-format data frame that is feed into `ggplot`. This object can then be customized. 

```{r plot, fig.dim = c(10,15), out.width = "100%", results = "hide"}
library(ggplot2)
faces_segs_some |>
  eeg_select(O1, O2, P7, P8) |>
  ggplot(aes(x = .time, y = .value)) +
  geom_line(alpha = .1, aes(group = .id, color = condition)) +
  stat_summary(
    fun = "mean", geom = "line", alpha = 1, size = 1.5,
    aes(color = condition)
  ) +
  facet_wrap(~.key) +
  geom_vline(xintercept = 0, linetype = "dashed") +
  geom_vline(xintercept = .17, linetype = "dotted") +
  theme(legend.position = "bottom")
```



Another possibility is to create a topographic plot of the two conditions, by
first making segments that include only the interval .1-.2 *s* after the onset
of the stimuli, creating a table with interpolated amplitudes and using the ggplot wrapper `plot_topo`.

```{r, echo = FALSE, results="hide", message = FALSE}
#fixes bug?
dev.off()
```

```{r topo, fig.dim = c(10,5), out.width = "100%", results = "hide"}
faces_segs_some |>
  eeg_filter(between(as_time(.sample, .unit = "milliseconds"), 100, 200)) |>
  eeg_group_by(condition) |>
  eeg_summarize(across_ch(mean, na.rm = TRUE)) |>
  plot_topo() +
  annotate_head() +
  geom_contour() +
  annotate_electrodes(colour = "black") +
  facet_grid(~condition)
```

## Articles and dissertations using `eeguana`

---
nocite: '@*'
---
## Other R packages for EEG/ERP data: - [permuco4brain](https://jaromilfrossard.github.io/permuco4brain/index.html) provides functions to compute permutation test in brain imagery data. It is specially designed for M-EEG/ERP data. This a [vignette](https://jaromilfrossard.github.io/permuco4brain/articles/permuco4brain-with-eeguana.html) explains how to use it together with `eeguana`. - [eegUtils](https://github.com/craddm/eegUtils) some helper utilities for plotting and processing EEG data in active development by Matt Craddock. - [erpR](https://cran.r-project.org/package=erpR) analysis of event-related potentials (ERPs) by Giorgio Arcara, Anna Petrova. It hasn't been updated since 2014. - [mne-r](https://mne.tools/mne-r/index.html) provides fast acccess to MNE-Python from within R.

Owner

  • Name: Bruno Nicenboim
  • Login: bnicenboim
  • Kind: user
  • Location: Netherlands
  • Company: Tilburg University

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "eeguana",
  "description": "Flexible manipulation of EEG data in R. It provides a data.table powered framework for manipulating EEG data with dplyr-based functions (e.g., `mutate`, `filter`, `summarize`) extended to a new class, eeg_lst, other EEG-specialized functions, and `ggplot` wrapper functions. The new class is inspired by tidyverse principles but it's not really \"tidy\" (due to space considerations), it's a list of (i) a wide data table (signal_tbl) that contains the signal amplitudes at every sample point of the EEG, (ii) an events data table with information about markers (or triggers), blinks and other exported information, and (iii) a long table with experimental information, such as participant number (.recording), conditions, etc. eeguana can do only basic pre-processing for now.",
  "name": "eeguana: Flexible Manipulation of EEG Data",
  "relatedLink": "https://bruno.nicenboim.me/eeguana",
  "codeRepository": "https://github.com/bnicenboim/eeguana",
  "issueTracker": "https://github.com/bnicenboim/eeguana/issues",
  "license": "https://spdx.org/licenses/MIT",
  "version": "0.1.10.9001",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.3.2 (2023-10-31)",
  "author": [
    {
      "@type": "Person",
      "givenName": "Bruno",
      "familyName": "Nicenboim",
      "email": "bruno.nicenboim@tilburguniversity.edu"
    }
  ],
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Kate",
      "familyName": "Stone",
      "email": "kate.stone@uni-potsdam.de"
    },
    {
      "@type": "Person",
      "givenName": "Mark",
      "familyName": "Fairbanks",
      "email": "mark.t.fairbanks@gmail.com"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Bruno",
      "familyName": "Nicenboim",
      "email": "bruno.nicenboim@tilburguniversity.edu"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "akima",
      "name": "akima",
      "version": ">= 0.6.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=akima"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "tibble",
      "name": "tibble",
      "version": ">= 2.1.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tibble"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "plotly",
      "name": "plotly",
      "version": ">= 4.8.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=plotly"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "R.matlab",
      "name": "R.matlab",
      "version": ">= 3.6.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=R.matlab"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "reticulate",
      "name": "reticulate",
      "version": ">= 1.11.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=reticulate"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 2.0.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "roxygen2",
      "name": "roxygen2",
      "version": ">= 6.1.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=roxygen2"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "version": ">= 1.21",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "version": ">= 1.11",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "spelling",
      "name": "spelling",
      "version": ">= 2.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=spelling"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "version": ">= 3.2.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=covr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "httr",
      "name": "httr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=httr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "cowplot",
      "name": "cowplot",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cowplot"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rstudioapi",
      "name": "rstudioapi",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rstudioapi"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.1.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "stats",
      "name": "stats"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "ggplot2",
      "name": "ggplot2",
      "version": ">= 3.1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggplot2"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "dplyr",
      "name": "dplyr",
      "version": ">= 1.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=dplyr"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "tidyr",
      "name": "tidyr",
      "version": ">= 0.8.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyr"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "purrr",
      "name": "purrr",
      "version": ">= 0.2.5",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=purrr"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "tidyselect",
      "name": "tidyselect",
      "version": ">= 0.2.5",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyselect"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "tools",
      "name": "tools"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "magrittr",
      "name": "magrittr",
      "version": ">= 1.5",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=magrittr"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "version": ">= 0.3.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    "11": {
      "@type": "SoftwareApplication",
      "identifier": "MBA",
      "name": "MBA",
      "version": ">= 0.0.9",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=MBA"
    },
    "12": {
      "@type": "SoftwareApplication",
      "identifier": "data.table",
      "name": "data.table",
      "version": ">= 1.12.2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=data.table"
    },
    "13": {
      "@type": "SoftwareApplication",
      "identifier": "edfReader",
      "name": "edfReader",
      "version": ">= 1.2.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=edfReader"
    },
    "14": {
      "@type": "SoftwareApplication",
      "identifier": "gtable",
      "name": "gtable",
      "version": ">= 0.2.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=gtable"
    },
    "15": {
      "@type": "SoftwareApplication",
      "identifier": "scales",
      "name": "scales",
      "version": ">= 1.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=scales"
    },
    "16": {
      "@type": "SoftwareApplication",
      "identifier": "fICA",
      "name": "fICA",
      "version": ">= 1.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=fICA"
    },
    "17": {
      "@type": "SoftwareApplication",
      "identifier": "JADE",
      "name": "JADE",
      "version": ">= 2.0.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=JADE"
    },
    "18": {
      "@type": "SoftwareApplication",
      "identifier": "methods",
      "name": "methods"
    },
    "19": {
      "@type": "SoftwareApplication",
      "identifier": "MASS",
      "name": "MASS",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=MASS"
    },
    "20": {
      "@type": "SoftwareApplication",
      "identifier": "RcppRoll",
      "name": "RcppRoll",
      "version": ">= 0.3.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=RcppRoll"
    },
    "21": {
      "@type": "SoftwareApplication",
      "identifier": "ellipsis",
      "name": "ellipsis",
      "version": ">= 0.1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ellipsis"
    },
    "22": {
      "@type": "SoftwareApplication",
      "identifier": "fastICA",
      "name": "fastICA",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=fastICA"
    },
    "23": {
      "@type": "SoftwareApplication",
      "identifier": "pracma",
      "name": "pracma",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=pracma"
    },
    "24": {
      "@type": "SoftwareApplication",
      "identifier": "tidytable",
      "name": "tidytable",
      "version": ">= 0.10.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidytable"
    },
    "25": {
      "@type": "SoftwareApplication",
      "identifier": "gsignal",
      "name": "gsignal",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://github.com/gjmvanboxtel/gsignal"
    },
    "SystemRequirements": null
  },
  "fileSize": "96743.062KB",
  "citation": [
    {
      "@type": "SoftwareSourceCode",
      "datePublished": "2018",
      "author": [
        {
          "@type": "Person",
          "givenName": "Bruno",
          "familyName": "Nicenboim"
        }
      ],
      "name": "{eeguana}: A package for manipulating {EEG} data in {R}",
      "identifier": "10.5281/zenodo.2533138",
      "url": "https://github.com/bnicenboim/eeguana",
      "@id": "https://doi.org/10.5281/zenodo.2533138",
      "sameAs": "https://doi.org/10.5281/zenodo.2533138"
    }
  ],
  "releaseNotes": "https://github.com/bnicenboim/eeguana/blob/master/NEWS.md",
  "readme": "https://github.com/bnicenboim/eeguana/blob/master/README.md",
  "contIntegration": [
    "https://github.com/bnicenboim/eeguana/actions",
    "https://codecov.io/gh/bnicenboim/eeguana?branch=master"
  ],
  "developmentStatus": [
    "https://www.tidyverse.org/lifecycle/#experimental",
    "https://www.repostatus.org/#wip"
  ],
  "keywords": [
    "eeg",
    "eeg-signals",
    "eeg-analysis",
    "eeg-data",
    "r",
    "tidyverse",
    "dplyr"
  ]
}

GitHub Events

Total
  • Issue comment event: 4
  • Push event: 4
Last Year
  • Issue comment event: 4
  • Push event: 4

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 770
  • Total Committers: 6
  • Avg Commits per committer: 128.333
  • Development Distribution Score (DDS): 0.049
Past Year
  • Commits: 40
  • Committers: 1
  • Avg Commits per committer: 40.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
bnicenboim b****m@g****m 732
auskate k****e@g****m 17
auskate k****e@u****e 11
GitHub Actions a****s@g****m 6
stonekate k****o@g****m 3
jaromilfrossard j****d@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 73
  • Total pull requests: 102
  • Average time to close issues: 6 months
  • Average time to close pull requests: 2 days
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 1.04
  • Average comments per pull request: 0.77
  • Merged pull requests: 83
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • bnicenboim (29)
  • stonekate (16)
  • spressi (1)
  • muschellij2 (1)
  • kokoelma (1)
  • prattems (1)
Pull Request Authors
  • bnicenboim (51)
  • stonekate (15)
Top Labels
Issue Labels
enhancement (11) bug (9) minor bug (3) not a priority (2)
Pull Request Labels

Dependencies

.github/workflows/R-CMD-check.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/upload-artifact main composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
.github/workflows/pkgdown.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
.github/workflows/render-readme.yaml actions
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
.github/workflows/test-coverage.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
DESCRIPTION cran
  • R >= 3.1.0 depends
  • stats * depends
  • JADE >= 2.0.1 imports
  • MASS * imports
  • MBA >= 0.0.9 imports
  • RcppRoll >= 0.3.0 imports
  • data.table >= 1.12.2 imports
  • dplyr >= 1.0.0 imports
  • edfReader >= 1.2.0 imports
  • ellipsis >= 0.1.0 imports
  • fICA >= 1.1 imports
  • fastICA * imports
  • ggplot2 >= 3.1.0 imports
  • gsignal * imports
  • gtable >= 0.2.0 imports
  • magrittr >= 1.5 imports
  • methods * imports
  • pracma * imports
  • purrr >= 0.2.5 imports
  • rlang >= 0.3.1 imports
  • scales >= 1.0.0 imports
  • tidyr >= 0.8.2 imports
  • tidyselect >= 0.2.5 imports
  • tidytable >= 0.6.7 imports
  • tools * imports
  • R.matlab >= 3.6.2 suggests
  • akima >= 0.6.2 suggests
  • covr >= 3.2.1 suggests
  • cowplot * suggests
  • httr * suggests
  • knitr >= 1.21 suggests
  • plotly >= 4.8.0 suggests
  • reticulate >= 1.11.1 suggests
  • rmarkdown >= 1.11 suggests
  • roxygen2 >= 6.1.1 suggests
  • spelling >= 2.0 suggests
  • testthat >= 2.0.1 suggests
  • tibble >= 2.1.1 suggests