diff --git a/pages/course-information/code-of-conduct.md b/pages/course-information/code-of-conduct.md deleted file mode 100644 index 7deda862..00000000 --- a/pages/course-information/code-of-conduct.md +++ /dev/null @@ -1,38 +0,0 @@ -# NBIS Training Code of Conduct - -Training is one of the core values of NBIS, and benefits from the contributions -of the entire scientific community. We value the involvement of everyone in the -community. We are committed to creating a friendly and respectful place for -learning, teaching and contributing. All participants in our events and -communications are expected to show respect and courtesy to others. - -To make clear what is expected, everyone participating in NBIS/ELIXIR courses -is required to conform to the Code of Conduct. This Code of Conduct applies to -all spaces managed by NBIS including, but not limited to, courses, email lists, -and online forums such as Studium, GitHub, Slack, Twitter and LinkedIn. Course -organizers and teachers are expected to assist with the enforcement of the Code -of Conduct. - -We are dedicated to providing a welcoming and supportive environment for all -people, regardless of background or identity. By participating in this event, -participants accept to abide by the NBIS Code of Conduct and accept the -procedures by which any Code of Conduct incidents are resolved. Any form of -behaviour to exclude, intimidate, or cause discomfort is a violation of the -Code of Conduct. In order to foster a positive and professional learning -environment we encourage the following kinds of behaviours in all platforms and -training events: - - * Use welcoming and inclusive language - * Be respectful of different viewpoints and experiences - * Gracefully accept constructive criticism - * Focus on what is best to all those involved in this training event - * Show courtesy and respect towards everyone involved in this training event - -The NBIS Training Coordinator is responsible for enforcing the Code of Conduct, -and may be contacted by emailing [education@nbis.se](mailto:education@nbis.se). -All reports will be reviewed and will be kept confidential. If you believe -someone is violating the Code of Conduct, we ask that you report it to the NBIS -Training coordinator, who will take the appropriate action to address the -situation. - -For an extended description please see the [ELIXIR Code of Conduct](https://elixir-europe.org/events/code-of-conduct). diff --git a/pages/course-information/introduction.md b/pages/course-information/introduction.md deleted file mode 100644 index 472229e7..00000000 --- a/pages/course-information/introduction.md +++ /dev/null @@ -1,82 +0,0 @@ -Welcome to the tutorials! Here we will learn how to make a computational -research project reproducible using several different tools, described in the -figure below: - -![](images/reproducibility_overview_with_logos.png){ width=700px } - -The figure above gives an overview of the different parts of computational -reproducibility (data, code, workflow and environment), as well as the various -tools that are used for each part; Git is, arguably, integral to all of the -parts, but we only listed it in the *code* section for a less cluttered figure. - -The course has a tutorial for each of the tools, all made so that they can be -completed independently of each other. It is therefore perfectly -possible to go through them in whatever order you prefer, but we suggest the -following order: - -1. Git -2. Conda -3. Snakemake -4. Nextflow -5. Quarto -6. Jupyter -7. Containers - -You will find the tutorials in the *Modules* section in the navigation menu. - -Please make sure to carefully follow the [pre-course setup](https://uppsala.instructure.com/courses/COURSE_ID/pages/pre-course-setup) -to install the tools and download the course material before starting with any of the -tutorials. These will create quite a lot of files on your computer, some of which -will actually take up a bit of storage space too. In order to remove any traces of -these after completing the tutorials, please refer to the -[Take down section](https://uppsala.instructure.com/courses/COURSE_ID/pages/take-down). - -Before going into the tutorials themselves, we first describe the case study -from which the example data comes from. - -# The case study - -We will be running a small bioinformatics project as a case study, and use that -to exemplify the different steps of setting up a reproducible research project. -To give you some context, the study background and analysis steps are briefly -described below. - -#### Background - -The data is taken from [Osmundson, Dewell, and Darst (2013)]( -http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0076572), -who have studied methicillin-resistant *Staphylococcus aureus* (MRSA). MRSA is -resistant to broad spectrum beta-lactam antibiotics and lead to -difficult-to-treat infections in humans. Lytic bacteriophages have been -suggested as potential therapeutic agents, or as the source of novel antibiotic -proteins or peptides. One such protein, gp67, was identified as -a transcription-inhibiting transcription factor with an antimicrobial effect. -To identify *S. aureus* genes repressed by gp67, the authors expressed gp67 in -*S. aureus* cells. RNA-seq was then performed on three S. aureus strains: - -* RN4220 with pRMC2 with gp67 -* RN4220 with empty pRMC2 -* NCTC8325-4 - -#### Analysis - -The graph below shows the different steps of the analysis that are included in -this project: - -![](images/mrsa-overview.png){ width=400px } - -The input files are: - -* RNA-seq raw data (FASTQ files) for the three strains -* *S. aureus* genome sequence (a FASTA file) -* *S. aureus* genome annotation (a GFF file) - -The workflow itself will perform the following tasks: - -* Downloading and indexing of the reference genome using *Bowtie2* -* Downloading the raw FASTQ data from the *Sequence Read Archive* (SRA) -* Run some quality controls on the data using *FastQC* and *MultiQC* -* Align the raw data to the genome and calculate the gene expression using - *featureCounts* -* Produce supplementary materials using data from quality controls, gene - expression and the workflow figure shown above diff --git a/pages/course-information/lectures.md b/pages/course-information/lectures.md deleted file mode 100644 index 12cd79b0..00000000 --- a/pages/course-information/lectures.md +++ /dev/null @@ -1,17 +0,0 @@ -This page contains links to all the lectures in the course in HTML format, which -you can download to view (right-click and save the link to wherever you want -it). If you want to view the raw files you can find them at [GitHub](https://github.com/NBISweden/workshop-reproducible-research/tree/GITHUB_BRANCH/lectures), -along with instructions on how to render them. - -### Lecture links - -* [Introduction](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/introduction/introduction.html) -* [Data management](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/data-management/data-management.html) -* [Git](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/git/git.html) -* [Conda](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/conda/conda.html) -* [Quarto](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/quarto/quarto.html) -* [Jupyter](https://github.com/NBISweden/workshop-reproducible-research/blob/GITHUB_BRANCH/lectures/jupyter/jupyter.ipynb) -* [Snakemake](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/snakemake/snakemake.html) -* [Nextflow](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/nextflow/nextflow.html) -* [Containers](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/containers/containers.html) -* [Putting it together](https://raw.githubusercontent.com/NBISweden/workshop-reproducible-research/GITHUB_BRANCH/lectures/putting-it-together/putting-it-together.html) diff --git a/pages/course-information/markdown.md b/pages/course-information/markdown.md deleted file mode 100644 index f4eca30c..00000000 --- a/pages/course-information/markdown.md +++ /dev/null @@ -1,50 +0,0 @@ -A *markup language* is a system for annotating text documents in order to *e.g.* -define formatting. HTML, if you are familiar with that, is an example of a -markup language. HTML uses tags, such as: - -```html -

