diff --git a/.github/ISSUE_TEMPLATE/course-content-add.md b/.github/ISSUE_TEMPLATE/course-content-add.md new file mode 100644 index 0000000..1a5f795 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/course-content-add.md @@ -0,0 +1,17 @@ +--- +name: New content idea +about: Suggest an idea for the course +title: '' +labels: '' +assignees: + +--- + +## Describe the your scope of your content idea + + +## Describe the learning objectives for your content idea + + +## Additional context or resources + diff --git a/.github/ISSUE_TEMPLATE/course-problem-report.md b/.github/ISSUE_TEMPLATE/course-problem-report.md new file mode 100644 index 0000000..26f6f36 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/course-problem-report.md @@ -0,0 +1,28 @@ +--- +name: Course Problem Report +about: Create a report to help improve the course +title: [Problem] +labels: bug +assignees: + +--- + +## Describe what is not working with the course + + +## Steps to Reproduce + + +## Expected behavior + + +## Screenshots + + +## Additional context + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..35d4d79 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,40 @@ + + +### Purpose/implementation Section + +#### What changes are being implemented in this Pull Request? + + + +#### What was your approach? + + + +#### What GitHub issue does your pull request address? + + + +### Tell potential reviewers what kind of feedback you are soliciting. + + + +### New Content Checklist + +- [ ] New content/chapter is in an Rmd file with [this kind of format and headers](https://github.com/jhudsl/OTTR_Template/blob/main/02-chapter_of_course.Rmd). + +- [ ] New content/chapter contains [Learning Objectives and are in the correct format](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics#learning-objectives-formatting). + +- [ ] [Bookdown successfully re-renders and any new content files have been added to the _bookdown.yml](https://github.com/jhudsl/OTTR_Template/wiki/Publishing-with-Bookdown). + +- [ ] Spell check runs successfully in [Github actions style-n-check](https://github.com/jhudsl/OTTR_Template/wiki/How-to-set-up-and-customize-GitHub-actions-robots#spell-check)). + +- [ ] Any newly necessary packages that are needed have been added to the [Dockerfile and image](https://github.com/jhudsl/OTTR_Template/wiki/Using-Docker#adding-packages-to-the-dockerfile). + +- [ ] Images are in the [correct format for rendering](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics#adding-images-and-graphics-in-text). + +- [ ] Every new image has [alt text and is in a Google Slide](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics#accessibility). + +- [ ] Each slide is described in the notes of the slide so learners relying on a screen reader can access the content. See https://lastcallmedia.com/blog/accessible-comics for more guidance on this. + +- [ ] The color palette choices of the slide are contrasted in a way that is friendly to those with color vision deficiencies. +You can check this using [Color Oracle](https://colororacle.org/). diff --git a/.github/automatic-issues/add-feedback-method.md b/.github/automatic-issues/add-feedback-method.md new file mode 100644 index 0000000..035a15a --- /dev/null +++ b/.github/automatic-issues/add-feedback-method.md @@ -0,0 +1,10 @@ + +To help users report issues or areas of improvement for your course, you should provide a clear method of feedback for your users to route their concerns through. + +A feedback method (Google Form) has already been provided for AnVIL and GDSCN courses. Github actions automatically populates the Google Form with the `title` field from [`index.Rmd`](https://github.com/jhudsl/AnVIL_Template/blob/main/index.Rmd) using the [AnVIL Feedback Script](https://github.com/jhudsl/AnVIL_Template/blob/main/scripts/AnVIL_Feedback_Script.sh). + +- [ ] The `title` field has been filled out in the header yaml of `index.Rmd`. + +*No further action is needed on your part*. However, if you would like to change the feedback method, you can do so by editing [this line of code](https://github.com/jhudsl/AnVIL_Template/blob/7c501e9804cf88a151832bb0a9bbc1eae9d23fdf/_output.yml#L19) in `_output.yml`. + +[See these instructions](https://docs.google.com/document/d/1uhGafEkbtJL3ar3TVHqRFypwTbXjudHa7h2mXu53CkA/edit?usp=sharing) for how to manually create a feedback link for AnVIL / GDSCN content or events. \ No newline at end of file diff --git a/.github/automatic-issues/add-repo-to-anvil-collection.md b/.github/automatic-issues/add-repo-to-anvil-collection.md new file mode 100644 index 0000000..46ba13c --- /dev/null +++ b/.github/automatic-issues/add-repo-to-anvil-collection.md @@ -0,0 +1,14 @@ + +If you want this repository to be added to the AnVIL Collection, make sure you do the following: + +- Click the gear icon on the top right of the "Code" page next to "About" +- [ ] Create a repository description +- [ ] Add the homepage where your course will be rendered +- [ ] Add a description of your course/content +- [ ] Add the topic tag `anvil` or `gdscn`. You should also supply any other relevant tags. + +Following these steps will also automatically add this repository to the [AnVIL Collection](https://hutchdatascience.org/AnVIL_Collection/) if this repository is owned by one of the DaSL organizations. + +For more information on these settings see instructions in the [wiki pages](https://github.com/jhudsl/AnVIL_Template/wiki/The-AnVIL-Collection#adding-your-course-to-the-anvil-collection). + +For more information about adding repositories to the DaSL Collection, see the [AnVIL Collection README](https://github.com/fhdsl/AnVIL_Collection#readme). diff --git a/.github/automatic-issues/git-secrets.md b/.github/automatic-issues/git-secrets.md new file mode 100644 index 0000000..98414d2 --- /dev/null +++ b/.github/automatic-issues/git-secrets.md @@ -0,0 +1,14 @@ + +**Note these steps are only pertinent if you are setting up this course outside of the jhudsl organization** + +For more information on these settings see instructions in the [getting started GitHub wiki pages](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-GitHub-secrets). + +It's important that these are set up and named exactly what they are below in order for Github actions to work correctly. + +To set up these repository secrets, on your repository's main Github page, go to `Settings` and scroll down to see `Secrets` on the left side menu bar. + +- [ ] Set `GH_PAT` +`Name`: `GH_PAT` +`value`: A personal access token [following these instructions](https://github.com/jhudsl/OTTR_Template/wiki/Start-a-new-course#6-set-up-your-github-personal-access-token). +Underneath `Select scopes`, check both `repo` and `workflow`. +Then copy the PAT and save as the value. diff --git a/.github/automatic-issues/images-checklist.md b/.github/automatic-issues/images-checklist.md new file mode 100644 index 0000000..f5b0fd1 --- /dev/null +++ b/.github/automatic-issues/images-checklist.md @@ -0,0 +1,25 @@ + +Use this checklist to make sure your slides and images are set up correctly! + +See [Setting Up Images and Graphics](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics) for more info! + +- [ ] Create your [course's main Google Slides](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics) + +- [ ] The slides use the [appropriate template](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics). + +- [ ] Each slide is described in the notes of the slide so learners relying on a screen reader can access the content. See https://lastcallmedia.com/blog/accessible-comics for more guidance on this. + +- [ ] The color palette choices of the slide are contrasted in a way that is friendly to those with color vision deficiencies. +You can check this using [Color Oracle](https://colororacle.org/). + +- [ ] Every image is [inserted into the text](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics#adding-images-and-graphics-in-text) using one of these options: `ottrpal::include_slide()`, `knitr::include_image()`, or this format: `SOMETHING`. + +- [ ] Every image has [alternative text added to it](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-images-and-graphics#adding-images-and-graphics-in-text). + +- [ ] The beginning of each Rmd contains this chunk so the images are saved in the correct spot: + +````` +```{r, include = FALSE} +ottrpal::set_knitr_image_path() +``` +````` diff --git a/.github/automatic-issues/set-repo-settings.md b/.github/automatic-issues/set-repo-settings.md new file mode 100644 index 0000000..9f5050f --- /dev/null +++ b/.github/automatic-issues/set-repo-settings.md @@ -0,0 +1,25 @@ + +For more information on these settings see instructions in the [getting started GitHub wiki pages](https://github.com/jhudsl/OTTR_Template/wiki/Start-a-new-course). + +- [ ] This course repository is set to `public`. +- [ ] [Add the `jhudsl-robot` as a collaborator to your repository.](https://github.com/jhudsl/OTTR_Template/wiki/Setting-up-your-repository-settings#add-jhudsl-robot-as-a-collaborator). +- [ ] [GH_PAT has been set up as a GitHub secret](https://github.com/jhudsl/OTTR_Template/wiki/Start-a-new-course#6-set-up-your-github-personal-access-token) + +- [ ] GitHub pages is turned on + - [ ] Go to `Settings` > `Pages`. Underneath `Source`, choose `main` for the branch and select the `docs` folder. Then click `Save`. + - [ ] Check `Enforce HTTPS`. + +- [ ] [Github secret `GH_PAT` has been set](https://github.com/jhudsl/OTTR_Template/wiki/Start-a-new-course#6-set-up-your-github-personal-access-token) + `Name`: `GH_PAT` + `value`: A personal access token [following these instructions](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-token). + Underneath `Select scopes`, check both `repo` and `workflow`. + Then copy the PAT and save as the value. + +- [ ] [Set branch protections settings](https://github.com/jhudsl/OTTR_Template/wiki/Start-a-new-course#9-set-up-branch-rules) + - [ ] `main` branch has been set up: + - [ ] `Require pull request reviews before merging` box is checked. + - [ ] `Require status checks to pass before merging` box is checked. + - [ ] Underneath that `Require branches to be up to date before merging` box is checked. + - [ ] Click `Save` at the bottom of the page! + +- [ ] [Customize GitHub actions](https://github.com/jhudsl/OTTR_Template/wiki/How-to-set-up-and-customize-GitHub-actions-robots) for what you will need in this course. diff --git a/.github/automatic-issues/templates-to-edit.md b/.github/automatic-issues/templates-to-edit.md new file mode 100644 index 0000000..c40824d --- /dev/null +++ b/.github/automatic-issues/templates-to-edit.md @@ -0,0 +1,34 @@ + +[Follow the Wiki instructions here](https://github.com/jhudsl/OTTR_Template/wiki/Start-editing-your-course) for details on how to complete the items in this issue. + +The following files need to be edited to get this new course started! + +### Files that need edited upon creating a new course. + +- [ ] `README.md` - Fill in all the `{ }`. +- [ ] `index.Rmd` - `title:` should be updated. +- [ ] `01-intro.Rmd` - replace the information there with information pertinent to this new course. +- [ ] `02-chapter_of_course.Rmd` - This Rmd has examples of how to set things up, if you don't need it as a reference, it can be deleted. + +### Files that need to be edited upon adding each new chapter (including upon creating a new course): + +- [ ] `_bookdown.yml` - The list of Rmd files that need to be rendered needs to be updated. See [instructions](https://github.com/jhudsl/OTTR_Template/wiki/Publishing-with-Bookdown). +- [ ] `book.bib` - any citations need to be added. See [instructions](https://github.com/jhudsl/OTTR_Template/wiki/Citations). + +### Picking a style + +See more [about customizing style on this page in the guide](https://github.com/jhudsl/OTTR_Template/wiki/Change-Title-&-Customize-style). +By default this course template will use the jhudsl data science lab style. However, you can customize and switch this to another style set. + +#### Using a style set + +[Read more about the style sets here](https://github.com/jhudsl/OTTR_Template/wiki/Change-Title-&-Customize-style#using-a-style-set). + +- [ ] On a new branch, copy the `style-sets//index.Rmd` and `style-sets//_output.yml` to the top of the repository to overwrite the default `index.Rmd` and `_output.yml`. +- [ ] Copy over all the files in the `style-sets//copy-to-assets` to the `assets` folder in the top of the repository. +- [ ] [Create a pull request](https://github.com/jhudsl/OTTR_Template/wiki/Start-editing-your-course#getting-started-with-the-github-workflow) with these changes, and double check the rendered preview to make sure that the style is what you are looking for. + +### Files that need to be edited upon adding new packages that the book's code uses: + +- `docker/Dockerfile` needs to have the new package added so it will be installed. See [instructions](https://github.com/jhudsl/OTTR_Template/wiki/Using-Docker#starting-a-new-docker-image). +- The code chunk in `index.Rmd` should be edited to add the new package. diff --git a/.github/automatic-issues/update-enrollment.md b/.github/automatic-issues/update-enrollment.md new file mode 100644 index 0000000..7bbfa7d --- /dev/null +++ b/.github/automatic-issues/update-enrollment.md @@ -0,0 +1,9 @@ + +The original template: https://github.com/jhudsl/OTTR_Template is always a work in progress. +We are working on adding more features and smoothing out bugs as we go. The AnVIL Template collects these and can pass them along to this repository. + +If you want to receive updates from the AnVIL template to your course template, you will need to enroll this repository to the template updates by adding it to the `sync.yml` file. + +- [ ] [Follow these instructions](https://github.com/jhudsl/AnVIL_Template/wiki/Start-a-New-Book-or-Course#enroll-your-repository-for-anvil-updates) to enroll your course repository to receive these updates. + +- [ ] [Ensure that you have followed these instructions](https://github.com/jhudsl/OTTR_Template/wiki/Start-a-new-course#5-add-jhudsl-robot-as-a-collaborator) to add the `jhudsl-robot` as a collaborator to your repository. diff --git a/.github/switch_sync_repo.R b/.github/switch_sync_repo.R new file mode 100644 index 0000000..7975abf --- /dev/null +++ b/.github/switch_sync_repo.R @@ -0,0 +1,39 @@ +#!/usr/bin/env Rscript + +# This script switches the repo entry for the yaml file to whatever is specified +# Written by Candace Savonen Jan 2022 + +if (!("optparse" %in% installed.packages())){ + install.packages("optparse") +} + +library(optparse) + +option_list <- list( + optparse::make_option( + c("--repo"), + type = "character", + default = "jhudsl/OTTR_Template_Test", + help = "GitHub repository name, e.g. jhudsl/OTTR_Template_Test", + ) +) + +# Read the arguments passed +opt_parser <- optparse::OptionParser(option_list = option_list) +opt <- optparse::parse_args(opt_parser) + +# Find .git root directory +root_dir <- rprojroot::find_root(rprojroot::has_dir(".git")) + +# Get test sync yaml path +sync_file_path <- file.path(root_dir, ".github", "test-sync.yml") + +yaml_contents <- yaml::yaml.load_file(sync_file_path) + +# Only keep first grouping +yaml_contents$group <- yaml_contents$group[[1]] + +# Switch out repo +yaml_contents$group$repos <- opt$repo + +yaml::write_yaml(yaml_contents, sync_file_path) diff --git a/.github/sync.yml b/.github/sync.yml new file mode 100644 index 0000000..053695a --- /dev/null +++ b/.github/sync.yml @@ -0,0 +1,126 @@ +# For info on how to update this file see: https://github.com/marketplace/actions/repo-file-sync-action#%EF%B8%8F-sync-configuration + +group: + - files: + - source: .github/workflows/ + dest: .github/workflows/ + exclude: | + send-updates.yml + test-send-updates.yml + starting-course.yml + release-notes.yml + - source: .github/ISSUE_TEMPLATE/course-problem-report.md + dest: .github/ISSUE_TEMPLATE/course-problem-report.md + - source: .github/ISSUE_TEMPLATE/course-content-add.md + dest: .github/ISSUE_TEMPLATE/course-content-add.md + - source: scripts/ottr-fy.R + dest: scripts/ottr-fy.R + - source: scripts/git_repo_check.R + dest: scripts/git_repo_check.R + - source: scripts/make_screenshots.R + dest: scripts/make_screenshots.R + - source: scripts/AnVIL_Feedback_Script.sh + dest: scripts/AnVIL_Feedback_Script.sh + - source: code_of_conduct.md + dest: code_of_conduct.md + - source: style-sets + dest: style-sets + - source: assets/box_images/ + dest: assets/box_images/ + - source: assets/AnVIL_style/ + dest: assets/AnVIL_style/ + deleteOrphaned: true + - source: assets/GDSCN_style/ + dest: assets/GDSCN_style/ + deleteOrphaned: true + - source: assets/itcr_arrow.png + dest: assets/itcr_arrow.png + - source: assets/style.css + dest: assets/style.css + - source: assets/toc_close.css + dest: assets/toc_close.css + # Repositories to receive changes + repos: | + fhdsl/AnVIL_Book_Epigenetics_Intro + fhdsl/AnVIL_Demos + fhdsl/AnVIL_Outreach_Dashboard + fhdsl/AnVIL_SRA_Data + fhdsl/AnVIL_Urban_Genomics_PCA + fhdsl/GDSCN_BioDIGS_AMR + fhdsl/GDSCN_BioDIGS_Book + fhdsl/GDSCN_BioDIGS_Soil + fhdsl/GDSCN_SARS_RStudio_on_AnVIL + jhudsl/AnVIL_Book_Getting_Started + jhudsl/AnVIL_Book_Instructor_Guide + jhudsl/AnVIL_Book_WDL + jhudsl/AnVIL_Book_WDL + jhudsl/AnVIL_Phylogenetic-Techniques + jhudsl/GDSCN_Book_SARS_Galaxy_on_AnVIL + jhudsl/GDSCN_Book_Statistics_for_Genomics_Differential_Expression + jhudsl/GDSCN_Book_Statistics_for_Genomics_PCA + jhudsl/GDSCN_Book_Statistics_for_Genomics_RNA-seq + jhudsl/GDSCN_Book_Statistics_for_Genomics_scRNA-seq + jhudsl/GDSCN_Book_swirl +###ADD NEW REPO HERE following the format above# + +# AnVIL repos should sync AnVIL version of _output.yml + - files: + - source: _output.yml + dest: _output.yml + repos: | + fhdsl/AnVIL_Book_Epigenetics_Intro + fhdsl/AnVIL_Collection + fhdsl/AnVIL_Data_Subsetting + fhdsl/AnVIL_Demos + fhdsl/AnVIL_Outreach_Dashboard + fhdsl/AnVIL_Researcher_Journey + fhdsl/AnVIL_SRA_Data + fhdsl/AnVIL_Urban_Genomics_PCA + jhudsl/AnVIL_Book_WDL + +# GDSCN repos should sync the GDSCN version of _output.yml +# They should also sync the top level assets into an AnVIL style-set + - files: + - source: style-sets/GDSCN/_output.yml + dest: _output.yml + - source: _output.yml + dest: style-sets/AnVIL/_output.yml + - source: index.Rmd + dest: style-sets/AnVIL/index.Rmd + repos: | + fhdsl/GDSCN_BioDIGS_AMR + fhdsl/GDSCN_BioDIGS_Book + fhdsl/GDSCN_BioDIGS_Soil + fhdsl/GDSCN_SARS_RStudio_on_AnVIL + jhudsl/GDSCN_Template_Test + +# Repos where Hopkins took the lead have JHU branding instead of Hutch + - files: + - source: style-sets/AnVIL_JHU/_output.yml + dest: _output.yml + - source: _output.yml + dest: style-sets/AnVIL/_output.yml + - source: index.Rmd + dest: style-sets/AnVIL/index.Rmd + repos: | + jhudsl/AnVIL_Book_Getting_Started + jhudsl/AnVIL_Book_Instructor_Guide + jhudsl/AnVIL_Book_WDL + jhudsl/AnVIL_Phylogenetic-Techniques + + - files: + - source: style-sets/GDSCN_JHU/_output.yml + dest: _output.yml + - source: _output.yml + dest: style-sets/AnVIL/_output.yml + - source: index.Rmd + dest: style-sets/AnVIL/index.Rmd + repos: | + jhudsl/GDSCN_Book_SARS_Galaxy_on_AnVIL + jhudsl/GDSCN_Book_Statistics_for_Genomics_Differential_Expression + jhudsl/GDSCN_Book_Statistics_for_Genomics_PCA + jhudsl/GDSCN_Book_Statistics_for_Genomics_RNA-seq + jhudsl/GDSCN_Book_Statistics_for_Genomics_scRNA-seq + jhudsl/GDSCN_Book_swirl + + diff --git a/.github/workflows/check-url.yml b/.github/workflows/check-url.yml new file mode 100644 index 0000000..a437049 --- /dev/null +++ b/.github/workflows/check-url.yml @@ -0,0 +1,107 @@ +name: Periodic URL Check + +on: + workflow_dispatch: + schedule: + - cron: '0 0 1 * *' + +jobs: + set-up: + name: Load user automation choices + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + # Use the yaml-env-action action. + - name: Load environment from YAML + uses: doughepi/yaml-env-action@v1.0.0 + with: + files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. + outputs: + toggle_url_check_periodically: "${{ env.URL_CHECK_PERIODICALLY }}" + + url-check: + name: Check URLs + needs: set-up + if: ${{needs.set-up.outputs.toggle_url_check_periodically == 'yes'}} + runs-on: ubuntu-latest + container: + image: jhudsl/base_ottr:main + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + # Delete the branch if this has been run before + - name: Delete branch locally and remotely + run: git push origin --delete preview-spell-error || echo "No branch to delete" + + # Make the branch fresh + - name: Make the branch fresh + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + echo branch doesnt exist + git checkout -b preview-spell-error || echo branch exists + git push --set-upstream origin preview-spell-error || echo echo branch exists remotely + shell: bash + + - name: Run the check + uses: jhudsl/ottr-reports@main + id: check_results + continue-on-error: true + with: + check_type: urls + error_min: 1 + + - name: Declare file path and time + id: check-report + run: | + error_num=$(cat check_reports/url_checks.tsv | wc -l) + error_num="$((error_num-1))" + echo "error_num=$error_num" >> $GITHUB_OUTPUT + echo "error_url=https://github.com/${GITHUB_REPOSITORY}/blob/preview-spell-error/check_reports/url_checks.tsv" >> $GITHUB_OUTPUT + shell: bash + + - name: Stop if failure + if: steps.check_results.outcome == 'failure' + run: exit 1 + + - name: Print out error variables + run: | + echo ${{ steps.check-report.outputs.error_url }} + echo ${{ steps.check-report.outputs.error_num }} + + - name: Find issues + id: find-issue + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + echo "$GITHUB_REPOSITORY" + curl -o find_issue.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/find_issue.R + issue_exists=$(Rscript --vanilla find_issue.R --repo $GITHUB_REPOSITORY --git_pat $GH_PAT) + echo URL issue exists: $issue_exists + echo "issue_existence=$issue_exists" >> $GITHUB_OUTPUT + + - name: If too many URL errors, then make an issue + if: ${{ steps.check-report.outputs.error_num >= 1 && steps.find-issue.outputs.issue_existence == 0}} + uses: JasonEtco/create-an-issue@v2 + with: + filename: .github/ISSUE_TEMPLATE/url-error.md + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + FILE_URL: ${{ steps.check-report.outputs.error_url }} + ERROR_NUM: ${{ steps.check-report.outputs.error_num }} + + - name: If no URL errors than delete the branch we made + if: ${{ steps.check-report.outputs.error_num < 1 }} + run: | + git config --system --add safe.directory "$GITHUB_WORKSPACE" + git push origin --delete preview-spell-error || echo "No branch to delete" diff --git a/.github/workflows/delete-preview.yml b/.github/workflows/delete-preview.yml new file mode 100644 index 0000000..faa83cc --- /dev/null +++ b/.github/workflows/delete-preview.yml @@ -0,0 +1,27 @@ +# Candace Savonen Apr 2021 + +name: Delete Preview + +on: + pull_request: + types: [closed] + +jobs: + delete-preview: + runs-on: ubuntu-latest + steps: + + # This is because if a PR is closed before a render finishes it won't find it. + - name: Sleep for 5 minutes + run: sleep 300s + shell: bash + + # Check out current repository + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # Delete the branch! + - name: Delete branch locally and remotely + run: git push origin --delete preview-${{ github.event.pull_request.number }} || echo "No branch to delete" diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml new file mode 100644 index 0000000..d4d2515 --- /dev/null +++ b/.github/workflows/pull_request.yml @@ -0,0 +1,249 @@ +# Candace Savonen 2021 +# Updated Jan 2023 + +name: Pull Request + +on: + pull_request: + branches: [ main, staging ] + +jobs: + + yaml-check: + name: Load user automation choices + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_PAT }} + + # Use the yaml-env-action action. + - name: Load environment from YAML + uses: doughepi/yaml-env-action@v1.0.0 + with: + files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. + + # Delete the branch if this has been run before + - name: Delete branch locally and remotely + run: git push origin --delete preview-${{ github.event.pull_request.number }} || echo "No branch to delete" + + # Make the branch fresh + - name: Make the branch fresh + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + branch_name='preview-${{ github.event.pull_request.number }}' + echo branch doesnt exist + git checkout -b $branch_name || echo branch exists + git push --set-upstream origin $branch_name || echo echo branch exists remotely + shell: bash + + + outputs: + toggle_spell_check: "${{ env.SPELL_CHECK }}" + toggle_style_code: "${{ env.STYLE_CODE }}" + toggle_url_check: "${{ env.URL_CHECKER }}" + toggle_quiz_check: "${{ env.CHECK_QUIZZES }}" + toggle_render_preview: "${{ env.RENDER_PREVIEW }}" + rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}" + +########################## Make the error reports ############################## + spell-check: + name: Check spelling + needs: yaml-check + if: ${{needs.yaml-check.outputs.toggle_spell_check == 'yes'}} + uses: jhudsl/ottr-reports/.github/workflows/report-maker.yml@main + with: + check_type: spelling + error_min: 3 + gh_pat: secrets.GH_PAT + branch_name: ${GITHUB_HEAD_REF} + + url-check: + name: Check URLs + needs: yaml-check + if: ${{needs.yaml-check.outputs.toggle_url_check == 'yes'}} + uses: jhudsl/ottr-reports/.github/workflows/report-maker.yml@main + with: + check_type: urls + error_min: 0 + gh_pat: secrets.GH_PAT + branch_name: ${GITHUB_HEAD_REF} + + quiz-check: + name: Check quiz formatting + if: ${{needs.yaml-check.outputs.toggle_quiz_check == 'yes'}} + needs: yaml-check + uses: jhudsl/ottr-reports/.github/workflows/report-maker.yml@main + with: + check_type: quiz_format + error_min: 0 + gh_pat: secrets.GH_PAT + branch_name: ${GITHUB_HEAD_REF} + +############################# Style the code ################################### + style-code: + name: Style code + needs: yaml-check + runs-on: ubuntu-latest + if: ${{needs.yaml-check.outputs.toggle_style_code == 'yes'}} + container: + image: jhudsl/base_ottr:main + + steps: + - name: Checkout files + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Run styler + run: Rscript -e "styler::style_file(list.files(pattern = 'Rmd$', recursive = TRUE, full.names = TRUE));warnings()" + + - name: Commit styled files + run: | + git config --system --add safe.directory "$GITHUB_WORKSPACE" + git add \*.Rmd + git commit -m 'Style Rmds' || echo "No changes to commit" + git push origin || echo "No changes to commit" + +############################# Render Preview ################################### + + render-preview: + name: Render preview + needs: yaml-check + runs-on: ubuntu-latest + container: + image: ${{needs.yaml-check.outputs.rendering_docker_image}} + if: ${{needs.yaml-check.outputs.toggle_render_preview == 'yes'}} + + steps: + - name: Checkout files + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # Set up git checkout + - name: Set up git checkout + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + branch_name='preview-${{ github.event.pull_request.number }}' + git fetch --all + git checkout $branch_name + git merge -s recursive --strategy-option=theirs origin/${{ github.head_ref }} --allow-unrelated-histories + shell: bash + + # Make sure the link for AnVIL feedback is prepopulated for the specific course + - name: Set up feedback link + id: feedback + run: bash scripts/AnVIL_Feedback_Script.sh + + # Run bookdown rendering + - name: Run bookdown render + id: bookdown + run: Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all')" + + # Render a student guide if specified. This is a bit clunky because + # Bookdown does not work well if the files aren't named as such in the + # root directory + - name: Run student guide render + if: ${{needs.yaml-check.outputs.render_student_guide == 'yes'}} + id: student_guide + run: | + mkdir tmp1 + mv _bookdown.yml _output.yml tmp1 + mv student-guide/_bookdown.yml student-guide/_output.yml . + Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all')" + mv _bookdown.yml _output.yml student-guide + mv tmp1/_bookdown.yml tmp1/_output.yml . + rm -r tmp1 + + # Run TOC-less version + # Rendered content for Leanpub and Coursera is very similar. + # This job creates a shared scaffold for both. + - name: Run TOC-less version of render + id: tocless + run: Rscript -e "ottrpal::render_without_toc()" + + # This checks on the steps before it and makes sure that they completed. + # If the renders didn't complete we don't want to commit the file changes + - name: Check on render steps + if: steps.bookdown.outcome != 'success' || steps.tocless.outcome != 'success' + run: | + echo Bookdown status ${{steps.bookdown.outcome}} + echo Toc-less status ${{steps.tocless.outcome}} + exit 1 + + - name: Website preview for download + run: zip website-preview.zip docs/* -r + + # Commit the rendered bookdown files + - name: Commit rendered bookdown files to preview branch + id: commit + run: | + branch_name='preview-${{ github.event.pull_request.number }}' + git diff origin/main -- docs >/dev/null && changes=true || changes=false + echo "changes=$changes" >> $GITHUB_OUTPUT + git add . --force + git commit -m 'Render preview' || echo "No changes to commit" + git pull --rebase --set-upstream origin $branch_name --allow-unrelated-histories --strategy-option=ours + git push --force || echo "No changes to commit" + shell: bash + + - name: Find Comment + uses: peter-evans/find-comment@v2 + id: fc + with: + issue-number: ${{ github.event.pull_request.number }} + comment-author: 'github-actions[bot]' + body-includes: latest commit + + - name: Build components of the comment + id: build-components + run: | + course_name=$(head -n 1 student-guide/_bookdown.yml | cut -d'"' -f 2| tr " " "-") + bookdown_link=$(echo "https://htmlpreview.github.io/?https://raw.githubusercontent.com/$GITHUB_REPOSITORY/preview-${{ github.event.pull_request.number }}/docs/index.html") + tocless_link=$(echo "https://htmlpreview.github.io/?https://raw.githubusercontent.com/$GITHUB_REPOSITORY/preview-${{ github.event.pull_request.number }}/docs/no_toc/index.html") + student_docx_link=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/student-guide/$course_name.docx") zip_link=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/website-preview.zip") + echo "zip_link=$zip_link" >> $GITHUB_OUTPUT + echo "bookdown_link=$bookdown_link" >> $GITHUB_OUTPUT + echo "tocless_link=$tocless_link" >> $GITHUB_OUTPUT + echo "student_docx_link=$student_docx_link" >> $GITHUB_OUTPUT + echo "time=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT + echo "commit_id=$GITHUB_SHA" >> $GITHUB_OUTPUT + echo ${{steps.commit.outputs.changes}} + + - name: Create or update comment + if: steps.commit.outputs.changes == 'true' + uses: peter-evans/create-or-update-comment@v2 + with: + comment-id: ${{ steps.fc.outputs.comment-id }} + issue-number: ${{ github.event.pull_request.number }} + body: | + Re-rendered previews from the latest commit: + - :eyes: Quick [preview of course website here](${{ steps.build-components.outputs.bookdown_link }}) \* + - :microscope: Comprehensive [download of the course website here](${{ steps.build-components.outputs.zip_link }}) + - Download the [.docx file](${{ steps.build-components.outputs.docx_link }}) + + \* note not all html features will be properly displayed in the "quick preview" but it will give you a rough idea. + + _Updated at ${{ steps.build-components.outputs.time }} with changes from the latest commit ${{ steps.build-components.outputs.commit_id }}_ + edit-mode: replace + + - name: Comment if no changes + if: steps.commit.outputs.changes == 'false' + uses: peter-evans/create-or-update-comment@v2 + with: + comment-id: ${{ steps.fc.outputs.comment-id }} + issue-number: ${{ github.event.pull_request.number }} + body: | + The latest commit did not produce rendering changes. + + _Updated at ${{ steps.build-components.outputs.time }} with changes from ${{ steps.build-components.outputs.commit_id }}_ + edit-mode: replace diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml new file mode 100644 index 0000000..fc4e5c0 --- /dev/null +++ b/.github/workflows/release-notes.yml @@ -0,0 +1,34 @@ +# Candace Savonen Sept 2021 + +name: Release note PR comment + +on: + pull_request: + branches: [ main, staging ] + types: [ opened ] + +jobs: + pr-comment: + runs-on: ubuntu-latest + steps: + - uses: mshick/add-pr-comment@v1 + if: ${{ github.head_ref == 'repo-sync/AnVIL_Template/default' }} + with: + message: | + **Please carefully review these changes and decide which are useful for your course.** + See the release notes: https://github.com/jhudsl/AnVIL_Template/releases + + - If you don't want the changes from a particular file, you can always [revert that particular commit](https://git-scm.com/docs/git-revert) before merging the sync PR. + If you will not want any updates on this file in the future, you may want to remove a file from being synced in your repo [by reconfiguring the sync file](https://github.com/jhudsl/AnVIL_Template/blob/main/.github/sync.yml). + + - If you want only some changes, but they are not on a whole file basis, you could check out the branch and make manual edits. To checkout the branch, navigate to your own repository you should be able to run: + ``` + git checkout repo-sync/AnVIL_Template/default + ``` + - If you don't want any of the changes you can close the PR entirely. + + You may want to unenroll your repository from the sync GitHub actions by [filing a PR](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) on `AnVIL_Template` + to delete [your repo name from this file](https://github.com/jhudsl/AnVIL_Template/blob/main/.github/sync.yml) if this will continue to be the case. + + repo-token-user-login: 'github-actions[bot]' # The user.login for temporary GitHub tokens + allow-repeats: false # This is the default diff --git a/.github/workflows/render-all.yml b/.github/workflows/render-all.yml new file mode 100644 index 0000000..8bb8ecb --- /dev/null +++ b/.github/workflows/render-all.yml @@ -0,0 +1,268 @@ + +# Candace Savonen Apr 2021 + +name: Render all output courses + +on: + workflow_dispatch: + push: + branches: [ main, staging ] + paths: + - '**.Rmd' + - assets/* + - quizzes/* + +jobs: + + yaml-check: + name: Load user automation choices + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + # Use the yaml-env-action action. + - name: Load environment from YAML + uses: doughepi/yaml-env-action@v1.0.0 + with: + files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. + outputs: + toggle_bookdown: "${{ env.RENDER_BOOKDOWN }}" + toggle_coursera: "${{ env.RENDER_COURSERA }}" + toggle_leanpub: "${{ env.RENDER_LEANPUB }}" + make_book_txt: "${{ env.MAKE_BOOK_TXT }}" + rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}" + toggle_quiz_check: "${{ env.CHECK_QUIZZES }}" + + render-bookdown: + name: Render bookdown + needs: yaml-check + runs-on: ubuntu-latest + container: + image: ${{needs.yaml-check.outputs.rendering_docker_image}} + if: ${{needs.yaml-check.outputs.toggle_bookdown == 'yes'}} + + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_PAT }} + + - name: Login as github actions bot + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + # We want a fresh run of the renders each time + - name: Delete old docs/* + run: rm -rf docs/* + + # Make sure the link for AnVIL feedback is prepopulated for the specific course + - name: Set up feedback link + id: feedback + run: bash scripts/AnVIL_Feedback_Script.sh + + # Run bookdown rendering + - name: Run bookdown render + id: bookdown + run: | + Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all'); + file.copy(from = 'assets', to = 'docs/assets', overwrite = TRUE)" + + # Render a student guide if specified. This is a bit clunky because + # Bookdown does not work well if the files aren't named as such in the + # root directory + - name: Run student guide render + if: ${{needs.yaml-check.outputs.render_student_guide == 'yes'}} + id: student_guide + run: | + mkdir tmp1 + mv _bookdown.yml _output.yml tmp1 + mv student-guide/_bookdown.yml student-guide/_output.yml . + Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all')" + mv _bookdown.yml _output.yml student-guide + mv tmp1/_bookdown.yml tmp1/_output.yml . + rm -r tmp1 + + # This checks on the steps before it and makes sure that they completed. + # If the renders didn't complete we don't want to commit the file changes + - name: Check on render step + if: steps.bookdown.outcome != 'success' + run: | + echo Bookdown status ${{steps.bookdown.outcome}} + exit 1 + + # Commit the rendered bookdown files + - name: Commit rendered bookdown files + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY} + git fetch origin + git add --force docs/* + git commit -m 'Render bookdown' || echo "No changes to commit" + git pull --allow-unrelated-histories --strategy-option=ours + git push -u origin main || echo "No changes to push" + + render-tocless: + name: Render TOC-less version for Leanpub or Coursera + needs: [yaml-check, render-bookdown] + runs-on: ubuntu-latest + container: + image: ${{needs.yaml-check.outputs.rendering_docker_image}} + if: ${{needs.yaml-check.outputs.toggle_coursera == 'yes' || needs.yaml-check.outputs.toggle_leanpub == 'yes'}} + + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_PAT }} + + - name: Login as github-actions bot + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + # Rendered content for Leanpub and Coursera is very similar. + # This job creates a shared scaffold for both. + - name: Run TOC-less version of render + id: tocless + run: Rscript -e "ottrpal::render_without_toc()" + + # Commit the TOC-less version files + - name: Commit tocless bookdown files + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY} + git fetch origin + git add --force docs/no_toc* + git commit -m 'Render toc-less' || echo "No changes to commit" + git pull --set-upstream origin $branch_name --allow-unrelated-histories --strategy-option=ours + git push -u origin main || echo "No changes to push" + + render-leanpub: + name: Finish Leanpub prep + needs: [yaml-check, render-tocless] + runs-on: ubuntu-latest + container: + image: jhudsl/ottrpal:main + if: ${{needs.yaml-check.outputs.toggle_leanpub == 'yes'}} + + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_PAT }} + + - name: Login as github actions bot + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + # Create screenshots + - name: Run the screenshot creation + run: | + # Remove old folder + rm -rf resources/chapt_screen_images + + # Make new screenshots + curl -o make_screenshots.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/make_screenshots.R + chapt_urls=$(Rscript --vanilla make_screenshots.R \ + --git_pat ${{ secrets.GH_PAT }} \ + --repo $GITHUB_REPOSITORY \ + --output_dir resources/chapt_screen_images) + + # We want a fresh run of the renders each time + - name: Delete manuscript/ + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + rm -rf manuscript/ + git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY} + git fetch origin + git add . + git commit -m 'Delete manuscript folder' || echo "No changes to commit" + git pull --set-upstream origin $branch_name --allow-unrelated-histories --strategy-option=ours + git push -u origin main || echo "No changes to push" + + - name: Run ottrpal::bookdown_to_embed_leanpub + if: ${{ needs.yaml-check.outputs.toggle_quiz_check == 'no'}} + run: | + Rscript -e "ottrpal::bookdown_to_embed_leanpub( + render = FALSE, \ + chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \ + make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'), \ + quiz_dir = NULL)" + + - name: Run ottrpal::bookdown_to_embed_leanpub + if: ${{ needs.yaml-check.outputs.toggle_quiz_check == 'yes'}} + run: | + Rscript -e "ottrpal::bookdown_to_embed_leanpub( + render = FALSE, \ + chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \ + make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'))" + + # Commit the rendered Leanpub files + - name: Commit rendered Leanpub files + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + mkdir -p manuscript + git add --force manuscript/* + git add --force resources/* + git add --force docs/* + git commit -m 'Render Leanpub' || echo "No changes to commit" + git pull --allow-unrelated-histories --strategy-option=ours + git push --force --set-upstream origin main || echo "No changes to push" + + render-coursera: + name: Finish Coursera prep + needs: [yaml-check, render-tocless] + runs-on: ubuntu-latest + container: + image: ${{needs.yaml-check.outputs.rendering_docker_image}} + if: ${{needs.yaml-check.outputs.toggle_coursera == 'yes'}} + + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_PAT }} + + - name: Login as github action + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + # Run Coursera version + - name: Convert Leanpub quizzes to Coursera + if: needs.yaml-check.outputs.toggle_leanpub == 'yes' && needs.yaml-check.outputs.toggle_quiz_check == 'yes' + id: coursera + run: Rscript -e "ottrpal::convert_coursera_quizzes()" + + # Commit the rendered bookdown files + # Only commit coursera quizzes if the directory is present + - name: Commit rendered Coursera files + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY} + git fetch origin + if [ -d 'coursera_quizzes' ]; then + git add --force coursera_quizzes/* + fi + git add --force manuscript/* + git add --force resources/* + git add --force docs/* + git commit -m 'Render Coursera quizzes' || echo "No changes to commit" + git pull --rebase --allow-unrelated-histories --strategy-option=ours + git push -u origin main || echo "No changes to push" diff --git a/.github/workflows/send-updates.yml b/.github/workflows/send-updates.yml new file mode 100644 index 0000000..f636dc0 --- /dev/null +++ b/.github/workflows/send-updates.yml @@ -0,0 +1,45 @@ +# Candace Savonen Aug 2021 + +name: Sync Files + +on: + release: + types: + - published + workflow_dispatch: + inputs: + prtag: + description: 'Tag to use?' + required: true + default: 'null' + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Login as github actions bot + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Get the version + id: get_tag + run: | + if [ github.event.inputs.prtag == 'null' ] + then + echo "version=$(echo $GITHUB_REF | cut -d / -f 3)" >> $GITHUB_OUTPUT + fi + if [ github.event.inputs.prtag != 'null' ] + then + echo "version=${{ github.event.inputs.prtag }}" >> $GITHUB_OUTPUT + fi + + - name: Run Mechanics File Sync + uses: BetaHuhn/repo-file-sync-action@v1.17.21 + with: + GH_PAT: ${{ secrets.GH_PAT }} + COMMIT_BODY: release-${{ steps.get_tag.outputs.version }} diff --git a/.github/workflows/starting-course.yml b/.github/workflows/starting-course.yml new file mode 100644 index 0000000..d71458b --- /dev/null +++ b/.github/workflows/starting-course.yml @@ -0,0 +1,135 @@ +# Code adapted from https://github.com/JetBrains/intellij-platform-plugin-template/blob/deb171483598ee8a5d7621154db880e87b4db4ef/.github/workflows/template-cleanup.yml +# by Candace Savonen for OTTR_Template, and by Katherine Cox for AnVIL_Template + +name: Starting a new course + +on: + push: + branches: [ main, staging ] + workflow_dispatch: + +jobs: + # Run cleaning process only if workflow is triggered by not being in the Bookdown template anymore + template-cleanup: + name: Template Cleanup + runs-on: ubuntu-latest + if: github.event.repository.name != 'AnVIL_Template' + steps: + - name: checkout repo + uses: actions/checkout@v3 + + - name: Login as jhudsl-robot + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.email "itcrtrainingnetwork@gmail.com" + git config --global user.name "jhudsl-robot" + +##### Delete Template-specific files that aren't needed for new courses + + # Cleanup Template-specific bits + - name: Cleanup + run: | + # Cleanup + rm -rf \ + .github/workflows/send-updates.yml \ + .github/workflows/test-send-updates.yml \ + .github/workflows/starting-course.yml \ + .github/workflows/release-notes.yml \ + .github/sync.yml \ + .github/switch_sync_repo.yml \ + child/* \ + resources/code_output \ + resources/screenshots \ + resources/course_screenshots \ + resources/gs_slides \ + resources/image_to_slide_key.tsv \ + resources/images/02-chapter_of_course_files \ + resources/images/03-test_cases_files \ + resources/images/04-figures_files \ + resources/chapt_screen_images \ + Course_Name.rds \ + docs/*.html \ + docs/*.md \ + manuscript/* + + + # Commit modified files + - name: Commit deleted files + id: commit_it + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "Template cleanup" + pushed_it=true + git push || pushed_it=false + echo ::set-output name=pushed_it::$pushed_it + + # If main is already protected, then file a PR + - name: Create PR with deleted files + if: steps.commit_it.outputs.pushed_it == 'false' + uses: peter-evans/create-pull-request@v3 + id: pr + with: + commit-message: Delete unnecessary files + signoff: false + branch: auto_copy_rendered_files + delete-branch: true + title: 'Automatic course set up' + body: | + ### Description: + This PR was initiated by the github actions. It helps set up this repository to be ready to write your course. + It deletes some remnant files you don't need for your course but were used when this was a template. + labels: | + automated + reviewers: $GITHUB_ACTOR + +##### Filing issues! + + # Issue for what repository settings need to be set + - name: New Course - Set Repository Settings + uses: peter-evans/create-issue-from-file@v4 + with: + title: New Course - Set Repository Settings + content-filepath: .github/automatic-issues/set-repo-settings.md + labels: automated training issue + + # Issue for what needs to be edited + - name: New Course - Templates to Edit + uses: peter-evans/create-issue-from-file@v4 + with: + title: New Course - Templates to Edit + content-filepath: .github/automatic-issues/templates-to-edit.md + labels: automated training issue + + # Issue for how to enroll repo for updates + - name: New Course - Template Update Enrollment + uses: peter-evans/create-issue-from-file@v4 + with: + title: New Course - Template Update Enrollment + content-filepath: .github/automatic-issues/update-enrollment.md + labels: automated training issue + + # Issue for adding a method of feedback + - name: Reminder - Add a method of user feedback + uses: peter-evans/create-issue-from-file@v4 + with: + title: Reminder - Add user feedback method + content-filepath: .github/automatic-issues/add-feedback-method.md + labels: automated training issue + + - name: Get organization name + id: get_org_name + run: | + org_name=$(dirname ${{github.repository}}) + echo ::set-output name=org_name::$org_name + echo $org_name + + # Issue for reminding people to tag their repo to ensure it gets added to the ANIVL Collection + - name: New Course - Add Repo to AnVIL Collection + uses: peter-evans/create-issue-from-file@v4 + with: + title: New Course - Add Repo to AnVIL Collection + content-filepath: .github/automatic-issues/add-repo-to-anvil-collection.md + labels: automated training issue + diff --git a/.github/workflows/test-send-updates.yml b/.github/workflows/test-send-updates.yml new file mode 100644 index 0000000..4ac6f07 --- /dev/null +++ b/.github/workflows/test-send-updates.yml @@ -0,0 +1,40 @@ +# Candace Savonen Aug 2021 + +name: Test Sync Files + +on: + workflow_dispatch: + inputs: + repo: + description: 'What repo to test on e.g. jhudsl/AnVIL_Template_Test' + required: true + default: 'jhudsl/AnVIL_Template_Test' + +jobs: + test-sync: + runs-on: ubuntu-latest + container: + image: jhudsl/base_ottr:main + + steps: + - name: Checkout Repository + uses: actions/checkout@master + + - name: Login as github actions bot + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Set up test-sync.yml + run: | + cp .github/sync.yml .github/test-sync.yml + # Switch out repo argument + Rscript --vanilla .github/switch_sync_repo.R --repo ${{ github.event.inputs.repo }} + + - name: Run Mechanics File Sync + uses: BetaHuhn/repo-file-sync-action@v1.17.21 + with: + GH_PAT: ${{ secrets.GH_PAT }} + COMMIT_BODY: "test-run" + CONFIG_PATH: .github/test-sync.yml diff --git a/.github/workflows/transfer-rendered-files.yml b/.github/workflows/transfer-rendered-files.yml new file mode 100644 index 0000000..dae4141 --- /dev/null +++ b/.github/workflows/transfer-rendered-files.yml @@ -0,0 +1,117 @@ +# This code was adapted from code written by Josh Shapiro +# for the Childhood Cancer Data Lab, an initiative of Alexs Lemonade Stand Foundation. +# https://github.com/AlexsLemonade/exercise-notebook-answers + +# Adapted for this jhudsl repository by Candace Savonen Apr 2021 + +name: Copy over from main template to _Quizzes repo + +on: + workflow_dispatch: + workflow_run: + workflows: [ "Render all output courses" ] + branches: [ main, staging ] + types: + - completed + +jobs: + + yaml-check: + name: Load user automation choices + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + # Use the yaml-env-action action. + - name: Load environment from YAML + uses: doughepi/yaml-env-action@v1.0.0 + with: + files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. + outputs: + toggle_coursera: "${{ env.RENDER_COURSERA }}" + toggle_leanpub: "${{ env.RENDER_LEANPUB }}" + + + file-quizzes-pr: + name: File _Quizzes Transfer PR + runs-on: ubuntu-latest + container: + image: jhudsl/ottrpal:main + needs: [yaml-check] + if: ${{needs.yaml-check.outputs.toggle_coursera == 'yes' || needs.yaml-check.outputs.toggle_leanpub == 'yes'}} + + steps: + - name: Checkout from Bookdown Repo + uses: actions/checkout@v4 + with: + path: bookdown + token: ${{ secrets.GH_PAT }} + + - name: Run git repo check + id: git_repo_check + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + # What's the Quizzes repository's name? + QUIZ_REPO=$(echo ${GITHUB_REPOSITORY} | sed "s/_Bookdown/ /g" | sed "s/_Template/ /g" | awk '{print $1"_Quizzes"}') + echo $QUIZ_REPO + + # Run repo check script + curl -o git_repo_check.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/git_repo_check.R + results=$(Rscript --vanilla git_repo_check.R --repo "$GITHUB_REPOSITORY" --git_pat "$GH_PAT") + echo $QUIZ_REPO exists: $results + + echo "git_results=$results" >> $GITHUB_OUTPUT + echo "leanpub_repo=$QUIZ_REPO" >> $GITHUB_OUTPUT + + - name: Checkout code from Leanpub repo + if: ${{ steps.git_repo_check.outputs.git_results == 'TRUE' }} + uses: actions/checkout@v4 + with: + path: quizzes + repository: ${{ steps.git_repo_check.outputs.leanpub_repo }} + token: ${{ secrets.GH_PAT }} + + - name: Get files from Bookdown repo + if: ${{ steps.git_repo_check.outputs.git_results == 'TRUE' }} + shell: bash + env: + GH_PAT: ${{ secrets.GH_PAT }} + run: | + # Copy over images folder (from bookdown to quizzes repo) + mkdir -p quizzes/resources/chapt_screen_images + cp bookdown/resources/chapt_screen_images/* quizzes/resources/chapt_screen_images + + # Copy over _bookdown.yml (from bookdown to quizzes repo) + cp bookdown/_bookdown.yml quizzes/_bookdown.yml + + - name: Create PR with resources files + if: ${{ steps.git_repo_check.outputs.git_results == 'TRUE' }} + uses: peter-evans/create-pull-request@v3 + id: cpr + with: + path: quizzes # Must create the PR in the Quizzes Repo + token: ${{ secrets.GH_PAT }} + commit-message: Copy files from Bookdown repository + signoff: false + branch: auto_copy_rendered_files + delete-branch: true + title: 'GHA: Automated transfer of ottrpal-needed files from Bookdown repository' + body: | + ### Description: + This PR was initiated by transfer-rendered.yml in the Bookdown repository. + It copies over the ottrpal-needed folder (for the `bookdown_to_embed_leanpub(render = FALSE)` function + to run properly. + - resources/chapt_screen_images/* + - _bookdown.yml + labels: | + automated + reviewers: $GITHUB_ACTOR + + # Write out PR info + - name: Check outputs + if: ${{ steps.git_repo_check.outputs.git_results == 'TRUE' }} + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc638be --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# ignore nonsense files +.DS_Store +.Rhistory +.local +.rstudio +.bash_history +spell_check_results.tsv +.RData +.httr-oauth +docker/git_token.txt diff --git a/01-intro.Rmd b/01-intro.Rmd new file mode 100644 index 0000000..f98f519 --- /dev/null +++ b/01-intro.Rmd @@ -0,0 +1,20 @@ +# (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 new file mode 100644 index 0000000..61240f1 --- /dev/null +++ b/02-chapter_of_course.Rmd @@ -0,0 +1,187 @@ + +# 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/03-AnVIL_modules.Rmd b/03-AnVIL_modules.Rmd new file mode 100644 index 0000000..83a9642 --- /dev/null +++ b/03-AnVIL_modules.Rmd @@ -0,0 +1,52 @@ +# 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/04-workspace_modules.Rmd b/04-workspace_modules.Rmd new file mode 100644 index 0000000..1b582b5 --- /dev/null +++ b/04-workspace_modules.Rmd @@ -0,0 +1,44 @@ +# (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-billing_modules.Rmd b/05-billing_modules.Rmd new file mode 100644 index 0000000..8c8844c --- /dev/null +++ b/05-billing_modules.Rmd @@ -0,0 +1,109 @@ +```{r echo = FALSE} +knitr::opts_chunk$set(out.width = "100%") +``` + +# Billing + +Modules about billing and Billing Projects on Google Cloud Platform and Terra. + +
+ +## Create Google Billing Account + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_billing_create_account.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Add Terra to Google Billing Account + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_billing_add_terra.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Add Members to Google Billing Account + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_billing_add_member.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Set Alerts for Google Billing + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_billing_set_alerts.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## View Spend for Google Billing + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_billing_view_spend.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Create Terra Billing Project + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_terra_billing_project_create.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Add Member to Terra Billing Project + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_terra_billing_project_add_member.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Disable Terra Billing Project + +By default this module includes a warning to make sure people understand they will lose access to their Workspace buckets. You can remove the warning from this module by setting `AnVIL_module_settings$warning` to `FALSE` before running `cow::borrow_chapter`: + +``` +AnVIL_module_settings <- list( + warning = FALSE +) +cow::borrow_chapter( + doc_path = "child/_child_terra_billing_project_disable.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_terra_billing_project_disable.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: diff --git a/06-onboarding_modules.Rmd b/06-onboarding_modules.Rmd new file mode 100644 index 0000000..7b6e32a --- /dev/null +++ b/06-onboarding_modules.Rmd @@ -0,0 +1,15 @@ +# 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/07-using_platforms_modules.Rmd b/07-using_platforms_modules.Rmd new file mode 100644 index 0000000..c1cab54 --- /dev/null +++ b/07-using_platforms_modules.Rmd @@ -0,0 +1,124 @@ +```{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 + +```{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 + +```{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 + +```{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" +) +``` +:::: diff --git a/08-student_modules.Rmd b/08-student_modules.Rmd new file mode 100644 index 0000000..efb5178 --- /dev/null +++ b/08-student_modules.Rmd @@ -0,0 +1,141 @@ +```{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-student_guide.Rmd b/09-student_guide.Rmd new file mode 100644 index 0000000..d6fff4a --- /dev/null +++ b/09-student_guide.Rmd @@ -0,0 +1,10 @@ + +# 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 new file mode 100644 index 0000000..e618f21 --- /dev/null +++ b/10-user_management_modules.Rmd @@ -0,0 +1,38 @@ +# 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 new file mode 100644 index 0000000..c8d7e59 --- /dev/null +++ b/11-why-anvil.Rmd @@ -0,0 +1,16 @@ +# 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/12-instructor_modules.Rmd b/12-instructor_modules.Rmd new file mode 100644 index 0000000..c2bbc00 --- /dev/null +++ b/12-instructor_modules.Rmd @@ -0,0 +1,49 @@ +# Instructor modules + +Modules aimed at instructors. + +
+ +## 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" +) +``` +:::: + +## Checklist Link + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_instructor_checklist_link.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Checklist Timeline (premade content) + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_instructor_timeline_premade.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: + +## Recommendation to use STRIDES + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_instructor_STRIDES.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` +:::: diff --git a/About.Rmd b/About.Rmd new file mode 100644 index 0000000..d79967a --- /dev/null +++ b/About.Rmd @@ -0,0 +1,70 @@ + +# About the Authors {-} + +These credits are based on our [course contributors table guidelines](https://github.com/jhudsl/OTTR_Template/wiki/How-to-give-credits). + +  +  + + + +|Credits|Names| +|-------|-----| +|**Pedagogy**|| +|Lead Content Instructor(s)|[FirstName LastName]| +|Lecturer(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved| Delivered the course in some way - video or audio| +|Content Author(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved | If any other authors besides lead instructor| +|Content Contributor(s) (include section name/link in parentheses) - make new line if more than one section involved| Wrote less than a chapter

AnVIL instructions: [Katherine Cox], [Ava Hoffman], [Elizabeth Humphries]| +|Content Editor(s)/Reviewer(s) | Checked your content| +|Content Director(s) | Helped guide the content direction| +|Content Consultants (include chapter name/link in parentheses or word "General") - make new line if more than one chapter involved | Gave high level advice on content

AnVIL instructions: [Allie Cliffe]| +|Acknowledgments| Gave small assistance to content but not to the level of consulting | +|**Production**|| +|Content Publisher(s)| Helped with publishing platform| +|Content Publishing Reviewer(s)| Reviewed overall content and aesthetics on publishing platform| +|**Technical**|| +|Course Publishing Engineer(s)| Helped with the code for the technical aspects related to the specific course generation| +|Template Publishing Engineers|[Candace Savonen], [Carrie Wright]| +|Publishing Maintenance Engineer|[Candace Savonen]| +|Technical Publishing Stylists|[Carrie Wright], [Candace Savonen]| +|Package Developers ([ottrpal])|[John Muschelli], [Candace Savonen], [Carrie Wright]| +|**Art and Design**|| +|Illustrator(s)| Created graphics for the course| +|Figure Artist(s)| Created figures/plots for course| +|Videographer(s)| Filmed videos| +|Videography Editor(s)| Edited film| +|Audiographer(s)| Recorded audio| +|Audiography Editor(s)| Edited audio recordings| +|**Funding**|| +|Funder(s)| Institution/individual who funded course including grant number| +|Funding Staff| Staff members who help with funding| + +  + +```{r, echo = FALSE} +devtools::session_info() +``` + + + +[FirstName LastName]: link to personal website +[Allie Cliffe]: https://alliecliffe.com/ +[Katherine Cox]: https://katherinecox.github.io/ +[Ava Hoffman]: https://www.avahoffman.com/ +[Elizabeth Humphries]: https://www.linkedin.com/in/elizabeth-humphries-61202a103/ +[John Muschelli]: https://johnmuschelli.com/ +[Candace Savonen]: https://www.cansavvy.com/ +[Carrie Wright]: https://carriewright11.github.io/ + + + +[ottrpal]: https://github.com/jhudsl/ottrpal + + diff --git a/Course_Name.rds b/Course_Name.rds new file mode 100644 index 0000000..89313df Binary files /dev/null and b/Course_Name.rds differ diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..eecfdd4 --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,20 @@ +Package: AnVIL_Template +Title: Workspace title on the Dashboard +Version: 0.99.0 +Authors@R: + person(given = "Firstname", + family = "Lastname", + role = c("cre","aut"), + email = "firstnamelastname@gmail.com") +Description: + This is a brief description of the project. The GitHub repository can be + found here: [repo-name](https://github.com/jhudsl/AnVIL_Template) +License: CC BY 4.0 +Encoding: UTF-8 +LazyData: true +Roxygen: list(markdown = TRUE) +RoxygenNote: 7.0.0 +Suggests: + knitr, + rmarkdown +VignetteBuilder: knitr \ No newline at end of file diff --git a/GA_Script.html b/GA_Script.html new file mode 100644 index 0000000..96568c1 --- /dev/null +++ b/GA_Script.html @@ -0,0 +1,10 @@ + + + + diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..da6ab6c --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,396 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..6ae9268 --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,2 @@ +# Generated by roxygen2: do not edit by hand + diff --git a/README.md b/README.md new file mode 100644 index 0000000..d466210 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ + + +## AnVIL Template + +Based on [_Open-source Tools for Training Resources (OTTR)_](https://github.com/jhudsl/OTTR_Template) + +The purpose of this template and is to make publishing maintenance for AnVIL content across multiple different platforms _less painful_. + +_This template helps you_: + +- Edit and write an AnVIL course in [RMarkdown files](https://rmarkdown.rstudio.com/) and have it published to multiple different platforms: + - [Leanpub](https://leanpub.com/bookstore?type=course) + - [Bookdown](https://bookdown.org/) + - [Coursera](https://www.coursera.org/) +- Have [Github action robots](https://github.com/jhudsl/OTTR_Template/wiki/How-to-set-up-and-customize-GitHub-actions-robots) do your repetitive tasks like spell check and re-rendering. +- Use [automagic conversion](https://github.com/jhudsl/ottrpal) to ease the lift of prepping the material for different platforms' formats. +- Use [our Docker image](https://hub.docker.com/repository/docker/jhudsl/course_template) for consistency across authors as well as to help you [avoid dependency hell](https://en.wikipedia.org/wiki/Dependency_hell). + + + +## To Get Started +- Go to [ottrproject.org](https://www.ottrproject.org/). +- Please take a look at the [code of conduct](./code_of_conduct.md). +- If you encounter any problems or have improvement ideas for this template repository, please [file an issue](https://github.com/jhudsl/AnVIL_bookdown_style/issues/new/choose)! Issues for the parent repository (the OTTR template repository) are also very much appreciated and can be submitted [here](https://github.com/jhudsl/OTTR_Template/issues/new/choose). + + + +# {Course Name} + +[![Render Bookdown and Coursera](https://github.com/jhudsl/OTTR_Template/actions/workflows/render-all.yml/badge.svg)](https://github.com/jhudsl/OTTR_Template/actions/workflows/render-all.yml) + +This course was created from [the AnVIL Template](https://github.com/jhudsl/AnVIL_bookdown_style), which is based on [the OTTR Template](https://github.com/jhudsl/OTTR_Template) + +You can see the rendered course material here: {Link to rendered bookdown and/or to the Leanpub. Will look something like: https://jhudatascience.org/{Course_Name}} + +## About this course + +This course introduces {info on what this course introduces} + +## Learning Objectives + +This course will teach learners to: + +- {You can use https://www.bobpikegroup.com/trainer-blog/5-steps-to-writing-clear-and-measurable-learning-objectives to define some learning objectives here} +- {More learning objectives} + +## Encountering problems? + +If you are encountering any problems with this course, please file a GitHub issue or contact us at {Some email or web address with a contact form}. + +Creative Commons License
All materials in this course are licensed under a Creative Commons Attribution 4.0 International License unless noted otherwise. diff --git a/References.Rmd b/References.Rmd new file mode 100644 index 0000000..98d65dc --- /dev/null +++ b/References.Rmd @@ -0,0 +1,2 @@ + +# References diff --git a/_bookdown.yml b/_bookdown.yml new file mode 100644 index 0000000..bae5ce5 --- /dev/null +++ b/_bookdown.yml @@ -0,0 +1,27 @@ +book_filename: "Course_Name" +chapter_name: "Chapter " +repo: https://github.com/jhudsl/AnVIL_Template/ +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", + "About.Rmd", + "References.Rmd"] +new_session: yes +bibliography: [book.bib] +delete_merged_file: true +language: + ui: + chapter_name: "Chapter" +output_dir: "docs" +output: + bookdown::html_book + diff --git a/_bookdown_files/02-chapter_of_course_files/figure-html/unnamed-chunk-2-1.png b/_bookdown_files/02-chapter_of_course_files/figure-html/unnamed-chunk-2-1.png new file mode 100644 index 0000000..0a0abd2 Binary files /dev/null and b/_bookdown_files/02-chapter_of_course_files/figure-html/unnamed-chunk-2-1.png differ diff --git a/_bookdown_files/02-chapter_of_course_files/figure-html/unnamed-chunk-3-1.png b/_bookdown_files/02-chapter_of_course_files/figure-html/unnamed-chunk-3-1.png new file mode 100644 index 0000000..0f0641a Binary files /dev/null and b/_bookdown_files/02-chapter_of_course_files/figure-html/unnamed-chunk-3-1.png differ diff --git a/_output.yml b/_output.yml new file mode 100644 index 0000000..7d6b017 --- /dev/null +++ b/_output.yml @@ -0,0 +1,21 @@ +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] + includes: + in_header: GA_Script.html + before_body: assets/AnVIL_style/big-image_anvil.html + after_body: assets/AnVIL_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. \ No newline at end of file diff --git a/assets/AnVIL_style/anvil.css b/assets/AnVIL_style/anvil.css new file mode 100755 index 0000000..091f5f3 --- /dev/null +++ b/assets/AnVIL_style/anvil.css @@ -0,0 +1,48 @@ + +/* AnVIL style */ +/* Things below this comment are AnVIL customizations */ + +.trapezoid { + width: 132px; + text-align: center; + position: relative; + left: 10px; + border-right: 50px solid #012d72; + border-bottom: 50px solid #dbdbdb; + border-left: 50px solid #012d72; + box-sizing: content-box; +} +.trapezoid span { + position: absolute; + top: 8px; + bottom: 5px; + left: 5%; + color: #dbdbdb; +} + +/* Module chunk shading --------------------------------------------*/ +div.borrowed_chunk { + padding: 1em; + margin: 1em 0; + min-height: 120px; + background-repeat: no-repeat; + background-color: #eff7fe; +} + +.hero-image-container { + height: 100px; +} + +.page-inner { + padding-top: 60px !important; +} + +.book .book-body .page-wrapper .page-inner section.normal h1, +.book .book-body .page-wrapper .page-inner section.normal h2, +.book .book-body .page-wrapper .page-inner section.normal h3, +.book .book-body .page-wrapper .page-inner section.normal h4, +.book .book-body .page-wrapper .page-inner section.normal h5, +.book .book-body .page-wrapper .page-inner section.normal h6 { + margin-top: 1em; + margin-bottom: 1em; +} diff --git a/assets/AnVIL_style/anvil_favicon.ico b/assets/AnVIL_style/anvil_favicon.ico new file mode 100755 index 0000000..f1eb1c4 Binary files /dev/null and b/assets/AnVIL_style/anvil_favicon.ico differ diff --git a/assets/AnVIL_style/big-image_anvil.html b/assets/AnVIL_style/big-image_anvil.html new file mode 100644 index 0000000..ce588cc --- /dev/null +++ b/assets/AnVIL_style/big-image_anvil.html @@ -0,0 +1,11 @@ + + + + + + + + +
+ +
diff --git a/assets/AnVIL_style/dasl_thin_main_image.png b/assets/AnVIL_style/dasl_thin_main_image.png new file mode 100644 index 0000000..2884072 Binary files /dev/null and b/assets/AnVIL_style/dasl_thin_main_image.png differ diff --git a/assets/AnVIL_style/footer.html b/assets/AnVIL_style/footer.html new file mode 100644 index 0000000..0b268e7 --- /dev/null +++ b/assets/AnVIL_style/footer.html @@ -0,0 +1,8 @@ +
+
+ +
\ No newline at end of file diff --git a/assets/AnVIL_style/logo-anvil-img.png b/assets/AnVIL_style/logo-anvil-img.png new file mode 100644 index 0000000..b5e3c39 Binary files /dev/null and b/assets/AnVIL_style/logo-anvil-img.png differ diff --git a/assets/AnVIL_style/logo-anvil.png b/assets/AnVIL_style/logo-anvil.png new file mode 100644 index 0000000..83c7b67 Binary files /dev/null and b/assets/AnVIL_style/logo-anvil.png differ diff --git a/assets/GDSCN_style/big-image_gdscn.html b/assets/GDSCN_style/big-image_gdscn.html new file mode 100644 index 0000000..58b794a --- /dev/null +++ b/assets/GDSCN_style/big-image_gdscn.html @@ -0,0 +1,11 @@ + + + + + + + + +
+ +
diff --git a/assets/GDSCN_style/dasl_thin_main_image.png b/assets/GDSCN_style/dasl_thin_main_image.png new file mode 100644 index 0000000..e147f89 Binary files /dev/null and b/assets/GDSCN_style/dasl_thin_main_image.png differ diff --git a/assets/GDSCN_style/footer.html b/assets/GDSCN_style/footer.html new file mode 100644 index 0000000..0b268e7 --- /dev/null +++ b/assets/GDSCN_style/footer.html @@ -0,0 +1,8 @@ +
+
+ +
\ No newline at end of file diff --git a/assets/GDSCN_style/gdscn.css b/assets/GDSCN_style/gdscn.css new file mode 100755 index 0000000..9684f7f --- /dev/null +++ b/assets/GDSCN_style/gdscn.css @@ -0,0 +1,99 @@ + +/* GDSCN style */ +/* Change colors to match GDSCN logo */ +/* Things below this comment are GDSCN customizations */ + +.hero-image-container { + height: 100px; +} + +.page-inner { + padding-top: 60px !important; +} + +.book .book-body .page-wrapper .page-inner section.normal h1, +.book .book-body .page-wrapper .page-inner section.normal h2, +.book .book-body .page-wrapper .page-inner section.normal h3, +.book .book-body .page-wrapper .page-inner section.normal h4, +.book .book-body .page-wrapper .page-inner section.normal h5, +.book .book-body .page-wrapper .page-inner section.normal h6 { + margin-top: 1em; + margin-bottom: 1em; +} + +:root { + --highlight-txt-color: #73b263; + --main-txt-color: #274731; +} + +.trapezoid { + width: 132px; + text-align: center; + position: relative; + left: 10px; + border-right: 50px solid --main-txt-color; + border-bottom: 50px solid #dbdbdb; + border-left: 50px solid --main-txt-color; + box-sizing: content-box; +} +.trapezoid span { + position: absolute; + top: 8px; + bottom: 5px; + left: 5%; + color: #dbdbdb; +} + +/* Module chunk shading --------------------------------------------*/ +div.borrowed_chunk { + padding: 1em; + margin: 1em 0; + min-height: 120px; + background-repeat: no-repeat; + background-color: #eff7fe; +} + +.book .book-body .page-wrapper .page-inner section.normal a { + color: var(--highlight-txt-color); +} + +.title { + color: var(--main-txt-color); +} + +.section.level1 > p:first-of-type:first-letter { /*drop cap for first p beneath level 1 headers only within class .section*/ + color: var(--main-txt-color); +} + +.book .book-summary a { + color: var(--main-txt-color); +} + +/* all TOC list items, basically */ +.book .book-summary ul.summary li a, +.book .book-summary ul.summary li span { + color: var(--main-txt-color); +} + +.summary a:hover { + color: var(--highlight-txt-color) !important; +} + +.book .book-summary ul.summary li.active>a { /*active TOC links*/ + color: var(--highlight-txt-color) !important; + border-color: var(--highlight-txt-color); +} + +.trapezoid { + border-right: 50px solid var(--main-txt-color); + border-left: 50px solid var(--main-txt-color); +} + +div.notice, div.dictionary, div.reflection { + border: 4px var(--highlight-txt-color); + border-style: solid; +} + +.footer { + color: var(--main-txt-color); +} diff --git a/assets/GDSCN_style/gdscn_favicon.ico b/assets/GDSCN_style/gdscn_favicon.ico new file mode 100644 index 0000000..1046ace Binary files /dev/null and b/assets/GDSCN_style/gdscn_favicon.ico differ diff --git a/assets/GDSCN_style/logo-gdscn.png b/assets/GDSCN_style/logo-gdscn.png new file mode 100644 index 0000000..b4c22da Binary files /dev/null and b/assets/GDSCN_style/logo-gdscn.png differ diff --git a/assets/box_images/dictionary.png b/assets/box_images/dictionary.png new file mode 100644 index 0000000..75ddac7 Binary files /dev/null and b/assets/box_images/dictionary.png differ diff --git a/assets/box_images/github.png b/assets/box_images/github.png new file mode 100644 index 0000000..a93acd3 Binary files /dev/null and b/assets/box_images/github.png differ diff --git a/assets/box_images/note.png b/assets/box_images/note.png new file mode 100644 index 0000000..72de3ae Binary files /dev/null and b/assets/box_images/note.png differ diff --git a/assets/box_images/thinking_face.png b/assets/box_images/thinking_face.png new file mode 100644 index 0000000..c2c279a Binary files /dev/null and b/assets/box_images/thinking_face.png differ diff --git a/assets/box_images/under_construction.png b/assets/box_images/under_construction.png new file mode 100644 index 0000000..a67bd5c Binary files /dev/null and b/assets/box_images/under_construction.png differ diff --git a/assets/box_images/warning.png b/assets/box_images/warning.png new file mode 100644 index 0000000..405fb61 Binary files /dev/null and b/assets/box_images/warning.png differ diff --git a/assets/hideOutput.js b/assets/hideOutput.js new file mode 100644 index 0000000..245d55f --- /dev/null +++ b/assets/hideOutput.js @@ -0,0 +1,57 @@ +/*$(document).ready(function() { + + + // Copy Button + $chunks = $('pre.sourceCode > code.sourceCode'); + $chunks.each(function(i, val) { + $(this).prepend("").click(function() { + var $temp = $("",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + +You can also save these plots to file: + + +```r +png(file.path(output_dir, "test_plot.png")) +hist_plot +``` + +``` +## $breaks +## [1] 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 +## +## $counts +## [1] 5 27 27 30 31 18 6 6 +## +## $density +## [1] 0.06666667 0.36000000 0.36000000 0.40000000 0.41333333 0.24000000 0.08000000 +## [8] 0.08000000 +## +## $mids +## [1] 4.25 4.75 5.25 5.75 6.25 6.75 7.25 7.75 +## +## $xname +## [1] "iris$Sepal.Length" +## +## $equidist +## [1] TRUE +## +## attr(,"class") +## [1] "histogram" +``` + +```r +dev.off() +``` + +``` +## png +## 2 +``` + +### Image example + +How to include a Google slide. It's simplest to use the `ottrpal` package: + +Major point!! example image + +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). + + + +OR this works: + + + +### Links to files + +This works: + + + +Or this: + +[This works](https://www.bgsu.edu/content/dam/BGSU/center-for-faculty-excellence/docs/TLGuides/TLGuide-Learning-Objectives.pdf). + +Or this: + + + +### Links to websites + +Examples of including a website link. + +This works: + + + +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. +::: + +### 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() +``` + +``` +## ─ Session info ─────────────────────────────────────────────────────────────── +## setting value +## version R version 4.0.2 (2020-06-22) +## os Ubuntu 20.04.5 LTS +## system x86_64, linux-gnu +## ui X11 +## language (EN) +## collate en_US.UTF-8 +## ctype en_US.UTF-8 +## tz Etc/UTC +## date 2023-07-18 +## +## ─ Packages ─────────────────────────────────────────────────────────────────── +## package * version date lib source +## assertthat 0.2.1 2019-03-21 [1] RSPM (R 4.0.5) +## bookdown 0.24 2023-03-28 [1] Github (rstudio/bookdown@88bc4ea) +## bslib 0.4.2 2022-12-16 [1] CRAN (R 4.0.2) +## cachem 1.0.7 2023-02-24 [1] CRAN (R 4.0.2) +## callr 3.5.0 2020-10-08 [1] RSPM (R 4.0.2) +## cli 3.6.1 2023-03-23 [1] CRAN (R 4.0.2) +## crayon 1.3.4 2017-09-16 [1] RSPM (R 4.0.0) +## curl 4.3 2019-12-02 [1] RSPM (R 4.0.3) +## desc 1.2.0 2018-05-01 [1] RSPM (R 4.0.3) +## devtools 2.3.2 2020-09-18 [1] RSPM (R 4.0.3) +## digest 0.6.25 2020-02-23 [1] RSPM (R 4.0.0) +## ellipsis 0.3.1 2020-05-15 [1] RSPM (R 4.0.3) +## evaluate 0.20 2023-01-17 [1] CRAN (R 4.0.2) +## fansi 0.4.1 2020-01-08 [1] RSPM (R 4.0.0) +## fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.0.2) +## fs 1.5.0 2020-07-31 [1] RSPM (R 4.0.3) +## glue 1.4.2 2020-08-27 [1] RSPM (R 4.0.5) +## highr 0.8 2019-03-20 [1] RSPM (R 4.0.3) +## hms 0.5.3 2020-01-08 [1] RSPM (R 4.0.0) +## htmltools 0.5.5 2023-03-23 [1] CRAN (R 4.0.2) +## httr 1.4.2 2020-07-20 [1] RSPM (R 4.0.3) +## jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.0.2) +## jsonlite 1.7.1 2020-09-07 [1] RSPM (R 4.0.2) +## knitr 1.33 2023-03-28 [1] Github (yihui/knitr@a1052d1) +## lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.0.2) +## magrittr * 2.0.3 2022-03-30 [1] CRAN (R 4.0.2) +## memoise 2.0.1 2021-11-26 [1] CRAN (R 4.0.2) +## ottrpal 1.0.1 2023-03-28 [1] Github (jhudsl/ottrpal@151e412) +## pillar 1.9.0 2023-03-22 [1] CRAN (R 4.0.2) +## pkgbuild 1.1.0 2020-07-13 [1] RSPM (R 4.0.2) +## pkgconfig 2.0.3 2019-09-22 [1] RSPM (R 4.0.3) +## pkgload 1.1.0 2020-05-29 [1] RSPM (R 4.0.3) +## png 0.1-8 2022-11-29 [1] CRAN (R 4.0.2) +## prettyunits 1.1.1 2020-01-24 [1] RSPM (R 4.0.3) +## processx 3.4.4 2020-09-03 [1] RSPM (R 4.0.2) +## ps 1.4.0 2020-10-07 [1] RSPM (R 4.0.2) +## R6 2.4.1 2019-11-12 [1] RSPM (R 4.0.0) +## readr 1.4.0 2020-10-05 [1] RSPM (R 4.0.2) +## remotes 2.2.0 2020-07-21 [1] RSPM (R 4.0.3) +## rlang 1.1.0 2023-03-14 [1] CRAN (R 4.0.2) +## rmarkdown 2.10 2023-03-28 [1] Github (rstudio/rmarkdown@02d3c25) +## rprojroot 2.0.3 2022-04-02 [1] CRAN (R 4.0.2) +## sass 0.4.5 2023-01-24 [1] CRAN (R 4.0.2) +## sessioninfo 1.1.1 2018-11-05 [1] RSPM (R 4.0.3) +## stringi 1.5.3 2020-09-09 [1] RSPM (R 4.0.3) +## stringr 1.4.0 2019-02-10 [1] RSPM (R 4.0.3) +## testthat 3.0.1 2023-03-28 [1] Github (R-lib/testthat@e99155a) +## tibble 3.2.1 2023-03-20 [1] CRAN (R 4.0.2) +## usethis 1.6.3 2020-09-17 [1] RSPM (R 4.0.2) +## utf8 1.1.4 2018-05-24 [1] RSPM (R 4.0.3) +## vctrs 0.6.1 2023-03-22 [1] CRAN (R 4.0.2) +## withr 2.3.0 2020-09-22 [1] RSPM (R 4.0.2) +## xfun 0.26 2023-03-28 [1] Github (yihui/xfun@74c2a66) +## yaml 2.2.1 2020-02-01 [1] RSPM (R 4.0.3) +## +## [1] /usr/local/lib/R/site-library +## [2] /usr/local/lib/R/library +``` + diff --git a/docs/no_toc/03-AnVIL_modules.md b/docs/no_toc/03-AnVIL_modules.md new file mode 100644 index 0000000..8d516a1 --- /dev/null +++ b/docs/no_toc/03-AnVIL_modules.md @@ -0,0 +1,64 @@ +# 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()` + + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the **plus icon** near the top of left of the page. + + Screenshot of Terra Workspaces page.  The "+" is highlighted. + +1. Name your Workspace and select the appropriate Billing Project. **All activity in the Workspace will be charged to this Billing Project** (regardless of who conducted it). + + Screenshot of Terra dialog box for creating a new Workspace.  The text box labeled "Workspace name" and the drop-down menu labeled "Billing project" are highlighted. + +1. If you are working with protected data, you can set the **Authorization Domain** to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. + + Screenshot of Terra dialog box for creating a new Workspace.  The drop-down menu labeled "Authorization domain" is highlighted. + +1. Click "CREATE WORKSPACE". The new Workspace should now show up under your Workspaces. + + Screenshot of Terra dialog box for creating a new Workspace.  The "Create Workspace" button is highlighted. + +## 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} + +If you do not already have a Google account that you would like to use for accessing Terra, [create one now](https://accounts.google.com/SignUp). + +If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow [these instructions](https://support.terra.bio/hc/en-us/articles/360029186611). +:::: + +**Rendered without highlighting:** + + +If you do not already have a Google account that you would like to use for accessing Terra, [create one now](https://accounts.google.com/SignUp). + +If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow [these instructions](https://support.terra.bio/hc/en-us/articles/360029186611). diff --git a/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1022.png b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1022.png new file mode 100644 index 0000000..f36a232 Binary files /dev/null and b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1022.png differ diff --git a/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1166.png b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1166.png new file mode 100644 index 0000000..8c7cbec Binary files /dev/null and b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1166.png differ diff --git a/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_150.png b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_733.png b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_733.png new file mode 100644 index 0000000..215ae94 Binary files /dev/null and b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_733.png differ diff --git a/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_877.png b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_877.png new file mode 100644 index 0000000..78730b7 Binary files /dev/null and b/docs/no_toc/03-AnVIL_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_877.png differ diff --git a/docs/no_toc/04-workspace_modules.md b/docs/no_toc/04-workspace_modules.md new file mode 100644 index 0000000..b584c86 --- /dev/null +++ b/docs/no_toc/04-workspace_modules.md @@ -0,0 +1,128 @@ +# (PART\*) AnVIL Modules {-} + +# Workspaces + +Modules about Terra Workspaces + +
+ +## Clone a Workspace + + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) + +1. Locate the Workspace you want to clone. If a Workspace has been shared with you ahead of time, it will appear in "MY WORKSPACES". You can clone a Workspace that was shared with you to perform your own analyses. In the screenshot below, no Workspaces have been shared. + + Screenshot of Terra "MY WORKSPACES" menu. The "MY WORKSPACES" tab is highlighted. No Workspaces are visible because none have been shared with the user. There is an option to create a new Workspace. + +1. If a Workspace hasn't been shared with you, navigate to the "FEATURED" or "PUBLIC" Workspace tabs. + + Screenshot of Terra "My Workspaces" menu. The "FEATURED" tab is highlighted. + +1. Use the search box to find the Workspace you want to clone. + + Screenshot of Terra "My Workspaces" menu. The search bar is highlighted and the user has typed in the term "COVID-19". A Workspace related to COVID-19 appears in the results. + +1. Click the teardrop button on the far right next to the Workspace you want to clone. Click "Clone". You can also clone the Workspace from the Workspace Dashboard instead of the search results. + + Screenshot of Terra "My Workspaces" menu with the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted. + Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted. + +1. You will see a popup box appear. Name your Workspace and select the appropriate Terra Billing Project. **All activity in the Workspace will be charged to this Billing Project** (regardless of who conducted it). Remember that each Workspace should have its own Billing Project. + + Screenshot of the "clone workspace" Terra popup dialog box. The Workspace name and Billing Project dropdown are highlighted. Text has been filled in for the Workspace name as "Lab-member-1-workspace-2". + +1. If you are working with protected data, you can set the **Authorization Domain** to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. + + Screenshot of Terra popup dialog box for creating a new Workspace. The drop-down menu labeled "Authorization domain" is highlighted. + +1. Click "CLONE WORKSPACE". The new Workspace should now show up under your Workspaces. + + Screenshot of Terra popup dialog box for creating a new Workspace. The "Clone Workspace" button is highlighted. + +## Create a Workspace + + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the **plus icon** near the top of left of the page. + + Screenshot of Terra Workspaces page.  The "+" is highlighted. + +1. Name your Workspace and select the appropriate Billing Project. **All activity in the Workspace will be charged to this Billing Project** (regardless of who conducted it). + + Screenshot of Terra dialog box for creating a new Workspace.  The text box labeled "Workspace name" and the drop-down menu labeled "Billing project" are highlighted. + +1. If you are working with protected data, you can set the **Authorization Domain** to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. + + Screenshot of Terra dialog box for creating a new Workspace.  The drop-down menu labeled "Authorization domain" is highlighted. + +1. Click "CREATE WORKSPACE". The new Workspace should now show up under your Workspaces. + + Screenshot of Terra dialog box for creating a new Workspace.  The "Create Workspace" button is highlighted. + +## Open a Workspace + + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. You are automatically directed to the "My Workspaces" tab. Here you can see any Workspaces that have been shared with you, along with your permission level. + + Screenshot of Terra Workspaces page with the "My Workspaces" tab selected.  The "My Workspaces" tab and the column showing permission level are highlighted. + + - **Reader** means you can open the Workspace and see everything, but can't do any computations or make any edits. + - **Writer** means you can run computations, which will charge costs to the Workspace's Billing Project. Writers can also make edits to the Workspace. + - **Owner** is similar to Writer, but also allows you to control who can access the Workspace. + +1. Click on the name of a Workspace to open it. Opening and viewing a Workspace does not cost anything. + + Screenshot of Terra Workspaces page with the "My Workspaces" tab selected.  The name of one of the Workspaces is highlighted. + +1. When you open a Workspace, you are directed to the Workspace Dashboard. This generally has a description of the Workspace contents, as well as some useful details about the Workspace itself. + + Screenshot of a Terra Workspace.  The "Dashboard" is highlighted. + +From here you can navigate through the different tabs of the Workspace, and if you have sufficient permission, you can start running analyses. If you are only a Reader, you may need to "clone" (make your own copy) of the Workspace before you can start working. + +## Share a Workspace + + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the name of the Workspace to open the Workspace. Opening a Workspace does not cost anything. Certain activities in the Workspace (such as running an analysis) will charge to the Workspace’s Billing Project. Workspace management (e.g. adding and removing members, editing the description) does not cost money. + + Screenshot of Terra Workspace page.  The name of a Workspace is highlighted. + +1. Click the teardrop button (![teardrop button](https://raw.githubusercontent.com/jhudsl/AnVIL_Template/main/child/child_assets/teardrop_button.png){width=25px}) on the right hand side to open the Workspace management menu. Click "Share" + + Screenshot of an individual Terra Workspace dashboard page.  The button for extending the Workspaces's drop-down menu is highlighted, and the menu item "Share" is highlighted. + +1. Enter the email address of the user or Group you’d like to share the Workspace with. + - If adding an individual, make sure to enter the account that they use to access AnVIL. + - If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page. + + Screenshot of the dialog box for sharing a Terra Workspace.  The text box labeled "User email" is highlighted. + +1. Choose their permission level. + + - Remember that all activity in the Workspace will be charged to the Workspace's Billing Project, regardless of who conducts it, so only add members as "Writers" or "Owners" if they should be charging to the Workspace's Billing Project. + - "Readers" can view all parts of the Workspace but cannot make edits or run analyses (i.e. they cannot spend money). They can also clone their own copy of the Workspace where they can conduct activity on their own Billing Project. + + Screenshot of the dialog box for sharing a Terra Workspace.  The drop-down menu labeled with the email of the user you are sharing with is highlighted and the menu item "Writer" is selected. + +1. Click "Save". The user should now be able to see the Workspace when logged in to Terra. + + Screenshot of the dialog box for sharing a Terra Workspace.  The "Save" button is highlighted. + diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_0.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_0.png new file mode 100644 index 0000000..f8c8b7c Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_0.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_1012.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_1012.png new file mode 100644 index 0000000..f4703f7 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_1012.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_144.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_144.png new file mode 100644 index 0000000..2ac6b21 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_144.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_288.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_288.png new file mode 100644 index 0000000..32cec16 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_288.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_432.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_432.png new file mode 100644 index 0000000..2cee4e4 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_432.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_577.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_577.png new file mode 100644 index 0000000..0c6a727 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_577.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_722.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_722.png new file mode 100644 index 0000000..6100335 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_722.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_867.png b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_867.png new file mode 100644 index 0000000..8e8bdd5 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1JvfOluHe543cUCyyH3zz0ew-1J1QjhdYGZufW9NrC_M_g117abafa453_0_867.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117989bd49c_0_150.png b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_289.png b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_289.png new file mode 100644 index 0000000..96c1c11 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_289.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_295.png b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_295.png new file mode 100644 index 0000000..ef8a75e Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_295.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_440.png b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_440.png new file mode 100644 index 0000000..2d5047f Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_440.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_756.png b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_756.png new file mode 100644 index 0000000..cb139d5 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_756.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_902.png b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_902.png new file mode 100644 index 0000000..27e2b68 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1hhdPNfuAhbwkl5LlNVlJiCIx_rbzVp3jSJJeksqiR5I_g117dd5f15db_0_902.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_0.png b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_0.png new file mode 100644 index 0000000..9991917 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_0.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_156.png b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_156.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_156.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_163.png b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_163.png new file mode 100644 index 0000000..1c01f62 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_163.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_170.png b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_170.png new file mode 100644 index 0000000..aaa37ce Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1ioYY0n3CcrP934WRKEsQ1aKocPqfswdWWHxYCf76BCg_g10f3888d99c_0_170.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1022.png b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1022.png new file mode 100644 index 0000000..f36a232 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1022.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1166.png b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1166.png new file mode 100644 index 0000000..8c7cbec Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_1166.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_150.png b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_733.png b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_733.png new file mode 100644 index 0000000..215ae94 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_733.png differ diff --git a/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_877.png b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_877.png new file mode 100644 index 0000000..78730b7 Binary files /dev/null and b/docs/no_toc/04-workspace_modules_files/figure-html/1zyqZHITAthNhXeH2XQqA7FMOu2mek6wfgGEaje1KQsk_g117989bd49c_0_877.png differ diff --git a/docs/no_toc/05-billing_modules.md b/docs/no_toc/05-billing_modules.md new file mode 100644 index 0000000..c157e16 --- /dev/null +++ b/docs/no_toc/05-billing_modules.md @@ -0,0 +1,334 @@ + + +# Billing + +Modules about billing and Billing Projects on Google Cloud Platform and Terra. + +
+ +## Create Google Billing Account + +:::: {.borrowed_chunk} + +1. Log in to the [Google Cloud Platform](https://console.cloud.google.com/) console using your Google ID. **Make sure to use the same Google account ID you use to log into Terra.** + +1. If you are a first time user, don’t forget to claim your free credits! If you haven't been to the console before, once you accept the Terms of Service you will be greeted with an invitation to "Try for Free." + + Screenshot of the Google Cloud Console with the "Try for Free" button highlighted. + +1. Follow the instructions to sign up for a Billing Account and get your credits. + +1. Choose “Individual Account”. This “billing account” is just for managing billing, so you don’t need to be able to add your team members. You will need to give either a credit card or bank account for security. Don't worry! **You won't be billed until you explicitly turn on automatic billing**. + + Screenshot of the Google Cloud Billing Account Setup, with "Individual Account" highlighted.  Also highlighted is text stating "You won't be charged unless you manually upgrade to a paid account." + +1. You can view and edit your new Billing Account, by selecting “Billing” from the left-hand menu, or going directly to the billing console [console.cloud.google.com/billing](https://console.cloud.google.com/billing) + + Screenshot of the Google Cloud Console dropdown menu, with "Billing" highlighted. + +1. Clicking on the Billing Account name will allow you to manage the account, including accessing reports, setting alerts, and managing payments and billing. + + Screenshot of the Google Cloud Console Billing Page, with the name of the new billing account highlighted. + +At any point, you can create additional Billing Accounts using the **Create Account** button. We generally recommend creating a new Billing Account for each funding source. +:::: + +## Add Terra to Google Billing Account + +:::: {.borrowed_chunk} + +This gives Terra permission to create projects and send charges to the Google Billing Account, and must be done by an administrator of the Google Billing Account. + +Terra needs to be added as a "Billing Account User": + +1. Log in to the [Google Cloud Platform](https://console.cloud.google.com/) console using your Google ID. +1. Navigate to [Billing](https://console.cloud.google.com/billing) + + Screenshot of the Google Cloud Console drop-down menu, with "Billing" highlighted. + +1. You may be automatically directed to view a specific Billing Account. If you see information about a single account rather than a list of your Billing Accounts, you can get back to the list by clicking "Manage Billing Accounts" from the drop-down menu. + + Screenshot of an individual Google Cloud Billing Account with the drop-down menu item "Manage Billing Accounts" highlighted. + +1. Check the box next to the Billing Account you wish to add Terra to, click "ADD MEMBER". + + Screenshot of Google Cloud Billing Accounts Overview. The checkbox next to the name of a Billing Account is checked and highlighted, and the "Add Member" button is highlighted. + +1. Enter `terra-billing@terra.bio` in the text box. In the drop-down menu, mouse over Billing, then choose "**Billing Account User**". + + Screenshot of the dialogue box for adding a member to a Google Cloud Billing Accounts. The text box is highlighted and has been filled in with "terra-billing@terra.bio".  In the drop-down menu labeled "Select a Role", the item "Billing" and the submenu item "Billing Account User" are highlighted. + +1. Click "SAVE". + + Screenshot of the dialogue box for adding a member to a Google Cloud Billing Accounts. The Save button is highlighted. +:::: + +## Add Members to Google Billing Account + +:::: {.borrowed_chunk} + +Anyone you wish to add to the Billing Account will need their own Google ID. + +To add a member to a Billing Project: + +1. Log in to the [Google Cloud Platform](https://console.cloud.google.com/) console using your Google ID. +1. Navigate to [Billing](https://console.cloud.google.com/billing) + + Screenshot of the Google Cloud Console drop-down menu, with "Billing" highlighted. + +1. You may be automatically directed to view a specific Billing Account. If you see information about a single account rather than a list of your Billing Accounts, you can get back to the list by clicking "Manage Billing Accounts" from the drop-down menu. + + Screenshot of an individual Google Cloud Billing Account with the drop-down menu item "Manage Billing Accounts" highlighted. + +1. Check the box next to the Billing Account you wish to add a member to, click "ADD MEMBER". + + Screenshot of Google Cloud Billing Accounts Overview. The checkbox next to the name of a Billing Account is checked and highlighted, and the "Add Member" button is highlighted. + +1. Enter their Google ID in the text box. In the drop-down menu, mouse over Billing, then choose the appropriate role. + + Screenshot of the dialogue box for adding a member to a Google Cloud Billing Accounts. In the drop-down menu labeled "Select a Role", the item "Billing" and the submenu item "Billing Account Viewer" are highlighted. + +1. Click "SAVE". + + Screenshot of the dialogue box for adding a member to a Google Cloud Billing Accounts. The Save button is highlighted. +:::: + +## Set Alerts for Google Billing + +:::: {.borrowed_chunk} + +1. Log in to the [Google Cloud Platform](https://console.cloud.google.com/) console using the Google ID associated with your Google Cloud projects. + +1. Open the dropdown menu on the top left and click on [Billing](https://console.cloud.google.com/billing). + + Screenshot of the Google Cloud Console drop-down menu, with "Billing" highlighted. + +1. You may be automatically directed to view a specific Billing Account. If you see information about a single account (and it’s not the one you’re interested in), you can get back to the list of all your Billing Accounts by clicking "Manage Billing Accounts" from the drop-down menu. + + Screenshot of an individual Google Cloud Billing Account with the drop-down menu item "Manage Billing Accounts" highlighted. + +1. Click on the name of the Billing Account you want to set alerts for. + + Screenshot of Google Cloud Billing Accounts Overview. A Billing Account name is highlighted. + +1. In the left-hand menu, click "Budgets & alerts". + + Screenshot of an individual Google Cloud Billing Account with the left-hand menu item "Budgets & alerts" highlighted. + +1. Click the "Create Budget" tab. + + Screenshot of the budgets and alerts page for a Google Cloud Billing Account. The "Create Budget" button highlighted. + +1. Enter a name for your budget, and then choose which projects you want to monitor. Then click "Next". + + Screenshot of the form for setting budget scope for a Google Cloud Billing Account. Three things are highlighted:  1) the box for entering a "Name" for the budget, 2) the dropdown menu labeled "Projects" for selecting which Billing Projects are part of the budget, and 3) the "Next" button. + +1. For Budget Type, select "Specified amount". Enter the total budget amount for the month (you will set alerts at different thresholds in the next step). Click "**Next**" (do not click "Finish"). + + Screenshot of the form for setting budget amount for a Google Cloud Billing Account.  The drop-down menu labeled "Budget type" is highlighted and "Specified amount" is selected.  Also highlighted are the text box labeled "Target amount" and the "Next" button. + +1. Enter the threshold amounts where you want to receive an alert. We recommend starting with 50% and 90%. You can set other alerts if you prefer. + + Screenshot of the form for setting budget actions for a Google Cloud Billing Account.  The boxes for entering "Percent of budget" or "Amount" are highlighted.  The drop-down menu labeled "Trigger on" is highlighted and "Actual" is selected. + +1. Check the box for "Email alerts to billing admins and users", then click "**Finish**". Now you (as the owner and admin), along with anyone you added with admin or user privileges (e.g. lab managers) will receive alerts when your lab members reach the specified spending thresholds. These emails will be sent to the Gmail accounts associated with the Billing Account. + + Screenshot of the form for setting budget alerts for a Google Cloud Billing Account.  The checkbox labeled "Email alerts to billing admins and users" is highligheted and checked.  The "Finish" button is highlighted. + +1. You can edit your budgets at any time by going to Billing > Budgets & alerts, and clicking on the name of the budget you want to edit. + + Screenshot of the Google Cloud Billing Account Budgets and alerts overview.  Four items are highlighted illustrating how to view and edit an existing budget: 1) The top-left "hamburger" button for extending the drop-down menu, 2) the drop-down menu item "Billing", 3) the submenu item "Budgets & alerts, 4) the name of a budget. +:::: + +## View Spend for Google Billing + +:::: {.borrowed_chunk} + +You can always check your current spend through the Google Billing console, but remember + +- There is a reporting delay (~1 day), so you cannot immediately see what an analysis cost +- Costs are reported at the level of Workspaces, so if there are multiple people using a Workspace, you will not be able to determine which of them was responsible for the charges. + +The Google Billing console displays information by Billing Account. To view spending: + +1. Log in to the [Google Cloud Platform](https://console.cloud.google.com/) console using the Google ID associated with your Google Cloud projects. + +1. Open the dropdown menu on the top left and click on [Billing](https://console.cloud.google.com/billing). + + Screenshot of the Google Cloud Console drop-down menu, with "Billing" highlighted. + +1. You may be automatically directed to view a specific Billing Account. If you see information about a single account (and it’s not the one you’re interested in), you can get back to the list of all your Billing Accounts by clicking "Manage Billing Accounts" from the drop-down menu. + + Screenshot of an individual Google Cloud Billing Account with the drop-down menu item "Manage Billing Accounts" highlighted. + +1. Click on the name of the Billing Account for the project you want to view. + + Screenshot of Google Cloud Billing Accounts Overview. A Billing Account name is highlighted. + +1. Look at the top of the **Overview** tab to see your month-to-date spending. + + Screenshot of a Google Cloud Billing Account Overview. + +1. Scroll further down the **Overview** tab to show your top projects. + + Screenshot of a Google Cloud Billing Account top projects. + +1. Click on the **Reports** tab to see more detailed information about each of your projects. This is probably the most useful tab for exploring costs of individual projects over time. + + Screenshot of a Google Cloud Billing Account Reports tab. + +1. Click on the **Cost table** tab to obtain a convenient table of spending per project. + + Screenshot of a Google Cloud Billing Account Cost table tab. +:::: + +## Create Terra Billing Project + +:::: {.borrowed_chunk} + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) and sign in with your Google account. If this is your first time logging in to Terra, you will need to accept the Terms of Service. + +1. In the drop-down menu on the left, navigate to "Billing". Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click "Billing". You can also navigate there directly with this link: https://anvil.terra.bio/#billing + + Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Billing". + +1. On the Billing page, click the "+ CREATE" button to create a new Billing Project. If prompted, select the Google account to use. If prompted, give Terra permission to manage Google Cloud Platform billing accounts. + + Screenshot of the Terra Billing Page.  The "plus" button next to "Billing Projects" is highlighted. + +1. Enter a **unique** name for your Terra Billing Project and select the appropriate Google Billing Account. The name of the Terra Billing Project must: + + Only contain lowercase letters, numbers and hyphens + + Start with a lowercase letter + + Not end with a hyphen + + Be between 6 and 30 characters + + Screenshot of the Terra Add Billing Project dialog box. + +1. Select the Google Billing Account to use. All activities conducted under your new Terra Billing Project will charge to this Google Billing Account. If prompted, give Terra permission to manage Google Cloud Platform billing accounts. + + Screenshot of the Terra Add Billing Project dialog box.  The dropdown menu labeled "Select billing account" is highlighted. + +1. Click "CREATE BILLING PROJECT". + + Screenshot of the Terra Add Billing Project dialog box.  The button labeled "CREATE BILLING PROJECT" is highlighted. + + +1. Your new Billing Project should now show up in the list of Billing Projects Owned by You. You can add additional members or can modify or deactivate the Billing Project at any time by clicking on its name in this list. + + Screenshot of the Terra Billing Projects menu.  The submenu "Owned by you" is highlighted and has been expanded, showing a list of Billing Projects below.  One of the Billing Project names is highlighted. + +The page doesn't always update as soon as the Billing Project is created. If it's been a couple of minutes and you don't see a change, try refreshing the page. +:::: + +## Add Member to Terra Billing Project + +:::: {.borrowed_chunk} + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) and sign in with your Google account. + +1. In the drop-down menu on the left, navigate to "Billing". Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click "Billing". You can also navigate there directly with this link: https://anvil.terra.bio/#billing + + Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Billing". + +1. Click “Owned by You” and find the Billing Project. If you do not see the Billing Project in this list, then you are not an Owner and do not have permission to add members. + + Screenshot of the Terra Billing Projects menu.  The submenu "Owned by you" is highlighted and has been expanded, showing a list of Billing Projects below. + +1. Click on the name of the Billing Project. + + Screenshot of the Terra Billing Projects menu.  The submenu has been expanded, and the name of one of the Billing Projects is highlighted. + +1. Click on the “Members” tab to view and manage members. Then click the “Add User” button. + + Screenshot of a Terra Billing Project management page.  The tab labeled "Members" is highlighed and has been selected, and the button labeled "Add User" is highlighted. + +1. Enter the email address of the user or group you’d like to add the the Billing Project. + - If adding an individual, make sure to enter the account that they use to access AnVIL. + - If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page. + + Screenshot of the dialog box for adding users to a Terra Billing Project.  The textbox labeled "User email" is highlighed and has been filled in. + +1. If this user or group will need to add and remove other users of the Billing Project, check the Owner box. Otherwise leave it unchecked. + - It’s often a good idea to have at least one other Owner of a Billing Project in order to avoid getting locked out, in case the original owner leaves or loses access to their account. + + Screenshot of the dialog box for adding users to a Terra Billing Project.  The checkbox labeled "Can manage users (Owner)" is highlighed. + +1. Click “ADD USER”. + + Screenshot of the dialog box for adding users to a Terra Billing Project.  The button labeled "ADD USER" is highlighed. + +1. You should now see the user or group listed in the Billing Project members, along with the appropriate role. They should now be able to use the Billing Project to fund work on AnVIL. + + Screenshot of a Terra Billing Project member management page.  A user email and role are highlighted. + +If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name. + +Screenshot of a Terra Billing Project member management page.  The teardrop button for one user is highlighted. +:::: + +## Disable Terra Billing Project + +By default this module includes a warning to make sure people understand they will lose access to their Workspace buckets. You can remove the warning from this module by setting `AnVIL_module_settings$warning` to `FALSE` before running `cow::borrow_chapter`: + +``` +AnVIL_module_settings <- list( + warning = FALSE +) +cow::borrow_chapter( + doc_path = "child/_child_terra_billing_project_disable.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +:::: {.borrowed_chunk} + +:::{.warning} +**Disabling a Billing Project makes Workspace contents inaccessible!** + +Disabling a Billing Project disables funding to all Workspaces funded by the Billing Project. You will be unable to compute in these Workspaces, and **you will lose access to any data stored in the Workspace buckets**. It is sometimes possible to restore access by reactivating billing, but Google makes no promises about whether or how long the data will be recoverable. + +**Make sure everyone with Workspaces funded by the Billing Project has saved anything they want to keep in another location** before disabling the Billing Project. +::: + +To disable a Terra Billing Project (i.e. remove the Google Billing Account that funds the Terra Billing Project): + + + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) and sign in with your Google account. + +1. In the drop-down menu on the left, navigate to "Billing". Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click "Billing". You can also navigate there directly with this link: https://anvil.terra.bio/#billing + + Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Billing". + +1. Click "Owned by You" and find the Billing Project. If you do not see the Billing Project in this list, then you are not an Owner and do not have permission to add members. + + Screenshot of the Terra Billing Projects menu.  The submenu "Owned by you" is highlighted and has been expanded, showing a list of Billing Projects below. + +1. Click on the name of the Billing Project. + + Screenshot of the Terra Billing Projects menu.  The submenu has been expanded, and the name of one of the Billing Projects is highlighted. + +1. If you don't see information about the Billing Account, click on “View billing account” to expand the Billing Account information. You may be prompted to enter your login information again. + + Screenshot of a Terra Billing Project management page.  The button labeled "view billing account" is highlighted. + +1. You should see the name of the Google Billing Account that is funding this Terra Billing Project. Click on the teardrop icon next to the name of the Billing Account. + + Screenshot of a Terra Billing Project management page.  The teardrop button next to the name of the Billing Account is highlighted. + +1. Click "Remove Billing Account". + + Screenshot of a Terra Billing Project management page.  The teardrop button next to the name of the Billing Account is highlighted. + +1. Click OK to confirm that you want to disable funding for this Billing Project. + + Screenshot of the dialoge box confirming removal of the Billing Account from a Terra Billing Project.  The button labeled "OK" is highlighted. + +1. The page should now indicate that there is no linked billing account. + + Screenshot of a Terra Billing Project management page.  The Billing Account information which says "No linked billing account" is highlighted. + +If necessary, you can restore funding to the Billing Project and associated Workspaces by clicking the teardrop icon and selecting "Change Billing Account". However, Google makes no promises about how long the Workspace contents will remain available after you disable funding, so it is best not to rely on them. + +Screenshot of a Terra Billing Project management page.  The teardrop button next to the Billing Account information is highlighted. +:::: diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g116f8d759be_0_149.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g116f8d759be_0_149.png new file mode 100644 index 0000000..d1d33cb Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g116f8d759be_0_149.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g116f8d759be_0_2.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g116f8d759be_0_2.png new file mode 100644 index 0000000..e8e74b7 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g116f8d759be_0_2.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_14.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_14.png new file mode 100644 index 0000000..d44edbe Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_14.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_29.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_29.png new file mode 100644 index 0000000..02587a7 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_29.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_36.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_36.png new file mode 100644 index 0000000..5f7611a Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_36.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_42.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_42.png new file mode 100644 index 0000000..e0d90e4 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_42.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_48.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_48.png new file mode 100644 index 0000000..2ace402 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_48.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_55.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_55.png new file mode 100644 index 0000000..cc3b8b3 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_55.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_62.png b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_62.png new file mode 100644 index 0000000..0a9fb14 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/10-YvYQqI2y32ErihJJMbyLAL4nPIkPA2MLk_6Ee7fXw_g1edc2edcaf8_1_62.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1025.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1025.png new file mode 100644 index 0000000..0ccab48 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1025.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1169.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1169.png new file mode 100644 index 0000000..e907ba0 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1169.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1314.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1314.png new file mode 100644 index 0000000..f68bf8e Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_1314.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_144.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_144.png new file mode 100644 index 0000000..93aaf15 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_144.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_150.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_150.png new file mode 100644 index 0000000..4fe1721 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_150.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_295.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_295.png new file mode 100644 index 0000000..50e89b0 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_295.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_442.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_442.png new file mode 100644 index 0000000..a73c97e Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_442.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_587.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_587.png new file mode 100644 index 0000000..8b7e4da Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_587.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_732.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_732.png new file mode 100644 index 0000000..70b3ad9 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_732.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_878.png b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_878.png new file mode 100644 index 0000000..0b82e9a Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1GBYTx25VzBFh7kI_elgMC0fmOMm4YhcfW8wIJ1EkmKY_g115e284bdc2_0_878.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_0.png b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_0.png new file mode 100644 index 0000000..6e9d04d Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_0.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_143.png b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_143.png new file mode 100644 index 0000000..17229a7 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_143.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_433.png b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_433.png new file mode 100644 index 0000000..6eac875 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_433.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_577.png b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_577.png new file mode 100644 index 0000000..bcbd8ae Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g1149729109c_0_577.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_144.png b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_144.png new file mode 100644 index 0000000..93aaf15 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_144.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_150.png b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_150.png new file mode 100644 index 0000000..4fe1721 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_150.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_295.png b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_295.png new file mode 100644 index 0000000..50e89b0 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1Ofs1As7XZWmxnaBOZvNYzAiuuaYgn1ce700eHyCNg2Y_g115e284bdc2_0_295.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g115e284bdc2_0_144.png b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g115e284bdc2_0_144.png new file mode 100644 index 0000000..93aaf15 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g115e284bdc2_0_144.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g115e284bdc2_0_295.png b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g115e284bdc2_0_295.png new file mode 100644 index 0000000..50e89b0 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g115e284bdc2_0_295.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2c647a7_0_151.png b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2c647a7_0_151.png new file mode 100644 index 0000000..2c0564b Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2c647a7_0_151.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2d0fe67_0_0.png b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2d0fe67_0_0.png new file mode 100644 index 0000000..6c3ed68 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2d0fe67_0_0.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2d0fe67_0_146.png b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2d0fe67_0_146.png new file mode 100644 index 0000000..bbd4d83 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1OqSVH5Y4v97-OKMnEDGGuhKBJwc9fyXc-Q1-ivbeZmA_g116e2d0fe67_0_146.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_149.png b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_149.png new file mode 100644 index 0000000..ab3cdfa Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_149.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_2.png b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_2.png new file mode 100644 index 0000000..e8e74b7 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_2.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_293.png b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_293.png new file mode 100644 index 0000000..2f84a39 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_293.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_438.png b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_438.png new file mode 100644 index 0000000..291dfb6 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g116f8d759be_0_438.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g2105956e909_0_0.png b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g2105956e909_0_0.png new file mode 100644 index 0000000..740a4dd Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g2105956e909_0_0.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g2105956e909_0_16.png b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g2105956e909_0_16.png new file mode 100644 index 0000000..4f9b859 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1POwxqv4p6AfPHJlN9VNq0TaT44fA2RAFSpIERIMHdWU_g2105956e909_0_16.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g116f8d759be_0_149.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g116f8d759be_0_149.png new file mode 100644 index 0000000..ec7788a Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g116f8d759be_0_149.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g116f8d759be_0_2.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g116f8d759be_0_2.png new file mode 100644 index 0000000..e8e74b7 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g116f8d759be_0_2.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g1edc2edcaf8_1_29.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g1edc2edcaf8_1_29.png new file mode 100644 index 0000000..fb4f005 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g1edc2edcaf8_1_29.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_0.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_0.png new file mode 100644 index 0000000..c57fc23 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_0.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_12.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_12.png new file mode 100644 index 0000000..c5e7fc9 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_12.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_18.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_18.png new file mode 100644 index 0000000..52c8e72 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_18.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_24.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_24.png new file mode 100644 index 0000000..0c11511 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_24.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_38.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_38.png new file mode 100644 index 0000000..75ad4c8 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_38.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_5.png b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_5.png new file mode 100644 index 0000000..224e415 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1ib--pXZdu-n-c3b28n73SILA0SrIF5WhdMMaae3DTEI_g21148e49334_0_5.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g115e284bdc2_0_144.png b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g115e284bdc2_0_144.png new file mode 100644 index 0000000..93aaf15 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g115e284bdc2_0_144.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g115e284bdc2_0_295.png b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g115e284bdc2_0_295.png new file mode 100644 index 0000000..50e89b0 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g115e284bdc2_0_295.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_151.png b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_151.png new file mode 100644 index 0000000..2c0564b Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_151.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_296.png b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_296.png new file mode 100644 index 0000000..af745aa Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_296.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_441.png b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_441.png new file mode 100644 index 0000000..3e59a68 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1j1wRbaDyHJJhZQcWcP4xeYgIoaIBRIF3LIZpiDPBumw_g116e2c647a7_0_441.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_0.png b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_0.png new file mode 100644 index 0000000..a0b9d58 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_0.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_146.png b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_146.png new file mode 100644 index 0000000..4df03de Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_146.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_293.png b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_293.png new file mode 100644 index 0000000..93aaf15 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_293.png differ diff --git a/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_437.png b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_437.png new file mode 100644 index 0000000..4fe1721 Binary files /dev/null and b/docs/no_toc/05-billing_modules_files/figure-html/1tGpzZaQxoTAcxs_nyyNL2FOqypjEofEnMVpBtZiAw4A_g116ca06e27d_0_437.png differ diff --git a/docs/no_toc/06-onboarding_modules.md b/docs/no_toc/06-onboarding_modules.md new file mode 100644 index 0000000..18bf372 --- /dev/null +++ b/docs/no_toc/06-onboarding_modules.md @@ -0,0 +1,13 @@ +# Onboarding + +Joining a team on AnVIL. + +
+ +## Create Google Account + + +If you do not already have a Google account that you would like to use for accessing Terra, [create one now](https://accounts.google.com/SignUp). + +If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow [these instructions](https://support.terra.bio/hc/en-us/articles/360029186611). + diff --git a/docs/no_toc/07-using_platforms_modules.md b/docs/no_toc/07-using_platforms_modules.md new file mode 100644 index 0000000..2dad804 --- /dev/null +++ b/docs/no_toc/07-using_platforms_modules.md @@ -0,0 +1,342 @@ + + +# Using programming platforms on AnVIL + +Modules about opening, touring, and closing AnVIL platforms + +
+ +## Video overview on using Jupyter Notebooks + + +Here is a video tutorial that describes the basics of using Jupyter Notebook on AnVIL. + + + +### Objectives + +- Start compute for your Jupyter environment +- Create notebook to perform analysis +- Stop compute to minimize expenses + +### Slides + +The slides for this tutorial are are located [here](https://docs.google.com/presentation/d/1GYUP874Qd7K3S0Ls6iWY_M4jywpRb53qw0f78OBCFwk). + +## Launching Jupyter + +:::: {.borrowed_chunk} + +:::{.warning} +AnVIL is very versatile and can scale up to use very powerful cloud computers. It's very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down. +::: + +Note that, in order to use Jupyter, you must have access to a Terra Workspace with permission to compute (i.e. you must be a "Writer" or "Owner" of the Workspace). + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the name of your Workspace. You should be routed to a link that looks like: `https://anvil.terra.bio/#workspaces//`. + +1. Click on the cloud icon on the far right to access your Cloud Environment options. + + Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted. + +1. In the dialogue box, click the "Settings" button under Jupyter. + + Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted. + +1. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. + + Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted. + + + +1. Configure any settings you need for your cloud environment. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Scroll down and click the "CREATE" button when you are satisfied with your setup. + + Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted. + + + + + + + + + + + + + +1. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. + + Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating". + +1. When your environment is ready, its status will change to "Running". Click on the "ANALYSES" tab to create or open a Jupyter Notebook. + + Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted + +1. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the "START" button to create a new Notebook. + + Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted. + + + +1. Clicking on a Notebook name will open a static preview of the Notebook. To edit and run the Notebook, click the "OPEN" button. + + Screenshot of a preview of a Jupyter Notebook in a Terra Workspace.  The "OPEN" button is highlighted. +:::: + +## Video overview on using Galaxy + + +Here is a video tutorial that describes the basics of using Galaxy on AnVIL. + + + +### Objectives + +- Start compute for your Galaxy on AnVIL +- Run tool to quality control sequencing reads +- Stop compute to minimize expenses + +### Slides + +The slides for this tutorial are are located [here](https://docs.google.com/presentation/d/1yYCg4cPVBMMDghT17B4XzROieqyMH99Ex9nMm_Scm9Q). + +## Starting Galaxy + +:::: {.borrowed_chunk} + +Note that, in order to use Galaxy, you must have access to a Terra Workspace with permission to compute (i.e. you must be a "Writer" or "Owner" of the Workspace). + +Open your Workspace, and click on the “NOTEBOOKS” tab. Next, click on “Create a Cloud Environment for Galaxy”. You should see a popup window on the right side of the screen. Click on “NEXT” and “CREATE” to keep all settings as-is. This will take 8-10 minutes. When it is done, click “LAUNCH GALAXY”. + +Screenshot of the Workspace Notebooks tab. The notebook tab name and the plus button that starts a cloud environment for Galaxy have been highlighted, +:::: + +## Navigating Galaxy + +:::: {.borrowed_chunk} + +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. + +Screenshot of the Galaxy landing page. The Tools and History headings have been highlighted. + +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 + +:::: {.borrowed_chunk} + +Once you are done with your activity, you’ll need to shut down your Galaxy cloud environment. This frees up the cloud resources for others and minimizes computing cost. The following steps will delete your work, so make sure you are completely finished at this point. Otherwise, you will have to repeat your work from the previous steps. + +Return to AnVIL, and find the Galaxy logo that shows your cloud environment is running. Click on this logo: + +Screenshot of the Workspace menu. The currently running Galaxy cloud environment logo on the top right of the page is highlighted. + +Next, click on “DELETE ENVIRONMENT OPTIONS”: + +Screenshot of the cloud environment pop out menu. The “DELETE ENVIRONMENT OPTIONS” link is highlighted. + +Finally, select “Delete everything, including persistent disk”. Make sure you are done with the activity and then click “DELETE”. + +Screenshot of the cloud environment pop out menu. The “Delete everything, including persistent disk” radio button has been checked and is highlighted. The “DELETE” button is highlighted. +:::: + +## Video overview on using RStudio + + +Here is a video tutorial that describes the basics of using RStudio on AnVIL. + + + +### Objectives + +- Start compute for your RStudio environment +- Tour RStudio on AnVIL +- Stop compute to minimize expenses + +### Slides + +The slides for this tutorial are are located [here](https://docs.google.com/presentation/d/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw). + +## Launching RStudio + +:::: {.borrowed_chunk} + +:::{.warning} +AnVIL is very versatile and can scale up to use very powerful cloud computers. It's very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down. +::: + +Note that, in order to use RStudio, you must have access to a Terra Workspace with permission to compute (i.e. you must be a "Writer" or "Owner" of the Workspace). + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the name of your Workspace. You should be routed to a link that looks like: `https://anvil.terra.bio/#workspaces//`. + +1. Click on the cloud icon on the far right to access your Cloud Environment options. + + Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted. + +1. In the dialogue box, click the "Settings" button under RStudio. + + Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted. + +1. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. + + Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted. + + + +1. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Click the “Create” button. + + Screenshot of the RStudio Cloud Environment dialogue box. The "CREATE" button is highlighted. + + + +1. Otherwise, click “CUSTOMIZE” to modify the environment for your needs. + + Screenshot of the RStudio Cloud Environment dialogue box. The "CUSTOMIZE" button is highlighted. + + + + + + + + + + + +1. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. + + Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating". + +1. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. + + Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running". + +1. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. + + Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted. + +1. You should now see the RStudio interface with information about the version printed to the console. + + Screenshot of the RStudio environment interface. +:::: + +## Touring RStudio + +:::: {.borrowed_chunk} + +Next, we will be using RStudio and the package `Glimma` to create interactive plots. See [this vignette](https://bioconductor.org/packages/release/bioc/vignettes/Glimma/inst/doc/limma_edger.html) for more information. + +1. The Bioconductor team has created a very useful package to programmatically interact with Terra and Google Cloud. Install the `AnVIL` package. It will make some steps easier as we go along. + + + + Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted. + +1. You can now quickly install precompiled binaries using the AnVIL package’s `install()` function. We will use it to install the `Glimma` package and the `airway` package. The `airway` package contains a `SummarizedExperiment` data class. This data describes an RNA-Seq experiment on four human airway smooth muscle cell lines treated with dexamethasone. + +{Note: for some of the packages, you will have to install packaged from the CRAN repository, using the install.packages() function. The examples will show you which install method to use.} + + + + Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted. + +1. Load the example data. + + + + Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted. + +1. The multidimensional scaling (MDS) plot is frequently used to explore differences in samples. When this data is MDS transformed, the first two dimensions explain the greatest variance between samples, and the amount of variance decreases monotonically with increasing dimension. The following code will launch a new window where you can interact with the MDS plot. + + + + Screenshot of the Glimma popout showing the data in an MDS plot. All data points are blue. + +1. Change the `colour_by` setting to "groups" so you can easily distinguish between groups. In this data, the "group" is the treatment. + + Screenshot of the Glimma popout showing the data in an MDS plot. Data points are colored blue and orange by group. The colour by dropdown menu on the interactive plot is hightlighted. + +1. You can download the interactive html file by clicking on "Save As". + + Screenshot of the Glimma popout showing the data in an MDS plot. The Save As menu is highlighted. + +1. You can also download plots and other files created directly in RStudio. To download the following plot, click on "Export" and save in your preferred format to the default directory. This saves the file in your cloud environment. + + + + Screenshot of the RStudio interface. A plot has been created. The Export menu has been highlighted. + +1. You should see the plot in the "Files" pane. + + Screenshot of the RStudio interface. A plot has been created. The saved pdf file is now visible under the "Files" pane. + +1. Select this file and click "More" > "Export" + + Screenshot of the RStudio interface. A plot has been created. The saved pdf file is now visible under the "Files" pane. The "More" and "Export" menus have been highlighted. + +1. Select "Download" to save the file to your local machine. + + Screenshot of the RStudio interface. The popup to download the selected file has been highlighted, +:::: + +## Pausing RStudio + +:::: {.borrowed_chunk} + +1. The right-hand side icon reminds you that you are accruing cloud computing costs. If you don’t see this icon, you may need to scroll to the right. + + Screenshot of the RStudio interface. The icon on the right showing that the cloud environment is running is highlighted. + +1. You should minimize charges when you are not performing an analysis. You can do this by clicking on the RStudio icon and selecting “Pause”. This will release the CPU and memory resources for other people to use. Note that your work will be saved in the environment and continue to accrue a very small cost. This work will be lost if the cloud environment gets deleted. If there is anything you would like to save permanently, it's a good idea to copy it from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs. + + Screenshot of the RStudio menu. The pause button which stops the cloud environment is highlighted. + +:::{.notice} +You can also pause your cloud environment(s) at https://anvil.terra.bio/#clusters. +::: +:::: + +## Deleting RStudio + +:::: {.borrowed_chunk} + +1. Pausing your cloud environment only temporarily stops your work. When you are ready to delete the cloud environment, click on the RStudio icon on the right-hand side and select “Settings”. If you don’t see this icon, you may need to scroll to the right. + + Screenshot of the Workspace page. The RStudio icon associated with the cloud environment is highlighted. The Settings button is also highlighted + +1. Click on “Delete Environment”. + + Screenshot of the cloud environment popout. "Delete environment" is highlighted. + +1. If you are certain that you do not need the data and configuration on your disk, you should select "Delete everything, including persistent disk". If there is anything you would like to save, open the compute environment and copy the file(s) from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs. + + Screenshot of the cloud environment popout. "Delete everything, including persistent disk" is highlighted. + +1. Select "DELETE". + + Screenshot of the cloud environment popout. "Delete" is highlighted. + +:::{.notice} +You can also delete your cloud environment(s) and disk storage at https://anvil.terra.bio/#clusters. +::: +:::: diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g117989bd49c_0_150.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_18.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_18.png new file mode 100644 index 0000000..d1bfcd4 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_18.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_22.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_22.png new file mode 100644 index 0000000..6576f15 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_22.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_41.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_41.png new file mode 100644 index 0000000..105c555 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_41.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_0.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_0.png new file mode 100644 index 0000000..9bc2b1c Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_0.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_60.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_60.png new file mode 100644 index 0000000..024d75f Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_60.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_66.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_66.png new file mode 100644 index 0000000..fba5445 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_66.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_73.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_73.png new file mode 100644 index 0000000..bba5af9 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_73.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_82.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_82.png new file mode 100644 index 0000000..9b22ca3 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_82.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_ged15532ded_0_788.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_ged15532ded_0_788.png new file mode 100644 index 0000000..d4ba9ab Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_ged15532ded_0_788.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_ged15532ded_0_816.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_ged15532ded_0_816.png new file mode 100644 index 0000000..578cbfa Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_ged15532ded_0_816.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_134.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_134.png new file mode 100644 index 0000000..2de091a Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_134.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_140.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_140.png new file mode 100644 index 0000000..afa8c75 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_140.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_146.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_146.png new file mode 100644 index 0000000..6f17734 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/182AOzMaiyrreinnsRX2VhH7YsVgvAp4xtIB_7Mzmk6I_gf243efded1_0_146.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_49.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_49.png new file mode 100644 index 0000000..9945f1c Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_49.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_56.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_56.png new file mode 100644 index 0000000..bd86655 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_56.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_70.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_70.png new file mode 100644 index 0000000..c1ff809 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_70.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_77.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_77.png new file mode 100644 index 0000000..0a6984c Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_77.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_84.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_84.png new file mode 100644 index 0000000..3e25b32 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_84.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_91.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_91.png new file mode 100644 index 0000000..966efe4 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_91.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_0.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_0.png new file mode 100644 index 0000000..235703e Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_0.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_12.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_12.png new file mode 100644 index 0000000..c8b5b12 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_12.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_19.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_19.png new file mode 100644 index 0000000..26ce127 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6da7f_0_19.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6db6a_0_0.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6db6a_0_0.png new file mode 100644 index 0000000..3a55f7c Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6db6a_0_0.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6db6a_0_8.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6db6a_0_8.png new file mode 100644 index 0000000..5ad8a9d Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g1204ed6db6a_0_8.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g117989bd49c_0_150.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_103.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_103.png new file mode 100644 index 0000000..87c8bdc Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_103.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_18.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_18.png new file mode 100644 index 0000000..8536607 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_18.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_22.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_22.png new file mode 100644 index 0000000..6576f15 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_22.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_35.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_35.png new file mode 100644 index 0000000..67b5be4 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_35.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_41.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_41.png new file mode 100644 index 0000000..0edae00 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_41.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_48.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_48.png new file mode 100644 index 0000000..647e448 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_48.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_91.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_91.png new file mode 100644 index 0000000..62e1365 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_91.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_95.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_95.png new file mode 100644 index 0000000..325e728 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_95.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_99.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_99.png new file mode 100644 index 0000000..5cd5880 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_99.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_20.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_20.png new file mode 100644 index 0000000..f6414a7 Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_20.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_41.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_41.png new file mode 100644 index 0000000..9cd992b Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_41.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_46.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_46.png new file mode 100644 index 0000000..16adb9b Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_46.png differ diff --git a/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_51.png b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_51.png new file mode 100644 index 0000000..9fa593a Binary files /dev/null and b/docs/no_toc/07-using_platforms_modules_files/figure-html/1eypYLLqD11-NwHLs4adGpcuSB07dYEJfAaALSMvgzqw_ge1182913a6_0_51.png differ diff --git a/docs/no_toc/08-student_modules.md b/docs/no_toc/08-student_modules.md new file mode 100644 index 0000000..57f9c91 --- /dev/null +++ b/docs/no_toc/08-student_modules.md @@ -0,0 +1,461 @@ + + +# Student instructions + +Modules aimed at students in a course or workshop. + +
+ +## Student Account Setup + +:::: {.borrowed_chunk} + +In order to run your analyses, you will use the [AnVIL cloud computing platform](https://anvilproject.org/), so that you do not need to install everything on your own computer. The AnVIL (Analysis Visualization and Informatics Lab-space) platform is specially designed for analyzing biological data, and is used by scientists doing all sorts of biological research. + +:::{.notice} +**AnVIL in a nutshell** + +- Behind the scenes, AnVIL relies on Google Cloud Platform to provide computing infrastructure. Basically, AnVIL lets you "rent" computers from Google (remotely). Whenever you run an analyses on AnVIL, it actually runs on one of Google's computers, and AnVIL lets you see the results in your browser. +- AnVIL uses [Terra](https://anvil.terra.bio/) to provide many computational tools useful for biological data analysis, such as [RStudio](https://www.rstudio.com/products/rstudio/), [Galaxy](https://usegalaxy.org/), and [Jupyter Notebooks](https://jupyter.org/). Terra takes care of installing these tools on Google's computers, so that you can just start using them. +::: + +### Create Google Account + +First, you will need to set up a (free) Google account. + +If you do not already have a Google account that you would like to use for accessing AnVIL, [create one now](https://accounts.google.com/SignUp). + +- Alternatively, if you would like to create a Google account that is associated with an existing non-Gmail email address, you can follow [these instructions](https://support.terra.bio/hc/en-us/articles/360029186611). + +### Log In to Terra + +Next, make sure you can log in to Terra -- you will use Terra to perform computations on AnVIL. + +You can access Terra by going to [`anvil.terra.bio`](https://anvil.terra.bio/), or by clicking the link on the [AnVIL home page](https://anvilproject.org/). + + +Screenshot of the AnVIL home page. The section descring Terra is highlighted. + +Open Terra, and you should be prompted to sign in with your Google account. + +### Share Username + +Finally, make sure your instructor has your Google account username (e.g. `myname@gmail.com`), so they can give you access to everything you need. + +- Make sure there are no typos! +- If you have multiple Google accounts, make sure you give them the username that you will be using to access AnVIL + +:::{.warning} +It is *very important* that you share the Google account you will be using to access AnVIL with with your instructor! Otherwise, the instructor cannot add you to Billing Projects or Workspaces, and you will be unable to proceed with your assignments. +::: +:::: + +## 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} + +:::{.warning} +This **will not work** until your instructor has given you permission to spend money to "rent" the computers that will power your analyses (by adding you to a "Billing Project"). +::: + +On AnVIL, you access files and computers through **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. This will give you access to + +- the files you will need (data, code) +- the computing environment you will use + +:::{.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. +::: + +To clone an AnVIL Workspace: + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. You are automatically directed to the "MY WORKSPACES" tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab. + + Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected.  The "MY WORKSPACES" tab and the column showing permission level are highlighted. + +1. Locate the Workspace **specified by your instructor**. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace **specified by your instructor**.) + a. If it has been shared with you ahead of time, it will appear in "MY WORKSPACES". + + Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected. The "MY WORKSPACES" tab and a Workspace name are highlighted. + b. Otherwise, select the "PUBLIC" tab. In the top search bar, type the Workspace name **specified by your instructor**. + + Screenshot of Terra Workspaces page with the "PUBLIC" tab selected. The "PUBLIC" tab and search box are highlighted.  The the user has typed in the term "sars". A Workspace related to SARS appears in the results. + c. You can also go directly to the Workspace by clicking this link: ask your instructor. + +1. Clone the workspace by clicking the teardrop button (![teardrop button](https://raw.githubusercontent.com/jhudsl/AnVIL_Template/main/child/child_assets/teardrop_button.png){width=25px}). Select "Clone". Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace. + + Screenshot showing the teardrop button. The button has been clicked revealing the "clone" option. The Clone option and the teardrop button are highlighted. + Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted. + +1. You will see a popup box appear, asking you to configure your Workspace + a. Give your Workspace clone a name by adding an underscore ("_") and your name. For example, \"ExampleWorkspace_Firstname_Lastname\". + a. Select the Billing Project provided by your instructor. + a. Leave the bottom two boxes as-is. + a. Click “CLONE WORKSPACE”. + + Screenshot showing the "clone a workspace" popout. The Workspace name, Billing Project, and Clone Workspace button have been filled in and highlighted. + +1. The new Workspace should now show up under "MY WORKSPACES". You now have your own copy of the Workspace to work in. +:::: + +### With variables set: + +:::: {.borrowed_chunk} + +:::{.warning} +This **will not work** until your instructor has given you permission to spend money to "rent" the computers that will power your analyses (by adding you to a "Billing Project"). +::: + +On AnVIL, you access files and computers through **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. This will give you access to + +- the files you will need (data, code) +- the computing environment you will use + +:::{.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. +::: + +To clone an AnVIL Workspace: + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. You are automatically directed to the "MY WORKSPACES" tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab. + + Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected.  The "MY WORKSPACES" tab and the column showing permission level are highlighted. + +1. Locate the Workspace **Example_Workspace**. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace **Example_Workspace**.) + a. If it has been shared with you ahead of time, it will appear in "MY WORKSPACES". + + Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected. The "MY WORKSPACES" tab and a Workspace name are highlighted. + b. Otherwise, select the "PUBLIC" tab. In the top search bar, type the Workspace name **Example_Workspace**. + + Screenshot of Terra Workspaces page with the "PUBLIC" tab selected. The "PUBLIC" tab and search box are highlighted.  The the user has typed in the term "sars". A Workspace related to SARS appears in the results. + c. You can also go directly to the Workspace by clicking this link: http://example.com/. + +1. Clone the workspace by clicking the teardrop button (![teardrop button](https://raw.githubusercontent.com/jhudsl/AnVIL_Template/main/child/child_assets/teardrop_button.png){width=25px}). Select "Clone". Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace. + + Screenshot showing the teardrop button. The button has been clicked revealing the "clone" option. The Clone option and the teardrop button are highlighted. + Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted. + +1. You will see a popup box appear, asking you to configure your Workspace + a. Give your Workspace clone a name by adding an underscore ("_") and your name. For example, \"Example_Workspace_Firstname_Lastname\". + a. Select the Billing Project Example Billing Project. + a. Leave the bottom two boxes as-is. + a. Click “CLONE WORKSPACE”. + + Screenshot showing the "clone a workspace" popout. The Workspace name, Billing Project, and Clone Workspace button have been filled in and highlighted. + +1. The new Workspace should now show up under "MY WORKSPACES". You now have your own copy of the Workspace to work in. +:::: + +## 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} + +:::{.warning} +AnVIL is very versatile and can scale up to use very powerful cloud computers. It's very important that you select the cloud computing environment described here to avoid runaway costs. +::: + + + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the name of your Workspace. You should be routed to a link that looks like: `https://anvil.terra.bio/#workspaces//`. + +1. Click on the cloud icon on the far right to access your Cloud Environment options. + + Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted. + +1. In the dialogue box, click the "Settings" button under Jupyter. + + Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted. + +1. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. + + Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted. + + + + + + + + + + + + + + + +1. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the "CREATE" button. + + Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted. + +1. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. + + Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating". + +1. When your environment is ready, its status will change to "Running". Click on the "ANALYSES" tab to create or open a Jupyter Notebook. + + Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted + +1. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the "START" button to create a new Notebook. + + Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted. + + +:::: + +### Using custom Jupyter environment: + +:::: {.borrowed_chunk} + +:::{.warning} +AnVIL is very versatile and can scale up to use very powerful cloud computers. It's very important that you select the cloud computing environment described here to avoid runaway costs. +::: + + + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the name of your Workspace. You should be routed to a link that looks like: `https://anvil.terra.bio/#workspaces//`. + +1. Click on the cloud icon on the far right to access your Cloud Environment options. + + Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted. + +1. In the dialogue box, click the "Settings" button under Jupyter. + + Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted. + +1. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. + + Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted. + + + + + +1. Under "Application configuration" you will see a dropdown menu. Choose "Custom Environment". Then copy the following link into "Container image" textbox: + + ` example docker ` + + Screenshot of the Jupyter Cloud Environment "Application configuration" dropdown. The option "Custom Environment" is highlighted. + + Screenshot of the Jupyter Cloud Environment dialog box. "Custom Environment" has been selected in the "Application configuration" dropdown menu, and the "Container image" textbox is highlighted. + + + +1. Under "Startup script" you will see textbox. Copy the following link into the box: + + ` example startup script ` + + Screenshot of the Jupyter Cloud Environment customization dialogue box. The textbox labeled "Startup script" is highlighted. + + + +1. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the "CREATE" button. + + Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted. + +1. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. + + Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating". + +1. When your environment is ready, its status will change to "Running". Click on the "ANALYSES" tab to create or open a Jupyter Notebook. + + Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted + +1. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the "START" button to create a new Notebook. + + Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted. + + +:::: + +## 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} + +:::{.warning} +AnVIL is very versatile and can scale up to use very powerful cloud computers. It's very important that you select the cloud computing environment described here to avoid runaway costs. +::: + + + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the name of your Workspace. You should be routed to a link that looks like: `https://anvil.terra.bio/#workspaces//`. + +1. Click on the cloud icon on the far right to access your Cloud Environment options. + + Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted. + +1. In the dialogue box, click the "Settings" button under RStudio. + + Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted. + +1. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. + + Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted. + + + +1. Click the "CREATE" button. + + Screenshot of the RStudio Cloud Environment dialogue box. The "CREATE" button is highlighted. + + + + + + + + + + + + + +1. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. + + Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating". + +1. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. + + Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running". + +1. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. + + Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted. + +1. You should now see the RStudio interface with information about the version printed to the console. + + Screenshot of the RStudio environment interface. +:::: + +### Using custom RStudio environment: + +:::: {.borrowed_chunk} + +:::{.warning} +AnVIL is very versatile and can scale up to use very powerful cloud computers. It's very important that you select the cloud computing environment described here to avoid runaway costs. +::: + + + +1. Open Terra - use a web browser to go to [`anvil.terra.bio`](https://anvil.terra.bio/) + +1. In the drop-down menu on the left, navigate to "Workspaces". Click the triple bar in the top left corner to access the menu. Click "Workspaces". + + Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted. + +1. Click on the name of your Workspace. You should be routed to a link that looks like: `https://anvil.terra.bio/#workspaces//`. + +1. Click on the cloud icon on the far right to access your Cloud Environment options. + + Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted. + +1. In the dialogue box, click the "Settings" button under RStudio. + + Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted. + +1. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. + + Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted. + + + + + +1. Click "CUSTOMIZE" to adjust the settings for your environment. + + Screenshot of the RStudio Cloud Environment dialogue box. The "CUSTOMIZE" button is highlighted. + + + +1. Under "Application configuration" you will see a dropdown menu. You can also enter text here. Copy the following link into the box: + + ` example docker ` + + Screenshot of the RStudio Cloud Environment customization dialogue box. The dropdown menu labeled "Application configuration" is highlighted. + + + +1. Under "Startup script" you will see textbox. Copy the following link into the box: + + ` example startup script ` + + Screenshot of the RStudio Cloud Environment customization dialogue box. The textbox labeled "Startup script" is highlighted. + + + +1. Leave everything else as-is. To create your RStudio Cloud Environment, click on the “CREATE” button. + + Screenshot of the RStudio Cloud Environment customization dialogue box. The "CREATE" button is highlighted. + +1. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. + + Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating". + +1. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. + + Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running". + +1. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. + + Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted. + +1. You should now see the RStudio interface with information about the version printed to the console. + + Screenshot of the RStudio environment interface. +:::: diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g117989bd49c_0_150.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_18.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_18.png new file mode 100644 index 0000000..d1bfcd4 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_18.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_22.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_22.png new file mode 100644 index 0000000..6576f15 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_22.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_41.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_41.png new file mode 100644 index 0000000..105c555 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g14ea2db115d_0_41.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_0.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_0.png new file mode 100644 index 0000000..9bc2b1c Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_0.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_14.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_14.png new file mode 100644 index 0000000..594b1b8 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_14.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_48.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_48.png new file mode 100644 index 0000000..6caf5c8 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_48.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_60.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_60.png new file mode 100644 index 0000000..024d75f Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_60.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_66.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_66.png new file mode 100644 index 0000000..fba5445 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_66.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_73.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_73.png new file mode 100644 index 0000000..bba5af9 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_73.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_8.png b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_8.png new file mode 100644 index 0000000..2fd4c59 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-IU5l40UxmpoBqFimSUmT1PNEUij2UnXMslOsiG5ncE_g25442045568_0_8.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1-PVlDAzmDncjcCHIy9ZyR3ROyPpfjrg46LhEQopDc1Q_g22c9add987a_0_5.png b/docs/no_toc/08-student_modules_files/figure-html/1-PVlDAzmDncjcCHIy9ZyR3ROyPpfjrg46LhEQopDc1Q_g22c9add987a_0_5.png new file mode 100644 index 0000000..c83553d Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1-PVlDAzmDncjcCHIy9ZyR3ROyPpfjrg46LhEQopDc1Q_g22c9add987a_0_5.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g117989bd49c_0_150.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_103.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_103.png new file mode 100644 index 0000000..87c8bdc Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_103.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_18.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_18.png new file mode 100644 index 0000000..8536607 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_18.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_22.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_22.png new file mode 100644 index 0000000..6576f15 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_22.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_35.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_35.png new file mode 100644 index 0000000..67b5be4 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_35.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_41.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_41.png new file mode 100644 index 0000000..0edae00 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_41.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_48.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_48.png new file mode 100644 index 0000000..647e448 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_48.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_65.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_65.png new file mode 100644 index 0000000..ebb5d22 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_65.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_78.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_78.png new file mode 100644 index 0000000..c4bbc4c Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_78.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_84.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_84.png new file mode 100644 index 0000000..c8c4995 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_84.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_91.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_91.png new file mode 100644 index 0000000..62e1365 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_91.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_95.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_95.png new file mode 100644 index 0000000..325e728 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_95.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_99.png b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_99.png new file mode 100644 index 0000000..5cd5880 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a35Mb8f0M-bQkBcHa1cyQc6YxXoBLtExCz96nv08vkA_g14ea2db115d_0_99.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g117989bd49c_0_150.png b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g117989bd49c_0_150.png new file mode 100644 index 0000000..1e5e957 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g117989bd49c_0_150.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g117abafa453_0_577.png b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g117abafa453_0_577.png new file mode 100644 index 0000000..0c6a727 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g117abafa453_0_577.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_303.png b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_303.png new file mode 100644 index 0000000..7662ed6 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_303.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_327.png b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_327.png new file mode 100644 index 0000000..19a3695 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_327.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_337.png b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_337.png new file mode 100644 index 0000000..aad7258 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_337.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_344.png b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_344.png new file mode 100644 index 0000000..22f467c Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_344.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_352.png b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_352.png new file mode 100644 index 0000000..1a0ba69 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1a5Da6qX9BG7Q_6XAz7MvlDyWTvssm2hWwuo1WFJXb_0_g17144dbacd0_0_352.png differ diff --git a/docs/no_toc/08-student_modules_files/figure-html/1tyt8ifxD3y7QW3nN27jh02aPrBvNEo1GN_u2Ne_UngM_gde7783227e_0_31.png b/docs/no_toc/08-student_modules_files/figure-html/1tyt8ifxD3y7QW3nN27jh02aPrBvNEo1GN_u2Ne_UngM_gde7783227e_0_31.png new file mode 100644 index 0000000..665d606 Binary files /dev/null and b/docs/no_toc/08-student_modules_files/figure-html/1tyt8ifxD3y7QW3nN27jh02aPrBvNEo1GN_u2Ne_UngM_gde7783227e_0_31.png differ diff --git a/docs/no_toc/10-user_management_modules.md b/docs/no_toc/10-user_management_modules.md new file mode 100644 index 0000000..806ec88 --- /dev/null +++ b/docs/no_toc/10-user_management_modules.md @@ -0,0 +1,88 @@ +# User Management + +Modules about Groups and user management + +
+ +## Create Terra Group + +:::: {.borrowed_chunk} + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) and sign in with your Google account. + +1. In the drop-down menu on the left, navigate to "Groups". Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click "Groups". You can also navigate there directly with this link: https://anvil.terra.bio/#groups + + Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups". + +1. Click "+ Create a New Group" + + Screenshot of the Terra Group page. The "Create a New Group" button is highlighted. + +1. Enter a name for your group. Names must be unique, so it’s often helpful to include your team’s name, the purpose of the group, and optionally the timeframe, if you will have similar groups in the future. + + Screenshot of the Terra Group page with Create New Group pop out box. The textbox is highlighted and has been filled in with the Group name. + +1. Click "CREATE GROUP" + + Screenshot of the Terra Group page with Create New Group pop out box. The "CREATE GROUP" button is highlighted. + +1. Your new Group should now show up on the Group Management screen. Take note of the email address associated with your group. You will use this email to grant the group access to Billing Projects and Workspaces. + + Screenshot of the Terra Groups page.  The Group email address is highlighted. +:::: + +## Add Member to Terra Group + +:::: {.borrowed_chunk} + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) and sign in with your Google account. + +1. In the drop-down menu on the left, navigate to "Groups". Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click "Groups". You can also navigate there directly with this link: https://anvil.terra.bio/#groups + + Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups". + +1. Find the name of the Group you want to add someone to, and confirm that you have Admin privileges for the Group (you can only add and remove members to a Group if you are an Admin). Click on the name of the Group to view and manage members. + + Screenshot of the Terra Groups page.  The Group Name and Role are highlighted. + +1. Click on "+ Add User". You will be prompted to enter the user’s AnVIL ID. + + Screenshot of a Terra Group management page. The "+ Add User" button is highlighted. + +1. Type in the user’s email address. Make sure this is the account that they will be using to access AnVIL. + + Screenshot of the dialog box for adding Terra Group members. The textbox labeled "User email" is highlighted and an email address has been entered. + +1. If this member will need to add and remove other members of the Group, check the box for "Can manage members (admin)". This will add them as an "Admin" for the Group. Otherwise leave it unchecked, and they will be added as a "Member". + - Admins and Members have equal access to any resources shared with the Group. + - Admins can manage Group membership - they can add, remove, or change the role of other Group members. + + Screenshot of the dialog box for adding Terra Group members. The checkbox labeled "Can manage members (admin)" is highlighted. + +1. Click ADD USER. This will take you back to the Group administration page. + + Screenshot of the dialog box for adding Terra Group members. The button labeled "ADD USER" is highlighted. + +1. The new Group member will now be shown in the list of group members, along with their role. They should now have access to anything that the Group has been given access to. + + Screenshot of a Terra Group management page. The name and role of the new member is highlighted. + +If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name. + +Screenshot of a Terra Group management page. The teardrop button next to one of the members is highlighted. +:::: + +## Find Group Email + +:::: {.borrowed_chunk} + +1. [Launch Terra](https://anvil.terra.bio/#workspaces) and sign in with your Google account. + +1. In the drop-down menu on the left, navigate to "Groups". Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click "Groups". You can also navigate there directly with this link: https://anvil.terra.bio/#groups + + Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups". + +1. Find the name of the Group, then look in the "Group Email" column to find the email address associated with the Group. Copy this email address and paste it in as the username when adding people to Billing Projects and Workspaces. This will grant everyone in the Group access to the Billing Project or Workspace. + + Screenshot of the Terra Groups page.  A Group email address is highlighted. +:::: diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1NvMcwnnmXVHxrnaxRaZqmUmAdy4Suzc4CyDuMvmD2wo_g116f8d759be_0_2.png b/docs/no_toc/10-user_management_modules_files/figure-html/1NvMcwnnmXVHxrnaxRaZqmUmAdy4Suzc4CyDuMvmD2wo_g116f8d759be_0_2.png new file mode 100644 index 0000000..d469fe6 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1NvMcwnnmXVHxrnaxRaZqmUmAdy4Suzc4CyDuMvmD2wo_g116f8d759be_0_2.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1NvMcwnnmXVHxrnaxRaZqmUmAdy4Suzc4CyDuMvmD2wo_g1baba6c5e0d_1_737.png b/docs/no_toc/10-user_management_modules_files/figure-html/1NvMcwnnmXVHxrnaxRaZqmUmAdy4Suzc4CyDuMvmD2wo_g1baba6c5e0d_1_737.png new file mode 100644 index 0000000..0ab4a53 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1NvMcwnnmXVHxrnaxRaZqmUmAdy4Suzc4CyDuMvmD2wo_g1baba6c5e0d_1_737.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g116f8d759be_0_2.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g116f8d759be_0_2.png new file mode 100644 index 0000000..d469fe6 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g116f8d759be_0_2.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1bbb904ed85_0_0.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1bbb904ed85_0_0.png new file mode 100644 index 0000000..0a3f31a Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1bbb904ed85_0_0.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_0.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_0.png new file mode 100644 index 0000000..928569e Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_0.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_12.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_12.png new file mode 100644 index 0000000..93b595f Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_12.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_19.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_19.png new file mode 100644 index 0000000..f2f4480 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_19.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_25.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_25.png new file mode 100644 index 0000000..4bdb03f Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_25.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_32.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_32.png new file mode 100644 index 0000000..9e6f7b6 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_32.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_38.png b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_38.png new file mode 100644 index 0000000..8540da7 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1Odb2ZZrdxyzFtw-9kBck7j8XbNVriI84xm-fPN1fpIM_g1d86dfc306c_0_38.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g116f8d759be_0_2.png b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g116f8d759be_0_2.png new file mode 100644 index 0000000..d469fe6 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g116f8d759be_0_2.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_287.png b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_287.png new file mode 100644 index 0000000..dc024e5 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_287.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_431.png b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_431.png new file mode 100644 index 0000000..ace03d1 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_431.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_728.png b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_728.png new file mode 100644 index 0000000..3ea19c2 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_728.png differ diff --git a/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_737.png b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_737.png new file mode 100644 index 0000000..0ab4a53 Binary files /dev/null and b/docs/no_toc/10-user_management_modules_files/figure-html/1SnRZYoHXTLZjiR2jqvmsU2VEIRG5qA23UZWIztNMXH0_g1baba6c5e0d_1_737.png differ diff --git a/docs/no_toc/11-why-anvil.md b/docs/no_toc/11-why-anvil.md new file mode 100644 index 0000000..b56e844 --- /dev/null +++ b/docs/no_toc/11-why-anvil.md @@ -0,0 +1,24 @@ +# Why AnVIL + +Modules describing why AnVIL is useful for different personas. + +
+ +## Why AnVIL for Instructors? + +:::: {.borrowed_chunk} + +You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES! + +AnVIL provides all the advantages of a cloud computing environment: + +- **Version control**: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably. +- **Inclusivity**: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications. +- **Experience**: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience. + +AnVIL is purpose-built for genomic data science: + +- **Tools**: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them. +- **Datasets**: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing. +- **Authenticity**: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research. +:::: diff --git a/docs/no_toc/12-instructor_modules.md b/docs/no_toc/12-instructor_modules.md new file mode 100644 index 0000000..c6ebe4a --- /dev/null +++ b/docs/no_toc/12-instructor_modules.md @@ -0,0 +1,71 @@ +# Instructor modules + +Modules aimed at instructors. + +
+ +## Why AnVIL for Instructors? + +:::: {.borrowed_chunk} + +You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES! + +AnVIL provides all the advantages of a cloud computing environment: + +- **Version control**: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably. +- **Inclusivity**: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications. +- **Experience**: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience. + +AnVIL is purpose-built for genomic data science: + +- **Tools**: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them. +- **Datasets**: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing. +- **Authenticity**: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research. +:::: + +## Checklist Link + +:::: {.borrowed_chunk} + +Here is a [checklist](https://docs.google.com/document/d/1-HqQqH_qlkHwRua8-b92MyKQcEmcl0Nk37rSYqP49aw/edit) to help you keep track of the steps for setting up and teaching on AnVIL. Details about each of these steps can be found in the [AnVIL Instructor Guide](https://jhudatascience.org/AnVIL_Book_Instructor_Guide). *Note that this checklist is written for workshop instructors as well as classroom instructors, so some of the "Event Setup" steps may not be applicable to you, depending on your teaching context.* +:::: + +## Checklist Timeline (premade content) + +:::: {.borrowed_chunk} + +**1+ month before:** + +- Figure out how you will fund the class/workshop. +- Start working through INSTRUCTOR SETUP. + - It's a good idea to get billing figured out with plenty of time to spare. + - Take some time to familiarize yourself with the content and make any desired updates or customizations. +- Do any necessary EVENT SETUP steps. + +**~1 week before:** + +- Start working through RUNNING THE CLASS. +- If possible, have students log in to AnVIL and send you their usernames, so you can add them to the Student Group ahead of time. This saves time on the day of the class. +- **Do not add students to your Billing Project** ahead of time. This prevents them from accruing costs. + +**Day of (or shortly before):** + +- Add students to Billing Project. +- Have students clone the Workspace (They cannot do this until you have added them to the Billing Project. As soon as they do this, they can start computing.). + +**After:** + +- Collect feedback, if you didn't do it during the class/workshop. +- Work though EVENT WRAP-UP - **until you shut things down, you will continue to accrue costs**. +:::: + +## Recommendation to use STRIDES + +:::: {.borrowed_chunk} + +If you are new to AnVIL, **we strongly recommend seeking funding through NHGRI / STRIDES for teaching your course**. In order to prevent abuse, Google sets certain limits on cloud resources available to new users that can complicate teaching (e.g. [project quotas](https://support.terra.bio/hc/en-us/articles/6101030164507-When-workspace-creation-fails-Google-project-quotas)). As you or your institution builds a payment history with Google, the limits on your accounts will be relaxed. In the meantime, STRIDES funding can help ensure your initial classes run smoothly. + +**What is STRIDES?** NHGRI's [strategic vision](https://pubmed.ncbi.nlm.nih.gov/33116284/) highlights the importance of training the next generation of genomic scientists. In collaboration with the NIH Office of Data Science Strategy, NHGRI makes funding available to AnVIL users through the [STRIDES](https://datascience.nih.gov/strides) program, which aims to promote biological research in cloud environments. + +**To inquire about funding your class on AnVIL, please contact help@lists.anvilproject.org.** +:::: diff --git a/docs/no_toc/404.html b/docs/no_toc/404.html new file mode 100644 index 0000000..35c670f --- /dev/null +++ b/docs/no_toc/404.html @@ -0,0 +1,404 @@ + + + + + + + Page not found | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Page not found

+

The page you requested cannot be found (perhaps it was moved or renamed).

+

You may want to try searching to find the page's new location, or use +the table of contents to find the page you are looking for.

+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/About.md b/docs/no_toc/About.md new file mode 100644 index 0000000..ddc48c0 --- /dev/null +++ b/docs/no_toc/About.md @@ -0,0 +1,137 @@ + +# About the Authors {-} + +These credits are based on our [course contributors table guidelines](https://github.com/jhudsl/OTTR_Template/wiki/How-to-give-credits). + +  +  + + + +|Credits|Names| +|-------|-----| +|**Pedagogy**|| +|Lead Content Instructor(s)|[FirstName LastName]| +|Lecturer(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved| Delivered the course in some way - video or audio| +|Content Author(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved | If any other authors besides lead instructor| +|Content Contributor(s) (include section name/link in parentheses) - make new line if more than one section involved| Wrote less than a chapter

AnVIL instructions: [Katherine Cox], [Ava Hoffman], [Elizabeth Humphries]| +|Content Editor(s)/Reviewer(s) | Checked your content| +|Content Director(s) | Helped guide the content direction| +|Content Consultants (include chapter name/link in parentheses or word "General") - make new line if more than one chapter involved | Gave high level advice on content

AnVIL instructions: [Allie Cliffe]| +|Acknowledgments| Gave small assistance to content but not to the level of consulting | +|**Production**|| +|Content Publisher(s)| Helped with publishing platform| +|Content Publishing Reviewer(s)| Reviewed overall content and aesthetics on publishing platform| +|**Technical**|| +|Course Publishing Engineer(s)| Helped with the code for the technical aspects related to the specific course generation| +|Template Publishing Engineers|[Candace Savonen], [Carrie Wright]| +|Publishing Maintenance Engineer|[Candace Savonen]| +|Technical Publishing Stylists|[Carrie Wright], [Candace Savonen]| +|Package Developers ([ottrpal])|[John Muschelli], [Candace Savonen], [Carrie Wright]| +|**Art and Design**|| +|Illustrator(s)| Created graphics for the course| +|Figure Artist(s)| Created figures/plots for course| +|Videographer(s)| Filmed videos| +|Videography Editor(s)| Edited film| +|Audiographer(s)| Recorded audio| +|Audiography Editor(s)| Edited audio recordings| +|**Funding**|| +|Funder(s)| Institution/individual who funded course including grant number| +|Funding Staff| Staff members who help with funding| + +  + + +``` +## ─ Session info ─────────────────────────────────────────────────────────────── +## setting value +## version R version 4.0.2 (2020-06-22) +## os Ubuntu 20.04.5 LTS +## system x86_64, linux-gnu +## ui X11 +## language (EN) +## collate en_US.UTF-8 +## ctype en_US.UTF-8 +## tz Etc/UTC +## date 2023-07-18 +## +## ─ Packages ─────────────────────────────────────────────────────────────────── +## package * version date lib source +## assertthat 0.2.1 2019-03-21 [1] RSPM (R 4.0.5) +## bookdown 0.24 2023-03-28 [1] Github (rstudio/bookdown@88bc4ea) +## bslib 0.4.2 2022-12-16 [1] CRAN (R 4.0.2) +## cachem 1.0.7 2023-02-24 [1] CRAN (R 4.0.2) +## callr 3.5.0 2020-10-08 [1] RSPM (R 4.0.2) +## cli 3.6.1 2023-03-23 [1] CRAN (R 4.0.2) +## crayon 1.3.4 2017-09-16 [1] RSPM (R 4.0.0) +## desc 1.2.0 2018-05-01 [1] RSPM (R 4.0.3) +## devtools 2.3.2 2020-09-18 [1] RSPM (R 4.0.3) +## digest 0.6.25 2020-02-23 [1] RSPM (R 4.0.0) +## ellipsis 0.3.1 2020-05-15 [1] RSPM (R 4.0.3) +## evaluate 0.20 2023-01-17 [1] CRAN (R 4.0.2) +## fansi 0.4.1 2020-01-08 [1] RSPM (R 4.0.0) +## fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.0.2) +## fs 1.5.0 2020-07-31 [1] RSPM (R 4.0.3) +## glue 1.4.2 2020-08-27 [1] RSPM (R 4.0.5) +## hms 0.5.3 2020-01-08 [1] RSPM (R 4.0.0) +## htmltools 0.5.5 2023-03-23 [1] CRAN (R 4.0.2) +## jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.0.2) +## jsonlite 1.7.1 2020-09-07 [1] RSPM (R 4.0.2) +## knitr 1.33 2023-03-28 [1] Github (yihui/knitr@a1052d1) +## lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.0.2) +## magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.0.2) +## memoise 2.0.1 2021-11-26 [1] CRAN (R 4.0.2) +## ottrpal 1.0.1 2023-03-28 [1] Github (jhudsl/ottrpal@151e412) +## pillar 1.9.0 2023-03-22 [1] CRAN (R 4.0.2) +## pkgbuild 1.1.0 2020-07-13 [1] RSPM (R 4.0.2) +## pkgconfig 2.0.3 2019-09-22 [1] RSPM (R 4.0.3) +## pkgload 1.1.0 2020-05-29 [1] RSPM (R 4.0.3) +## prettyunits 1.1.1 2020-01-24 [1] RSPM (R 4.0.3) +## processx 3.4.4 2020-09-03 [1] RSPM (R 4.0.2) +## ps 1.4.0 2020-10-07 [1] RSPM (R 4.0.2) +## R6 2.4.1 2019-11-12 [1] RSPM (R 4.0.0) +## readr 1.4.0 2020-10-05 [1] RSPM (R 4.0.2) +## remotes 2.2.0 2020-07-21 [1] RSPM (R 4.0.3) +## rlang 1.1.0 2023-03-14 [1] CRAN (R 4.0.2) +## rmarkdown 2.10 2023-03-28 [1] Github (rstudio/rmarkdown@02d3c25) +## rprojroot 2.0.3 2022-04-02 [1] CRAN (R 4.0.2) +## sass 0.4.5 2023-01-24 [1] CRAN (R 4.0.2) +## sessioninfo 1.1.1 2018-11-05 [1] RSPM (R 4.0.3) +## stringi 1.5.3 2020-09-09 [1] RSPM (R 4.0.3) +## stringr 1.4.0 2019-02-10 [1] RSPM (R 4.0.3) +## testthat 3.0.1 2023-03-28 [1] Github (R-lib/testthat@e99155a) +## tibble 3.2.1 2023-03-20 [1] CRAN (R 4.0.2) +## usethis 1.6.3 2020-09-17 [1] RSPM (R 4.0.2) +## utf8 1.1.4 2018-05-24 [1] RSPM (R 4.0.3) +## vctrs 0.6.1 2023-03-22 [1] CRAN (R 4.0.2) +## withr 2.3.0 2020-09-22 [1] RSPM (R 4.0.2) +## xfun 0.26 2023-03-28 [1] Github (yihui/xfun@74c2a66) +## yaml 2.2.1 2020-02-01 [1] RSPM (R 4.0.3) +## +## [1] /usr/local/lib/R/site-library +## [2] /usr/local/lib/R/library +``` + + + +[FirstName LastName]: link to personal website +[Allie Cliffe]: https://alliecliffe.com/ +[Katherine Cox]: https://katherinecox.github.io/ +[Ava Hoffman]: https://www.avahoffman.com/ +[Elizabeth Humphries]: https://www.linkedin.com/in/elizabeth-humphries-61202a103/ +[John Muschelli]: https://johnmuschelli.com/ +[Candace Savonen]: https://www.cansavvy.com/ +[Carrie Wright]: https://carriewright11.github.io/ + + + +[ottrpal]: https://github.com/jhudsl/ottrpal + + diff --git a/docs/no_toc/References.md b/docs/no_toc/References.md new file mode 100644 index 0000000..98d65dc --- /dev/null +++ b/docs/no_toc/References.md @@ -0,0 +1,2 @@ + +# References diff --git a/docs/no_toc/a-new-chapter.html b/docs/no_toc/a-new-chapter.html new file mode 100644 index 0000000..f25cff7 --- /dev/null +++ b/docs/no_toc/a-new-chapter.html @@ -0,0 +1,632 @@ + + + + + + + Chapter 2 A new chapter | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 2 A new chapter

+

*If you haven’t yet read the getting started Wiki pages; start there

+

Every chapter needs to start out with this chunk of code:

+
+

2.1 Learning Objectives

+

*Every chapter also needs Learning objectives that will look like this:

+

This chapter will cover:

+ +
+
+

2.2 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.

+
library(magrittr)
+
+
+

2.3 Subtopic

+

Here’s a subheading and some text in this subsection!

+
+

2.3.1 Code examples

+

You can demonstrate code like this:

+
output_dir <- file.path("resources", "code_output")
+if (!dir.exists(output_dir)) {
+  dir.create(output_dir)
+}
+

And make plots too:

+
hist_plot <- hist(iris$Sepal.Length)
+

+

You can also save these plots to file:

+
png(file.path(output_dir, "test_plot.png"))
+hist_plot
+
## $breaks
+## [1] 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0
+## 
+## $counts
+## [1]  5 27 27 30 31 18  6  6
+## 
+## $density
+## [1] 0.06666667 0.36000000 0.36000000 0.40000000 0.41333333 0.24000000 0.08000000
+## [8] 0.08000000
+## 
+## $mids
+## [1] 4.25 4.75 5.25 5.75 6.25 6.75 7.25 7.75
+## 
+## $xname
+## [1] "iris$Sepal.Length"
+## 
+## $equidist
+## [1] TRUE
+## 
+## attr(,"class")
+## [1] "histogram"
+
dev.off()
+
## png 
+##   2
+
+
+

2.3.2 Image example

+

How to include a Google slide. It’s simplest to use the ottrpal package:

+

Major point!! example image

+

But if you have the slide or some other image locally downloaded you can also use html like this:

+

Major point!! example image

+
+
+

2.3.3 Video examples

+

To show videos in your course, you can use markdown syntax like this:

+

A video we want to show

+

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.

+ +

OR this works:

+ +
+ + +
+

2.3.6 Citation examples

+

We can put citations at the end of a sentence like this (Allaire et al. 2021). +Or multiple citations Xie, Allaire, and Grolemund (2018).

+

but they need a ; separator (Allaire et al. 2021; Xie, Allaire, and Grolemund 2018).

+

In text, we can put citations like this Allaire et al. (2021).

+
+
+

2.3.7 Callout boxes

+

There are some preset callout boxes available, which can be used like so:

+

notice:

+
+

Here’s something interesting.

+
+

warning:

+
+

Look out!

+
+

dictionary:

+
+

Here’s a definition.

+
+

reflection:

+
+

Consider this!

+
+

github:

+
+

Here’s how you use GitHub.

+
+
+ +
+ +
+

References

+
+
+Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2021. Rmarkdown: Dynamic Documents for r. https://github.com/rstudio/rmarkdown. +
+
+Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown. +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/about-the-authors.html b/docs/no_toc/about-the-authors.html new file mode 100644 index 0000000..09a67f3 --- /dev/null +++ b/docs/no_toc/about-the-authors.html @@ -0,0 +1,610 @@ + + + + + + + About the Authors | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

About the Authors

+

These credits are based on our course contributors table guidelines.

+

  + 

+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CreditsNames
Pedagogy
Lead Content Instructor(s)FirstName LastName
Lecturer(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involvedDelivered the course in some way - video or audio
Content Author(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involvedIf any other authors besides lead instructor
Content Contributor(s) (include section name/link in parentheses) - make new line if more than one section involvedWrote less than a chapter

AnVIL instructions: Katherine Cox, Ava Hoffman, Elizabeth Humphries
Content Editor(s)/Reviewer(s)Checked your content
Content Director(s)Helped guide the content direction
Content Consultants (include chapter name/link in parentheses or word “General”) - make new line if more than one chapter involvedGave high level advice on content

AnVIL instructions: Allie Cliffe
AcknowledgmentsGave small assistance to content but not to the level of consulting
Production
Content Publisher(s)Helped with publishing platform
Content Publishing Reviewer(s)Reviewed overall content and aesthetics on publishing platform
Technical
Course Publishing Engineer(s)Helped with the code for the technical aspects related to the specific course generation
Template Publishing EngineersCandace Savonen, Carrie Wright
Publishing Maintenance EngineerCandace Savonen
Technical Publishing StylistsCarrie Wright, Candace Savonen
Package Developers (ottrpal)John Muschelli, Candace Savonen, Carrie Wright
Art and Design
Illustrator(s)Created graphics for the course
Figure Artist(s)Created figures/plots for course
Videographer(s)Filmed videos
Videography Editor(s)Edited film
Audiographer(s)Recorded audio
Audiography Editor(s)Edited audio recordings
Funding
Funder(s)Institution/individual who funded course including grant number
Funding StaffStaff members who help with funding
+

 

+
## ─ Session info ───────────────────────────────────────────────────────────────
+##  setting  value                       
+##  version  R version 4.0.2 (2020-06-22)
+##  os       Ubuntu 20.04.5 LTS          
+##  system   x86_64, linux-gnu           
+##  ui       X11                         
+##  language (EN)                        
+##  collate  en_US.UTF-8                 
+##  ctype    en_US.UTF-8                 
+##  tz       Etc/UTC                     
+##  date     2023-07-18                  
+## 
+## ─ Packages ───────────────────────────────────────────────────────────────────
+##  package     * version date       lib source                            
+##  assertthat    0.2.1   2019-03-21 [1] RSPM (R 4.0.5)                    
+##  bookdown      0.24    2023-03-28 [1] Github (rstudio/bookdown@88bc4ea) 
+##  bslib         0.4.2   2022-12-16 [1] CRAN (R 4.0.2)                    
+##  cachem        1.0.7   2023-02-24 [1] CRAN (R 4.0.2)                    
+##  callr         3.5.0   2020-10-08 [1] RSPM (R 4.0.2)                    
+##  cli           3.6.1   2023-03-23 [1] CRAN (R 4.0.2)                    
+##  crayon        1.3.4   2017-09-16 [1] RSPM (R 4.0.0)                    
+##  desc          1.2.0   2018-05-01 [1] RSPM (R 4.0.3)                    
+##  devtools      2.3.2   2020-09-18 [1] RSPM (R 4.0.3)                    
+##  digest        0.6.25  2020-02-23 [1] RSPM (R 4.0.0)                    
+##  ellipsis      0.3.1   2020-05-15 [1] RSPM (R 4.0.3)                    
+##  evaluate      0.20    2023-01-17 [1] CRAN (R 4.0.2)                    
+##  fansi         0.4.1   2020-01-08 [1] RSPM (R 4.0.0)                    
+##  fastmap       1.1.1   2023-02-24 [1] CRAN (R 4.0.2)                    
+##  fs            1.5.0   2020-07-31 [1] RSPM (R 4.0.3)                    
+##  glue          1.4.2   2020-08-27 [1] RSPM (R 4.0.5)                    
+##  hms           0.5.3   2020-01-08 [1] RSPM (R 4.0.0)                    
+##  htmltools     0.5.5   2023-03-23 [1] CRAN (R 4.0.2)                    
+##  jquerylib     0.1.4   2021-04-26 [1] CRAN (R 4.0.2)                    
+##  jsonlite      1.7.1   2020-09-07 [1] RSPM (R 4.0.2)                    
+##  knitr         1.33    2023-03-28 [1] Github (yihui/knitr@a1052d1)      
+##  lifecycle     1.0.3   2022-10-07 [1] CRAN (R 4.0.2)                    
+##  magrittr      2.0.3   2022-03-30 [1] CRAN (R 4.0.2)                    
+##  memoise       2.0.1   2021-11-26 [1] CRAN (R 4.0.2)                    
+##  ottrpal       1.0.1   2023-03-28 [1] Github (jhudsl/ottrpal@151e412)   
+##  pillar        1.9.0   2023-03-22 [1] CRAN (R 4.0.2)                    
+##  pkgbuild      1.1.0   2020-07-13 [1] RSPM (R 4.0.2)                    
+##  pkgconfig     2.0.3   2019-09-22 [1] RSPM (R 4.0.3)                    
+##  pkgload       1.1.0   2020-05-29 [1] RSPM (R 4.0.3)                    
+##  prettyunits   1.1.1   2020-01-24 [1] RSPM (R 4.0.3)                    
+##  processx      3.4.4   2020-09-03 [1] RSPM (R 4.0.2)                    
+##  ps            1.4.0   2020-10-07 [1] RSPM (R 4.0.2)                    
+##  R6            2.4.1   2019-11-12 [1] RSPM (R 4.0.0)                    
+##  readr         1.4.0   2020-10-05 [1] RSPM (R 4.0.2)                    
+##  remotes       2.2.0   2020-07-21 [1] RSPM (R 4.0.3)                    
+##  rlang         1.1.0   2023-03-14 [1] CRAN (R 4.0.2)                    
+##  rmarkdown     2.10    2023-03-28 [1] Github (rstudio/rmarkdown@02d3c25)
+##  rprojroot     2.0.3   2022-04-02 [1] CRAN (R 4.0.2)                    
+##  sass          0.4.5   2023-01-24 [1] CRAN (R 4.0.2)                    
+##  sessioninfo   1.1.1   2018-11-05 [1] RSPM (R 4.0.3)                    
+##  stringi       1.5.3   2020-09-09 [1] RSPM (R 4.0.3)                    
+##  stringr       1.4.0   2019-02-10 [1] RSPM (R 4.0.3)                    
+##  testthat      3.0.1   2023-03-28 [1] Github (R-lib/testthat@e99155a)   
+##  tibble        3.2.1   2023-03-20 [1] CRAN (R 4.0.2)                    
+##  usethis       1.6.3   2020-09-17 [1] RSPM (R 4.0.2)                    
+##  utf8          1.1.4   2018-05-24 [1] RSPM (R 4.0.3)                    
+##  vctrs         0.6.1   2023-03-22 [1] CRAN (R 4.0.2)                    
+##  withr         2.3.0   2020-09-22 [1] RSPM (R 4.0.2)                    
+##  xfun          0.26    2023-03-28 [1] Github (yihui/xfun@74c2a66)       
+##  yaml          2.2.1   2020-02-01 [1] RSPM (R 4.0.3)                    
+## 
+## [1] /usr/local/lib/R/site-library
+## [2] /usr/local/lib/R/library
+ + + + +
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/anvil-module-library.html b/docs/no_toc/anvil-module-library.html new file mode 100644 index 0000000..5ad9b61 --- /dev/null +++ b/docs/no_toc/anvil-module-library.html @@ -0,0 +1,442 @@ + + + + + + + Chapter 3 AnVIL Module Library | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 3 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

+
+

3.1 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 for the most recent instructions and additional details.

+

Here is an example of including the _child_workspace_create.Rmd with cow::borrow_chapter()

+
    +
  1. Launch Terra

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the plus icon near the top of left of the page.

    +

    Screenshot of Terra Workspaces page.  The "+" is highlighted.

  6. +
  7. Name your Workspace and select the appropriate Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it).

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The text box labeled "Workspace name" and the drop-down menu labeled "Billing project" are highlighted.

  8. +
  9. If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated.

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The drop-down menu labeled "Authorization domain" is highlighted.

  10. +
  11. Click “CREATE WORKSPACE”. The new Workspace should now show up under your Workspaces.

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The "Create Workspace" button is highlighted.

  12. +
+
+
+

3.2 Background Highlighting for Borrowed Chapters

+

You can use the borrowed_chunk custom div block to highlight borrowed content or any other content you choose.

+

Basic format:

+
:::: {.borrowed_chunk}
+Code/Content here
+::::
+

Rendered with highlighting:

+
+

If you do not already have a Google account that you would like to use for accessing Terra, create one now.

+

If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions.

+
+

Rendered without highlighting:

+

If you do not already have a Google account that you would like to use for accessing Terra, create one now.

+

If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions.

+ +
+
+ + + +
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/assets/AnVIL_style/anvil.css b/docs/no_toc/assets/AnVIL_style/anvil.css new file mode 100755 index 0000000..091f5f3 --- /dev/null +++ b/docs/no_toc/assets/AnVIL_style/anvil.css @@ -0,0 +1,48 @@ + +/* AnVIL style */ +/* Things below this comment are AnVIL customizations */ + +.trapezoid { + width: 132px; + text-align: center; + position: relative; + left: 10px; + border-right: 50px solid #012d72; + border-bottom: 50px solid #dbdbdb; + border-left: 50px solid #012d72; + box-sizing: content-box; +} +.trapezoid span { + position: absolute; + top: 8px; + bottom: 5px; + left: 5%; + color: #dbdbdb; +} + +/* Module chunk shading --------------------------------------------*/ +div.borrowed_chunk { + padding: 1em; + margin: 1em 0; + min-height: 120px; + background-repeat: no-repeat; + background-color: #eff7fe; +} + +.hero-image-container { + height: 100px; +} + +.page-inner { + padding-top: 60px !important; +} + +.book .book-body .page-wrapper .page-inner section.normal h1, +.book .book-body .page-wrapper .page-inner section.normal h2, +.book .book-body .page-wrapper .page-inner section.normal h3, +.book .book-body .page-wrapper .page-inner section.normal h4, +.book .book-body .page-wrapper .page-inner section.normal h5, +.book .book-body .page-wrapper .page-inner section.normal h6 { + margin-top: 1em; + margin-bottom: 1em; +} diff --git a/docs/no_toc/assets/AnVIL_style/anvil_favicon.ico b/docs/no_toc/assets/AnVIL_style/anvil_favicon.ico new file mode 100755 index 0000000..f1eb1c4 Binary files /dev/null and b/docs/no_toc/assets/AnVIL_style/anvil_favicon.ico differ diff --git a/docs/no_toc/assets/AnVIL_style/big-image_anvil.html b/docs/no_toc/assets/AnVIL_style/big-image_anvil.html new file mode 100644 index 0000000..ce588cc --- /dev/null +++ b/docs/no_toc/assets/AnVIL_style/big-image_anvil.html @@ -0,0 +1,11 @@ + + + + + + + + +
+ +
diff --git a/docs/no_toc/assets/AnVIL_style/dasl_thin_main_image.png b/docs/no_toc/assets/AnVIL_style/dasl_thin_main_image.png new file mode 100644 index 0000000..2884072 Binary files /dev/null and b/docs/no_toc/assets/AnVIL_style/dasl_thin_main_image.png differ diff --git a/docs/no_toc/assets/AnVIL_style/footer.html b/docs/no_toc/assets/AnVIL_style/footer.html new file mode 100644 index 0000000..0b268e7 --- /dev/null +++ b/docs/no_toc/assets/AnVIL_style/footer.html @@ -0,0 +1,8 @@ +
+
+ +
\ No newline at end of file diff --git a/docs/no_toc/assets/AnVIL_style/logo-anvil.png b/docs/no_toc/assets/AnVIL_style/logo-anvil.png new file mode 100644 index 0000000..83c7b67 Binary files /dev/null and b/docs/no_toc/assets/AnVIL_style/logo-anvil.png differ diff --git a/docs/no_toc/assets/GDSCN_style/big-image_gdscn.html b/docs/no_toc/assets/GDSCN_style/big-image_gdscn.html new file mode 100644 index 0000000..58b794a --- /dev/null +++ b/docs/no_toc/assets/GDSCN_style/big-image_gdscn.html @@ -0,0 +1,11 @@ + + + + + + + + +
+ +
diff --git a/docs/no_toc/assets/GDSCN_style/dasl_thin_main_image.png b/docs/no_toc/assets/GDSCN_style/dasl_thin_main_image.png new file mode 100644 index 0000000..e147f89 Binary files /dev/null and b/docs/no_toc/assets/GDSCN_style/dasl_thin_main_image.png differ diff --git a/docs/no_toc/assets/GDSCN_style/footer.html b/docs/no_toc/assets/GDSCN_style/footer.html new file mode 100644 index 0000000..0b268e7 --- /dev/null +++ b/docs/no_toc/assets/GDSCN_style/footer.html @@ -0,0 +1,8 @@ +
+
+ +
\ No newline at end of file diff --git a/docs/no_toc/assets/GDSCN_style/gdscn.css b/docs/no_toc/assets/GDSCN_style/gdscn.css new file mode 100755 index 0000000..9684f7f --- /dev/null +++ b/docs/no_toc/assets/GDSCN_style/gdscn.css @@ -0,0 +1,99 @@ + +/* GDSCN style */ +/* Change colors to match GDSCN logo */ +/* Things below this comment are GDSCN customizations */ + +.hero-image-container { + height: 100px; +} + +.page-inner { + padding-top: 60px !important; +} + +.book .book-body .page-wrapper .page-inner section.normal h1, +.book .book-body .page-wrapper .page-inner section.normal h2, +.book .book-body .page-wrapper .page-inner section.normal h3, +.book .book-body .page-wrapper .page-inner section.normal h4, +.book .book-body .page-wrapper .page-inner section.normal h5, +.book .book-body .page-wrapper .page-inner section.normal h6 { + margin-top: 1em; + margin-bottom: 1em; +} + +:root { + --highlight-txt-color: #73b263; + --main-txt-color: #274731; +} + +.trapezoid { + width: 132px; + text-align: center; + position: relative; + left: 10px; + border-right: 50px solid --main-txt-color; + border-bottom: 50px solid #dbdbdb; + border-left: 50px solid --main-txt-color; + box-sizing: content-box; +} +.trapezoid span { + position: absolute; + top: 8px; + bottom: 5px; + left: 5%; + color: #dbdbdb; +} + +/* Module chunk shading --------------------------------------------*/ +div.borrowed_chunk { + padding: 1em; + margin: 1em 0; + min-height: 120px; + background-repeat: no-repeat; + background-color: #eff7fe; +} + +.book .book-body .page-wrapper .page-inner section.normal a { + color: var(--highlight-txt-color); +} + +.title { + color: var(--main-txt-color); +} + +.section.level1 > p:first-of-type:first-letter { /*drop cap for first p beneath level 1 headers only within class .section*/ + color: var(--main-txt-color); +} + +.book .book-summary a { + color: var(--main-txt-color); +} + +/* all TOC list items, basically */ +.book .book-summary ul.summary li a, +.book .book-summary ul.summary li span { + color: var(--main-txt-color); +} + +.summary a:hover { + color: var(--highlight-txt-color) !important; +} + +.book .book-summary ul.summary li.active>a { /*active TOC links*/ + color: var(--highlight-txt-color) !important; + border-color: var(--highlight-txt-color); +} + +.trapezoid { + border-right: 50px solid var(--main-txt-color); + border-left: 50px solid var(--main-txt-color); +} + +div.notice, div.dictionary, div.reflection { + border: 4px var(--highlight-txt-color); + border-style: solid; +} + +.footer { + color: var(--main-txt-color); +} diff --git a/docs/no_toc/assets/GDSCN_style/gdscn_favicon.ico b/docs/no_toc/assets/GDSCN_style/gdscn_favicon.ico new file mode 100644 index 0000000..1046ace Binary files /dev/null and b/docs/no_toc/assets/GDSCN_style/gdscn_favicon.ico differ diff --git a/docs/no_toc/assets/GDSCN_style/logo-gdscn.png b/docs/no_toc/assets/GDSCN_style/logo-gdscn.png new file mode 100644 index 0000000..b4c22da Binary files /dev/null and b/docs/no_toc/assets/GDSCN_style/logo-gdscn.png differ diff --git a/docs/no_toc/assets/box_images/dictionary.png b/docs/no_toc/assets/box_images/dictionary.png new file mode 100644 index 0000000..75ddac7 Binary files /dev/null and b/docs/no_toc/assets/box_images/dictionary.png differ diff --git a/docs/no_toc/assets/box_images/github.png b/docs/no_toc/assets/box_images/github.png new file mode 100644 index 0000000..a93acd3 Binary files /dev/null and b/docs/no_toc/assets/box_images/github.png differ diff --git a/docs/no_toc/assets/box_images/note.png b/docs/no_toc/assets/box_images/note.png new file mode 100644 index 0000000..72de3ae Binary files /dev/null and b/docs/no_toc/assets/box_images/note.png differ diff --git a/docs/no_toc/assets/box_images/thinking_face.png b/docs/no_toc/assets/box_images/thinking_face.png new file mode 100644 index 0000000..c2c279a Binary files /dev/null and b/docs/no_toc/assets/box_images/thinking_face.png differ diff --git a/docs/no_toc/assets/box_images/warning.png b/docs/no_toc/assets/box_images/warning.png new file mode 100644 index 0000000..405fb61 Binary files /dev/null and b/docs/no_toc/assets/box_images/warning.png differ diff --git a/docs/no_toc/assets/hideOutput.js b/docs/no_toc/assets/hideOutput.js new file mode 100644 index 0000000..245d55f --- /dev/null +++ b/docs/no_toc/assets/hideOutput.js @@ -0,0 +1,57 @@ +/*$(document).ready(function() { + + + // Copy Button + $chunks = $('pre.sourceCode > code.sourceCode'); + $chunks.each(function(i, val) { + $(this).prepend("").click(function() { + var $temp = $("",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + + + + + + Chapter 6 Onboarding | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 6 Onboarding

+

Joining a team on AnVIL.

+


+
+

6.1 Create Google Account

+

If you do not already have a Google account that you would like to use for accessing Terra, create one now.

+

If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions.

+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/reference-keys.txt b/docs/no_toc/reference-keys.txt new file mode 100644 index 0000000..208c1d7 --- /dev/null +++ b/docs/no_toc/reference-keys.txt @@ -0,0 +1,80 @@ +introduction +motivation +target-audience +curriculum +a-new-chapter +learning-objectives-1 +libraries +subtopic +code-examples +image-example +video-examples +links-to-files +links-to-websites +citation-examples +callout-boxes +dropdown-summaries +print-out-session-info +anvil-module-library +include-using-cowborrow_chapter +background-highlighting-for-borrowed-chapters +workspaces +clone-a-workspace +create-a-workspace +open-a-workspace +share-a-workspace +billing +create-google-billing-account +add-terra-to-google-billing-account +add-members-to-google-billing-account +set-alerts-for-google-billing +view-spend-for-google-billing +create-terra-billing-project +add-member-to-terra-billing-project +disable-terra-billing-project +onboarding +create-google-account +using-programming-platforms-on-anvil +video-overview-on-using-jupyter-notebooks +objectives +slides +launching-jupyter +video-overview-on-using-galaxy +objectives-1 +slides-1 +starting-galaxy +navigating-galaxy +deleting-galaxy +video-overview-on-using-rstudio +objectives-2 +slides-2 +launching-rstudio +touring-rstudio +pausing-rstudio +deleting-rstudio +student-instructions +student-account-setup +create-google-account-1 +log-in-to-terra +share-username +student-instructions-for-cloning-a-workspace +with-no-variables-set +with-variables-set +student-instructions-for-launching-jupyter +using-default-jupyter-environment +using-custom-jupyter-environment +student-instructions-for-launching-rstudio +using-default-rstudio-environment +using-custom-rstudio-environment +user-management +create-terra-group +add-member-to-terra-group +find-group-email +why-anvil +why-anvil-for-instructors +instructor-modules +why-anvil-for-instructors-1 +checklist-link +checklist-timeline-premade-content +recommendation-to-use-strides +references diff --git a/docs/no_toc/references.html b/docs/no_toc/references.html new file mode 100644 index 0000000..02e0d69 --- /dev/null +++ b/docs/no_toc/references.html @@ -0,0 +1,410 @@ + + + + + + + Chapter 12 References | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 12 References

+ +
+
+Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2021. Rmarkdown: Dynamic Documents for r. https://github.com/rstudio/rmarkdown. +
+
+Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown. +
+
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/resources/AnVIL_repos.tsv b/docs/no_toc/resources/AnVIL_repos.tsv new file mode 100644 index 0000000..6b51099 --- /dev/null +++ b/docs/no_toc/resources/AnVIL_repos.tsv @@ -0,0 +1,11 @@ +name homepage html_url description topics +AnVIL_Book_Getting_Started https://jhudatascience.org/AnVIL_Book_Getting_Started https://github.com/jhudsl/AnVIL_Book_Getting_Started A guide for getting started using AnVIL anvil, cloud-computing +AnVIL_Book_Instructor_Guide https://jhudatascience.org/AnVIL_Book_Instructor_Guide https://github.com/jhudsl/AnVIL_Book_Instructor_Guide A guide for instructors using AnVIL for workshops, lessons, or courses. anvil, education +AnVIL_Phylogenetic-Techniques https://jhudatascience.org/AnVIL_Phylogenetic-Techniques/ https://github.com/jhudsl/AnVIL_Phylogenetic-Techniques A semester-long course on the basics of molecular phylogenetic techniques anvil, r-programming +AnVIL_SRA_Data https://hutchdatascience.org/AnVIL_SRA_Data/ https://github.com/fhdsl/AnVIL_SRA_Data Pull Sequence Read Archive (SRA) data into AnVIL anvil +AnVIL_Template https://jhudatascience.org/AnVIL_Template/ https://github.com/jhudsl/AnVIL_Template An OTTR spinoff template for creating AnVIL content anvil, template +GDSCN_Book_SARS_Galaxy_on_AnVIL https://jhudatascience.org/GDSCN_Book_SARS_Galaxy_on_AnVIL/ https://github.com/jhudsl/GDSCN_Book_SARS_Galaxy_on_AnVIL Lab module and lectures for variant detection in SARS-CoV-2 using Galaxy anvil, genomics, module +GDSCN_Book_Statistics_for_Genomics_Differential_Expression https://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_Differential_Expression/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_Differential_Expression A set of lab modules for an introduction to differential gene expression anvil, cloud-computing, gene-expression +GDSCN_Book_Statistics_for_Genomics_PCA https://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_PCA/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_PCA A set of lab modules for PCA analysis anvil +GDSCN_Book_Statistics_for_Genomics_RNA-seq https://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_RNA-seq/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_RNA-seq A set of lab modules for RNA-seq analysis anvil +GDSCN_Book_Statistics_for_Genomics_scRNA-seq http://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_scRNA-seq/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_scRNA-seq A set of lab modules for single cell RNA-seq analysis anvil diff --git a/docs/no_toc/resources/TEMPLATE_Dockerfile b/docs/no_toc/resources/TEMPLATE_Dockerfile new file mode 100644 index 0000000..f68ae97 --- /dev/null +++ b/docs/no_toc/resources/TEMPLATE_Dockerfile @@ -0,0 +1,20 @@ +FROM jhudsl/course_template:main +LABEL maintainer="your_email.com" + +#################### EXAMPLES OF INSTALLING PACKAGES ########################### +# Install a Linux/Ubuntu package +# RUN apt-get update && apt-get install -y --no-install-recommends \ +# package_name + +# Install a package from CRAN +# RUN Rscript -e "options(warn = 2);install.packages( \ +# c('package_name'), \ +# repos = 'https://cloud.r-project.org/')" + +# Install a package from Bioconductor +# RUN Rscript -e "options(warn = 2); BiocManager::install( \ +# c('package_name') + +# Add a python package +# RUN RUN pip3 install \ +# "somepackage==0.1.0" diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-1.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-1.png new file mode 100644 index 0000000..b6890dc Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-1.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-2.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-2.png new file mode 100644 index 0000000..c290379 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-2.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-3.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-3.png new file mode 100644 index 0000000..fb45cd3 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-3.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-4.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-4.png new file mode 100644 index 0000000..6413541 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-4.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-5.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-5.png new file mode 100644 index 0000000..cb8f5be Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-5.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-6.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-6.png new file mode 100644 index 0000000..7d44514 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-6.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-7.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-7.png new file mode 100644 index 0000000..2c0076a Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-7.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-8.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-8.png new file mode 100644 index 0000000..1246798 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-8.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-chapter-9.png b/docs/no_toc/resources/coursera_screenshots/add-chapter-9.png new file mode 100644 index 0000000..86da2a2 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-chapter-9.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-lesson.png b/docs/no_toc/resources/coursera_screenshots/add-lesson.png new file mode 100644 index 0000000..8e99cde Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-lesson.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-quiz-1.png b/docs/no_toc/resources/coursera_screenshots/add-quiz-1.png new file mode 100644 index 0000000..2c02af4 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-quiz-1.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-quiz-2.png b/docs/no_toc/resources/coursera_screenshots/add-quiz-2.png new file mode 100644 index 0000000..0490e51 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-quiz-2.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-quiz-3.png b/docs/no_toc/resources/coursera_screenshots/add-quiz-3.png new file mode 100644 index 0000000..9c405d0 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-quiz-3.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-quiz-4.png b/docs/no_toc/resources/coursera_screenshots/add-quiz-4.png new file mode 100644 index 0000000..aaffaf4 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-quiz-4.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/add-quiz-5.png b/docs/no_toc/resources/coursera_screenshots/add-quiz-5.png new file mode 100644 index 0000000..1379775 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/add-quiz-5.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/assign-learning-obj.png b/docs/no_toc/resources/coursera_screenshots/assign-learning-obj.png new file mode 100644 index 0000000..0c928fd Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/assign-learning-obj.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/courses.png b/docs/no_toc/resources/coursera_screenshots/courses.png new file mode 100644 index 0000000..d6699ff Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/courses.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/edit-content.png b/docs/no_toc/resources/coursera_screenshots/edit-content.png new file mode 100644 index 0000000..ce9918f Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/edit-content.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/edit-course-nav.png b/docs/no_toc/resources/coursera_screenshots/edit-course-nav.png new file mode 100644 index 0000000..982621e Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/edit-course-nav.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/edit-course.png b/docs/no_toc/resources/coursera_screenshots/edit-course.png new file mode 100644 index 0000000..1549c64 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/edit-course.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/grading-formula.png b/docs/no_toc/resources/coursera_screenshots/grading-formula.png new file mode 100644 index 0000000..1ff9f40 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/grading-formula.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/learning-obj-assigned.png b/docs/no_toc/resources/coursera_screenshots/learning-obj-assigned.png new file mode 100644 index 0000000..b634f58 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/learning-obj-assigned.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/my-courses.png b/docs/no_toc/resources/coursera_screenshots/my-courses.png new file mode 100644 index 0000000..51dee7e Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/my-courses.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/new-add-chapter-7.png b/docs/no_toc/resources/coursera_screenshots/new-add-chapter-7.png new file mode 100644 index 0000000..4770992 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/new-add-chapter-7.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/profile.png b/docs/no_toc/resources/coursera_screenshots/profile.png new file mode 100644 index 0000000..dc50a6c Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/profile.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/programmed-messages.png b/docs/no_toc/resources/coursera_screenshots/programmed-messages.png new file mode 100644 index 0000000..9f46c1d Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/programmed-messages.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/quiz-settings.png b/docs/no_toc/resources/coursera_screenshots/quiz-settings.png new file mode 100644 index 0000000..97f7200 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/quiz-settings.png differ diff --git a/docs/no_toc/resources/coursera_screenshots/versions.png b/docs/no_toc/resources/coursera_screenshots/versions.png new file mode 100644 index 0000000..e179ba6 Binary files /dev/null and b/docs/no_toc/resources/coursera_screenshots/versions.png differ diff --git a/docs/no_toc/resources/dictionary.txt b/docs/no_toc/resources/dictionary.txt new file mode 100644 index 0000000..2b25ff3 --- /dev/null +++ b/docs/no_toc/resources/dictionary.txt @@ -0,0 +1,41 @@ +AnVIL +BiocManager +bioinformatics +BIPOC +Bloomberg +callout +Callout +colData +CoV +dex +dexamethasone +dropdown +GDSCN +github +Glimma +glimmaMDS +Gmail +impactful +Inclusivity +Jupyter +limma +MDS +mentorship +NCI +NHGRI +Onboarding +OTTR +ottrpal +plotMDS +precompiled +preprint +programmatically +px +reproducibility +Rmd +RStudio +timeframe +underserved +Workspaces +Workspace's +www diff --git a/docs/no_toc/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png b/docs/no_toc/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png new file mode 100644 index 0000000..b865852 Binary files /dev/null and b/docs/no_toc/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png differ diff --git a/docs/no_toc/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png b/docs/no_toc/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 0000000..b17edc4 Binary files /dev/null and b/docs/no_toc/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/docs/no_toc/resources/images/Image_res_72.png b/docs/no_toc/resources/images/Image_res_72.png new file mode 100644 index 0000000..0bf9187 Binary files /dev/null and b/docs/no_toc/resources/images/Image_res_72.png differ diff --git a/docs/no_toc/resources/images/itcr_training_network.png b/docs/no_toc/resources/images/itcr_training_network.png new file mode 100644 index 0000000..b696478 Binary files /dev/null and b/docs/no_toc/resources/images/itcr_training_network.png differ diff --git a/docs/no_toc/resources/images/logo.png b/docs/no_toc/resources/images/logo.png new file mode 100644 index 0000000..0ade934 Binary files /dev/null and b/docs/no_toc/resources/images/logo.png differ diff --git a/docs/no_toc/resources/images/tools.png b/docs/no_toc/resources/images/tools.png new file mode 100644 index 0000000..0c74d5d Binary files /dev/null and b/docs/no_toc/resources/images/tools.png differ diff --git a/docs/no_toc/resources/screenshots/add-repo.png b/docs/no_toc/resources/screenshots/add-repo.png new file mode 100644 index 0000000..cbbfadf Binary files /dev/null and b/docs/no_toc/resources/screenshots/add-repo.png differ diff --git a/docs/no_toc/resources/screenshots/commit-change.png b/docs/no_toc/resources/screenshots/commit-change.png new file mode 100644 index 0000000..c2ca83c Binary files /dev/null and b/docs/no_toc/resources/screenshots/commit-change.png differ diff --git a/docs/no_toc/resources/screenshots/repo-about.png b/docs/no_toc/resources/screenshots/repo-about.png new file mode 100644 index 0000000..714db28 Binary files /dev/null and b/docs/no_toc/resources/screenshots/repo-about.png differ diff --git a/docs/no_toc/resources/screenshots/repo-description.png b/docs/no_toc/resources/screenshots/repo-description.png new file mode 100644 index 0000000..1ca039f Binary files /dev/null and b/docs/no_toc/resources/screenshots/repo-description.png differ diff --git a/docs/no_toc/resources/screenshots/repo-homepage.png b/docs/no_toc/resources/screenshots/repo-homepage.png new file mode 100644 index 0000000..6fa999e Binary files /dev/null and b/docs/no_toc/resources/screenshots/repo-homepage.png differ diff --git a/docs/no_toc/resources/screenshots/repo-tags.png b/docs/no_toc/resources/screenshots/repo-tags.png new file mode 100644 index 0000000..993577b Binary files /dev/null and b/docs/no_toc/resources/screenshots/repo-tags.png differ diff --git a/docs/no_toc/resources/screenshots/use-this-template.png b/docs/no_toc/resources/screenshots/use-this-template.png new file mode 100644 index 0000000..3e4def7 Binary files /dev/null and b/docs/no_toc/resources/screenshots/use-this-template.png differ diff --git a/docs/no_toc/search_index.json b/docs/no_toc/search_index.json new file mode 100644 index 0000000..1ece5ad --- /dev/null +++ b/docs/no_toc/search_index.json @@ -0,0 +1 @@ +[["index.html", "AnVIL Book Name About this Book Skills Level AnVIL Collection", " AnVIL Book Name July 18, 2023 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. Skills Level Genetics Programming skills AnVIL Collection Please check out our full collection of AnVIL and related resources: https://hutchdatascience.org/AnVIL_Collection/ "],["learning-objectives.html", "Learning Objectives", " Learning Objectives "],["introduction.html", "Chapter 1 Introduction 1.1 Motivation 1.2 Target Audience 1.3 Curriculum", " Chapter 1 Introduction 1.1 Motivation 1.2 Target Audience The course is intended for … 1.3 Curriculum The course covers… "],["a-new-chapter.html", "Chapter 2 A new chapter 2.1 Learning Objectives 2.2 Libraries 2.3 Subtopic 2.4 Print out session info", " Chapter 2 A new chapter *If you haven’t yet read the getting started Wiki pages; start there Every chapter needs to start out with this chunk of code: 2.1 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} 2.2 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. library(magrittr) 2.3 Subtopic Here’s a subheading and some text in this subsection! 2.3.1 Code examples You can demonstrate code like this: output_dir <- file.path("resources", "code_output") if (!dir.exists(output_dir)) { dir.create(output_dir) } And make plots too: hist_plot <- hist(iris$Sepal.Length) You can also save these plots to file: png(file.path(output_dir, "test_plot.png")) hist_plot ## $breaks ## [1] 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 ## ## $counts ## [1] 5 27 27 30 31 18 6 6 ## ## $density ## [1] 0.06666667 0.36000000 0.36000000 0.40000000 0.41333333 0.24000000 0.08000000 ## [8] 0.08000000 ## ## $mids ## [1] 4.25 4.75 5.25 5.75 6.25 6.75 7.25 7.75 ## ## $xname ## [1] "iris$Sepal.Length" ## ## $equidist ## [1] TRUE ## ## attr(,"class") ## [1] "histogram" dev.off() ## png ## 2 2.3.2 Image example How to include a Google slide. It’s simplest to use the ottrpal package: But if you have the slide or some other image locally downloaded you can also use html like this: 2.3.3 Video examples To show videos in your course, you can use markdown syntax like this: A video we want to show 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. OR this works: 2.3.4 Links to files This works: Or this: This works. Or this: 2.3.5 Links to websites Examples of including a website link. This works: OR this: Another link OR this: 2.3.6 Citation examples We can put citations at the end of a sentence like this (Allaire et al. 2021). Or multiple citations Xie, Allaire, and Grolemund (2018). but they need a ; separator (Allaire et al. 2021; Xie, Allaire, and Grolemund 2018). In text, we can put citations like this Allaire et al. (2021). 2.3.7 Callout boxes There are some preset callout boxes available, which can be used like so: notice: Here’s something interesting. warning: Look out! dictionary: Here’s a definition. reflection: Consider this! github: Here’s how you use GitHub. 2.3.8 Dropdown summaries You can hide additional information in a dropdown menu Here’s more words that are hidden. 2.4 Print out session info You should print out session info when you have code for reproducibility purposes. devtools::session_info() ## ─ Session info ─────────────────────────────────────────────────────────────── ## setting value ## version R version 4.0.2 (2020-06-22) ## os Ubuntu 20.04.5 LTS ## system x86_64, linux-gnu ## ui X11 ## language (EN) ## collate en_US.UTF-8 ## ctype en_US.UTF-8 ## tz Etc/UTC ## date 2023-07-18 ## ## ─ Packages ─────────────────────────────────────────────────────────────────── ## package * version date lib source ## assertthat 0.2.1 2019-03-21 [1] RSPM (R 4.0.5) ## bookdown 0.24 2023-03-28 [1] Github (rstudio/bookdown@88bc4ea) ## bslib 0.4.2 2022-12-16 [1] CRAN (R 4.0.2) ## cachem 1.0.7 2023-02-24 [1] CRAN (R 4.0.2) ## callr 3.5.0 2020-10-08 [1] RSPM (R 4.0.2) ## cli 3.6.1 2023-03-23 [1] CRAN (R 4.0.2) ## crayon 1.3.4 2017-09-16 [1] RSPM (R 4.0.0) ## curl 4.3 2019-12-02 [1] RSPM (R 4.0.3) ## desc 1.2.0 2018-05-01 [1] RSPM (R 4.0.3) ## devtools 2.3.2 2020-09-18 [1] RSPM (R 4.0.3) ## digest 0.6.25 2020-02-23 [1] RSPM (R 4.0.0) ## ellipsis 0.3.1 2020-05-15 [1] RSPM (R 4.0.3) ## evaluate 0.20 2023-01-17 [1] CRAN (R 4.0.2) ## fansi 0.4.1 2020-01-08 [1] RSPM (R 4.0.0) ## fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.0.2) ## fs 1.5.0 2020-07-31 [1] RSPM (R 4.0.3) ## glue 1.4.2 2020-08-27 [1] RSPM (R 4.0.5) ## highr 0.8 2019-03-20 [1] RSPM (R 4.0.3) ## hms 0.5.3 2020-01-08 [1] RSPM (R 4.0.0) ## htmltools 0.5.5 2023-03-23 [1] CRAN (R 4.0.2) ## httr 1.4.2 2020-07-20 [1] RSPM (R 4.0.3) ## jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.0.2) ## jsonlite 1.7.1 2020-09-07 [1] RSPM (R 4.0.2) ## knitr 1.33 2023-03-28 [1] Github (yihui/knitr@a1052d1) ## lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.0.2) ## magrittr * 2.0.3 2022-03-30 [1] CRAN (R 4.0.2) ## memoise 2.0.1 2021-11-26 [1] CRAN (R 4.0.2) ## ottrpal 1.0.1 2023-03-28 [1] Github (jhudsl/ottrpal@151e412) ## pillar 1.9.0 2023-03-22 [1] CRAN (R 4.0.2) ## pkgbuild 1.1.0 2020-07-13 [1] RSPM (R 4.0.2) ## pkgconfig 2.0.3 2019-09-22 [1] RSPM (R 4.0.3) ## pkgload 1.1.0 2020-05-29 [1] RSPM (R 4.0.3) ## png 0.1-8 2022-11-29 [1] CRAN (R 4.0.2) ## prettyunits 1.1.1 2020-01-24 [1] RSPM (R 4.0.3) ## processx 3.4.4 2020-09-03 [1] RSPM (R 4.0.2) ## ps 1.4.0 2020-10-07 [1] RSPM (R 4.0.2) ## R6 2.4.1 2019-11-12 [1] RSPM (R 4.0.0) ## readr 1.4.0 2020-10-05 [1] RSPM (R 4.0.2) ## remotes 2.2.0 2020-07-21 [1] RSPM (R 4.0.3) ## rlang 1.1.0 2023-03-14 [1] CRAN (R 4.0.2) ## rmarkdown 2.10 2023-03-28 [1] Github (rstudio/rmarkdown@02d3c25) ## rprojroot 2.0.3 2022-04-02 [1] CRAN (R 4.0.2) ## sass 0.4.5 2023-01-24 [1] CRAN (R 4.0.2) ## sessioninfo 1.1.1 2018-11-05 [1] RSPM (R 4.0.3) ## stringi 1.5.3 2020-09-09 [1] RSPM (R 4.0.3) ## stringr 1.4.0 2019-02-10 [1] RSPM (R 4.0.3) ## testthat 3.0.1 2023-03-28 [1] Github (R-lib/testthat@e99155a) ## tibble 3.2.1 2023-03-20 [1] CRAN (R 4.0.2) ## usethis 1.6.3 2020-09-17 [1] RSPM (R 4.0.2) ## utf8 1.1.4 2018-05-24 [1] RSPM (R 4.0.3) ## vctrs 0.6.1 2023-03-22 [1] CRAN (R 4.0.2) ## withr 2.3.0 2020-09-22 [1] RSPM (R 4.0.2) ## xfun 0.26 2023-03-28 [1] Github (yihui/xfun@74c2a66) ## yaml 2.2.1 2020-02-01 [1] RSPM (R 4.0.3) ## ## [1] /usr/local/lib/R/site-library ## [2] /usr/local/lib/R/library References "],["anvil-module-library.html", "Chapter 3 AnVIL Module Library 3.1 Include using cow::borrow_chapter() 3.2 Background Highlighting for Borrowed Chapters", " Chapter 3 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 3.1 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 for the most recent instructions and additional details. Here is an example of including the _child_workspace_create.Rmd with cow::borrow_chapter() Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the plus icon near the top of left of the page. Name your Workspace and select the appropriate Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. Click “CREATE WORKSPACE”. The new Workspace should now show up under your Workspaces. 3.2 Background Highlighting for Borrowed Chapters You can use the borrowed_chunk custom div block to highlight borrowed content or any other content you choose. Basic format: :::: {.borrowed_chunk} Code/Content here :::: Rendered with highlighting: If you do not already have a Google account that you would like to use for accessing Terra, create one now. If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions. Rendered without highlighting: If you do not already have a Google account that you would like to use for accessing Terra, create one now. If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions. "],["workspaces.html", "Chapter 4 Workspaces 4.1 Clone a Workspace 4.2 Create a Workspace 4.3 Open a Workspace 4.4 Share a Workspace", " Chapter 4 Workspaces Modules about Terra Workspaces 4.1 Clone a Workspace Launch Terra Locate the Workspace you want to clone. If a Workspace has been shared with you ahead of time, it will appear in “MY WORKSPACES”. You can clone a Workspace that was shared with you to perform your own analyses. In the screenshot below, no Workspaces have been shared. If a Workspace hasn’t been shared with you, navigate to the “FEATURED” or “PUBLIC” Workspace tabs. Use the search box to find the Workspace you want to clone. Click the teardrop button on the far right next to the Workspace you want to clone. Click “Clone”. You can also clone the Workspace from the Workspace Dashboard instead of the search results. You will see a popup box appear. Name your Workspace and select the appropriate Terra Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). Remember that each Workspace should have its own Billing Project. If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. Click “CLONE WORKSPACE”. The new Workspace should now show up under your Workspaces. 4.2 Create a Workspace Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the plus icon near the top of left of the page. Name your Workspace and select the appropriate Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. Click “CREATE WORKSPACE”. The new Workspace should now show up under your Workspaces. 4.3 Open a Workspace Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. You are automatically directed to the “My Workspaces” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Reader means you can open the Workspace and see everything, but can’t do any computations or make any edits. Writer means you can run computations, which will charge costs to the Workspace’s Billing Project. Writers can also make edits to the Workspace. Owner is similar to Writer, but also allows you to control who can access the Workspace. Click on the name of a Workspace to open it. Opening and viewing a Workspace does not cost anything. When you open a Workspace, you are directed to the Workspace Dashboard. This generally has a description of the Workspace contents, as well as some useful details about the Workspace itself. From here you can navigate through the different tabs of the Workspace, and if you have sufficient permission, you can start running analyses. If you are only a Reader, you may need to “clone” (make your own copy) of the Workspace before you can start working. 4.4 Share a Workspace Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of the Workspace to open the Workspace. Opening a Workspace does not cost anything. Certain activities in the Workspace (such as running an analysis) will charge to the Workspace’s Billing Project. Workspace management (e.g. adding and removing members, editing the description) does not cost money. Click the teardrop button () on the right hand side to open the Workspace management menu. Click “Share” Enter the email address of the user or Group you’d like to share the Workspace with. If adding an individual, make sure to enter the account that they use to access AnVIL. If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page. Choose their permission level. Remember that all activity in the Workspace will be charged to the Workspace’s Billing Project, regardless of who conducts it, so only add members as “Writers” or “Owners” if they should be charging to the Workspace’s Billing Project. “Readers” can view all parts of the Workspace but cannot make edits or run analyses (i.e. they cannot spend money). They can also clone their own copy of the Workspace where they can conduct activity on their own Billing Project. Click “Save”. The user should now be able to see the Workspace when logged in to Terra. "],["billing.html", "Chapter 5 Billing 5.1 Create Google Billing Account 5.2 Add Terra to Google Billing Account 5.3 Add Members to Google Billing Account 5.4 Set Alerts for Google Billing 5.5 View Spend for Google Billing 5.6 Create Terra Billing Project 5.7 Add Member to Terra Billing Project 5.8 Disable Terra Billing Project", " Chapter 5 Billing Modules about billing and Billing Projects on Google Cloud Platform and Terra. 5.1 Create Google Billing Account Log in to the Google Cloud Platform console using your Google ID. Make sure to use the same Google account ID you use to log into Terra. If you are a first time user, don’t forget to claim your free credits! If you haven’t been to the console before, once you accept the Terms of Service you will be greeted with an invitation to “Try for Free.” Follow the instructions to sign up for a Billing Account and get your credits. Choose “Individual Account”. This “billing account” is just for managing billing, so you don’t need to be able to add your team members. You will need to give either a credit card or bank account for security. Don’t worry! You won’t be billed until you explicitly turn on automatic billing. You can view and edit your new Billing Account, by selecting “Billing” from the left-hand menu, or going directly to the billing console console.cloud.google.com/billing Clicking on the Billing Account name will allow you to manage the account, including accessing reports, setting alerts, and managing payments and billing. At any point, you can create additional Billing Accounts using the Create Account button. We generally recommend creating a new Billing Account for each funding source. 5.2 Add Terra to Google Billing Account This gives Terra permission to create projects and send charges to the Google Billing Account, and must be done by an administrator of the Google Billing Account. Terra needs to be added as a “Billing Account User”: Log in to the Google Cloud Platform console using your Google ID. Navigate to Billing You may be automatically directed to view a specific Billing Account. If you see information about a single account rather than a list of your Billing Accounts, you can get back to the list by clicking “Manage Billing Accounts” from the drop-down menu. Check the box next to the Billing Account you wish to add Terra to, click “ADD MEMBER”. Enter terra-billing@terra.bio in the text box. In the drop-down menu, mouse over Billing, then choose “Billing Account User”. Click “SAVE”. 5.3 Add Members to Google Billing Account Anyone you wish to add to the Billing Account will need their own Google ID. To add a member to a Billing Project: Log in to the Google Cloud Platform console using your Google ID. Navigate to Billing You may be automatically directed to view a specific Billing Account. If you see information about a single account rather than a list of your Billing Accounts, you can get back to the list by clicking “Manage Billing Accounts” from the drop-down menu. Check the box next to the Billing Account you wish to add a member to, click “ADD MEMBER”. Enter their Google ID in the text box. In the drop-down menu, mouse over Billing, then choose the appropriate role. Click “SAVE”. 5.4 Set Alerts for Google Billing Log in to the Google Cloud Platform console using the Google ID associated with your Google Cloud projects. Open the dropdown menu on the top left and click on Billing. You may be automatically directed to view a specific Billing Account. If you see information about a single account (and it’s not the one you’re interested in), you can get back to the list of all your Billing Accounts by clicking “Manage Billing Accounts” from the drop-down menu. Click on the name of the Billing Account you want to set alerts for. In the left-hand menu, click “Budgets & alerts”. Click the “Create Budget” tab. Enter a name for your budget, and then choose which projects you want to monitor. Then click “Next”. For Budget Type, select “Specified amount”. Enter the total budget amount for the month (you will set alerts at different thresholds in the next step). Click “Next” (do not click “Finish”). Enter the threshold amounts where you want to receive an alert. We recommend starting with 50% and 90%. You can set other alerts if you prefer. Check the box for “Email alerts to billing admins and users”, then click “Finish”. Now you (as the owner and admin), along with anyone you added with admin or user privileges (e.g. lab managers) will receive alerts when your lab members reach the specified spending thresholds. These emails will be sent to the Gmail accounts associated with the Billing Account. You can edit your budgets at any time by going to Billing > Budgets & alerts, and clicking on the name of the budget you want to edit. 5.5 View Spend for Google Billing You can always check your current spend through the Google Billing console, but remember There is a reporting delay (~1 day), so you cannot immediately see what an analysis cost Costs are reported at the level of Workspaces, so if there are multiple people using a Workspace, you will not be able to determine which of them was responsible for the charges. The Google Billing console displays information by Billing Account. To view spending: Log in to the Google Cloud Platform console using the Google ID associated with your Google Cloud projects. Open the dropdown menu on the top left and click on Billing. You may be automatically directed to view a specific Billing Account. If you see information about a single account (and it’s not the one you’re interested in), you can get back to the list of all your Billing Accounts by clicking “Manage Billing Accounts” from the drop-down menu. Click on the name of the Billing Account for the project you want to view. Look at the top of the Overview tab to see your month-to-date spending. Scroll further down the Overview tab to show your top projects. Click on the Reports tab to see more detailed information about each of your projects. This is probably the most useful tab for exploring costs of individual projects over time. Click on the Cost table tab to obtain a convenient table of spending per project. 5.6 Create Terra Billing Project Launch Terra and sign in with your Google account. If this is your first time logging in to Terra, you will need to accept the Terms of Service. In the drop-down menu on the left, navigate to “Billing”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Billing”. You can also navigate there directly with this link: https://anvil.terra.bio/#billing On the Billing page, click the “+ CREATE” button to create a new Billing Project. If prompted, select the Google account to use. If prompted, give Terra permission to manage Google Cloud Platform billing accounts. Enter a unique name for your Terra Billing Project and select the appropriate Google Billing Account. The name of the Terra Billing Project must: Only contain lowercase letters, numbers and hyphens Start with a lowercase letter Not end with a hyphen Be between 6 and 30 characters Select the Google Billing Account to use. All activities conducted under your new Terra Billing Project will charge to this Google Billing Account. If prompted, give Terra permission to manage Google Cloud Platform billing accounts. Click “CREATE BILLING PROJECT”. Your new Billing Project should now show up in the list of Billing Projects Owned by You. You can add additional members or can modify or deactivate the Billing Project at any time by clicking on its name in this list. The page doesn’t always update as soon as the Billing Project is created. If it’s been a couple of minutes and you don’t see a change, try refreshing the page. 5.7 Add Member to Terra Billing Project Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Billing”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Billing”. You can also navigate there directly with this link: https://anvil.terra.bio/#billing Click “Owned by You” and find the Billing Project. If you do not see the Billing Project in this list, then you are not an Owner and do not have permission to add members. Click on the name of the Billing Project. Click on the “Members” tab to view and manage members. Then click the “Add User” button. Enter the email address of the user or group you’d like to add the the Billing Project. If adding an individual, make sure to enter the account that they use to access AnVIL. If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page. If this user or group will need to add and remove other users of the Billing Project, check the Owner box. Otherwise leave it unchecked. It’s often a good idea to have at least one other Owner of a Billing Project in order to avoid getting locked out, in case the original owner leaves or loses access to their account. Click “ADD USER”. You should now see the user or group listed in the Billing Project members, along with the appropriate role. They should now be able to use the Billing Project to fund work on AnVIL. If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name. 5.8 Disable Terra Billing Project By default this module includes a warning to make sure people understand they will lose access to their Workspace buckets. You can remove the warning from this module by setting AnVIL_module_settings$warning to FALSE before running cow::borrow_chapter: AnVIL_module_settings <- list( warning = FALSE ) cow::borrow_chapter( doc_path = "child/_child_terra_billing_project_disable.Rmd", repo_name = "jhudsl/AnVIL_Template" ) Disabling a Billing Project makes Workspace contents inaccessible! Disabling a Billing Project disables funding to all Workspaces funded by the Billing Project. You will be unable to compute in these Workspaces, and you will lose access to any data stored in the Workspace buckets. It is sometimes possible to restore access by reactivating billing, but Google makes no promises about whether or how long the data will be recoverable. Make sure everyone with Workspaces funded by the Billing Project has saved anything they want to keep in another location before disabling the Billing Project. To disable a Terra Billing Project (i.e. remove the Google Billing Account that funds the Terra Billing Project): Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Billing”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Billing”. You can also navigate there directly with this link: https://anvil.terra.bio/#billing Click “Owned by You” and find the Billing Project. If you do not see the Billing Project in this list, then you are not an Owner and do not have permission to add members. Click on the name of the Billing Project. If you don’t see information about the Billing Account, click on “View billing account” to expand the Billing Account information. You may be prompted to enter your login information again. You should see the name of the Google Billing Account that is funding this Terra Billing Project. Click on the teardrop icon next to the name of the Billing Account. Click “Remove Billing Account”. Click OK to confirm that you want to disable funding for this Billing Project. The page should now indicate that there is no linked billing account. If necessary, you can restore funding to the Billing Project and associated Workspaces by clicking the teardrop icon and selecting “Change Billing Account”. However, Google makes no promises about how long the Workspace contents will remain available after you disable funding, so it is best not to rely on them. "],["onboarding.html", "Chapter 6 Onboarding 6.1 Create Google Account", " Chapter 6 Onboarding Joining a team on AnVIL. 6.1 Create Google Account If you do not already have a Google account that you would like to use for accessing Terra, create one now. If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions. "],["using-programming-platforms-on-anvil.html", "Chapter 7 Using programming platforms on AnVIL 7.1 Video overview on using Jupyter Notebooks 7.2 Launching Jupyter 7.3 Video overview on using Galaxy 7.4 Starting Galaxy 7.5 Navigating Galaxy 7.6 Deleting Galaxy 7.7 Video overview on using RStudio 7.8 Launching RStudio 7.9 Touring RStudio 7.10 Pausing RStudio 7.11 Deleting RStudio", " Chapter 7 Using programming platforms on AnVIL Modules about opening, touring, and closing AnVIL platforms 7.1 Video overview on using Jupyter Notebooks Here is a video tutorial that describes the basics of using Jupyter Notebook on AnVIL. 7.1.1 Objectives Start compute for your Jupyter environment Create notebook to perform analysis Stop compute to minimize expenses 7.1.2 Slides The slides for this tutorial are are located here. 7.2 Launching Jupyter AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down. Note that, in order to use Jupyter, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace). Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under Jupyter. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Configure any settings you need for your cloud environment. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Scroll down and click the “CREATE” button when you are satisfied with your setup. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook. Clicking on a Notebook name will open a static preview of the Notebook. To edit and run the Notebook, click the “OPEN” button. 7.3 Video overview on using Galaxy Here is a video tutorial that describes the basics of using Galaxy on AnVIL. 7.3.1 Objectives Start compute for your Galaxy on AnVIL Run tool to quality control sequencing reads Stop compute to minimize expenses 7.3.2 Slides The slides for this tutorial are are located here. 7.4 Starting Galaxy Note that, in order to use Galaxy, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace). Open your Workspace, and click on the “NOTEBOOKS” tab. Next, click on “Create a Cloud Environment for Galaxy”. You should see a popup window on the right side of the screen. Click on “NEXT” and “CREATE” to keep all settings as-is. This will take 8-10 minutes. When it is done, click “LAUNCH GALAXY”. 7.5 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. 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. 7.6 Deleting Galaxy Once you are done with your activity, you’ll need to shut down your Galaxy cloud environment. This frees up the cloud resources for others and minimizes computing cost. The following steps will delete your work, so make sure you are completely finished at this point. Otherwise, you will have to repeat your work from the previous steps. Return to AnVIL, and find the Galaxy logo that shows your cloud environment is running. Click on this logo: Next, click on “DELETE ENVIRONMENT OPTIONS”: Finally, select “Delete everything, including persistent disk”. Make sure you are done with the activity and then click “DELETE”. 7.7 Video overview on using RStudio Here is a video tutorial that describes the basics of using RStudio on AnVIL. 7.7.1 Objectives Start compute for your RStudio environment Tour RStudio on AnVIL Stop compute to minimize expenses 7.7.2 Slides The slides for this tutorial are are located here. 7.8 Launching RStudio AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down. Note that, in order to use RStudio, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace). Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under RStudio. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Click the “Create” button. Otherwise, click “CUSTOMIZE” to modify the environment for your needs. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. You should now see the RStudio interface with information about the version printed to the console. 7.9 Touring RStudio Next, we will be using RStudio and the package Glimma to create interactive plots. See this vignette for more information. The Bioconductor team has created a very useful package to programmatically interact with Terra and Google Cloud. Install the AnVIL package. It will make some steps easier as we go along. You can now quickly install precompiled binaries using the AnVIL package’s install() function. We will use it to install the Glimma package and the airway package. The airway package contains a SummarizedExperiment data class. This data describes an RNA-Seq experiment on four human airway smooth muscle cell lines treated with dexamethasone. {Note: for some of the packages, you will have to install packaged from the CRAN repository, using the install.packages() function. The examples will show you which install method to use.} <img src="07-using_platforms_modules_files/figure-html//1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_56.png" title="Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted." alt="Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted." width="100%" /> Load the example data. The multidimensional scaling (MDS) plot is frequently used to explore differences in samples. When this data is MDS transformed, the first two dimensions explain the greatest variance between samples, and the amount of variance decreases monotonically with increasing dimension. The following code will launch a new window where you can interact with the MDS plot. Change the colour_by setting to “groups” so you can easily distinguish between groups. In this data, the “group” is the treatment. You can download the interactive html file by clicking on “Save As”. You can also download plots and other files created directly in RStudio. To download the following plot, click on “Export” and save in your preferred format to the default directory. This saves the file in your cloud environment. You should see the plot in the “Files” pane. Select this file and click “More” > “Export” Select “Download” to save the file to your local machine. 7.10 Pausing RStudio The right-hand side icon reminds you that you are accruing cloud computing costs. If you don’t see this icon, you may need to scroll to the right. You should minimize charges when you are not performing an analysis. You can do this by clicking on the RStudio icon and selecting “Pause”. This will release the CPU and memory resources for other people to use. Note that your work will be saved in the environment and continue to accrue a very small cost. This work will be lost if the cloud environment gets deleted. If there is anything you would like to save permanently, it’s a good idea to copy it from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs. You can also pause your cloud environment(s) at https://anvil.terra.bio/#clusters. 7.11 Deleting RStudio Pausing your cloud environment only temporarily stops your work. When you are ready to delete the cloud environment, click on the RStudio icon on the right-hand side and select “Settings”. If you don’t see this icon, you may need to scroll to the right. Click on “Delete Environment”. If you are certain that you do not need the data and configuration on your disk, you should select “Delete everything, including persistent disk”. If there is anything you would like to save, open the compute environment and copy the file(s) from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs. Select “DELETE”. You can also delete your cloud environment(s) and disk storage at https://anvil.terra.bio/#clusters. "],["student-instructions.html", "Chapter 8 Student instructions 8.1 Student Account Setup 8.2 Student instructions for cloning a Workspace 8.3 Student instructions for launching Jupyter 8.4 Student instructions for launching RStudio", " Chapter 8 Student instructions Modules aimed at students in a course or workshop. 8.1 Student Account Setup In order to run your analyses, you will use the AnVIL cloud computing platform, so that you do not need to install everything on your own computer. The AnVIL (Analysis Visualization and Informatics Lab-space) platform is specially designed for analyzing biological data, and is used by scientists doing all sorts of biological research. AnVIL in a nutshell Behind the scenes, AnVIL relies on Google Cloud Platform to provide computing infrastructure. Basically, AnVIL lets you “rent” computers from Google (remotely). Whenever you run an analyses on AnVIL, it actually runs on one of Google’s computers, and AnVIL lets you see the results in your browser. AnVIL uses Terra to provide many computational tools useful for biological data analysis, such as RStudio, Galaxy, and Jupyter Notebooks. Terra takes care of installing these tools on Google’s computers, so that you can just start using them. 8.1.1 Create Google Account First, you will need to set up a (free) Google account. If you do not already have a Google account that you would like to use for accessing AnVIL, create one now. Alternatively, if you would like to create a Google account that is associated with an existing non-Gmail email address, you can follow these instructions. 8.1.2 Log In to Terra Next, make sure you can log in to Terra – you will use Terra to perform computations on AnVIL. You can access Terra by going to anvil.terra.bio, or by clicking the link on the AnVIL home page. Open Terra, and you should be prompted to sign in with your Google account. 8.1.3 Share Username Finally, make sure your instructor has your Google account username (e.g. myname@gmail.com), so they can give you access to everything you need. Make sure there are no typos! If you have multiple Google accounts, make sure you give them the username that you will be using to access AnVIL It is very important that you share the Google account you will be using to access AnVIL with with your instructor! Otherwise, the instructor cannot add you to Billing Projects or Workspaces, and you will be unable to proceed with your assignments. 8.2 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”). 8.2.1 With no variables set: This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”). On AnVIL, you access files and computers through 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. This will give you access to the files you will need (data, code) the computing environment you will use 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. To clone an AnVIL Workspace: Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab. Locate the Workspace specified by your instructor. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace specified by your instructor.) If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name specified by your instructor. You can also go directly to the Workspace by clicking this link: ask your instructor. Clone the workspace by clicking the teardrop button (). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace. You will see a popup box appear, asking you to configure your Workspace Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, \"ExampleWorkspace_Firstname_Lastname\". Select the Billing Project provided by your instructor. Leave the bottom two boxes as-is. Click “CLONE WORKSPACE”. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in. 8.2.2 With variables set: This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”). On AnVIL, you access files and computers through 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. This will give you access to the files you will need (data, code) the computing environment you will use 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. To clone an AnVIL Workspace: Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab. Locate the Workspace Example_Workspace. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace Example_Workspace.) If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name Example_Workspace. You can also go directly to the Workspace by clicking this link: http://example.com/. Clone the workspace by clicking the teardrop button (). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace. You will see a popup box appear, asking you to configure your Workspace Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, \"Example_Workspace_Firstname_Lastname\". Select the Billing Project Example Billing Project. Leave the bottom two boxes as-is. Click “CLONE WORKSPACE”. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in. 8.3 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. 8.3.1 Using default Jupyter environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under Jupyter. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook. 8.3.2 Using custom Jupyter environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under Jupyter. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Under “Application configuration” you will see a dropdown menu. Choose “Custom Environment”. Then copy the following link into “Container image” textbox: example docker Under “Startup script” you will see textbox. Copy the following link into the box: example startup script Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook. 8.4 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. 8.4.1 Using default RStudio environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under RStudio. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Click the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. You should now see the RStudio interface with information about the version printed to the console. 8.4.2 Using custom RStudio environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under RStudio. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Click “CUSTOMIZE” to adjust the settings for your environment. Under “Application configuration” you will see a dropdown menu. You can also enter text here. Copy the following link into the box: example docker Under “Startup script” you will see textbox. Copy the following link into the box: example startup script Leave everything else as-is. To create your RStudio Cloud Environment, click on the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. You should now see the RStudio interface with information about the version printed to the console. "],["user-management.html", "Chapter 9 User Management 9.1 Create Terra Group 9.2 Add Member to Terra Group 9.3 Find Group Email", " Chapter 9 User Management Modules about Groups and user management 9.1 Create Terra Group Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups Click “+ Create a New Group” Enter a name for your group. Names must be unique, so it’s often helpful to include your team’s name, the purpose of the group, and optionally the timeframe, if you will have similar groups in the future. Click “CREATE GROUP” Your new Group should now show up on the Group Management screen. Take note of the email address associated with your group. You will use this email to grant the group access to Billing Projects and Workspaces. 9.2 Add Member to Terra Group Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups Find the name of the Group you want to add someone to, and confirm that you have Admin privileges for the Group (you can only add and remove members to a Group if you are an Admin). Click on the name of the Group to view and manage members. Click on “+ Add User”. You will be prompted to enter the user’s AnVIL ID. Type in the user’s email address. Make sure this is the account that they will be using to access AnVIL. If this member will need to add and remove other members of the Group, check the box for “Can manage members (admin)”. This will add them as an “Admin” for the Group. Otherwise leave it unchecked, and they will be added as a “Member”. Admins and Members have equal access to any resources shared with the Group. Admins can manage Group membership - they can add, remove, or change the role of other Group members. Click ADD USER. This will take you back to the Group administration page. The new Group member will now be shown in the list of group members, along with their role. They should now have access to anything that the Group has been given access to. If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name. 9.3 Find Group Email Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups Find the name of the Group, then look in the “Group Email” column to find the email address associated with the Group. Copy this email address and paste it in as the username when adding people to Billing Projects and Workspaces. This will grant everyone in the Group access to the Billing Project or Workspace. "],["why-anvil.html", "Chapter 10 Why AnVIL 10.1 Why AnVIL for Instructors?", " Chapter 10 Why AnVIL Modules describing why AnVIL is useful for different personas. 10.1 Why AnVIL for Instructors? You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES! AnVIL provides all the advantages of a cloud computing environment: Version control: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably. Inclusivity: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications. Experience: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience. AnVIL is purpose-built for genomic data science: Tools: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them. Datasets: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing. Authenticity: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research. "],["instructor-modules.html", "Chapter 11 Instructor modules 11.1 Why AnVIL for Instructors? 11.2 Checklist Link 11.3 Checklist Timeline (premade content) 11.4 Recommendation to use STRIDES", " Chapter 11 Instructor modules Modules aimed at instructors. 11.1 Why AnVIL for Instructors? You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES! AnVIL provides all the advantages of a cloud computing environment: Version control: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably. Inclusivity: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications. Experience: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience. AnVIL is purpose-built for genomic data science: Tools: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them. Datasets: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing. Authenticity: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research. 11.2 Checklist Link Here is a checklist to help you keep track of the steps for setting up and teaching on AnVIL. Details about each of these steps can be found in the AnVIL Instructor Guide. Note that this checklist is written for workshop instructors as well as classroom instructors, so some of the “Event Setup” steps may not be applicable to you, depending on your teaching context. 11.3 Checklist Timeline (premade content) 1+ month before: Figure out how you will fund the class/workshop. Start working through INSTRUCTOR SETUP. It’s a good idea to get billing figured out with plenty of time to spare. Take some time to familiarize yourself with the content and make any desired updates or customizations. Do any necessary EVENT SETUP steps. ~1 week before: Start working through RUNNING THE CLASS. If possible, have students log in to AnVIL and send you their usernames, so you can add them to the Student Group ahead of time. This saves time on the day of the class. Do not add students to your Billing Project ahead of time. This prevents them from accruing costs. Day of (or shortly before): Add students to Billing Project. Have students clone the Workspace (They cannot do this until you have added them to the Billing Project. As soon as they do this, they can start computing.). After: Collect feedback, if you didn’t do it during the class/workshop. Work though EVENT WRAP-UP - until you shut things down, you will continue to accrue costs. 11.4 Recommendation to use STRIDES If you are new to AnVIL, we strongly recommend seeking funding through NHGRI / STRIDES for teaching your course. In order to prevent abuse, Google sets certain limits on cloud resources available to new users that can complicate teaching (e.g. project quotas). As you or your institution builds a payment history with Google, the limits on your accounts will be relaxed. In the meantime, STRIDES funding can help ensure your initial classes run smoothly. What is STRIDES? NHGRI’s strategic vision highlights the importance of training the next generation of genomic scientists. In collaboration with the NIH Office of Data Science Strategy, NHGRI makes funding available to AnVIL users through the STRIDES program, which aims to promote biological research in cloud environments. To inquire about funding your class on AnVIL, please contact help@lists.anvilproject.org. "],["about-the-authors.html", "About the Authors", " About the Authors These credits are based on our course contributors table guidelines.     Credits Names Pedagogy Lead Content Instructor(s) FirstName LastName Lecturer(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved Delivered the course in some way - video or audio Content Author(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved If any other authors besides lead instructor Content Contributor(s) (include section name/link in parentheses) - make new line if more than one section involved Wrote less than a chapter AnVIL instructions: Katherine Cox, Ava Hoffman, Elizabeth Humphries Content Editor(s)/Reviewer(s) Checked your content Content Director(s) Helped guide the content direction Content Consultants (include chapter name/link in parentheses or word “General”) - make new line if more than one chapter involved Gave high level advice on content AnVIL instructions: Allie Cliffe Acknowledgments Gave small assistance to content but not to the level of consulting Production Content Publisher(s) Helped with publishing platform Content Publishing Reviewer(s) Reviewed overall content and aesthetics on publishing platform Technical Course Publishing Engineer(s) Helped with the code for the technical aspects related to the specific course generation Template Publishing Engineers Candace Savonen, Carrie Wright Publishing Maintenance Engineer Candace Savonen Technical Publishing Stylists Carrie Wright, Candace Savonen Package Developers (ottrpal) John Muschelli, Candace Savonen, Carrie Wright Art and Design Illustrator(s) Created graphics for the course Figure Artist(s) Created figures/plots for course Videographer(s) Filmed videos Videography Editor(s) Edited film Audiographer(s) Recorded audio Audiography Editor(s) Edited audio recordings Funding Funder(s) Institution/individual who funded course including grant number Funding Staff Staff members who help with funding   ## ─ Session info ─────────────────────────────────────────────────────────────── ## setting value ## version R version 4.0.2 (2020-06-22) ## os Ubuntu 20.04.5 LTS ## system x86_64, linux-gnu ## ui X11 ## language (EN) ## collate en_US.UTF-8 ## ctype en_US.UTF-8 ## tz Etc/UTC ## date 2023-07-18 ## ## ─ Packages ─────────────────────────────────────────────────────────────────── ## package * version date lib source ## assertthat 0.2.1 2019-03-21 [1] RSPM (R 4.0.5) ## bookdown 0.24 2023-03-28 [1] Github (rstudio/bookdown@88bc4ea) ## bslib 0.4.2 2022-12-16 [1] CRAN (R 4.0.2) ## cachem 1.0.7 2023-02-24 [1] CRAN (R 4.0.2) ## callr 3.5.0 2020-10-08 [1] RSPM (R 4.0.2) ## cli 3.6.1 2023-03-23 [1] CRAN (R 4.0.2) ## crayon 1.3.4 2017-09-16 [1] RSPM (R 4.0.0) ## desc 1.2.0 2018-05-01 [1] RSPM (R 4.0.3) ## devtools 2.3.2 2020-09-18 [1] RSPM (R 4.0.3) ## digest 0.6.25 2020-02-23 [1] RSPM (R 4.0.0) ## ellipsis 0.3.1 2020-05-15 [1] RSPM (R 4.0.3) ## evaluate 0.20 2023-01-17 [1] CRAN (R 4.0.2) ## fansi 0.4.1 2020-01-08 [1] RSPM (R 4.0.0) ## fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.0.2) ## fs 1.5.0 2020-07-31 [1] RSPM (R 4.0.3) ## glue 1.4.2 2020-08-27 [1] RSPM (R 4.0.5) ## hms 0.5.3 2020-01-08 [1] RSPM (R 4.0.0) ## htmltools 0.5.5 2023-03-23 [1] CRAN (R 4.0.2) ## jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.0.2) ## jsonlite 1.7.1 2020-09-07 [1] RSPM (R 4.0.2) ## knitr 1.33 2023-03-28 [1] Github (yihui/knitr@a1052d1) ## lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.0.2) ## magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.0.2) ## memoise 2.0.1 2021-11-26 [1] CRAN (R 4.0.2) ## ottrpal 1.0.1 2023-03-28 [1] Github (jhudsl/ottrpal@151e412) ## pillar 1.9.0 2023-03-22 [1] CRAN (R 4.0.2) ## pkgbuild 1.1.0 2020-07-13 [1] RSPM (R 4.0.2) ## pkgconfig 2.0.3 2019-09-22 [1] RSPM (R 4.0.3) ## pkgload 1.1.0 2020-05-29 [1] RSPM (R 4.0.3) ## prettyunits 1.1.1 2020-01-24 [1] RSPM (R 4.0.3) ## processx 3.4.4 2020-09-03 [1] RSPM (R 4.0.2) ## ps 1.4.0 2020-10-07 [1] RSPM (R 4.0.2) ## R6 2.4.1 2019-11-12 [1] RSPM (R 4.0.0) ## readr 1.4.0 2020-10-05 [1] RSPM (R 4.0.2) ## remotes 2.2.0 2020-07-21 [1] RSPM (R 4.0.3) ## rlang 1.1.0 2023-03-14 [1] CRAN (R 4.0.2) ## rmarkdown 2.10 2023-03-28 [1] Github (rstudio/rmarkdown@02d3c25) ## rprojroot 2.0.3 2022-04-02 [1] CRAN (R 4.0.2) ## sass 0.4.5 2023-01-24 [1] CRAN (R 4.0.2) ## sessioninfo 1.1.1 2018-11-05 [1] RSPM (R 4.0.3) ## stringi 1.5.3 2020-09-09 [1] RSPM (R 4.0.3) ## stringr 1.4.0 2019-02-10 [1] RSPM (R 4.0.3) ## testthat 3.0.1 2023-03-28 [1] Github (R-lib/testthat@e99155a) ## tibble 3.2.1 2023-03-20 [1] CRAN (R 4.0.2) ## usethis 1.6.3 2020-09-17 [1] RSPM (R 4.0.2) ## utf8 1.1.4 2018-05-24 [1] RSPM (R 4.0.3) ## vctrs 0.6.1 2023-03-22 [1] CRAN (R 4.0.2) ## withr 2.3.0 2020-09-22 [1] RSPM (R 4.0.2) ## xfun 0.26 2023-03-28 [1] Github (yihui/xfun@74c2a66) ## yaml 2.2.1 2020-02-01 [1] RSPM (R 4.0.3) ## ## [1] /usr/local/lib/R/site-library ## [2] /usr/local/lib/R/library "],["references.html", "Chapter 12 References", " Chapter 12 References "],["404.html", "Page not found", " Page not found The page you requested cannot be found (perhaps it was moved or renamed). You may want to try searching to find the page's new location, or use the table of contents to find the page you are looking for. "]] diff --git a/docs/no_toc/student-instructions.html b/docs/no_toc/student-instructions.html new file mode 100644 index 0000000..a2883a7 --- /dev/null +++ b/docs/no_toc/student-instructions.html @@ -0,0 +1,696 @@ + + + + + + + Chapter 8 Student instructions | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 8 Student instructions

+

Modules aimed at students in a course or workshop.

+


+
+

8.1 Student Account Setup

+
+

In order to run your analyses, you will use the AnVIL cloud computing platform, so that you do not need to install everything on your own computer. The AnVIL (Analysis Visualization and Informatics Lab-space) platform is specially designed for analyzing biological data, and is used by scientists doing all sorts of biological research.

+
+

AnVIL in a nutshell

+
    +
  • Behind the scenes, AnVIL relies on Google Cloud Platform to provide computing infrastructure. Basically, AnVIL lets you “rent” computers from Google (remotely). Whenever you run an analyses on AnVIL, it actually runs on one of Google’s computers, and AnVIL lets you see the results in your browser.
  • +
  • AnVIL uses Terra to provide many computational tools useful for biological data analysis, such as RStudio, Galaxy, and Jupyter Notebooks. Terra takes care of installing these tools on Google’s computers, so that you can just start using them.
  • +
+
+
+

8.1.1 Create Google Account

+

First, you will need to set up a (free) Google account.

+

If you do not already have a Google account that you would like to use for accessing AnVIL, create one now.

+
    +
  • Alternatively, if you would like to create a Google account that is associated with an existing non-Gmail email address, you can follow these instructions.
  • +
+
+
+

8.1.2 Log In to Terra

+

Next, make sure you can log in to Terra – you will use Terra to perform computations on AnVIL.

+

You can access Terra by going to anvil.terra.bio, or by clicking the link on the AnVIL home page.

+

Screenshot of the AnVIL home page. The section descring Terra is highlighted.

+

Open Terra, and you should be prompted to sign in with your Google account.

+
+
+

8.1.3 Share Username

+

Finally, make sure your instructor has your Google account username (e.g. myname@gmail.com), so they can give you access to everything you need.

+
    +
  • Make sure there are no typos!
  • +
  • If you have multiple Google accounts, make sure you give them the username that you will be using to access AnVIL
  • +
+
+

It is very important that you share the Google account you will be using to access AnVIL with with your instructor! Otherwise, the instructor cannot add you to Billing Projects or Workspaces, and you will be unable to proceed with your assignments.

+
+
+
+
+
+

8.2 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”).

+
+

8.2.1 With no variables set:

+
+
+

This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”).

+
+

On AnVIL, you access files and computers through 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. This will give you access to

+
    +
  • the files you will need (data, code)
  • +
  • the computing environment you will use
  • +
+
+

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.

+
+

To clone an AnVIL Workspace:

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab.

    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected.  The "MY WORKSPACES" tab and the column showing permission level are highlighted.

  6. +
  7. Locate the Workspace specified by your instructor. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace specified by your instructor.)

    +
      +
    1. If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”.
    2. +
    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected. The "MY WORKSPACES" tab and a Workspace name are highlighted.

    +
      +
    1. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name specified by your instructor.
    2. +
    +

    Screenshot of Terra Workspaces page with the "PUBLIC" tab selected. The "PUBLIC" tab and search box are highlighted.  The the user has typed in the term "sars". A Workspace related to SARS appears in the results.

    +
      +
    1. You can also go directly to the Workspace by clicking this link: ask your instructor.
    2. +
  8. +
  9. Clone the workspace by clicking the teardrop button (teardrop button). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace.

    +

    Screenshot showing the teardrop button. The button has been clicked revealing the "clone" option. The Clone option and the teardrop button are highlighted. +Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted.

  10. +
  11. You will see a popup box appear, asking you to configure your Workspace

    +
      +
    1. Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, "ExampleWorkspace_Firstname_Lastname".
    2. +
    3. Select the Billing Project provided by your instructor.
    4. +
    5. Leave the bottom two boxes as-is.
    6. +
    7. Click “CLONE WORKSPACE”.
    8. +
    +

    Screenshot showing the "clone a workspace" popout. The Workspace name, Billing Project, and Clone Workspace button have been filled in and highlighted.

  12. +
  13. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in.

  14. +
+
+
+
+

8.2.2 With variables set:

+
+
+

This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”).

+
+

On AnVIL, you access files and computers through 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. This will give you access to

+
    +
  • the files you will need (data, code)
  • +
  • the computing environment you will use
  • +
+
+

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.

+
+

To clone an AnVIL Workspace:

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab.

    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected.  The "MY WORKSPACES" tab and the column showing permission level are highlighted.

  6. +
  7. Locate the Workspace Example_Workspace. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace Example_Workspace.)

    +
      +
    1. If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”.
    2. +
    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected. The "MY WORKSPACES" tab and a Workspace name are highlighted.

    +
      +
    1. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name Example_Workspace.
    2. +
    +

    Screenshot of Terra Workspaces page with the "PUBLIC" tab selected. The "PUBLIC" tab and search box are highlighted.  The the user has typed in the term "sars". A Workspace related to SARS appears in the results.

    +
      +
    1. You can also go directly to the Workspace by clicking this link: http://example.com/.
    2. +
  8. +
  9. Clone the workspace by clicking the teardrop button (teardrop button). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace.

    +

    Screenshot showing the teardrop button. The button has been clicked revealing the "clone" option. The Clone option and the teardrop button are highlighted. +Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted.

  10. +
  11. You will see a popup box appear, asking you to configure your Workspace

    +
      +
    1. Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, "Example_Workspace_Firstname_Lastname".
    2. +
    3. Select the Billing Project Example Billing Project.
    4. +
    5. Leave the bottom two boxes as-is.
    6. +
    7. Click “CLONE WORKSPACE”.
    8. +
    +

    Screenshot showing the "clone a workspace" popout. The Workspace name, Billing Project, and Clone Workspace button have been filled in and highlighted.

  12. +
  13. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in.

  14. +
+
+
+
+
+

8.3 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.
  • +
+
+

8.3.1 Using default Jupyter environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under Jupyter.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted.

  10. +
  11. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating".

  16. +
  17. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted

  18. +
  19. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook.

    +

    Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted.

  20. +
+
+
+
+

8.3.2 Using custom Jupyter environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under Jupyter.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted.

  10. +
  11. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Under “Application configuration” you will see a dropdown menu. Choose “Custom Environment”. Then copy the following link into “Container image” textbox:

    +

    example docker

    +

    Screenshot of the Jupyter Cloud Environment "Application configuration" dropdown. The option "Custom Environment" is highlighted.

    +

    Screenshot of the Jupyter Cloud Environment dialog box. "Custom Environment" has been selected in the "Application configuration" dropdown menu, and the "Container image" textbox is highlighted.

  14. +
  15. Under “Startup script” you will see textbox. Copy the following link into the box:

    +

    example startup script

    +

    Screenshot of the Jupyter Cloud Environment customization dialogue box. The textbox labeled "Startup script" is highlighted.

  16. +
  17. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted.

  18. +
  19. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating".

  20. +
  21. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted

  22. +
  23. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook.

    +

    Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted.

  24. +
+
+
+
+
+

8.4 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.
  • +
+
+

8.4.1 Using default RStudio environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under RStudio.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted.

  10. +
  11. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Click the “CREATE” button.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating".

  16. +
  17. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running".

  18. +
  19. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed.

    +

    Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted.

  20. +
  21. You should now see the RStudio interface with information about the version printed to the console.

    +

    Screenshot of the RStudio environment interface.

  22. +
+
+
+
+

8.4.2 Using custom RStudio environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under RStudio.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted.

  10. +
  11. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Click “CUSTOMIZE” to adjust the settings for your environment.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CUSTOMIZE" button is highlighted.

  14. +
  15. Under “Application configuration” you will see a dropdown menu. You can also enter text here. Copy the following link into the box:

    +

    example docker

    +

    Screenshot of the RStudio Cloud Environment customization dialogue box. The dropdown menu labeled "Application configuration" is highlighted.

  16. +
  17. Under “Startup script” you will see textbox. Copy the following link into the box:

    +

    example startup script

    +

    Screenshot of the RStudio Cloud Environment customization dialogue box. The textbox labeled "Startup script" is highlighted.

  18. +
  19. Leave everything else as-is. To create your RStudio Cloud Environment, click on the “CREATE” button.

    +

    Screenshot of the RStudio Cloud Environment customization dialogue box. The "CREATE" button is highlighted.

  20. +
  21. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating".

  22. +
  23. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running".

  24. +
  25. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed.

    +

    Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted.

  26. +
  27. You should now see the RStudio interface with information about the version printed to the console.

    +

    Screenshot of the RStudio environment interface.

  28. +
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/user-management.html b/docs/no_toc/user-management.html new file mode 100644 index 0000000..addc6c1 --- /dev/null +++ b/docs/no_toc/user-management.html @@ -0,0 +1,462 @@ + + + + + + + Chapter 9 User Management | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 9 User Management

+

Modules about Groups and user management

+


+
+

9.1 Create Terra Group

+
+
    +
  1. Launch Terra and sign in with your Google account.

  2. +
  3. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups

    +

    Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups".

  4. +
  5. Click “+ Create a New Group”

    +

    Screenshot of the Terra Group page. The "Create a New Group" button is highlighted.

  6. +
  7. Enter a name for your group. Names must be unique, so it’s often helpful to include your team’s name, the purpose of the group, and optionally the timeframe, if you will have similar groups in the future.

    +

    Screenshot of the Terra Group page with Create New Group pop out box. The textbox is highlighted and has been filled in with the Group name.

  8. +
  9. Click “CREATE GROUP”

    +

    Screenshot of the Terra Group page with Create New Group pop out box. The "CREATE GROUP" button is highlighted.

  10. +
  11. Your new Group should now show up on the Group Management screen. Take note of the email address associated with your group. You will use this email to grant the group access to Billing Projects and Workspaces.

    +

    Screenshot of the Terra Groups page.  The Group email address is highlighted.

  12. +
+
+
+
+

9.2 Add Member to Terra Group

+
+
    +
  1. Launch Terra and sign in with your Google account.

  2. +
  3. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups

    +

    Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups".

  4. +
  5. Find the name of the Group you want to add someone to, and confirm that you have Admin privileges for the Group (you can only add and remove members to a Group if you are an Admin). Click on the name of the Group to view and manage members.

    +

    Screenshot of the Terra Groups page.  The Group Name and Role are highlighted.

  6. +
  7. Click on “+ Add User”. You will be prompted to enter the user’s AnVIL ID.

    +

    Screenshot of a Terra Group management page. The "+ Add User" button is highlighted.

  8. +
  9. Type in the user’s email address. Make sure this is the account that they will be using to access AnVIL.

    +

    Screenshot of the dialog box for adding Terra Group members. The textbox labeled "User email" is highlighted and an email address has been entered.

  10. +
  11. If this member will need to add and remove other members of the Group, check the box for “Can manage members (admin)”. This will add them as an “Admin” for the Group. Otherwise leave it unchecked, and they will be added as a “Member”.

    +
      +
    • Admins and Members have equal access to any resources shared with the Group.
    • +
    • Admins can manage Group membership - they can add, remove, or change the role of other Group members.
    • +
    +

    Screenshot of the dialog box for adding Terra Group members. The checkbox labeled "Can manage members (admin)" is highlighted.

  12. +
  13. Click ADD USER. This will take you back to the Group administration page.

    +

    Screenshot of the dialog box for adding Terra Group members. The button labeled "ADD USER" is highlighted.

  14. +
  15. The new Group member will now be shown in the list of group members, along with their role. They should now have access to anything that the Group has been given access to.

    +

    Screenshot of a Terra Group management page. The name and role of the new member is highlighted.

  16. +
+

If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name.

+

Screenshot of a Terra Group management page. The teardrop button next to one of the members is highlighted.

+
+
+
+

9.3 Find Group Email

+
+
    +
  1. Launch Terra and sign in with your Google account.

  2. +
  3. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups

    +

    Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups".

  4. +
  5. Find the name of the Group, then look in the “Group Email” column to find the email address associated with the Group. Copy this email address and paste it in as the username when adding people to Billing Projects and Workspaces. This will grant everyone in the Group access to the Billing Project or Workspace.

    +

    Screenshot of the Terra Groups page.  A Group email address is highlighted.

  6. +
+
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/using-programming-platforms-on-anvil.html b/docs/no_toc/using-programming-platforms-on-anvil.html new file mode 100644 index 0000000..e540f63 --- /dev/null +++ b/docs/no_toc/using-programming-platforms-on-anvil.html @@ -0,0 +1,616 @@ + + + + + + + Chapter 7 Using programming platforms on AnVIL | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 7 Using programming platforms on AnVIL

+

Modules about opening, touring, and closing AnVIL platforms

+


+
+

7.1 Video overview on using Jupyter Notebooks

+

Here is a video tutorial that describes the basics of using Jupyter Notebook on AnVIL.

+ +
+

7.1.1 Objectives

+
    +
  • Start compute for your Jupyter environment
  • +
  • Create notebook to perform analysis
  • +
  • Stop compute to minimize expenses
  • +
+
+
+

7.1.2 Slides

+

The slides for this tutorial are are located here.

+
+
+
+

7.2 Launching Jupyter

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down.

+
+

Note that, in order to use Jupyter, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace).

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under Jupyter.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted.

  10. +
  11. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Configure any settings you need for your cloud environment. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Scroll down and click the “CREATE” button when you are satisfied with your setup.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating".

  16. +
  17. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted

  18. +
  19. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook.

    +

    Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted.

  20. +
  21. Clicking on a Notebook name will open a static preview of the Notebook. To edit and run the Notebook, click the “OPEN” button.

    +

    Screenshot of a preview of a Jupyter Notebook in a Terra Workspace.  The "OPEN" button is highlighted.

  22. +
+
+
+
+

7.3 Video overview on using Galaxy

+

Here is a video tutorial that describes the basics of using Galaxy on AnVIL.

+ +
+

7.3.1 Objectives

+
    +
  • Start compute for your Galaxy on AnVIL
  • +
  • Run tool to quality control sequencing reads
  • +
  • Stop compute to minimize expenses
  • +
+
+
+

7.3.2 Slides

+

The slides for this tutorial are are located here.

+
+
+
+

7.4 Starting Galaxy

+
+

Note that, in order to use Galaxy, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace).

+

Open your Workspace, and click on the “NOTEBOOKS” tab. Next, click on “Create a Cloud Environment for Galaxy”. You should see a popup window on the right side of the screen. Click on “NEXT” and “CREATE” to keep all settings as-is. This will take 8-10 minutes. When it is done, click “LAUNCH GALAXY”.

+

Screenshot of the Workspace Notebooks tab. The notebook tab name and the plus button that starts a cloud environment for Galaxy have been highlighted,

+
+
+ +
+

7.6 Deleting Galaxy

+
+

Once you are done with your activity, you’ll need to shut down your Galaxy cloud environment. This frees up the cloud resources for others and minimizes computing cost. The following steps will delete your work, so make sure you are completely finished at this point. Otherwise, you will have to repeat your work from the previous steps.

+

Return to AnVIL, and find the Galaxy logo that shows your cloud environment is running. Click on this logo:

+

Screenshot of the Workspace menu. The currently running Galaxy cloud environment logo on the top right of the page is highlighted.

+

Next, click on “DELETE ENVIRONMENT OPTIONS”:

+

Screenshot of the cloud environment pop out menu. The “DELETE ENVIRONMENT OPTIONS” link is highlighted.

+

Finally, select “Delete everything, including persistent disk”. Make sure you are done with the activity and then click “DELETE”.

+

Screenshot of the cloud environment pop out menu. The “Delete everything, including persistent disk” radio button has been checked and is highlighted. The “DELETE” button is highlighted.

+
+
+
+

7.7 Video overview on using RStudio

+

Here is a video tutorial that describes the basics of using RStudio on AnVIL.

+ +
+

7.7.1 Objectives

+
    +
  • Start compute for your RStudio environment
  • +
  • Tour RStudio on AnVIL
  • +
  • Stop compute to minimize expenses
  • +
+
+
+

7.7.2 Slides

+

The slides for this tutorial are are located here.

+
+
+
+

7.8 Launching RStudio

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down.

+
+

Note that, in order to use RStudio, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace).

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under RStudio.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted.

  10. +
  11. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Click the “Create” button.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. Otherwise, click “CUSTOMIZE” to modify the environment for your needs.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CUSTOMIZE" button is highlighted.

  16. +
  17. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating".

  18. +
  19. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running".

  20. +
  21. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed.

    +

    Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted.

  22. +
  23. You should now see the RStudio interface with information about the version printed to the console.

    +

    Screenshot of the RStudio environment interface.

  24. +
+
+
+
+

7.9 Touring RStudio

+
+

Next, we will be using RStudio and the package Glimma to create interactive plots. See this vignette for more information.

+
    +
  1. The Bioconductor team has created a very useful package to programmatically interact with Terra and Google Cloud. Install the AnVIL package. It will make some steps easier as we go along.

    +

    Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted.

  2. +
  3. You can now quickly install precompiled binaries using the AnVIL package’s install() function. We will use it to install the Glimma package and the airway package. The airway package contains a SummarizedExperiment data class. This data describes an RNA-Seq experiment on four human airway smooth muscle cell lines treated with dexamethasone.

  4. +
+

{Note: for some of the packages, you will have to install packaged from the CRAN repository, using the install.packages() function. The examples will show you which install method to use.}

+
<img src="07-using_platforms_modules_files/figure-html//1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_56.png" title="Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted." alt="Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted." width="100%" />
+
    +
  1. Load the example data.

    +

    Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted.

  2. +
  3. The multidimensional scaling (MDS) plot is frequently used to explore differences in samples. When this data is MDS transformed, the first two dimensions explain the greatest variance between samples, and the amount of variance decreases monotonically with increasing dimension. The following code will launch a new window where you can interact with the MDS plot.

    +

    Screenshot of the Glimma popout showing the data in an MDS plot. All data points are blue.

  4. +
  5. Change the colour_by setting to “groups” so you can easily distinguish between groups. In this data, the “group” is the treatment.

    +

    Screenshot of the Glimma popout showing the data in an MDS plot. Data points are colored blue and orange by group. The colour by dropdown menu on the interactive plot is hightlighted.

  6. +
  7. You can download the interactive html file by clicking on “Save As”.

    +

    Screenshot of the Glimma popout showing the data in an MDS plot. The Save As menu is highlighted.

  8. +
  9. You can also download plots and other files created directly in RStudio. To download the following plot, click on “Export” and save in your preferred format to the default directory. This saves the file in your cloud environment.

    +

    Screenshot of the RStudio interface. A plot has been created. The Export menu has been highlighted.

  10. +
  11. You should see the plot in the “Files” pane.

    +

    Screenshot of the RStudio interface. A plot has been created. The saved pdf file is now visible under the "Files" pane.

  12. +
  13. Select this file and click “More” > “Export”

    +

    Screenshot of the RStudio interface. A plot has been created. The saved pdf file is now visible under the "Files" pane. The "More" and "Export" menus have been highlighted.

  14. +
  15. Select “Download” to save the file to your local machine.

    +

    Screenshot of the RStudio interface. The popup to download the selected file has been highlighted,

  16. +
+
+
+
+

7.10 Pausing RStudio

+
+
    +
  1. The right-hand side icon reminds you that you are accruing cloud computing costs. If you don’t see this icon, you may need to scroll to the right.

    +

    Screenshot of the RStudio interface. The icon on the right showing that the cloud environment is running is highlighted.

  2. +
  3. You should minimize charges when you are not performing an analysis. You can do this by clicking on the RStudio icon and selecting “Pause”. This will release the CPU and memory resources for other people to use. Note that your work will be saved in the environment and continue to accrue a very small cost. This work will be lost if the cloud environment gets deleted. If there is anything you would like to save permanently, it’s a good idea to copy it from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs.

    +

    Screenshot of the RStudio menu. The pause button which stops the cloud environment is highlighted.

  4. +
+
+

You can also pause your cloud environment(s) at https://anvil.terra.bio/#clusters.

+
+
+
+
+

7.11 Deleting RStudio

+
+
    +
  1. Pausing your cloud environment only temporarily stops your work. When you are ready to delete the cloud environment, click on the RStudio icon on the right-hand side and select “Settings”. If you don’t see this icon, you may need to scroll to the right.

    +

    Screenshot of the Workspace page. The RStudio icon associated with the cloud environment is highlighted. The Settings button is also highlighted

  2. +
  3. Click on “Delete Environment”.

    +

    Screenshot of the cloud environment popout. "Delete environment" is highlighted.

  4. +
  5. If you are certain that you do not need the data and configuration on your disk, you should select “Delete everything, including persistent disk”. If there is anything you would like to save, open the compute environment and copy the file(s) from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs.

    +

    Screenshot of the cloud environment popout. "Delete everything, including persistent disk" is highlighted.

  6. +
  7. Select “DELETE”.

    +

    Screenshot of the cloud environment popout. "Delete" is highlighted.

  8. +
+
+

You can also delete your cloud environment(s) and disk storage at https://anvil.terra.bio/#clusters.

+
+
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/why-anvil.html b/docs/no_toc/why-anvil.html new file mode 100644 index 0000000..bbc394f --- /dev/null +++ b/docs/no_toc/why-anvil.html @@ -0,0 +1,422 @@ + + + + + + + Chapter 10 Why AnVIL | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 10 Why AnVIL

+

Modules describing why AnVIL is useful for different personas.

+


+
+

10.1 Why AnVIL for Instructors?

+
+

You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES!

+

AnVIL provides all the advantages of a cloud computing environment:

+
    +
  • Version control: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably.
  • +
  • Inclusivity: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications.
  • +
  • Experience: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience.
  • +
+

AnVIL is purpose-built for genomic data science:

+
    +
  • Tools: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them.
  • +
  • Datasets: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing.
  • +
  • Authenticity: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research.
  • +
+
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/no_toc/workspaces.html b/docs/no_toc/workspaces.html new file mode 100644 index 0000000..95915d4 --- /dev/null +++ b/docs/no_toc/workspaces.html @@ -0,0 +1,487 @@ + + + + + + + Chapter 4 Workspaces | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 4 Workspaces

+

Modules about Terra Workspaces

+


+
+

4.1 Clone a Workspace

+
    +
  1. Launch Terra

  2. +
  3. Locate the Workspace you want to clone. If a Workspace has been shared with you ahead of time, it will appear in “MY WORKSPACES”. You can clone a Workspace that was shared with you to perform your own analyses. In the screenshot below, no Workspaces have been shared.

    +

    Screenshot of Terra "MY WORKSPACES" menu. The "MY WORKSPACES" tab is highlighted. No Workspaces are visible because none have been shared with the user. There is an option to create a new Workspace.

  4. +
  5. If a Workspace hasn’t been shared with you, navigate to the “FEATURED” or “PUBLIC” Workspace tabs.

    +

    Screenshot of Terra "My Workspaces" menu. The "FEATURED" tab is highlighted.

  6. +
  7. Use the search box to find the Workspace you want to clone.

    +

    Screenshot of Terra "My Workspaces" menu. The search bar is highlighted and the user has typed in the term "COVID-19". A Workspace related to COVID-19 appears in the results.

  8. +
  9. Click the teardrop button on the far right next to the Workspace you want to clone. Click “Clone”. You can also clone the Workspace from the Workspace Dashboard instead of the search results.

    +

    Screenshot of Terra "My Workspaces" menu with the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted. +Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted.

  10. +
  11. You will see a popup box appear. Name your Workspace and select the appropriate Terra Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). Remember that each Workspace should have its own Billing Project.

    +

    Screenshot of the "clone workspace" Terra popup dialog box. The Workspace name and Billing Project dropdown are highlighted. Text has been filled in for the Workspace name as "Lab-member-1-workspace-2".

  12. +
  13. If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated.

    +

    Screenshot of Terra popup dialog box for creating a new Workspace. The drop-down menu labeled "Authorization domain" is highlighted.

  14. +
  15. Click “CLONE WORKSPACE”. The new Workspace should now show up under your Workspaces.

    +

    Screenshot of Terra popup dialog box for creating a new Workspace. The "Clone Workspace" button is highlighted.

  16. +
+
+
+

4.2 Create a Workspace

+
    +
  1. Launch Terra

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the plus icon near the top of left of the page.

    +

    Screenshot of Terra Workspaces page.  The "+" is highlighted.

  6. +
  7. Name your Workspace and select the appropriate Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it).

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The text box labeled "Workspace name" and the drop-down menu labeled "Billing project" are highlighted.

  8. +
  9. If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated.

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The drop-down menu labeled "Authorization domain" is highlighted.

  10. +
  11. Click “CREATE WORKSPACE”. The new Workspace should now show up under your Workspaces.

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The "Create Workspace" button is highlighted.

  12. +
+
+
+

4.3 Open a Workspace

+
    +
  1. Launch Terra

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. You are automatically directed to the “My Workspaces” tab. Here you can see any Workspaces that have been shared with you, along with your permission level.

    +

    Screenshot of Terra Workspaces page with the "My Workspaces" tab selected.  The "My Workspaces" tab and the column showing permission level are highlighted.

    +
      +
    • Reader means you can open the Workspace and see everything, but can’t do any computations or make any edits.
    • +
    • Writer means you can run computations, which will charge costs to the Workspace’s Billing Project. Writers can also make edits to the Workspace.
    • +
    • Owner is similar to Writer, but also allows you to control who can access the Workspace.
    • +
  6. +
  7. Click on the name of a Workspace to open it. Opening and viewing a Workspace does not cost anything.

    +

    Screenshot of Terra Workspaces page with the "My Workspaces" tab selected.  The name of one of the Workspaces is highlighted.

  8. +
  9. When you open a Workspace, you are directed to the Workspace Dashboard. This generally has a description of the Workspace contents, as well as some useful details about the Workspace itself.

    +

    Screenshot of a Terra Workspace.  The "Dashboard" is highlighted.

  10. +
+

From here you can navigate through the different tabs of the Workspace, and if you have sufficient permission, you can start running analyses. If you are only a Reader, you may need to “clone” (make your own copy) of the Workspace before you can start working.

+
+
+

4.4 Share a Workspace

+
    +
  1. Launch Terra

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of the Workspace to open the Workspace. Opening a Workspace does not cost anything. Certain activities in the Workspace (such as running an analysis) will charge to the Workspace’s Billing Project. Workspace management (e.g. adding and removing members, editing the description) does not cost money.

    +

    Screenshot of Terra Workspace page.  The name of a Workspace is highlighted.

  6. +
  7. Click the teardrop button (teardrop button) on the right hand side to open the Workspace management menu. Click “Share”

    +

    Screenshot of an individual Terra Workspace dashboard page.  The button for extending the Workspaces's drop-down menu is highlighted, and the menu item "Share" is highlighted.

  8. +
  9. Enter the email address of the user or Group you’d like to share the Workspace with.

    +
      +
    • If adding an individual, make sure to enter the account that they use to access AnVIL.
    • +
    • If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page.
    • +
    +

    Screenshot of the dialog box for sharing a Terra Workspace.  The text box labeled "User email" is highlighted.

  10. +
  11. Choose their permission level.

    +
      +
    • Remember that all activity in the Workspace will be charged to the Workspace’s Billing Project, regardless of who conducts it, so only add members as “Writers” or “Owners” if they should be charging to the Workspace’s Billing Project.
    • +
    • “Readers” can view all parts of the Workspace but cannot make edits or run analyses (i.e. they cannot spend money). They can also clone their own copy of the Workspace where they can conduct activity on their own Billing Project.
    • +
    +

    Screenshot of the dialog box for sharing a Terra Workspace.  The drop-down menu labeled with the email of the user you are sharing with is highlighted and the menu item "Writer" is selected.

  12. +
  13. Click “Save”. The user should now be able to see the Workspace when logged in to Terra.

    +

    Screenshot of the dialog box for sharing a Terra Workspace.  The "Save" button is highlighted.

  14. +
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/onboarding.html b/docs/onboarding.html new file mode 100644 index 0000000..18b7e52 --- /dev/null +++ b/docs/onboarding.html @@ -0,0 +1,412 @@ + + + + + + + Chapter 6 Onboarding | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 6 Onboarding

+

Joining a team on AnVIL.

+


+
+

6.1 Create Google Account

+

If you do not already have a Google account that you would like to use for accessing Terra, create one now.

+

If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions.

+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/reference-keys.txt b/docs/reference-keys.txt new file mode 100644 index 0000000..208c1d7 --- /dev/null +++ b/docs/reference-keys.txt @@ -0,0 +1,80 @@ +introduction +motivation +target-audience +curriculum +a-new-chapter +learning-objectives-1 +libraries +subtopic +code-examples +image-example +video-examples +links-to-files +links-to-websites +citation-examples +callout-boxes +dropdown-summaries +print-out-session-info +anvil-module-library +include-using-cowborrow_chapter +background-highlighting-for-borrowed-chapters +workspaces +clone-a-workspace +create-a-workspace +open-a-workspace +share-a-workspace +billing +create-google-billing-account +add-terra-to-google-billing-account +add-members-to-google-billing-account +set-alerts-for-google-billing +view-spend-for-google-billing +create-terra-billing-project +add-member-to-terra-billing-project +disable-terra-billing-project +onboarding +create-google-account +using-programming-platforms-on-anvil +video-overview-on-using-jupyter-notebooks +objectives +slides +launching-jupyter +video-overview-on-using-galaxy +objectives-1 +slides-1 +starting-galaxy +navigating-galaxy +deleting-galaxy +video-overview-on-using-rstudio +objectives-2 +slides-2 +launching-rstudio +touring-rstudio +pausing-rstudio +deleting-rstudio +student-instructions +student-account-setup +create-google-account-1 +log-in-to-terra +share-username +student-instructions-for-cloning-a-workspace +with-no-variables-set +with-variables-set +student-instructions-for-launching-jupyter +using-default-jupyter-environment +using-custom-jupyter-environment +student-instructions-for-launching-rstudio +using-default-rstudio-environment +using-custom-rstudio-environment +user-management +create-terra-group +add-member-to-terra-group +find-group-email +why-anvil +why-anvil-for-instructors +instructor-modules +why-anvil-for-instructors-1 +checklist-link +checklist-timeline-premade-content +recommendation-to-use-strides +references diff --git a/docs/references.html b/docs/references.html new file mode 100644 index 0000000..bd9a63f --- /dev/null +++ b/docs/references.html @@ -0,0 +1,413 @@ + + + + + + + Chapter 12 References | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 12 References

+ +
+
+Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2021. Rmarkdown: Dynamic Documents for r. https://github.com/rstudio/rmarkdown. +
+
+Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown. +
+
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png b/docs/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png new file mode 100644 index 0000000..b865852 Binary files /dev/null and b/docs/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png differ diff --git a/docs/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png b/docs/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 0000000..b17edc4 Binary files /dev/null and b/docs/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/docs/search_index.json b/docs/search_index.json new file mode 100644 index 0000000..ba7a66d --- /dev/null +++ b/docs/search_index.json @@ -0,0 +1 @@ +[["index.html", "AnVIL Book Name About this Book Skills Level AnVIL Collection", " AnVIL Book Name August 05, 2024 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. Skills Level Genetics Programming skills AnVIL Collection Please check out our full collection of AnVIL and related resources: https://hutchdatascience.org/AnVIL_Collection/ "],["learning-objectives.html", "Learning Objectives", " Learning Objectives "],["introduction.html", "Chapter 1 Introduction 1.1 Motivation 1.2 Target Audience 1.3 Curriculum", " Chapter 1 Introduction 1.1 Motivation 1.2 Target Audience The course is intended for … 1.3 Curriculum The course covers… "],["a-new-chapter.html", "Chapter 2 A new chapter 2.1 Learning Objectives 2.2 Libraries 2.3 Subtopic 2.4 Print out session info", " Chapter 2 A new chapter *If you haven’t yet read the getting started Wiki pages; start there Every chapter needs to start out with this chunk of code: 2.1 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} 2.2 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. library(magrittr) 2.3 Subtopic Here’s a subheading and some text in this subsection! 2.3.1 Code examples You can demonstrate code like this: output_dir <- file.path("resources", "code_output") if (!dir.exists(output_dir)) { dir.create(output_dir) } And make plots too: hist_plot <- hist(iris$Sepal.Length) You can also save these plots to file: png(file.path(output_dir, "test_plot.png")) hist_plot ## $breaks ## [1] 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 ## ## $counts ## [1] 5 27 27 30 31 18 6 6 ## ## $density ## [1] 0.06666667 0.36000000 0.36000000 0.40000000 0.41333333 0.24000000 0.08000000 ## [8] 0.08000000 ## ## $mids ## [1] 4.25 4.75 5.25 5.75 6.25 6.75 7.25 7.75 ## ## $xname ## [1] "iris$Sepal.Length" ## ## $equidist ## [1] TRUE ## ## attr(,"class") ## [1] "histogram" dev.off() ## png ## 2 2.3.2 Image example How to include a Google slide. It’s simplest to use the ottrpal package: But if you have the slide or some other image locally downloaded you can also use html like this: 2.3.3 Video examples To show videos in your course, you can use markdown syntax like this: A video we want to show 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. OR this works: 2.3.4 Links to files This works: Or this: This works. Or this: 2.3.5 Links to websites Examples of including a website link. This works: OR this: Another link OR this: 2.3.6 Citation examples We can put citations at the end of a sentence like this (Allaire et al. 2021). Or multiple citations Xie, Allaire, and Grolemund (2018). but they need a ; separator (Allaire et al. 2021; Xie, Allaire, and Grolemund 2018). In text, we can put citations like this Allaire et al. (2021). 2.3.7 Callout boxes There are some preset callout boxes available, which can be used like so: notice: Here’s something interesting. warning: Look out! dictionary: Here’s a definition. reflection: Consider this! github: Here’s how you use GitHub. wip: This section is a Work in Progress. 2.3.8 Dropdown summaries You can hide additional information in a dropdown menu Here’s more words that are hidden. 2.4 Print out session info You should print out session info when you have code for reproducibility purposes. devtools::session_info() ## ─ Session info ─────────────────────────────────────────────────────────────── ## setting value ## version R version 4.3.2 (2023-10-31) ## os Ubuntu 22.04.4 LTS ## system x86_64, linux-gnu ## ui X11 ## language (EN) ## collate en_US.UTF-8 ## ctype en_US.UTF-8 ## tz Etc/UTC ## date 2024-08-05 ## pandoc 3.1.1 @ /usr/local/bin/ (via rmarkdown) ## ## ─ Packages ─────────────────────────────────────────────────────────────────── ## package * version date (UTC) lib source ## askpass 1.2.0 2023-09-03 [1] RSPM (R 4.3.0) ## bookdown 0.39.1 2024-06-11 [1] Github (rstudio/bookdown@f244cf1) ## bslib 0.6.1 2023-11-28 [1] RSPM (R 4.3.0) ## cachem 1.0.8 2023-05-01 [1] RSPM (R 4.3.0) ## cli 3.6.2 2023-12-11 [1] RSPM (R 4.3.0) ## curl 5.2.0 2023-12-08 [1] RSPM (R 4.3.0) ## devtools 2.4.5 2022-10-11 [1] RSPM (R 4.3.0) ## digest 0.6.34 2024-01-11 [1] RSPM (R 4.3.0) ## ellipsis 0.3.2 2021-04-29 [1] RSPM (R 4.3.0) ## evaluate 0.23 2023-11-01 [1] RSPM (R 4.3.0) ## fansi 1.0.6 2023-12-08 [1] RSPM (R 4.3.0) ## fastmap 1.1.1 2023-02-24 [1] RSPM (R 4.3.0) ## fs 1.6.3 2023-07-20 [1] RSPM (R 4.3.0) ## glue 1.7.0 2024-01-09 [1] RSPM (R 4.3.0) ## highr 0.10 2022-12-22 [1] RSPM (R 4.3.0) ## hms 1.1.3 2023-03-21 [1] RSPM (R 4.3.0) ## htmltools 0.5.7 2023-11-03 [1] RSPM (R 4.3.0) ## htmlwidgets 1.6.4 2023-12-06 [1] RSPM (R 4.3.0) ## httpuv 1.6.14 2024-01-26 [1] RSPM (R 4.3.0) ## httr 1.4.7 2023-08-15 [1] RSPM (R 4.3.0) ## jquerylib 0.1.4 2021-04-26 [1] RSPM (R 4.3.0) ## jsonlite 1.8.8 2023-12-04 [1] RSPM (R 4.3.0) ## knitr 1.47.3 2024-06-11 [1] Github (yihui/knitr@e1edd34) ## later 1.3.2 2023-12-06 [1] RSPM (R 4.3.0) ## lifecycle 1.0.4 2023-11-07 [1] RSPM (R 4.3.0) ## magrittr * 2.0.3 2022-03-30 [1] RSPM (R 4.3.0) ## memoise 2.0.1 2021-11-26 [1] RSPM (R 4.3.0) ## mime 0.12 2021-09-28 [1] RSPM (R 4.3.0) ## miniUI 0.1.1.1 2018-05-18 [1] RSPM (R 4.3.0) ## openssl 2.1.1 2023-09-25 [1] RSPM (R 4.3.0) ## ottrpal 1.2.1 2024-06-11 [1] Github (jhudsl/ottrpal@828539f) ## pillar 1.9.0 2023-03-22 [1] RSPM (R 4.3.0) ## pkgbuild 1.4.3 2023-12-10 [1] RSPM (R 4.3.0) ## pkgconfig 2.0.3 2019-09-22 [1] RSPM (R 4.3.0) ## pkgload 1.3.4 2024-01-16 [1] RSPM (R 4.3.0) ## png 0.1-8 2022-11-29 [1] CRAN (R 4.3.2) ## profvis 0.3.8 2023-05-02 [1] RSPM (R 4.3.0) ## promises 1.2.1 2023-08-10 [1] RSPM (R 4.3.0) ## purrr 1.0.2 2023-08-10 [1] RSPM (R 4.3.0) ## R6 2.5.1 2021-08-19 [1] RSPM (R 4.3.0) ## Rcpp 1.0.12 2024-01-09 [1] RSPM (R 4.3.0) ## readr 2.1.5 2024-01-10 [1] RSPM (R 4.3.0) ## remotes 2.4.2.1 2023-07-18 [1] RSPM (R 4.3.0) ## rlang 1.1.4 2024-06-04 [1] CRAN (R 4.3.2) ## rmarkdown 2.27.1 2024-06-11 [1] Github (rstudio/rmarkdown@e1c93a9) ## sass 0.4.8 2023-12-06 [1] RSPM (R 4.3.0) ## sessioninfo 1.2.2 2021-12-06 [1] RSPM (R 4.3.0) ## shiny 1.8.0 2023-11-17 [1] RSPM (R 4.3.0) ## stringi 1.8.3 2023-12-11 [1] RSPM (R 4.3.0) ## stringr 1.5.1 2023-11-14 [1] RSPM (R 4.3.0) ## tibble 3.2.1 2023-03-20 [1] CRAN (R 4.3.2) ## tzdb 0.4.0 2023-05-12 [1] RSPM (R 4.3.0) ## urlchecker 1.0.1 2021-11-30 [1] RSPM (R 4.3.0) ## usethis 2.2.3 2024-02-19 [1] RSPM (R 4.3.0) ## utf8 1.2.4 2023-10-22 [1] RSPM (R 4.3.0) ## vctrs 0.6.5 2023-12-01 [1] RSPM (R 4.3.0) ## xfun 0.44.4 2024-06-11 [1] Github (yihui/xfun@9da62cc) ## xml2 1.3.6 2023-12-04 [1] RSPM (R 4.3.0) ## xtable 1.8-4 2019-04-21 [1] RSPM (R 4.3.0) ## yaml 2.3.8 2023-12-11 [1] RSPM (R 4.3.0) ## ## [1] /usr/local/lib/R/site-library ## [2] /usr/local/lib/R/library ## ## ────────────────────────────────────────────────────────────────────────────── References "],["anvil-module-library.html", "Chapter 3 AnVIL Module Library 3.1 Include using cow::borrow_chapter() 3.2 Background Highlighting for Borrowed Chapters", " Chapter 3 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 3.1 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 for the most recent instructions and additional details. Here is an example of including the _child_workspace_create.Rmd with cow::borrow_chapter() Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the plus icon near the top of left of the page. Name your Workspace and select the appropriate Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. Click “CREATE WORKSPACE”. The new Workspace should now show up under your Workspaces. 3.2 Background Highlighting for Borrowed Chapters You can use the borrowed_chunk custom div block to highlight borrowed content or any other content you choose. Basic format: :::: {.borrowed_chunk} Code/Content here :::: Rendered with highlighting: If you do not already have a Google account that you would like to use for accessing Terra, create one now. If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions. Rendered without highlighting: If you do not already have a Google account that you would like to use for accessing Terra, create one now. If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions. "],["workspaces.html", "Chapter 4 Workspaces 4.1 Clone a Workspace 4.2 Create a Workspace 4.3 Open a Workspace 4.4 Share a Workspace", " Chapter 4 Workspaces Modules about Terra Workspaces 4.1 Clone a Workspace Launch Terra Locate the Workspace you want to clone. If a Workspace has been shared with you ahead of time, it will appear in “MY WORKSPACES”. You can clone a Workspace that was shared with you to perform your own analyses. In the screenshot below, no Workspaces have been shared. If a Workspace hasn’t been shared with you, navigate to the “FEATURED” or “PUBLIC” Workspace tabs. Use the search box to find the Workspace you want to clone. Click the teardrop button on the far right next to the Workspace you want to clone. Click “Clone”. You can also clone the Workspace from the Workspace Dashboard instead of the search results. You will see a popup box appear. Name your Workspace and select the appropriate Terra Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). Remember that each Workspace should have its own Billing Project. If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. Click “CLONE WORKSPACE”. The new Workspace should now show up under your Workspaces. 4.2 Create a Workspace Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the plus icon near the top of left of the page. Name your Workspace and select the appropriate Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated. Click “CREATE WORKSPACE”. The new Workspace should now show up under your Workspaces. 4.3 Open a Workspace Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. You are automatically directed to the “My Workspaces” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Reader means you can open the Workspace and see everything, but can’t do any computations or make any edits. Writer means you can run computations, which will charge costs to the Workspace’s Billing Project. Writers can also make edits to the Workspace. Owner is similar to Writer, but also allows you to control who can access the Workspace. Click on the name of a Workspace to open it. Opening and viewing a Workspace does not cost anything. When you open a Workspace, you are directed to the Workspace Dashboard. This generally has a description of the Workspace contents, as well as some useful details about the Workspace itself. From here you can navigate through the different tabs of the Workspace, and if you have sufficient permission, you can start running analyses. If you are only a Reader, you may need to “clone” (make your own copy) of the Workspace before you can start working. 4.4 Share a Workspace Launch Terra In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of the Workspace to open the Workspace. Opening a Workspace does not cost anything. Certain activities in the Workspace (such as running an analysis) will charge to the Workspace’s Billing Project. Workspace management (e.g. adding and removing members, editing the description) does not cost money. Click the teardrop button () on the right hand side to open the Workspace management menu. Click “Share” Enter the email address of the user or Group you’d like to share the Workspace with. If adding an individual, make sure to enter the account that they use to access AnVIL. If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page. Choose their permission level. Remember that all activity in the Workspace will be charged to the Workspace’s Billing Project, regardless of who conducts it, so only add members as “Writers” or “Owners” if they should be charging to the Workspace’s Billing Project. “Readers” can view all parts of the Workspace but cannot make edits or run analyses (i.e. they cannot spend money). They can also clone their own copy of the Workspace where they can conduct activity on their own Billing Project. Click “Save”. The user should now be able to see the Workspace when logged in to Terra. "],["billing.html", "Chapter 5 Billing 5.1 Create Google Billing Account 5.2 Add Terra to Google Billing Account 5.3 Add Members to Google Billing Account 5.4 Set Alerts for Google Billing 5.5 View Spend for Google Billing 5.6 Create Terra Billing Project 5.7 Add Member to Terra Billing Project 5.8 Disable Terra Billing Project", " Chapter 5 Billing Modules about billing and Billing Projects on Google Cloud Platform and Terra. 5.1 Create Google Billing Account Log in to the Google Cloud Platform console using your Google ID. Make sure to use the same Google account ID you use to log into Terra. If you are a first time user, don’t forget to claim your free credits! If you haven’t been to the console before, once you accept the Terms of Service you will be greeted with an invitation to “Try for Free.” Follow the instructions to sign up for a Billing Account and get your credits. Choose “Individual Account”. This “billing account” is just for managing billing, so you don’t need to be able to add your team members. You will need to give either a credit card or bank account for security. Don’t worry! You won’t be billed until you explicitly turn on automatic billing. You can view and edit your new Billing Account, by selecting “Billing” from the left-hand menu, or going directly to the billing console console.cloud.google.com/billing Clicking on the Billing Account name will allow you to manage the account, including accessing reports, setting alerts, and managing payments and billing. At any point, you can create additional Billing Accounts using the Create Account button. We generally recommend creating a new Billing Account for each funding source. 5.2 Add Terra to Google Billing Account This gives Terra permission to create projects and send charges to the Google Billing Account, and must be done by an administrator of the Google Billing Account. Terra needs to be added as a “Billing Account User”: Log in to the Google Cloud Platform console using your Google ID. Navigate to Billing You may be automatically directed to view a specific Billing Account. If you see information about a single account rather than a list of your Billing Accounts, you can get back to the list by clicking “Manage Billing Accounts” from the drop-down menu. Check the box next to the Billing Account you wish to add Terra to, click “ADD MEMBER”. Enter terra-billing@terra.bio in the text box. In the drop-down menu, mouse over Billing, then choose “Billing Account User”. Click “SAVE”. 5.3 Add Members to Google Billing Account Anyone you wish to add to the Billing Account will need their own Google ID. To add a member to a Billing Project: Log in to the Google Cloud Platform console using your Google ID. Navigate to Billing You may be automatically directed to view a specific Billing Account. If you see information about a single account rather than a list of your Billing Accounts, you can get back to the list by clicking “Manage Billing Accounts” from the drop-down menu. Check the box next to the Billing Account you wish to add a member to, click “ADD MEMBER”. Enter their Google ID in the text box. In the drop-down menu, mouse over Billing, then choose the appropriate role. Click “SAVE”. 5.4 Set Alerts for Google Billing Log in to the Google Cloud Platform console using the Google ID associated with your Google Cloud projects. Open the dropdown menu on the top left and click on Billing. You may be automatically directed to view a specific Billing Account. If you see information about a single account (and it’s not the one you’re interested in), you can get back to the list of all your Billing Accounts by clicking “Manage Billing Accounts” from the drop-down menu. Click on the name of the Billing Account you want to set alerts for. In the left-hand menu, click “Budgets & alerts”. Click the “Create Budget” tab. Enter a name for your budget, and then choose which projects you want to monitor. Then click “Next”. For Budget Type, select “Specified amount”. Enter the total budget amount for the month (you will set alerts at different thresholds in the next step). Click “Next” (do not click “Finish”). Enter the threshold amounts where you want to receive an alert. We recommend starting with 50% and 90%. You can set other alerts if you prefer. Check the box for “Email alerts to billing admins and users”, then click “Finish”. Now you (as the owner and admin), along with anyone you added with admin or user privileges (e.g. lab managers) will receive alerts when your lab members reach the specified spending thresholds. These emails will be sent to the Gmail accounts associated with the Billing Account. You can edit your budgets at any time by going to Billing > Budgets & alerts, and clicking on the name of the budget you want to edit. 5.5 View Spend for Google Billing You can always check your current spend through the Google Billing console, but remember There is a reporting delay (~1 day), so you cannot immediately see what an analysis cost Costs are reported at the level of Workspaces, so if there are multiple people using a Workspace, you will not be able to determine which of them was responsible for the charges. The Google Billing console displays information by Billing Account. To view spending: Log in to the Google Cloud Platform console using the Google ID associated with your Google Cloud projects. Open the dropdown menu on the top left and click on Billing. You may be automatically directed to view a specific Billing Account. If you see information about a single account (and it’s not the one you’re interested in), you can get back to the list of all your Billing Accounts by clicking “Manage Billing Accounts” from the drop-down menu. Click on the name of the Billing Account for the project you want to view. Look at the top of the Overview tab to see your month-to-date spending. Scroll further down the Overview tab to show your top projects. Click on the Reports tab to see more detailed information about each of your projects. This is probably the most useful tab for exploring costs of individual projects over time. Click on the Cost table tab to obtain a convenient table of spending per project. 5.6 Create Terra Billing Project Launch Terra and sign in with your Google account. If this is your first time logging in to Terra, you will need to accept the Terms of Service. In the drop-down menu on the left, navigate to “Billing”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Billing”. You can also navigate there directly with this link: https://anvil.terra.bio/#billing On the Billing page, click the “+ CREATE” button to create a new Billing Project. If prompted, select the Google account to use. If prompted, give Terra permission to manage Google Cloud Platform billing accounts. Enter a unique name for your Terra Billing Project and select the appropriate Google Billing Account. The name of the Terra Billing Project must: Only contain lowercase letters, numbers and hyphens Start with a lowercase letter Not end with a hyphen Be between 6 and 30 characters Select the Google Billing Account to use. All activities conducted under your new Terra Billing Project will charge to this Google Billing Account. If prompted, give Terra permission to manage Google Cloud Platform billing accounts. Click “CREATE BILLING PROJECT”. Your new Billing Project should now show up in the list of Billing Projects Owned by You. You can add additional members or can modify or deactivate the Billing Project at any time by clicking on its name in this list. The page doesn’t always update as soon as the Billing Project is created. If it’s been a couple of minutes and you don’t see a change, try refreshing the page. 5.7 Add Member to Terra Billing Project Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Billing”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Billing”. You can also navigate there directly with this link: https://anvil.terra.bio/#billing Click “Owned by You” and find the Billing Project. If you do not see the Billing Project in this list, then you are not an Owner and do not have permission to add members. Click on the name of the Billing Project. Click on the “Members” tab to view and manage members. Then click the “Add User” button. Enter the email address of the user or group you’d like to add the the Billing Project. If adding an individual, make sure to enter the account that they use to access AnVIL. If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page. If this user or group will need to add and remove other users of the Billing Project, check the Owner box. Otherwise leave it unchecked. It’s often a good idea to have at least one other Owner of a Billing Project in order to avoid getting locked out, in case the original owner leaves or loses access to their account. Click “ADD USER”. You should now see the user or group listed in the Billing Project members, along with the appropriate role. They should now be able to use the Billing Project to fund work on AnVIL. If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name. 5.8 Disable Terra Billing Project By default this module includes a warning to make sure people understand they will lose access to their Workspace buckets. You can remove the warning from this module by setting AnVIL_module_settings$warning to FALSE before running cow::borrow_chapter: AnVIL_module_settings <- list( warning = FALSE ) cow::borrow_chapter( doc_path = "child/_child_terra_billing_project_disable.Rmd", repo_name = "jhudsl/AnVIL_Template" ) Disabling a Billing Project makes Workspace contents inaccessible! Disabling a Billing Project disables funding to all Workspaces funded by the Billing Project. You will be unable to compute in these Workspaces, and you will lose access to any data stored in the Workspace buckets. It is sometimes possible to restore access by reactivating billing, but Google makes no promises about whether or how long the data will be recoverable. Make sure everyone with Workspaces funded by the Billing Project has saved anything they want to keep in another location before disabling the Billing Project. To disable a Terra Billing Project (i.e. remove the Google Billing Account that funds the Terra Billing Project): Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Billing”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Billing”. You can also navigate there directly with this link: https://anvil.terra.bio/#billing Click “Owned by You” and find the Billing Project. If you do not see the Billing Project in this list, then you are not an Owner and do not have permission to add members. Click on the name of the Billing Project. If you don’t see information about the Billing Account, click on “View billing account” to expand the Billing Account information. You may be prompted to enter your login information again. You should see the name of the Google Billing Account that is funding this Terra Billing Project. Click on the teardrop icon next to the name of the Billing Account. Click “Remove Billing Account”. Click OK to confirm that you want to disable funding for this Billing Project. The page should now indicate that there is no linked billing account. If necessary, you can restore funding to the Billing Project and associated Workspaces by clicking the teardrop icon and selecting “Change Billing Account”. However, Google makes no promises about how long the Workspace contents will remain available after you disable funding, so it is best not to rely on them. "],["onboarding.html", "Chapter 6 Onboarding 6.1 Create Google Account", " Chapter 6 Onboarding Joining a team on AnVIL. 6.1 Create Google Account If you do not already have a Google account that you would like to use for accessing Terra, create one now. If you would like to create a Google account that is associated with your non-Gmail, institutional email address, follow these instructions. "],["using-programming-platforms-on-anvil.html", "Chapter 7 Using programming platforms on AnVIL 7.1 Video overview on using Jupyter Notebooks 7.2 Launching Jupyter 7.3 Video overview on using Galaxy 7.4 Starting Galaxy 7.5 Navigating Galaxy 7.6 Deleting Galaxy 7.7 Video overview on using RStudio 7.8 Launching RStudio 7.9 Touring RStudio 7.10 Pausing RStudio 7.11 Deleting RStudio", " Chapter 7 Using programming platforms on AnVIL Modules about opening, touring, and closing AnVIL platforms 7.1 Video overview on using Jupyter Notebooks Here is a video tutorial that describes the basics of using Jupyter Notebook on AnVIL. 7.1.1 Objectives Start compute for your Jupyter environment Create notebook to perform analysis Stop compute to minimize expenses 7.1.2 Slides The slides for this tutorial are are located here. 7.2 Launching Jupyter AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down. Note that, in order to use Jupyter, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace). Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under Jupyter. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Configure any settings you need for your cloud environment. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Scroll down and click the “CREATE” button when you are satisfied with your setup. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook. Clicking on a Notebook name will open a static preview of the Notebook. To edit and run the Notebook, click the “OPEN” button. 7.3 Video overview on using Galaxy Here is a video tutorial that describes the basics of using Galaxy on AnVIL. 7.3.1 Objectives Start compute for your Galaxy on AnVIL Run tool to quality control sequencing reads Stop compute to minimize expenses 7.3.2 Slides The slides for this tutorial are are located here. 7.4 Starting Galaxy Note that, in order to use Galaxy, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace). Open your Workspace, and click on the “NOTEBOOKS” tab. Next, click on “Create a Cloud Environment for Galaxy”. You should see a popup window on the right side of the screen. Click on “NEXT” and “CREATE” to keep all settings as-is. This will take 8-10 minutes. When it is done, click “LAUNCH GALAXY”. 7.5 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. 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. 7.6 Deleting Galaxy Once you are done with your activity, you’ll need to shut down your Galaxy cloud environment. This frees up the cloud resources for others and minimizes computing cost. The following steps will delete your work, so make sure you are completely finished at this point. Otherwise, you will have to repeat your work from the previous steps. Return to AnVIL, and find the Galaxy logo that shows your cloud environment is running. Click on this logo: Next, click on “DELETE ENVIRONMENT OPTIONS”: Finally, select “Delete everything, including persistent disk”. Make sure you are done with the activity and then click “DELETE”. 7.7 Video overview on using RStudio Here is a video tutorial that describes the basics of using RStudio on AnVIL. 7.7.1 Objectives Start compute for your RStudio environment Tour RStudio on AnVIL Stop compute to minimize expenses 7.7.2 Slides The slides for this tutorial are are located here. 7.8 Launching RStudio AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down. Note that, in order to use RStudio, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace). Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under RStudio. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Click the “Create” button. Otherwise, click “CUSTOMIZE” to modify the environment for your needs. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. You should now see the RStudio interface with information about the version printed to the console. 7.9 Touring RStudio Next, we will be using RStudio and the package Glimma to create interactive plots. See this vignette for more information. The Bioconductor team has created a very useful package to programmatically interact with Terra and Google Cloud. Install the AnVIL package. It will make some steps easier as we go along. You can now quickly install precompiled binaries using the AnVIL package’s install() function. We will use it to install the Glimma package and the airway package. The airway package contains a SummarizedExperiment data class. This data describes an RNA-Seq experiment on four human airway smooth muscle cell lines treated with dexamethasone. {Note: for some of the packages, you will have to install packaged from the CRAN repository, using the install.packages() function. The examples will show you which install method to use.} <img src="07-using_platforms_modules_files/figure-html//1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_56.png" alt="Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted." width="100%" /> Load the example data. The multidimensional scaling (MDS) plot is frequently used to explore differences in samples. When this data is MDS transformed, the first two dimensions explain the greatest variance between samples, and the amount of variance decreases monotonically with increasing dimension. The following code will launch a new window where you can interact with the MDS plot. Change the colour_by setting to “groups” so you can easily distinguish between groups. In this data, the “group” is the treatment. You can download the interactive html file by clicking on “Save As”. You can also download plots and other files created directly in RStudio. To download the following plot, click on “Export” and save in your preferred format to the default directory. This saves the file in your cloud environment. You should see the plot in the “Files” pane. Select this file and click “More” > “Export” Select “Download” to save the file to your local machine. 7.10 Pausing RStudio The right-hand side icon reminds you that you are accruing cloud computing costs. If you don’t see this icon, you may need to scroll to the right. You should minimize charges when you are not performing an analysis. You can do this by clicking on the RStudio icon and selecting “Pause”. This will release the CPU and memory resources for other people to use. Note that your work will be saved in the environment and continue to accrue a very small cost. This work will be lost if the cloud environment gets deleted. If there is anything you would like to save permanently, it’s a good idea to copy it from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs. You can also pause your cloud environment(s) at https://anvil.terra.bio/#clusters. 7.11 Deleting RStudio Pausing your cloud environment only temporarily stops your work. When you are ready to delete the cloud environment, click on the RStudio icon on the right-hand side and select “Settings”. If you don’t see this icon, you may need to scroll to the right. Click on “Delete Environment”. If you are certain that you do not need the data and configuration on your disk, you should select “Delete everything, including persistent disk”. If there is anything you would like to save, open the compute environment and copy the file(s) from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs. Select “DELETE”. You can also delete your cloud environment(s) and disk storage at https://anvil.terra.bio/#clusters. "],["student-instructions.html", "Chapter 8 Student instructions 8.1 Student Account Setup 8.2 Student instructions for cloning a Workspace 8.3 Student instructions for launching Jupyter 8.4 Student instructions for launching RStudio", " Chapter 8 Student instructions Modules aimed at students in a course or workshop. 8.1 Student Account Setup In order to run your analyses, you will use the AnVIL cloud computing platform, so that you do not need to install everything on your own computer. The AnVIL (Analysis Visualization and Informatics Lab-space) platform is specially designed for analyzing biological data, and is used by scientists doing all sorts of biological research. AnVIL in a nutshell Behind the scenes, AnVIL relies on Google Cloud Platform to provide computing infrastructure. Basically, AnVIL lets you “rent” computers from Google (remotely). Whenever you run an analyses on AnVIL, it actually runs on one of Google’s computers, and AnVIL lets you see the results in your browser. AnVIL uses Terra to provide many computational tools useful for biological data analysis, such as RStudio, Galaxy, and Jupyter Notebooks. Terra takes care of installing these tools on Google’s computers, so that you can just start using them. 8.1.1 Create Google Account First, you will need to set up a (free) Google account. If you do not already have a Google account that you would like to use for accessing AnVIL, create one now. Alternatively, if you would like to create a Google account that is associated with an existing non-Gmail email address, you can follow these instructions. 8.1.2 Log In to Terra Next, make sure you can log in to Terra – you will use Terra to perform computations on AnVIL. You can access Terra by going to anvil.terra.bio, or by clicking the link on the AnVIL home page. Open Terra, and you should be prompted to sign in with your Google account. 8.1.3 Share Username Finally, make sure your instructor has your Google account username (e.g. myname@gmail.com), so they can give you access to everything you need. Make sure there are no typos! If you have multiple Google accounts, make sure you give them the username that you will be using to access AnVIL It is very important that you share the Google account you will be using to access AnVIL with with your instructor! Otherwise, the instructor cannot add you to Billing Projects or Workspaces, and you will be unable to proceed with your assignments. 8.2 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”). 8.2.1 With no variables set: This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”). On AnVIL, you access files and computers through 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. This will give you access to the files you will need (data, code) the computing environment you will use 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. To clone an AnVIL Workspace: Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab. Locate the Workspace specified by your instructor. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace specified by your instructor.) If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name specified by your instructor. You can also go directly to the Workspace by clicking this link: ask your instructor. Clone the workspace by clicking the teardrop button (). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace. You will see a popup box appear, asking you to configure your Workspace Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, \"ExampleWorkspace_Firstname_Lastname\". Select the Billing Project provided by your instructor. Leave the bottom two boxes as-is. Click “CLONE WORKSPACE”. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in. 8.2.2 With variables set: This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”). On AnVIL, you access files and computers through 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. This will give you access to the files you will need (data, code) the computing environment you will use 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. To clone an AnVIL Workspace: Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab. Locate the Workspace Example_Workspace. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace Example_Workspace.) If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name Example_Workspace. You can also go directly to the Workspace by clicking this link: http://example.com/. Clone the workspace by clicking the teardrop button (). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace. You will see a popup box appear, asking you to configure your Workspace Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, \"Example_Workspace_Firstname_Lastname\". Select the Billing Project Example Billing Project. Leave the bottom two boxes as-is. Click “CLONE WORKSPACE”. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in. 8.3 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. 8.3.1 Using default Jupyter environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under Jupyter. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook. 8.3.2 Using custom Jupyter environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under Jupyter. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Under “Application configuration” you will see a dropdown menu. Choose “Custom Environment”. Then copy the following link into “Container image” textbox: example docker Under “Startup script” you will see textbox. Copy the following link into the box: example startup script Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook. 8.4 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. 8.4.1 Using default RStudio environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under RStudio. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Click the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. You should now see the RStudio interface with information about the version printed to the console. 8.4.2 Using custom RStudio environment: AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs. Open Terra - use a web browser to go to anvil.terra.bio In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>. Click on the cloud icon on the far right to access your Cloud Environment options. In the dialogue box, click the “Settings” button under RStudio. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing. Click “CUSTOMIZE” to adjust the settings for your environment. Under “Application configuration” you will see a dropdown menu. You can also enter text here. Copy the following link into the box: example docker Under “Startup script” you will see textbox. Copy the following link into the box: example startup script Leave everything else as-is. To create your RStudio Cloud Environment, click on the “CREATE” button. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed. You should now see the RStudio interface with information about the version printed to the console. "],["user-management.html", "Chapter 9 User Management 9.1 Create Terra Group 9.2 Add Member to Terra Group 9.3 Find Group Email", " Chapter 9 User Management Modules about Groups and user management 9.1 Create Terra Group Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups Click “+ Create a New Group” Enter a name for your group. Names must be unique, so it’s often helpful to include your team’s name, the purpose of the group, and optionally the timeframe, if you will have similar groups in the future. Click “CREATE GROUP” Your new Group should now show up on the Group Management screen. Take note of the email address associated with your group. You will use this email to grant the group access to Billing Projects and Workspaces. 9.2 Add Member to Terra Group Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups Find the name of the Group you want to add someone to, and confirm that you have Admin privileges for the Group (you can only add and remove members to a Group if you are an Admin). Click on the name of the Group to view and manage members. Click on “+ Add User”. You will be prompted to enter the user’s AnVIL ID. Type in the user’s email address. Make sure this is the account that they will be using to access AnVIL. If this member will need to add and remove other members of the Group, check the box for “Can manage members (admin)”. This will add them as an “Admin” for the Group. Otherwise leave it unchecked, and they will be added as a “Member”. Admins and Members have equal access to any resources shared with the Group. Admins can manage Group membership - they can add, remove, or change the role of other Group members. Click ADD USER. This will take you back to the Group administration page. The new Group member will now be shown in the list of group members, along with their role. They should now have access to anything that the Group has been given access to. If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name. 9.3 Find Group Email Launch Terra and sign in with your Google account. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups Find the name of the Group, then look in the “Group Email” column to find the email address associated with the Group. Copy this email address and paste it in as the username when adding people to Billing Projects and Workspaces. This will grant everyone in the Group access to the Billing Project or Workspace. "],["why-anvil.html", "Chapter 10 Why AnVIL 10.1 Why AnVIL for Instructors?", " Chapter 10 Why AnVIL Modules describing why AnVIL is useful for different personas. 10.1 Why AnVIL for Instructors? You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES! AnVIL provides all the advantages of a cloud computing environment: Version control: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably. Inclusivity: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications. Experience: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience. AnVIL is purpose-built for genomic data science: Tools: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them. Datasets: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing. Authenticity: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research. "],["instructor-modules.html", "Chapter 11 Instructor modules 11.1 Why AnVIL for Instructors? 11.2 Checklist Link 11.3 Checklist Timeline (premade content) 11.4 Recommendation to use STRIDES", " Chapter 11 Instructor modules Modules aimed at instructors. 11.1 Why AnVIL for Instructors? You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES! AnVIL provides all the advantages of a cloud computing environment: Version control: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably. Inclusivity: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications. Experience: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience. AnVIL is purpose-built for genomic data science: Tools: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them. Datasets: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing. Authenticity: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research. 11.2 Checklist Link Here is a checklist to help you keep track of the steps for setting up and teaching on AnVIL. Details about each of these steps can be found in the AnVIL Instructor Guide. Note that this checklist is written for workshop instructors as well as classroom instructors, so some of the “Event Setup” steps may not be applicable to you, depending on your teaching context. 11.3 Checklist Timeline (premade content) 1+ month before: Figure out how you will fund the class/workshop. Start working through INSTRUCTOR SETUP. It’s a good idea to get billing figured out with plenty of time to spare. Take some time to familiarize yourself with the content and make any desired updates or customizations. Do any necessary EVENT SETUP steps. ~1 week before: Start working through RUNNING THE CLASS. If possible, have students log in to AnVIL and send you their usernames, so you can add them to the Student Group ahead of time. This saves time on the day of the class. Do not add students to your Billing Project ahead of time. This prevents them from accruing costs. Day of (or shortly before): Add students to Billing Project. Have students clone the Workspace (They cannot do this until you have added them to the Billing Project. As soon as they do this, they can start computing.). After: Collect feedback, if you didn’t do it during the class/workshop. Work though EVENT WRAP-UP - until you shut things down, you will continue to accrue costs. 11.4 Recommendation to use STRIDES If you are new to AnVIL, we strongly recommend seeking funding through NHGRI / STRIDES for teaching your course. In order to prevent abuse, Google sets certain limits on cloud resources available to new users that can complicate teaching (e.g. project quotas). As you or your institution builds a payment history with Google, the limits on your accounts will be relaxed. In the meantime, STRIDES funding can help ensure your initial classes run smoothly. What is STRIDES? NHGRI’s strategic vision highlights the importance of training the next generation of genomic scientists. In collaboration with the NIH Office of Data Science Strategy, NHGRI makes funding available to AnVIL users through the STRIDES program, which aims to promote biological research in cloud environments. To inquire about funding your class on AnVIL, please contact help@lists.anvilproject.org. "],["about-the-authors.html", "About the Authors", " About the Authors These credits are based on our course contributors table guidelines.     Credits Names Pedagogy Lead Content Instructor(s) FirstName LastName Lecturer(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved Delivered the course in some way - video or audio Content Author(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved If any other authors besides lead instructor Content Contributor(s) (include section name/link in parentheses) - make new line if more than one section involved Wrote less than a chapter AnVIL instructions: Katherine Cox, Ava Hoffman, Elizabeth Humphries Content Editor(s)/Reviewer(s) Checked your content Content Director(s) Helped guide the content direction Content Consultants (include chapter name/link in parentheses or word “General”) - make new line if more than one chapter involved Gave high level advice on content AnVIL instructions: Allie Cliffe Acknowledgments Gave small assistance to content but not to the level of consulting Production Content Publisher(s) Helped with publishing platform Content Publishing Reviewer(s) Reviewed overall content and aesthetics on publishing platform Technical Course Publishing Engineer(s) Helped with the code for the technical aspects related to the specific course generation Template Publishing Engineers Candace Savonen, Carrie Wright Publishing Maintenance Engineer Candace Savonen Technical Publishing Stylists Carrie Wright, Candace Savonen Package Developers (ottrpal) John Muschelli, Candace Savonen, Carrie Wright Art and Design Illustrator(s) Created graphics for the course Figure Artist(s) Created figures/plots for course Videographer(s) Filmed videos Videography Editor(s) Edited film Audiographer(s) Recorded audio Audiography Editor(s) Edited audio recordings Funding Funder(s) Institution/individual who funded course including grant number Funding Staff Staff members who help with funding   ## ─ Session info ─────────────────────────────────────────────────────────────── ## setting value ## version R version 4.3.2 (2023-10-31) ## os Ubuntu 22.04.4 LTS ## system x86_64, linux-gnu ## ui X11 ## language (EN) ## collate en_US.UTF-8 ## ctype en_US.UTF-8 ## tz Etc/UTC ## date 2024-08-05 ## pandoc 3.1.1 @ /usr/local/bin/ (via rmarkdown) ## ## ─ Packages ─────────────────────────────────────────────────────────────────── ## package * version date (UTC) lib source ## bookdown 0.39.1 2024-06-11 [1] Github (rstudio/bookdown@f244cf1) ## bslib 0.6.1 2023-11-28 [1] RSPM (R 4.3.0) ## cachem 1.0.8 2023-05-01 [1] RSPM (R 4.3.0) ## cli 3.6.2 2023-12-11 [1] RSPM (R 4.3.0) ## devtools 2.4.5 2022-10-11 [1] RSPM (R 4.3.0) ## digest 0.6.34 2024-01-11 [1] RSPM (R 4.3.0) ## ellipsis 0.3.2 2021-04-29 [1] RSPM (R 4.3.0) ## evaluate 0.23 2023-11-01 [1] RSPM (R 4.3.0) ## fastmap 1.1.1 2023-02-24 [1] RSPM (R 4.3.0) ## fs 1.6.3 2023-07-20 [1] RSPM (R 4.3.0) ## glue 1.7.0 2024-01-09 [1] RSPM (R 4.3.0) ## htmltools 0.5.7 2023-11-03 [1] RSPM (R 4.3.0) ## htmlwidgets 1.6.4 2023-12-06 [1] RSPM (R 4.3.0) ## httpuv 1.6.14 2024-01-26 [1] RSPM (R 4.3.0) ## jquerylib 0.1.4 2021-04-26 [1] RSPM (R 4.3.0) ## jsonlite 1.8.8 2023-12-04 [1] RSPM (R 4.3.0) ## knitr 1.47.3 2024-06-11 [1] Github (yihui/knitr@e1edd34) ## later 1.3.2 2023-12-06 [1] RSPM (R 4.3.0) ## lifecycle 1.0.4 2023-11-07 [1] RSPM (R 4.3.0) ## magrittr 2.0.3 2022-03-30 [1] RSPM (R 4.3.0) ## memoise 2.0.1 2021-11-26 [1] RSPM (R 4.3.0) ## mime 0.12 2021-09-28 [1] RSPM (R 4.3.0) ## miniUI 0.1.1.1 2018-05-18 [1] RSPM (R 4.3.0) ## pkgbuild 1.4.3 2023-12-10 [1] RSPM (R 4.3.0) ## pkgload 1.3.4 2024-01-16 [1] RSPM (R 4.3.0) ## profvis 0.3.8 2023-05-02 [1] RSPM (R 4.3.0) ## promises 1.2.1 2023-08-10 [1] RSPM (R 4.3.0) ## purrr 1.0.2 2023-08-10 [1] RSPM (R 4.3.0) ## R6 2.5.1 2021-08-19 [1] RSPM (R 4.3.0) ## Rcpp 1.0.12 2024-01-09 [1] RSPM (R 4.3.0) ## remotes 2.4.2.1 2023-07-18 [1] RSPM (R 4.3.0) ## rlang 1.1.4 2024-06-04 [1] CRAN (R 4.3.2) ## rmarkdown 2.27.1 2024-06-11 [1] Github (rstudio/rmarkdown@e1c93a9) ## sass 0.4.8 2023-12-06 [1] RSPM (R 4.3.0) ## sessioninfo 1.2.2 2021-12-06 [1] RSPM (R 4.3.0) ## shiny 1.8.0 2023-11-17 [1] RSPM (R 4.3.0) ## stringi 1.8.3 2023-12-11 [1] RSPM (R 4.3.0) ## stringr 1.5.1 2023-11-14 [1] RSPM (R 4.3.0) ## urlchecker 1.0.1 2021-11-30 [1] RSPM (R 4.3.0) ## usethis 2.2.3 2024-02-19 [1] RSPM (R 4.3.0) ## vctrs 0.6.5 2023-12-01 [1] RSPM (R 4.3.0) ## xfun 0.44.4 2024-06-11 [1] Github (yihui/xfun@9da62cc) ## xtable 1.8-4 2019-04-21 [1] RSPM (R 4.3.0) ## yaml 2.3.8 2023-12-11 [1] RSPM (R 4.3.0) ## ## [1] /usr/local/lib/R/site-library ## [2] /usr/local/lib/R/library ## ## ────────────────────────────────────────────────────────────────────────────── "],["references.html", "Chapter 12 References", " Chapter 12 References "],["404.html", "Page not found", " Page not found The page you requested cannot be found (perhaps it was moved or renamed). You may want to try searching to find the page's new location, or use the table of contents to find the page you are looking for. "]] diff --git a/docs/student-instructions.html b/docs/student-instructions.html new file mode 100644 index 0000000..ee61771 --- /dev/null +++ b/docs/student-instructions.html @@ -0,0 +1,699 @@ + + + + + + + Chapter 8 Student instructions | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 8 Student instructions

+

Modules aimed at students in a course or workshop.

+


+
+

8.1 Student Account Setup

+
+

In order to run your analyses, you will use the AnVIL cloud computing platform, so that you do not need to install everything on your own computer. The AnVIL (Analysis Visualization and Informatics Lab-space) platform is specially designed for analyzing biological data, and is used by scientists doing all sorts of biological research.

+
+

AnVIL in a nutshell

+
    +
  • Behind the scenes, AnVIL relies on Google Cloud Platform to provide computing infrastructure. Basically, AnVIL lets you “rent” computers from Google (remotely). Whenever you run an analyses on AnVIL, it actually runs on one of Google’s computers, and AnVIL lets you see the results in your browser.
  • +
  • AnVIL uses Terra to provide many computational tools useful for biological data analysis, such as RStudio, Galaxy, and Jupyter Notebooks. Terra takes care of installing these tools on Google’s computers, so that you can just start using them.
  • +
+
+
+

8.1.1 Create Google Account

+

First, you will need to set up a (free) Google account.

+

If you do not already have a Google account that you would like to use for accessing AnVIL, create one now.

+
    +
  • Alternatively, if you would like to create a Google account that is associated with an existing non-Gmail email address, you can follow these instructions.
  • +
+
+
+

8.1.2 Log In to Terra

+

Next, make sure you can log in to Terra – you will use Terra to perform computations on AnVIL.

+

You can access Terra by going to anvil.terra.bio, or by clicking the link on the AnVIL home page.

+

Screenshot of the AnVIL home page. The section descring Terra is highlighted.

+

Open Terra, and you should be prompted to sign in with your Google account.

+
+
+

8.1.3 Share Username

+

Finally, make sure your instructor has your Google account username (e.g. myname@gmail.com), so they can give you access to everything you need.

+
    +
  • Make sure there are no typos!
  • +
  • If you have multiple Google accounts, make sure you give them the username that you will be using to access AnVIL
  • +
+
+

It is very important that you share the Google account you will be using to access AnVIL with with your instructor! Otherwise, the instructor cannot add you to Billing Projects or Workspaces, and you will be unable to proceed with your assignments.

+
+
+
+
+
+

8.2 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”).

+
+

8.2.1 With no variables set:

+
+
+

This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”).

+
+

On AnVIL, you access files and computers through 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. This will give you access to

+
    +
  • the files you will need (data, code)
  • +
  • the computing environment you will use
  • +
+
+

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.

+
+

To clone an AnVIL Workspace:

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab.

    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected.  The "MY WORKSPACES" tab and the column showing permission level are highlighted.

  6. +
  7. Locate the Workspace specified by your instructor. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace specified by your instructor.)

    +
      +
    1. If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”.
    2. +
    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected. The "MY WORKSPACES" tab and a Workspace name are highlighted.

    +
      +
    1. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name specified by your instructor.
    2. +
    +

    Screenshot of Terra Workspaces page with the "PUBLIC" tab selected. The "PUBLIC" tab and search box are highlighted.  The the user has typed in the term "sars". A Workspace related to SARS appears in the results.

    +
      +
    1. You can also go directly to the Workspace by clicking this link: ask your instructor.
    2. +
  8. +
  9. Clone the workspace by clicking the teardrop button (teardrop button). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace.

    +

    Screenshot showing the teardrop button. The button has been clicked revealing the "clone" option. The Clone option and the teardrop button are highlighted. +Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted.

  10. +
  11. You will see a popup box appear, asking you to configure your Workspace

    +
      +
    1. Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, "ExampleWorkspace_Firstname_Lastname".
    2. +
    3. Select the Billing Project provided by your instructor.
    4. +
    5. Leave the bottom two boxes as-is.
    6. +
    7. Click “CLONE WORKSPACE”.
    8. +
    +

    Screenshot showing the "clone a workspace" popout. The Workspace name, Billing Project, and Clone Workspace button have been filled in and highlighted.

  12. +
  13. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in.

  14. +
+
+
+
+

8.2.2 With variables set:

+
+
+

This will not work until your instructor has given you permission to spend money to “rent” the computers that will power your analyses (by adding you to a “Billing Project”).

+
+

On AnVIL, you access files and computers through 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. This will give you access to

+
    +
  • the files you will need (data, code)
  • +
  • the computing environment you will use
  • +
+
+

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.

+
+

To clone an AnVIL Workspace:

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. You are automatically directed to the “MY WORKSPACES” tab. Here you can see any Workspaces that have been shared with you, along with your permission level. Depending on how your instructor has set things up, you may or may not see any Workspaces in this tab.

    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected.  The "MY WORKSPACES" tab and the column showing permission level are highlighted.

  6. +
  7. Locate the Workspace Example_Workspace. (The images below show the SARS-CoV-2-Genome Workspace as an example, but you should look for the Workspace Example_Workspace.)

    +
      +
    1. If it has been shared with you ahead of time, it will appear in “MY WORKSPACES”.
    2. +
    +

    Screenshot of Terra Workspaces page with the "MY WORKSPACES" tab selected. The "MY WORKSPACES" tab and a Workspace name are highlighted.

    +
      +
    1. Otherwise, select the “PUBLIC” tab. In the top search bar, type the Workspace name Example_Workspace.
    2. +
    +

    Screenshot of Terra Workspaces page with the "PUBLIC" tab selected. The "PUBLIC" tab and search box are highlighted.  The the user has typed in the term "sars". A Workspace related to SARS appears in the results.

    +
      +
    1. You can also go directly to the Workspace by clicking this link: http://example.com/.
    2. +
  8. +
  9. Clone the workspace by clicking the teardrop button (teardrop button). Select “Clone”. Or, if you have opened the Workspace, you can find the teardrop button on the top right of the Workspace.

    +

    Screenshot showing the teardrop button. The button has been clicked revealing the "clone" option. The Clone option and the teardrop button are highlighted. +Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted.

  10. +
  11. You will see a popup box appear, asking you to configure your Workspace

    +
      +
    1. Give your Workspace clone a name by adding an underscore (“_“) and your name. For example, "Example_Workspace_Firstname_Lastname".
    2. +
    3. Select the Billing Project Example Billing Project.
    4. +
    5. Leave the bottom two boxes as-is.
    6. +
    7. Click “CLONE WORKSPACE”.
    8. +
    +

    Screenshot showing the "clone a workspace" popout. The Workspace name, Billing Project, and Clone Workspace button have been filled in and highlighted.

  12. +
  13. The new Workspace should now show up under “MY WORKSPACES”. You now have your own copy of the Workspace to work in.

  14. +
+
+
+
+
+

8.3 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.
  • +
+
+

8.3.1 Using default Jupyter environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under Jupyter.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted.

  10. +
  11. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating".

  16. +
  17. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted

  18. +
  19. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook.

    +

    Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted.

  20. +
+
+
+
+

8.3.2 Using custom Jupyter environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under Jupyter.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted.

  10. +
  11. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Under “Application configuration” you will see a dropdown menu. Choose “Custom Environment”. Then copy the following link into “Container image” textbox:

    +

    example docker

    +

    Screenshot of the Jupyter Cloud Environment "Application configuration" dropdown. The option "Custom Environment" is highlighted.

    +

    Screenshot of the Jupyter Cloud Environment dialog box. "Custom Environment" has been selected in the "Application configuration" dropdown menu, and the "Container image" textbox is highlighted.

  14. +
  15. Under “Startup script” you will see textbox. Copy the following link into the box:

    +

    example startup script

    +

    Screenshot of the Jupyter Cloud Environment customization dialogue box. The textbox labeled "Startup script" is highlighted.

  16. +
  17. Leave everything else as-is. To create your Jupyter Cloud Environment, scroll down and click the “CREATE” button.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted.

  18. +
  19. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating".

  20. +
  21. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted

  22. +
  23. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook.

    +

    Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted.

  24. +
+
+
+
+
+

8.4 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.
  • +
+
+

8.4.1 Using default RStudio environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under RStudio.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted.

  10. +
  11. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Click the “CREATE” button.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating".

  16. +
  17. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running".

  18. +
  19. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed.

    +

    Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted.

  20. +
  21. You should now see the RStudio interface with information about the version printed to the console.

    +

    Screenshot of the RStudio environment interface.

  22. +
+
+
+
+

8.4.2 Using custom RStudio environment:

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select the cloud computing environment described here to avoid runaway costs.

+
+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under RStudio.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted.

  10. +
  11. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Click “CUSTOMIZE” to adjust the settings for your environment.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CUSTOMIZE" button is highlighted.

  14. +
  15. Under “Application configuration” you will see a dropdown menu. You can also enter text here. Copy the following link into the box:

    +

    example docker

    +

    Screenshot of the RStudio Cloud Environment customization dialogue box. The dropdown menu labeled "Application configuration" is highlighted.

  16. +
  17. Under “Startup script” you will see textbox. Copy the following link into the box:

    +

    example startup script

    +

    Screenshot of the RStudio Cloud Environment customization dialogue box. The textbox labeled "Startup script" is highlighted.

  18. +
  19. Leave everything else as-is. To create your RStudio Cloud Environment, click on the “CREATE” button.

    +

    Screenshot of the RStudio Cloud Environment customization dialogue box. The "CREATE" button is highlighted.

  20. +
  21. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating".

  22. +
  23. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running".

  24. +
  25. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed.

    +

    Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted.

  26. +
  27. You should now see the RStudio interface with information about the version printed to the console.

    +

    Screenshot of the RStudio environment interface.

  28. +
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/topic-of-section.html b/docs/topic-of-section.html new file mode 100644 index 0000000..c1e613c --- /dev/null +++ b/docs/topic-of-section.html @@ -0,0 +1,507 @@ + + + + + + + Chapter 3 Topic of Section | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + +
+
+ +
+ + + + + + + + + +
+ +
+
+

Chapter 3 Topic of Section

+

You can write all your text in sections like this!

+
+

3.1 Subtopic

+

Here’s a subheading and some text in this subsection!

+
+

3.1.1 Code examples

+

You can demonstrate code like this:

+
output_dir <- file.path("resources", "code_output")
+if (!dir.exists(output_dir)) {
+  dir.create(output_dir)
+}
+

And make plots too:

+
hist_plot <- hist(iris$Sepal.Length)
+

+

You can also save these plots to file:

+
png(file.path(output_dir, "test_plot.png"))
+hist_plot
+
## $breaks
+## [1] 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0
+## 
+## $counts
+## [1]  5 27 27 30 31 18  6  6
+## 
+## $density
+## [1] 0.06666667 0.36000000 0.36000000 0.40000000 0.41333333 0.24000000 0.08000000
+## [8] 0.08000000
+## 
+## $mids
+## [1] 4.25 4.75 5.25 5.75 6.25 6.75 7.25 7.75
+## 
+## $xname
+## [1] "iris$Sepal.Length"
+## 
+## $equidist
+## [1] TRUE
+## 
+## attr(,"class")
+## [1] "histogram"
+
dev.off()
+
## png 
+##   2
+
+
+

3.1.2 Image example

+

How to include a Google slide. It’s simplest to use the ottrpal package:

+

Major point!! example image

+

But if you have the slide or some other image locally downloaded you can also use html like this:

+

Major point!! example image

+
+
+

3.1.3 Video examples

+

To show videos in your course, you can use markdown syntax like this:

+

A video we want to show

+

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.

+ +

OR this works:

+ +
+ + +
+

3.1.6 Citation examples

+

We can put citations at the end of a sentence like this (Allaire et al. 2021). +Or multiple citations Xie, Allaire, and Grolemund (2018).

+

but they need a ; separator (Allaire et al. 2021; Xie, Allaire, and Grolemund 2018).

+

In text, we can put citations like this Allaire et al. (2021).

+
+
+

3.1.7 FYI boxes

+
+

Please click on the subsection headers in the left hand +navigation bar (e.g., 2.1, 4.3) a second time to expand the +table of contents and enable the scroll_highlight feature +(see more).

+
+
+ +
+ +
+

References

+
+
+Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2021. Rmarkdown: Dynamic Documents for r. https://github.com/rstudio/rmarkdown. +
+
+Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown. +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/user-management.html b/docs/user-management.html new file mode 100644 index 0000000..c4e3911 --- /dev/null +++ b/docs/user-management.html @@ -0,0 +1,465 @@ + + + + + + + Chapter 9 User Management | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 9 User Management

+

Modules about Groups and user management

+


+
+

9.1 Create Terra Group

+
+
    +
  1. Launch Terra and sign in with your Google account.

  2. +
  3. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups

    +

    Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups".

  4. +
  5. Click “+ Create a New Group”

    +

    Screenshot of the Terra Group page. The "Create a New Group" button is highlighted.

  6. +
  7. Enter a name for your group. Names must be unique, so it’s often helpful to include your team’s name, the purpose of the group, and optionally the timeframe, if you will have similar groups in the future.

    +

    Screenshot of the Terra Group page with Create New Group pop out box. The textbox is highlighted and has been filled in with the Group name.

  8. +
  9. Click “CREATE GROUP”

    +

    Screenshot of the Terra Group page with Create New Group pop out box. The "CREATE GROUP" button is highlighted.

  10. +
  11. Your new Group should now show up on the Group Management screen. Take note of the email address associated with your group. You will use this email to grant the group access to Billing Projects and Workspaces.

    +

    Screenshot of the Terra Groups page.  The Group email address is highlighted.

  12. +
+
+
+
+

9.2 Add Member to Terra Group

+
+
    +
  1. Launch Terra and sign in with your Google account.

  2. +
  3. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups

    +

    Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups".

  4. +
  5. Find the name of the Group you want to add someone to, and confirm that you have Admin privileges for the Group (you can only add and remove members to a Group if you are an Admin). Click on the name of the Group to view and manage members.

    +

    Screenshot of the Terra Groups page.  The Group Name and Role are highlighted.

  6. +
  7. Click on “+ Add User”. You will be prompted to enter the user’s AnVIL ID.

    +

    Screenshot of a Terra Group management page. The "+ Add User" button is highlighted.

  8. +
  9. Type in the user’s email address. Make sure this is the account that they will be using to access AnVIL.

    +

    Screenshot of the dialog box for adding Terra Group members. The textbox labeled "User email" is highlighted and an email address has been entered.

  10. +
  11. If this member will need to add and remove other members of the Group, check the box for “Can manage members (admin)”. This will add them as an “Admin” for the Group. Otherwise leave it unchecked, and they will be added as a “Member”.

    +
      +
    • Admins and Members have equal access to any resources shared with the Group.
    • +
    • Admins can manage Group membership - they can add, remove, or change the role of other Group members.
    • +
    +

    Screenshot of the dialog box for adding Terra Group members. The checkbox labeled "Can manage members (admin)" is highlighted.

  12. +
  13. Click ADD USER. This will take you back to the Group administration page.

    +

    Screenshot of the dialog box for adding Terra Group members. The button labeled "ADD USER" is highlighted.

  14. +
  15. The new Group member will now be shown in the list of group members, along with their role. They should now have access to anything that the Group has been given access to.

    +

    Screenshot of a Terra Group management page. The name and role of the new member is highlighted.

  16. +
+

If you need to remove members or modify their roles, you can do so at any time by clicking the teardrop button next to their name.

+

Screenshot of a Terra Group management page. The teardrop button next to one of the members is highlighted.

+
+
+
+

9.3 Find Group Email

+
+
    +
  1. Launch Terra and sign in with your Google account.

  2. +
  3. In the drop-down menu on the left, navigate to “Groups”. Click the triple bar in the top left corner to access the menu. Click the arrow next to your name to expand the menu, then click “Groups”. You can also navigate there directly with this link: https://anvil.terra.bio/#groups

    +

    Screenshot of the Terra drop-down menu.  Three items are highlighted: 1) the "hamburger" button for extending the drop-down menu, 2) the arrow next to your username, for extending the drop-down submenu, and 3) the submenu item "Groups".

  4. +
  5. Find the name of the Group, then look in the “Group Email” column to find the email address associated with the Group. Copy this email address and paste it in as the username when adding people to Billing Projects and Workspaces. This will grant everyone in the Group access to the Billing Project or Workspace.

    +

    Screenshot of the Terra Groups page.  A Group email address is highlighted.

  6. +
+
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/using-programming-platforms-on-anvil.html b/docs/using-programming-platforms-on-anvil.html new file mode 100644 index 0000000..d358eae --- /dev/null +++ b/docs/using-programming-platforms-on-anvil.html @@ -0,0 +1,619 @@ + + + + + + + Chapter 7 Using programming platforms on AnVIL | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 7 Using programming platforms on AnVIL

+

Modules about opening, touring, and closing AnVIL platforms

+


+
+

7.1 Video overview on using Jupyter Notebooks

+

Here is a video tutorial that describes the basics of using Jupyter Notebook on AnVIL.

+ +
+

7.1.1 Objectives

+
    +
  • Start compute for your Jupyter environment
  • +
  • Create notebook to perform analysis
  • +
  • Stop compute to minimize expenses
  • +
+
+
+

7.1.2 Slides

+

The slides for this tutorial are are located here.

+
+
+
+

7.2 Launching Jupyter

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down.

+
+

Note that, in order to use Jupyter, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace).

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under Jupyter.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under Jupyter is highlighted.

  10. +
  11. You will see some configuration options for the Jupyter cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. Configure any settings you need for your cloud environment. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Scroll down and click the “CREATE” button when you are satisfied with your setup.

    +

    Screenshot of the Jupyter Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the Jupyter icon. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Creating".

  16. +
  17. When your environment is ready, its status will change to “Running”. Click on the “ANALYSES” tab to create or open a Jupyter Notebook.

    +

    Screenshot of a Terra Workspace. The hovertext for the Jupyter icon is highlighted, and indicates that the status of the environment is "Running".  The ANALYSES tab is also highlighted

  18. +
  19. From the ANALYSES tab, you can click on the name of an existing Jupyter Notebook to view and launch it, or click the “START” button to create a new Notebook.

    +

    Screenshot of Terra Workspace with the "ANALYSES" tab selected and highlighted.  The page shows a list of Jupyter Notebooks.  The Notebook names and the START button are highlighted.

  20. +
  21. Clicking on a Notebook name will open a static preview of the Notebook. To edit and run the Notebook, click the “OPEN” button.

    +

    Screenshot of a preview of a Jupyter Notebook in a Terra Workspace.  The "OPEN" button is highlighted.

  22. +
+
+
+
+

7.3 Video overview on using Galaxy

+

Here is a video tutorial that describes the basics of using Galaxy on AnVIL.

+ +
+

7.3.1 Objectives

+
    +
  • Start compute for your Galaxy on AnVIL
  • +
  • Run tool to quality control sequencing reads
  • +
  • Stop compute to minimize expenses
  • +
+
+
+

7.3.2 Slides

+

The slides for this tutorial are are located here.

+
+
+
+

7.4 Starting Galaxy

+
+

Note that, in order to use Galaxy, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace).

+

Open your Workspace, and click on the “NOTEBOOKS” tab. Next, click on “Create a Cloud Environment for Galaxy”. You should see a popup window on the right side of the screen. Click on “NEXT” and “CREATE” to keep all settings as-is. This will take 8-10 minutes. When it is done, click “LAUNCH GALAXY”.

+

Screenshot of the Workspace Notebooks tab. The notebook tab name and the plus button that starts a cloud environment for Galaxy have been highlighted,

+
+
+ +
+

7.6 Deleting Galaxy

+
+

Once you are done with your activity, you’ll need to shut down your Galaxy cloud environment. This frees up the cloud resources for others and minimizes computing cost. The following steps will delete your work, so make sure you are completely finished at this point. Otherwise, you will have to repeat your work from the previous steps.

+

Return to AnVIL, and find the Galaxy logo that shows your cloud environment is running. Click on this logo:

+

Screenshot of the Workspace menu. The currently running Galaxy cloud environment logo on the top right of the page is highlighted.

+

Next, click on “DELETE ENVIRONMENT OPTIONS”:

+

Screenshot of the cloud environment pop out menu. The “DELETE ENVIRONMENT OPTIONS” link is highlighted.

+

Finally, select “Delete everything, including persistent disk”. Make sure you are done with the activity and then click “DELETE”.

+

Screenshot of the cloud environment pop out menu. The “Delete everything, including persistent disk” radio button has been checked and is highlighted. The “DELETE” button is highlighted.

+
+
+
+

7.7 Video overview on using RStudio

+

Here is a video tutorial that describes the basics of using RStudio on AnVIL.

+ +
+

7.7.1 Objectives

+
    +
  • Start compute for your RStudio environment
  • +
  • Tour RStudio on AnVIL
  • +
  • Stop compute to minimize expenses
  • +
+
+
+

7.7.2 Slides

+

The slides for this tutorial are are located here.

+
+
+
+

7.8 Launching RStudio

+
+
+

AnVIL is very versatile and can scale up to use very powerful cloud computers. It’s very important that you select a cloud computing environment appropriate to your needs to avoid runaway costs. If you are uncertain, start with the default settings; it is fairly easy to increase your compute resources later, if needed, but harder to scale down.

+
+

Note that, in order to use RStudio, you must have access to a Terra Workspace with permission to compute (i.e. you must be a “Writer” or “Owner” of the Workspace).

+
    +
  1. Open Terra - use a web browser to go to anvil.terra.bio

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of your Workspace. You should be routed to a link that looks like: https://anvil.terra.bio/#workspaces/<billing-project>/<workspace-name>.

  6. +
  7. Click on the cloud icon on the far right to access your Cloud Environment options.

    +

    Screenshot of a Terra Workspace. The cloud icon to create a new cloud environment is highlighted.

  8. +
  9. In the dialogue box, click the “Settings” button under RStudio.

    +

    Screenshot of the Cloud Environment Details dialogue box. The Settings button under RStudio is highlighted.

  10. +
  11. You will see some details about the default RStudio cloud environment, and a list of costs because it costs a small amount of money to use cloud computing.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The cost to run the environment is highlighted.

  12. +
  13. If you are uncertain about what you need, the default configuration is a reasonable, cost-conservative choice. It is fairly easy to increase your compute resources later, if needed, but harder to scale down. Click the “Create” button.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CREATE" button is highlighted.

  14. +
  15. Otherwise, click “CUSTOMIZE” to modify the environment for your needs.

    +

    Screenshot of the RStudio Cloud Environment dialogue box. The "CUSTOMIZE" button is highlighted.

  16. +
  17. The dialogue box will close and you will be returned to your Workspace. You can see the status of your cloud environment by hovering over the RStudio logo. It will take a few minutes for Terra to request computers and install software.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Creating".

  18. +
  19. When your environment is ready, its status will change to “Running”. Click on the RStudio logo to open a new dialogue box that will let you launch RStudio.

    +

    Screenshot of a Terra Workspace. The hovertext for the RStudio icon is highlighted, and indicates that the status of the environment is "Running".

  20. +
  21. Click the launch icon to open RStudio. This is also where you can pause, modify, or delete your environment when needed.

    +

    Screenshot of the RStudio Environment Details dialogue box. The "Open" button is highlighted.

  22. +
  23. You should now see the RStudio interface with information about the version printed to the console.

    +

    Screenshot of the RStudio environment interface.

  24. +
+
+
+
+

7.9 Touring RStudio

+
+

Next, we will be using RStudio and the package Glimma to create interactive plots. See this vignette for more information.

+
    +
  1. The Bioconductor team has created a very useful package to programmatically interact with Terra and Google Cloud. Install the AnVIL package. It will make some steps easier as we go along.

    +

    Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted.

  2. +
  3. You can now quickly install precompiled binaries using the AnVIL package’s install() function. We will use it to install the Glimma package and the airway package. The airway package contains a SummarizedExperiment data class. This data describes an RNA-Seq experiment on four human airway smooth muscle cell lines treated with dexamethasone.

  4. +
+

{Note: for some of the packages, you will have to install packaged from the CRAN repository, using the install.packages() function. The examples will show you which install method to use.}

+
<img src="07-using_platforms_modules_files/figure-html//1BLTCaogA04bbeSD1tR1Wt-mVceQA6FHXa8FmFzIARrg_g11f12bc99af_0_56.png" alt="Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted." width="100%" />
+
    +
  1. Load the example data.

    +

    Screenshot of the RStudio environment interface. Code has been typed in the console and is highlighted.

  2. +
  3. The multidimensional scaling (MDS) plot is frequently used to explore differences in samples. When this data is MDS transformed, the first two dimensions explain the greatest variance between samples, and the amount of variance decreases monotonically with increasing dimension. The following code will launch a new window where you can interact with the MDS plot.

    +

    Screenshot of the Glimma popout showing the data in an MDS plot. All data points are blue.

  4. +
  5. Change the colour_by setting to “groups” so you can easily distinguish between groups. In this data, the “group” is the treatment.

    +

    Screenshot of the Glimma popout showing the data in an MDS plot. Data points are colored blue and orange by group. The colour by dropdown menu on the interactive plot is hightlighted.

  6. +
  7. You can download the interactive html file by clicking on “Save As”.

    +

    Screenshot of the Glimma popout showing the data in an MDS plot. The Save As menu is highlighted.

  8. +
  9. You can also download plots and other files created directly in RStudio. To download the following plot, click on “Export” and save in your preferred format to the default directory. This saves the file in your cloud environment.

    +

    Screenshot of the RStudio interface. A plot has been created. The Export menu has been highlighted.

  10. +
  11. You should see the plot in the “Files” pane.

    +

    Screenshot of the RStudio interface. A plot has been created. The saved pdf file is now visible under the "Files" pane.

  12. +
  13. Select this file and click “More” > “Export”

    +

    Screenshot of the RStudio interface. A plot has been created. The saved pdf file is now visible under the "Files" pane. The "More" and "Export" menus have been highlighted.

  14. +
  15. Select “Download” to save the file to your local machine.

    +

    Screenshot of the RStudio interface. The popup to download the selected file has been highlighted,

  16. +
+
+
+
+

7.10 Pausing RStudio

+
+
    +
  1. The right-hand side icon reminds you that you are accruing cloud computing costs. If you don’t see this icon, you may need to scroll to the right.

    +

    Screenshot of the RStudio interface. The icon on the right showing that the cloud environment is running is highlighted.

  2. +
  3. You should minimize charges when you are not performing an analysis. You can do this by clicking on the RStudio icon and selecting “Pause”. This will release the CPU and memory resources for other people to use. Note that your work will be saved in the environment and continue to accrue a very small cost. This work will be lost if the cloud environment gets deleted. If there is anything you would like to save permanently, it’s a good idea to copy it from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs.

    +

    Screenshot of the RStudio menu. The pause button which stops the cloud environment is highlighted.

  4. +
+
+

You can also pause your cloud environment(s) at https://anvil.terra.bio/#clusters.

+
+
+
+
+

7.11 Deleting RStudio

+
+
    +
  1. Pausing your cloud environment only temporarily stops your work. When you are ready to delete the cloud environment, click on the RStudio icon on the right-hand side and select “Settings”. If you don’t see this icon, you may need to scroll to the right.

    +

    Screenshot of the Workspace page. The RStudio icon associated with the cloud environment is highlighted. The Settings button is also highlighted

  2. +
  3. Click on “Delete Environment”.

    +

    Screenshot of the cloud environment popout. "Delete environment" is highlighted.

  4. +
  5. If you are certain that you do not need the data and configuration on your disk, you should select “Delete everything, including persistent disk”. If there is anything you would like to save, open the compute environment and copy the file(s) from your compute environment to another location, such as the Workspace bucket, GitHub, or your local machine, depending on your needs.

    +

    Screenshot of the cloud environment popout. "Delete everything, including persistent disk" is highlighted.

  6. +
  7. Select “DELETE”.

    +

    Screenshot of the cloud environment popout. "Delete" is highlighted.

  8. +
+
+

You can also delete your cloud environment(s) and disk storage at https://anvil.terra.bio/#clusters.

+
+
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/why-anvil.html b/docs/why-anvil.html new file mode 100644 index 0000000..4b8270e --- /dev/null +++ b/docs/why-anvil.html @@ -0,0 +1,425 @@ + + + + + + + Chapter 10 Why AnVIL | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 10 Why AnVIL

+

Modules describing why AnVIL is useful for different personas.

+


+
+

10.1 Why AnVIL for Instructors?

+
+

You may be wondering if AnVIL is a good choice for your class. We feel the answer is an unequivocal YES!

+

AnVIL provides all the advantages of a cloud computing environment:

+
    +
  • Version control: All students will be using the exact same versions of programs, running on the exact same operating system, and the majority of setup can be handled for the students ahead of time. This greatly reduces time spent on setup and prevents unexpected run errors during the activities, limiting the amount of troubleshooting you have to do. As a result, classes and activities will run more smoothly and predictably.
  • +
  • Inclusivity: Cloud-computing enables all students to participate in the activity without needing to provide computers with certain specifications.
  • +
  • Experience: Cloud-computing is becoming common in today’s bioinformatics workplaces, and the classroom is a low-stress and low-stakes opportunity for students to gain experience.
  • +
+

AnVIL is purpose-built for genomic data science:

+
    +
  • Tools: Through AnVIL, students can access a wide range of tools (Galaxy, RStudio/Bioconductor, Jupyter, as well as scripted workflows) all in one place, and can easily transition between them.
  • +
  • Datasets: AnVIL provides a large and growing collection of relevant datasets with standardized organization, for easier importing and processing.
  • +
  • Authenticity: On AnVIL, students will be working in the same environment as scientists carrying out cutting edge research.
  • +
+
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/docs/workspaces.html b/docs/workspaces.html new file mode 100644 index 0000000..c7ab6ea --- /dev/null +++ b/docs/workspaces.html @@ -0,0 +1,490 @@ + + + + + + + Chapter 4 Workspaces | AnVIL Book Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + +
+
+ +
+ + + + + + + + +
+ +
+
+

Chapter 4 Workspaces

+

Modules about Terra Workspaces

+


+
+

4.1 Clone a Workspace

+
    +
  1. Launch Terra

  2. +
  3. Locate the Workspace you want to clone. If a Workspace has been shared with you ahead of time, it will appear in “MY WORKSPACES”. You can clone a Workspace that was shared with you to perform your own analyses. In the screenshot below, no Workspaces have been shared.

    +

    Screenshot of Terra "MY WORKSPACES" menu. The "MY WORKSPACES" tab is highlighted. No Workspaces are visible because none have been shared with the user. There is an option to create a new Workspace.

  4. +
  5. If a Workspace hasn’t been shared with you, navigate to the “FEATURED” or “PUBLIC” Workspace tabs.

    +

    Screenshot of Terra "My Workspaces" menu. The "FEATURED" tab is highlighted.

  6. +
  7. Use the search box to find the Workspace you want to clone.

    +

    Screenshot of Terra "My Workspaces" menu. The search bar is highlighted and the user has typed in the term "COVID-19". A Workspace related to COVID-19 appears in the results.

  8. +
  9. Click the teardrop button on the far right next to the Workspace you want to clone. Click “Clone”. You can also clone the Workspace from the Workspace Dashboard instead of the search results.

    +

    Screenshot of Terra "My Workspaces" menu with the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted. +Screenshot of the Dashboard for the Workspace that we want to clone. The teardrop button has been clicked to bring up the options. The "Clone" option from the list is highlighted.

  10. +
  11. You will see a popup box appear. Name your Workspace and select the appropriate Terra Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it). Remember that each Workspace should have its own Billing Project.

    +

    Screenshot of the "clone workspace" Terra popup dialog box. The Workspace name and Billing Project dropdown are highlighted. Text has been filled in for the Workspace name as "Lab-member-1-workspace-2".

  12. +
  13. If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated.

    +

    Screenshot of Terra popup dialog box for creating a new Workspace. The drop-down menu labeled "Authorization domain" is highlighted.

  14. +
  15. Click “CLONE WORKSPACE”. The new Workspace should now show up under your Workspaces.

    +

    Screenshot of Terra popup dialog box for creating a new Workspace. The "Clone Workspace" button is highlighted.

  16. +
+
+
+

4.2 Create a Workspace

+
    +
  1. Launch Terra

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the plus icon near the top of left of the page.

    +

    Screenshot of Terra Workspaces page.  The "+" is highlighted.

  6. +
  7. Name your Workspace and select the appropriate Billing Project. All activity in the Workspace will be charged to this Billing Project (regardless of who conducted it).

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The text box labeled "Workspace name" and the drop-down menu labeled "Billing project" are highlighted.

  8. +
  9. If you are working with protected data, you can set the Authorization Domain to limit who can be added to your Workspace. Note that the Authorization Domain cannot be changed after the Workspace is created (i.e. there is no way to make this Workspace shareable with a larger audience in the future). Workspaces by default are only visible to people you specifically share them with. Authorization domains add an extra layer of enforcement over privacy, but by nature make sharing more complicated. We recommend using Authorization Domains in cases where it is extremely important and/or legally required that the data be kept private (e.g. protected patient data, industry data). For data you would merely prefer not be shared with the world, we recommend relying on standard Workspace sharing permissions rather than Authorization Domains, as Authorization Domains can make future collaborations, publications, or other sharing complicated.

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The drop-down menu labeled "Authorization domain" is highlighted.

  10. +
  11. Click “CREATE WORKSPACE”. The new Workspace should now show up under your Workspaces.

    +

    Screenshot of Terra dialog box for creating a new Workspace.  The "Create Workspace" button is highlighted.

  12. +
+
+
+

4.3 Open a Workspace

+
    +
  1. Launch Terra

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. You are automatically directed to the “My Workspaces” tab. Here you can see any Workspaces that have been shared with you, along with your permission level.

    +

    Screenshot of Terra Workspaces page with the "My Workspaces" tab selected.  The "My Workspaces" tab and the column showing permission level are highlighted.

    +
      +
    • Reader means you can open the Workspace and see everything, but can’t do any computations or make any edits.
    • +
    • Writer means you can run computations, which will charge costs to the Workspace’s Billing Project. Writers can also make edits to the Workspace.
    • +
    • Owner is similar to Writer, but also allows you to control who can access the Workspace.
    • +
  6. +
  7. Click on the name of a Workspace to open it. Opening and viewing a Workspace does not cost anything.

    +

    Screenshot of Terra Workspaces page with the "My Workspaces" tab selected.  The name of one of the Workspaces is highlighted.

  8. +
  9. When you open a Workspace, you are directed to the Workspace Dashboard. This generally has a description of the Workspace contents, as well as some useful details about the Workspace itself.

    +

    Screenshot of a Terra Workspace.  The "Dashboard" is highlighted.

  10. +
+

From here you can navigate through the different tabs of the Workspace, and if you have sufficient permission, you can start running analyses. If you are only a Reader, you may need to “clone” (make your own copy) of the Workspace before you can start working.

+
+
+

4.4 Share a Workspace

+
    +
  1. Launch Terra

  2. +
  3. In the drop-down menu on the left, navigate to “Workspaces”. Click the triple bar in the top left corner to access the menu. Click “Workspaces”.

    +

    Screenshot of Terra drop-down menu.  The "hamburger" button to extend the drop-down menu is highlighted, and the menu item "Workspaces" is highlighted.

  4. +
  5. Click on the name of the Workspace to open the Workspace. Opening a Workspace does not cost anything. Certain activities in the Workspace (such as running an analysis) will charge to the Workspace’s Billing Project. Workspace management (e.g. adding and removing members, editing the description) does not cost money.

    +

    Screenshot of Terra Workspace page.  The name of a Workspace is highlighted.

  6. +
  7. Click the teardrop button (teardrop button) on the right hand side to open the Workspace management menu. Click “Share”

    +

    Screenshot of an individual Terra Workspace dashboard page.  The button for extending the Workspaces's drop-down menu is highlighted, and the menu item "Share" is highlighted.

  8. +
  9. Enter the email address of the user or Group you’d like to share the Workspace with.

    +
      +
    • If adding an individual, make sure to enter the account that they use to access AnVIL.
    • +
    • If adding a Terra Group, use the Group email address, which can be found on the Terra Group management page.
    • +
    +

    Screenshot of the dialog box for sharing a Terra Workspace.  The text box labeled "User email" is highlighted.

  10. +
  11. Choose their permission level.

    +
      +
    • Remember that all activity in the Workspace will be charged to the Workspace’s Billing Project, regardless of who conducts it, so only add members as “Writers” or “Owners” if they should be charging to the Workspace’s Billing Project.
    • +
    • “Readers” can view all parts of the Workspace but cannot make edits or run analyses (i.e. they cannot spend money). They can also clone their own copy of the Workspace where they can conduct activity on their own Billing Project.
    • +
    +

    Screenshot of the dialog box for sharing a Terra Workspace.  The drop-down menu labeled with the email of the user you are sharing with is highlighted and the menu item "Writer" is selected.

  12. +
  13. Click “Save”. The user should now be able to see the Workspace when logged in to Terra.

    +

    Screenshot of the dialog box for sharing a Terra Workspace.  The "Save" button is highlighted.

  14. +
+ +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/index.Rmd b/index.Rmd new file mode 100644 index 0000000..0ae4626 --- /dev/null +++ b/index.Rmd @@ -0,0 +1,40 @@ +--- +title: "AnVIL Book Name" +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 +--- + + +# 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). + +## Skills Level {-} + +::: {.notice} +_Genetics_ + + +_Programming skills_ + +::: + +## AnVIL Collection {-} + +Please check out our full collection of AnVIL and related resources: https://hutchdatascience.org/AnVIL_Collection/ + +# Learning Objectives {-} + + + + + + + + diff --git a/manuscript/1-Introduction.md b/manuscript/1-Introduction.md new file mode 100644 index 0000000..c79d96c --- /dev/null +++ b/manuscript/1-Introduction.md @@ -0,0 +1,7 @@ +# 1 Introduction + +{type: iframe, title:1 Introduction, width:800, height:600, poster:resources/chapt_screen_images/introduction.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/introduction.html) + + + diff --git a/manuscript/10-Why-AnVIL.md b/manuscript/10-Why-AnVIL.md new file mode 100644 index 0000000..12416ae --- /dev/null +++ b/manuscript/10-Why-AnVIL.md @@ -0,0 +1,7 @@ +# 10 Why AnVIL + +{type: iframe, title:10 Why AnVIL, width:800, height:600, poster:resources/chapt_screen_images/why-anvil.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/why-anvil.html) + + + diff --git a/manuscript/11-Instructor-modules.md b/manuscript/11-Instructor-modules.md new file mode 100644 index 0000000..dcf471f --- /dev/null +++ b/manuscript/11-Instructor-modules.md @@ -0,0 +1,7 @@ +# 11 Instructor modules + +{type: iframe, title:11 Instructor modules, width:800, height:600, poster:resources/chapt_screen_images/instructor-modules.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/instructor-modules.html) + + + diff --git a/manuscript/11-References.md b/manuscript/11-References.md new file mode 100644 index 0000000..725cc67 --- /dev/null +++ b/manuscript/11-References.md @@ -0,0 +1,7 @@ +# 11 References + +{type: iframe, title:11 References, width:800, height:600, poster:resources/chapt_screen_images/references.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/references.html) + + + diff --git a/manuscript/12-References.md b/manuscript/12-References.md new file mode 100644 index 0000000..c4dd32b --- /dev/null +++ b/manuscript/12-References.md @@ -0,0 +1,7 @@ +# 12 References + +{type: iframe, title:12 References, width:800, height:600, poster:resources/chapt_screen_images/references.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/references.html) + + + diff --git a/manuscript/2-A-new-chapter.md b/manuscript/2-A-new-chapter.md new file mode 100644 index 0000000..02e4230 --- /dev/null +++ b/manuscript/2-A-new-chapter.md @@ -0,0 +1,7 @@ +# 2 A new chapter + +{type: iframe, title:2 A new chapter, width:800, height:600, poster:resources/chapt_screen_images/a-new-chapter.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/a-new-chapter.html) + + + diff --git a/manuscript/3-AnVIL-Module-Library.md b/manuscript/3-AnVIL-Module-Library.md new file mode 100644 index 0000000..cdca3ac --- /dev/null +++ b/manuscript/3-AnVIL-Module-Library.md @@ -0,0 +1,7 @@ +# 3 AnVIL Module Library + +{type: iframe, title:3 AnVIL Module Library, width:800, height:600, poster:resources/chapt_screen_images/anvil-module-library.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/anvil-module-library.html) + + + diff --git a/manuscript/4-Workspaces.md b/manuscript/4-Workspaces.md new file mode 100644 index 0000000..b277bd2 --- /dev/null +++ b/manuscript/4-Workspaces.md @@ -0,0 +1,7 @@ +# 4 Workspaces + +{type: iframe, title:4 Workspaces, width:800, height:600, poster:resources/chapt_screen_images/workspaces.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/workspaces.html) + + + diff --git a/manuscript/5-Billing.md b/manuscript/5-Billing.md new file mode 100644 index 0000000..c62a2a4 --- /dev/null +++ b/manuscript/5-Billing.md @@ -0,0 +1,7 @@ +# 5 Billing + +{type: iframe, title:5 Billing, width:800, height:600, poster:resources/chapt_screen_images/billing.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/billing.html) + + + diff --git a/manuscript/6-Onboarding.md b/manuscript/6-Onboarding.md new file mode 100644 index 0000000..86b3011 --- /dev/null +++ b/manuscript/6-Onboarding.md @@ -0,0 +1,7 @@ +# 6 Onboarding + +{type: iframe, title:6 Onboarding, width:800, height:600, poster:resources/chapt_screen_images/onboarding.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/onboarding.html) + + + diff --git a/manuscript/7-Using-programming-platforms-on-AnVIL.md b/manuscript/7-Using-programming-platforms-on-AnVIL.md new file mode 100644 index 0000000..9bc9e22 --- /dev/null +++ b/manuscript/7-Using-programming-platforms-on-AnVIL.md @@ -0,0 +1,7 @@ +# 7 Using programming platforms on AnVIL + +{type: iframe, title:7 Using programming platforms on AnVIL, width:800, height:600, poster:resources/chapt_screen_images/using-programming-platforms-on-anvil.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/using-programming-platforms-on-anvil.html) + + + diff --git a/manuscript/8-Student-instructions.md b/manuscript/8-Student-instructions.md new file mode 100644 index 0000000..15d1f2a --- /dev/null +++ b/manuscript/8-Student-instructions.md @@ -0,0 +1,7 @@ +# 8 Student instructions + +{type: iframe, title:8 Student instructions, width:800, height:600, poster:resources/chapt_screen_images/student-instructions.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/student-instructions.html) + + + diff --git a/manuscript/9-User-Management.md b/manuscript/9-User-Management.md new file mode 100644 index 0000000..4f4f3b6 --- /dev/null +++ b/manuscript/9-User-Management.md @@ -0,0 +1,7 @@ +# 9 User Management + +{type: iframe, title:9 User Management, width:800, height:600, poster:resources/chapt_screen_images/user-management.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/user-management.html) + + + diff --git a/manuscript/About-the-Authors.md b/manuscript/About-the-Authors.md new file mode 100644 index 0000000..c71dc72 --- /dev/null +++ b/manuscript/About-the-Authors.md @@ -0,0 +1,7 @@ +# About the Authors + +{type: iframe, title:About the Authors, width:800, height:600, poster:resources/chapt_screen_images/about-the-authors.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/about-the-authors.html) + + + diff --git a/manuscript/About-this-Book.md b/manuscript/About-this-Book.md new file mode 100644 index 0000000..b97e957 --- /dev/null +++ b/manuscript/About-this-Book.md @@ -0,0 +1,7 @@ +# About this Book + +{type: iframe, title:About this Book, width:800, height:600, poster:resources/chapt_screen_images/index.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/index.html) + + + diff --git a/manuscript/Book.txt b/manuscript/Book.txt new file mode 100644 index 0000000..de8ded0 --- /dev/null +++ b/manuscript/Book.txt @@ -0,0 +1,15 @@ +1-Introduction.md +2-A-new-chapter.md +3-AnVIL-Module-Library.md +4-Workspaces.md +5-Billing.md +6-Onboarding.md +7-Using-programming-platforms-on-AnVIL.md +8-Student-instructions.md +9-User-Management.md +10-Why-AnVIL.md +11-Instructor-modules.md +12-References.md +About-this-Book.md +Learning-Objectives.md +About-the-Authors.md diff --git a/manuscript/Learning-Objectives.md b/manuscript/Learning-Objectives.md new file mode 100644 index 0000000..85d4788 --- /dev/null +++ b/manuscript/Learning-Objectives.md @@ -0,0 +1,7 @@ +# Learning Objectives + +{type: iframe, title:Learning Objectives, width:800, height:600, poster:resources/chapt_screen_images/learning-objectives.png} +![](https://jhudatascience.org/AnVIL_Template/no_toc/learning-objectives.html) + + + diff --git a/manuscript/resources/chapt_screen_images/a-new-chapter.png b/manuscript/resources/chapt_screen_images/a-new-chapter.png new file mode 100644 index 0000000..b665cb9 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/a-new-chapter.png differ diff --git a/manuscript/resources/chapt_screen_images/about-the-authors.png b/manuscript/resources/chapt_screen_images/about-the-authors.png new file mode 100644 index 0000000..287af94 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/about-the-authors.png differ diff --git a/manuscript/resources/chapt_screen_images/anvil-module-library.png b/manuscript/resources/chapt_screen_images/anvil-module-library.png new file mode 100644 index 0000000..84ec354 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/anvil-module-library.png differ diff --git a/manuscript/resources/chapt_screen_images/billing.png b/manuscript/resources/chapt_screen_images/billing.png new file mode 100644 index 0000000..187a35a Binary files /dev/null and b/manuscript/resources/chapt_screen_images/billing.png differ diff --git a/manuscript/resources/chapt_screen_images/index.png b/manuscript/resources/chapt_screen_images/index.png new file mode 100644 index 0000000..1e678fe Binary files /dev/null and b/manuscript/resources/chapt_screen_images/index.png differ diff --git a/manuscript/resources/chapt_screen_images/instructor-modules.png b/manuscript/resources/chapt_screen_images/instructor-modules.png new file mode 100644 index 0000000..be684ee Binary files /dev/null and b/manuscript/resources/chapt_screen_images/instructor-modules.png differ diff --git a/manuscript/resources/chapt_screen_images/introduction.png b/manuscript/resources/chapt_screen_images/introduction.png new file mode 100644 index 0000000..8d00657 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/introduction.png differ diff --git a/manuscript/resources/chapt_screen_images/learning-objectives.png b/manuscript/resources/chapt_screen_images/learning-objectives.png new file mode 100644 index 0000000..1ecde55 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/learning-objectives.png differ diff --git a/manuscript/resources/chapt_screen_images/onboarding.png b/manuscript/resources/chapt_screen_images/onboarding.png new file mode 100644 index 0000000..7e7ea47 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/onboarding.png differ diff --git a/manuscript/resources/chapt_screen_images/references.png b/manuscript/resources/chapt_screen_images/references.png new file mode 100644 index 0000000..5af2eb2 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/references.png differ diff --git a/manuscript/resources/chapt_screen_images/student-instructions.png b/manuscript/resources/chapt_screen_images/student-instructions.png new file mode 100644 index 0000000..5f5c0c6 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/student-instructions.png differ diff --git a/manuscript/resources/chapt_screen_images/user-management.png b/manuscript/resources/chapt_screen_images/user-management.png new file mode 100644 index 0000000..a75181f Binary files /dev/null and b/manuscript/resources/chapt_screen_images/user-management.png differ diff --git a/manuscript/resources/chapt_screen_images/using-programming-platforms-on-anvil.png b/manuscript/resources/chapt_screen_images/using-programming-platforms-on-anvil.png new file mode 100644 index 0000000..098ca75 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/using-programming-platforms-on-anvil.png differ diff --git a/manuscript/resources/chapt_screen_images/why-anvil.png b/manuscript/resources/chapt_screen_images/why-anvil.png new file mode 100644 index 0000000..315bc4c Binary files /dev/null and b/manuscript/resources/chapt_screen_images/why-anvil.png differ diff --git a/manuscript/resources/chapt_screen_images/workspaces.png b/manuscript/resources/chapt_screen_images/workspaces.png new file mode 100644 index 0000000..58ae603 Binary files /dev/null and b/manuscript/resources/chapt_screen_images/workspaces.png differ diff --git a/output-proj.yml b/output-proj.yml new file mode 100644 index 0000000..bd63db5 --- /dev/null +++ b/output-proj.yml @@ -0,0 +1,16 @@ +bookdown::gitbook: + css: assets/style.css + includes: + before_body: assets/big-image.html + after_body: assets/footer.html + highlight: tango + config: + toc: + collapse: section + before: | + + after: | +

This content was published with bookdown by:

+

The Johns Hopkins Data Science Lab

+ +

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

diff --git a/packages.bib b/packages.bib new file mode 100644 index 0000000..b501b2a --- /dev/null +++ b/packages.bib @@ -0,0 +1,85 @@ +@Manual{R-base, + title = {R: A Language and Environment for Statistical Computing}, + author = {{R Core Team}}, + organization = {R Foundation for Statistical Computing}, + address = {Vienna, Austria}, + year = {2020}, + url = {https://www.R-project.org/}, +} + +@Manual{R-bookdown, + title = {bookdown: Authoring Books and Technical Documents with R Markdown}, + author = {Yihui Xie}, + year = {2021}, + note = {https://github.com/rstudio/bookdown, +https://pkgs.rstudio.com/bookdown/}, +} + +@Manual{R-knitr, + title = {knitr: A General-Purpose Package for Dynamic Report Generation in R}, + author = {Yihui Xie}, + year = {2021}, + note = {R package version 1.33}, + url = {https://yihui.org/knitr/}, +} + +@Manual{R-rmarkdown, + 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}, + year = {2021}, + note = {https://github.com/rstudio/rmarkdown, +https://pkgs.rstudio.com/rmarkdown/}, +} + +@Book{bookdown2016, + title = {bookdown: Authoring Books and Technical Documents with {R} Markdown}, + author = {Yihui Xie}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2016}, + note = {ISBN 978-1138700109}, + url = {https://bookdown.org/yihui/bookdown}, +} + +@Book{knitr2015, + title = {Dynamic Documents with {R} and knitr}, + author = {Yihui Xie}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2015}, + edition = {2nd}, + note = {ISBN 978-1498716963}, + url = {https://yihui.org/knitr/}, +} + +@InCollection{knitr2014, + booktitle = {Implementing Reproducible Computational Research}, + editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng}, + title = {knitr: A Comprehensive Tool for Reproducible Research in {R}}, + author = {Yihui Xie}, + publisher = {Chapman and Hall/CRC}, + year = {2014}, + note = {ISBN 978-1466561595}, + url = {http://www.crcpress.com/product/isbn/9781466561595}, +} + +@Book{rmarkdown2018, + title = {R Markdown: The Definitive Guide}, + author = {Yihui Xie and J.J. Allaire and Garrett Grolemund}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2018}, + note = {ISBN 9781138359338}, + url = {https://bookdown.org/yihui/rmarkdown}, +} + +@Book{rmarkdown2020, + title = {R Markdown Cookbook}, + author = {Yihui Xie and Christophe Dervieux and Emily Riederer}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2020}, + note = {ISBN 9780367563837}, + url = {https://bookdown.org/yihui/rmarkdown-cookbook}, +} + diff --git a/quizzes/quiz_ch1.md b/quizzes/quiz_ch1.md new file mode 100644 index 0000000..26b4455 --- /dev/null +++ b/quizzes/quiz_ch1.md @@ -0,0 +1,54 @@ + +{quiz, id: quiz_name_here, attempts: 10} + +## Template quiz + +Put any other instructions your quiz takers need to know here like: Choose the best answer. + +{choose-answers: 4} +? First question to ask goes here. (Note- you need a question mark at end like this. Just one is required if using a question mark in your question field)? + +C) One correct answer here marked with a "C" +C) A second correct answer here +m) Mandatory incorrect answers have an "m" +m) A second mandatory incorrect answer +o) An optional incorrect answer here marked with an "o" +o) A second optional incorrect answer here + +{choose-answers: 4} +? Question example with just a question mark? + +C) One correct answer here marked with a "C" +C) A second correct answer here +m) Mandatory incorrect answers have an "m" +m) A second mandatory incorrect answer +o) An optional incorrect answer here marked with an "o" +o) A second optional incorrect answer here + +{choose-answers: 4} +? Second question to ask goes here? + +C) One correct answer here marked with a "C" +C) A second correct answer here +m) Mandatory incorrect answers have an "m" +m) A second mandatory incorrect answer +o) An optional incorrect answer here marked with an "o" +o) A second optional incorrect answer here + + +{choose-answers: 4} +? A more complicated example. Note the question mark at the end of the options! Which of the following are correct +1. An option described +2. A second option +3. A third option +4. A fourth option +5. A fifth option ? + +C) All of the examples listed except 5 +C) All of the listed examples except 5 +m) 1, 3, and 5 +m) 1, 2, and 3 +o) All of the examples except 1 and 5 +o) All of the examples listed + +{/quiz} diff --git a/resources/AnVIL_repos.tsv b/resources/AnVIL_repos.tsv new file mode 100644 index 0000000..6b51099 --- /dev/null +++ b/resources/AnVIL_repos.tsv @@ -0,0 +1,11 @@ +name homepage html_url description topics +AnVIL_Book_Getting_Started https://jhudatascience.org/AnVIL_Book_Getting_Started https://github.com/jhudsl/AnVIL_Book_Getting_Started A guide for getting started using AnVIL anvil, cloud-computing +AnVIL_Book_Instructor_Guide https://jhudatascience.org/AnVIL_Book_Instructor_Guide https://github.com/jhudsl/AnVIL_Book_Instructor_Guide A guide for instructors using AnVIL for workshops, lessons, or courses. anvil, education +AnVIL_Phylogenetic-Techniques https://jhudatascience.org/AnVIL_Phylogenetic-Techniques/ https://github.com/jhudsl/AnVIL_Phylogenetic-Techniques A semester-long course on the basics of molecular phylogenetic techniques anvil, r-programming +AnVIL_SRA_Data https://hutchdatascience.org/AnVIL_SRA_Data/ https://github.com/fhdsl/AnVIL_SRA_Data Pull Sequence Read Archive (SRA) data into AnVIL anvil +AnVIL_Template https://jhudatascience.org/AnVIL_Template/ https://github.com/jhudsl/AnVIL_Template An OTTR spinoff template for creating AnVIL content anvil, template +GDSCN_Book_SARS_Galaxy_on_AnVIL https://jhudatascience.org/GDSCN_Book_SARS_Galaxy_on_AnVIL/ https://github.com/jhudsl/GDSCN_Book_SARS_Galaxy_on_AnVIL Lab module and lectures for variant detection in SARS-CoV-2 using Galaxy anvil, genomics, module +GDSCN_Book_Statistics_for_Genomics_Differential_Expression https://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_Differential_Expression/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_Differential_Expression A set of lab modules for an introduction to differential gene expression anvil, cloud-computing, gene-expression +GDSCN_Book_Statistics_for_Genomics_PCA https://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_PCA/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_PCA A set of lab modules for PCA analysis anvil +GDSCN_Book_Statistics_for_Genomics_RNA-seq https://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_RNA-seq/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_RNA-seq A set of lab modules for RNA-seq analysis anvil +GDSCN_Book_Statistics_for_Genomics_scRNA-seq http://jhudatascience.org/GDSCN_Book_Statistics_for_Genomics_scRNA-seq/ https://github.com/jhudsl/GDSCN_Book_Statistics_for_Genomics_scRNA-seq A set of lab modules for single cell RNA-seq analysis anvil diff --git a/resources/TEMPLATE_Dockerfile b/resources/TEMPLATE_Dockerfile new file mode 100644 index 0000000..f68ae97 --- /dev/null +++ b/resources/TEMPLATE_Dockerfile @@ -0,0 +1,20 @@ +FROM jhudsl/course_template:main +LABEL maintainer="your_email.com" + +#################### EXAMPLES OF INSTALLING PACKAGES ########################### +# Install a Linux/Ubuntu package +# RUN apt-get update && apt-get install -y --no-install-recommends \ +# package_name + +# Install a package from CRAN +# RUN Rscript -e "options(warn = 2);install.packages( \ +# c('package_name'), \ +# repos = 'https://cloud.r-project.org/')" + +# Install a package from Bioconductor +# RUN Rscript -e "options(warn = 2); BiocManager::install( \ +# c('package_name') + +# Add a python package +# RUN RUN pip3 install \ +# "somepackage==0.1.0" diff --git a/resources/chapt_screen_images/a-new-chapter.png b/resources/chapt_screen_images/a-new-chapter.png new file mode 100644 index 0000000..b665cb9 Binary files /dev/null and b/resources/chapt_screen_images/a-new-chapter.png differ diff --git a/resources/chapt_screen_images/about-the-authors.png b/resources/chapt_screen_images/about-the-authors.png new file mode 100644 index 0000000..287af94 Binary files /dev/null and b/resources/chapt_screen_images/about-the-authors.png differ diff --git a/resources/chapt_screen_images/anvil-module-library.png b/resources/chapt_screen_images/anvil-module-library.png new file mode 100644 index 0000000..84ec354 Binary files /dev/null and b/resources/chapt_screen_images/anvil-module-library.png differ diff --git a/resources/chapt_screen_images/billing.png b/resources/chapt_screen_images/billing.png new file mode 100644 index 0000000..187a35a Binary files /dev/null and b/resources/chapt_screen_images/billing.png differ diff --git a/resources/chapt_screen_images/chapter_urls.tsv b/resources/chapt_screen_images/chapter_urls.tsv new file mode 100644 index 0000000..d93f12e --- /dev/null +++ b/resources/chapt_screen_images/chapter_urls.tsv @@ -0,0 +1,16 @@ +url chapt_title img_path +https://jhudatascience.org/AnVIL_Template/no_toc/index.html About this Book resources/chapt_screen_images/index.png +https://jhudatascience.org/AnVIL_Template/no_toc/learning-objectives.html Learning Objectives resources/chapt_screen_images/learning-objectives.png +https://jhudatascience.org/AnVIL_Template/no_toc/introduction.html 1 Introduction resources/chapt_screen_images/introduction.png +https://jhudatascience.org/AnVIL_Template/no_toc/a-new-chapter.html 2 A new chapter resources/chapt_screen_images/a-new-chapter.png +https://jhudatascience.org/AnVIL_Template/no_toc/anvil-module-library.html 3 AnVIL Module Library resources/chapt_screen_images/anvil-module-library.png +https://jhudatascience.org/AnVIL_Template/no_toc/workspaces.html 4 Workspaces resources/chapt_screen_images/workspaces.png +https://jhudatascience.org/AnVIL_Template/no_toc/billing.html 5 Billing resources/chapt_screen_images/billing.png +https://jhudatascience.org/AnVIL_Template/no_toc/onboarding.html 6 Onboarding resources/chapt_screen_images/onboarding.png +https://jhudatascience.org/AnVIL_Template/no_toc/using-programming-platforms-on-anvil.html 7 Using programming platforms on AnVIL resources/chapt_screen_images/using-programming-platforms-on-anvil.png +https://jhudatascience.org/AnVIL_Template/no_toc/student-instructions.html 8 Student instructions resources/chapt_screen_images/student-instructions.png +https://jhudatascience.org/AnVIL_Template/no_toc/user-management.html 9 User Management resources/chapt_screen_images/user-management.png +https://jhudatascience.org/AnVIL_Template/no_toc/why-anvil.html 10 Why AnVIL resources/chapt_screen_images/why-anvil.png +https://jhudatascience.org/AnVIL_Template/no_toc/instructor-modules.html 11 Instructor modules resources/chapt_screen_images/instructor-modules.png +https://jhudatascience.org/AnVIL_Template/no_toc/about-the-authors.html About the Authors resources/chapt_screen_images/about-the-authors.png +https://jhudatascience.org/AnVIL_Template/no_toc/references.html 12 References resources/chapt_screen_images/references.png diff --git a/resources/chapt_screen_images/index.png b/resources/chapt_screen_images/index.png new file mode 100644 index 0000000..1e678fe Binary files /dev/null and b/resources/chapt_screen_images/index.png differ diff --git a/resources/chapt_screen_images/instructor-modules.png b/resources/chapt_screen_images/instructor-modules.png new file mode 100644 index 0000000..be684ee Binary files /dev/null and b/resources/chapt_screen_images/instructor-modules.png differ diff --git a/resources/chapt_screen_images/introduction.png b/resources/chapt_screen_images/introduction.png new file mode 100644 index 0000000..8d00657 Binary files /dev/null and b/resources/chapt_screen_images/introduction.png differ diff --git a/resources/chapt_screen_images/learning-objectives.png b/resources/chapt_screen_images/learning-objectives.png new file mode 100644 index 0000000..1ecde55 Binary files /dev/null and b/resources/chapt_screen_images/learning-objectives.png differ diff --git a/resources/chapt_screen_images/onboarding.png b/resources/chapt_screen_images/onboarding.png new file mode 100644 index 0000000..7e7ea47 Binary files /dev/null and b/resources/chapt_screen_images/onboarding.png differ diff --git a/resources/chapt_screen_images/references.png b/resources/chapt_screen_images/references.png new file mode 100644 index 0000000..5af2eb2 Binary files /dev/null and b/resources/chapt_screen_images/references.png differ diff --git a/resources/chapt_screen_images/student-instructions.png b/resources/chapt_screen_images/student-instructions.png new file mode 100644 index 0000000..5f5c0c6 Binary files /dev/null and b/resources/chapt_screen_images/student-instructions.png differ diff --git a/resources/chapt_screen_images/user-management.png b/resources/chapt_screen_images/user-management.png new file mode 100644 index 0000000..a75181f Binary files /dev/null and b/resources/chapt_screen_images/user-management.png differ diff --git a/resources/chapt_screen_images/using-programming-platforms-on-anvil.png b/resources/chapt_screen_images/using-programming-platforms-on-anvil.png new file mode 100644 index 0000000..098ca75 Binary files /dev/null and b/resources/chapt_screen_images/using-programming-platforms-on-anvil.png differ diff --git a/resources/chapt_screen_images/why-anvil.png b/resources/chapt_screen_images/why-anvil.png new file mode 100644 index 0000000..315bc4c Binary files /dev/null and b/resources/chapt_screen_images/why-anvil.png differ diff --git a/resources/chapt_screen_images/workspaces.png b/resources/chapt_screen_images/workspaces.png new file mode 100644 index 0000000..58ae603 Binary files /dev/null and b/resources/chapt_screen_images/workspaces.png differ diff --git a/resources/coursera_screenshots/add-chapter-1.png b/resources/coursera_screenshots/add-chapter-1.png new file mode 100644 index 0000000..b6890dc Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-1.png differ diff --git a/resources/coursera_screenshots/add-chapter-2.png b/resources/coursera_screenshots/add-chapter-2.png new file mode 100644 index 0000000..c290379 Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-2.png differ diff --git a/resources/coursera_screenshots/add-chapter-3.png b/resources/coursera_screenshots/add-chapter-3.png new file mode 100644 index 0000000..fb45cd3 Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-3.png differ diff --git a/resources/coursera_screenshots/add-chapter-4.png b/resources/coursera_screenshots/add-chapter-4.png new file mode 100644 index 0000000..6413541 Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-4.png differ diff --git a/resources/coursera_screenshots/add-chapter-5.png b/resources/coursera_screenshots/add-chapter-5.png new file mode 100644 index 0000000..cb8f5be Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-5.png differ diff --git a/resources/coursera_screenshots/add-chapter-6.png b/resources/coursera_screenshots/add-chapter-6.png new file mode 100644 index 0000000..7d44514 Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-6.png differ diff --git a/resources/coursera_screenshots/add-chapter-7.png b/resources/coursera_screenshots/add-chapter-7.png new file mode 100644 index 0000000..2c0076a Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-7.png differ diff --git a/resources/coursera_screenshots/add-chapter-8.png b/resources/coursera_screenshots/add-chapter-8.png new file mode 100644 index 0000000..1246798 Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-8.png differ diff --git a/resources/coursera_screenshots/add-chapter-9.png b/resources/coursera_screenshots/add-chapter-9.png new file mode 100644 index 0000000..86da2a2 Binary files /dev/null and b/resources/coursera_screenshots/add-chapter-9.png differ diff --git a/resources/coursera_screenshots/add-lesson.png b/resources/coursera_screenshots/add-lesson.png new file mode 100644 index 0000000..8e99cde Binary files /dev/null and b/resources/coursera_screenshots/add-lesson.png differ diff --git a/resources/coursera_screenshots/add-quiz-1.png b/resources/coursera_screenshots/add-quiz-1.png new file mode 100644 index 0000000..2c02af4 Binary files /dev/null and b/resources/coursera_screenshots/add-quiz-1.png differ diff --git a/resources/coursera_screenshots/add-quiz-2.png b/resources/coursera_screenshots/add-quiz-2.png new file mode 100644 index 0000000..0490e51 Binary files /dev/null and b/resources/coursera_screenshots/add-quiz-2.png differ diff --git a/resources/coursera_screenshots/add-quiz-3.png b/resources/coursera_screenshots/add-quiz-3.png new file mode 100644 index 0000000..9c405d0 Binary files /dev/null and b/resources/coursera_screenshots/add-quiz-3.png differ diff --git a/resources/coursera_screenshots/add-quiz-4.png b/resources/coursera_screenshots/add-quiz-4.png new file mode 100644 index 0000000..aaffaf4 Binary files /dev/null and b/resources/coursera_screenshots/add-quiz-4.png differ diff --git a/resources/coursera_screenshots/add-quiz-5.png b/resources/coursera_screenshots/add-quiz-5.png new file mode 100644 index 0000000..1379775 Binary files /dev/null and b/resources/coursera_screenshots/add-quiz-5.png differ diff --git a/resources/coursera_screenshots/assign-learning-obj.png b/resources/coursera_screenshots/assign-learning-obj.png new file mode 100644 index 0000000..0c928fd Binary files /dev/null and b/resources/coursera_screenshots/assign-learning-obj.png differ diff --git a/resources/coursera_screenshots/courses.png b/resources/coursera_screenshots/courses.png new file mode 100644 index 0000000..d6699ff Binary files /dev/null and b/resources/coursera_screenshots/courses.png differ diff --git a/resources/coursera_screenshots/edit-content.png b/resources/coursera_screenshots/edit-content.png new file mode 100644 index 0000000..ce9918f Binary files /dev/null and b/resources/coursera_screenshots/edit-content.png differ diff --git a/resources/coursera_screenshots/edit-course-nav.png b/resources/coursera_screenshots/edit-course-nav.png new file mode 100644 index 0000000..982621e Binary files /dev/null and b/resources/coursera_screenshots/edit-course-nav.png differ diff --git a/resources/coursera_screenshots/edit-course.png b/resources/coursera_screenshots/edit-course.png new file mode 100644 index 0000000..1549c64 Binary files /dev/null and b/resources/coursera_screenshots/edit-course.png differ diff --git a/resources/coursera_screenshots/grading-formula.png b/resources/coursera_screenshots/grading-formula.png new file mode 100644 index 0000000..1ff9f40 Binary files /dev/null and b/resources/coursera_screenshots/grading-formula.png differ diff --git a/resources/coursera_screenshots/learning-obj-assigned.png b/resources/coursera_screenshots/learning-obj-assigned.png new file mode 100644 index 0000000..b634f58 Binary files /dev/null and b/resources/coursera_screenshots/learning-obj-assigned.png differ diff --git a/resources/coursera_screenshots/my-courses.png b/resources/coursera_screenshots/my-courses.png new file mode 100644 index 0000000..51dee7e Binary files /dev/null and b/resources/coursera_screenshots/my-courses.png differ diff --git a/resources/coursera_screenshots/new-add-chapter-7.png b/resources/coursera_screenshots/new-add-chapter-7.png new file mode 100644 index 0000000..4770992 Binary files /dev/null and b/resources/coursera_screenshots/new-add-chapter-7.png differ diff --git a/resources/coursera_screenshots/profile.png b/resources/coursera_screenshots/profile.png new file mode 100644 index 0000000..dc50a6c Binary files /dev/null and b/resources/coursera_screenshots/profile.png differ diff --git a/resources/coursera_screenshots/programmed-messages.png b/resources/coursera_screenshots/programmed-messages.png new file mode 100644 index 0000000..9f46c1d Binary files /dev/null and b/resources/coursera_screenshots/programmed-messages.png differ diff --git a/resources/coursera_screenshots/quiz-settings.png b/resources/coursera_screenshots/quiz-settings.png new file mode 100644 index 0000000..97f7200 Binary files /dev/null and b/resources/coursera_screenshots/quiz-settings.png differ diff --git a/resources/coursera_screenshots/versions.png b/resources/coursera_screenshots/versions.png new file mode 100644 index 0000000..e179ba6 Binary files /dev/null and b/resources/coursera_screenshots/versions.png differ diff --git a/resources/dictionary.txt b/resources/dictionary.txt new file mode 100644 index 0000000..5f9e573 --- /dev/null +++ b/resources/dictionary.txt @@ -0,0 +1,44 @@ +AnVIL +BiocManager +bioinformatics +BIPOC +Bloomberg +callout +Callout +colData +CoV +customizations +dex +dexamethasone +dropdown +GDSCN +github +Glimma +glimmaMDS +Gmail +impactful +Inclusivity +Jupyter +limma +MDS +mentorship +NCI +NHGRI +NHGRI's +Onboarding +OTTR +ottrpal +plotMDS +precompiled +premade +preprint +programmatically +px +reproducibility +Rmd +RStudio +timeframe +underserved +Workspaces +Workspace's +www diff --git a/resources/exclude_files.txt b/resources/exclude_files.txt new file mode 100644 index 0000000..5525a40 --- /dev/null +++ b/resources/exclude_files.txt @@ -0,0 +1,8 @@ +About.Rmd +docs/* +style-sets/* +manuscript/* +CONTRIBUTING.md +LICENSE.md +code_of_conduct.md +README.md diff --git a/resources/ignore-urls.txt b/resources/ignore-urls.txt new file mode 100644 index 0000000..66f04c3 --- /dev/null +++ b/resources/ignore-urls.txt @@ -0,0 +1,5 @@ +https://www.someurl.html +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. +https://www.contributor-covenant.org/faq][FAQ]. +https://www.contributor-covenant.org/translations][translations]. +https://github.com/jhudsl/OTTR_Template/issues/new/choose)! diff --git a/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png b/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png new file mode 100644 index 0000000..b865852 Binary files /dev/null and b/resources/images/02-chapter_of_course_files/figure-html/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ_gcc4fbee202_0_141.png differ diff --git a/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png b/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 0000000..b17edc4 Binary files /dev/null and b/resources/images/02-chapter_of_course_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/resources/images/Image_res_72.png b/resources/images/Image_res_72.png new file mode 100644 index 0000000..0bf9187 Binary files /dev/null and b/resources/images/Image_res_72.png differ diff --git a/resources/images/itcr_training_network.png b/resources/images/itcr_training_network.png new file mode 100644 index 0000000..b696478 Binary files /dev/null and b/resources/images/itcr_training_network.png differ diff --git a/resources/images/logo.png b/resources/images/logo.png new file mode 100644 index 0000000..0ade934 Binary files /dev/null and b/resources/images/logo.png differ diff --git a/resources/images/tools.png b/resources/images/tools.png new file mode 100644 index 0000000..0c74d5d Binary files /dev/null and b/resources/images/tools.png differ diff --git a/resources/screenshots/add-repo.png b/resources/screenshots/add-repo.png new file mode 100644 index 0000000..cbbfadf Binary files /dev/null and b/resources/screenshots/add-repo.png differ diff --git a/resources/screenshots/commit-change.png b/resources/screenshots/commit-change.png new file mode 100644 index 0000000..c2ca83c Binary files /dev/null and b/resources/screenshots/commit-change.png differ diff --git a/resources/screenshots/repo-about.png b/resources/screenshots/repo-about.png new file mode 100644 index 0000000..714db28 Binary files /dev/null and b/resources/screenshots/repo-about.png differ diff --git a/resources/screenshots/repo-description.png b/resources/screenshots/repo-description.png new file mode 100644 index 0000000..1ca039f Binary files /dev/null and b/resources/screenshots/repo-description.png differ diff --git a/resources/screenshots/repo-homepage.png b/resources/screenshots/repo-homepage.png new file mode 100644 index 0000000..6fa999e Binary files /dev/null and b/resources/screenshots/repo-homepage.png differ diff --git a/resources/screenshots/repo-tags.png b/resources/screenshots/repo-tags.png new file mode 100644 index 0000000..993577b Binary files /dev/null and b/resources/screenshots/repo-tags.png differ diff --git a/resources/screenshots/use-this-template.png b/resources/screenshots/use-this-template.png new file mode 100644 index 0000000..3e4def7 Binary files /dev/null and b/resources/screenshots/use-this-template.png differ diff --git a/scripts/AnVIL_Feedback_Script.sh b/scripts/AnVIL_Feedback_Script.sh new file mode 100644 index 0000000..5269b76 --- /dev/null +++ b/scripts/AnVIL_Feedback_Script.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Extract the title from the YAML front matter of index.Rmd +title=$(awk '/^title:/{gsub(/^title: /,""); print}' "index.Rmd" | grep -v '^$') + +# Remove the outside quotation marks +title=$(sed -e 's/^"//' -e 's/"$//' <<< "$title") + +# Replace spaces with '+' +title=${title// /+} + +# Base url for the AnVIL Google Form +url_base="https://docs.google.com/forms/d/e/1FAIpQLScrDVb_utm55pmb_SHx-RgELTEbCCWdLea0T3IzS0Oj00GE4w/viewform?usp=pp_url&entry.1565230805=" + +# Replace the url inside _output.yml +perl -i -pe 's|https://docs.google.com/forms/d/e/1FAIpQLScrDVb_utm55pmb_SHx-RgELTEbCCWdLea0T3IzS0Oj00GE4w/viewform\?usp=pp_url&entry\.1565230805=.*"> Click|'${url_base}${title}'"> Click|g' _output.yml + +# Print for Github actions +echo "The feedback link is: ${url_base}${title}" \ No newline at end of file diff --git a/scripts/git_repo_check.R b/scripts/git_repo_check.R new file mode 100644 index 0000000..fd4b8f5 --- /dev/null +++ b/scripts/git_repo_check.R @@ -0,0 +1,97 @@ +#!/usr/bin/env Rscript + +# Written by Candace Savonen Sept 2021 + +if (!("optparse" %in% installed.packages())){ + install.packages("optparse") +} + +library(optparse) + +option_list <- list( + optparse::make_option( + c("--repo"), + type = "character", + default = NULL, + help = "GitHub repository name, e.g. jhudsl/OTTR_Template", + ), + optparse::make_option( + c("--git_pat"), + type = "character", + default = NULL, + help = "GitHub personal access token", + ) +) + +# Read the arguments passed +opt_parser <- optparse::OptionParser(option_list = option_list) +opt <- optparse::parse_args(opt_parser) + +repo <- opt$repo +git_pat <- opt$git_pat + +if (!is.character(repo)) { + repo <- as.character(repo) +} + +check_git_repo <- function(repo, git_pat = NULL, silent = TRUE, return_repo = FALSE) { + # Given a repository name, check with git ls-remote whether the repository + # exists and return a TRUE/FALSE + + # Inputs: + # repo: the name of the repository, e.g. jhudsl/OTTR_Template + # git_pat: A personal access token from GitHub. Only necessary if the repository being + # checked is a private repository. + # silent: TRUE/FALSE of whether the warning from the git ls-remote command + # should be echoed back if it does fail. + # return_repo: TRUE/FALSE of whether or not the output from git ls-remote + # should be saved to a file (if the repo exists) + + # Returns: + # A TRUE/FALSE whether or not the repository exists. + # Optionally the output from git ls-remote if return_repo = TRUE. + + message(paste("Checking for remote git repository:", repo)) + + # If silent = TRUE don't print out the warning message from the 'try' + report <- ifelse(silent, suppressWarnings, message) + + if (!is.null(git_pat)) { + # If git_pat is supplied, use it + test_repo <- report( + try(system(paste0("git ls-remote https://", git_pat, "@github.com/", repo), + intern = TRUE, ignore.stderr = TRUE + )) + ) + } else { + + # Try to git ls-remote the repo given + test_repo <- report( + try(system(paste0("git ls-remote https://github.com/", repo), + intern = TRUE, ignore.stderr = TRUE + )) + ) + } + # If 128 is returned as a status attribute it means it failed + exists <- ifelse(is.null(attr(test_repo, "status")), TRUE, FALSE) + + if (return_repo && exists) { + # Make file name + output_file <- paste0("git_ls_remote_", gsub("/", "_", repo)) + + # Tell the user the file was saved + message(paste("Saving output from git ls-remote to file:", output_file)) + + # Write to file + writeLines(exists, file.path(output_file)) + } + + return(exists) +} + +# Change repo name to its Leanpub equivalent: +repo <- gsub("_Template", "", repo) +repo <- paste0(repo, "_Quizzes") + +# Print out the result +write(check_git_repo(repo, git_pat = git_pat), stdout()) diff --git a/scripts/make_screenshots.R b/scripts/make_screenshots.R new file mode 100644 index 0000000..c57a182 --- /dev/null +++ b/scripts/make_screenshots.R @@ -0,0 +1,74 @@ +#!/usr/bin/env Rscript +# Written by Candace Savonen Jan 2022 + +if (!('devtools' %in% installed.packages())) { + # install.packages("remotes", repos = "http://cran.us.r-project.org") +} + +if (!('optparse' %in% installed.packages())) { + # install.packages("optparse", repos = "http://cran.us.r-project.org") +} + +webshot::install_phantomjs() + +library(optparse) +library(magrittr) + +option_list <- list( + optparse::make_option( + c("--repo"), + type = "character", + default = NULL, + help = "GitHub repository name, e.g. jhudsl/OTTR_Template", + ), + optparse::make_option( + c("--git_pat"), + type = "character", + default = NULL, + help = "GitHub personal access token", + ), + optparse::make_option( + c("--output_dir"), + type = "character", + default = "resources/chapt_screen_images", + help = "Output directory where the chapter's screen images should be stored", + ), + optparse::make_option( + c("--base_url"), + type = "character", + default = NULL, + help = "Output directory where the chapter's screen images should be stored", + ) +) + +# Read the arguments passed +opt_parser <- optparse::OptionParser(option_list = option_list) +opt <- optparse::parse_args(opt_parser) + +output_folder <- file.path(opt$output_dir) +if (!dir.exists(output_folder)) { + dir.create(output_folder, recursive = TRUE) +} + +if (is.null(opt$base_url)) { + base_url <- cow::get_pages_url(repo_name = opt$repo, git_pat = opt$git_pat) + base_url <- gsub("/$", "", base_url) +} + +chapt_df <- ottrpal::get_chapters(base_url = file.path(base_url, "no_toc/")) + +file_names <- lapply(chapt_df$url, function(url) { + file_name <- gsub(".html", ".png", file.path(output_folder, basename(url))) + # Get rid of special characters + webshot::webshot(url, file_name) + file_name <- gsub(":|?|!|\\'", "", file_name) + message(paste("Screenshot saved:", file_name)) + return(file_name) +}) + +# Save file of chapter urls and file_names +chapt_df %>% + dplyr::mutate(img_path = unlist(file_names)) %>% + readr::write_tsv(file.path(output_folder, "chapter_urls.tsv")) + +message(paste("Image Chapter key written to: ", file.path(output_folder, "chapter_urls.tsv"))) diff --git a/scripts/ottr-fy.R b/scripts/ottr-fy.R new file mode 100644 index 0000000..aa079ce --- /dev/null +++ b/scripts/ottr-fy.R @@ -0,0 +1,67 @@ +#!/usr/bin/env Rscript + +# This script downloads all the files and sets up the folders you need to +# OTTR-fy a repository that has markdown or R Markdown files + +system("git checkout -b 'robot/ottr-fy'") + +if (!('optparse' %in% installed.packages())) { + install.packages("optparse") +} +library(optparse) +library(magrittr) + +option_list <- list( + optparse::make_option( + c("--bookdown"), + action = "store_true", + help = "Is this a bookdown repository already? If used, means bookdown repo.", + ) +) + +# Read the arguments passed +opt_parser <- optparse::OptionParser(option_list = option_list) +opt <- optparse::parse_args(opt_parser) + +# Find .git root directory +root_dir <- rprojroot::find_root(rprojroot::has_dir(".git")) + +base_url <- "https://raw.githubusercontent.com/jhudsl/OTTR_Template/main/" + +needed_files <- c( + ".github/workflows/pull_request.yml", + ".github/workflows/render-all.yml", + ".github/workflows/delete-preview.yml", + "scripts/git_repo_check.R", + "scripts/make_screenshots.R", + "_bookdown.yml", + "_output.yml", + "book.bib", + "config_automation.yml", + "assets/big-image.html", + "assets/footer.html" + ) + +# If this is bookdown, we don't want to copy over the bookdown.yml or output.yml files +if (opt$bookdown) { + needed_files <- setdiff(needed_files, + c("_bookdown.yml", "_output.yml", "assets/big-image.html", "assets/footer.html", "book.bib")) +} + +# Set up a file list with the destination locations as the names +url_to_files <- paste0(base_url, needed_files) +names(url_to_files) <- file.path(root_dir, needed_files) + +# Download the file in the respective place +for (index in 1:length(url_to_files)) { + dest_folder <- dirname(names(url_to_files)[index]) + if (!dir.exists(dest_folder)){ + dir.create(dest_folder, recursive = TRUE) + } + download.file(url = url_to_files[index], destfile = names(url_to_files)[index]) +} + +system("git add .") +system("git config commit.gpgsign false") +system("git commit -m 'Add ottr-fying files'") +system("git push --set-upstream origin robot/ottr-fy") diff --git a/student-guide/_bookdown.yml b/student-guide/_bookdown.yml new file mode 100644 index 0000000..b5ced82 --- /dev/null +++ b/student-guide/_bookdown.yml @@ -0,0 +1,13 @@ +book_filename: "Course_Name" +chapter_name: "Chapter " +repo: https://github.com/jhudsl/AnVIL_Template/ +rmd_files: ["index.Rmd", + "09-student_guide.Rmd", + "References.Rmd"] +new_session: yes +bibliography: [book.bib] +delete_merged_file: true +language: + ui: + chapter_name: "Chapter" +output_dir: "student-guide" diff --git a/student-guide/_output.yml b/student-guide/_output.yml new file mode 100644 index 0000000..03bf219 --- /dev/null +++ b/student-guide/_output.yml @@ -0,0 +1,2 @@ +bookdown::word_document2: + toc: true \ No newline at end of file diff --git a/style-sets/AnVIL_FH/_output.yml b/style-sets/AnVIL_FH/_output.yml new file mode 100644 index 0000000..7cba311 --- /dev/null +++ b/style-sets/AnVIL_FH/_output.yml @@ -0,0 +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] + includes: + before_body: assets/AnVIL_style/big-image_anvil.html + after_body: assets/AnVIL_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. \ No newline at end of file diff --git a/style-sets/AnVIL_JHU/_output.yml b/style-sets/AnVIL_JHU/_output.yml new file mode 100644 index 0000000..a3a7145 --- /dev/null +++ b/style-sets/AnVIL_JHU/_output.yml @@ -0,0 +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] + includes: + before_body: assets/AnVIL_style/big-image_anvil.html + after_body: assets/AnVIL_style/footer.html + highlight: tango + config: + toc: + collapse: section + before: | + + after: | +

This content was published with bookdown by:

+

The Johns Hopkins 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. \ No newline at end of file diff --git a/style-sets/GDSCN/_output.yml b/style-sets/GDSCN/_output.yml new file mode 100644 index 0000000..4156fd7 --- /dev/null +++ b/style-sets/GDSCN/_output.yml @@ -0,0 +1,20 @@ +bookdown::gitbook: + # When using multiple css files, the default file path will be the first one # + css: [assets/style.css, assets/GDSCN_style/gdscn.css] + includes: + 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. \ No newline at end of file diff --git a/style-sets/GDSCN/index.Rmd b/style-sets/GDSCN/index.Rmd new file mode 100644 index 0000000..bf37c9a --- /dev/null +++ b/style-sets/GDSCN/index.Rmd @@ -0,0 +1,41 @@ +--- +title: "GDSCN: Course Name " +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/GDSCN_style/gdscn_favicon.ico +--- + +# About this Course {-} + + + +## Skills Level {-} + +::: {.notice} +_Genetics_ + + +_Programming skills_ + +::: + +## Learning Objectives {-} + + + + + + + + + +## GDSCN Collection {-} + +This exercise is part of a collection of teaching resources developed through the *Genomic Data Science Community Network* (GDSCN). GDSCN works towards a vision where researchers, educators, and students from diverse backgrounds are able to fully participate in genomic data science research. Learn more about GDSCN by visiting https://www.gdscn.org/home or reading the [article in Genome Research](https://doi.org/10.1101/gr.276496.121). + +Please check out our full collection of AnVIL and related resources: https://hutchdatascience.org/AnVIL_Collection/ diff --git a/style-sets/GDSCN_JHU/_output.yml b/style-sets/GDSCN_JHU/_output.yml new file mode 100644 index 0000000..2bbb202 --- /dev/null +++ b/style-sets/GDSCN_JHU/_output.yml @@ -0,0 +1,20 @@ +bookdown::gitbook: + # When using multiple css files, the default file path will be the first one # + css: [assets/style.css, assets/GDSCN_style/gdscn.css] + includes: + 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 Johns Hopkins 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. \ No newline at end of file diff --git a/style-sets/fhdasl/_output.yml b/style-sets/fhdasl/_output.yml new file mode 100644 index 0000000..0a86496 --- /dev/null +++ b/style-sets/fhdasl/_output.yml @@ -0,0 +1,18 @@ +bookdown::gitbook: + css: assets/style.css + includes: + before_body: assets/big-image_fhdasl.html + after_body: assets/footer.html + split_bib: false + highlight: tango + config: + toc: + collapse: section + before: | + + after: | +

This content was published with bookdown using

+

The OTTR Template by:

+

The Fred Hutch Data Science Lab

+

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

+

diff --git a/style-sets/fhdasl/copy_to_assets/big-dasl-stacked.png b/style-sets/fhdasl/copy_to_assets/big-dasl-stacked.png new file mode 100644 index 0000000..4bf74fc Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/big-dasl-stacked.png differ diff --git a/style-sets/fhdasl/copy_to_assets/big-dasl.png b/style-sets/fhdasl/copy_to_assets/big-dasl.png new file mode 100755 index 0000000..df1b20b Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/big-dasl.png differ diff --git a/style-sets/fhdasl/copy_to_assets/big-image.html b/style-sets/fhdasl/copy_to_assets/big-image.html new file mode 100755 index 0000000..1df3779 --- /dev/null +++ b/style-sets/fhdasl/copy_to_assets/big-image.html @@ -0,0 +1,12 @@ + + + + + + + + + +
+ +
diff --git a/style-sets/fhdasl/copy_to_assets/big-image_fhdasl.html b/style-sets/fhdasl/copy_to_assets/big-image_fhdasl.html new file mode 100644 index 0000000..0a7d7bc --- /dev/null +++ b/style-sets/fhdasl/copy_to_assets/big-image_fhdasl.html @@ -0,0 +1,12 @@ + + + + + + + + + +
+ +
diff --git a/style-sets/fhdasl/copy_to_assets/box_images/data.png b/style-sets/fhdasl/copy_to_assets/box_images/data.png new file mode 100644 index 0000000..8725b99 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/data.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/dictionary.png b/style-sets/fhdasl/copy_to_assets/box_images/dictionary.png new file mode 100644 index 0000000..75ddac7 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/dictionary.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/github.png b/style-sets/fhdasl/copy_to_assets/box_images/github.png new file mode 100644 index 0000000..a93acd3 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/github.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/justice.png b/style-sets/fhdasl/copy_to_assets/box_images/justice.png new file mode 100644 index 0000000..7780e05 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/justice.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/money.png b/style-sets/fhdasl/copy_to_assets/box_images/money.png new file mode 100644 index 0000000..5b1b7e9 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/money.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/motivations.png b/style-sets/fhdasl/copy_to_assets/box_images/motivations.png new file mode 100644 index 0000000..6a3242a Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/motivations.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/note.png b/style-sets/fhdasl/copy_to_assets/box_images/note.png new file mode 100644 index 0000000..72de3ae Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/note.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/plan.png b/style-sets/fhdasl/copy_to_assets/box_images/plan.png new file mode 100644 index 0000000..24f4213 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/plan.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/question.png b/style-sets/fhdasl/copy_to_assets/box_images/question.png new file mode 100644 index 0000000..19ad5be Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/question.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/question_box.png b/style-sets/fhdasl/copy_to_assets/box_images/question_box.png new file mode 100644 index 0000000..458281c Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/question_box.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/submit.png b/style-sets/fhdasl/copy_to_assets/box_images/submit.png new file mode 100644 index 0000000..8a343c3 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/submit.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/thinking_face.png b/style-sets/fhdasl/copy_to_assets/box_images/thinking_face.png new file mode 100644 index 0000000..c2c279a Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/thinking_face.png differ diff --git a/style-sets/fhdasl/copy_to_assets/box_images/warning.png b/style-sets/fhdasl/copy_to_assets/box_images/warning.png new file mode 100644 index 0000000..405fb61 Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/box_images/warning.png differ diff --git a/style-sets/fhdasl/copy_to_assets/brothers.png b/style-sets/fhdasl/copy_to_assets/brothers.png new file mode 100644 index 0000000..93c565e Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/brothers.png differ diff --git a/style-sets/fhdasl/copy_to_assets/dasl_thin_main_image.png b/style-sets/fhdasl/copy_to_assets/dasl_thin_main_image.png new file mode 100644 index 0000000..6143f4f Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/dasl_thin_main_image.png differ diff --git a/style-sets/fhdasl/copy_to_assets/favicon.ico b/style-sets/fhdasl/copy_to_assets/favicon.ico new file mode 100644 index 0000000..f41ff9b Binary files /dev/null and b/style-sets/fhdasl/copy_to_assets/favicon.ico differ diff --git a/style-sets/fhdasl/copy_to_assets/footer.html b/style-sets/fhdasl/copy_to_assets/footer.html new file mode 100755 index 0000000..61e2071 --- /dev/null +++ b/style-sets/fhdasl/copy_to_assets/footer.html @@ -0,0 +1,9 @@ +
+
+ +
\ No newline at end of file diff --git a/style-sets/fhdasl/copy_to_assets/hideOutput.js b/style-sets/fhdasl/copy_to_assets/hideOutput.js new file mode 100755 index 0000000..245d55f --- /dev/null +++ b/style-sets/fhdasl/copy_to_assets/hideOutput.js @@ -0,0 +1,57 @@ +/*$(document).ready(function() { + + + // Copy Button + $chunks = $('pre.sourceCode > code.sourceCode'); + $chunks.each(function(i, val) { + $(this).prepend("").click(function() { + var $temp = $("