diff --git a/01-BioDIGS_project_overview.Rmd b/01-BioDIGS_project_overview.Rmd new file mode 100644 index 0000000..edf512a --- /dev/null +++ b/01-BioDIGS_project_overview.Rmd @@ -0,0 +1,12 @@ + +# (PART\*) BioDIGS Overview {-} + +# Background + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_biodigs_overview.Rmd", + branch = "main", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` diff --git a/01-intro.Rmd b/01-intro.Rmd deleted file mode 100644 index f98f519..0000000 --- a/01-intro.Rmd +++ /dev/null @@ -1,20 +0,0 @@ -# (PART\*) Demo Chapters {-} - - -```{r, include = FALSE} -ottrpal::set_knitr_image_path() -``` - -# Introduction - - -## Motivation - - -## Target Audience - -The course is intended for ... - -## Curriculum - -The course covers... diff --git a/02-chapter_of_course.Rmd b/02-chapter_of_course.Rmd deleted file mode 100644 index 234726d..0000000 --- a/02-chapter_of_course.Rmd +++ /dev/null @@ -1,186 +0,0 @@ - -# A new chapter - -*If you haven't yet read the getting started Wiki pages; [start there](https://github.com/jhudsl/OTTR_Template/wiki/Getting-started) - -Every chapter needs to start out with this chunk of code: - -```{r, include = FALSE} -ottrpal::set_knitr_image_path() -``` - -## Learning Objectives - -*Every chapter also needs Learning objectives that will look like this: - -This chapter will cover: - -- {You can use https://tips.uark.edu/using-blooms-taxonomy/ to define some learning objectives here} -- {Another learning objective} - -## Libraries - -For this chapter, we'll need the following packages attached: - -*Remember to add [any additional packages you need to your course's own docker image](https://github.com/jhudsl/OTTR_Template/wiki/Using-Docker#starting-a-new-docker-image). - -```{r} -library(magrittr) -``` - - -## Subtopic - -Here's a subheading and some text in this subsection! - -### Code examples - -You can demonstrate code like this: - -```{r} -output_dir <- file.path("resources", "code_output") -if (!dir.exists(output_dir)) { - dir.create(output_dir) -} -``` - -And make plots too: - -```{r} -hist_plot <- hist(iris$Sepal.Length) -``` - -You can also save these plots to file: - -```{r} -png(file.path(output_dir, "test_plot.png")) -hist_plot -dev.off() -``` - -### Image example - -How to include a Google slide. It's simplest to use the `ottrpal` package: - -```{r, fig.align='center', echo = FALSE, fig.alt= "Major point!! example image"} -ottrpal::include_slide("https://docs.google.com/presentation/d/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ/edit#slide=id.gcc4fbee202_0_141") -``` - -But if you have the slide or some other image locally downloaded you can also use html like this: - -Major point!! example image - -### Video examples - -To show videos in your course, you can use markdown syntax like this: - -[A video we want to show](https://www.youtube.com/embed/VOCYL-FNbr0) - -Alternatively, you can use `knitr::include_url()` like this: -Note that we are using `echo=FALSE` in the code chunk because we don't want the code part of this to show up. -If you are unfamiliar with [how R Markdown code chunks work, read this](https://rmarkdown.rstudio.com/lesson-3.html). - -```{r, echo=FALSE} -knitr::include_url("https://www.youtube.com/embed/VOCYL-FNbr0") -``` - -OR this works: - - - -### Links to files - -This works: - -```{r, fig.align="center", echo=FALSE} -knitr::include_url("https://www.bgsu.edu/content/dam/BGSU/center-for-faculty-excellence/docs/TLGuides/TLGuide-Learning-Objectives.pdf", height = "800px") -``` - -Or this: - -[This works](https://genetics-gsa.org/education/genetics-learning-framework/). - -Or this: - - - -### Links to websites - -Examples of including a website link. - -This works: - -```{r, fig.align="center", echo=FALSE} -knitr::include_url("https://yihui.org") -``` - -OR this: - -![Another link](https://yihui.org) - -OR this: - - - -### Citation examples - -We can put citations at the end of a sentence like this [@rmarkdown2021]. -Or multiple citations [@rmarkdown2021, @Xie2018]. - -but they need a ; separator [@rmarkdown2021; @Xie2018]. - -In text, we can put citations like this @rmarkdown2021. - -### Callout boxes - -There are some preset callout boxes available, which can be used like so: - -`notice`: - -::: {.notice} -Here's something interesting. -::: - -`warning`: - -::: {.warning} -Look out! -::: - -`dictionary`: - -::: {.dictionary} -Here's a definition. -::: - -`reflection`: - -::: {.reflection} -Consider this! -::: - -`github`: - -::: {.github} -Here's how you use GitHub. -::: - -`wip`: - -::: {.wip} -This section is a **Work in Progress**. -::: - -### Dropdown summaries - -
You can hide additional information in a dropdown menu -Here's more words that are hidden. -
- -## Print out session info - -You should print out session info when you have code for [reproducibility purposes](https://jhudatascience.org/Reproducibility_in_Cancer_Informatics/managing-package-versions.html). - -```{r} -devtools::session_info() -``` diff --git a/02-research_team.Rmd b/02-research_team.Rmd new file mode 100644 index 0000000..d0aa48d --- /dev/null +++ b/02-research_team.Rmd @@ -0,0 +1,9 @@ +# Research Team + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_research_team.Rmd", + branch = "main", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` diff --git a/03-AnVIL_modules.Rmd b/03-AnVIL_modules.Rmd deleted file mode 100644 index 83a9642..0000000 --- a/03-AnVIL_modules.Rmd +++ /dev/null @@ -1,52 +0,0 @@ -# AnVIL Module Library - -There are several pieces of content that are useful across multiple books, such as "How to Create a Workspace". To reduce maintenance burden, the `AnVIL_Template` repository has a collection of `_child` R Markdown documents that can be included in your books. - -You can see all the available AnVIL modules in the [AnVIL_Template book](https://jhudatascience.org/AnVIL_Template/) - -## Include using `cow::borrow_chapter()` - -To add a module to your book, include a code chunk with the `cow::borrow_chapter()` function, specifying the file for the module you want to borrow and the repository you want to borrow it from (the `AnVIL_Template` repository). - -See the OTTR_Template [wiki page](https://github.com/jhudsl/OTTR_Template/wiki/Borrowing-chapters-between-courses) for the most recent instructions and additional details. - -Here is an example of including the `_child_workspace_create.Rmd` with `cow::borrow_chapter()` - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_create.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Background Highlighting for Borrowed Chapters - -You can use the `borrowed_chunk` [custom div block](https://bookdown.org/yihui/rmarkdown-cookbook/custom-blocks.html) to highlight borrowed content or any other content you choose. - -**Basic format:** - -``` -:::: {.borrowed_chunk} -Code/Content here -:::: -``` - -**Rendered with highlighting:** - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -**Rendered without highlighting:** - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` diff --git a/03-data_tour.Rmd b/03-data_tour.Rmd new file mode 100644 index 0000000..400cf11 --- /dev/null +++ b/03-data_tour.Rmd @@ -0,0 +1,9 @@ +# BioDIGS Data + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_data_tour.Rmd", + branch = "main", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` diff --git a/05-billing_modules.Rmd b/04-billing_modules.Rmd similarity index 93% rename from 05-billing_modules.Rmd rename to 04-billing_modules.Rmd index 8c8844c..d2c6c7c 100644 --- a/05-billing_modules.Rmd +++ b/04-billing_modules.Rmd @@ -1,10 +1,13 @@ + ```{r echo = FALSE} knitr::opts_chunk$set(out.width = "100%") ``` +# (PART\*) AnVIL Overview {-} + # Billing -Modules about billing and Billing Projects on Google Cloud Platform and Terra. +In order to use AnVIL, you will need to set up a billing account and add members to it. These sections guide you through that process.
diff --git a/04-workspace_modules.Rmd b/04-workspace_modules.Rmd deleted file mode 100644 index 1b582b5..0000000 --- a/04-workspace_modules.Rmd +++ /dev/null @@ -1,44 +0,0 @@ -# (PART\*) AnVIL Modules {-} - -# Workspaces - -Modules about Terra Workspaces - -
- -## Clone a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_clone.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Create a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_create.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Open a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_open.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Share a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_share.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - diff --git a/05-anvil_onboarding.Rmd b/05-anvil_onboarding.Rmd new file mode 100644 index 0000000..a21fc15 --- /dev/null +++ b/05-anvil_onboarding.Rmd @@ -0,0 +1,27 @@ + +# AnVIL Workspace + +```{r, include = FALSE} +ottrpal::set_knitr_image_path() +``` + +You can easily access the data on AnVIL by cloning the dedicated workspace. These sections guide you through creating an AnVIL account and accessing the workspace. + + +## Create Google Account + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_create_account.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +## Clone the Workspace + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_workspace_clone.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` diff --git a/06-onboarding_modules.Rmd b/06-onboarding_modules.Rmd deleted file mode 100644 index 7b6e32a..0000000 --- a/06-onboarding_modules.Rmd +++ /dev/null @@ -1,15 +0,0 @@ -# Onboarding - -Joining a team on AnVIL. - -
- -## Create Google Account - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - diff --git a/12-instructor_modules.Rmd b/06-using_galaxy.Rmd similarity index 53% rename from 12-instructor_modules.Rmd rename to 06-using_galaxy.Rmd index c2bbc00..24c40b4 100644 --- a/12-instructor_modules.Rmd +++ b/06-using_galaxy.Rmd @@ -1,49 +1,53 @@ -# Instructor modules +```{r echo = FALSE} +knitr::opts_chunk$set(out.width = "100%") +``` + +# Programming Platforms + +This section provide a general overview of how to use Galaxy on AnVIL. -Modules aimed at instructors. -
- -## Why AnVIL for Instructors? -:::: {.borrowed_chunk} + +## Video overview on using Galaxy + ```{r, echo = FALSE, results='asis'} cow::borrow_chapter( - doc_path = "child/_child_why_AnVIL_instructor.Rmd", + doc_path = "child/_child_galaxy_video.Rmd", repo_name = "jhudsl/AnVIL_Template" ) ``` -:::: -## Checklist Link +## Starting Galaxy :::: {.borrowed_chunk} ```{r, echo = FALSE, results='asis'} cow::borrow_chapter( - doc_path = "child/_child_instructor_checklist_link.Rmd", + doc_path = "child/_child_galaxy_start.Rmd", repo_name = "jhudsl/AnVIL_Template" ) ``` :::: -## Checklist Timeline (premade content) +## Navigating Galaxy :::: {.borrowed_chunk} ```{r, echo = FALSE, results='asis'} cow::borrow_chapter( - doc_path = "child/_child_instructor_timeline_premade.Rmd", + doc_path = "child/_child_galaxy_navigate.Rmd", repo_name = "jhudsl/AnVIL_Template" ) ``` :::: -## Recommendation to use STRIDES +## Deleting Galaxy :::: {.borrowed_chunk} ```{r, echo = FALSE, results='asis'} cow::borrow_chapter( - doc_path = "child/_child_instructor_STRIDES.Rmd", + doc_path = "child/_child_galaxy_delete.Rmd", repo_name = "jhudsl/AnVIL_Template" ) ``` :::: + diff --git a/07-instructor_guide.Rmd b/07-instructor_guide.Rmd new file mode 100644 index 0000000..b9c30f2 --- /dev/null +++ b/07-instructor_guide.Rmd @@ -0,0 +1,708 @@ +# (PART\*) Instructor Checklist for AnVIL {-} + +# Notes for Instructors + +Although AnVIL is the preferred computational platform for the GDSCN, this activity can be run on both Galaxy on AnVIL and on the [Galaxy web portal](https://usegalaxy.org/). + +You may also adapt this activity for other languages and platforms. + +# Checklist for Running Activities on AnVIL + +If you choose to run this activity on AnVIL with your class, there are several things that you can do to make the experience easier. + +## Before the class begins {-} + +This checklist can serve as a reminder of the overall suggested steps to run an activity on AnVIL. You might find yourself changing these steps slightly as you become more familiar with AnVIL. + +**Billing** + +- Obtain funding through the [STRIDES](https://datascience.nih.gov/strides) program (optional) +- Request students make AnVIL IDs (Google IDs) +- Collect AnVIL IDs (Google IDs) from students +- Create Google Billing Account for your class + +**Resources** + +- Create a Workspace for your class (optional) +- Notify Terra of your course dates and times +- Direct students to the Workspace + +**Permissions** + +- Set up Groups to manage permissions + +| AnVIL Group | Class Workspace | Terra Billing Projects*| +|:--------------------|:----------------|:-----------------------| +| Instructor | Owner | Owner | +| Teaching assistants | Writer | Owner | +| Students | Reader | User | + + +## After the class ends {-} + +**Resources** + +- Remind students to download any files they might need +- Tell students to delete their environments and persistent disks + +**Billing** + +- Deactivate billing project + + +# Setting up Billing on AnVIL + +The following will help you set up billing for your class. You will: +* Set up a billing project for tracking costs +* Add yourself and students to the billing project to grant permission to AnVIL resources +* Learn about different sources of costs in AnVIL +* Estimate costs for your class +* Learn about how to track costs during your class + +## Creating a billing project {#billing-project} + +First, create the Billing Project. Billing Project names must be globally unique and cannot exceed 30 characters. We suggest the name of the Billing Project should be a combination of institution-class- (e.g., "jhu-bmr2021-bill-1"). To create a Billing Project: + +1. Go to https://anvil.terra.bio/#billing + +1. Click “+CREATE” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page. The "+CREATE" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_88") + ``` + +1. Type in your Billing Project name + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The new billing project name, jhu-bmr2021-instructors-bill-1, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_98") + ``` + +1. Select the appropriate Billing Account + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The appropriate billing account name, My Billing Account, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_2") + ``` + +1. Click “CREATE BILLING PROJECT” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The "CREATE BILLING PROJECT" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_9") + ``` + +You now have a unique **Billing Project**. + +## Adding Instructors as “Owner” + +Next, you want to give instructors permission to use the Billing Project to compute. To set instructor permissions: + +1. Go to https://anvil.terra.bio/#billing + +1. Select the “Owned by You” Billing Project sub-list + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_0") + ``` + +1. Select the Billing Project you made in [Instructor Billing Project](#billing-project) + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list has been expanded. The instructor Billing project, in this case jhu-bmr2021-instructors, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_10") + ``` + +1. Select the “Users” tab + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The instructor Billing project, in this case jhu-bmr2021-instructors, has been selected and the Users Tab is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_24") + ``` + +1. Click “+ Add User”. You will be prompted to add a “User email *”. + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The instructor Billing project, in this case jhu-bmr2021-instructors, has been selected and the "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_39") + ``` + +1. Begin typing the instructor Group name set up in [Instructor Group](#instructor-group). You should see an email in the form @firecloud.org (e.g., jhu-bmr2021-instructors@firecloud.org). + +1. Ensure “Can manage users (Owner)” is **selected** + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The instructor Group email, in this case jhu-bmr2021-instructors@firecloud.org, has been filled in and the Owner role checkbox has been ticked.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_54") + ``` + +1. Click “ADD USER” + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The instructor Group email, in this case jhu-bmr2021-instructors@firecloud.org, has been filled in and the Owner role checkbox has been ticked. The "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_70") + ``` + + +::: {.notice} +This step makes it so that co-instructors can edit permissions and administer the Billing Project as needed. While this means you and co-instructors can compute using the student Billing Project, this makes spending difficult to track. Instructors should always use the **instructor Workspace** to compute. This makes it much easier to track costs associated with instructors versus students. +::: + +## Adding Students as “User” + +Next, you will add your student Group to the Billing Project so that they can compute. To set student permissions: + +1. Go to https://anvil.terra.bio/#billing + +1. Select the “Owned by You” Billing Project sub-list + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_0") + ``` + +1. Select the Billing Project you made in [Billing Project](#billing-project) + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list has been expanded. The student Billing project, in this case jhu-bmr2021-students, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_90") + ``` + +1. Select the “Users” tab + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The student Billing project, in this case jhu-bmr2021-students, has been selected and the Users Tab is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_301") + ``` + +1. Click “+ Add User”. You will be prompted to add a “User email *”. + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The student Billing project, in this case jhu-bmr2021-students, has been selected and the "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_315") + ``` + +1. Begin typing the student Group name set up in [Student Group](#student-group). You should see an email in the form @firecloud.org (e.g., jhu-bmr2021-students@firecloud.org). + +1. Keep “Can manage users (Owner)” **deselected**. + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The student Group email, in this case jhu-bmr2021-students@firecloud.org, has been filled in and the Owner role checkbox has NOT been ticked.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_132") + ``` + +1. Click “ADD USER” + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The student Group email, in this case jhu-bmr2021-students@firecloud.org, has been filled in and the Owner role checkbox has NOT been ticked. The "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_327") + ``` + +## Understanding the various billing costs + +Costs in AnVIL fall into one of three categories: compute costs, storage costs, and network usage (egress) costs. **Compute costs** are those that students accrue when actively using an AnVIL Workspace. Students can clone a Workspace for no cost, but they will begin to accrue costs as soon as they set up a cloud environment. Compute costs are based on how many CPUs you need, as well as how much memory and storage space you choose. You can also pause the Workspace and pay a lower cost per hour than if you were to keep the Workspace running. Current prices can be found [here](https://cloud.google.com/compute/all-pricing#top_of_page). + +**Storage costs** are driven by the persistent disk. The persistent disk allows you to store data and installed programs/libraries for a low cost. Students can delete their Workspaces but maintain their persistent disk so they still have access to previous programs they have installed and previous files they've created. Current prices can be found [here](https://cloud.google.com/storage/pricing#storage-pricing%20and%20https://cloud.google.com/compute/all-pricing#localssdpricing). + +Finally, **network usage** costs are those involved with transferring data between networks or downloading data from the cloud to your local computer. Current prices can be found [here](https://cloud.google.com/storage/pricing#network-egress). + +## Estimating costs before the class begins + +AnVIL has a free [AnVIL_Cost_Estimator](https://docs.google.com/spreadsheets/d/1GUN93HDRqDbZ0uktaZjoP-y8Ril1T_VIJnQrjRD6tV4) that allows you estimate compute, storage, and network usage costs for your class. This is a Google sheet that you can tailor to fit your needs. Before you use it, make sure the prices are up to date by following the links at the bottom of the sheet. + +If you need to create a Budget Justification for your class, you can also use the free [AnVIL_Budget_Justification](https://docs.google.com/document/d/145JFLn2hviLmaYF-mO06gbCkG0i4HRaWvkUBKORo85Y/edit) template. + +## How much does a class cost? + +One of the advantages of billing projects in Terra is that you can keep track of the costs during real time. You can see how much each Workspace is costing while your course is happening, so there are no unexpected surprises at the end! + +Full details about billing in Terra can be found [here](https://support.terra.bio/hc/en-us/articles/4405325218075). These instructions are adapted from Terra Support. + +To view the costs being accrued by each billing project, you can go to [https://console.cloud.google.com/billing](https://console.cloud.google.com/billing). At the top of the page, there is a dropdown menu. Choose the billing project name you'd like to view. + + +Locating dropdown menu + + +Once you are in proper billing project, you click on "View detailed charges" in the Billing section on the far right. + + +Locating detailed charges + + +This takes you to a report of the detailed charges accrued by the billing account. Here, you will be able to see the total cost over a time range, as well as costs broken down by services. + + +Locating dropdown menu + + +# Setting up the Class Activity + +## Overview of Class Setup + +This section will show you how to organize your class to make it easier to administer access to your content. You will need to have a list of who will be taking your class, such as a course roster or sign-up list, as well as a list of additional instructors or teaching assistants. You can make changes later, so the list of students need not be final. + +## Collect Google IDs + +AnVIL IDs are based on [Google accounts](account-setup.html#google-account). + +Students -- Contact students/participants to get their AnVIL IDs. These should be Gmail addresses or emails with GSuite capabilities. You can link students to [Student Account Setup](student-account-setup.html) for instructions on what they should do. + +Co-instructors -- If you will be working with other instructors, such as co-instructors or teaching assistants, you will need to collect their IDs as well. + +## Set Up Groups +Reminder: + +- Google **Billing Accounts** are managed on Google Cloud Platform and are used for organizing *funding sources* (e.g. credit cards, cloud credits). +- Terra **Billing Projects** are managed through Terra, and allow you to associate your Terra activity with the correct Google Billing Account. + +For a more detailed explanation, please see the chapter on Account Setup. + +We suggest creating two different Terra Billing Projects under the appropriate Billing Account that you created on `cloud.google.com`: one for students and one for co-instructors. The instructions below will walk you through how to set this up. + +Groups enable you to share your class Workspace and manage permissions for many people at once. We recommend starting with one Group for instructors and one Group for students. + +### Instructor Group {#instructor-group} {-} + +Create an informative, unique Group name for any co-instructors and teaching assistants. We suggest a combination of institution-class-role (e.g., “jhu-bmr2021-instructors”). Only letters, numbers, underscores, and dashes are allowed in Group names. To create a Group for instructors: + +1. Go to https://anvil.terra.bio/#groups + +1. Click “+ Create a New Group” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page. The "Create a New Group" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_6") + ``` + +1. Type in your instructor Group name + +1. Click “CREATE GROUP” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page with Create New Group pop out box. The Group name, jhu-bmr2021-instructors, has been entered and the "CREATE GROUP" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_16") + ``` + +You now have a unique **instructor Group**. + +#### Add Instructors as "Admin" (Instructor Group) {-} + +Now that your instructor Group has been created, you should add any additional instructors. You should also ensure that they have the correct permissions. + +1. Go to https://anvil.terra.bio/#groups/ and click on the instructor Group name. This page should also be visible at `https://anvil.terra.bio/#groups/`. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group, and the specific Group that was just created. The Group Name is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g10118383b73_193_0") + ``` + +1. Click on “+Add User”. You will be prompted to add the instructor’s AnVIL ID. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page for the specific Group that was just created. The "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_45") + ``` + +1. Type in the instructor’s AnVIL ID + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The instructor`s AnVIL ID, instructor-1@gmail.com, has been entered and the AnVIL ID (email) is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_58") + ``` + +1. Make sure “Can manage users (admin)” is **selected** + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The instructor`s AnVIL ID, instructor-1@gmail.com, has been entered and the checkbox "Can manage users (admin)" has been selected and is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_65") + ``` + +1. Click ADD USER. This will take you back to the Group administration page. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The instructor`s AnVIL ID, instructor-1@gmail.com, has been entered and the "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_71") + ``` + +Make sure the newly added instructor displays “Admin” under “Roles” beside their AnVIL ID. Repeat this process for any additional co-instructors and teaching assistants. + +```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the instructor Group that was just created, where the newly added instructor is visible in the user list. The instructor`s AnVIL ID, instructor-1@gmail.com is visible next to the role "Admin", which is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_78") +``` + +### Student Group {#student-group} {-} + +Next, you will create a Group for your students. Create an informative, unique Group name. We suggest a combination of institution-class-role (e.g., “jhu-bmr2021-students”). Only letters, numbers, underscores, and dashes are allowed in Group names. To create a Group for students: + +1. Go to https://anvil.terra.bio/#groups + +1. Click “+ Create a New Group” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page. The "Create a New Group" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_6") + ``` + +1. Type in your student Group name + +1. Click “CREATE GROUP” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page with Create New Group pop out box. The Group name, jhu-bmr2021-students, has been entered and the "CREATE GROUP" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_38") + ``` + +You now have a unique **student Group**. + +#### Add Instructors as "Admin" (Student Group) {-} + +The next steps ensure any additional co-instructors and teaching assistants are able to administer the student Group in case you are unavailable. Follow the steps below to add each co-instructor in the student Group: + +1. Go to https://anvil.terra.bio/#groups/ and click on the student Group name. This page should be visible at `https://anvil.terra.bio/#groups/`. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group, and the specific Group that was just created. The student Group name is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g10118383b73_193_8") + ``` + +1. Click on “+Add User”. You will be prompted to add the instructor’s AnVIL ID. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page for the specific Group that was just created. The "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_104") + ``` + +1. Type in the instructor’s AnVIL ID + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The instructor`s AnVIL ID, instructor-1@gmail.com, has been entered and the AnVIL ID (email) is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_58") + ``` + +1. Make sure “Can manage users (admin)” is **selected** + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The instructor`s AnVIL ID, instructor-1@gmail.com, has been entered and the checkbox "Can manage users (admin)" has been selected and is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_65") + ``` + +1. Click ADD USER. This will take you back to the Group administration page. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The instructor`s AnVIL ID, instructor-1@gmail.com, has been entered and the "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_71") + ``` + +Make sure the newly added instructor displays “Admin” under “Roles” beside their AnVIL ID. Repeat this process for any additional co-instructors and teaching assistants. + +```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the student Group that was just created, where the newly added instructor is visible in the user list. The instructor`s AnVIL ID, instructor-1@gmail.com is visible next to the role "Admin", which is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_87") +``` + +#### Add Students as "Member" {-} + +Follow the steps below to add individual students to the student Group: + +1. Go to https://anvil.terra.bio/#groups/ and click on the student Group name. This page should be visible at `https://anvil.terra.bio/#groups/`. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group, and the specific Group that was just created. The student Group name is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g10118383b73_193_8") + ``` + +1. Click on “+Add User”. You will be prompted to add an AnVIL ID. + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page for the specific Group that was just created. The "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_104") + ``` + +1. Type in the student’s AnVIL ID + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The student`s AnVIL ID, student-1@gmail.com, has been entered and the AnVIL ID (email) is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_111") + ``` + +1. Click ADD USER + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the specific Group that was just created, with "Add user to Terra Group" pop out box. The student`s AnVIL ID, student-1@gmail.com, has been entered and the "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_117") + ``` + +Make sure the newly added student displays “Member” under “Roles” beside their AnVIL ID. At present, each student’s AnVIL ID must be added separately. + +```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group for the student Group that was just created, where the newly added student is visible in the user list. The student`s AnVIL ID, student-1@gmail.com is visible next to the role "Member", which is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_125") +``` + +Your instructor and student Groups are now set up. + +### Group Email Lists {-} + +Note that your newly created Groups have Group emails associated with them. Take note of these Group emails. You will use them for granting access to your class Billing Projects and Workspaces in the next steps. + +```{r, echo=FALSE, fig.alt='Screenshot of the Terra Group page. Emails associated with newly formed Groups have been highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_96") +``` + +## Set Up Billing Projects + +Billing Projects in Terra help organize your compute costs. Like Groups, we suggest creating two different billing projects under the appropriate Billing Account that you created on `cloud.google.com`: one for students and one for co-instructors. + +Billing Project names must be globally unique and cannot exceed 30 characters. + +### Instructor Billing Project {#instructor-billing-project} {-} + +First, create the Billing Project for instructors. We suggest the name of the Billing Project should be a combination of institution-class-role (e.g., "jhu-bmr2021-instructors-bill-1"). To create a Billing Project for instructors: + +1. Go to https://anvil.terra.bio/#billing + +1. Click “+CREATE” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page. The "+CREATE" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_88") + ``` + +1. Type in your instructor Billing Project name + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The new billing project name, jhu-bmr2021-instructors-bill-1, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_98") + ``` + +1. Select the appropriate Billing Account + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The appropriate billing account name, My Billing Account, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_2") + ``` + +1. Click “CREATE BILLING PROJECT” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The "CREATE BILLING PROJECT" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_9") + ``` + +You now have a unique **instructor Billing Project**. + +#### Add Instructors as “Owner” (Instructor Project) {-} + +Next, you want to give instructors permission to use the Billing Project to compute. To set instructor permissions: + +1. Go to https://anvil.terra.bio/#billing + +1. Select the “Owned by You” Billing Project sub-list + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_0") + ``` + +1. Select the Billing Project you made for instructors in [Instructor Billing Project](#instructor-billing-project) + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list has been expanded. The instructor Billing project, in this case jhu-bmr2021-instructors, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_10") + ``` + +1. Select the “Users” tab + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The instructor Billing project, in this case jhu-bmr2021-instructors, has been selected and the Users Tab is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_24") + ``` + +1. Click “+ Add User”. You will be prompted to add a “User email *”. + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The instructor Billing project, in this case jhu-bmr2021-instructors, has been selected and the "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_39") + ``` + +1. Begin typing the instructor Group name set up in [Instructor Group](#instructor-group). You should see an email in the form @firecloud.org (e.g., jhu-bmr2021-instructors@firecloud.org). + +1. Ensure “Can manage users (Owner)” is **selected** + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The instructor Group email, in this case jhu-bmr2021-instructors@firecloud.org, has been filled in and the Owner role checkbox has been ticked.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_54") + ``` + +1. Click “ADD USER” + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The instructor Group email, in this case jhu-bmr2021-instructors@firecloud.org, has been filled in and the Owner role checkbox has been ticked. The "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_70") + ``` + +Your **instructor Billing Project** is now set up. + +### Student Billing Project {#student-billing-project} {-} + +Next, create a student Billing Project. Again, we suggest a combination of institution-class-role (e.g., “jhu-bmr2021-students-bill-1”). To create a Billing Project for students: + +1. Go to https://anvil.terra.bio/#billing + +1. Click “+CREATE” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page. The "+CREATE" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_88") + ``` + +1. Type in your student Billing Project name + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The new billing project name, jhu-bmr2021-students-bill-1, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_15") + ``` + +1. Select the appropriate Billing Account (same as above) + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The appropriate billing account name, My Billing Account, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_21") + ``` + +1. Click “CREATE BILLING PROJECT” + + ```{r, echo=FALSE, fig.alt='Screenshot of the Terra Billing page with Create Billing Project pop out box. The "CREATE BILLING PROJECT" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g100474897dd_0_27") + ``` + +You now have a unique **student Billing Project**. + +#### Add Instructors as “Owner” (Student Project) {-} + +You want to ensure any additional co-instructors and teaching assistants are able to administer the student Billing Project in case you are unavailable. To set instructor permissions: + +1. Go to https://anvil.terra.bio/#billing + +1. Select the “Owned by You” Billing Project sub-list + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_0") + ``` + +1. Select the Billing Project you made for students in [Student Billing Project](#student-billing-project) + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list has been expanded. The student Billing project, in this case jhu-bmr2021-students, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_90") + ``` + +1. Select the “Users” tab + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The student Billing project, in this case jhu-bmr2021-students, has been selected and the Users Tab is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_301") + ``` + +1. Click “+ Add User”. You will be prompted to add a “User email *”. + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The student Billing project, in this case jhu-bmr2021-students, has been selected and the "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_315") + ``` + +1. Begin typing the instructor Group name set up in [### Set Up Groups]. You should see an email in the form @firecloud.org (e.g., jhu-bmr2021-instructors@firecloud.org). + +1. Ensure “Can manage users (Owner)” is **selected** + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The instructor Group email, in this case jhu-bmr2021-instructors@firecloud.org, has been filled in and the Owner role checkbox has been ticked.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_54") + ``` + +1. Click “ADD USER” + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The instructor Group email, in this case jhu-bmr2021-instructors@firecloud.org, has been filled in and the Owner role checkbox has been ticked. The "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_70") + ``` + +::: {.notice} +This step makes it so that co-instructors can edit permissions and administer the student Billing Project as needed. While this means you and co-instructors can compute using the student Billing Project, this makes spending difficult to track. Instructors should always use the **instructor Billing Project** to compute. This makes it much easier to track costs associated with instructors versus students. +::: + +#### Add Students as “User” {-} + +Next, you will add your student Group to the student Billing Project so that they can compute. To set student permissions: + +1. Go to https://anvil.terra.bio/#billing + +1. Select the “Owned by You” Billing Project sub-list + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_0") + ``` + +1. Select the Billing Project you made for students in [Student Billing Project](#student-billing-project) + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The "Owned by You" billing list has been expanded. The student Billing project, in this case jhu-bmr2021-students, is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_90") + ``` + +1. Select the “Users” tab + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The student Billing project, in this case jhu-bmr2021-students, has been selected and the Users Tab is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_301") + ``` + +1. Click “+ Add User”. You will be prompted to add a “User email *”. + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page. The student Billing project, in this case jhu-bmr2021-students, has been selected and the "+Add User" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_315") + ``` + +1. Begin typing the student Group name set up in [Student Group](#student-group). You should see an email in the form @firecloud.org (e.g., jhu-bmr2021-students@firecloud.org). + +1. Keep “Can manage users (Owner)” **deselected**. + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The student Group email, in this case jhu-bmr2021-students@firecloud.org, has been filled in and the Owner role checkbox has NOT been ticked.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_132") + ``` + +1. Click “ADD USER” + + ```{r, echo=FALSE, fig.alt='Screenshot of the AnVIL Billing page with the "Add User" pop out box. The student Group email, in this case jhu-bmr2021-students@firecloud.org, has been filled in and the Owner role checkbox has NOT been ticked. The "ADD USER" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_327") + ``` + +Your **student Billing Project** is now set up. + +## Set Permissions on the Workspace + +Finally, you will want to set up permissions for co-instructors and students to see the class Workspace you created with the development Billing Project in [Developing Content](developing-content.html). AnVIL users can take on the "Owner", "Writer", or "Reader" role for a Workspace. + +### Add Instructors as “Owner” {-} + +You should add your co-instructors and teaching assistants as “Owners” to the class Workspace. This is useful if they need to edit the course content or share the space with students on your behalf. To share and change permissions: + +1. Go to https://anvil.terra.bio/#workspaces and find your class Workspace you set up in [Developing Content](developing-content.html) + +1. Click the teardrop button for your class Workspace + +1. Click “Share”. This will open a dialog box. + + ```{r, echo=FALSE, fig.alt='Screenshot of the class Workspace listed in the Workspaces tab. The teardrop button and the option to "Share" the Workspace are highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_344") + ``` + +1. Enter the name of the instructor Group (e.g., jhu-bmr2021-instructors). This will create a dropdown for the Group permissions in the box. Select this Group. + + ```{r, echo=FALSE, fig.alt='Screenshot of the share Workspace pop out box. The text "jhu-bmr" has been entered in the User email box and the dropdown below has been automatically filtered to reveal the instructor, student, and dev Groups. The instructor Group, in this case jhu-bmr2021-instructors@firecloud.org, has been highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.gdb96a00840_0_138") + ``` + +1. Change permissions to “Owner” using the dropdown menu under the instructor Group + + ```{r, echo=FALSE, fig.alt='Screenshot of the share Workspace pop out box. The instructor Group, in this case jhu-bmr2021-instructors@firecloud.org, has been added as a collaborator. The permissions are highlighted and show that role has been set to "Owner".'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_356") + ``` + +1. Click “SAVE” + + ```{r, echo=FALSE, fig.alt='Screenshot of the share Workspace pop out box. The instructor Group email has been added with permissions correctly set. The "SAVE" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_365") + ``` + +::: {.notice} +This step makes it so that co-instructors can edit the original content of the Workspace as needed. While this means you and co-instructors can compute using the development Billing Project, this makes spending difficult to track. Instructors should instead clone the Workspace using the **instructor Billing Project**. This makes it much easier to track costs associated with this iteration of your class versus further iterations (e.g., the following semester or year). +::: + +### Add Students as “Reader” {-} + +Next, add your students as “Readers” to the class Workspace. This means they will be able to view and clone the Workspace, but not make edits or perform computations. To share the Workspace: + +1. Click the teardrop button for your class Workspace + +1. Click “Share”. This will open a dialog box. + + ```{r, echo=FALSE, fig.alt='Screenshot of the class Workspace listed in the Workspaces tab. The teardrop button and the option to "Share" the Workspace are highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_344") + ``` + +1. Enter the name of the student Group. This will create a dropdown for the Group permissions in the box. Select this Group. + + ```{r, echo=FALSE, fig.alt='Screenshot of the share Workspace pop out box. The text "jhu-bmr" has been entered in the User email box and the dropdown below has been automatically filtered to reveal the student and dev Groups. The student Group, in this case jhu-bmr2021-students@firecloud.org, has been highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_378") + ``` + +1. Ensure permissions are set to “Reader” (default) + + ```{r, echo=FALSE, fig.alt='Screenshot of the share Workspace pop out box. The student Group, in this case jhu-bmr2021-students@firecloud.org, has been added as a collaborator. The permissions are highlighted and show that role is "Reader".'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_386") + ``` + +1. Click “SAVE” + + ```{r, echo=FALSE, fig.alt='Screenshot of the share Workspace pop out box. The student Group email has been added with permissions correctly set. The "SAVE" button is highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/1HHWg47Tg6miv_K7GNB6ZDTx-4Jc5IMl7APfFtD1Rqag/edit#slide=id.g1007b9b3ffb_0_394") + ``` + +You have now correctly set up your class permissions! + +## Notify Terra + +Contacting Terra ahead of your class time helps the Terra team avoid any major disruptions to your class. Contact Terra by [submitting a request](https://support.terra.bio/hc/en-us/requests/new) for a hold on scheduled maintenance and downtime. It’s also a good idea to ask about major changes planned for the time prior to your class. + + +# Getting Credit for Professional Development + +We are happy to provide a letter to your supervisor, department head, or dean to indicate you've worked through this content and intend to use it in your class. diff --git a/07-using_platforms_modules.Rmd b/07-using_platforms_modules.Rmd deleted file mode 100644 index 2c40863..0000000 --- a/07-using_platforms_modules.Rmd +++ /dev/null @@ -1,166 +0,0 @@ -```{r echo = FALSE} -knitr::opts_chunk$set(out.width = "100%") -``` - -# Using programming platforms on AnVIL - -Modules about opening, touring, and closing AnVIL platforms - -
- -## Video overview on using Jupyter Notebooks - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_jupyter_video.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Launching Jupyter - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_jupyter_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Video overview on using Galaxy - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_video.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Starting Galaxy - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_start.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Navigating Galaxy - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_navigate.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Deleting Galaxy - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_delete.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Video overview on using RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_video.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Launching RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Touring RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_tour.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Pausing RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_pause.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Deleting RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_delete.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Pausing vs. Deleting cloud environments - -These instructions can be customized to a specific cloud environment by setting `AnVIL_module_settings$cloud_environment` before running `cow::borrow_chapter()`. If these variables have not been set, it defaults to "your cloud environment". - -### Generic cloud environment - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_cloud_environment_pause_vs_delete.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -### RStudio - -``` -AnVIL_module_settings <- list(cloud_environment = "RStudio") -cow::borrow_chapter( - doc_path = "child/_child_cloud_environment_pause_vs_delete.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -AnVIL_module_settings <- list(cloud_environment = "RStudio") - -cow::borrow_chapter( - doc_path = "child/_child_cloud_environment_pause_vs_delete.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/08-student_guide.Rmd b/08-student_guide.Rmd new file mode 100644 index 0000000..9e0f414 --- /dev/null +++ b/08-student_guide.Rmd @@ -0,0 +1,169 @@ +# (PART\*) Student Guide to AnVIL {-} + + +```{r, include = FALSE} +ottrpal::set_knitr_image_path() +``` + +# Using RStudio on AnVIL + +In the next few steps, you will walk through how to get set up to use RStudio on the AnVIL platform. AnVIL is centered around different “Workspaces”. Each Workspace functions almost like a mini code laboratory - it is a place where data can be examined, stored, and analyzed. The first thing we want to do is to copy or “clone” a Workspace to create a space for you to experiment. + +Use a web browser to go to the AnVIL website. In the browser type: + +``` +anvil.terra.bio +``` + +:::{.notice} +**Tip** +At this point, it might make things easier to open up a new window in your browser and split your screen. That way, you can follow along with this guide on one side and execute the steps on the other. +::: + +Your instructor will give you information on which workspace you should clone. + +## Video overview of RStudio on AnVIL + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_rstudio_video.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +## Launching RStudio + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_rstudio_launch.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +## Touring RStudio + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_rstudio_tour.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +## Pausing RStudio + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_rstudio_pause.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + + +# Using Galaxy on AnVIL + +In the next few steps, you will walk through how to get set up to use Galaxy on the AnVIL platform. AnVIL is centered around different “Workspaces”. Each Workspace functions almost like a mini code laboratory - it is a place where data can be examined, stored, and analyzed. The first thing we want to do is to copy or “clone” a Workspace to create a space for you to experiment. + +Use a web browser to go to the AnVIL website. In the browser type: + +``` +anvil.terra.bio +``` + +:::{.notice} +**Tip** +At this point, it might make things easier to open up a new window in your browser and split your screen. That way, you can follow along with this guide on one side and execute the steps on the other. +::: + +Your instructor will give you information on which workspace you should clone. After logging in, click “View Workspaces”. Select the “Public” tab. In the top search bar type the activity workspace. + +Clone the workspace by clicking the teardrop button (![teardrop button](resources/images/teardrop.png){#id .class width=25 height=20px}). And selecting “Clone”. + +```{r, echo=FALSE, fig.alt='Screenshot showing the teardrop button. The button has been clicked revealing the "clone" option. The Clone option and the teardrop button are highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.ged15532ded_0_625") +``` + +In the first box, give your Workspace clone a name by adding an underscore (“_”) and your name. For example, “SARS-CoV-2-Genome_Ava_Hoffman”. Next, select the Billing project provided by your instructor. Leave the bottom two boxes as-is and click “CLONE WORKSPACE”. + +```{r, echo=FALSE, fig.alt='Screenshot showing the "clone a workspace" popout. The Workspace name, Billing Project, and Clone Workspace button have been filled in and highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.ged15532ded_0_648") +``` + +## Video overview on using Galaxy + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_galaxy_video.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + + +## Starting Galaxy {#starting-galaxy} + +Galaxy is a free, relatively easy to use bioinformatics implementation package. It changes command line programs into GUI based programs and is a great tool for performing bioinformatics analysis without having to update software or worry too much about coding. In order to use Galaxy, we need to create a cloud environment. This is like quickly renting a few computers from Google as the engine to power our Galaxy analysis. + +:::{.warning} +Currently, you will need to use Chrome or Safari as your browser for Galaxy cloud environments to work. +::: + +In your new Workspace, click on the “ANALYSES” tab. Next, click on “START”. You should see a popup window on the right side of the screen. Click on the Galaxy logo to proceed. + +```{r, echo=FALSE, fig.alt='Screenshot of the Workspace Notebooks tab. The notebook tab name and the plus button that starts a cloud environment for Galaxy have been highlighted,'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.ged15532ded_0_788") +``` + +Click on “NEXT” and “CREATE” to keep all settings as-is. + +```{r, echo=FALSE, fig.alt='The CREATE button among cloud environments has been highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.ged15532ded_0_798") +``` + +Click on the Galaxy icon. + +```{r, echo=FALSE, fig.alt='The Galaxy icon appears if the environment has been successfully launched.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.g2283b458fae_100_31") +``` + +You will see that the environment is still being set up. + +```{r, echo=FALSE, fig.alt='The status of the cloud computing environment shows that it is still being set up.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.g2283b458fae_100_38") +``` + +This will take 8-10 minutes. When it is done, click “Open”. You might need to refresh the page. + +```{r, echo=FALSE, fig.alt='The Provisioning status text has changed to "Launch Galaxy" indicating the cloud environment is ready to use.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.g2283b458fae_100_46") +``` + +:::{.notice} +Remember that you can refresh your browser or navigate away at any time. This is because the connection to the environment is in the cloud, not on your personal computer. +::: + +You can also follow along with the first ~2 minutes of [this video](https://jhudatascience.org/AnVIL_Book_Getting_Started/starting-galaxy.html) to start Galaxy on AnVIL. + +## Navigating Galaxy + +Notice the three main sections. + +**Tools** - These are all of the bioinformatics tool packages available for you to use. + +**The Main Dashboard** - This contains flash messages and posts when you first open Galaxy, but when we are using data this is the main interface area. + +**History** - When you start a project you will be able to see all of the documents in the project in the history. Now be aware, this can become very busy. Also the naming that Galaxy uses is not very intuitive, so you must make sure that you label your files with something that makes sense to you. + +```{r, echo=FALSE, fig.alt='Screenshot of the Galaxy landing page. The Tools and History headings have been highlighted.'} +ottrpal::include_slide("https://docs.google.com/presentation/d/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I/edit#slide=id.ged15532ded_0_816") +``` + +On the welcome page, there are links to tutorials. You may try these out on your own. If you want to try a new analysis this is a good place to start. + +## Deleting Galaxy + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_galaxy_delete.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + diff --git a/08-student_modules.Rmd b/08-student_modules.Rmd deleted file mode 100644 index efb5178..0000000 --- a/08-student_modules.Rmd +++ /dev/null @@ -1,141 +0,0 @@ -```{r echo = FALSE} -knitr::opts_chunk$set(out.width = "100%") -``` - -# Student instructions - -Modules aimed at students in a course or workshop. - -
- -## Student Account Setup - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_student_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Student instructions for cloning a Workspace - -These instructions can be customized to a specific workspace by setting certain variables before running `cow::borrow_chapter()`. If these variables have not been set, reasonable defaults are provided (e.g. "ask your instructor"). - -### With no variables set: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_student_workspace_clone.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -### With variables set: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - workspace_name = "Example_Workspace", - workspace_link = "http://example.com/", - billing_project = "Example Billing Project" -) - -cow::borrow_chapter( - doc_path = "child/_child_student_workspace_clone.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Student instructions for launching Jupyter - -The module below is specially customized for students, allowing you to give more specific instructions on the settings for their Jupyter environment. There are several other general purpose modules that may also be useful for students (e.g. Pausing Jupyter, Deleting Jupyter) that can be found in other chapters of this book. - -The following instructions can be customized by setting certain variables before running `cow::borrow_chapter()`. Developers should create these variables as a list `AnVIL_module_settings`. The following variables can be provided: - -- `audience` = Defaults to `general`, telling them to use the default Jupyter settings. If `audience` is set to `student`, it gives more specific instructions. -- `docker_image` = Optional, it will tell them how to set the image. -- `startup_script` = Optional, it will tell them how to set the script. - -### Using default Jupyter environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student" -) - -cow::borrow_chapter( - doc_path = "child/_child_jupyter_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -### Using custom Jupyter environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student", - docker_image = "example docker", - startup_script = "example startup script" -) - -cow::borrow_chapter( - doc_path = "child/_child_jupyter_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Student instructions for launching RStudio - -The module below is specially customized for students, allowing you to give more specific instructions on the settings for their RStudio environment. There are several other general purpose modules that may also be useful for students (e.g. Pausing RStudio, Deleting RStudio) that can be found in other chapters of this book. - -The following instructions can be customized by setting certain variables before running `cow::borrow_chapter()`. Developers should create these variables as a list `AnVIL_module_settings`. The following variables can be provided: - -- `audience` = Defaults to `general`, telling them to use the default RStudio settings. If `audience` is set to `student`, it gives more specific instructions. -- `docker_image` = Optional, it will tell them to open the customization dialogue and direct them on how to set the image. -- `startup_script` = Optional, it will tell them to open the customization dialogue and direct them on how to set the script. - -### Using default RStudio environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student" -) - -cow::borrow_chapter( - doc_path = "child/_child_rstudio_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -### Using custom RStudio environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student", - docker_image = "example docker", - startup_script = "example startup script" -) - -cow::borrow_chapter( - doc_path = "child/_child_rstudio_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/09-antismash_module.Rmd b/09-antismash_module.Rmd new file mode 100644 index 0000000..44b26e2 --- /dev/null +++ b/09-antismash_module.Rmd @@ -0,0 +1,35 @@ +```{r, include = FALSE} +ottrpal::set_knitr_image_path() +``` + +# Exploring Biosynthetic Gene Clusters + +In this module, you will examine the chicken gut microbiome samples for evidence of selection on biosynthetic gene clusters. + +## Background + +*Secondary metabolites* are organic compounds produced by a living organism that are _not_ directly used for normal growth, development, or reproduction. Secondary metabolites are sometimes called specialized metabolites, and these compounds play roles in how the organisms interacts with the environment. They may aid in protecting against stressors that are either biotic (e.g., the presence of other microbes competing for the same resources, which may produce toxic compounds against competitors) or abiotic (e.g., heavy metals in the soil, high external salt concentrations, or particularly acidic or alkaline soil). + +These metabolites are produced by a group of genes known as *biosynthetic gene clusters* (BGCs). Genes within a BGC are physically close to each other and also encode a biosynthetic pathway that produces a secondary metabolite [Medema et al. 2015](https://www.nature.com/articles/nchembio.1890) + +BGCs produce compounds with a huge range of applications, including pharmaceuticals, natural toxins (and toxin degradation), and molecules for chemical communication or chemical warfare between organisms. BGCs are also important for getting nutrients, vitamin biosynthesis, and *antimicrobial resistance*. We will focus on this last part during the exercise. + +## Before You Start + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_create_account.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +## Objectives + +This activity will teach you how to: +1. Import annotated data into a Galaxy environment +1. Detect BGCs and predict NRPS and PKS metabolite structures for annotated bacterial or fungal genomes + + + + + diff --git a/09-student_guide.Rmd b/09-student_guide.Rmd deleted file mode 100644 index d6fff4a..0000000 --- a/09-student_guide.Rmd +++ /dev/null @@ -1,10 +0,0 @@ - -# Student Guide - -## Activity One - -You might want to create a student guide that contains a different subset of Rmd files from your book, or renders to a different output format (e.g. word document). You can specify the output and Rmd files that will be used for the student guide using the `_output.yml` and `_bookdown.yml` files in the student-guide directory. - -## Activity Two - -Steps of the guide could go here. \ No newline at end of file diff --git a/10-user_management_modules.Rmd b/10-user_management_modules.Rmd deleted file mode 100644 index e618f21..0000000 --- a/10-user_management_modules.Rmd +++ /dev/null @@ -1,38 +0,0 @@ -# User Management - -Modules about Groups and user management - -
- -## Create Terra Group - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_group_create.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Add Member to Terra Group - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_group_add_member.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Find Group Email - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_group_find_email.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/11-why-anvil.Rmd b/11-why-anvil.Rmd deleted file mode 100644 index c8d7e59..0000000 --- a/11-why-anvil.Rmd +++ /dev/null @@ -1,16 +0,0 @@ -# Why AnVIL - -Modules describing why AnVIL is useful for different personas. - -
- -## Why AnVIL for Instructors? - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_why_AnVIL_instructor.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/GDSCN_BioDIGS_AMR.Rproj b/GDSCN_BioDIGS_AMR.Rproj new file mode 100644 index 0000000..21a4da0 --- /dev/null +++ b/GDSCN_BioDIGS_AMR.Rproj @@ -0,0 +1,17 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source diff --git a/_bookdown.yml b/_bookdown.yml index bae5ce5..1f9e90b 100644 --- a/_bookdown.yml +++ b/_bookdown.yml @@ -1,18 +1,15 @@ -book_filename: "Course_Name" +book_filename: "BioDIGS in the Classroom: Antimicrobial Resistance" chapter_name: "Chapter " -repo: https://github.com/jhudsl/AnVIL_Template/ +repo: https://github.com/fhdsl/GDSCN_BioDIGS_AMR/ rmd_files: ["index.Rmd", - "01-intro.Rmd", - "02-chapter_of_course.Rmd", - "03-AnVIL_modules.Rmd", - "04-workspace_modules.Rmd", - "05-billing_modules.Rmd", - "06-onboarding_modules.Rmd", - "07-using_platforms_modules.Rmd", - "08-student_modules.Rmd", - "10-user_management_modules.Rmd", - "11-why-anvil.Rmd", - "12-instructor_modules.Rmd", + "01-BioDIGS_project_overview.Rmd", + "02-research_team.Rmd", + "03-data_tour.Rmd", + "04-billing_modules.Rmd", + "05-anvil_onboarding.Rmd", + "06-using_galaxy.Rmd", + "08-student_guide.Rmd", + "07-instructor_guide.Rmd", "About.Rmd", "References.Rmd"] new_session: yes diff --git a/_output.yml b/_output.yml index f1d6e6a..ff151c4 100644 --- a/_output.yml +++ b/_output.yml @@ -1,21 +1,20 @@ bookdown::gitbook: # When using multiple css files, the default file path will be the first one # - css: [assets/style.css, assets/AnVIL_style/anvil.css] + css: [assets/style.css, assets/GDSCN_style/gdscn.css] includes: - in_header: GA_Script.html - before_body: assets/AnVIL_style/big-image_anvil.html - after_body: assets/AnVIL_style/footer.html + before_body: assets/GDSCN_style/big-image_gdscn.html + after_body: assets/GDSCN_style/footer.html highlight: tango config: toc: collapse: section before: | - + after: |

