Skip to content

Commit

Permalink
small improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
mictes committed Apr 29, 2024
1 parent 6009c1b commit dd43a50
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 3 deletions.
14 changes: 14 additions & 0 deletions docs/exercises.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,20 @@ To complete the course, you/your team has to accomplish at least 3 additional mi

- <a href="../slides/06_Milestones_Assignment.html" target="_blank">Assignment</a>

Alongside concise instructions for the tasks below, the slides also provide further information about the assignment and submission process. We will take a brief look at some of these tasks at the end of Day 2. Please feel free to post any questions in the Slack channel at any time.

| Task | Difficulty |
|--------------------------------------------------|------------|
| Deploy app online | 2 |
| DataTable extensions (download csv) | 2 |
| subset dataset | 2 |
| shinyWidgets : Extend widgets available in shiny | 2 |
| Shiny Dashboard layout elements | 3 |
| Add favicon | 1.5 |
| Interactive help function | 3 |
| Plot statistics | 3 |
| Password protection with shinyauthr | 3 |


## Solutions

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Discover the versatility of R Shiny and explore real-world examples that show ho
**Site**: Irchel campus (UZH)
**Tutors**: Michael Teske & Jonas Schmid, Institute of Experimental Immunology, University of Zurich

1 ECTS point will be awarded upon course completion
1 ECTS point will be awarded upon course completion.

## Course outline

