Last updated: 2019-09-19

Checks: 7 0

Knit directory: polymeRID/

This reproducible R Markdown analysis was created with workflowr (version 1.4.0.9001). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20190729) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .Rhistory
    Ignored:    .Rprofile
    Ignored:    .Rproj.user/
    Ignored:    analysis/library.bib
    Ignored:    docs/figure/
    Ignored:    fun/
    Ignored:    output/20190810_1538/
    Ignored:    output/20190810_1546/
    Ignored:    output/20190810_1609/
    Ignored:    output/20190813_1044/
    Ignored:    output/logs/
    Ignored:    output/natural/
    Ignored:    output/nnet/
    Ignored:    output/svm/
    Ignored:    output/testRunII/
    Ignored:    output/testRunIII/
    Ignored:    packrat/lib-R/
    Ignored:    packrat/lib-ext/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/BH/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/FactoMineR/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/IDPmisc/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/KernSmooth/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/MASS/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/Matrix/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/MatrixModels/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ModelMetrics/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/R6/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/RColorBrewer/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/RCurl/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/Rcpp/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/RcppArmadillo/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/RcppEigen/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/RcppGSL/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/RcppZiggurat/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/Rfast/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/Rgtsvm/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/Rmisc/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/SQUAREM/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/SparseM/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/abind/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/askpass/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/assertthat/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/backports/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/base64enc/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/baseline/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/bit/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/bit64/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/bitops/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/boot/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/brew/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/callr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/car/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/carData/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/caret/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/cellranger/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/class/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/cli/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/clipr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/clisymbols/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/cluster/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/codetools/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/colorspace/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/commonmark/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/config/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/cowplot/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/crayon/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/crosstalk/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/curl/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/data.table/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/dendextend/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/desc/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/devtools/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/digest/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/doParallel/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/dplyr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/e1071/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ellipse/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ellipsis/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/evaluate/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/factoextra/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/fansi/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/flashClust/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/forcats/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/foreach/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/foreign/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/fs/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/generics/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/getPass/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ggplot2/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ggpubr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ggrepel/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ggsci/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ggsignif/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/gh/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/git2r/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/glue/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/gower/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/gridExtra/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/gtable/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/haven/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/hexbin/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/highr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/hms/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/htmltools/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/htmlwidgets/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/httpuv/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/httr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ini/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ipred/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/iterators/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/jsonlite/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/keras/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/kerasR/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/knitr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/labeling/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/later/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/lattice/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/lava/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/lazyeval/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/leaps/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/lme4/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/lubridate/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/magrittr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/maptools/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/markdown/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/memoise/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/mgcv/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/mime/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/minqa/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/munsell/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/nlme/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/nloptr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/nnet/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/numDeriv/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/openssl/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/openxlsx/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/packrat/tests/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/pbkrtest/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/pillar/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/pkgbuild/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/pkgconfig/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/pkgload/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/plogr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/plotly/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/plyr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/polynom/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/praise/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/prettyunits/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/processx/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/prodlim/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/progress/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/promises/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/prospectr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/ps/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/purrr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/quantreg/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/randomForest/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rcmdcheck/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/readr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/readxl/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/recipes/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rematch/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/remotes/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/reshape2/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/reticulate/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rio/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rlang/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rmarkdown/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/roxygen2/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rpart/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rprojroot/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rsconnect/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/rstudioapi/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/scales/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/scatterplot3d/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/sessioninfo/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/shiny/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/sourcetools/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/sp/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/stringi/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/stringr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/survival/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/sys/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/tensorflow/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/testthat/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/tfruns/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/tibble/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/tidyr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/tidyselect/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/timeDate/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/tinytex/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/usethis/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/utf8/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/vctrs/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/viridis/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/viridisLite/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/whisker/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/withr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/workflowr/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/xfun/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/xml2/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/xopen/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/xtable/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/yaml/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/zeallot/
    Ignored:    packrat/lib/x86_64-pc-linux-gnu/3.6.1/zip/
    Ignored:    packrat/src/
    Ignored:    polymeRID.Rproj
    Ignored:    smp/20190812_1723_NNET/files/
    Ignored:    smp/20190812_1723_NNET/plots/
    Ignored:    smp/20190812_1729_NNET/files/
    Ignored:    smp/20190812_1729_NNET/plots/
    Ignored:    smp/20190812_1731_NNET/files/
    Ignored:    smp/20190812_1731_NNET/plots/
    Ignored:    smp/20190812_1733_NNET/files/
    Ignored:    smp/20190812_1733_NNET/plots/
    Ignored:    smp/20190815_1847_FUSION/
    Ignored:    smp/20190905_1602_FUSION/
    Ignored:    smp/20190905_1618_RFRAW/
    Ignored:    smp/20190905_1637_CNND2/
    Ignored:    smp/20190905_1708_FUSION/
    Ignored:    smp/20190910_1805_FUSION/
    Ignored:    website/

Untracked files:
    Untracked:  Rplots.pdf
    Untracked:  analysis/elsevier-harvard.csl

Unstaged changes:
    Modified:   analysis/assets/images/seperators.jpg

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the R Markdown and HTML files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view them.

File Version Author Date Message
html 75bc270 goergen95 2019-09-05 Build site.
html bc4055d goergen95 2019-09-05 Build site.
html 32dd5af goergen95 2019-09-05 Build site.
Rmd dc6b5f5 goergen95 2019-09-05 wflow_publish(“analysis/index.Rmd”)
html 070e93f goergen95 2019-08-22 Build site.
Rmd 0bdf12a goergen95 2019-08-21 updated index.html
html 0bdf12a goergen95 2019-08-21 updated index.html
html f2ee83c goergen95 2019-08-19 Build site.
html d960dc2 goergen95 2019-08-19 included calibration
html b846f0b goergen95 2019-08-19 Build site.
Rmd de84a71 goergen95 2019-08-19 large update for website
html de84a71 goergen95 2019-08-19 large update for website
html 2385fbc goergen95 2019-08-14 republish for layout change
Rmd 5d28ce0 goergen95 2019-08-14 changed citation note
html 5d28ce0 goergen95 2019-08-14 changed citation note
Rmd c52182b goergen95 2019-08-13 rebuid website
html c52182b goergen95 2019-08-13 rebuid website
html 6e92d01 goergen95 2019-08-13 Build site.
html 6cfd689 goergen95 2019-08-13 Build site.
Rmd 5774923 goergen95 2019-08-13 included preparation
html cbbd5b4 goergen95 2019-08-13 Build site.
html 471e893 goergen95 2019-08-13 Build site.
Rmd b07b0a6 goergen95 2019-08-13 update of index file
html e8c8be2 goergen95 2019-08-13 Build site.
html 342cd44 goergen95 2019-08-13 Build site.
Rmd 15bd467 goergen95 2019-08-13 update of index file
Rmd 3b99a1b goergen95 2019-08-08 fixed typos in index
html 32109b9 goergen95 2019-08-07 Build site.
Rmd 7a32e1f goergen95 2019-08-07 included images in index
html 99906c8 goergen95 2019-08-07 Build site.
Rmd 7b2bbac goergen95 2019-08-07 changed theme
html 5f2ca49 goergen95 2019-08-07 Build site.
Rmd caf89e2 goergen95 2019-08-07 wflow_publish(c(“analysis/index.Rmd”))
html 348ad0a goergen95 2019-08-05 Build site.
Rmd 5b8a2e6 goergen95 2019-08-05 wflow_publish(c(“analysis/index.Rmd”))
Rmd 6c813f4 goergen95 2019-07-29 implemented workflowr
Rmd d525cc2 goergen95 2019-07-29 Start workflowr project.

Introduction

Here I present the results of my work for a master’s seminar at the University of Marburg concerned with microplastic in the environment.

Probe Seperators
Photo of two sediment separators taken by Sarah Brüning

Microplastic particles polluting the environment has been in the public focus for some time now. The scientific efforts of analyzing the occurrences of particles in the environment and their effects on ecosystems and human health is manifold, yet there is a lack of consensus on methods for sampling, sample handling, analysis and identification, especially for samples from aquatic ecosystems. Some of the most urgent research questions concerned with microplastic are the effects on biological lifeforms (Zhang et al., 2019), their movement through and distribution in marine environments (Auta et al., 2017) as well as in freshwater ecosystems (Li et al., 2018).

Different research questions demand different methodologies for sampling, sample handling and laboratory analysis. However, the link between different research domains is that any analysis of microplastic in the environment needs a robust identification method to enable scientists to bring forward meaningful recommendations to the public and decision makers.

