# Slick ## Overview `Slick` is an R package designed for visualizing and exploring results of a Management Strategy Evaluation (MSE). MSE involves using closed-loop simulation testing to evaluate and compare the expected performance of alternative management methods, often call **Management Procedures (MPs)**, across different hypotheses of the historical and future fishery dynamics, referred to as **Operating Models (OMs)**. The results of an MSE are reported in a set of **Performance Indicators (PIs)**, quantitative measures of the management objectives of fishery stakeholders, managers, and other decision-makers. `Slick` allows MSE developers and analysts to prepare their MSE results in a standardized data structure, easily generate publication quality figures and tables, and present and explore the MSE results in an interactive application. ## Installation `Slick` can be installed from CRAN: ``` r install.packages('Slick') ``` The development version can be installed from Github: ``` r # install.packages('pak') pak::pkg_install('blue-matter/Slick') library(Slick) ``` ## The Slick object To use `Slick`, the results of an MSE must be available in a Slick data object. The Slick App includes several example data objects. See the [Developer’s Guide](https://slick.bluematterscience.com/articles/DevelopersGuide.html) for documentation on creating a Slick Data object for your MSE results. ## The Slick App The Slick App has been designed for interactively examining the MSE results contained within a Slick data object. The App allows for the simultaneous presentation of various performance metrics and can account for uncertainty in the states of nature. Slick is interactive and allows users to filter results live in order to explore robustness and performance. While Slick can be applied to any decision analysis context it was specifically designed to investigate the performance of fisheries management procedures tested by management strategy evaluation (MSE). Importantly the App is platform agnostic: results arising from any MSE framework that are formatted in a compatible Slick object can be loaded and visualized in the App. ### Running the App locally The Slick App can be run locally or accessed online. To run the App locally, simply run [`App()`](https://slick.bluematterscience.com/reference/App.md). The example data objects can be loaded within the App, or a Slick data object can be uploaded. If you have your own Slick data object, this object can be loaded directly with: ``` r App(slick=mySlick) ``` where `mySlick` is a completed Slick data object. ### Online App The online version of the Slick App can be accessed [here](https://shiny.bluematterscience.com/app/slick). ### About Slick Slick was developed by [Blue Matter Science](https://www.bluematterscience.com) and designed and commissioned by [The Ocean Foundation’s](https://oceanfdn.org/) International Fisheries Conservation Project and [harveststrategies.org](https://harveststrategies.org/), with support from [The Pew Charitable Trusts](https://www.pew.org/en/), and the [Common Oceans Tuna Fisheries Project](https://www.fao.org/in-action/commonoceans/what-we-do/tuna-fisheries/en/), which is funded by [GEF](https://www.thegef.org/what-we-do/topics/areas-beyond-national-jurisdiction) and implemented by the [FAO](https://www.fao.org/in-action/commonoceans/en/). The prototype figure designs were developed by [5W Infographics](https://www.5wgraphics.com/). `Slick` is under going further development. All feedback is welcome. # Package index ## Create a Slick object Create and populate a Slick object - [`Slick()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`Title()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Title<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Subtitle()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Subtitle<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Date()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Date<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Author()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Author<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Email()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Email<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Institution()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Institution<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Introduction()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Introduction<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) : Create a `Slick` class object - [`Check()`](https://slick.bluematterscience.com/reference/Check.md) : Check an object for errors or issues - [`MPs()`](https://slick.bluematterscience.com/reference/MPs-methods.md) [`` `MPs<-`() ``](https://slick.bluematterscience.com/reference/MPs-methods.md) : Methods for Creating, Accessing and Assigning `MPs` objects - [`OMs()`](https://slick.bluematterscience.com/reference/OMs-methods.md) [`` `OMs<-`() ``](https://slick.bluematterscience.com/reference/OMs-methods.md) : Methods for Creating, Accessing and Assigning `OMs` objects - [`Boxplot()`](https://slick.bluematterscience.com/reference/Boxplot-methods.md) [`` `Boxplot<-`() ``](https://slick.bluematterscience.com/reference/Boxplot-methods.md) : Methods for Creating, Accessing and Assigning `Boxplot` objects - [`Kobe()`](https://slick.bluematterscience.com/reference/Kobe-methods.md) [`` `Kobe<-`() ``](https://slick.bluematterscience.com/reference/Kobe-methods.md) : Methods for Creating, Accessing and Assigning `Kobe` objects - [`Quilt()`](https://slick.bluematterscience.com/reference/Quilt-methods.md) [`` `Quilt<-`() ``](https://slick.bluematterscience.com/reference/Quilt-methods.md) : Methods for Creating, Accessing and Assigning `Quilt` objects - [`Spider()`](https://slick.bluematterscience.com/reference/Spider-methods.md) [`` `Spider<-`() ``](https://slick.bluematterscience.com/reference/Spider-methods.md) : Methods for Creating, Accessing and Assigning `Spider` objects - [`Timeseries()`](https://slick.bluematterscience.com/reference/Timeseries-methods.md) [`` `Timeseries<-`() ``](https://slick.bluematterscience.com/reference/Timeseries-methods.md) : Methods for Creating, Accessing and Assigning `Timeseries` objects - [`Tradeoff()`](https://slick.bluematterscience.com/reference/Tradeoff-methods.md) [`` `Tradeoff<-`() ``](https://slick.bluematterscience.com/reference/Tradeoff-methods.md) : Methods for Creating, Accessing and Assigning `Tradeoff` objects - [`Update()`](https://slick.bluematterscience.com/reference/Update.md) : Updates an old object of class `Slick` to new S4 class `Slick` - [`FilterSlick()`](https://slick.bluematterscience.com/reference/FilterSlick.md) : FilterSlick ## Access and Assign Functions Functions to access and assign - [`Code()`](https://slick.bluematterscience.com/reference/Code.md) [`` `Code<-`() ``](https://slick.bluematterscience.com/reference/Code.md) [`Description()`](https://slick.bluematterscience.com/reference/Code.md) [`` `Description<-`() ``](https://slick.bluematterscience.com/reference/Code.md) [`Label()`](https://slick.bluematterscience.com/reference/Code.md) [`` `Label<-`() ``](https://slick.bluematterscience.com/reference/Code.md) [`Misc(`*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`` `Misc<-`( ``*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`Misc(`*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`` `Misc<-`( ``*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`Misc(`*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`` `Misc<-`( ``*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`Misc(`*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`` `Misc<-`( ``*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`Misc(`*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`` `Misc<-`( ``*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`Misc(`*``*`)`](https://slick.bluematterscience.com/reference/Code.md) [`` `Misc<-`( ``*``*`)`](https://slick.bluematterscience.com/reference/Code.md) : Access or assign `Code`, `Label`, and `Description` for a valid object class - [`Color()`](https://slick.bluematterscience.com/reference/Color.md) [`` `Color<-`() ``](https://slick.bluematterscience.com/reference/Color.md) : Access or assign `Color` for `MPs` and `Quilt` objects - [`Defaults()`](https://slick.bluematterscience.com/reference/Defaults.md) [`` `Defaults<-`() ``](https://slick.bluematterscience.com/reference/Defaults.md) : Access or assign the default selections for the plots in the [`App()`](https://slick.bluematterscience.com/reference/App.md) - [`Design()`](https://slick.bluematterscience.com/reference/Design.md) [`` `Design<-`() ``](https://slick.bluematterscience.com/reference/Design.md) : Return the Design matrix from an `OMs` object - [`Factors()`](https://slick.bluematterscience.com/reference/Factors.md) [`` `Factors<-`() ``](https://slick.bluematterscience.com/reference/Factors.md) : Return the Factors matrix from an `OMs` object - [`Preset()`](https://slick.bluematterscience.com/reference/Preset.md) [`` `Preset<-`() ``](https://slick.bluematterscience.com/reference/Preset.md) : Assign or access `Preset` for a valid object class - [`Metadata()`](https://slick.bluematterscience.com/reference/Metadata.md) [`` `Metadata<-`() ``](https://slick.bluematterscience.com/reference/Metadata.md) : Return `Code`, `Label`, `Description` and other information from an object - [`MinValue()`](https://slick.bluematterscience.com/reference/MinValue.md) [`` `MinValue<-`() ``](https://slick.bluematterscience.com/reference/MinValue.md) [`MaxValue()`](https://slick.bluematterscience.com/reference/MinValue.md) [`` `MaxValue<-`() ``](https://slick.bluematterscience.com/reference/MinValue.md) : Assign and access `MinValue` and `MaxValue` for a `Quilt` object - [`Misc()`](https://slick.bluematterscience.com/reference/Misc.md) [`` `Misc<-`() ``](https://slick.bluematterscience.com/reference/Misc.md) : Access or assign `Misc` for a valid object class - [`Limit()`](https://slick.bluematterscience.com/reference/Target.md) [`` `Limit<-`() ``](https://slick.bluematterscience.com/reference/Target.md) [`Target()`](https://slick.bluematterscience.com/reference/Target.md) [`` `Target<-`() ``](https://slick.bluematterscience.com/reference/Target.md) : Access or assign `Target` and `Limit` for object of class `Kobe` or `Timeseries` - [`RefPoints()`](https://slick.bluematterscience.com/reference/RefPoints.md) [`` `RefPoints<-`() ``](https://slick.bluematterscience.com/reference/RefPoints.md) : Assign or access `RefPoints` for a valid object class - [`Time()`](https://slick.bluematterscience.com/reference/Time.md) [`` `Time<-`() ``](https://slick.bluematterscience.com/reference/Time.md) : Access or assign `Time` for object of class `Kobe` or `Timeseries` - [`TimeLab()`](https://slick.bluematterscience.com/reference/TimeLab.md) [`` `TimeLab<-`() ``](https://slick.bluematterscience.com/reference/TimeLab.md) : Access or assign `TimeLab` in a `Kobe` or `Timeseries` object - [`TimeNow()`](https://slick.bluematterscience.com/reference/TimeNow.md) [`` `TimeNow<-`() ``](https://slick.bluematterscience.com/reference/TimeNow.md) : Access and return `TimeNow` from a `Timeseries-class()` object - [`TimeTerminal()`](https://slick.bluematterscience.com/reference/TimeTerminal.md) [`` `TimeTerminal<-`() ``](https://slick.bluematterscience.com/reference/TimeTerminal.md) : Assign or access `TimeTerminal` for a valid object class - [`Value()`](https://slick.bluematterscience.com/reference/Value.md) [`` `Value<-`() ``](https://slick.bluematterscience.com/reference/Value.md) : Assign or access `Value` for a valid object class ## S4 Object Classes The S4 classes used to create `Slick` objects - [`Slick()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`Title()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Title<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Subtitle()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Subtitle<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Date()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Date<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Author()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Author<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Email()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Email<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Institution()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Institution<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) [`Introduction()`](https://slick.bluematterscience.com/reference/Slick-class.md) [`` `Introduction<-`() ``](https://slick.bluematterscience.com/reference/Slick-class.md) : Create a `Slick` class object - [`MPs-class`](https://slick.bluematterscience.com/reference/MPs-class.md) : `MPs` S4 class and functions - [`OMs-class`](https://slick.bluematterscience.com/reference/OMs-class.md) : `OMs` S4 class and functions - [`Boxplot-class`](https://slick.bluematterscience.com/reference/Boxplot-class.md) : `Boxplot` S4 Object Class - [`Kobe-class`](https://slick.bluematterscience.com/reference/Kobe-class.md) : S4 class Kobe - [`Quilt-class`](https://slick.bluematterscience.com/reference/Quilt-class.md) : S4 class `Quilt` - [`Spider-class`](https://slick.bluematterscience.com/reference/Spider-class.md) : S4 class `Spider` - [`Tradeoff-class`](https://slick.bluematterscience.com/reference/Tradeoff-class.md) : S4 class `Tradeoff` - [`Timeseries-class`](https://slick.bluematterscience.com/reference/Timeseries-class.md) : S4 class `Timeseries` ## Run the Slick Shiny App - [`App()`](https://slick.bluematterscience.com/reference/App.md) : Run the Slick App in the local browser ## Plot and Other Functions Plotting routines and other functions - [`plotBoxplot()`](https://slick.bluematterscience.com/reference/plotBoxplot.md) : Plot `Boxplot` - [`plotKobe()`](https://slick.bluematterscience.com/reference/plotKobe.md) : Plot `Kobe` - [`plotQuilt()`](https://slick.bluematterscience.com/reference/plotQuilt.md) : Plot `Quilt` - [`plotSpider()`](https://slick.bluematterscience.com/reference/plotSpider.md) : Plot `Spider` - [`plotTimeseries()`](https://slick.bluematterscience.com/reference/plotTimeseries.md) : Plot `Timeseries` - [`plotTradeoff()`](https://slick.bluematterscience.com/reference/plotTradeoff.md) : Plot `Tradeoff` ## Other S4 Methods and other functions - [`show()`](https://slick.bluematterscience.com/reference/show.md) : Generic show method - [`get_casestudies()`](https://slick.bluematterscience.com/reference/get_casestudies.md) [`download_casestudy()`](https://slick.bluematterscience.com/reference/get_casestudies.md) : Get Case Studies from the SlickLibrary GitHub Repo - [`default_mp_colors()`](https://slick.bluematterscience.com/reference/default_mp_colors.md) : Set Default Colors for the MPs ## Data Example `Slick` objects included with the package - [`WSKJ`](https://slick.bluematterscience.com/reference/WSKJ.md) : Western Atlantic Skipjack Tuna MSE Results ## Deprecated Functions still work for backwards compatability, but no longer recommended - [`Make_Slick()`](https://slick.bluematterscience.com/reference/Make_Slick.md) : Make an example Slick object - [`NewSlick()`](https://slick.bluematterscience.com/reference/NewSlick.md) : Creates a blank Slick object - [`PMnorm()`](https://slick.bluematterscience.com/reference/PMnorm.md) : Normalize performance metric values in a Slick object # Articles ### All vignettes - [Slick Developer's Guide](https://slick.bluematterscience.com/articles/DevelopersGuide.md):