Heading

-

Sub-heading

- Link - -``` - -*Markdown* is a lightweight markup language which uses plain-text syntax in -order to be as unobtrusive as possible, so that a human can easily read it. Look -at the following toy example: - -```markdown -# A header - -A [link](http://example.com). - -## A sub-header - -Text attributes _italic_, *italic*, **bold**, `monospace`. - -### A deeper sub-header - -Bullet list: - - - Apples - - Oranges - - Pears -``` - -This would render to something like this: - -![](images/markdown-example.png) - -A markdown document can be converted to other formats, such as HTML or PDF, for -viewing in a browser or a PDF reader; in fact, the page you are reading right -now is written in markdown. Markdown is somewhat ill-defined, and as a -consequence of that there exist many implementations and extensions. They share -most of the syntax, however, with various additions on top. - -There are a lot more things you can do with markdown than what we show here. -Indeed, this entire course is mostly written in markdown! You can read more -about markdown [here](https://www.markdownguide.org/getting-started/). diff --git a/pages/course-information/pre-course-setup.md b/pages/course-information/pre-course-setup.md deleted file mode 100644 index 19622e1d..00000000 --- a/pages/course-information/pre-course-setup.md +++ /dev/null @@ -1,430 +0,0 @@ -All of the tutorials and the material in them is dependent on the GitHub -repository for the course. The first step of the setup is thus to download all -the files that you will need, which is done differently depending on which -operating system you have. - -On the last day, in the _Putting the pieces together_ session we will give -examples of how we use these tools in our day-to-day work. During the course, -spend some time thinking about how these tools could be useful for you in your -own project(s). After you've gone through the tutorial you may feel that some of -the tools could make your life easier from the get-go, while others may take -some time to implement efficiently (and some you may never use again after the -course). Our idea with the _Putting the pieces together_ session is to have an -open discussion about where to go from here. - -## Setup for Mac / Linux users - -First, `cd` into a directory on your computer (or create one) where it makes -sense to download the course directory. - -```bash -cd /path/to/your/directory -git clone https://github.com/NBISweden/workshop-reproducible-research.git -cd workshop-reproducible-research -``` - -> **Tip**
-> If you want to revisit the material from an older instance of this course, -> you can do that using `git switch -d tags/`, e.g. -> `git switch -d tags/course_1905`. To list all available tags, use `git tag`. -> Run this command after you have `cd` into `workshop-reproducible-research` -> as described above. If you do that, you probably also want to view the -> same older version of this website. Until spring 2021, the website was -> hosted at [ReadTheDocs](https://nbis-reproducible-research.readthedocs.io). -> Locate the version box in the bottom right corner of the website and -> select the corresponding version. - -## Setup for Windows users - -Using a Windows computer for bioinformatic work has sadly not been ideal most of -the time, but large advanced in recent years have made this quite feasible -through the Windows 10 _Linux subsystem_. This is the only setup for Windows -users that we allow for participants of this course, as all the material has -been created and tested to work on Unix-based systems. - -Using the Linux subsystem will give you access to a full command-line bash shell -based on Linux on your Windows 10 PC. For the difference between the Linux Bash -Shell and the PowerShell on Windows 10, see _e.g._ [this article](https://searchitoperations.techtarget.com/tip/On-Windows-PowerShell-vs-Bash-comparison-gets-interesting). - -Install Bash on Windows 10, follow the instructions at _e.g._ one of these -resources: - -- [Installing the Windows Subsystem and the Linux Bash](https://docs.microsoft.com/en-us/windows/wsl/install-win10) -- [Installing and using Linux Bash on Windows](https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/) -- [Installing Linux Bash on Windows](https://itsfoss.com/install-bash-on-windows/) - -> **Note**
-> If you run into error messages when trying to download files through the Linux -> shell (_e.g._ `curl:(6) Could not resolve host`) then try adding the Google -> name server to the internet configuration by running `sudo nano -/etc/resolv.conf` then add `nameserver 8.8.8.8` to the bottom of the file and -> save it. - -> **Important!**
-> Whenever a setup instruction specifies Mac or Linux (_i.e._ only those two, with no alternative for Windows), -> **please follow the Linux instructions.** - -Open a bash shell Linux terminal and clone the GitHub repository containing all -files you will need for completing the tutorials as follows. First, `cd` into -a directory on your computer (or create one) where it makes sense to download -the course directory. - -> **Tip**
-> You can find the directory where the Linux distribution is storing all its -> files by typing `explorer.exe .`. This will launch the Windows File Explorer -> showing the current Linux directory. -> Alternatively, you can find the Windows C drive from within the bash shell -> Linux terminal by navigating to `/mnt/c/`. - -```bash -cd /path/to/your/directory -git clone https://github.com/NBISweden/workshop-reproducible-research.git -cd workshop-reproducible-research -``` - -## Installing Git - -Chances are that you already have git installed on your computer. You can check -by running _e.g._ `git --version`. If you don't have git, install it following -the instructions [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). -If you have a very old version of git you might want to update to a later -version. If you're on a Mac you can also install it using [Homebrew](https://brew.sh/) -and simple `brew install git`. - -### Configure git - -If it is the first time you use git on your computer, you may want to configure -it so that it is aware of your username and email. These should match those that -you have registered on GitHub. This will make it easier when you want to sync -local changes with your remote GitHub repository. - -``` -git config --global user.name "Mona Lisa" -git config --global user.email "mona_lisa@gmail.com" -``` - -> **Tip**
-> If you have several accounts (_e.g._ both a GitHub and Bitbucket account), -> and thereby several different usernames, you can configure git on -> a per-repository level. Change directory into the relevant local git -> repository and run `git config user.name "Mona Lisa"`. This will set the -> default username for that repository only. - -You will also need to configure the default branch name to be `main` instead of -`master`: - -```bash -git config --global init.defaultBranch "main" -``` - -The short version of why you need to do this is that GitHub uses `main` as the -default branch while Git itself is still using `master`; please read the box -below for more information. - -> **The default branch name**
-> The default branch name for Git and many of the online resources for hosting -> Git repositories has traditionally been `master`, which historically comes -> from the "master/slave" repositories of -> [BitKeeper](https://mail.gnome.org/archives/desktop-devel-list/2019-May/msg00066.html). -> This has been heavily discussed and in 2020 the decision was made by many -> ([including GitHub](https://sfconservancy.org/news/2020/jun/23/gitbranchname/)) -> to start using `main` instead. Any repository created with GitHub uses this -> new naming scheme since October of 2020, and Git itself is currently -> discussing implementing a similar change. Git did, however, introduce the -> ability to set the default branch name when using `git init` in -> [version 2.28](https://github.blog/2020-07-27-highlights-from-git-2-28/#introducing-init-defaultbranch), -> instead of using a hard-coded `master`. We at NBIS want to be a part of this -> change, so we have chosen to use `main` for this course. - -### GitHub setup - -[GitHub](https://github.com) is one of several online hosting platforms for Git -repositories. We'll go through the details regarding how Git and GitHub are -connected in the course itself, so for now we'll stick to setting up your -account and credentials. - -If you have not done so already, go to [github.com](https://github.com/join) and -create an account. You can also create an account on another online hosting -service for version control, _e.g._ [Bitbucket](https://bitbucket.org) or -[GitLab](https://about.gitlab.com/). The exercises in this course are written -with examples from GitHub (as that is the most popular platform with the most -extensive features), but the same thing can be done on alternative services, -although the exact menu structure and link placements differ. - -Any upload to and from GitHub requires you to authenticate yourself. GitHub -used to allow authentication with your account and password, but this is no -longer the case - using SSH keys is required instead. Knowing exactly what these -are is not necessary to get them working, but we encourage you to read the box -below to learn more about them! GitHub has excellent, platform-specific -instructions both on how to [generate](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) -and [add](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) -SSH keys to your account, so please follow those instructions. - -> **SSH keys and authentication**
-> Using SSH (Secure Shell) for authentication basically entails setting up a -> pair of keys: one private and one public. You keep the private key on your -> local computer and give the public key to anywhere you want to be able to -> connect to, _e.g._ GitHub. The public key can be used to encrypt messages that -> _only_ the corresponding private key can decrypt. A simplified description of -> how SSH authentication works goes like this: -> -> 1. The client (_i.e._ the local computer) sends the ID of the SSH key pair it -> would like to use for authentication to the server (_e.g._ GitHub) -> 2. If that ID is found, the server generates a random number and encrypts this -> with the public key and sends it back to the client -> 3. The client decrypts the random number with the private key and sends it -> back to the server -> -> Notice that the private key always remains on the client's side and is never -> transferred over the connection; the ability to decrypt messages encrypted -> with the public key is enough to ascertain the client's authenticity. This is -> in contrast with using passwords, which are themselves sent across a -> connection (albeit encrypted). It is also important to note that even though -> the keys come in pairs it is impossible to derive the private key from the -> public key. If you want to read more details about how SSH authentication work -> you can check out [this website](https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process), -> which has more in-depth information than we provide here. - -## Installing Conda - -Conda is installed with a [Miniforge](https://github.com/conda-forge/miniforge) -installer specific for your operating system: - -```bash -# Install Miniforge for 64-bit Mac -curl -L https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh -O -bash Miniforge3-MacOSX-x86_64.sh -rm Miniforge3-MacOSX-x86_64.sh -``` - -```bash -# Install Miniforge for 64-bit Mac (Apple chip) -curl -L https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh -O -bash Miniforge3-MacOSX-arm64.sh -rm Miniforge3-MacOSX-arm64.sh -``` - -```bash -# Install Miniforge for 64-bit Linux -curl -L https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O -bash Miniforge3-Linux-x86_64.sh -rm Miniforge3-Linux-x86_64.sh -``` - -The installer will ask you questions during the installation: - -- Do you accept the license terms? (Yes) -- Do you accept the installation path or do you want to choose a different one? - (Probably yes) -- Do you want the installer to initialize Miniforge (Yes) - -Restart your shell so that the settings in `~/.bashrc` or `~/.bash_profile` can -take effect. You can verify that the installation worked by running: - -```bash -conda --version -``` - -### If you already have Conda installed - -If you already have installed Conda you can make sure you're using the latest -version by running `conda update -n base conda` and skip the installation -instructions below. - -### Configuring Conda - -As a last step we will set up the default channels (from where packages will be -searched for and downloaded if no channel is specified): - -``` -conda config --add channels bioconda -conda config --add channels conda-forge -``` - -And we will also set so called 'strict' channel priority, which ensures higher -stability and better performance (see details about this setting by running the -following: - -``` -conda config --set channel_priority strict -``` - -> **Important!**
-> The Conda docs specify a couple of things to keep in mind when using Conda. -> First of all, `conda` should be installed in the `base` environment and no -> other packages should be installed into `base`. Furthermore, mixing of the -> `conda-forge` and `defaults` channels should be avoided as the default -> Anaconda channels are incompatible with `conda-forge`. Since we are installing -> from `miniforge` we get the `conda-forge` defaults without having to do -> anything. - -### Conda on new Macs - -If you have one of the newer Macs with Apple chips (the M-series) you may run -into some problems with certain Conda packages that have not yet been built for -the ARM64 architecture. The [Rosetta](https://support.apple.com/en-us/HT211861) -software allows ARM64 Macs to use software built for the old AMD64 architecture, -which means you can always fall back on creating AMD/Intel-based environments -and use them in conjunction with Rosetta. This is how you do it: - -```bash -CONDA_SUBDIR=osx-64 -conda activate -conda config --env --set subdir osx-64 -``` - -The first command creates the Intel-based environment, while the last one -makes sure that subsequent commands are also using the Intel architecture. If -you don't want to remember and do this manually each time you want to use -AMD64/Rosetta you can check out [this bash script](https://github.com/fasterius/dotfiles/blob/main/scripts/intel-conda-env.sh). - -## Installing Snakemake - -We will use Conda environments for the set up of this tutorial, but don't worry -if you don't understand exactly what everything does - you'll learn all the -details at the course. First make sure you're currently situated inside the -tutorials directory (`workshop-reproducible-research/tutorials`) and then create -the Conda environment like so: - -```bash -conda env create -f snakemake/environment.yml -n snakemake-env -conda activate snakemake-env -``` - -> **ARM64 users:**
-> Some of the packages in this environment is not available for the ARM64 -> architecture, so you'll have to follow the [instructions above](#conda/Conda-on-new-macs). - -Check that Snakemake is installed correctly, for example by executing `snakemake ---help`. This should output a list of available Snakemake settings. If you get -`bash: snakemake: command not found` then you need to go back and ensure that -the Conda steps were successful. Once you've successfully completed the above -steps you can deactivate the environment using `conda deactivate` and continue -with the setup for the other tools. - -## Installing Nextflow - -The easiest way to install Nextflow is the official one, which is to just run the -following code: - -```bash -curl -s https://get.nextflow.io | bash -``` - -This will give you the `nextflow` file in your current directory - move this file -to a directory in your `PATH`, _e.g._ `/usr/bin/`. - -If you're getting Java-related errors, you can either try to [update your Java -installation](https://www.nextflow.io/docs/latest/getstarted.html#requirements) -(Nextflow requires Java 11 or later) or install Nextflow using conda. If you -want to use Conda, navigate to `workshop-reproducible-research/tutorials` and -create the environment: - -```bash -conda env create -f nextflow/environment.yml -n nextflow-env -conda activate nextflow-env -``` - -> **ARM64 users:**
-> Some of the packages in this environment is not available for the ARM64 -> architecture, so you'll have to follow the [instructions above](#conda/Conda-on-new-macs). - -Check that Nextflow was installed correctly by running `nextflow -version`. If -you successfully installed Nextflow using Conda you can now deactivate the -environment using `conda deactivate` and continue with the other setups, as -needed. - -## Installing Quarto - -Installing Quarto is easiest by going to the [official -website](https://quarto.org/docs/get-started/) and downloading the -OS-appropriate package and following the installation instructions. You also -need to install a LaTeX distribution to be able to render Quarto documents to -PDF, which can be done using Quarto itself: - -```bash -quarto install tinytex -``` - -While we're not installing Quarto _itself_ using Conda, we _will_ install some -software packages that are used in the Quarto tutorial using Conda: make sure -your working directory is in the tutorials directory (`workshop-reproducible-research/tutorials`) -and install the necessary packages defined in the `environment.yml`: - -```bash -conda env create -f quarto/environment.yml -n quarto-env -``` - -> **ARM64 users:**
-> Some of the packages in this environment is not available for the ARM64 -> architecture, so you'll have to follow the [instructions above](#conda/Conda-on-new-macs). - -## Installing Jupyter - -Let's continue using Conda for installing software, since it's so convenient to -do so! Move into the tutorials directory (`workshop-reproducible-research/tutorials`), -create a Conda environment from the `jupyter/environment.yml` file and test -the installation of Jupyter, like so: - -```bash -conda env create -f jupyter/environment.yml -n jupyter-env -conda activate jupyter-env -``` - -Once you've successfully completed the above steps you can deactivate the -environment using `conda deactivate` and continue with the setup for the other -tools. - -## Installing Docker - -Installing Docker (specifically Docker Desktop) is quite straightforward on Mac, -Windows and Linux distributions. Note that Docker runs as root, which means that -you have to have `sudo` privileges on your computer in order to install or run -Docker. When you have finished installing docker, regardless of which OS you are -on, please type `docker --version` to verify that the installation was -successful. - -> **Docker for older versions of OSX/Windows**
-> The latest version of Docker may not work if you have an old version of either -> OSX or Windows. You can find older Docker versions that may be compatible for -> you if you go to -> [https://docs.docker.com/desktop/](https://docs.docker.com/desktop/) and click -> "Previous versions" in the left side menu. - -### MacOS - -Go to [docker.com](https://docs.docker.com/docker-for-mac/install/#download-docker-for-mac) -and select the download option that is suitable for your computer's architecture -(_i.e._ if you have an Intel chip or a newer Apple M1 chip). This will download -a `dmg` file - click on it when it's done to start the installation. This will -open up a window where you can drag the Docker.app to Applications. Close the -window and click the Docker app from the Applications menu. Now it's basically -just to click "next" a couple of times and we should be good to go. You can find -the Docker icon in the menu bar in the upper right part of the screen. - -### Linux - -Go to the [linux-install](https://docs.docker.com/desktop/install/linux-install/) -section of the Docker documentation and make sure that your computer meets the -system requirements. There you can also find instructions for different Linux -distributions in the left sidebar under _Installation per Linux distro_. - -### Windows - -In order to run Docker on Windows your computer must support _Hardware -Virtualisation Technology_ and virtualisation must be enabled. This is typically -done in BIOS. Setting this is outside the scope of this tutorial, so we'll -simply go ahead as if though it's enabled and hope that it works. - -On Windows 10 we will install Docker for Windows, which is available at -[docker.com](https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows). -Click the link _Download from Docker Hub_, and select _Get Docker_. Once the -download is complete, execute the file and follow the [instructions](https://docs.docker.com/docker-for-windows/install/#install-docker-desktop-on-windows). -You can now start Docker from the Start menu. You can search for it if you -cannot find it; the Docker whale icon should appear in the task bar. - -You will probably need to enable integration with the Linux subsystem, if you -haven't done so during the installation of Docker Desktop. Right-click on the -Docker whale icon in the task bar and select _Settings_. Choose _Resources_ and -select _WPS integration_. Enable integration with the Linux subsystem and click -_Apply & Restart_; also restart the Linux subsystem. diff --git a/pages/course-information/schedule.md b/pages/course-information/schedule.md deleted file mode 100644 index d07464d1..00000000 --- a/pages/course-information/schedule.md +++ /dev/null @@ -1,343 +0,0 @@ -

Day 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Time Topic Teachers
09:00 Setting up and troubleshooting installations EF, JS, LM, TL, EP
10:00 Lecture: Introduction to Reproducible Research EF
10:25 Break  
10:40Lecture: Data management and project organizationJS
11:10 Version tracking and distributing your code
- - Lecture: Introduction to version control and Git
- - Practical tutorial: Git
EF
12:00 Lunch  
13:00 ... continued: GitEF, JS, LM, TL, EP
14:40Break  
15:00Mastering your environment
- - Lecture: Introduction to the package and environment manager Conda
- - Practical tutorial: Conda
JS
16:45 Wrap-up day 1 EF
- -

Day 2

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Time Topic Teachers
09:00 Organize your analyses using workflow managers
- - Lecture: Introduction to Snakemake
- - Practical tutorial: Snakemake
JS
10:20 Break  
10:40 ... continued: Snakemake EF, JS, LM, TL, EP
12:00 Lunch  
13:00 ... continued: SnakemakeEF, JS, LM, TL, EP
14:40 Break  
15:00 Organize your analyses using workflow managers
- - Lecture: Introduction to Nextflow
- - Practical tutorial: Nextflow
EF
16:45 Wrap-up day 2 JS
18:00Course dinner at GrappaEF, JS, LM, TL, EP
- -

Day 3

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Time Topic Teachers
09:00 ... continued: Nextflow EF, JS, LM, TL, EP
10:20 Break  
10:40 ... continued: NextflowEF, JS, LM, TL, EP
12:00 Lunch  
13:00 Writing computational notebooks and reproducible reports
- - Lecture: Introduction to Quarto
- - Practical tutorial: Quarto
EF
14:30 Break  
14:50 ... continued: Quarto EF, JS, LM, TL, EP  
15:20Writing computational notebooks and reproducible reports
- - Lecture: Introduction to Jypyter
- - Practical tutorial: Jupyter
JS
16:45 Wrap-up day 3 EF
- -

Day 4

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Time Topic Teachers
09:00 ... continued: JupyterEF, JS, LM, TL, EP
09:45 Working with containers
- - Lecture: Introduction to containers
- - Practical tutorial: Containers
JS
10:30 Break  
10:50 ... continued: ContainersEF, JS, LM, TL, EP
12:00 Lunch  
13:00 ... continued: Containers EF, JS, LM, TL, EP
14:20Break  
14:40... continued: ContainersEF, JS, LM, TL, EP
16:45 Wrap-up day 4 JS
- -

Day 5

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Time Topic Teachers
09:00 Putting it all together
- - Lecture: How to put all the tools together and seeing the big picture
- - Practical tutorial: Start using the tools in your own projects
EF
10:20 Break  
10:40 ... continued: Putting it all togetherEF, JS, LM, TL, EP
12:00 Lunch  
13:00 ... continued: Putting it all togetherEF, JS, LM, TL, EP
14:20 Break  
14:40 ... continued: Putting it all togetherEF, JS, LM, TL, EP
15:45 Final wrap-up and end of the course! JS
- -

The above schedule is approximate; variations may occur.

- - - - - - - - - - - - - - - - - - - - - - - - -
EF Erik Fasterius
JS John Sundh
TL Tomas Larsson
LM Lokesh Manoharan
EP Estelle Proux-Wéra
diff --git a/pages/course-information/take-down.md b/pages/course-information/take-down.md deleted file mode 100644 index 216f709f..00000000 --- a/pages/course-information/take-down.md +++ /dev/null @@ -1,143 +0,0 @@ -There might be a lot of files stored on your computer after you've taken the -course, depending on how many modules you've gone through. Here are instructions -for how to remove them. - -All the tutorials depend on you cloning the `workshop-reproducible-research` -GitHub repo. This can be removed like any other directory; via Finder, -Explorer or `rm -rf workshop-reproducible-research`. Note that this will also -delete the hidden directories `.git`, which contains the history of the repo, -and `.snakemake`, which contains the history of any Snakemake runs. - -## Conda - -Several of the tutorials use Conda for installing packages. This amounts to -about 2.6 GB if you've done all the tutorials. If you plan on using Conda in -the future you can remove just the packages, or you can remove everything -including Conda itself. - -In order to remove all your environments, you first need to list them: - -```bash -conda env list -``` - -For each of the environments except "base" run the following: - -```bash -conda remove -n --all -``` - -And, finally: - -```bash -conda clean --all -``` - -If you also want to remove Conda itself (_i.e._ removing all traces of Conda), -you should first reverse the installation, this part should be run with `conda`: - -``` -conda init --reverse -``` - -Now find the path where Conda is installed. Look for the row "base -environment": - -```bash -conda info | grep "base environment" -``` - -This should say something like: - -``` -base environment : /Users//condaforge (writable). -``` - -Then remove the entire Miniforge directory: - -``` -rm -rf /Users//miniforge3 -``` - -## Snakemake - -Snakemake is installed via Conda and will be removed if you follow the -instructions in the Conda section above. Note that Snakemake also generates -a hidden `.snakemake` directory in the directory where it's run. You can remove -this with the following: - -```bash -rm -rf workshop-reproducible-research/tutorials/snakemake/.snakemake -``` - -## Nextflow - -Since we installed Nextflow using Conda we can remove it in the same way as -above. You may also want to remove the `results/` and `work/` directories, which -you can do like so: - -```bash -rm -rf workshop-reproducible-research/tutorials/nextflow/results -rm -rf workshop-reproducible-research/tutorials/nextflow/work -``` - -## Jupyter - -Jupyter is installed via Conda and will be removed if you follow the -instructions in the Conda section above. - -## Docker - -Docker is infamous for quickly taking up huge amounts of space, and some -maintenance is necessary every now and then. Here is how to uninstall Docker -completely. Let's start by removing individual images and containers: - -```bash -# Remove unused images -docker image prune - -# Remove stopped containers -docker container prune - -# Remove unused volumes (not used here, but included for reference) -docker volume prune - -# Stop and remove ALL containers -docker container rm $(docker container ls -a -q) - -# Remove ALL images -docker image rm $(docker image ls -a -q) -``` - -Removing Docker itself works differently on the three operating systems, which -is described below: - -#### MacOS - -Click the Docker icon in the menu bar (upper right part of the screen) and -select "Preferences". In the upper right corner, you should find a little bug icon. -Click on that icon and select "Reset to factory defaults". You may have to fill -in your password. Then select "Uninstall". Once it's done uninstalling, drag the -Docker app from Applications to Trash. - -#### Linux - -If you've installed Docker with `apt-get`, uninstall it like this: - -```bash -apt-get purge docker-ce -``` - -Images, containers, and volumes are not automatically removed. To delete all of -them: - -```bash -rm -rf /var/lib/docker -``` - -#### Windows - -Uninstall Docker for Windows (on Windows 10) or Docker Toolbox (on Windows 7) -via Control Panel > Programs > Programs and Features. Docker Toolbox will also -have installed Oracle VM VirtualBox, so uninstall that as well if you're not -using it for other purposes.