Isoreader

Isoreader: An R package to read stable isotope data files for reproducible research - Published in JOSS (2021)

https://github.com/isoverse/isoreader

Science Score: 95.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
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

data ecology geochemistry isotopes r
Last synced: 4 months ago · JSON representation

Repository

Read IRMS (Isotope Ratio Mass Spectrometry) data files into R

Basic Info
Statistics
  • Stars: 11
  • Watchers: 3
  • Forks: 5
  • Open Issues: 32
  • Releases: 8
Topics
data ecology geochemistry isotopes r
Created over 8 years ago · Last pushed about 2 years ago
Metadata Files
Readme Changelog License

README.Rmd

---
output: github_document
---



```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)

version <- as.character(packageVersion("isoreader"))
```

# isoreader 


[![R build status](https://github.com/isoverse/isoreader/workflows/R-CMD-check/badge.svg)](https://github.com/isoverse/isoreader/actions?workflow=R-CMD-check)
[![Documentation](https://img.shields.io/badge/docs-online-green.svg)](https://isoreader.isoverse.org/)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.02878/status.svg)](https://doi.org/10.21105/joss.02878)


## About

This package is intended as a unified one-stop command line interface to all common IRMS (isotope ratio mass spectrometry) file formats used in stable isotope geochemistry. It is an extension and highly stream-lined re-implementation of the proof-of-concept [isoread](https://github.com/sebkopf/isoread) package and is designed to fit into a larger framework of IRMS data tools that includes the web-based graphical user interface package [isoviewer](https://github.com/isoverse/isoviewer) and the data processing and visualization pipeline [isoprocessor](https://github.com/isoverse/isoprocessor).

[isoreader](https://isoreader.isoverse.org/) enables the reading and processing of stable isotope data directly from the data files and thus provides a tool for platform-independent (Windows, Mac, Linux), efficient and reproducible data reduction. Although implemented in R, it can be used in both RMarkdown as well as Jupyter data processing notebooks and also provides functionality for easy export to Python using the shared R/Python feather file format. At present, it can read most Thermo dual inlet (.did, .caf) and continuous flow (.dxf, .cf) data files as well as Elementar continuous flow data archives (.iarc) with additional extensions for other file formats in the works. Due to the dynamic implementation and design based on the popular [tidyverse](https://www.tidyverse.org/) style of R programming, isoreader is easily extendable, takes care of error catching to avoid pipeline breaks due to problems encountered in source data files (modeled after  [readr](https://readr.tidyverse.org/)) and works great with [tidyverse](https://www.tidyverse.org/) packages such as [tidyr](https://tidyr.tidyverse.org/), [dplyr](https://dplyr.tidyverse.org/) and [ggplot](https://ggplot2.tidyverse.org/).

## Installation

```{r cran-installation, eval = FALSE}
# Note: isoreader is temporarily not available on CRAN because of a missing dependency, please install directly from GitHub using the commands below
# install.packages("isoreader")
if(!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")
devtools::install_github("isoverse/isoreader")
```

Some isoreader features including Excel and feather export depend on optional packages that are not required for the core functionality of isoreader. To use this functionality, please install the following packages manually if not already installed (isoreader will throw an informative warning if they are needed but missing):

```{r, optional-installation, eval = FALSE}
# optional extensions
install.packages(c("feather", "openxlsx", "xml2", "BiocManager"))
BiocManager::install("rhdf5")
```

To install the current development version of isoreader directly from GitHub, please use the devtools package:

```{r gh-installation, eval = FALSE}
# installs the development tools package if not yet installed
if(!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")
devtools::install_github("isoverse/isoreader")
```

Troubleshooting note: depending on your workspace and operating system, you may have to re-start your R session or manually install some dependencies. For example, the `digest` package sometimes causes trouble - re-install with `remove.packages("digest"); install.packages("digest")`.

## Show me some code

You can, for example, automatically read the data from **all** supported scan files in a directory (and all its subdirectories) simply by providing the path to the folder. The following code demonstrates this with the example data files bundled with the `isoreader` package. For a more detailed example including continuous flow and dual inlet file reads, check out our [**Quick Start Vignette**](https://isoreader.isoverse.org/articles/quick_start.html).

```{r, message = -c(1:3), echo = -c(2:3)}
library(isoreader)
iso_turn_reader_caching_off() # make sure reading fresh
setwd(tempdir()) # make sure no wd artifacts
data_folder <- iso_get_reader_examples_folder()
iso_files <- iso_read_scan(data_folder)

iso_files
```

## Supported File Types

Currently supported file types:

```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(isoreader)
iso_get_supported_file_types() |> 
  dplyr::select(-"call") |>
  knitr::kable()
```

## Documentation

 - for a quick introduction, check out the aforementioned [**Quick Start Vignette**](https://isoreader.isoverse.org/articles/quick_start.html)
 - for a full reference of all available functions, see the **[Function Reference](https://isoreader.isoverse.org/reference/)**
 - for function help within RStudio, simply start typing `?iso_` in the console and a list of available function will appear (all functions share the `iso_` prefix)
 - for a detailed example of how to work with continuous flow data files, see the vignette on **[Continuous Flow](https://isoreader.isoverse.org/articles/continuous_flow.html)**
 - for a detailed example of how to work with dual inlet data files, see the vignette on **[Dual Inlet](https://isoreader.isoverse.org/articles/dual_inlet.html)**
 - for a detailed example of how to work with scan data files, see the vignette on **[Scans](https://isoreader.isoverse.org/articles/scan.html)**

## Troubleshooting

If you run into a file format that is not currently supported or any issues with supported formats, please file a request/bug report in the [issue tracker](https://github.com/isoverse/isoreader/issues). Likewise if you run into any unexpected behavior or uncaught errors. Most isoreader functionality is continuously tested on Unix and Windows systems using [GitHub Actions](https://github.com/isoverse/isoreader/actions?workflow=R-CMD-check). This makes it possible to ensure proper functionality and catch issues quickly, however, sometimes something slips through or is not yet automatically tested. We try to make sure to fix such errors as soon as possible but ask for patience due to the small development team. If you have the skills and are willing to fix problems yourself, that's great, please take a look at the development section below.

## Development

If you are interested in helping with development, that's fantastic! Please fork the repository and branch off from the [dev branch](https://github.com/isoverse/isoreader/tree/dev) since it contains the most up-to-date development version of [isoreader](https://isoreader.isoverse.org/). Make sure to write [```testthat``` tests](https://r-pkgs.org/tests.html) for your work (stored in the tests/testthat directory). All tests can be run automatically and continuously during development to make it easier to spot any code problems on the go. The easiest way to run them is by running ```make auto_test``` in the [isoreader](https://isoreader.isoverse.org/) directory from command line (it will test everything automatically in a completely separate R session).

## Open Source

[isoreader](https://isoreader.isoverse.org/) is and will always be fully open-source (i.e. free as in **freedom** and free as in **free beer**) and is provided as is. The source code is released under GPL-2.

## isoverse 

This package is part of the isoverse suite of data tools for stable isotopes. If you like the functionality that isoverse packages provide to the geochemical community, please help us spread the word and include an isoverse or individual package logo on one of your posters or slides. All logos are posted in high resolution in [this repository](https://github.com/isoverse/logos).

Owner

  • Name: isoverse
  • Login: isoverse
  • Kind: organization
  • Email: sebastian.kopf@colorado.edu

open-source data tools for stable isotopes

JOSS Publication

Isoreader: An R package to read stable isotope data files for reproducible research
Published
May 01, 2021
Volume 6, Issue 61, Page 2878
Authors
Sebastian Kopf ORCID
Department of Geological Sciences, University of Colorado Boulder, Colorado, USA
Brett Davidheiser-Kroll ORCID
Department of Geological Sciences, University of Colorado Boulder, Colorado, USA
Ilja Kocken ORCID
Department of Earth Sciences, Utrecht University, the Netherlands
Editor
Mikkel Meyer Andersen ORCID
Tags
stable isotopes earth science ecology isotope ratio mass spectrometry reproducible research

GitHub Events

Total
  • Issues event: 2
  • Watch event: 1
  • Issue comment event: 2
Last Year
  • Issues event: 2
  • Watch event: 1
  • Issue comment event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 813
  • Total Committers: 3
  • Avg Commits per committer: 271.0
  • Development Distribution Score (DDS): 0.016
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Sebastian Kopf s****f@c****u 800
Ilja Kocken i****0@h****m 12
Romain Francois r****n@r****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 55
  • Total pull requests: 47
  • Average time to close issues: 7 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 10
  • Total pull request authors: 4
  • Average comments per issue: 2.38
  • Average comments per pull request: 0.11
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • sebkopf (35)
  • kdorheim (5)
  • japhir (5)
  • r-barnes (4)
  • whereisAphrodite (1)
  • cubessil (1)
  • niygooooo (1)
  • brettdavidheiser (1)
  • jhowasmrtl (1)
  • sjbalint (1)
Pull Request Authors
  • sebkopf (43)
  • romainfrancois (1)
  • jimhester (1)
  • japhir (1)
Top Labels
Issue Labels
enhancement (3)
Pull Request Labels

Dependencies

DESCRIPTION cran
  • R >= 4.0.0 depends
  • stats * depends
  • R.utils * imports
  • UNF >= 2.0.6 imports
  • dplyr >= 1.0.0 imports
  • future >= 1.18.0 imports
  • glue >= 1.4.0 imports
  • lubridate >= 1.7.9.2 imports
  • magrittr * imports
  • methods * imports
  • progress >= 1.2.2 imports
  • purrr >= 0.3.4 imports
  • readr >= 1.4.0 imports
  • rlang >= 0.4.5 imports
  • stringr >= 1.4.0 imports
  • tibble >= 3.0.0 imports
  • tidyr >= 1.0.0 imports
  • tidyselect >= 1.0.0 imports
  • vctrs >= 0.3.4 imports
  • covr * suggests
  • devtools * suggests
  • feather >= 0.3.5 suggests
  • knitr * suggests
  • markdown * suggests
  • openxlsx >= 4.1.5 suggests
  • readxl >= 1.3.1 suggests
  • rhdf5 >= 2.0.0 suggests
  • rmarkdown * suggests
  • testthat * suggests
  • xml2 >= 1.3.1 suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.4.1 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite