From 7be6cc5b90077b0d094f8a2e3bff165755f932e4 Mon Sep 17 00:00:00 2001 From: Natalie Elphick Date: Mon, 25 Mar 2024 13:48:33 -0700 Subject: [PATCH 1/3] Finish part 1 working on wynton slides --- docs/Working_on_Wynton_Part_1.html | 1186 +++++++++++++ working-on-wynton-hpc/.Rprofile | 1 + working-on-wynton-hpc/README.md | 12 +- .../Working_on_Wynton_Part_1.Rmd | 412 +++++ working-on-wynton-hpc/renv.lock | 1551 +++++++++++++++++ working-on-wynton-hpc/renv/.gitignore | 7 + working-on-wynton-hpc/renv/activate.R | 1201 +++++++++++++ working-on-wynton-hpc/renv/settings.json | 19 + .../Gladstone_Wynton_Docs.pdf | Bin .../slide_materials/HPC_diagram.png | Bin 0 -> 136053 bytes .../{ => slide_materials}/status-chart.png | Bin working-on-wynton-hpc/style.css | 162 ++ .../working-on-wynton-hpc.Rproj | 13 + 13 files changed, 4563 insertions(+), 1 deletion(-) create mode 100644 docs/Working_on_Wynton_Part_1.html create mode 100644 working-on-wynton-hpc/.Rprofile create mode 100644 working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd create mode 100644 working-on-wynton-hpc/renv.lock create mode 100644 working-on-wynton-hpc/renv/.gitignore create mode 100644 working-on-wynton-hpc/renv/activate.R create mode 100644 working-on-wynton-hpc/renv/settings.json rename working-on-wynton-hpc/{ => slide_materials}/Gladstone_Wynton_Docs.pdf (100%) create mode 100644 working-on-wynton-hpc/slide_materials/HPC_diagram.png rename working-on-wynton-hpc/{ => slide_materials}/status-chart.png (100%) create mode 100644 working-on-wynton-hpc/style.css create mode 100644 working-on-wynton-hpc/working-on-wynton-hpc.Rproj diff --git a/docs/Working_on_Wynton_Part_1.html b/docs/Working_on_Wynton_Part_1.html new file mode 100644 index 0000000..b894631 --- /dev/null +++ b/docs/Working_on_Wynton_Part_1.html @@ -0,0 +1,1186 @@ + + + + + + + Working on Wynton - Part 1 + + + + + + + + + + + + + + + + + +
+
+ +
+

Working on Wynton - Part 1

+

Natalie Elphick

+

April 15th, 2024

+
+ +
+

+
+Press the ? key for tips on navigating these slides +
+
+
+

Introductions

+

Natalie Elphick
+Bioinformatician I

+

Alex Pico (TA)
+Bioinformatics Core Director

+
+
+

Target Audience

+
    +
  • Prior experience with UNIX command-line
  • +
+
+
+

Part 1:

+
    +
  1. What is an HPC cluster?
  2. +
  3. Node Types and Loging in
  4. +
  5. Storage
  6. +
  7. Data Transfer
  8. +
  9. Installing Software
  10. +
  11. Containers
  12. +
+
+
+
+

What is Wynton HPC?

+ +
+
+

High-performance Computing Cluster

+
    +
  • A collection of specialized computers (nodes) connected together on +a fast local network
  • +
+

HPC Diagram

+
+
+

Wynton

+
    +
  • A HPC Linux environment available to all UCSF researchers for +free
    +
  • +
  • Includes several hundred compute nodes and a large shared storage +system (Cluster +specifications)
    +
  • +
  • Funded and administered cooperatively by UCSF campus IT and key +research groups
  • +
+

https://wynton.ucsf.edu

+
+
+
+

Node Types and Logging in

+ +
+
+

Node Types

+
    +
  • Login: Submit and query jobs. SSH to development +nodes. File management.
  • +
  • Development: Compile and install software. Test job +scripts. Submit and query jobs. Version control. File management.
  • +
  • Compute: Running short and long-running job +scripts.
  • +
  • Transfer: Fast in- & outbound file transfers. +File management.
  • +
+
+
+

The Login Nodes

+
    +
  • Only capable of basic tasks (file management, submitting and +checking on jobs)
  • +
  • Lacks access to pre-installed software tools that the development +nodes have
  • +
  • The primary method to log in is to use an SSH client +application
  • +
  • The Wynton HPC is up to date with information on logging in: Access +Cluster
  • +
+

Names:

+

log1, log2 and plog (for PHI users)

+
+
+

Login

+
    +
  • Make sure you are on the UCSF or Gladstone WiFi networks (or the +respective VPN)
  • +
  • ssh +[your-username]@[node-name].wynton.ucsf.edu
  • +
+
{local}$ ssh alice@log1.wynton.ucsf.edu
+alice@log1.wynton.ucsf.edu's password: 
+[alice@log1 ~]$
+
    +
  • There will not be any visual feedback when typing your password
  • +
+
+
+

The Development Nodes

+
    +
  • Has a set of core +software installed +
      +
    • e.g. git, vim, nano, make and python
    • +
  • +
  • Also has access to software +repositories some which are maintained by other users or research +groups +
      +
    • e.g. matlab, R and openjdk
    • +
  • +
  • Cannot be logged in to directly, only from a login node
  • +
+
ssh dev1
+

Names:

+

dev[1-3], gpudev1, pdev1 (PHI) and pgpudev1 (PHI)

+
+
+

Data Transfer Nodes

+
    +
  • Can be logged in to directly
  • +
  • Fast network speed
  • +
  • Limited software
  • +
  • Use for transferring files to and from Wynton
  • +
+

Example:

+
{local}$ scp local_file.tsv alice@dt1.wynton.ucsf.edu:~/
+

Names:

+

dt1 and dt2

+
+
+
+

Storage

+ +
+
+

BeeGFS

+
    +
  • Wynton uses a parallel file system called BeeGFS +
      +
    • The files are stored as “chunks” spread across many different +servers
    • +
  • +
  • BeeGFS has multiple services that work together to manage the file +system +
      +
    • Storage (stores the chunks)
    • +
    • Metadata (tracks the chunks and information about their file)
    • +
    • Management (tracks all of the services)
    • +
    • Client (provides linux access to the file system)
    • +
  • +
+
+
+

BeeGFS - Advantages

+
    +
  • High throughput
  • +
  • Redundancy can be built in by mirroring services
  • +
  • Adding new storage is fast and does not require downtime
  • +
+
+
+

BeeGFS - Caveats

+
    +
  • For any client node, performance is limited by the network bandwidth +of that node
  • +
  • Network latency becomes extremely important for all metadata +requests
  • +
  • Certain input/output patterns can be problematic
  • +
+
+
+

BeeGFS - I/O patterns

+
    +
  • Anything that requires lots of metadata operations can feel slow +
      +
    • e.g: lots of writes to the same directory and lots of file lookups +and directory searches (conda)
    • +
  • +
  • Users are strongly encouraged to keep the number of reads and writes +to a single directory to a reasonable number
  • +
  • If using conda, putting the conda application inside a Apptainer +(formerly singularity) container will result in better overall file +system performance
  • +
+
+
+

BeeGFS - Tips

+
    +
  • Some general guidelines for optimum use of BeeGFS
  • +
  • Prefer fewer, large files over many small ones
  • +
  • Distribute reading and writing over several directories +
      +
    • Including compute job output and error files
    • +
  • +
  • Use local scratch (/scratch) when possible
  • +
  • Don’t include anything in /wynton in your default +LD_LIBRARY_PATH
  • +
+
+
+

Storage

+
    +
  • Wynton storage is not backed up
  • +
  • /wynton/[group_name]/[user] +
      +
    • User home directory - limited to 500 GiB
    • +
  • +
  • /wynton/[group_name] +
      +
    • User group directory - disk quota varies by group
    • +
  • +
  • More +information on disk quotas
  • +
+

To check your group disk quota run:

+
beegfs-ctl --getquota --storagepoolid=12 --gid "$(id --group)"
+
+
+

Scratch - Temporary Storage

+
    +
  • Local /scratch - 0.1-1.8 TiB/node storage unique to +each compute node +
      +
    • Can only be accessed from the specific compute node
    • +
  • +
  • /wynton/scratch and +/wynton/protected/scratch (for PHI users) +
      +
    • 703 TiB storage accessible from everywhere
    • +
  • +
  • No quotas
  • +
+


+

Files not used for 2 weeks are automatically +deleted

+
+
+

Gladstone HIVE

+
    +
  • Gladstone’s HIVE storage server is mounted directly to Wynton under +/gladstone +
      +
    • Only certain HIVE folders are accessible directly on Wynton
    • +
    • Files under /gladstone are backed up
    • +
  • +
  • Naming: /gladstone/[lab]/[share]
  • +
  • For more information visit the IT +knowledge base page
  • +
+
+
+
+

Data Transfer

+ +
+
+

Secure Copy - scp

+
    +
  • Local file to Wynton
  • +
+
{local}$ scp /path/to/local_file.tsv alice@dt1.wynton.ucsf.edu:/destination/path
+
    +
  • Copy a directory to a folder on Wynton
  • +
+
{local}$ scp -r local_folder/ alice@dt1.wynton.ucsf.edu:/destination/path
+
    +
  • Copy a single file to Wynton from your local machine
  • +
+
{local}$ scp alice@dt1.wynton.ucsf.edu:/path/to/local_file.tsv /destination/path
+
+
+

GUI SFTP Clients

+
    +
  • These let you transfer files to and from Wynton using a GUI
  • +
  • 2 +factor authentication may be required
  • +
  • Cyberduck +
      +
    • Navigate to Preferences -> Transfers -> General
    • +
    • change the Transfer Files setting “Use browser connection” instead +of “Open Multiple connections”
    • +
  • +
  • FileZilla +
      +
    • In the General tab, select ‘SFTP’ as the Protocol instead of +‘FTP’
    • +
    • For Logon Type, select ‘Interactive’ instead of ‘Ask for +Password’
    • +
    • Under the Transfer Settings tab, you might need to click the ‘Limit +number of simultaneous connections’ and make sure the ‘Maximum number of +connections’ is set to 1
    • +
  • +
+
+
+

Globus

+
    +
  • Globus is a +non-profit service for moving, syncing, and sharing large amounts of +data asynchronously in the background
  • +
  • Wynton Accounts are not required to transfer data with Globus
  • +
  • Useful for transferring data between institutions
  • +
+
+
+

Rclone

+
    +
  • Rclone is a command-line program to manage files on remote +storage
  • +
  • Can be used to transfer data from Wynton directly to DropBox or other storage systems +(AWS, Azure, Google Drive etc.) +
      +
    • Do this from a data transfer node using screen/tmux
    • +
  • +
  • Do not use rclone for transfers to Box, follow the Wynton to +UCSF Box instructions
  • +
+
+
+
+

Installing Software

+ +
+
+

Basics

+
    +
  • Ensure the software you are trying to install is compatible with +Rocky linux (use a container if not)
  • +
  • Check if the tool is already available in a module
  • +
  • Always install software in a development node
  • +
  • Download a precompiled binary or install +from source
  • +
+
+
+

Install Samtools from Source

+
    +
  1. Download and extract source code
  2. +
+
[alice@dev1 ~]$ mkdir -p "/scratch/$USER"
+[alice@dev1 ~]$ cd "/scratch/$USER"
+[alice@dev1 alice]$ wget https://github.com/samtools/samtools/releases/download/1.19.2/samtools-1.19.2.tar.bz2
+[alice@dev1 alice]$ tar -x -f samtools-1.19.2.tar.bz2
+
    +
  1. Create install location and configure
  2. +
+
[alice@dev1 ~]$ mkdir -p $HOME/software/samtools-1.14
+[alice@dev1 ~]$ ./configure --prefix=$HOME/software/samtools-1.14
+
    +
  1. Build and install
  2. +
+
[alice@dev1 ~]$ make
+[alice@dev1 ~]$ make install
+
+
+

Install Nextflow for Part 2

+
    +
  • In part 2, we will run the nextflow rna-seq pipeline
  • +
  • Run the following to install nextflow:
  • +