This content was published with bookdown by:

The Fred Hutch Data Science Lab

Style adapted from: rstudio4edu-book (CC-BY 2.0)

-

+

-# Note: Do not edit the feedback link in this file. This is automatically edited through the render-preview and render-bookdown workflows. You can deactivate this behavior in config_automation.yml. \ No newline at end of file +# Note: Do not edit the feedback link in this file. This is automatically edited through the render-preview and render-bookdown workflows. \ No newline at end of file diff --git a/book.bib b/book.bib index ec95aa4..aed6138 100644 --- a/book.bib +++ b/book.bib @@ -1,3 +1,75 @@ +@article{BrevikBurgess2014, + author = {Eric C Brevik and Lynn C Burgess}, + title = {The Influence of Soils on Human Health}, + journal = {Nature Education Knowledge}, + year = {2014}, + url = {https://www.nature.com/scitable/knowledge/library/the-influence-of-soils-on-human-health-127878980/} +} + +@article{Buffalari2020, + author = {Deanne Buffalari and Joyce J Fernandes and Leah Chase and Barbara Lom and Matthew S McMurray and Mary E Morrison and Amy Jo Stavnezer}, + title = {Integrating Research into the Undergraduate Curriculum: 1. Early Research Experiences and Training}, + journal = {Journal of Undergraduate Neuroscience Education}, + year = {2020}, + url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8040836/} +} + +@article{Canner2017, + author = {Judith E Canner and Archana J McEligot and María-Eglée Pérez and Lei Qian and Xinzhi Zhang}, + title = {Enhancing Diversity in Biomedical Data Science}, + journal = {Ethnicity & Disease}, + year = {2017}, + url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5398168/} +} + +@article{GDSCN2022, + author = {GDSCN}, + title = {Diversifying the genomic data science research community}, + journal = {Genome Research}, + year = {2022}, + url = {https://doi.org/10.1101/gr.276496.121} +} + +@article{Gorovtsov2018, + author = {Andrey Vladimirovich Gorovtsov and Ivan Sergeevich Sazykin and Marina Alexandrovna Sazykina}, + title = {The influence of heavy metals, polyaromatic hydrocarbons, and polychlorinated biphenyls pollution on the development of antibiotic resistance in soils}, + journal = {Environmental Science and Pollution Research}, + year = {2018}, + url = {https://doi.org/10.1007/s11356-018-1465-9} +} + +@article{Jones2022, + author = {Daleniece Higgins Jones and Xinhua Yu and Qian Guo and Xiaoli Duan and Chunrong Jia}, + title = {Racial Disparities in the Heavy Metal Contamination of Urban Soil in the Southeastern United States}, + journal = {International Journal of Environmental Research and Public Health}, + year = {2022}, + url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8834334/} +} + +@article{Jurkowski2017, + author = {Anne Jurkowski and Ann H Reid and Jay B Labov}, + title = {Metagenomics: A Call for Bringing a New Science into the Classroom (While It's Still New)}, + journal = {CBE - Life Sciences Education}, + year = {2017}, + url = {https://doi.org/10.1187/cbe.07-09-0075} +} + +@article{Khan2023, + author = {Muhammad Amjad Khan and Javed Nawab and Anwarzeb Khan and Mark L Brusseau and Shah Nawaz Khan and Neelum Ali and Saraj Bahadur and Sardar Khan and Qing Huang}, + title = {Human Health and Ecological Risks Associated with Total and Bioaccessible Concentrations of Cadmium and Lead in Urban Park Soils}, + journal = {Bulletin of Environmental Contamination and Toxicology}, + year = {2023}, + url = {https://pubmed.ncbi.nlm.nih.gov/36907936/} +} + +@article{Nguyen2019, + author = {Christine C Nguyen and Cody N Hugie and Molly L Kile and Tala Navab-Daneshmand}, + title = {Association between heavy metals and antibiotic-resistant human pathogens in environmental reservoirs: A review}, + journal = {Frontiers of Environmental Science & Engineering}, + year = {2019}, + url = {https://doi.org/10.1007/s11783-019-1129-0} +} + @Manual{rmarkdown2021, title = {rmarkdown: Dynamic Documents for R}, author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone}, @@ -6,6 +78,30 @@ @Manual{rmarkdown2021 url = {https://github.com/rstudio/rmarkdown}, } +@article{Russell2007, + author = {Susan H Russell and Mary P Hancock and James McCullough}, + title = {Benefits of Undergraduate Research Experiences}, + journal = {Science}, + year = {2007}, + url = {https://doi.org/10.1126/science.1140384} +} + +@article{Sun2021, + author = {Fulin Sun and Zhantang Xu and Leilei Fan}, + title = {Response of heavy metal and antibiotic resistance genes and related microorganisms to different heavy metals in activated sludge}, + journal = {Journal of Environmental Management}, + year = {2021}, + url = {https://doi.org/10.1016/j.jenvman.2021.113754} +} + +@article{Wang2022, + author = {Xiaoyu Wang and Gavin F Birch and Enfeng Liu}, + title = {Traffic emission dominates the spatial variations of metal contamination and ecological-health risks in urban park soil}, + journal = {Chemosphere}, + year = {2022}, + url = {https://pubmed.ncbi.nlm.nih.gov/35240153/} +} + @Book{Xie2018, title = {R Markdown: The Definitive Guide}, author = {Yihui Xie and J.J. Allaire and Garrett Grolemund}, @@ -25,3 +121,11 @@ @Book{Xie2020 note = {ISBN 9780367563837}, url = {https://bookdown.org/yihui/rmarkdown-cookbook}, } + +@article{Yan2020, + author = {Changchun Yan and Fei Wang and Huanhuan Geng and Haijun Liu and Shengyan Pu and Zhijun Tian and Huilun Chen and Beihai Zhou and Rongfang Yuan and Jun Yao}, + title = {Integrating high-throughput sequencing and metagenome analysis to reveal the characteristic and resistance mechanism of microbial community in metal contaminated sediments}, + journal = {Science of the Total Environment}, + year = {2020}, + url = {https://doi.org/10.1016/j.scitotenv.2019.136116} +} diff --git a/index.Rmd b/index.Rmd index 0ae4626..4c1b838 100644 --- a/index.Rmd +++ b/index.Rmd @@ -1,40 +1,46 @@ --- -title: "AnVIL Book Name" +title: "BioDIGS in the Classroom: Antimicrobial Resistance" date: "`r format(Sys.time(), '%B %d, %Y')`" site: bookdown::bookdown_site documentclass: book bibliography: book.bib biblio-style: apalike link-citations: yes -description: Description about Course/Book. -favicon: assets/AnVIL_style/anvil_favicon.ico +description: "This is a companion training guide for BioDIGS, a GDSCN project." +favicon: assets/GDSCN_style/gdscn_favicon.ico --- # About this Book {-} -This book is part of a series of books for the Genomic Data Science Analysis, Visualization, and Informatics Lab-space (AnVIL) of the National Human Genome Research Institute (NHGRI). Learn more about AnVIL by visiting https://anvilproject.org or reading the [article in Cell Genomics](https://www.sciencedirect.com/science/article/pii/S2666979X21001063). +This is a companion training guide for BioDIGS, a GDSCN project that brings a research experience into the classroom. In this module, students will investigate whether metagenomic samples from the BioDIGS project contain either antimicrobial resistance genes or biosynthesis genes. They will run analyses using ABRicate as implemented on Galaxy. Visit the BioDIGS (BioDiversity and Informatics for Genomics Scholars) website [here](https://biodigs.org/) for more information about this collaborative, distributed research project, including how you can get involved! -## Skills Level {-} +The GDSCN (Genomics Data Science Community Network) is a consortium of educators who aim to create a world where researchers, educators, and students from diverse backgrounds are able to fully participate in genomic data science research. You can find more information about its mission and initiatives [here](https://www.gdscn.org/home). + +```{r echo=FALSE, fig.alt="BioDIGS logo", out.width='300px', fig.align='center'} +knitr::include_graphics("https://raw.githubusercontent.com/fhdsl/GDSCN_BioDIGS_Book/main/assets/GDSCN_style/logo_BioDIGS_final.png") +``` + +## Skills Level + +The activities in this guide are written for undergraduate students and beginning graduate students. ::: {.notice} _Genetics_ - + _Programming skills_ ::: -## AnVIL Collection {-} +## Platform -Please check out our full collection of AnVIL and related resources: https://hutchdatascience.org/AnVIL_Collection/ +The activities in this guide are demonstrated on NHGRI's [AnVIL](https://anvilproject.org/) cloud computing platform. AnVIL is the preferred computing platform for the GDSCN. However, all of these activities can be done using your personal installation of R or using the online [Galaxy](usegalaxy.org) portal. -# Learning Objectives {-} +Please check out our full collection of AnVIL and related resources: https://hutchdatascience.org/AnVIL_Collection/ - +## Data - - - +The data generated by the BioDIGS project is available through the [BioDIGS website](biodigs.org), as well as through an [AnVIL workspace](https://anvilproject.org). - +Data about the soil itself as well as soil metal content was generated by the [Delaware Soil Testing Program](https://www.udel.edu/canr/cooperative-extension/environmental-stewardship/soil-testing/) at the University of Delaware. Sequences were generated by the [Johns Hopkins University Genetic Resources Core Facility](https://grcf.jhmi.edu/) and by [PacBio](https://www.pacb.com/).