A broad spectrum of different polymer identification strategies evidently exists (Löder and Gerdts, 2015; Rocha-Santos and Duarte, 2015; Shim et al., 2017), ranging from traditional microscopy to spectroscopy as well as destructive methods of thermal analysis. A distinction has to be made towards the extent of automatization in the identification process. Recently, different approaches to automate the task of polymer classification, either by individual particles or for a whole collection of samples simultaneously have been reported to the scientific community (Lorenzo-Navarro et al., 2018; Masoumi et al., 2012; Primpke et al., 2019, 2017; Zhang et al., 2018).

This project sets out to contribute to the ease of the cumbersome process of classifying individual particles based on their spectral reflectance by hand. The idea is that up-to-date machine learning models applied to the high-dimensional spectral data of particles found in environmental samples can minimize the need for human intervention in the classification process and thus significantly speed up the process of classification. Other studies have reported substantial accuracies by applying different kinds of machine learning algorithms such as hierarchical clustering (Primpke et al., 2017), support-vector-machines (V. Bianco P. Memmolo, 2019), random forest (Hufnagl et al., 2019), as well as convolutional neural networks (Liu et al., 2017) to classify the spectra of microplastic and other materials found in environmental samples.

This project was grouped into different working steps, which were designed to allow to reproduce the workflows to the greatest extent possible as well as to allow alterations of the code and extensions to the database. These working steps are:

  • Preparation: At first the establishment of a comprehensive database of reference spectra was mandatory to allow the application of machine-learning models. We used an OpenSource database published by Primpke et al. (2018). For potential future extensions, we created a workflow of spectral resampling and baseline correction for reference polymers and other particles to ensure the consistency of the database.

  • Exploration: Different types of pre-processing techniques were assessed by a cross-validation approach in which different representations of data were presented to a selection of machine-learning models. Their capability to correctly classify the database was captured. Additionally, increasing levels of noise were added to the data so that the models and pre-processing techniques which most robustly classify polymer spectra could be identified.

  • Calibration: After the exploration stage, the best performing models were chosen to create a decision fusion model. A workflow was created to calibrate these models to a potentially changing database when needed. This step is crucial so that the work presented here can be used in the future, i.e. in the case of a extension of the reference database or a change in the spectral resolution.

  • Classification: At the final stage of the project, a workflow was created to classify real environmental samples in a user-friendly way to ease the classification process. Here, some accuracy values of the classification are extracted and comprehensively handed to the user, as well as some plots for a visual confirmation of the classification results. This way, it is ensured that the results are easily accessible and the possibility for a human agent to assess the quality of the classification is implemented.

Citations on this page

Auta, H.S., Emenike, C.U., Fauziah, S.H., 2017. Distribution and importance of microplastics in the marine environment. A review of the sources, fate, effects, and potential solutions. https://doi.org/10.1016/j.envint.2017.02.013

Hufnagl, B., Steiner, D., Renner, E., Löder, M.G., Laforsch, C., Lohninger, H., 2019. A methodology for the fast identification and monitoring of microplastics in environmental samples using random decision forest classifiers. Analytical Methods 11, 2277–2285. https://doi.org/10.1039/c9ay00252a

Li, J., Liu, H., Paul Chen, J., 2018. Microplastics in freshwater systems: A review on occurrence, environmental effects, and methods for microplastics detection. Water Research 137, 362–374. https://doi.org/10.1016/j.watres.2017.12.056

Liu, J., Osadchy, M., Ashton, L., Foster, M., Solomon, C.J., Gibson, S.J., 2017. Deep convolutional neural networks for Raman spectrum recognition: A unified solution. Analyst 142, 4067–4074. https://doi.org/10.1039/c7an01371j

Lorenzo-Navarro, J., Castrillón-Santana, M., Gómez, M., Herrera, A., Marín-Reyes, P.A., 2018. Automatic Counting and Classification of Microplastic Particles. https://doi.org/10.5220/0006725006460652

Löder, M.G., Gerdts, G., 2015. Methodology used for the detection and identification of microplastics—a critical appraisal, in: Marine Anthropogenic Litter. Springer International Publishing, pp. 201–227. https://doi.org/10.1007/978-3-319-16510-3_8

Masoumi, H., Safavi, S., Khani, Z., 2012. Identification and Classification of Plastic Resins using Near Infrared Reflectance. Waset 6, 213–220.