Expand Down
47 changes: 47 additions & 0 deletions site/exercises/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,53 @@ <h2 id="assignment">Assignment</h2>
<ul>
<li><a href="../slides/06_Milestones_Assignment.html" target="_blank">Assignment</a></li>
</ul>
<p>Alongside concise instructions for the tasks below, the slides also provide further information about the assignment and submission process. We will take a brief look at some of these tasks at the end of Day 2. Please feel free to post any questions in the Slack channel at any time.</p>
<table>
<thead>
<tr>
<th>Task</th>
<th>Difficulty</th>
</tr>
</thead>
<tbody>
<tr>
<td>Deploy app online</td>
<td>2</td>
</tr>
<tr>
<td>DataTable extensions (download csv)</td>
<td>2</td>
</tr>
<tr>
<td>subset dataset</td>
<td>2</td>
</tr>
<tr>
<td>shinyWidgets : Extend widgets available in shiny</td>
<td>2</td>
</tr>
<tr>
<td>Shiny Dashboard layout elements</td>
<td>3</td>
</tr>
<tr>
<td>Add favicon</td>
<td>1.5</td>
</tr>
<tr>
<td>Interactive help function</td>
<td>3</td>
</tr>
<tr>
<td>Plot statistics</td>
<td>3</td>
</tr>
<tr>
<td>Password protection with shinyauthr</td>
<td>3</td>
</tr>
</tbody>
</table>
<h2 id="solutions">Solutions</h2>
<p>Below you can find the complete solutions for day 1/day 2. Feel free to use them if you want to start over.</p>
<h3 id="day-1_1">Day 1</h3>
Expand Down
2 changes: 1 addition & 1 deletion site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,7 @@ <h2 id="tutorial-description">Tutorial description</h2>
<p><strong>Course Dates</strong>: April 8 (1-4 pm) &amp; 11 (2-5 pm) 2024<br />
<strong>Site</strong>: Irchel campus (UZH)<br />
<strong>Tutors</strong>: Michael Teske &amp; Jonas Schmid, Institute of Experimental Immunology, University of Zurich</p>
<p>1 ECTS point will be awarded upon course completion</p>
<p>1 ECTS point will be awarded upon course completion.</p>
<h2 id="course-outline">Course outline</h2>
<p>Day 1:</p>
<ul>
Expand Down
2 changes: 1 addition & 1 deletion site/search/search_index.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Overview","text":""},{"location":"#interactive-data-visualization-with-r-shiny-for-life-sciences","title":"Interactive Data Visualization with R Shiny for Life Sciences","text":"<p>This repository houses the slides and training materials for a two-day R Shiny tutorial, conducted for the Zurich Ph.D. Program in Molecular Life Sciences (joint program of the University of Zurich and ETH Zurich) in April 2024. The content covers basic to advanced topics and is ideal for anyone looking to improve their data visualisation skills with R Shiny.</p>"},{"location":"#tutorial-description","title":"Tutorial description","text":"<p>Discover the versatility of R Shiny and explore real-world examples that show how it can be used to efficiently visualise and share scientific data. Learn the basic concepts of R Shiny and create your first R Shiny application from scratch, guided by step-by-step instructions, choosing from several flavours what best suits your needs. Create a dashboard and master interactive elements such as downloading plots, selecting points and zooming into plots. Complete a mini-project with peers to customise your app with advanced widgets, layouts or statistical functions. In addition we will briefly dive into the basics of web development to customise your application beyond the standard options, add a help function and explore methods for sharing and hosting your Shiny apps.</p> <p>Course Dates: April 8 (1-4 pm) &amp; 11 (2-5 pm) 2024 Site: Irchel campus (UZH) Tutors: Michael Teske &amp; Jonas Schmid, Institute of Experimental Immunology, University of Zurich</p> <p>1 ECTS point will be awarded upon course completion</p>"},{"location":"#course-outline","title":"Course outline","text":"<p>Day 1:</p> <ul> <li>Introduction to R Shiny, first app</li> <li>Quick review of ggplot2</li> <li>Exploring Widgets</li> <li>Creating a dashboard</li> </ul> <p>Day 2:</p> <ul> <li>Implementing interactive plot functions</li> <li>Advanced R Shiny customization</li> <li>Deploying Shiny apps</li> </ul> <p>Assignment:</p> <p>Mini-project, further customisation of the app with advanced elements and functions (completion of milestones, group work possible) - Workload: ca. 20 h</p>"},{"location":"#requirements","title":"Requirements","text":"<ul> <li>Basic R skills<ul> <li>Basic understanding of R syntax</li> <li>Familiarity with installing and loading packages</li> <li>Working with data frames</li> <li>Creating plots (ggplot2)</li> </ul> </li> <li>Laptop with recent version of R Studio and access to UZH/eduroam WiFi</li> <li>Full participation in all sessions</li> <li>Completion of mini-project assignment within 10 days after the tutorial</li> </ul> <p>Further details will be provided to the participants shortly before the course starts, and additional information will be posted in the dedicated Slack channel.</p>"},{"location":"example_app/","title":"Example app","text":"<p>The aim of the course is to create something similar to this example app in your own flavour. </p> <p>The app uses the Iris dataset and provides a violin plot with customisable point sizes via a slider. The iris species displayed can be selected and ordered by drag-and-drop and significance levels are optionally shown. The plot can be downloaded as a PDF file. It is possible to select an area of the plot, with details of the selected points displayed in a table below. The contents of the table can be downloaded as a csv file, e.g. for further processing in MS Excel. A double-click zooms into the selected area. In addition, a help button is available to guide the user through the app's functions.</p> <p>You can view the app here: https://mictes.shinyapps.io/tutorial/</p> <p>Source code download:</p> <p>tutorial_app.R</p> <p></p>"},{"location":"exercises/","title":"Exercises","text":""},{"location":"exercises/#milestones","title":"Milestones","text":"<p>These coding studios will guide you through structured tasks in the development of your R Shiny app. With example code provided, you can choose from several options at multiple steps, enabling you to create a custom-flavored R Shiny app tailored specifically to your needs.</p>"},{"location":"exercises/#day-1","title":"Day 1","text":"<ul> <li>Calculator draft R script</li> <li>Coding studio day 1</li> </ul>"},{"location":"exercises/#day-2","title":"Day 2","text":"<ul> <li>Coding studio day 2</li> </ul>"},{"location":"exercises/#assignment","title":"Assignment","text":"<p>To complete the course, you/your team has to accomplish at least 3 additional milestones as part of an assignment.</p> <ul> <li>Assignment</li> </ul>"},{"location":"exercises/#solutions","title":"Solutions","text":"<p>Below you can find the complete solutions for day 1/day 2. Feel free to use them if you want to start over.</p>"},{"location":"exercises/#day-1_1","title":"Day 1","text":"<ul> <li>Calculator</li> <li>App Day 1</li> </ul>"},{"location":"exercises/#day-2_1","title":"Day 2","text":"<ul> <li>App Day 2</li> </ul>"},{"location":"lectures/","title":"Lectures","text":"<p>Hints: press <code>m</code> to open the menu/table of contents, <code>f</code> for fullscreen mode (<code>Esc</code> to exit fullscreen) and <code>Ctrl</code>/<code>Option</code> + click to zoom in. Use <code>q</code> for the laser-pointer and <code>t</code> for starting countdowns.</p>"},{"location":"lectures/#lesson-slides","title":"Lesson Slides","text":"<p>These slides thoroughly introduce fundamental concepts in R Shiny, covering server/UI interactions, widgets, reactive programming, and more. They also provide an overview of creating visually appealing plots with ggplot2, complemented with practical examples. Additionally, we explore the standard web technologies utilised by R Shiny and demonstrate how to use CSS stylesheets to enhance our apps beyond standard options.</p>"},{"location":"lectures/#day-1","title":"Day 1","text":"<ul> <li>Lesson 1: Introduction</li> <li>Lesson 2: ggplot2 recap</li> </ul>"},{"location":"lectures/#day-2","title":"Day 2","text":"<ul> <li>Lesson 3: Webdevelopment adventure</li> </ul>"},{"location":"resources/","title":"Resources","text":""},{"location":"resources/#datasets","title":"Datasets","text":""},{"location":"resources/#ruhland-et-al-2016","title":"Ruhland et al., 2016","text":"<p>DESeq2 results of RNA-seq data comparing ETOH- (wild type) and TAM-treated (senescent, conditionally overexpressed cell cycle inhibitor p27) mouse skin fibroblasts. You can use this dataset if you want to create an app with a volcano plot.</p> <p>Ruhland, M. K. et al. Stromal senescence establishes an immunosuppressive microenvironment that drives tumorigenesis. Nat. Commun. 7:11762 doi: 10.1038/ncomms11762 (2016).</p> <p>Ruhland2016.csv</p>"},{"location":"resources/#cheatsheets-examples","title":"Cheatsheets &amp; Examples","text":"<ul> <li>R Shiny Cheatsheet</li> <li>R Shiny Widget Gallery</li> <li> <p>R Shiny Gallery</p> </li> <li> <p>ggplo2 Cheatsheet</p> </li> <li> <p>R Graph Gallery</p> </li> <li> <p>shinyDashboard reference</p> </li> </ul>"},{"location":"resources/#further-reading","title":"Further Reading","text":"<ul> <li>R Shiny Get Started</li> <li>Video: R Tutorial: Reactivity 101</li> <li>How to understand reactivity in R</li> <li> <p>Video: Shiny Modules in 100 Seconds</p> </li> <li> <p>Introduction to ggplot2</p> </li> <li> <p>Video: ggplot2 explained in 5 minutes!</p> </li> <li> <p>w3schools: CSS</p> </li> </ul>"},{"location":"resources/#misc","title":"Misc","text":"<ul> <li> <p>k-means reactlog</p> </li> <li> <p>Tips &amp; Tricks Day 1</p> </li> </ul>"}]}
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Overview","text":""},{"location":"#interactive-data-visualization-with-r-shiny-for-life-sciences","title":"Interactive Data Visualization with R Shiny for Life Sciences","text":"<p>This repository houses the slides and training materials for a two-day R Shiny tutorial, conducted for the Zurich Ph.D. Program in Molecular Life Sciences (joint program of the University of Zurich and ETH Zurich) in April 2024. The content covers basic to advanced topics and is ideal for anyone looking to improve their data visualisation skills with R Shiny.</p>"},{"location":"#tutorial-description","title":"Tutorial description","text":"<p>Discover the versatility of R Shiny and explore real-world examples that show how it can be used to efficiently visualise and share scientific data. Learn the basic concepts of R Shiny and create your first R Shiny application from scratch, guided by step-by-step instructions, choosing from several flavours what best suits your needs. Create a dashboard and master interactive elements such as downloading plots, selecting points and zooming into plots. Complete a mini-project with peers to customise your app with advanced widgets, layouts or statistical functions. In addition we will briefly dive into the basics of web development to customise your application beyond the standard options, add a help function and explore methods for sharing and hosting your Shiny apps.</p> <p>Course Dates: April 8 (1-4 pm) &amp; 11 (2-5 pm) 2024 Site: Irchel campus (UZH) Tutors: Michael Teske &amp; Jonas Schmid, Institute of Experimental Immunology, University of Zurich</p> <p>1 ECTS point will be awarded upon course completion.</p>"},{"location":"#course-outline","title":"Course outline","text":"<p>Day 1:</p> <ul> <li>Introduction to R Shiny, first app</li> <li>Quick review of ggplot2</li> <li>Exploring Widgets</li> <li>Creating a dashboard</li> </ul> <p>Day 2:</p> <ul> <li>Implementing interactive plot functions</li> <li>Advanced R Shiny customization</li> <li>Deploying Shiny apps</li> </ul> <p>Assignment:</p> <p>Mini-project, further customisation of the app with advanced elements and functions (completion of milestones, group work possible) - Workload: ca. 20 h</p>"},{"location":"#requirements","title":"Requirements","text":"<ul> <li>Basic R skills<ul> <li>Basic understanding of R syntax</li> <li>Familiarity with installing and loading packages</li> <li>Working with data frames</li> <li>Creating plots (ggplot2)</li> </ul> </li> <li>Laptop with recent version of R Studio and access to UZH/eduroam WiFi</li> <li>Full participation in all sessions</li> <li>Completion of mini-project assignment within 10 days after the tutorial</li> </ul> <p>Further details will be provided to the participants shortly before the course starts, and additional information will be posted in the dedicated Slack channel.</p>"},{"location":"example_app/","title":"Example app","text":"<p>The aim of the course is to create something similar to this example app in your own flavour. </p> <p>The app uses the Iris dataset and provides a violin plot with customisable point sizes via a slider. The iris species displayed can be selected and ordered by drag-and-drop and significance levels are optionally shown. The plot can be downloaded as a PDF file. It is possible to select an area of the plot, with details of the selected points displayed in a table below. The contents of the table can be downloaded as a csv file, e.g. for further processing in MS Excel. A double-click zooms into the selected area. In addition, a help button is available to guide the user through the app's functions.</p> <p>You can view the app here: https://mictes.shinyapps.io/tutorial/</p> <p>Source code download:</p> <p>tutorial_app.R</p> <p></p>"},{"location":"exercises/","title":"Exercises","text":""},{"location":"exercises/#milestones","title":"Milestones","text":"<p>These coding studios will guide you through structured tasks in the development of your R Shiny app. With example code provided, you can choose from several options at multiple steps, enabling you to create a custom-flavored R Shiny app tailored specifically to your needs.</p>"},{"location":"exercises/#day-1","title":"Day 1","text":"<ul> <li>Calculator draft R script</li> <li>Coding studio day 1</li> </ul>"},{"location":"exercises/#day-2","title":"Day 2","text":"<ul> <li>Coding studio day 2</li> </ul>"},{"location":"exercises/#assignment","title":"Assignment","text":"<p>To complete the course, you/your team has to accomplish at least 3 additional milestones as part of an assignment.</p> <ul> <li>Assignment</li> </ul> <p>Alongside concise instructions for the tasks below, the slides also provide further information about the assignment and submission process. We will take a brief look at some of these tasks at the end of Day 2. Please feel free to post any questions in the Slack channel at any time.</p> Task Difficulty Deploy app online 2 DataTable extensions (download csv) 2 subset dataset 2 shinyWidgets : Extend widgets available in shiny 2 Shiny Dashboard layout elements 3 Add favicon 1.5 Interactive help function 3 Plot statistics 3 Password protection with shinyauthr 3"},{"location":"exercises/#solutions","title":"Solutions","text":"<p>Below you can find the complete solutions for day 1/day 2. Feel free to use them if you want to start over.</p>"},{"location":"exercises/#day-1_1","title":"Day 1","text":"<ul> <li>Calculator</li> <li>App Day 1</li> </ul>"},{"location":"exercises/#day-2_1","title":"Day 2","text":"<ul> <li>App Day 2</li> </ul>"},{"location":"lectures/","title":"Lectures","text":"<p>Hints: press <code>m</code> to open the menu/table of contents, <code>f</code> for fullscreen mode (<code>Esc</code> to exit fullscreen) and <code>Ctrl</code>/<code>Option</code> + click to zoom in. Use <code>q</code> for the laser-pointer and <code>t</code> for starting countdowns.</p>"},{"location":"lectures/#lesson-slides","title":"Lesson Slides","text":"<p>These slides thoroughly introduce fundamental concepts in R Shiny, covering server/UI interactions, widgets, reactive programming, and more. They also provide an overview of creating visually appealing plots with ggplot2, complemented with practical examples. Additionally, we explore the standard web technologies utilised by R Shiny and demonstrate how to use CSS stylesheets to enhance our apps beyond standard options.</p>"},{"location":"lectures/#day-1","title":"Day 1","text":"<ul> <li>Lesson 1: Introduction</li> <li>Lesson 2: ggplot2 recap</li> </ul>"},{"location":"lectures/#day-2","title":"Day 2","text":"<ul> <li>Lesson 3: Webdevelopment adventure</li> </ul>"},{"location":"resources/","title":"Resources","text":""},{"location":"resources/#datasets","title":"Datasets","text":""},{"location":"resources/#ruhland-et-al-2016","title":"Ruhland et al., 2016","text":"<p>DESeq2 results of RNA-seq data comparing ETOH- (wild type) and TAM-treated (senescent, conditionally overexpressed cell cycle inhibitor p27) mouse skin fibroblasts. You can use this dataset if you want to create an app with a volcano plot.</p> <p>Ruhland, M. K. et al. Stromal senescence establishes an immunosuppressive microenvironment that drives tumorigenesis. Nat. Commun. 7:11762 doi: 10.1038/ncomms11762 (2016).</p> <p>Ruhland2016.csv</p>"},{"location":"resources/#cheatsheets-examples","title":"Cheatsheets &amp; Examples","text":"<ul> <li>R Shiny Cheatsheet</li> <li>R Shiny Widget Gallery</li> <li> <p>R Shiny Gallery</p> </li> <li> <p>ggplo2 Cheatsheet</p> </li> <li> <p>R Graph Gallery</p> </li> <li> <p>shinyDashboard reference</p> </li> </ul>"},{"location":"resources/#further-reading","title":"Further Reading","text":"<ul> <li>R Shiny Get Started</li> <li>Video: R Tutorial: Reactivity 101</li> <li>How to understand reactivity in R</li> <li> <p>Video: Shiny Modules in 100 Seconds</p> </li> <li> <p>Introduction to ggplot2</p> </li> <li> <p>Video: ggplot2 explained in 5 minutes!</p> </li> <li> <p>w3schools: CSS</p> </li> </ul>"},{"location":"resources/#misc","title":"Misc","text":"<ul> <li> <p>k-means reactlog</p> </li> <li> <p>Tips &amp; Tricks Day 1</p> </li> </ul>"}]}

0 comments on commit dd43a50

Please sign in to comment.