+
[alice@dev1 ~]$ cd ~/software
+[alice@dev1 ~]$ curl -s "https://get.sdkman.io" | bash
+[alice@dev1 ~]$ exit
+[alice@log1 ~]$ ssh dev1
+[alice@dev1 ~]$ sdk install java 17.0.6-tem
+[alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash
+
    +
  • Let us know if you run into any errors
  • +
+
+
+
+

Containers

+ +
+
+

Definitions

+
    +
  • Virtualization: When software mimics the functions +of physical hardware to run virtual machines +
      +
    • Work around to use OS specific or legacy software that might be hard +to install
    • +
    • Improves reproducibility
    • +
  • +
  • Containers: Implements virtualization using an +image as its base
  • +
  • Images: An ordered collection of root filesystem +changes and the corresponding execution parameters for use within a +container runtime
  • +
+
+
+

Apptainer

+
    +
  • Wynton supports Apptainer +(formerly singularity) containers

  • +
  • Docker is a commonly used +container creation software, these can be turned into apptainer +containers easily

  • +
  • apptainer run

    +
      +
    • Run predefined script within container
    • +
  • +
  • apptainer exec

    +
      +
    • Execute any command within container
    • +
  • +
  • apptainer shell

    +
      +
    • Run bash shell within container
    • +
  • +
+
+
+

Example Container - Hello World

+
    +
  • Run this command to convert the public Docker image to a apptainer +image file
  • +
+
[alice@dev1 ~]$ apptainer pull docker://natalie23gill/hello-world:1.0
+
    +
  • Execute the “hi” command in the container
  • +
+
[alice@dev1 ~]$ apptainer exec hello-world_1.0.sif hi
+
    __  __     ____         _       __           __    __   __
+   / / / /__  / / /___     | |     / /___  _____/ /___/ /  / /
+  / /_/ / _ \/ / / __ \    | | /| / / __ \/ ___/ / __  /  / / 
+ / __  /  __/ / / /_/ /    | |/ |/ / /_/ / /  / / /_/ /  /_/  
+/_/ /_/\___/_/_/\____/     |__/|__/\____/_/  /_/\__,_/  (_) 
+
+
+

Example Container - Hello World

+
    +
  • This container has figlet installed which creates +ASCII art from text input
  • +
  • Try running this command to create your own using exec
  • +
+
[alice@dev1 ~]$ apptainer exec hello-world_1.0.sif figlet your_text
+
+
+

Docker

+
    +
  • Docker uses Dockerfiles to specify image creation
  • +
  • Preferred by the Gladstone Bioinformatics Core to create new +images
  • +
  • In part 2, we will go over how to build custom container images from +DockerFiles +
  • +
  • To see the Dockerfile used to create the hello-world image, +run:
  • +
+
[alice@dev1 ~]$ apptainer exec hello-world_1.0.sif cat /Dockerfile
+
+
+
+

End of Part 1

+ +
+
+

Thank You!

+ +
+
+

Upcoming Data Science Training Program Workshops

+

Introduction +to Linear Mixed Effects Models
+April 25-April 26, 2024 1-3pm PDT

+

Single +Cell RNA-Seq Data Analysis
+April 29-April 30, 2024 9am-4pm PDT

+

Single +Cell ATAC-Seq Data Analysis Part 1
+May 6-May 7, 2024 1-4pm PDT

+

Complete Schedule
+Click “Data Science Training Program”

+
+
+
+ + + + + + + + + + + + + + diff --git a/working-on-wynton-hpc/.Rprofile b/working-on-wynton-hpc/.Rprofile new file mode 100644 index 0000000..81b960f --- /dev/null +++ b/working-on-wynton-hpc/.Rprofile @@ -0,0 +1 @@ +source("renv/activate.R") diff --git a/working-on-wynton-hpc/README.md b/working-on-wynton-hpc/README.md index 83f1535..1098c53 100644 --- a/working-on-wynton-hpc/README.md +++ b/working-on-wynton-hpc/README.md @@ -2,4 +2,14 @@ [Link to wiki](https://github.com/gladstone-institutes/Bioinformatics-Workshops/wiki/Working-on-Wynton-HPC) -### Description of files +## Structure + +- `working-on-wynton-hpc.Rproj` : Used to manage the `renv` for the workshop slides + - To install the project env, open this file and run `renv::restore()` in the console + +- `./slide_materials` : Contains any images/assets needed for the slides. +- `./workshop_materials` : Contains any materials needed by the registrants (switch to using DropBox if the size of this becomes too large) +- `./renv` : Used by `renv` to manage project library, do not modfiy these files directly +- `./Working_on_Wynton_Part_1.Rmd` : revealjs based slides for part 1 +- `./Working_on_Wynton_Part_2.Rmd` : revealjs based slides for part 2 +- `./style.css` : CSS style sheet for both sets of revealjs slides diff --git a/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd b/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd new file mode 100644 index 0000000..5127161 --- /dev/null +++ b/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd @@ -0,0 +1,412 @@ +--- +title: "Working on Wynton - Part 1" +author: "Natalie Elphick" +date: "April 15th, 2024" +knit: (function(input, ...) { + rmarkdown::render( + input, + output_dir = "../docs" + ) + }) +output: + revealjs::revealjs_presentation: + theme: simple + highlight: default + css: style.css +--- + +```{r, setup, include=FALSE} +library(tidyverse) +``` + +## + +
*Press the ? key for tips on navigating these slides*
+ +## Introductions + +**Natalie Elphick** +Bioinformatician I + +**Alex Pico (TA)** +Bioinformatics Core Director + + +## Target Audience +- Prior experience with UNIX command-line + + + +## Part 1: + +1. What is an HPC cluster? +2. Node Types and Loging in +3. Storage +4. Data Transfer +5. Installing Software +6. Containers + + + +# What is Wynton HPC? + +## High-performance Computing Cluster + +- A collection of specialized computers (nodes) connected together on a fast local network + +![HPC Diagram](slide_materials/HPC_diagram.png) + + + +## Wynton {.small-bullets} + +- A HPC Linux environment available to all UCSF researchers for free +- Includes several hundred compute nodes and a large shared storage system ([Cluster specifications](https://wynton.ucsf.edu/hpc/about/specs.html)) +- Funded and administered cooperatively by UCSF campus IT and key research groups + +[https://wynton.ucsf.edu](https://wynton.ucsf.edu) + + + +# Node Types and Logging in + +## Node Types {.small-bullets} + +- **Login:** Submit and query jobs. SSH to development nodes. File management. +- **Development:** Compile and install software. Test job scripts. Submit and query jobs. Version control. File management. +- **Compute:** Running short and long-running job scripts. +- **Transfer:** Fast in- & outbound file transfers. File management. + +## The Login Nodes {.small-bullets} + +- Only capable of basic tasks (file management, submitting and checking on jobs) +- Lacks access to pre-installed software tools that the development nodes have +- The primary method to log in is to use an SSH client application +- The Wynton HPC is up to date with information on logging in: [Access Cluster](https://wynton.ucsf.edu/hpc/get-started/access-cluster.html) + +Names: + + +log1, log2 and plog (for PHI users) + +## Login {.small-bullets} + +- Make sure you are on the UCSF or Gladstone WiFi networks (or the respective VPN) +- **ssh [your-username]@[node-name].wynton.ucsf.edu** + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "{local}$ ssh alice@log1.wynton.ucsf.edu +alice@log1.wynton.ucsf.edu's password: +[alice@log1 ~]$" +``` + +- There will not be any visual feedback when typing your password + + +## The Development Nodes {.small-bullets} + +- Has a set of [core software](https://wynton.ucsf.edu/hpc/software/core-software.html) installed + - e.g. git, vim, nano, make and python +- Also has access to [software repositories](https://wynton.ucsf.edu/hpc/software/software-repositories.htmll) some which are maintained by other users or research groups + - e.g. matlab, R and openjdk +- Cannot be logged in to directly, only from a login node +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "ssh dev1" +``` + +Names: + +dev[1-3], gpudev1, pdev1 (PHI) and pgpudev1 (PHI) + +## Data Transfer Nodes {.small-bullets} + +- Can be logged in to directly +- Fast network speed +- Limited software +- Use for transferring files to and from Wynton + +Example: + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "{local}$ scp local_file.tsv alice@dt1.wynton.ucsf.edu:~/" +``` + +Names: + +dt1 and dt2 + + +# Storage + +## BeeGFS {.small-bullets} + +- Wynton uses a *parallel* file system called BeeGFS + - The files are stored as "chunks" spread across many different servers +- BeeGFS has multiple services that work together to manage the file system + - Storage (stores the chunks) + - Metadata (tracks the chunks and information about their file) + - Management (tracks all of the services) + - Client (provides linux access to the file system) + + +## BeeGFS - Advantages +- High throughput +- Redundancy can be built in by mirroring services +- Adding new storage is fast and does not require downtime + +## BeeGFS - Caveats +- For any client node, performance is limited by the network bandwidth of that node +- Network latency becomes extremely important for all metadata requests +- Certain input/output patterns can be problematic + +## BeeGFS - I/O patterns {.small-bullets} +- Anything that requires lots of metadata operations can feel slow + - e.g: lots of writes to the same directory and lots of file lookups and directory searches (**conda**) +- Users are strongly encouraged to keep the number of reads and writes to a single directory to a reasonable number +- If using conda, putting the conda application inside a Apptainer (formerly singularity) container will result in better overall file system performance + +## BeeGFS - Tips + +- Some general guidelines for optimum use of BeeGFS +- Prefer fewer, large files over many small ones +- Distribute reading and writing over several directories + - Including compute job output and error files +- Use local scratch (/scratch) when possible +- Don't include anything in **/wynton** in your default LD_LIBRARY_PATH + + + + +## Storage {.small-bullets} + +- **Wynton storage is not backed up** +- /wynton/**[group_name]**/**[user]** + - User home directory - limited to 500 GiB +- /wynton/**[group_name]** + - User group directory - disk quota varies by group +- [More information on disk quotas](https://wynton.ucsf.edu/hpc/howto/storage-size.html#file-sizes-and-disk-quotas) + +To check your group disk quota run: + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo 'beegfs-ctl --getquota --storagepoolid=12 --gid "$(id --group)"' +``` + + + +## Scratch - Temporary Storage +- Local **/scratch** - 0.1-1.8 TiB/node storage unique to each compute node + - Can only be accessed from the specific compute node +- **/wynton/scratch** and **/wynton/protected/scratch** (for PHI users) + - 703 TiB storage accessible from everywhere +- No quotas + +

+ +**Files not used for 2 weeks are automatically deleted** + + + +## Gladstone HIVE +- Gladstone's HIVE storage server is mounted directly to Wynton under **/gladstone** + - Only certain HIVE folders are accessible directly on Wynton + - Files under **/gladstone** are backed up +- Naming: **/gladstone/[lab]/[share]** +- For more information visit the [IT knowledge base page](https://help.gladstone.org/support/solutions/articles/14000033963) + + + +# Data Transfer + +## Secure Copy - scp + +- Local file to Wynton +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "{local}$ scp /path/to/local_file.tsv alice@dt1.wynton.ucsf.edu:/destination/path" +``` + +- Copy a directory to a folder on Wynton +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "{local}$ scp -r local_folder/ alice@dt1.wynton.ucsf.edu:/destination/path" +``` + +- Copy a single file to Wynton from your local machine +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "{local}$ scp alice@dt1.wynton.ucsf.edu:/path/to/local_file.tsv /destination/path" +``` + + +## GUI SFTP Clients {.small-bullets} + +- These let you transfer files to and from Wynton using a GUI +- [2 factor authentication](https://wynton.ucsf.edu/hpc/get-started/duo-signup.html) may be required +- [Cyberduck](https://cyberduck.io/) + - Navigate to Preferences -> Transfers -> General + - change the Transfer Files setting "Use browser connection" instead of "Open Multiple connections" + +- [FileZilla](https://filezilla-project.org/) + - In the General tab, select ‘SFTP’ as the Protocol instead of ‘FTP’ + - For Logon Type, select ‘Interactive’ instead of ‘Ask for Password’ + - Under the Transfer Settings tab, you might need to click the ‘Limit number of simultaneous connections’ and make sure the ‘Maximum number of connections’ is set to 1 + + +## Globus + +- [Globus](https://wynton.ucsf.edu/hpc/transfers/globus.html) is a non-profit service for moving, syncing, and sharing large amounts of data asynchronously in the background +- Wynton Accounts are not required to transfer data with Globus +- Useful for transferring data between institutions + +## Rclone + +- Rclone is a command-line program to manage files on remote storage +- Can be used to transfer data from Wynton directly to [DropBox](https://rclone.org/dropbox/) or other storage systems (AWS, Azure, Google Drive etc.) + - Do this from a data transfer node using screen/tmux +- Do not use rclone for transfers to Box, follow the [Wynton to UCSF Box](https://wynton.ucsf.edu/hpc/transfers/ucsf-box.html) instructions + + +# Installing Software + +## Basics + +- Ensure the software you are trying to install is compatible with Rocky linux (use a container if not) +- Check if the tool is already available in a [module](https://wynton.ucsf.edu/hpc/software/software-modules.html) +- Always install software in a development node +- Download a precompiled binary or [install from source](https://wynton.ucsf.edu/hpc/howto/install-from-source.html) + +## Install Samtools from Source {.small-list} + +1. Download and extract source code + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ mkdir -p "/scratch/$USER" +[alice@dev1 ~]$ cd "/scratch/$USER" +[alice@dev1 alice]$ wget https://github.com/samtools/samtools/releases/download/1.19.2/samtools-1.19.2.tar.bz2 +[alice@dev1 alice]$ tar -x -f samtools-1.19.2.tar.bz2' +``` + +2. Create install location and configure + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ mkdir -p $HOME/software/samtools-1.14' +echo '[alice@dev1 ~]$ ./configure --prefix=$HOME/software/samtools-1.14' +``` +3. Build and install + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ make' +echo '[alice@dev1 ~]$ make install' +``` + +## Install Nextflow for Part 2 + +- In part 2, we will run the nextflow rna-seq pipeline +- Run the following to install nextflow: + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ cd ~/software' +echo '[alice@dev1 ~]$ curl -s "https://get.sdkman.io" | bash' +echo '[alice@dev1 ~]$ exit' +echo '[alice@log1 ~]$ ssh dev1' +echo '[alice@dev1 ~]$ sdk install java 17.0.6-tem' +echo '[alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash' +``` + + +- Let us know if you run into any errors + + +# Containers + +## Definitions {.small-bullets} + +- **Virtualization:** When software mimics the functions of physical hardware to run virtual machines + - Work around to use OS specific or legacy software that might be hard to install + - Improves reproducibility +- **Containers:** Implements virtualization using an *image* as its base +- **Images:** An ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime + + +## Apptainer {.small-bullets} + +- Wynton supports [Apptainer](https://wynton.ucsf.edu/hpc/software/apptainer.html) (formerly singularity) containers +- [Docker](https://docs.docker.com/) is a commonly used container creation software, these can be turned into apptainer containers easily + +- apptainer run + - Run predefined script within container +- apptainer exec + - Execute any command within container +- apptainer shell + - Run bash shell within container + + +## Example Container - Hello World + +- Run this command to convert the public Docker image to a apptainer image file + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ apptainer pull docker://natalie23gill/hello-world:1.0' +``` + +- Execute the "hi" command in the container + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ apptainer exec hello-world_1.0.sif hi' +``` + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo ' __ __ ____ _ __ __ __ __ + / / / /__ / / /___ | | / /___ _____/ /___/ / / / + / /_/ / _ \/ / / __ \ | | /| / / __ \/ ___/ / __ / / / + / __ / __/ / / /_/ / | |/ |/ / /_/ / / / / /_/ / /_/ +/_/ /_/\___/_/_/\____/ |__/|__/\____/_/ /_/\__,_/ (_) ' +``` + + +## Example Container - Hello World + +- This container has **figlet** installed which creates ASCII art from text input +- Try running this command to create your own using *exec* + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ apptainer exec hello-world_1.0.sif figlet your_text' +``` + +## Docker {.small-bullets} + +- Docker uses Dockerfiles to specify image creation +- Preferred by the Gladstone Bioinformatics Core to create new images +- In part 2, we will go over how to build custom container images from DockerFiles + - If you want to follow along, [install the docker engine](https://docs.docker.com/engine/install/) following the instructions for your OS +- To see the Dockerfile used to create the hello-world image, run: + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ apptainer exec hello-world_1.0.sif cat /Dockerfile' +``` + + +# End of Part 1 + +## Thank You! + +- Please take some time to fill out the workshop survey if you are not attending part 2: +[https://www.surveymonkey.com/r/F75J6VZ](https://www.surveymonkey.com/r/F75J6VZ) + + +## Upcoming Data Science Training Program Workshops + + +[Introduction to Linear Mixed Effects Models](https://gladstone.org/events/introduction-linear-mixed-effects-models) +April 25-April 26, 2024 1-3pm PDT + +[Single Cell RNA-Seq Data Analysis](https://gladstone.org/events/single-cell-rna-seq-data-analysis) +April 29-April 30, 2024 9am-4pm PDT + +[Single Cell ATAC-Seq Data Analysis Part 1](https://gladstone.org/events/single-cell-atac-seq-data-analysis-part-1-1) +May 6-May 7, 2024 1-4pm PDT + + + +[Complete Schedule](https://gladstone.org/events) +Click "Data Science Training Program" + + diff --git a/working-on-wynton-hpc/renv.lock b/working-on-wynton-hpc/renv.lock new file mode 100644 index 0000000..a000798 --- /dev/null +++ b/working-on-wynton-hpc/renv.lock @@ -0,0 +1,1551 @@ +{ + "R": { + "Version": "4.3.2", + "Repositories": [ + { + "Name": "CRAN", + "URL": "https://packagemanager.posit.co/cran/latest" + } + ] + }, + "Packages": { + "DBI": { + "Package": "DBI", + "Version": "1.2.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "164809cd72e1d5160b4cb3aa57f510fe" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-60.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "b765b28387acc8ec9e9c1530713cb19c" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.6-5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "8c7115cd3a0e048bda2a7cd110549f7a" + }, + "R6": { + "Package": "R6", + "Version": "2.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "45f0398006e83a5b10b72a90663d8d8c" + }, + "askpass": { + "Package": "askpass", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "sys" + ], + "Hash": "cad6cf7f1d5f6e906700b9d3e718c796" + }, + "backports": { + "Package": "backports", + "Version": "1.4.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "c39fbec8a30d23e721980b8afb31984c" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "543776ae6848fde2f48ff3816d0628bc" + }, + "bit": { + "Package": "bit", + "Version": "4.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "d242abec29412ce988848d0294b208fd" + }, + "bit64": { + "Package": "bit64", + "Version": "4.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bit", + "methods", + "stats", + "utils" + ], + "Hash": "9fe98599ca456d6552421db0d6772d8f" + }, + "blob": { + "Package": "blob", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "methods", + "rlang", + "vctrs" + ], + "Hash": "40415719b5a479b87949f3aa0aee737c" + }, + "broom": { + "Package": "broom", + "Version": "1.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "backports", + "dplyr", + "ellipsis", + "generics", + "glue", + "lifecycle", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyr" + ], + "Hash": "fd25391c3c4f6ecf0fa95f1e6d15378c" + }, + "bslib": { + "Package": "bslib", + "Version": "0.6.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "base64enc", + "cachem", + "grDevices", + "htmltools", + "jquerylib", + "jsonlite", + "lifecycle", + "memoise", + "mime", + "rlang", + "sass" + ], + "Hash": "c0d8599494bc7fb408cd206bbdd9cab0" + }, + "cachem": { + "Package": "cachem", + "Version": "1.0.8", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "fastmap", + "rlang" + ], + "Hash": "c35768291560ce302c0a6589f92e837d" + }, + "callr": { + "Package": "callr", + "Version": "3.7.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "processx", + "utils" + ], + "Hash": "9f0e4fae4963ba775a5e5c520838c87b" + }, + "cellranger": { + "Package": "cellranger", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "rematch", + "tibble" + ], + "Hash": "f61dbaec772ccd2e17705c1e872e9e7c" + }, + "cli": { + "Package": "cli", + "Version": "3.6.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "1216ac65ac55ec0058a6f75d7ca0fd52" + }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "3f038e5ac7f41d4ac41ce658c85e3042" + }, + "colorspace": { + "Package": "colorspace", + "Version": "2.1-0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + }, + "conflicted": { + "Package": "conflicted", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "memoise", + "rlang" + ], + "Hash": "bb097fccb22d156624fd07cd2894ddb6" + }, + "countdown": { + "Package": "countdown", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "htmltools", + "prismatic", + "utils", + "whisker" + ], + "Hash": "b44ad5a5e287637c3b8ca0e9bb64bb18" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.4.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" + }, + "curl": { + "Package": "curl", + "Version": "5.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "411ca2c03b1ce5f548345d2fc2685f7a" + }, + "data.table": { + "Package": "data.table", + "Version": "1.15.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "536dfe4ac4093b5d115caed7a1a7223b" + }, + "dbplyr": { + "Package": "dbplyr", + "Version": "2.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "DBI", + "R", + "R6", + "blob", + "cli", + "dplyr", + "glue", + "lifecycle", + "magrittr", + "methods", + "pillar", + "purrr", + "rlang", + "tibble", + "tidyr", + "tidyselect", + "utils", + "vctrs", + "withr" + ], + "Hash": "39b2e002522bfd258039ee4e889e0fd1" + }, + "digest": { + "Package": "digest", + "Version": "0.6.35", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "698ece7ba5a4fa4559e3d537e7ec3d31" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "cli", + "generics", + "glue", + "lifecycle", + "magrittr", + "methods", + "pillar", + "rlang", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "fedd9d00c2944ff00a0e2696ccf048ec" + }, + "dtplyr": { + "Package": "dtplyr", + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "data.table", + "dplyr", + "glue", + "lifecycle", + "rlang", + "tibble", + "tidyselect", + "vctrs" + ], + "Hash": "54ed3ea01b11e81a86544faaecfef8e2" + }, + "ellipsis": { + "Package": "ellipsis", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "rlang" + ], + "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077" + }, + "evaluate": { + "Package": "evaluate", + "Version": "0.23", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "daf4a1246be12c1fa8c7705a0935c1a0" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "farver": { + "Package": "farver", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "8106d78941f34855c440ddb946b8f7a5" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "f7736a18de97dea803bde0a2daaafb27" + }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "htmltools", + "rlang" + ], + "Hash": "c2efdd5f0bcd1ea861c2d4e2a883a67d" + }, + "forcats": { + "Package": "forcats", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "magrittr", + "rlang", + "tibble" + ], + "Hash": "1a0a9a3d5083d0d573c4214576f1e690" + }, + "fs": { + "Package": "fs", + "Version": "1.6.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "47b5f30c720c23999b913a1a635cf0bb" + }, + "gargle": { + "Package": "gargle", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "fs", + "glue", + "httr", + "jsonlite", + "lifecycle", + "openssl", + "rappdirs", + "rlang", + "stats", + "utils", + "withr" + ], + "Hash": "fc0b272e5847c58cd5da9b20eedbd026" + }, + "generics": { + "Package": "generics", + "Version": "0.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "MASS", + "R", + "cli", + "glue", + "grDevices", + "grid", + "gtable", + "isoband", + "lifecycle", + "mgcv", + "rlang", + "scales", + "stats", + "tibble", + "vctrs", + "withr" + ], + "Hash": "52ef83f93f74833007f193b2d4c159a2" + }, + "glue": { + "Package": "glue", + "Version": "1.7.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "e0b3a53876554bd45879e596cdb10a52" + }, + "googledrive": { + "Package": "googledrive", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "gargle", + "glue", + "httr", + "jsonlite", + "lifecycle", + "magrittr", + "pillar", + "purrr", + "rlang", + "tibble", + "utils", + "uuid", + "vctrs", + "withr" + ], + "Hash": "e99641edef03e2a5e87f0a0b1fcc97f4" + }, + "googlesheets4": { + "Package": "googlesheets4", + "Version": "1.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cellranger", + "cli", + "curl", + "gargle", + "glue", + "googledrive", + "httr", + "ids", + "lifecycle", + "magrittr", + "methods", + "purrr", + "rematch2", + "rlang", + "tibble", + "utils", + "vctrs", + "withr" + ], + "Hash": "d6db1667059d027da730decdc214b959" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "grid", + "lifecycle", + "rlang" + ], + "Hash": "b29cf3031f49b04ab9c852c912547eef" + }, + "haven": { + "Package": "haven", + "Version": "2.5.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "cpp11", + "forcats", + "hms", + "lifecycle", + "methods", + "readr", + "rlang", + "tibble", + "tidyselect", + "vctrs" + ], + "Hash": "9171f898db9d9c4c1b2c745adc2c1ef1" + }, + "highr": { + "Package": "highr", + "Version": "0.10", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "xfun" + ], + "Hash": "06230136b2d2b9ba5805e1963fa6e890" + }, + "hms": { + "Package": "hms", + "Version": "1.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "lifecycle", + "methods", + "pkgconfig", + "rlang", + "vctrs" + ], + "Hash": "b59377caa7ed00fa41808342002138f9" + }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "digest", + "ellipsis", + "fastmap", + "grDevices", + "rlang", + "utils" + ], + "Hash": "2d7b3857980e0e0d0a1fd6f11928ab0f" + }, + "httr": { + "Package": "httr", + "Version": "1.4.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "curl", + "jsonlite", + "mime", + "openssl" + ], + "Hash": "ac107251d9d9fd72f0ca8049988f1d7f" + }, + "ids": { + "Package": "ids", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "openssl", + "uuid" + ], + "Hash": "99df65cfef20e525ed38c3d2577f7190" + }, + "isoband": { + "Package": "isoband", + "Version": "0.2.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "htmltools" + ], + "Hash": "5aab57a3bd297eee1c1d862735972182" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.8", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods" + ], + "Hash": "e1b9c55281c5adc4dd113652d9e26768" + }, + "knitr": { + "Package": "knitr", + "Version": "1.45", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "evaluate", + "highr", + "methods", + "tools", + "xfun", + "yaml" + ], + "Hash": "1ec462871063897135c1bcbe0fc8f07d" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "lattice": { + "Package": "lattice", + "Version": "0.22-6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "rlang" + ], + "Hash": "b8552d117e1b808b09a832f589b79035" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "generics", + "methods", + "timechange" + ], + "Hash": "680ad542fbcf801442c83a6ac5a2126c" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "7ce2733a9826b3aeb1775d56fd305472" + }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cachem", + "rlang" + ], + "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.9-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "110ee9d83b496279960e162ac97764ce" + }, + "mime": { + "Package": "mime", + "Version": "0.12", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tools" + ], + "Hash": "18e9c28c1d3ca1560ce30658b22ce104" + }, + "modelr": { + "Package": "modelr", + "Version": "0.1.11", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "broom", + "magrittr", + "purrr", + "rlang", + "tibble", + "tidyr", + "tidyselect", + "vctrs" + ], + "Hash": "4f50122dc256b1b6996a4703fecea821" + }, + "munsell": { + "Package": "munsell", + "Version": "0.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "colorspace", + "methods" + ], + "Hash": "6dfe8bf774944bd5595785e3229d8771" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-164", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "a623a2239e642806158bc4dc3f51565d" + }, + "openssl": { + "Package": "openssl", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "askpass" + ], + "Hash": "2a0dc8c6adfb6f032e4d4af82d258ab5" + }, + "pillar": { + "Package": "pillar", + "Version": "1.9.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cli", + "fansi", + "glue", + "lifecycle", + "rlang", + "utf8", + "utils", + "vctrs" + ], + "Hash": "15da5a8412f317beeee6175fbc76f4bb" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "6b01fc98b1e86c4f705ce9dcfd2f57c7" + }, + "prismatic": { + "Package": "prismatic", + "Version": "1.1.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "farver", + "grDevices", + "graphics" + ], + "Hash": "faa2193fdec94a45b4390aefc1280a62" + }, + "processx": { + "Package": "processx", + "Version": "3.8.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "ps", + "utils" + ], + "Hash": "0c90a7d71988856bad2a2a45dd871bb9" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "crayon", + "hms", + "prettyunits" + ], + "Hash": "f4625e061cb2865f111b47ff163a5ca6" + }, + "ps": { + "Package": "ps", + "Version": "1.7.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "dd2b9319ee0656c8acf45c7f40c59de7" + }, + "purrr": { + "Package": "purrr", + "Version": "1.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "lifecycle", + "magrittr", + "rlang", + "vctrs" + ], + "Hash": "1cba04a4e9414bdefc9dcaa99649a8dc" + }, + "ragg": { + "Package": "ragg", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "systemfonts", + "textshaping" + ], + "Hash": "082e1a198e3329d571f4448ef0ede4bc" + }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "5e3c5dc0b071b21fa128676560dbe94d" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "cli", + "clipr", + "cpp11", + "crayon", + "hms", + "lifecycle", + "methods", + "rlang", + "tibble", + "tzdb", + "utils", + "vroom" + ], + "Hash": "9de96463d2117f6ac49980577939dfb3" + }, + "readxl": { + "Package": "readxl", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cellranger", + "cpp11", + "progress", + "tibble", + "utils" + ], + "Hash": "8cf9c239b96df1bbb133b74aef77ad0a" + }, + "rematch": { + "Package": "rematch", + "Version": "2.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "cbff1b666c6fa6d21202f07e2318d4f1" + }, + "rematch2": { + "Package": "rematch2", + "Version": "2.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tibble" + ], + "Hash": "76c9e04c712a05848ae7a23d2f170a40" + }, + "renv": { + "Package": "renv", + "Version": "1.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "32c3f93e8360f667ca5863272ec8ba6a" + }, + "reprex": { + "Package": "reprex", + "Version": "2.1.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "callr", + "cli", + "clipr", + "fs", + "glue", + "knitr", + "lifecycle", + "rlang", + "rmarkdown", + "rstudioapi", + "utils", + "withr" + ], + "Hash": "1425f91b4d5d9a8f25352c44a3d914ed" + }, + "revealjs": { + "Package": "revealjs", + "Version": "0.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "rmarkdown" + ], + "Hash": "08e30caa337e6d335d83df1a05d5b9f3" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "42548638fae05fd9a9b5f3f437fbbbe2" + }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.26", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bslib", + "evaluate", + "fontawesome", + "htmltools", + "jquerylib", + "jsonlite", + "knitr", + "methods", + "tinytex", + "tools", + "utils", + "xfun", + "yaml" + ], + "Hash": "9b148e7f95d33aac01f31282d49e4f44" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.15.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "5564500e25cffad9e22244ced1379887" + }, + "rvest": { + "Package": "rvest", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "httr", + "lifecycle", + "magrittr", + "rlang", + "selectr", + "tibble", + "xml2" + ], + "Hash": "0bcf0c6f274e90ea314b812a6d19a519" + }, + "sass": { + "Package": "sass", + "Version": "0.4.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R6", + "fs", + "htmltools", + "rappdirs", + "rlang" + ], + "Hash": "d53dbfddf695303ea4ad66f86e99b95d" + }, + "scales": { + "Package": "scales", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "RColorBrewer", + "cli", + "farver", + "glue", + "labeling", + "lifecycle", + "munsell", + "rlang", + "viridisLite" + ], + "Hash": "c19df082ba346b0ffa6f833e92de34d1" + }, + "selectr": { + "Package": "selectr", + "Version": "0.4-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "methods", + "stringr" + ], + "Hash": "3838071b66e0c566d55cc26bd6e27bf4" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "058aebddea264f4c99401515182e656a" + }, + "stringr": { + "Package": "stringr", + "Version": "1.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "magrittr", + "rlang", + "stringi", + "vctrs" + ], + "Hash": "960e2ae9e09656611e0b8214ad543207" + }, + "sys": { + "Package": "sys", + "Version": "3.4.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "3a1be13d68d47a8cd0bfd74739ca1555" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "6d538cff441f0f1f36db2209ac7495ac" + }, + "textshaping": { + "Package": "textshaping", + "Version": "0.3.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11", + "systemfonts" + ], + "Hash": "997aac9ad649e0ef3b97f96cddd5622b" + }, + "tibble": { + "Package": "tibble", + "Version": "3.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "fansi", + "lifecycle", + "magrittr", + "methods", + "pillar", + "pkgconfig", + "rlang", + "utils", + "vctrs" + ], + "Hash": "a84e2cc86d07289b3b6f5069df7a004c" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "dplyr", + "glue", + "lifecycle", + "magrittr", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "915fb7ce036c22a6a33b5a8adb712eb1" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" + }, + "tidyverse": { + "Package": "tidyverse", + "Version": "2.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "broom", + "cli", + "conflicted", + "dbplyr", + "dplyr", + "dtplyr", + "forcats", + "ggplot2", + "googledrive", + "googlesheets4", + "haven", + "hms", + "httr", + "jsonlite", + "lubridate", + "magrittr", + "modelr", + "pillar", + "purrr", + "ragg", + "readr", + "readxl", + "reprex", + "rlang", + "rstudioapi", + "rvest", + "stringr", + "tibble", + "tidyr", + "xml2" + ], + "Hash": "c328568cd14ea89a83bd4ca7f54ae07e" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "c5f3c201b931cd6474d17d8700ccb1c8" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.50", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "xfun" + ], + "Hash": "be7a76845222ad20adb761f462eed3ea" + }, + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "f561504ec2897f4d46f0c7657e488ae1" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" + }, + "uuid": { + "Package": "uuid", + "Version": "1.2-0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "303c19bfd970bece872f93a824e323d9" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "c03fa420630029418f7e6da3667aac4a" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bit64", + "cli", + "cpp11", + "crayon", + "glue", + "hms", + "lifecycle", + "methods", + "progress", + "rlang", + "stats", + "tibble", + "tidyselect", + "tzdb", + "vctrs", + "withr" + ], + "Hash": "390f9315bc0025be03012054103d227c" + }, + "withr": { + "Package": "withr", + "Version": "3.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + }, + "xfun": { + "Package": "xfun", + "Version": "0.42", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "stats", + "tools" + ], + "Hash": "fd1349170df31f7a10bd98b0189e85af" + }, + "xml2": { + "Package": "xml2", + "Version": "1.3.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "methods", + "rlang" + ], + "Hash": "1d0336142f4cd25d8d23cd3ba7a8fb61" + }, + "yaml": { + "Package": "yaml", + "Version": "2.3.8", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "29240487a071f535f5e5d5a323b7afbd" + } + } +} diff --git a/working-on-wynton-hpc/renv/.gitignore b/working-on-wynton-hpc/renv/.gitignore new file mode 100644 index 0000000..0ec0cbb --- /dev/null +++ b/working-on-wynton-hpc/renv/.gitignore @@ -0,0 +1,7 @@ +library/ +local/ +cellar/ +lock/ +python/ +sandbox/ +staging/ diff --git a/working-on-wynton-hpc/renv/activate.R b/working-on-wynton-hpc/renv/activate.R new file mode 100644 index 0000000..9b2e7f1 --- /dev/null +++ b/working-on-wynton-hpc/renv/activate.R @@ -0,0 +1,1201 @@ + +local({ + + # the requested version of renv + version <- "1.0.5" + attr(version, "sha") <- NULL + + # the project directory + project <- getwd() + + # use start-up diagnostics if enabled + diagnostics <- Sys.getenv("RENV_STARTUP_DIAGNOSTICS", unset = "FALSE") + if (diagnostics) { + start <- Sys.time() + profile <- tempfile("renv-startup-", fileext = ".Rprof") + utils::Rprof(profile) + on.exit({ + utils::Rprof(NULL) + elapsed <- signif(difftime(Sys.time(), start, units = "auto"), digits = 2L) + writeLines(sprintf("- renv took %s to run the autoloader.", format(elapsed))) + writeLines(sprintf("- Profile: %s", profile)) + print(utils::summaryRprof(profile)) + }, add = TRUE) + } + + # figure out whether the autoloader is enabled + enabled <- local({ + + # first, check config option + override <- getOption("renv.config.autoloader.enabled") + if (!is.null(override)) + return(override) + + # if we're being run in a context where R_LIBS is already set, + # don't load -- presumably we're being run as a sub-process and + # the parent process has already set up library paths for us + rcmd <- Sys.getenv("R_CMD", unset = NA) + rlibs <- Sys.getenv("R_LIBS", unset = NA) + if (!is.na(rlibs) && !is.na(rcmd)) + return(FALSE) + + # next, check environment variables + # TODO: prefer using the configuration one in the future + envvars <- c( + "RENV_CONFIG_AUTOLOADER_ENABLED", + "RENV_AUTOLOADER_ENABLED", + "RENV_ACTIVATE_PROJECT" + ) + + for (envvar in envvars) { + envval <- Sys.getenv(envvar, unset = NA) + if (!is.na(envval)) + return(tolower(envval) %in% c("true", "t", "1")) + } + + # enable by default + TRUE + + }) + + # bail if we're not enabled + if (!enabled) { + + # if we're not enabled, we might still need to manually load + # the user profile here + profile <- Sys.getenv("R_PROFILE_USER", unset = "~/.Rprofile") + if (file.exists(profile)) { + cfg <- Sys.getenv("RENV_CONFIG_USER_PROFILE", unset = "TRUE") + if (tolower(cfg) %in% c("true", "t", "1")) + sys.source(profile, envir = globalenv()) + } + + return(FALSE) + + } + + # avoid recursion + if (identical(getOption("renv.autoloader.running"), TRUE)) { + warning("ignoring recursive attempt to run renv autoloader") + return(invisible(TRUE)) + } + + # signal that we're loading renv during R startup + options(renv.autoloader.running = TRUE) + on.exit(options(renv.autoloader.running = NULL), add = TRUE) + + # signal that we've consented to use renv + options(renv.consent = TRUE) + + # load the 'utils' package eagerly -- this ensures that renv shims, which + # mask 'utils' packages, will come first on the search path + library(utils, lib.loc = .Library) + + # unload renv if it's already been loaded + if ("renv" %in% loadedNamespaces()) + unloadNamespace("renv") + + # load bootstrap tools + `%||%` <- function(x, y) { + if (is.null(x)) y else x + } + + catf <- function(fmt, ..., appendLF = TRUE) { + + quiet <- getOption("renv.bootstrap.quiet", default = FALSE) + if (quiet) + return(invisible()) + + msg <- sprintf(fmt, ...) + cat(msg, file = stdout(), sep = if (appendLF) "\n" else "") + + invisible(msg) + + } + + header <- function(label, + ..., + prefix = "#", + suffix = "-", + n = min(getOption("width"), 78)) + { + label <- sprintf(label, ...) + n <- max(n - nchar(label) - nchar(prefix) - 2L, 8L) + if (n <= 0) + return(paste(prefix, label)) + + tail <- paste(rep.int(suffix, n), collapse = "") + paste0(prefix, " ", label, " ", tail) + + } + + startswith <- function(string, prefix) { + substring(string, 1, nchar(prefix)) == prefix + } + + bootstrap <- function(version, library) { + + friendly <- renv_bootstrap_version_friendly(version) + section <- header(sprintf("Bootstrapping renv %s", friendly)) + catf(section) + + # attempt to download renv + catf("- Downloading renv ... ", appendLF = FALSE) + withCallingHandlers( + tarball <- renv_bootstrap_download(version), + error = function(err) { + catf("FAILED") + stop("failed to download:\n", conditionMessage(err)) + } + ) + catf("OK") + on.exit(unlink(tarball), add = TRUE) + + # now attempt to install + catf("- Installing renv ... ", appendLF = FALSE) + withCallingHandlers( + status <- renv_bootstrap_install(version, tarball, library), + error = function(err) { + catf("FAILED") + stop("failed to install:\n", conditionMessage(err)) + } + ) + catf("OK") + + # add empty line to break up bootstrapping from normal output + catf("") + + return(invisible()) + } + + renv_bootstrap_tests_running <- function() { + getOption("renv.tests.running", default = FALSE) + } + + renv_bootstrap_repos <- function() { + + # get CRAN repository + cran <- getOption("renv.repos.cran", "https://cloud.r-project.org") + + # check for repos override + repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) + if (!is.na(repos)) { + + # check for RSPM; if set, use a fallback repository for renv + rspm <- Sys.getenv("RSPM", unset = NA) + if (identical(rspm, repos)) + repos <- c(RSPM = rspm, CRAN = cran) + + return(repos) + + } + + # check for lockfile repositories + repos <- tryCatch(renv_bootstrap_repos_lockfile(), error = identity) + if (!inherits(repos, "error") && length(repos)) + return(repos) + + # retrieve current repos + repos <- getOption("repos") + + # ensure @CRAN@ entries are resolved + repos[repos == "@CRAN@"] <- cran + + # add in renv.bootstrap.repos if set + default <- c(FALLBACK = "https://cloud.r-project.org") + extra <- getOption("renv.bootstrap.repos", default = default) + repos <- c(repos, extra) + + # remove duplicates that might've snuck in + dupes <- duplicated(repos) | duplicated(names(repos)) + repos[!dupes] + + } + + renv_bootstrap_repos_lockfile <- function() { + + lockpath <- Sys.getenv("RENV_PATHS_LOCKFILE", unset = "renv.lock") + if (!file.exists(lockpath)) + return(NULL) + + lockfile <- tryCatch(renv_json_read(lockpath), error = identity) + if (inherits(lockfile, "error")) { + warning(lockfile) + return(NULL) + } + + repos <- lockfile$R$Repositories + if (length(repos) == 0) + return(NULL) + + keys <- vapply(repos, `[[`, "Name", FUN.VALUE = character(1)) + vals <- vapply(repos, `[[`, "URL", FUN.VALUE = character(1)) + names(vals) <- keys + + return(vals) + + } + + renv_bootstrap_download <- function(version) { + + sha <- attr(version, "sha", exact = TRUE) + + methods <- if (!is.null(sha)) { + + # attempting to bootstrap a development version of renv + c( + function() renv_bootstrap_download_tarball(sha), + function() renv_bootstrap_download_github(sha) + ) + + } else { + + # attempting to bootstrap a release version of renv + c( + function() renv_bootstrap_download_tarball(version), + function() renv_bootstrap_download_cran_latest(version), + function() renv_bootstrap_download_cran_archive(version) + ) + + } + + for (method in methods) { + path <- tryCatch(method(), error = identity) + if (is.character(path) && file.exists(path)) + return(path) + } + + stop("All download methods failed") + + } + + renv_bootstrap_download_impl <- function(url, destfile) { + + mode <- "wb" + + # https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17715 + fixup <- + Sys.info()[["sysname"]] == "Windows" && + substring(url, 1L, 5L) == "file:" + + if (fixup) + mode <- "w+b" + + args <- list( + url = url, + destfile = destfile, + mode = mode, + quiet = TRUE + ) + + if ("headers" %in% names(formals(utils::download.file))) + args$headers <- renv_bootstrap_download_custom_headers(url) + + do.call(utils::download.file, args) + + } + + renv_bootstrap_download_custom_headers <- function(url) { + + headers <- getOption("renv.download.headers") + if (is.null(headers)) + return(character()) + + if (!is.function(headers)) + stopf("'renv.download.headers' is not a function") + + headers <- headers(url) + if (length(headers) == 0L) + return(character()) + + if (is.list(headers)) + headers <- unlist(headers, recursive = FALSE, use.names = TRUE) + + ok <- + is.character(headers) && + is.character(names(headers)) && + all(nzchar(names(headers))) + + if (!ok) + stop("invocation of 'renv.download.headers' did not return a named character vector") + + headers + + } + + renv_bootstrap_download_cran_latest <- function(version) { + + spec <- renv_bootstrap_download_cran_latest_find(version) + type <- spec$type + repos <- spec$repos + + baseurl <- utils::contrib.url(repos = repos, type = type) + ext <- if (identical(type, "source")) + ".tar.gz" + else if (Sys.info()[["sysname"]] == "Windows") + ".zip" + else + ".tgz" + name <- sprintf("renv_%s%s", version, ext) + url <- paste(baseurl, name, sep = "/") + + destfile <- file.path(tempdir(), name) + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (inherits(status, "condition")) + return(FALSE) + + # report success and return + destfile + + } + + renv_bootstrap_download_cran_latest_find <- function(version) { + + # check whether binaries are supported on this system + binary <- + getOption("renv.bootstrap.binary", default = TRUE) && + !identical(.Platform$pkgType, "source") && + !identical(getOption("pkgType"), "source") && + Sys.info()[["sysname"]] %in% c("Darwin", "Windows") + + types <- c(if (binary) "binary", "source") + + # iterate over types + repositories + for (type in types) { + for (repos in renv_bootstrap_repos()) { + + # retrieve package database + db <- tryCatch( + as.data.frame( + utils::available.packages(type = type, repos = repos), + stringsAsFactors = FALSE + ), + error = identity + ) + + if (inherits(db, "error")) + next + + # check for compatible entry + entry <- db[db$Package %in% "renv" & db$Version %in% version, ] + if (nrow(entry) == 0) + next + + # found it; return spec to caller + spec <- list(entry = entry, type = type, repos = repos) + return(spec) + + } + } + + # if we got here, we failed to find renv + fmt <- "renv %s is not available from your declared package repositories" + stop(sprintf(fmt, version)) + + } + + renv_bootstrap_download_cran_archive <- function(version) { + + name <- sprintf("renv_%s.tar.gz", version) + repos <- renv_bootstrap_repos() + urls <- file.path(repos, "src/contrib/Archive/renv", name) + destfile <- file.path(tempdir(), name) + + for (url in urls) { + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (identical(status, 0L)) + return(destfile) + + } + + return(FALSE) + + } + + renv_bootstrap_download_tarball <- function(version) { + + # if the user has provided the path to a tarball via + # an environment variable, then use it + tarball <- Sys.getenv("RENV_BOOTSTRAP_TARBALL", unset = NA) + if (is.na(tarball)) + return() + + # allow directories + if (dir.exists(tarball)) { + name <- sprintf("renv_%s.tar.gz", version) + tarball <- file.path(tarball, name) + } + + # bail if it doesn't exist + if (!file.exists(tarball)) { + + # let the user know we weren't able to honour their request + fmt <- "- RENV_BOOTSTRAP_TARBALL is set (%s) but does not exist." + msg <- sprintf(fmt, tarball) + warning(msg) + + # bail + return() + + } + + catf("- Using local tarball '%s'.", tarball) + tarball + + } + + renv_bootstrap_download_github <- function(version) { + + enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE") + if (!identical(enabled, "TRUE")) + return(FALSE) + + # prepare download options + pat <- Sys.getenv("GITHUB_PAT") + if (nzchar(Sys.which("curl")) && nzchar(pat)) { + fmt <- "--location --fail --header \"Authorization: token %s\"" + extra <- sprintf(fmt, pat) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "curl", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } else if (nzchar(Sys.which("wget")) && nzchar(pat)) { + fmt <- "--header=\"Authorization: token %s\"" + extra <- sprintf(fmt, pat) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "wget", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } + + url <- file.path("https://api.github.com/repos/rstudio/renv/tarball", version) + name <- sprintf("renv_%s.tar.gz", version) + destfile <- file.path(tempdir(), name) + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (!identical(status, 0L)) + return(FALSE) + + renv_bootstrap_download_augment(destfile) + + return(destfile) + + } + + # Add Sha to DESCRIPTION. This is stop gap until #890, after which we + # can use renv::install() to fully capture metadata. + renv_bootstrap_download_augment <- function(destfile) { + sha <- renv_bootstrap_git_extract_sha1_tar(destfile) + if (is.null(sha)) { + return() + } + + # Untar + tempdir <- tempfile("renv-github-") + on.exit(unlink(tempdir, recursive = TRUE), add = TRUE) + untar(destfile, exdir = tempdir) + pkgdir <- dir(tempdir, full.names = TRUE)[[1]] + + # Modify description + desc_path <- file.path(pkgdir, "DESCRIPTION") + desc_lines <- readLines(desc_path) + remotes_fields <- c( + "RemoteType: github", + "RemoteHost: api.github.com", + "RemoteRepo: renv", + "RemoteUsername: rstudio", + "RemotePkgRef: rstudio/renv", + paste("RemoteRef: ", sha), + paste("RemoteSha: ", sha) + ) + writeLines(c(desc_lines[desc_lines != ""], remotes_fields), con = desc_path) + + # Re-tar + local({ + old <- setwd(tempdir) + on.exit(setwd(old), add = TRUE) + + tar(destfile, compression = "gzip") + }) + invisible() + } + + # Extract the commit hash from a git archive. Git archives include the SHA1 + # hash as the comment field of the tarball pax extended header + # (see https://www.kernel.org/pub/software/scm/git/docs/git-archive.html) + # For GitHub archives this should be the first header after the default one + # (512 byte) header. + renv_bootstrap_git_extract_sha1_tar <- function(bundle) { + + # open the bundle for reading + # We use gzcon for everything because (from ?gzcon) + # > Reading from a connection which does not supply a 'gzip' magic + # > header is equivalent to reading from the original connection + conn <- gzcon(file(bundle, open = "rb", raw = TRUE)) + on.exit(close(conn)) + + # The default pax header is 512 bytes long and the first pax extended header + # with the comment should be 51 bytes long + # `52 comment=` (11 chars) + 40 byte SHA1 hash + len <- 0x200 + 0x33 + res <- rawToChar(readBin(conn, "raw", n = len)[0x201:len]) + + if (grepl("^52 comment=", res)) { + sub("52 comment=", "", res) + } else { + NULL + } + } + + renv_bootstrap_install <- function(version, tarball, library) { + + # attempt to install it into project library + dir.create(library, showWarnings = FALSE, recursive = TRUE) + output <- renv_bootstrap_install_impl(library, tarball) + + # check for successful install + status <- attr(output, "status") + if (is.null(status) || identical(status, 0L)) + return(status) + + # an error occurred; report it + header <- "installation of renv failed" + lines <- paste(rep.int("=", nchar(header)), collapse = "") + text <- paste(c(header, lines, output), collapse = "\n") + stop(text) + + } + + renv_bootstrap_install_impl <- function(library, tarball) { + + # invoke using system2 so we can capture and report output + bin <- R.home("bin") + exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R" + R <- file.path(bin, exe) + + args <- c( + "--vanilla", "CMD", "INSTALL", "--no-multiarch", + "-l", shQuote(path.expand(library)), + shQuote(path.expand(tarball)) + ) + + system2(R, args, stdout = TRUE, stderr = TRUE) + + } + + renv_bootstrap_platform_prefix <- function() { + + # construct version prefix + version <- paste(R.version$major, R.version$minor, sep = ".") + prefix <- paste("R", numeric_version(version)[1, 1:2], sep = "-") + + # include SVN revision for development versions of R + # (to avoid sharing platform-specific artefacts with released versions of R) + devel <- + identical(R.version[["status"]], "Under development (unstable)") || + identical(R.version[["nickname"]], "Unsuffered Consequences") + + if (devel) + prefix <- paste(prefix, R.version[["svn rev"]], sep = "-r") + + # build list of path components + components <- c(prefix, R.version$platform) + + # include prefix if provided by user + prefix <- renv_bootstrap_platform_prefix_impl() + if (!is.na(prefix) && nzchar(prefix)) + components <- c(prefix, components) + + # build prefix + paste(components, collapse = "/") + + } + + renv_bootstrap_platform_prefix_impl <- function() { + + # if an explicit prefix has been supplied, use it + prefix <- Sys.getenv("RENV_PATHS_PREFIX", unset = NA) + if (!is.na(prefix)) + return(prefix) + + # if the user has requested an automatic prefix, generate it + auto <- Sys.getenv("RENV_PATHS_PREFIX_AUTO", unset = NA) + if (auto %in% c("TRUE", "True", "true", "1")) + return(renv_bootstrap_platform_prefix_auto()) + + # empty string on failure + "" + + } + + renv_bootstrap_platform_prefix_auto <- function() { + + prefix <- tryCatch(renv_bootstrap_platform_os(), error = identity) + if (inherits(prefix, "error") || prefix %in% "unknown") { + + msg <- paste( + "failed to infer current operating system", + "please file a bug report at https://github.com/rstudio/renv/issues", + sep = "; " + ) + + warning(msg) + + } + + prefix + + } + + renv_bootstrap_platform_os <- function() { + + sysinfo <- Sys.info() + sysname <- sysinfo[["sysname"]] + + # handle Windows + macOS up front + if (sysname == "Windows") + return("windows") + else if (sysname == "Darwin") + return("macos") + + # check for os-release files + for (file in c("/etc/os-release", "/usr/lib/os-release")) + if (file.exists(file)) + return(renv_bootstrap_platform_os_via_os_release(file, sysinfo)) + + # check for redhat-release files + if (file.exists("/etc/redhat-release")) + return(renv_bootstrap_platform_os_via_redhat_release()) + + "unknown" + + } + + renv_bootstrap_platform_os_via_os_release <- function(file, sysinfo) { + + # read /etc/os-release + release <- utils::read.table( + file = file, + sep = "=", + quote = c("\"", "'"), + col.names = c("Key", "Value"), + comment.char = "#", + stringsAsFactors = FALSE + ) + + vars <- as.list(release$Value) + names(vars) <- release$Key + + # get os name + os <- tolower(sysinfo[["sysname"]]) + + # read id + id <- "unknown" + for (field in c("ID", "ID_LIKE")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + id <- vars[[field]] + break + } + } + + # read version + version <- "unknown" + for (field in c("UBUNTU_CODENAME", "VERSION_CODENAME", "VERSION_ID", "BUILD_ID")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + version <- vars[[field]] + break + } + } + + # join together + paste(c(os, id, version), collapse = "-") + + } + + renv_bootstrap_platform_os_via_redhat_release <- function() { + + # read /etc/redhat-release + contents <- readLines("/etc/redhat-release", warn = FALSE) + + # infer id + id <- if (grepl("centos", contents, ignore.case = TRUE)) + "centos" + else if (grepl("redhat", contents, ignore.case = TRUE)) + "redhat" + else + "unknown" + + # try to find a version component (very hacky) + version <- "unknown" + + parts <- strsplit(contents, "[[:space:]]")[[1L]] + for (part in parts) { + + nv <- tryCatch(numeric_version(part), error = identity) + if (inherits(nv, "error")) + next + + version <- nv[1, 1] + break + + } + + paste(c("linux", id, version), collapse = "-") + + } + + renv_bootstrap_library_root_name <- function(project) { + + # use project name as-is if requested + asis <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT_ASIS", unset = "FALSE") + if (asis) + return(basename(project)) + + # otherwise, disambiguate based on project's path + id <- substring(renv_bootstrap_hash_text(project), 1L, 8L) + paste(basename(project), id, sep = "-") + + } + + renv_bootstrap_library_root <- function(project) { + + prefix <- renv_bootstrap_profile_prefix() + + path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) + if (!is.na(path)) + return(paste(c(path, prefix), collapse = "/")) + + path <- renv_bootstrap_library_root_impl(project) + if (!is.null(path)) { + name <- renv_bootstrap_library_root_name(project) + return(paste(c(path, prefix, name), collapse = "/")) + } + + renv_bootstrap_paths_renv("library", project = project) + + } + + renv_bootstrap_library_root_impl <- function(project) { + + root <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) + if (!is.na(root)) + return(root) + + type <- renv_bootstrap_project_type(project) + if (identical(type, "package")) { + userdir <- renv_bootstrap_user_dir() + return(file.path(userdir, "library")) + } + + } + + renv_bootstrap_validate_version <- function(version, description = NULL) { + + # resolve description file + # + # avoid passing lib.loc to `packageDescription()` below, since R will + # use the loaded version of the package by default anyhow. note that + # this function should only be called after 'renv' is loaded + # https://github.com/rstudio/renv/issues/1625 + description <- description %||% packageDescription("renv") + + # check whether requested version 'version' matches loaded version of renv + sha <- attr(version, "sha", exact = TRUE) + valid <- if (!is.null(sha)) + renv_bootstrap_validate_version_dev(sha, description) + else + renv_bootstrap_validate_version_release(version, description) + + if (valid) + return(TRUE) + + # the loaded version of renv doesn't match the requested version; + # give the user instructions on how to proceed + remote <- if (!is.null(description[["RemoteSha"]])) { + paste("rstudio/renv", description[["RemoteSha"]], sep = "@") + } else { + paste("renv", description[["Version"]], sep = "@") + } + + # display both loaded version + sha if available + friendly <- renv_bootstrap_version_friendly( + version = description[["Version"]], + sha = description[["RemoteSha"]] + ) + + fmt <- paste( + "renv %1$s was loaded from project library, but this project is configured to use renv %2$s.", + "- Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile.", + "- Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.", + sep = "\n" + ) + catf(fmt, friendly, renv_bootstrap_version_friendly(version), remote) + + FALSE + + } + + renv_bootstrap_validate_version_dev <- function(version, description) { + expected <- description[["RemoteSha"]] + is.character(expected) && startswith(expected, version) + } + + renv_bootstrap_validate_version_release <- function(version, description) { + expected <- description[["Version"]] + is.character(expected) && identical(expected, version) + } + + renv_bootstrap_hash_text <- function(text) { + + hashfile <- tempfile("renv-hash-") + on.exit(unlink(hashfile), add = TRUE) + + writeLines(text, con = hashfile) + tools::md5sum(hashfile) + + } + + renv_bootstrap_load <- function(project, libpath, version) { + + # try to load renv from the project library + if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) + return(FALSE) + + # warn if the version of renv loaded does not match + renv_bootstrap_validate_version(version) + + # execute renv load hooks, if any + hooks <- getHook("renv::autoload") + for (hook in hooks) + if (is.function(hook)) + tryCatch(hook(), error = warnify) + + # load the project + renv::load(project) + + TRUE + + } + + renv_bootstrap_profile_load <- function(project) { + + # if RENV_PROFILE is already set, just use that + profile <- Sys.getenv("RENV_PROFILE", unset = NA) + if (!is.na(profile) && nzchar(profile)) + return(profile) + + # check for a profile file (nothing to do if it doesn't exist) + path <- renv_bootstrap_paths_renv("profile", profile = FALSE, project = project) + if (!file.exists(path)) + return(NULL) + + # read the profile, and set it if it exists + contents <- readLines(path, warn = FALSE) + if (length(contents) == 0L) + return(NULL) + + # set RENV_PROFILE + profile <- contents[[1L]] + if (!profile %in% c("", "default")) + Sys.setenv(RENV_PROFILE = profile) + + profile + + } + + renv_bootstrap_profile_prefix <- function() { + profile <- renv_bootstrap_profile_get() + if (!is.null(profile)) + return(file.path("profiles", profile, "renv")) + } + + renv_bootstrap_profile_get <- function() { + profile <- Sys.getenv("RENV_PROFILE", unset = "") + renv_bootstrap_profile_normalize(profile) + } + + renv_bootstrap_profile_set <- function(profile) { + profile <- renv_bootstrap_profile_normalize(profile) + if (is.null(profile)) + Sys.unsetenv("RENV_PROFILE") + else + Sys.setenv(RENV_PROFILE = profile) + } + + renv_bootstrap_profile_normalize <- function(profile) { + + if (is.null(profile) || profile %in% c("", "default")) + return(NULL) + + profile + + } + + renv_bootstrap_path_absolute <- function(path) { + + substr(path, 1L, 1L) %in% c("~", "/", "\\") || ( + substr(path, 1L, 1L) %in% c(letters, LETTERS) && + substr(path, 2L, 3L) %in% c(":/", ":\\") + ) + + } + + renv_bootstrap_paths_renv <- function(..., profile = TRUE, project = NULL) { + renv <- Sys.getenv("RENV_PATHS_RENV", unset = "renv") + root <- if (renv_bootstrap_path_absolute(renv)) NULL else project + prefix <- if (profile) renv_bootstrap_profile_prefix() + components <- c(root, renv, prefix, ...) + paste(components, collapse = "/") + } + + renv_bootstrap_project_type <- function(path) { + + descpath <- file.path(path, "DESCRIPTION") + if (!file.exists(descpath)) + return("unknown") + + desc <- tryCatch( + read.dcf(descpath, all = TRUE), + error = identity + ) + + if (inherits(desc, "error")) + return("unknown") + + type <- desc$Type + if (!is.null(type)) + return(tolower(type)) + + package <- desc$Package + if (!is.null(package)) + return("package") + + "unknown" + + } + + renv_bootstrap_user_dir <- function() { + dir <- renv_bootstrap_user_dir_impl() + path.expand(chartr("\\", "/", dir)) + } + + renv_bootstrap_user_dir_impl <- function() { + + # use local override if set + override <- getOption("renv.userdir.override") + if (!is.null(override)) + return(override) + + # use R_user_dir if available + tools <- asNamespace("tools") + if (is.function(tools$R_user_dir)) + return(tools$R_user_dir("renv", "cache")) + + # try using our own backfill for older versions of R + envvars <- c("R_USER_CACHE_DIR", "XDG_CACHE_HOME") + for (envvar in envvars) { + root <- Sys.getenv(envvar, unset = NA) + if (!is.na(root)) + return(file.path(root, "R/renv")) + } + + # use platform-specific default fallbacks + if (Sys.info()[["sysname"]] == "Windows") + file.path(Sys.getenv("LOCALAPPDATA"), "R/cache/R/renv") + else if (Sys.info()[["sysname"]] == "Darwin") + "~/Library/Caches/org.R-project.R/R/renv" + else + "~/.cache/R/renv" + + } + + renv_bootstrap_version_friendly <- function(version, shafmt = NULL, sha = NULL) { + sha <- sha %||% attr(version, "sha", exact = TRUE) + parts <- c(version, sprintf(shafmt %||% " [sha: %s]", substring(sha, 1L, 7L))) + paste(parts, collapse = "") + } + + renv_bootstrap_exec <- function(project, libpath, version) { + if (!renv_bootstrap_load(project, libpath, version)) + renv_bootstrap_run(version, libpath) + } + + renv_bootstrap_run <- function(version, libpath) { + + # perform bootstrap + bootstrap(version, libpath) + + # exit early if we're just testing bootstrap + if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) + return(TRUE) + + # try again to load + if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { + return(renv::load(project = getwd())) + } + + # failed to download or load renv; warn the user + msg <- c( + "Failed to find an renv installation: the project will not be loaded.", + "Use `renv::activate()` to re-initialize the project." + ) + + warning(paste(msg, collapse = "\n"), call. = FALSE) + + } + + renv_json_read <- function(file = NULL, text = NULL) { + + jlerr <- NULL + + # if jsonlite is loaded, use that instead + if ("jsonlite" %in% loadedNamespaces()) { + + json <- tryCatch(renv_json_read_jsonlite(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + jlerr <- json + + } + + # otherwise, fall back to the default JSON reader + json <- tryCatch(renv_json_read_default(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + # report an error + if (!is.null(jlerr)) + stop(jlerr) + else + stop(json) + + } + + renv_json_read_jsonlite <- function(file = NULL, text = NULL) { + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + jsonlite::fromJSON(txt = text, simplifyVector = FALSE) + } + + renv_json_read_default <- function(file = NULL, text = NULL) { + + # find strings in the JSON + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + pattern <- '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + locs <- gregexpr(pattern, text, perl = TRUE)[[1]] + + # if any are found, replace them with placeholders + replaced <- text + strings <- character() + replacements <- character() + + if (!identical(c(locs), -1L)) { + + # get the string values + starts <- locs + ends <- locs + attr(locs, "match.length") - 1L + strings <- substring(text, starts, ends) + + # only keep those requiring escaping + strings <- grep("[[\\]{}:]", strings, perl = TRUE, value = TRUE) + + # compute replacements + replacements <- sprintf('"\032%i\032"', seq_along(strings)) + + # replace the strings + mapply(function(string, replacement) { + replaced <<- sub(string, replacement, replaced, fixed = TRUE) + }, strings, replacements) + + } + + # transform the JSON into something the R parser understands + transformed <- replaced + transformed <- gsub("{}", "`names<-`(list(), character())", transformed, fixed = TRUE) + transformed <- gsub("[[{]", "list(", transformed, perl = TRUE) + transformed <- gsub("[]}]", ")", transformed, perl = TRUE) + transformed <- gsub(":", "=", transformed, fixed = TRUE) + text <- paste(transformed, collapse = "\n") + + # parse it + json <- parse(text = text, keep.source = FALSE, srcfile = NULL)[[1L]] + + # construct map between source strings, replaced strings + map <- as.character(parse(text = strings)) + names(map) <- as.character(parse(text = replacements)) + + # convert to list + map <- as.list(map) + + # remap strings in object + remapped <- renv_json_read_remap(json, map) + + # evaluate + eval(remapped, envir = baseenv()) + + } + + renv_json_read_remap <- function(json, map) { + + # fix names + if (!is.null(names(json))) { + lhs <- match(names(json), names(map), nomatch = 0L) + rhs <- match(names(map), names(json), nomatch = 0L) + names(json)[rhs] <- map[lhs] + } + + # fix values + if (is.character(json)) + return(map[[json]] %||% json) + + # handle true, false, null + if (is.name(json)) { + text <- as.character(json) + if (text == "true") + return(TRUE) + else if (text == "false") + return(FALSE) + else if (text == "null") + return(NULL) + } + + # recurse + if (is.recursive(json)) { + for (i in seq_along(json)) { + json[i] <- list(renv_json_read_remap(json[[i]], map)) + } + } + + json + + } + + # load the renv profile, if any + renv_bootstrap_profile_load(project) + + # construct path to library root + root <- renv_bootstrap_library_root(project) + + # construct library prefix for platform + prefix <- renv_bootstrap_platform_prefix() + + # construct full libpath + libpath <- file.path(root, prefix) + + # run bootstrap code + renv_bootstrap_exec(project, libpath, version) + + invisible() + +}) diff --git a/working-on-wynton-hpc/renv/settings.json b/working-on-wynton-hpc/renv/settings.json new file mode 100644 index 0000000..ffdbb32 --- /dev/null +++ b/working-on-wynton-hpc/renv/settings.json @@ -0,0 +1,19 @@ +{ + "bioconductor.version": null, + "external.libraries": [], + "ignored.packages": [], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "ppm.enabled": null, + "ppm.ignored.urls": [], + "r.version": null, + "snapshot.type": "implicit", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} diff --git a/working-on-wynton-hpc/Gladstone_Wynton_Docs.pdf b/working-on-wynton-hpc/slide_materials/Gladstone_Wynton_Docs.pdf similarity index 100% rename from working-on-wynton-hpc/Gladstone_Wynton_Docs.pdf rename to working-on-wynton-hpc/slide_materials/Gladstone_Wynton_Docs.pdf diff --git a/working-on-wynton-hpc/slide_materials/HPC_diagram.png b/working-on-wynton-hpc/slide_materials/HPC_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ad22bf6770735451742126ff915dd105609e47aa GIT binary patch literal 136053 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�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�OHrOu96+9<_#<4&3ek9>g4FS-QQ9VB?c8; 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 literal 0 HcmV?d00001 diff --git a/working-on-wynton-hpc/status-chart.png b/working-on-wynton-hpc/slide_materials/status-chart.png similarity index 100% rename from working-on-wynton-hpc/status-chart.png rename to working-on-wynton-hpc/slide_materials/status-chart.png diff --git a/working-on-wynton-hpc/style.css b/working-on-wynton-hpc/style.css new file mode 100644 index 0000000..ae62ab5 --- /dev/null +++ b/working-on-wynton-hpc/style.css @@ -0,0 +1,162 @@ + +/* Set font size and alignment for the message */ +.bottom-message { + font-size: 0.8em !important; + font-style: italic !important; + text-align: center; + position: relative; + bottom: 0 !important; + left: 0; + right: 0; +} + +.reveal code { + background-color: #1e1e1eef; /* Dark background for code chunks */ + color: white !important; /* White text for code */ + font-size: 1.2em; + line-height: 1.2; +} + +.reveal code::selection { + background-color: #d97306 !important; /* Dark magenta background for selected text */ +} + + + + + +/* Specific styles for code output: background */ +.reveal code.output { + background-color: black; /* Black background for code outputs */ +} + +/* Style for text selection within code outputs */ +.reveal pre code.output::selection { + background-color: #9c0366 !important; /* Dark magenta background for selected text in outputs */ +} + +/* Code output text color */ +.reveal pre code.output { + color: white; +} + + +/* Left-align all code outputs */ +.reveal pre code { + text-align: left !important; +} + + +/* Add horizontal scrolling to all code outputs */ +.reveal pre code.output { + white-space: pre !important; + overflow-x: auto !important; +} +/* Change the font family used for code blocks */ +pre, code, kbd, samp { + font-family: "Courier New", Courier, monospace; +} + + +/* Add horizontal scrolling to all code chunks */ +.reveal pre code { + white-space: pre !important; + overflow-x: auto !important; +} +/* Bold slide titles and change color */ +.reveal h2 { + font-weight: bold !important; + color: #9c0366; +} +/* Bold slide titles and change color */ +.reveal h1 { + font-weight: bold !important; + color: #9c0366; +} +.reveal .slides>section:first-child h2 { + color: #333; + font-weight: normal !important; + } +/* Custom slide title */ +.my-title-slide h1 { + font-weight: bold; + color: #9c0366; + } +.my-title-slide h2 { +color: #333; +font-weight: normal !important; +} + + + +.reveal .slides>section:first-child h1 { + font-weight: bold !important; + color: #9c0366; +} + + +.reveal p { + text-align: left; + margin-left: 20px !important; + } +.reveal ul { + display: block; + margin-left: 75px !important; + margin-right: 50px !important; +} + +.reveal ul ul { + font-size: 0.75em; /* Smaller font size */ + margin-top: 5px !important; + margin-bottom: 5px !important; +} +.reveal ol { + display: block; + margin-bottom: 20px !important; +} + + +/* Decrease size of image, remove border, shadow and center align*/ +.reveal img { + max-width: 60%; + border: none !important; + box-shadow: none !important; + display: block !important; + margin: 0 auto !important; +} + +small { + font-size: 70%; +} + +/* Create a custom class for the small bullets, increase the spacing between list items */ +.small-bullets ul { + font-size: 85%; +} +.small-list ol { + font-size: 80%; +} + +.reveal li { + margin-bottom: 10px !important; +} + + +.less-small-bullets ul { + font-size: 80%; +} + +.big-picture img{ + max-width: 70%; + border: 1px solid black !important; +} + +/* Chage link color to purple */ +.reveal a { + color: #0c74dc !important; +} + +/* Change link color to purple on hover */ +.reveal a:hover { + color: #9c0366 !important; +} diff --git a/working-on-wynton-hpc/working-on-wynton-hpc.Rproj b/working-on-wynton-hpc/working-on-wynton-hpc.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/working-on-wynton-hpc/working-on-wynton-hpc.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX From 2520c89e0379ee9340033d6722e3f985ffd0478b Mon Sep 17 00:00:00 2001 From: Natalie Elphick Date: Wed, 27 Mar 2024 13:14:21 -0700 Subject: [PATCH 2/3] finish 1st draft of part 2 slides --- docs/Working_on_Wynton_Part_1.html | 181 ++- docs/Working_on_Wynton_Part_2.html | 1316 +++++++++++++++++ .../Working_on_Wynton_Part_1.Rmd | 110 +- .../Working_on_Wynton_Part_2.Rmd | 449 ++++++ .../slide_materials/compute_job_workflow.svg | 3 + .../nf-core-rnaseq_metro_map_grey.png | Bin 0 -> 306439 bytes working-on-wynton-hpc/style.css | 67 +- 7 files changed, 2028 insertions(+), 98 deletions(-) create mode 100644 docs/Working_on_Wynton_Part_2.html create mode 100644 working-on-wynton-hpc/Working_on_Wynton_Part_2.Rmd create mode 100644 working-on-wynton-hpc/slide_materials/compute_job_workflow.svg create mode 100644 working-on-wynton-hpc/slide_materials/nf-core-rnaseq_metro_map_grey.png diff --git a/docs/Working_on_Wynton_Part_1.html b/docs/Working_on_Wynton_Part_1.html index b894631..b9cdf5a 100644 --- a/docs/Working_on_Wynton_Part_1.html +++ b/docs/Working_on_Wynton_Part_1.html @@ -417,10 +417,16 @@ right: 0; } .reveal code { background-color: #1e1e1eef; -color: white !important; +color: white; font-size: 1.2em; line-height: 1.2; } +.code-small code { +background-color: #1e1e1eef; +color: white; +font-size: 1em; +line-height: 1; +} .reveal code::selection { background-color: #d97306 !important; } @@ -429,8 +435,12 @@ background-color: #d97306 !important; background-color: black; } -.reveal pre code.output::selection { -background-color: #9c0366 !important; +.code-alt code { +background-color: #ffecd0ac; +max-height: 400px !important; +font-family: 'Menlo', sans-serif; +font-size: 0.8em; +color: rgb(76, 76, 76) } .reveal pre code.output { @@ -455,26 +465,27 @@ white-space: pre !important; overflow-x: auto !important; } +.reveal p, .reveal li, .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { +font-family: "Helvetica", sans-serif; +} +.reveal h3 { +color: black; +font-size: 0.7em; +} + .reveal h2 { font-weight: bold !important; color: #9c0366; +font-size: 1.3em; } .reveal h1 { font-weight: bold !important; color: #9c0366; +font-size: 2.0em; } .reveal .slides>section:first-child h2 { -color: #333; -font-weight: normal !important; -} - -.my-title-slide h1 { -font-weight: bold; -color: #9c0366; -} -.my-title-slide h2 { -color: #333; +color: black; font-weight: normal !important; } .reveal .slides>section:first-child h1 { @@ -492,12 +503,13 @@ margin-right: 50px !important; } .reveal ul ul { font-size: 0.75em; -margin-top: 5px !important; margin-bottom: 5px !important; } .reveal ol { display: block; -margin-bottom: 20px !important; +margin-bottom: 20px; +margin-left: 75px; +margin-right: 50px } .reveal img { max-width: 60%; @@ -523,12 +535,11 @@ margin-bottom: 10px !important; font-size: 80%; } .big-picture img{ -max-width: 70%; -border: 1px solid black !important; +max-width: 95%; } .reveal a { -color: #0c74dc !important; +color: #0c74dc; } .reveal a:hover { @@ -569,7 +580,7 @@ document.addEventListener('DOMContentLoaded', function(e) {

Introductions

Natalie Elphick
Bioinformatician I

-

Alex Pico (TA)
+

Alex Pico
Bioinformatics Core Director

@@ -608,6 +619,7 @@ a fast local network
  • A HPC Linux environment available to all UCSF researchers for free
  • +
  • Uses the Rocky 8 linux OS
  • Includes several hundred compute nodes and a large shared storage system (Cluster specifications)
    @@ -697,16 +709,38 @@ groups
    {local}$ scp local_file.tsv alice@dt1.wynton.ucsf.edu:~/

    Names:

    dt1 and dt2

    +
  • +
    +

    Compute Nodes

    +
      +
    • Can not be logged in to directly
    • +
    • Used to run non-interactive compute job scripts
    • +
    • The software to run the job script is provided using a +container
    • +
    +

    Compute Jobs

    Storage

    +
    +
    +

    The File System

    +
      +
    • A file system how information is stored and retrieved on a computer +
        +
      • Consists of files and directories
      • +
    • +
    • A local file system is function of the operating system and only +accessible from a single computer
    • +
    • A shared file system is accessible from multiple computers
    • +

    BeeGFS

      -
    • Wynton uses a parallel file system called BeeGFS +
    • Wynton uses a parallel shared file system called BeeGFS
      • The files are stored as “chunks” spread across many different servers
      • @@ -747,17 +781,15 @@ requests
      • e.g: lots of writes to the same directory and lots of file lookups and directory searches (conda)
    • -
    • Users are strongly encouraged to keep the number of reads and writes -to a single directory to a reasonable number
    • +
    • Keep the number of reads and writes to a single directory to a +reasonable number
    • If using conda, putting the conda application inside a Apptainer -(formerly singularity) container will result in better overall file -system performance
    • +(formerly singularity) container will result in better performance

    BeeGFS - Tips

      -
    • Some general guidelines for optimum use of BeeGFS
    • Prefer fewer, large files over many small ones
    • Distribute reading and writing over several directories
        @@ -779,6 +811,8 @@ LD_LIBRARY_PATH
      • /wynton/[group_name]
        • User group directory - disk quota varies by group
        • +
        • Use this directory for any analysis you want to share with your +lab
      • More information on disk quotas
      • @@ -814,10 +848,26 @@ deleted

      • Only certain HIVE folders are accessible directly on Wynton
      • Files under /gladstone are backed up
    • -
    • Naming: /gladstone/[lab]/[share]
    • +
    • Naming: /gladstone/[lab] +
        +
      • Directories that are shared between multiple labs can be set up by +contacting Gladstone IT
        +
      • +
    • For more information visit the IT knowledge base page
    +
    +
    +

    Storage Advice

    +
      +
    • Always back up anything you store under +/wynton
    • +
    • Use /gladstone if you have access to it for all of +your work since it is automatically backed up
    • +
    • Use the scratch directories to store temporary files so they do not +count against your group or user quotas
    • +
    @@ -867,8 +917,7 @@ connections’ is set to 1

    Globus

    • Globus is a -non-profit service for moving, syncing, and sharing large amounts of -data asynchronously in the background
    • +service for moving, syncing, and sharing large amounts of data
    • Wynton Accounts are not required to transfer data with Globus
    • Useful for transferring data between institutions
    @@ -886,6 +935,26 @@ storage
  • Do not use rclone for transfers to Box, follow the Wynton to UCSF Box instructions
  • +
    +
    +

    Poll 1

    +

    Which of these can you not log in to from your +computer?

    +
      +
    1. Login Nodes
    2. +
    3. Development Nodes
    4. +
    5. Data transfer Nodes
    6. +
    7. Compute Nodes
    8. +
    +
    +
    +

    Poll 2

    +

    The /wynton directory is backed up on a nightly +basis so do not need to back up the data you store here.

    +
      +
    1. True
    2. +
    3. False
    4. +
    @@ -895,9 +964,9 @@ UCSF Box instructions

    Basics

      +
    • Check if the tool is already available in a module
    • Ensure the software you are trying to install is compatible with -Rocky linux (use a container if not)
    • -
    • Check if the tool is already available in a module
    • +Rocky 8 linux (use a container if not)
    • Always install software in a development node
    • Download a precompiled binary or install from source
    • @@ -923,11 +992,16 @@ from source
      [alice@dev1 ~]$ make
       [alice@dev1 ~]$ make install
    -
    -

    Install Nextflow for Part 2

    +
    +

    Install Nextflow

      -
    • In part 2, we will run the nextflow rna-seq pipeline
    • -
    • Run the following to install nextflow:
    • +
    • Scientific workflow system with a community maintained set of core bioinformatics analysis pipelines +
        +
      • We will cover an example RNA-seq pipeline in part 2
        +
      • +
    • +
    • These can be configured to use the Wynton compute job submission +system
    [alice@dev1 ~]$ cd ~/software
     [alice@dev1 ~]$ curl -s "https://get.sdkman.io" | bash
    @@ -935,25 +1009,32 @@ from source
     [alice@log1 ~]$ ssh dev1
     [alice@dev1 ~]$ sdk install java 17.0.6-tem
     [alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash
    -
      -
    • Let us know if you run into any errors
    • -

    Containers

    +
    +
    +

    Motivation

    +
      +
    • Compute heavy jobs (high RAM, multiple cores) should be run on +compute nodes
    • +
    • Containers allow us to make additional software available to the +compute nodes +
        +
      • Also allows the use of software that might be hard to install on +Rocky 8 Linux
      • +
      • Improves reproducibility
      • +
    • +
    +

    Compute Jobs

    Definitions

    • Virtualization: When software mimics the functions -of physical hardware to run virtual machines -
        -
      • Work around to use OS specific or legacy software that might be hard -to install
      • -
      • Improves reproducibility
      • -
    • +of physical hardware to run virtual machines
    • Containers: Implements virtualization using an image as its base
    • Images: An ordered collection of root filesystem @@ -967,8 +1048,8 @@ container runtime
    • Wynton supports Apptainer (formerly singularity) containers

    • Docker is a commonly used -container creation software, these can be turned into apptainer -containers easily

    • +image creation software, these can be turned into apptainer image files +(.sif) easily

    • apptainer run

      • Run predefined script within container
      • @@ -1000,8 +1081,8 @@ image file / __ / __/ / / /_/ / | |/ |/ / /_/ / / / / /_/ / /_/ /_/ /_/\___/_/_/\____/ |__/|__/\____/_/ /_/\__,_/ (_)
    -
    -

    Example Container - Hello World

    +
    +

    Example Container

    diff --git a/docs/Working_on_Wynton_Part_2.html b/docs/Working_on_Wynton_Part_2.html new file mode 100644 index 0000000..cdf57b3 --- /dev/null +++ b/docs/Working_on_Wynton_Part_2.html @@ -0,0 +1,1316 @@ + + + + + + + Working on Wynton - Part 2 + + + + + + + + + + + + + + + + + +
    +
    + +
    +

    Working on Wynton - Part 2

    +

    Natalie Elphick

    +

    April 16th, 2024

    +
    + +
    +

    +
    +Press the ? key for tips on navigating these slides +
    +
    +
    +

    Introductions

    +

    Natalie Elphick
    +Bioinformatician I

    +

    Alex Pico
    +Bioinformatics Core Director

    +
    +
    +

    Target Audience

    +
      +
    • Prior experience with UNIX command-line
    • +
    +
    +
    +

    Part 2:

    +
      +
    1. Custom Containers
    2. +
    3. Submitting Compute Jobs
    4. +
    5. Array Jobs
    6. +
    7. GPU Jobs
    8. +
    9. Running Pipelines
    10. +
    11. Jupyter Notebooks
    12. +
    13. RStudio Server
    14. +
    15. How to get help
    16. +
    +
    +
    +
    +

    Custom Containers

    + +
    +
    +

    Motivation

    +
      +
    • Compute heavy jobs (high RAM, multiple cores) should be run on +compute nodes
    • +
    • Containers allow us to make additional software available to the +compute nodes +
        +
      • Also allows the use of software that might be hard to install on +Rocky 8 Linux
      • +
      • Improves reproducibility
      • +
    • +
    +

    Compute Jobs

    +
    +
    +

    Dockerfile Basics

    +
      +
    • Dockerfiles contain instructions to build an image in +layers
    • +
    • Layers are added using Dockerfile instruction syntax
    • +
    • Images are built by navigating to the directory that contains the +Dockerfile and running:
    • +
    +
    docker build .
    +
    +
    +

    Dockerfile Instructions

    +
      +
    • First instruction is always FROM which specifies +the base image +
        +
      • Base images are a starting point with some basics already installed +like the OS and build tools, find them on DockerHub
      • +
    • +
    • RUN : Use before running any shell commands
    • +
    • SHELL : Set the shell
    • +
    • USER : Set the user (within the image)
    • +
    • CMD : Set the default instruction to be run by the +image
    • +
    • COPY : COPY files into the image
    • +
    +

    See the Dockerfile +documentation for a full list of instructions

    +
    +
    +

    Example Dockerfile

    +
      +
    • Click here +to download the example Dockerfile
    • +
    • Open in your preffered text editor
    • +
    +
    # Bioconductor base image gives us access to a lot of bioinformatics tools and R packages.
    +FROM bioconductor/bioconductor_docker:RELEASE_3_17
    +
    +# Shell options, we want to exit if any command fails
    +SHELL ["/bin/bash", "-o", "pipefail", "-c"]
    +
    +# Root permissions are required to install packages
    +USER root
    +
    +
    +# Install any UNIX packages you need
    +# First we update the package list and then install GNU make
    +# We clean up after ourselves to reduce the image size
    +RUN apt-get update && apt-get upgrade -y \
    +    && apt-get install -y --no-install-recommends make \
    +    && apt-get clean \
    +    && rm -rf /var/lib/apt/lists/*
    +
    +# Install Seurat and harmony
    +RUN Rscript -e 'install.packages(c("Seurat","harmony"))'
    +# Check if installs worked
    +RUN Rscript -e 'lapply(c("Seurat","harmony"), library, character.only = TRUE)'
    +
    +
    +# Run container as non-root to avoid permission issues
    +RUN groupadd -g 10001 notroot && \
    +   useradd -u 10000 -g notroot notroot 
    +
    +# Switch to the non-root user
    +USER notroot:notroot
    +
    +# Default command to run when the container starts
    +CMD ["/bin/bash"]
    +
    +# Copy dockerfile into the image (optional, but can be useful for reproducibility)
    +COPY Dockerfile /Dockerfile
    +
    +
    +

    Building Example Image

    +
      +
    • Do not run this during the workshop +
        +
      • It requires a lot of RAM
      • +
    • +
    • On macOS, make sure you have the Docker Desktop App running
    • +
    • We can provide an additional argument to the build +command, -t, to set the name of the docker image +
        +
      • We can add version tags after the name using “:”
      • +
    • +
    +
    docker build -t docker_hub_user/seurat-harmony:1.0 .
    +
    +
    +

    Pushing Images to DockerHub

    +
      +
    • Make sure you are signed in to your DockerHub account locally +(Docker Desktop for macOS)
    • +
    • The image name must start with your user name
    • +
    +
    docker push docker_hub_user/seurat-harmony:1.0
    +
      +
    • These can then be “pulled” on to Wynton as apptainer image files +(image must be public)
    • +
    +
    [alice@dev1 ~]$ apptainer pull docker://docker_hub_user/seurat-harmony:1.0
    +
    +
    +

    Notes on Building Custom Images

    +
      +
    • Time consuming process and uses a lot of RAM on your local +machine
    • +
    • A good base image can save you a lot of time
    • +
    • You must run apt-get update and +apt-get install in the same command +
        +
      • Otherwise you will encounter caching issues
      • +
    • +
    • Remember to use apt-get install -y +
        +
      • You will have no control over the process while it’s building
      • +
    • +
    +
    +
    +
    +

    Compute Jobs

    + +
    +
    +

    Submission Script - Basics

    + +
    #!/bin/bash           # the shell language when run outside of the job scheduler
    +#                     # lines starting with #$ is an instruction to the job scheduler
    +#$ -S /bin/bash       # the shell language when run via the job scheduler [IMPORTANT]
    +#$ -cwd               # job should run in the current working directory
    +#$ -j y               # STDERR and STDOUT should be joined
    +#$ -l mem_free=1G     # job requires up to 1 GiB of RAM per slot (core)
    +#$ -l scratch=2G      # job requires up to 2 GiB of local /scratch space
    +#$ -l h_rt=1:00:00   # job requires up to 1 hour of runtime 
    +#$ -r y               # if job crashes, it should be restarted
    +
    +date
    +hostname
    +
    +## End-of-job summary, if running as a job
    +[[ -n "$JOB_ID" ]] && qstat -j "$JOB_ID"  # This is useful for debugging and usage purposes,
    +                                          # e.g. "did my job exceed its memory request?"
    +
    +
    +

    Submission Script - Apptainer

    +
      +
    • Download +this example job submission script that uses a container
    • +
    • Paths that the container needs read/write access to need to be +mounted with APPTAINER_BINDPATH
    • +
    +
    #!/bin/bash
    +#$ -S /bin/bash      # the shell language when run via the job scheduler
    +#$ -cwd               # job should run in the current working directory
    +#$ -j y               # STDERR and STDOUT should be joined
    +#$ -l mem_free=1G     # job requires up to 1 GiB of RAM per slot
    +#$ -l scratch=2G      # job requires up to 2 GiB of local /scratch space
    +#$ -l h_rt=1:00:00    # job requires up to 1 hour of runtime
    +
    +
    +# Mount the current directory to the container
    +# Any directroy that needs to be accessed by the container should be mounted
    +directory=$(pwd)
    +export APPTAINER_BINDPATH="$directory"
    +
    +h=$(hostname)
    +
    +singularity run hello-world_1.0.sif figlet $h > $directory/hello.txt
    +
    +[[ -n "$JOB_ID" ]] && qstat -j "$JOB_ID"
    +
    +
    +

    Parallel Processing Jobs

    +
      +
    • By default jobs run on a single core

    • +
    • Multicore jobs must run in a SGE parallel environment (PE) and +tell SGE how many cores the job will use

    • +
    • Do not use more cores than requested

    • +
    • There are four parallel environments on Wynton:

      +
        +
      • smp: for single-host parallel jobs using Symmetric +multiprocessing (SMP)
      • +
      • mpi: for multiple-host parallel jobs based on MPI +parallelization
      • +
      • mpi_onehost: for single-host parallel jobs based on +MPI parallelization
      • +
      • mpi-8: for multi-threaded multi-host jobs based on +MPI parallelization
      • +
    • +
    +
    +
    +

    Example Parallel Job

    +
      +
    • The simplest parallel environment on Wynton is smp, +a single node with n cores
    • +
    • Download +this example smp job submission script
    • +
    +
    #!/bin/bash
    +#$ -S /bin/bash 
    +#$ -cwd
    +#$ -j y
    +#$ -pe smp 4                    # 4 cores on a single node
    +#$ -l mem_free=2G               # 2 GiB of RAM per slot (core), so 8 GiB total
    +#$ -l scratch=5G                # 5 GiB of local /scratch space
    +#S -l h_rt=08:00:00
    +
    +
    +# Code that requires 4 cores
    +# **Specify the number of cores as ${NSLOTS}**
    +
    +
    +
    +[[ -n "$JOB_ID" ]] && qstat -j "$JOB_ID"
    +
    +
    +

    Array Jobs

    +
      +
    • This is a good option if the script you want to run operates on +discrete sets of data +
        +
      • e.g. sample or chromosome
      • +
    • +
    • Download +this example array job submission script
    • +
    +
    #!/bin/bash           
    +#$ -S /bin/bash       
    +#$ -cwd               
    +#$ -j y               
    +#$ -l mem_free=1G     
    +#$ -l scratch=2G     
    +#$ -l h_rt=1:00:00   
    +#$ -t 1-5          # Number of tasks to run in the array (each is a job with the same resource requirements above)
    +
    +params=(sample1 sample2 sample3 sample4 sample5)
    +
    +# The task ID is stored in the variable SGE_TASK_ID
    +# This variable is used to index the array of parameters
    +# The task ID is 1-indexed
    +param=${params[$SGE_TASK_ID - 1]}
    +
    +echo "Running task $SGE_TASK_ID with parameter $param"
    +
    +# Code for each task
    +
    +[[ -n "$JOB_ID" ]] && qstat -j "$JOB_ID"
    +
    +
    +

    GPU Jobs

    +
      +
    • To run a GPU job, +specify -q gpu.q (queue) as a GPU queue +
        +
      • Other GPU queues may be available to you depending on your lab
      • +
    • +
    • It is important to specify the GPU using the +SGE_GPU variable so that your job uses its assigned GPU +
        +
      • For CUDA based tools, add export +CUDA_VISIBLE_DEVICES=$SGE_GPU to your submission script
      • +
    • +
    • GPU jobs must include a runtime request or they will be removed from +the queue
    • +
    +
    +
    +

    Submitting and Querying jobs

    +
      +
    • Use qsub to submit jobs
    • +
    +
    [alice@dev1 ~]$ qsub job1.sh
    +Your job 714888 ("job1.sh") has been submitted
    +
      +
    • Use qstat to check the status of your jobs
    • +
    +
    [alice@dev1 ~]$ qstat
    +job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
    +-----------------------------------------------------------------------------------------------------------------
    + 714888 0.06532 job1 alice     r     03/25/2024 19:54:18 member.q@msg-hmio1                 1        
    + 714889 0.06532 job2 alice     r     03/25/2024 19:54:19 member.q@msg-hmio1                 1        
    +

    Read the querying +jobs Wynton documentation for more information.

    +
    +
    +

    Estimating Job Resources

    +
      +
    • Try to estimate the amount of RAM needed using a small test +dataset
    • +
    • Request a little more RAM than you need to avoid having your job +cancelled
    • +
    • Check on jobs you are running for the first time with qstat +-j to make sure they are not going over
    • +
    +
    +
    +

    Poll 3

    +

    Anything that you can run on a compute node can be run on a +development node.

    +
      +
    1. True
    2. +
    3. False
    4. +
    +
    +
    +
    +

    Running Pipelines

    + +
    +
    +

    Nextflow RNA-seq

    + +

    RNA-seq

    +
    +
    +

    Example - RNA-seq Pipeline

    +

    Do not run this during the workshop as it will fill up the +Wynton SGE queue

    +
      +
    • Download the testing +script +
        +
      • Runs a minimal test on the RNA-seq pipeline
      • +
    • +
    • Download the config +file +
        +
      • Configures nextflow to use the SGE job scheduler and sets limits on +compute job resources for each process
      • +
    • +
    • Put these in the same directory (do not use your user home directory +for this) and run the script in a screen/tmux session
    • +
    • When not running the test, the -profile should be +apptainer
    • +
    +
    +
    +
    +

    Jupyter Notebooks

    + +
    +
    +

    Installing Jupyter Notebooks

    +
      +
    • The preferred way to install and use Jupyter +notebooks on Wynton is though pip, not conda
    • +
    +
    python3 -m pip install --user notebook
    +
      +
    • Jupyter notebooks can only be run on development nodes
    • +
    • See the Wynton python +documentation for more info on managing python environments on +Wynton
    • +
    +
    +
    +

    Running Jupyter Notebooks - Step 1

    +
      +
    • You cannot connect from outside Wynton HPC directly to a development +node +
        +
      • Instead we need to use SSH port forwarding to establish the +connection with a local web browser
      • +
    • +
    • Find an available TCP port:
    • +
    +
    [alice@dev1 ~]$ module load CBI port4me
    +[alice@dev1 ~]$ port4me --tool=jupyter
    +47467
    +

    Note the port number returned by port4me, you will need this +later.

    +
    +
    +

    Running Jupyter Notebooks - Step 2

    +
      +
    • Launch Jupyter notebook using the port numer from step 1
    • +
    +
    [alice@dev1]$ jupyter notebook --no-browser --port 47467
    +[I 2024-03-20 14:48:45.693 ServerApp] jupyter_lsp | extension was successfully linked.
    +[I 2024-03-20 14:48:45.698 ServerApp] jupyter_server_terminals | extension was successfully linked.
    +[I 2024-03-20 14:48:45.703 ServerApp] jupyterlab | extension was successfully linked.
    +[I 2024-03-20 14:48:45.708 ServerApp] notebook | extension was successfully linked.
    +[I 2024-03-20 14:48:46.577 ServerApp] notebook_shim | extension was successfully linked.
    +[I 2024-03-20 14:48:46.666 ServerApp] notebook_shim | extension was successfully loaded.
    +[I 2024-03-20 14:48:46.668 ServerApp] jupyter_lsp | extension was successfully loaded.
    +[I 2024-03-20 14:48:46.669 ServerApp] jupyter_server_terminals | extension was successfully loaded.
    +[I 2024-03-20 14:48:46.675 LabApp] JupyterLab extension loaded from /wynton/home/boblab/alice/.local/lib/python3.11/site-packages/jupyterlab
    +[I 2024-03-20 14:48:46.675 LabApp] JupyterLab application directory is /wynton/home/boblab/alice/.local/share/jupyter/lab
    +[I 2024-03-20 14:48:46.677 LabApp] Extension Manager is pypi.
    +[I 2024-03-20 14:48:46.707 ServerApp] jupyterlab | extension was successfully loaded.
    +[I 2024-03-20 14:48:46.711 ServerApp] notebook | extension was successfully loaded.
    +[I 2024-03-20 14:48:46.712 ServerApp] Serving notebooks from local directory: /wynton/home/boblab/alice
    +[I 2024-03-20 14:48:46.712 ServerApp] Jupyter Server 2.13.0 is running at:
    +[I 2024-03-20 14:48:46.712 ServerApp] http://localhost:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2
    +[I 2024-03-20 14:48:46.712 ServerApp]     http://127.0.0.1:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2
    +[I 2024-03-20 14:48:46.712 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    +[C 2024-03-20 14:48:46.725 ServerApp]
    +
    +    To access the server, open this file in a browser:
    +        file:///wynton/home/boblab/alice/.local/share/jupyter/runtime/jpserver-2853162-open.html
    +    Or copy and paste one of these URLs:
    +        http://localhost:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2
    +        http://127.0.0.1:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2
    +
    +
    +

    Running Jupyter Notebooks - Step 3

    +
      +
    • Set up SSH port forwarding on your local machine in a separate +terminal, leave both terminals open
    • +
    +
    {local}$ ssh -J alice@log1.wynton.ucsf.edu -L 47467:localhost:47467 alice@dev1
    +...
    +[alice@dev1 ~]$ 
    +

    The notebook should now be available at the URL from step 2

    +
    +
    +
    +

    RStudio Server

    + +
    +
    +

    RStudio Server

    +
      +
    • RStudio +server is already available in the CBI module
    • +
    • This allows you to set up a personal RStudio instance that only you +can access
    • +
    • Requires two separate SSH connections to the cluster:
      + +
        +
      • One to launch RStudio Server
      • +
      • One to connect to it
      • +
    • +
    +
    +
    +

    RStudio Server - Step 1

    +
      +
    • Launch your own RStudio Server instance
    • +
    +
    [alice@dev1 ~]$ module load CBI rstudio-server-controller
    +[alice@dev1 ~]$ rsc start
    +alice, your personal RStudio Server 2023.09.1-494 running R 4.3.2 is available on:
    +
    +  <http://127.0.0.1:20612>
    +
    +Importantly, if you are running from a remote machine without direct access
    +to dev1, you need to set up SSH port forwarding first, which you can do by
    +running:
    +
    +  ssh -L 20612:dev1:20612 alice@log1.wynton.ucsf.edu
    +
    +in a second terminal from your local computer.
    +
    +Any R session started times out after being idle for 120 minutes.
    +WARNING: You now have 10 minutes, until 2023-11-15 17:06:50-08:00, to
    +connect and log in to the RStudio Server before everything times out.
    +Your one-time random password for RStudio Server is: y+IWo7rfl7Z7MRCPI3Z4
    +

    Note the password and URL, they will be needed to log in to the +server instance.

    +
    +
    +

    RStudio Server - Step 2

    +
      +
    • Connect to your personal RStudio Server instance from your local +machine in a separate terminal
    • +
    +
    {local}$ ssh -L 20612:dev1:20612 alice@log1.wynton.ucsf.edu
    +alice1@log1.wynton.ucsf.edu:s password: XXXXXXXXXXXXXXXXXXX
    +[alice@log1 ~]$ 
    +
    +
    +

    RStudio Server - Step 3

    +
      +
    • Open RStudio Server in your local web browser
    • +
    • Open the link from step 1
    • +
    • Enter your Wynton user name
    • +
    • Enter the password from step 1
    • +
    +
    +
    +
    +

    How to Get Help

    + +
    +
    +

    Wynton Questions

    +
      +
    • Follow the Wynton question +checklist
    • +
    • Email +
    • +
    • Slack +
        +
      • ucsf-wynton
      • +
      • Sign-up using a UCSF email address
      • +
      • Email support if that does not work
      • +
    • +
    • Zoom office hours every Tuesday at 11-12pm +
        +
      • Zoom URL in the message-of-the-day (MOTD) that you get when you log +into Wynton
      • +
    • +
    +
    +
    +

    Bioinformatics Questions

    + +
    +
    +
    +

    End of Part 2

    + +
    +
    +

    Thank You!

    + +
    +
    +

    Upcoming Data Science Training Program Workshops

    +

    Introduction +to Linear Mixed Effects Models
    +April 25-April 26, 2024 1-3pm PDT

    +

    Single +Cell RNA-Seq Data Analysis
    +April 29-April 30, 2024 9am-4pm PDT

    +

    Single +Cell ATAC-Seq Data Analysis Part 1
    +May 6-May 7, 2024 1-4pm PDT

    +

    Complete +Schedule

    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd b/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd index 5127161..4fbc490 100644 --- a/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd +++ b/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd @@ -16,7 +16,7 @@ output: --- ```{r, setup, include=FALSE} -library(tidyverse) + ``` ## @@ -28,7 +28,7 @@ library(tidyverse) **Natalie Elphick** Bioinformatician I -**Alex Pico (TA)** +**Alex Pico** Bioinformatics Core Director @@ -61,6 +61,7 @@ Bioinformatics Core Director ## Wynton {.small-bullets} - A HPC Linux environment available to all UCSF researchers for free +- Uses the Rocky 8 linux OS - Includes several hundred compute nodes and a large shared storage system ([Cluster specifications](https://wynton.ucsf.edu/hpc/about/specs.html)) - Funded and administered cooperatively by UCSF campus IT and key research groups @@ -136,11 +137,36 @@ echo "{local}$ scp local_file.tsv alice@dt1.wynton.ucsf.edu:~/" dt1 and dt2 + +## Compute Nodes {.small-bullets .big-picture} + +- Can **not** be logged in to directly +- Used to run non-interactive compute job scripts +- The software to run the job script is provided using a container + + +![Compute Jobs](slide_materials/compute_job_workflow.svg) + + + # Storage + +## The File System {.small-bullets} + +- A file system how information is stored and retrieved on a computer + - Consists of files and directories +- A local file system is function of the operating system and only accessible from a single computer +- A shared file system is accessible from multiple computers + + + + + + ## BeeGFS {.small-bullets} -- Wynton uses a *parallel* file system called BeeGFS +- Wynton uses a *parallel* shared file system called BeeGFS - The files are stored as "chunks" spread across many different servers - BeeGFS has multiple services that work together to manage the file system - Storage (stores the chunks) @@ -162,12 +188,11 @@ dt1 and dt2 ## BeeGFS - I/O patterns {.small-bullets} - Anything that requires lots of metadata operations can feel slow - e.g: lots of writes to the same directory and lots of file lookups and directory searches (**conda**) -- Users are strongly encouraged to keep the number of reads and writes to a single directory to a reasonable number -- If using conda, putting the conda application inside a Apptainer (formerly singularity) container will result in better overall file system performance +- Keep the number of reads and writes to a single directory to a reasonable number +- If using conda, putting the conda application inside a Apptainer (formerly singularity) container will result in better performance ## BeeGFS - Tips -- Some general guidelines for optimum use of BeeGFS - Prefer fewer, large files over many small ones - Distribute reading and writing over several directories - Including compute job output and error files @@ -184,6 +209,7 @@ dt1 and dt2 - User home directory - limited to 500 GiB - /wynton/**[group_name]** - User group directory - disk quota varies by group + - Use this directory for any analysis you want to share with your lab - [More information on disk quotas](https://wynton.ucsf.edu/hpc/howto/storage-size.html#file-sizes-and-disk-quotas) To check your group disk quota run: @@ -211,13 +237,22 @@ echo 'beegfs-ctl --getquota --storagepoolid=12 --gid "$(id --group)"' - Gladstone's HIVE storage server is mounted directly to Wynton under **/gladstone** - Only certain HIVE folders are accessible directly on Wynton - Files under **/gladstone** are backed up -- Naming: **/gladstone/[lab]/[share]** +- Naming: **/gladstone/[lab]** + - Directories that are shared between multiple labs can be set up by contacting Gladstone IT - For more information visit the [IT knowledge base page](https://help.gladstone.org/support/solutions/articles/14000033963) +## Storage Advice + +- Always back up anything you store under **/wynton** +- Use **/gladstone** if you have access to it for all of your work since it is automatically backed up +- Use the scratch directories to store temporary files so they do not count against your group or user quotas + # Data Transfer + + ## Secure Copy - scp - Local file to Wynton @@ -252,7 +287,7 @@ echo "{local}$ scp alice@dt1.wynton.ucsf.edu:/path/to/local_file.tsv /destinatio ## Globus -- [Globus](https://wynton.ucsf.edu/hpc/transfers/globus.html) is a non-profit service for moving, syncing, and sharing large amounts of data asynchronously in the background +- [Globus](https://wynton.ucsf.edu/hpc/transfers/globus.html) is a service for moving, syncing, and sharing large amounts of data - Wynton Accounts are not required to transfer data with Globus - Useful for transferring data between institutions @@ -264,12 +299,33 @@ echo "{local}$ scp alice@dt1.wynton.ucsf.edu:/path/to/local_file.tsv /destinatio - Do not use rclone for transfers to Box, follow the [Wynton to UCSF Box](https://wynton.ucsf.edu/hpc/transfers/ucsf-box.html) instructions + + +## Poll 1 + +Which of these can you **not** log in to from your computer? + +1. Login Nodes +2. Development Nodes +3. Data transfer Nodes +4. Compute Nodes + +## Poll 2 + +The **/wynton** directory is backed up on a nightly basis so do not need to back up the data you store here. + +1. True +2. False + + + + # Installing Software ## Basics -- Ensure the software you are trying to install is compatible with Rocky linux (use a container if not) -- Check if the tool is already available in a [module](https://wynton.ucsf.edu/hpc/software/software-modules.html) +- Check if the tool is already available in a [module](https://wynton.ucsf.edu/hpc/software/software-repositories.html#software-repositories) +- Ensure the software you are trying to install is compatible with Rocky 8 linux (use a container if not) - Always install software in a development node - Download a precompiled binary or [install from source](https://wynton.ucsf.edu/hpc/howto/install-from-source.html) @@ -297,10 +353,12 @@ echo '[alice@dev1 ~]$ make' echo '[alice@dev1 ~]$ make install' ``` -## Install Nextflow for Part 2 +## Install Nextflow + +- Scientific workflow system with a community maintained set of [core bioinformatics analysis](https://nf-co.re/) pipelines + - We will cover an example RNA-seq pipeline in part 2 +- These can be configured to use the Wynton compute job submission system -- In part 2, we will run the nextflow rna-seq pipeline -- Run the following to install nextflow: ```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} echo '[alice@dev1 ~]$ cd ~/software' @@ -312,16 +370,25 @@ echo '[alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash' ``` -- Let us know if you run into any errors + # Containers + +## Motivation {.small-bullets} + +- Compute heavy jobs (high RAM, multiple cores) should be run on compute nodes +- Containers allow us to make additional software available to the compute nodes + - Also allows the use of software that might be hard to install on Rocky 8 Linux + - Improves reproducibility + +![Compute Jobs](slide_materials/compute_job_workflow.svg) + + ## Definitions {.small-bullets} - **Virtualization:** When software mimics the functions of physical hardware to run virtual machines - - Work around to use OS specific or legacy software that might be hard to install - - Improves reproducibility - **Containers:** Implements virtualization using an *image* as its base - **Images:** An ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime @@ -329,7 +396,7 @@ echo '[alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash' ## Apptainer {.small-bullets} - Wynton supports [Apptainer](https://wynton.ucsf.edu/hpc/software/apptainer.html) (formerly singularity) containers -- [Docker](https://docs.docker.com/) is a commonly used container creation software, these can be turned into apptainer containers easily +- [Docker](https://docs.docker.com/) is a commonly used image creation software, these can be turned into apptainer image files (.sif) easily - apptainer run - Run predefined script within container @@ -362,7 +429,7 @@ echo ' __ __ ____ _ __ __ __ __ ``` -## Example Container - Hello World +## Example Container - This container has **figlet** installed which creates ASCII art from text input - Try running this command to create your own using *exec* @@ -376,7 +443,8 @@ echo '[alice@dev1 ~]$ apptainer exec hello-world_1.0.sif figlet your_text' - Docker uses Dockerfiles to specify image creation - Preferred by the Gladstone Bioinformatics Core to create new images - In part 2, we will go over how to build custom container images from DockerFiles - - If you want to follow along, [install the docker engine](https://docs.docker.com/engine/install/) following the instructions for your OS + - If you want to follow along, [install the docker engine](https://docs.docker.com/engine/install/) following the instructions for your OS + - Set up a free [DockerHub](https://hub.docker.com/) account to store your images - To see the Dockerfile used to create the hello-world image, run: ```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} @@ -405,8 +473,6 @@ April 29-April 30, 2024 9am-4pm PDT May 6-May 7, 2024 1-4pm PDT - -[Complete Schedule](https://gladstone.org/events) -Click "Data Science Training Program" +[Complete Schedule](https://gladstone.org/events?series=189) diff --git a/working-on-wynton-hpc/Working_on_Wynton_Part_2.Rmd b/working-on-wynton-hpc/Working_on_Wynton_Part_2.Rmd new file mode 100644 index 0000000..341da38 --- /dev/null +++ b/working-on-wynton-hpc/Working_on_Wynton_Part_2.Rmd @@ -0,0 +1,449 @@ +--- +title: "Working on Wynton - Part 2" +author: "Natalie Elphick" +date: "April 16th, 2024" +knit: (function(input, ...) { + rmarkdown::render( + input, + output_dir = "../docs" + ) + }) +output: + revealjs::revealjs_presentation: + theme: simple + highlight: default + css: style.css +--- + +```{r, setup, include=FALSE} + +``` + +## + +
    *Press the ? key for tips on navigating these slides*
    + +## Introductions + +**Natalie Elphick** +Bioinformatician I + +**Alex Pico** +Bioinformatics Core Director + + +## Target Audience +- Prior experience with UNIX command-line + + + +## Part 2: + +1. Custom Containers +2. Submitting Compute Jobs +3. Array Jobs +4. GPU Jobs +5. Running Pipelines +6. Jupyter Notebooks +7. RStudio Server +8. How to get help + + + + +# Custom Containers + +## Motivation {.small-bullets} + +- Compute heavy jobs (high RAM, multiple cores) should be run on compute nodes +- Containers allow us to make additional software available to the compute nodes + - Also allows the use of software that might be hard to install on Rocky 8 Linux + - Improves reproducibility + +![Compute Jobs](slide_materials/compute_job_workflow.svg) + + + + +## Dockerfile Basics + +- Dockerfiles contain instructions to build an image in **layers** +- Layers are added using Dockerfile instruction syntax +- Images are built by navigating to the directory that contains the Dockerfile and running: + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo 'docker build .' +``` + +## Dockerfile Instructions {.small-bullets} +- First instruction is always **FROM** which specifies the base image + - Base images are a starting point with some basics already installed like the OS and build tools, find them on [DockerHub](https://hub.docker.com/) +- **RUN** : Use before running any shell commands +- **SHELL** : Set the shell +- **USER** : Set the user (within the image) +- **CMD** : Set the default instruction to be run by the image +- **COPY** : COPY files into the image + + +See the [Dockerfile documentation](https://docs.docker.com/reference/dockerfile/) for a full list of instructions + +## Example Dockerfile {.code-alt} + +- Click [here](https://www.dropbox.com/scl/fi/mdbefp3h8ahdvxtgjypqo/Dockerfile?rlkey=7d4zd9ge1m3wwszlfy78712ky&dl=1) to download the example Dockerfile +- Open in your preffered text editor + + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +curl -s -L -o Dockerfile 'https://www.dropbox.com/scl/fi/mdbefp3h8ahdvxtgjypqo/Dockerfile?rlkey=7d4zd9ge1m3wwszlfy78712ky&dl=0' +cat Dockerfile +rm Dockerfile +``` + +## Building Example Image + +- Do not run this during the workshop + - It requires a lot of RAM +- On macOS, make sure you have the Docker Desktop App running +- We can provide an additional argument to the **build** command, -t, to set the name of the docker image + - We can add version tags after the name using ":" +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "docker build -t docker_hub_user/seurat-harmony:1.0 ." +``` + + +## Pushing Images to DockerHub {.small-bullets} + +- Make sure you are signed in to your DockerHub account locally (Docker Desktop for macOS) +- The image name must start with your user name + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "docker push docker_hub_user/seurat-harmony:1.0" +``` + +- These can then be "pulled" on to Wynton as apptainer image files (image must be public) +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo "[alice@dev1 ~]$ apptainer pull docker://docker_hub_user/seurat-harmony:1.0" +``` + +## Notes on Building Custom Images {.code-small} + +- Time consuming process and uses a lot of RAM on your local machine +- A good base image can save you a lot of time +- You must run `apt-get update` and `apt-get install` in the same command + - Otherwise you will encounter caching issues +- Remember to use `apt-get install -y` + - You will have no control over the process while it's building + +# Compute Jobs + + +## Submission Script - Basics {.small-bullets .code-alt} + +- [Download](https://www.dropbox.com/scl/fi/fzp33y1ojslw005q8epuz/simple_submission_script.sh?rlkey=xmg3lqec962y3i57a1bkriosx&dl=1) this example job submission script +- Read the full Wynton [job submission guide](https://wynton.ucsf.edu/hpc/scheduler/submit-jobs.html) +- Wynton uses the [Sun Grid Engine](https://web.archive.org/web/20210826212738/https://arc.liv.ac.uk/SGE/howto/howto.html) job scheduler + + + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +curl -s -L -o submission.sh 'https://www.dropbox.com/scl/fi/fzp33y1ojslw005q8epuz/simple_submission_script.sh?rlkey=xmg3lqec962y3i57a1bkriosx&dl=0' +cat submission.sh +rm submission.sh +``` + +## Submission Script - Apptainer {.small-bullets .code-alt} + +- [Download](https://www.dropbox.com/scl/fi/zzl9fnfcoxu3pyrx5ffd1/apptainer_submission_script.sh?rlkey=w05e18ahw4hvbvaucac379za9&dl=1) this example job submission script that uses a container +- Paths that the container needs read/write access to need to be mounted with APPTAINER_BINDPATH + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +curl -s -L -o submission.sh 'https://www.dropbox.com/scl/fi/zzl9fnfcoxu3pyrx5ffd1/apptainer_submission_script.sh?rlkey=w05e18ahw4hvbvaucac379za9&dl=1' +cat submission.sh +rm submission.sh +``` + +## Parallel Processing Jobs {.small-bullets} + +- By default jobs run on a single core +- Multicore jobs must run in a SGE parallel environment (PE) and tell SGE how many cores the job will use +- **Do not use more cores than requested** + + +- There are four parallel environments on Wynton: + - **smp**: for single-host parallel jobs using [Symmetric multiprocessing](https://en.wikipedia.org/wiki/Symmetric_multiprocessing) (SMP) + - **mpi**: for multiple-host parallel jobs based on [MPI parallelization](https://en.wikipedia.org/wiki/Message_Passing_Interface) + - **mpi_onehost**: for single-host parallel jobs based on MPI parallelization + - **mpi-8**: for multi-threaded multi-host jobs based on MPI parallelization + +## Example Parallel Job {.small-bullets .code-alt} + +- The simplest parallel environment on Wynton is **smp**, a single node with *n* cores +- [Download](https://www.dropbox.com/scl/fi/71xo0cioh266pj3uwcdps/smp_submission_script.sh?rlkey=kw7qaz8pip6jveqv317b5swqr&dl=1) this example smp job submission script +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +curl -s -L -o submission.sh 'https://www.dropbox.com/scl/fi/71xo0cioh266pj3uwcdps/smp_submission_script.sh?rlkey=kw7qaz8pip6jveqv317b5swqr&dl=0' +cat submission.sh +rm submission.sh +``` + + +## Array Jobs {.small-bullets .code-alt} + +- This is a good option if the script you want to run operates on discrete sets of data + - e.g. sample or chromosome +- [Download](https://www.dropbox.com/scl/fi/upl71jeny62fxfzkxao1f/array_job_submission_script.sh?rlkey=ggkyjxx8nz400e1t96mif5t34&dl=1) this example array job submission script + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +curl -s -L -o submission.sh 'https://www.dropbox.com/scl/fi/upl71jeny62fxfzkxao1f/array_job_submission_script.sh?rlkey=ggkyjxx8nz400e1t96mif5t34&dl=0' +cat submission.sh +rm submission.sh +``` + +## GPU Jobs {.small-bullets} + +- To run a [GPU job](https://wynton.ucsf.edu/hpc/scheduler/gpu.html), specify **-q gpu.q** (queue) as a GPU queue + - Other GPU queues may be available to you depending on your lab +- It is important to specify the GPU using the **SGE_GPU** variable so that your job uses its assigned GPU + - For CUDA based tools, add **export CUDA_VISIBLE_DEVICES=$SGE_GPU** to your submission script +- GPU jobs must include a runtime request or they will be removed from the queue + + +## Submitting and Querying jobs + +- Use **qsub** to submit jobs +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ qsub job1.sh +Your job 714888 ("job1.sh") has been submitted' +``` + + + + +- Use **qstat** to check the status of your jobs + +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ qstat +job-ID prior name user state submit/start at queue slots ja-task-ID +----------------------------------------------------------------------------------------------------------------- + 714888 0.06532 job1 alice r 03/25/2024 19:54:18 member.q@msg-hmio1 1 + 714889 0.06532 job2 alice r 03/25/2024 19:54:19 member.q@msg-hmio1 1 +' +``` + + +Read the [querying jobs](https://wynton.ucsf.edu/hpc/scheduler/list-jobs.html) Wynton documentation for more information. + + +## Estimating Job Resources + +- Try to estimate the amount of RAM needed using a small test dataset +- Request a little more RAM than you need to avoid having your job cancelled +- Check on jobs you are running for the first time with **qstat -j ** to make sure they are not going over + + +## Poll 3 + +Anything that you can run on a compute node can be run on a development node. + +1. True +2. False + + + +# Running Pipelines + + +## Nextflow RNA-seq {.small-bullets .big-picture} + +- Scientific workflow system with a community maintained set of core bioinformatics [analysis pipelines](https://nf-co.re/) +- The most commonly used one is the [RNA-seq pipeline](https://nf-co.re/rnaseq/3.14.0) + +![RNA-seq](slide_materials/nf-core-rnaseq_metro_map_grey.png) + + +## Example - RNA-seq Pipeline {.small-bullets} + +**Do not run this during the workshop as it will fill up the Wynton SGE queue** + +- Download the [testing script](https://www.dropbox.com/scl/fi/3c9qdmnwg8vw9x517mo05/nextflow_example.sh?rlkey=e9nxbvpcdtdyi5w0y16z9k7bq&dl=0) + - Runs a minimal test on the RNA-seq pipeline +- Download the [config file](https://www.dropbox.com/scl/fi/befhl3z6nipn1fqcxpqth/nextflow.config?rlkey=pd8d9vup6pnvb7bbrmekayn2j&dl=0) + - Configures nextflow to use the SGE job scheduler and sets limits on compute job resources for each process +- Put these in the same directory (do not use your user home directory for this) and run the script in a screen/tmux session +- When not running the test, the **-profile** should be apptainer + + + + + + + +# Jupyter Notebooks + +## Installing Jupyter Notebooks +- The preferred way to install and use [Jupyter notebooks](https://wynton.ucsf.edu/hpc/howto/jupyter.html) on Wynton is though pip, not conda +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo 'python3 -m pip install --user notebook' +``` +- Jupyter notebooks can only be run on development nodes +- See the Wynton [python documentation](https://wynton.ucsf.edu/hpc/howto/python.html) for more info on managing python environments on Wynton + + +## Running Jupyter Notebooks - Step 1 + +- You cannot connect from outside Wynton HPC directly to a development node + - Instead we need to use SSH port forwarding to establish the connection with a local web browser +- Find an available TCP port: +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ module load CBI port4me +[alice@dev1 ~]$ port4me --tool=jupyter +47467' +``` + +Note the port number returned by port4me, you will need this later. + + +## Running Jupyter Notebooks - Step 2 {.code-small} +- Launch Jupyter notebook using the port numer from step 1 +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1]$ jupyter notebook --no-browser --port 47467 +[I 2024-03-20 14:48:45.693 ServerApp] jupyter_lsp | extension was successfully linked. +[I 2024-03-20 14:48:45.698 ServerApp] jupyter_server_terminals | extension was successfully linked. +[I 2024-03-20 14:48:45.703 ServerApp] jupyterlab | extension was successfully linked. +[I 2024-03-20 14:48:45.708 ServerApp] notebook | extension was successfully linked. +[I 2024-03-20 14:48:46.577 ServerApp] notebook_shim | extension was successfully linked. +[I 2024-03-20 14:48:46.666 ServerApp] notebook_shim | extension was successfully loaded. +[I 2024-03-20 14:48:46.668 ServerApp] jupyter_lsp | extension was successfully loaded. +[I 2024-03-20 14:48:46.669 ServerApp] jupyter_server_terminals | extension was successfully loaded. +[I 2024-03-20 14:48:46.675 LabApp] JupyterLab extension loaded from /wynton/home/boblab/alice/.local/lib/python3.11/site-packages/jupyterlab +[I 2024-03-20 14:48:46.675 LabApp] JupyterLab application directory is /wynton/home/boblab/alice/.local/share/jupyter/lab +[I 2024-03-20 14:48:46.677 LabApp] Extension Manager is 'pypi'. +[I 2024-03-20 14:48:46.707 ServerApp] jupyterlab | extension was successfully loaded. +[I 2024-03-20 14:48:46.711 ServerApp] notebook | extension was successfully loaded. +[I 2024-03-20 14:48:46.712 ServerApp] Serving notebooks from local directory: /wynton/home/boblab/alice +[I 2024-03-20 14:48:46.712 ServerApp] Jupyter Server 2.13.0 is running at: +[I 2024-03-20 14:48:46.712 ServerApp] http://localhost:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2 +[I 2024-03-20 14:48:46.712 ServerApp] http://127.0.0.1:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2 +[I 2024-03-20 14:48:46.712 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). +[C 2024-03-20 14:48:46.725 ServerApp] + + To access the server, open this file in a browser: + file:///wynton/home/boblab/alice/.local/share/jupyter/runtime/jpserver-2853162-open.html + Or copy and paste one of these URLs: + http://localhost:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2 + http://127.0.0.1:44214/tree?token=8e37f8d62fca6a1c9b2da429f27df5ebcec706a808c3a8f2' +``` + +## Running Jupyter Notebooks - Step 3 + +- Set up SSH port forwarding on your local machine in a separate terminal, leave both terminals open +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '{local}$ ssh -J alice@log1.wynton.ucsf.edu -L 47467:localhost:47467 alice@dev1 +... +[alice@dev1 ~]$ ' +``` + +The notebook should now be available at the URL from step 2 + + +# RStudio Server + +## RStudio Server +- [RStudio server](https://wynton.ucsf.edu/hpc/howto/rstudio.html) is already available in the CBI module +- This allows you to set up a personal RStudio instance that only you can access +- Requires two separate SSH connections to the cluster:\ + - One to launch RStudio Server + - One to connect to it + + +## RStudio Server - Step 1 {.code-small} + +- Launch your own RStudio Server instance +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '[alice@dev1 ~]$ module load CBI rstudio-server-controller +[alice@dev1 ~]$ rsc start +alice, your personal RStudio Server 2023.09.1-494 running R 4.3.2 is available on: + + + +Importantly, if you are running from a remote machine without direct access +to dev1, you need to set up SSH port forwarding first, which you can do by +running: + + ssh -L 20612:dev1:20612 alice@log1.wynton.ucsf.edu + +in a second terminal from your local computer. + +Any R session started times out after being idle for 120 minutes. +WARNING: You now have 10 minutes, until 2023-11-15 17:06:50-08:00, to +connect and log in to the RStudio Server before everything times out. +Your one-time random password for RStudio Server is: y+IWo7rfl7Z7MRCPI3Z4' +``` + +Note the password and URL, they will be needed to log in to the server instance. + + +## RStudio Server - Step 2 + +- Connect to your personal RStudio Server instance from your local machine in a separate terminal +```{r, engine='bash', eval=TRUE, results='markup',comment=NA, highlight=TRUE, echo=FALSE} +echo '{local}$ ssh -L 20612:dev1:20612 alice@log1.wynton.ucsf.edu +alice1@log1.wynton.ucsf.edu:s password: XXXXXXXXXXXXXXXXXXX +[alice@log1 ~]$ ' +``` + +## RStudio Server - Step 3 +- Open RStudio Server in your local web browser +- Open the link from step 1 +- Enter your Wynton user name +- Enter the password from step 1 + +# How to Get Help + +## Wynton Questions + +- Follow the Wynton [question checklist](https://wynton.ucsf.edu/hpc/support/index.html) +- Email + - [support@wynton.ucsf.edu](mailto:support@wynton.ucsf.edu) +- Slack + - [ucsf-wynton](https://join.slack.com/t/ucsf-wynton/signup) + - Sign-up using a UCSF email address + - Email support if that does not work +- Zoom office hours every **Tuesday at 11-12pm** + - Zoom URL in the message-of-the-day (MOTD) that you get when you log into Wynton + + + +## Bioinformatics Questions + +- Email + - [bioinformatics@gladstone.ucsf.edu](mailto:bioinformatics@gladstone.ucsf.edu) +- Slack channel #questions-about-bioinformatics + - Contact us at the email above to be added to the channel + + + +# End of Part 2 + +## Thank You! + +- Please take some time to fill out the workshop survey: +[https://www.surveymonkey.com/r/F75J6VZ](https://www.surveymonkey.com/r/F75J6VZ) + + +## Upcoming Data Science Training Program Workshops + + +[Introduction to Linear Mixed Effects Models](https://gladstone.org/events/introduction-linear-mixed-effects-models) +April 25-April 26, 2024 1-3pm PDT + +[Single Cell RNA-Seq Data Analysis](https://gladstone.org/events/single-cell-rna-seq-data-analysis) +April 29-April 30, 2024 9am-4pm PDT + +[Single Cell ATAC-Seq Data Analysis Part 1](https://gladstone.org/events/single-cell-atac-seq-data-analysis-part-1-1) +May 6-May 7, 2024 1-4pm PDT + + +[Complete Schedule](https://gladstone.org/events?series=189) + + + diff --git a/working-on-wynton-hpc/slide_materials/compute_job_workflow.svg b/working-on-wynton-hpc/slide_materials/compute_job_workflow.svg new file mode 100644 index 0000000..27614ec --- /dev/null +++ b/working-on-wynton-hpc/slide_materials/compute_job_workflow.svg @@ -0,0 +1,3 @@ + + +
    User
    Compute
    Node
    Submit
    Job
    Query
    Job Status
    User
    Job Script
    Container
    \ No newline at end of file diff --git a/working-on-wynton-hpc/slide_materials/nf-core-rnaseq_metro_map_grey.png b/working-on-wynton-hpc/slide_materials/nf-core-rnaseq_metro_map_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..0dbf23f813a973ad93dd85994bf5b497f4fdd8c0 GIT binary patch literal 306439 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 z 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

    6w1U>n`%7H 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

    qh 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 Rv|N&fUzpEJ_}q5ye*t&(T5JFS literal 0 HcmV?d00001 diff --git a/working-on-wynton-hpc/style.css b/working-on-wynton-hpc/style.css index ae62ab5..3963e02 100644 --- a/working-on-wynton-hpc/style.css +++ b/working-on-wynton-hpc/style.css @@ -12,17 +12,21 @@ .reveal code { background-color: #1e1e1eef; /* Dark background for code chunks */ - color: white !important; /* White text for code */ + color: white; /* White text for code */ font-size: 1.2em; line-height: 1.2; } -.reveal code::selection { - background-color: #d97306 !important; /* Dark magenta background for selected text */ +.code-small code { + background-color: #1e1e1eef; /* Dark background for code chunks */ + color: white; /* White text for code */ + font-size: 1em; + line-height: 1; } - - +.reveal code::selection { + background-color: #d97306 !important; /* Dark orange background for selected text */ +} /* Specific styles for code output: background */ @@ -30,11 +34,17 @@ background-color: black; /* Black background for code outputs */ } -/* Style for text selection within code outputs */ -.reveal pre code.output::selection { - background-color: #9c0366 !important; /* Dark magenta background for selected text in outputs */ +/* Custom class for code alt display */ +.code-alt code { + background-color: #ffecd0ac; /* Dark background for code outputs */ + max-height: 400px !important; + font-family: 'Menlo', sans-serif; + font-size: 0.8em; + color: rgb(76, 76, 76) } + + /* Code output text color */ .reveal pre code.output { color: white; @@ -63,32 +73,34 @@ pre, code, kbd, samp { white-space: pre !important; overflow-x: auto !important; } + +/* Change the font family used for all text except code */ +.reveal p, .reveal li, .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { + font-family: "Helvetica", sans-serif; +} + +.reveal h3 { + color: black; + font-size: 0.7em; +} /* Bold slide titles and change color */ .reveal h2 { font-weight: bold !important; color: #9c0366; + font-size: 1.3em; } /* Bold slide titles and change color */ .reveal h1 { font-weight: bold !important; color: #9c0366; + font-size: 2.0em; } + .reveal .slides>section:first-child h2 { - color: #333; + color: black; font-weight: normal !important; - } -/* Custom slide title */ -.my-title-slide h1 { - font-weight: bold; - color: #9c0366; - } -.my-title-slide h2 { -color: #333; -font-weight: normal !important; } - - .reveal .slides>section:first-child h1 { font-weight: bold !important; color: #9c0366; @@ -107,12 +119,13 @@ font-weight: normal !important; .reveal ul ul { font-size: 0.75em; /* Smaller font size */ - margin-top: 5px !important; margin-bottom: 5px !important; } .reveal ol { display: block; - margin-bottom: 20px !important; + margin-bottom: 20px; + margin-left: 75px; + margin-right: 50px } @@ -147,16 +160,16 @@ small { } .big-picture img{ - max-width: 70%; - border: 1px solid black !important; + max-width: 95%; + } -/* Chage link color to purple */ +/* Chage link color to sky blue */ .reveal a { - color: #0c74dc !important; + color: #0c74dc; } -/* Change link color to purple on hover */ +/* Change link color to magenta on hover */ .reveal a:hover { color: #9c0366 !important; } From 86a7de10771be718faa4f8cdf41206a580f17008 Mon Sep 17 00:00:00 2001 From: Natalie Elphick Date: Wed, 27 Mar 2024 13:48:44 -0700 Subject: [PATCH 3/3] add a command to check the nextflow install --- docs/Working_on_Wynton_Part_1.html | 3 ++- working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/Working_on_Wynton_Part_1.html b/docs/Working_on_Wynton_Part_1.html index b9cdf5a..2f805ff 100644 --- a/docs/Working_on_Wynton_Part_1.html +++ b/docs/Working_on_Wynton_Part_1.html @@ -1008,7 +1008,8 @@ system [alice@dev1 ~]$ exit [alice@log1 ~]$ ssh dev1 [alice@dev1 ~]$ sdk install java 17.0.6-tem -[alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash +[alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash +[alice@dev1 ~]$ nextflow -v

    diff --git a/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd b/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd index 4fbc490..88b95f1 100644 --- a/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd +++ b/working-on-wynton-hpc/Working_on_Wynton_Part_1.Rmd @@ -367,6 +367,7 @@ echo '[alice@dev1 ~]$ exit' echo '[alice@log1 ~]$ ssh dev1' echo '[alice@dev1 ~]$ sdk install java 17.0.6-tem' echo '[alice@dev1 ~]$ wget -qO- https://get.nextflow.io | bash' +echo '[alice@dev1 ~]$ nextflow -v' ```