Primpke, S., Dias, P.A., Gerdts, G., 2019. Automated identification and quantification of microfibres and microplastics. Analytical Methods 11, 2138–2147. https://doi.org/10.1039/c9ay00126c

Primpke, S., Lorenz, C., Rascher-Friesenhausen, R., Gerdts, G., 2017. An automated approach for microplastics analysis using focal plane array (FPA) FTIR microscopy and image analysis. Analytical Methods 9, 1499–1511. https://doi.org/10.1039/c6ay02476a

Primpke, S., Wirth, M., Lorenz, C., Gerdts, G., 2018. Reference database design for the automated analysis of microplastic samples based on Fourier transform infrared (FTIR) spectroscopy. Analytical and Bioanalytical Chemistry 410, 5131–5141. https://doi.org/10.1007/s00216-018-1156-x

Rocha-Santos, T., Duarte, A.C., 2015. A critical overview of the analytical approaches to the occurrence, the fate and the behavior of microplastics in the environment. TrAC - Trends in Analytical Chemistry 65, 47–53. https://doi.org/10.1016/j.trac.2014.10.011

Shim, W.J., Hong, S.H., Eo, S.E., 2017. Identification methods in microplastic analysis: A review. Analytical Methods 9, 1384–1391. https://doi.org/10.1039/c6ay02558g

V. Bianco P. Memmolo, F.M.P.C.C.D.P.F., 2019. High-accuracy identification of micro-plastics by holographic microscopy enabled support vector machine, in:. https://doi.org/10.1117/12.2509515

Zhang, J., Tian, K., Lei, C., Min, S., 2018. Identification and quantification of microplastics in table sea salts using micro-NIR imaging methods. Analytical Methods 10, 2881–2887. https://doi.org/10.1039/c8ay00125a

Zhang, S., Wang, J., Liu, X., Qu, F., Wang, X., Wang, X., Li, Y., Sun, Y., 2019. Microplastics in the environment: A review of analytical methods, distribution, and biological effects. TrAC - Trends in Analytical Chemistry 111, 62–72. https://doi.org/10.1016/j.trac.2018.12.002


sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Linux Mint 19.1

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] plotly_4.9.0              tensorflow_1.14.0        
 [3] abind_1.4-5               e1071_1.7-2              
 [5] keras_2.2.4.1             workflowr_1.4.0.9001     
 [7] baseline_1.2-1            gridExtra_2.3            
 [9] stringr_1.4.0             prospectr_0.1.3          
[11] RcppArmadillo_0.9.600.4.0 openxlsx_4.1.0.1         
[13] magrittr_1.5              ggplot2_3.2.0            
[15] reshape2_1.4.3            dplyr_0.8.3              

loaded via a namespace (and not attached):
 [1] reticulate_1.13   tidyselect_0.2.5  xfun_0.8         
 [4] purrr_0.3.2       lattice_0.20-38   colorspace_1.4-1 
 [7] generics_0.0.2    viridisLite_0.3.0 htmltools_0.3.6  
[10] yaml_2.2.0        base64enc_0.1-3   rlang_0.4.0      
[13] pillar_1.4.2      glue_1.3.1        withr_2.1.2      
[16] foreach_1.4.7     plyr_1.8.4        munsell_0.5.0    
[19] gtable_0.3.0      zip_2.0.3         htmlwidgets_1.3  
[22] codetools_0.2-16  evaluate_0.14     knitr_1.24       
[25] SparseM_1.77      tfruns_1.4        class_7.3-15     
[28] Rcpp_1.0.2        scales_1.0.0      backports_1.1.4  
[31] jsonlite_1.6      fs_1.3.1          digest_0.6.20    
[34] stringi_1.4.3     grid_3.6.1        rprojroot_1.3-2  
[37] tools_3.6.1       lazyeval_0.2.2    tibble_2.1.3     
[40] tidyr_0.8.3       crayon_1.3.4      whisker_0.3-2    
[43] pkgconfig_2.0.2   zeallot_0.1.0     Matrix_1.2-17    
[46] data.table_1.12.2 httr_1.4.1        assertthat_0.2.1 
[49] rmarkdown_1.14    iterators_1.0.12  R6_2.4.0         
[52] git2r_0.26.1      compiler_3.6.1