Code Monkey home page Code Monkey logo

shinyssd's Introduction


shinyssd v1.0: Species Sensitivity Distributions for Ecotoxicological Risk Assessment


D'Andrea, MF; Brodeur, JC

DOI DOI R build status

Summary

Living organisms have different sensitivities to toxicants. This variability can be represented by constructing a species sensitivity distribution (SSD) curve, whereby the toxicity of a substance to a group of species is described by a statistical distribution. Building the SSD curve allows calculating the Hazard Concentration 5% (HC5), that is, the concentration at which 5% of the considered species are affected. The HC5 is widely used as an environmental quality criterion and a tool for ecological risk assessment (@posthuma2001).

The shinyssd web application is a versatile and easy to use tool that serves to simultaneously model the SSD curve of a user-defined toxicity dataset based on four different statistical distribution models (log-normal, log-logistic, Weibull, Pareto). shinyssd directly calculates three estimators HC1, HC5 and HC10 associated to the four distribution models together with its confidence intervals, allowing the user to select the statistical distribution and associated HC values that best adjust the dataset.

The level of confidence of the results obtained from a SSD curve will depend on the number of species used to produce the SSD. In this sense, the first tab of the user interface is used for visualizing the number of species for which toxicological data are available for each toxicant , species group and endpoint combination in the uploaded dataset. A minimum of species is necessary to build a SSD curve varies according to the literature (@belanger2016, @efsa2013, @wheeler2002, @newman2000).

After selecting the toxicant and species groups, the user can filter and select subsets of data from the whole database by applying different quality criteria, (e.g., if the studies reported a chemical confirmation of the concentrations of the toxicant tested). The values entered in each column of the database serve as categories to filter the database in relation to characteristics of the bioassays. The final SSD curve is fitted to different distributions using the package fitdistrplus and actuar. The HC is estimated for all the distributions.

By facilitating and streamlining toxicity data analysis and the creation of SSD curves, the user interface proposed here should be useful for environmental managers and regulators conducting ecological risk assessments and scientific research.

Information for Users

  • shinyssd includes a preloaded database with aquatic toxicological data for the pesticides Cypermethrin and Glyphosate. This data was extracted of the ECOTOX database of the the Environmental Protection Agency of the United States (EPA) link. An external separated by commas file (.csv) could be uploaded by the user according to the format of the template.csv file attached in the repo.

  • There is a warning alert message if you are entering data with different units, to avoid conflictive results.

  • shinyssd includes the option of download the relevant results as a .docx report.

  • shinyssd is optimized for browser use.

  • The app can be run from R using the following code:

library(devtools)
devtools::install_github("flor14/shinyssd", subdir = "shinyssd")
library(shinyssd)
shinyssd::shinyssd_run()

The source code for shinyssd has been archived to Zenodo with the link DOI:10.5281/zenodo.3233033

How to use shinyssd?

1 - The user can upload their own database in .csv format according to the template.csv file found in this same repository

2 - Shinyssd checks that the units are homogeneous

3 - Once loaded, the database is displayed

4 - The "Visualization" tab allows you to see how many species have enough data to estimate the SSD for a selected toxic substance.

5 - There are minimum requirements for the amount of data to build a valid SSD curve. The colours indicate different criteria within the bibliography.

6 - After selecting the substance to be studied and the groups of species, the user can filter and select subsets of data by applying different criterias (for example, if the analytical validation of the concentrations of the substance evaluated in those trials was reported).

7 - The SSD curve is adjusted to different distributions according to the previously selected data. The HC1, HC5 and HC10 are estimated from the distribution that presents the best goodness of fit.

8 - Shinyssd allows you to download a report in .docx format with the data selection and the results obtained.

9 - In the tab "HC5 and Plot" you can identify each of the SSD species and obtain the values of HC1, HC5 and HC10 with their confidence intervals.

)

Community guidelines

Report Issues:

  • Questions, feedback, bug reports: please open an issue in the issue tracker of the project here.

Contribution to the software:

  • Please open an issue in the issue tracker of the project that describes the changes you would like to make to the software and open a pull request with the changes. The description of the pull request must reference the corresponding issue.

Acknowledgements

We wish to thank Ana Laura Diedrichs and R-Ladies for their help and support.

shinyssd's People

Contributors

anadiedrichs avatar flor14 avatar kyleniemeyer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

shinyssd's Issues

Tests

As mentioned in #2 once this is made into an R package with the primary parts of the shiny app rolled into functions then we can add coverage tests to make sure everything works smoothly as the R ecosystem changes over time.

Make this into an R package

This is clearly a novel and useful Shiny app but this would really be a good R package. That would allow things like tests to be run as well as control which packages are loaded into R. For example, the number of conflicts when loading the Shiny app isn't really good form.
image

Source Code DOI

In the readme you mentioned that the source code has a DOI but it doesn't appear here.
image

Version number needed

There should be something somewhere that lets the user know what version the software is. In an R package this would be in the DESCRIPTION file, with a Shiny app I've also seen this put somewhere in the UI and the README file.

Community guidelines

This needs some community guidelines for people who wish to report issues or submit code to this project.

Repository name

It would be beneficial to give this repository a name other than paper. Maybe something like ShinySSD, that would make it a lot easier for people to find.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.