Small linting and building tool for R containers at QBiC
Copyright (c) 2018 QBiC
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Description: # Rmageddon
[![Build Status](https://travis-ci.org/qbicsoftware/rmageddon-cli.svg?branch=master)](https://travis-ci.org/qbicsoftware/rmageddon-cli) [![codecov](https://codecov.io/gh/qbicsoftware/rmageddon-cli/branch/master/graph/badge.svg)](https://codecov.io/gh/qbicsoftware/rmageddon-cli) [![PyPI version](https://badge.fury.io/py/rmageddon.svg)](https://badge.fury.io/py/rmageddon)
A small linting and building command line tool for reproducible R analysis with Docker at QBiC.
## Steps to reproducible R analyses
- Create project from [template](doc/Rmageddon-cookiecutter.md)
- [Resolve](doc/Rmageddon.md) conda packages from R sessionInfo
- [Lint](doc/Rmageddon.md) the project against the guidelines
Performing a reproducible analysis with R and share the environment status of an R installation with the necessary packages and all that with the correct version is a very challenging task.
In order to face this issue, under the umbrella of better reproducibility of computational results, we created Rmageddon, a small command-line tool, that assists in the build of Docker container with specified version of R and a dedicated, version-defined package installation. Moreover, Rmageddon provides cookiecutter templates for the easy creation of docker environments for your R analysis.
The container collection is hosted on a different GitHub repository: [R-container-lib](https://github.com/qbicsoftware/r-container-lib). All containers there passed the linting and have been build with Rmageddon.
The complete workflow for the creation of a new container for your R-analysis is depicted in the following image:
This README will guide you through the complete process of starting with the sessioninfo of your R-analysis and finally sharing your docker powered R-environment on our [R-container-lib](https://github.com/qbicsoftware/r-container-lib).
- Create a sessioninfo from your R-analysis. The official R-documentation explains this process well: [Sessioninfo](https://www.rdocumentation.org/packages/utils/versions/3.5.2/topics/sessionInfo).
- Install Rmageddon. This is explained in the documentation for Rmageddon: [Rmageddon documentation](doc/Rmageddon.md)
- Create a docker environment using the cookiecutter template. This process is described in the documentation for the [Rmageddon-cookiecutter](doc/Rmageddon-cookiecutter.md)
- Run Rmageddon build on your sessioninfo. This is again explained in the documentation for Rmageddon: [Rmageddon documentation](doc/Rmageddon.md), especially in the subcommand build section.
- Ensure that your environment.yml file is now or still in your R-container which you created in step 3
- Add your R-scripts that you used for your analysis to your just created R-container
- Validate your just created R-container: Run Rmageddon lint on it. Please refer to the documentation for Rmageddon: [Rmageddon documentation](doc/Rmageddon.md), especially in the subcommand lint section.
- If validation was successful your R-container is now ready to be added to our R-container library. Please refer to the final documentation of the [R-container-lib](https://github.com/qbicsoftware/r-container-lib).
Keywords: R,linting,lint,Docker,container Platform: UNKNOWN