Last updated: 2025-01-06

Checks: 2 0

Knit directory: analysis-user-group/

This reproducible R Markdown analysis was created with workflowr (version 1.7.1). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 451a21f. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .DS_Store
    Ignored:    .Rproj.user/
    Ignored:    analysis/.DS_Store

Unstaged changes:
    Modified:   workflow.R

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/0_start.Rmd) and HTML (docs/0_start.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd 451a21f DrThomasOneil 2025-01-06 Initial Deployment
Rmd 2eeb8dc DrThomasOneil 2024-12-26 first draft

This 10-session workshop series is designed to introduce users to R programming with a focus on bioinformatics workflows and reproducibility. It emphasizes the mindset shift required to transition from manual tools like Excel to programmatic data analysis.

Session 0: What Is Programming? Shifting Mindsets

Goal:
Introduce programming concepts and the mindset behind programmatic workflows.
- What is programming and why use R?
- Moving from manual Excel edits to reproducible code.
- Working with directories and file paths.
- Scripts vs manual edits – automating tasks.

Practice:
- Navigating directories (getwd(), setwd()).
- Creating folders and listing files.

Go to Session →

Session 1: Getting Started with R and RStudio

Goal: Set up R and RStudio, and get familiar with the interface.

Practice: - Create and save an R script. - Install and load a package (e.g., tidyverse).


Session 2: Data Types and Structures

Goal: Learn about data types and structures in R.

Practice: - Load flow cytometry data and explore structure. - Create and index vectors and data frames.


Session 3: Data Manipulation with dplyr

Goal: Introduce dplyr for filtering, mutating, and summarizing data.

Practice: - Calculate proportions for CD4/CD8 populations. - Add calculated columns for analysis.


Session 4: Basic Programming and Control Structures

Goal: Understand programming logic for automating tasks.

Practice: - Write functions to calculate percentages dynamically. - Automate filtering tasks.


Session 5: Visualization with ggplot2 – Part 1

Goal: Create and customize visualizations.

Practice: - Visualize CD4 vs CD8 proportions. - Add colors and themes.


Session 6: Advanced Visualization with ggplot2 – Part 2

Goal: Learn advanced visualization techniques.

Practice: - Create faceted boxplots for subsets. - Export plots for reports.


Session 7: Statistical Analysis

Goal: Understand descriptive and inferential statistics.

Practice: - Test differences in CD4 proportions. - Perform correlation analysis.


Session 8: Reproducible Reports with RMarkdown

Goal: Build dynamic and shareable reports.

Practice: - Create a report summarizing flow cytometry data. - Embed visualizations and tables.


Session 9: Mini Project – Putting It All Together

Goal: Apply skills to a complete workflow.

Practice: - Load and clean data. - Summarize and visualize trends. - Run tests and compile everything into a report.


Session 10: Troubleshooting and Workflow Design

Goal: Teach debugging strategies and workflow optimization.

Practice: - Debug a script with errors. - Restructure code for reusability.


Final Thoughts

This series is designed to equip participants with both conceptual and practical skills to confidently approach programming and data analysis. It emphasizes reproducibility, scalability, and structured workflows, preparing learners for real-world bioinformatics challenges.

LS0tCnRpdGxlOiAiR2V0dGluZyBTdGFydGVkIGluIFIgKDIwMjUpIgphdXRob3I6ICJUaG9tYXMgTydOZWlsIgpvdXRwdXQ6CiAgd29ya2Zsb3dyOjp3Zmxvd19odG1sOgogICAgdG9jOiBubwotLS0KClRoaXMgMTAtc2Vzc2lvbiB3b3Jrc2hvcCBzZXJpZXMgaXMgZGVzaWduZWQgdG8gaW50cm9kdWNlIHVzZXJzIHRvIFIgcHJvZ3JhbW1pbmcgd2l0aCBhIGZvY3VzIG9uIGJpb2luZm9ybWF0aWNzIHdvcmtmbG93cyBhbmQgcmVwcm9kdWNpYmlsaXR5LiBJdCBlbXBoYXNpemVzIHRoZSBtaW5kc2V0IHNoaWZ0IHJlcXVpcmVkIHRvIHRyYW5zaXRpb24gZnJvbSBtYW51YWwgdG9vbHMgbGlrZSBFeGNlbCB0byBwcm9ncmFtbWF0aWMgZGF0YSBhbmFseXNpcy4KCjx3aW1yPgoKIyMgKipTZXNzaW9uIDA6IFdoYXQgSXMgUHJvZ3JhbW1pbmc/IFNoaWZ0aW5nIE1pbmRzZXRzKioKCjxkaXYgY2xhc3M9ImhpbnQtZ29hbHMiPgoqKkdvYWw6KiogIApJbnRyb2R1Y2UgcHJvZ3JhbW1pbmcgY29uY2VwdHMgYW5kIHRoZSBtaW5kc2V0IGJlaGluZCBwcm9ncmFtbWF0aWMgd29ya2Zsb3dzLiAgCi0gV2hhdCBpcyBwcm9ncmFtbWluZyBhbmQgd2h5IHVzZSBSPyAgCi0gTW92aW5nIGZyb20gbWFudWFsIEV4Y2VsIGVkaXRzIHRvIHJlcHJvZHVjaWJsZSBjb2RlLiAgCi0gV29ya2luZyB3aXRoIGRpcmVjdG9yaWVzIGFuZCBmaWxlIHBhdGhzLiAgCi0gU2NyaXB0cyB2cyBtYW51YWwgZWRpdHMg4oCTIGF1dG9tYXRpbmcgdGFza3MuICAKPC9kaXY+Cgo8ZGl2IGNsYXNzPSJoaW50LXByYWN0aWNlIj4KKipQcmFjdGljZToqKiAgCi0gTmF2aWdhdGluZyBkaXJlY3RvcmllcyAoYGdldHdkKClgLCBgc2V0d2QoKWApLiAgCi0gQ3JlYXRpbmcgZm9sZGVycyBhbmQgbGlzdGluZyBmaWxlcy4gIAo8L2Rpdj4KCltHbyB0byBTZXNzaW9uIOKGkl0oKQoKPHdpbXI+CgojIyAqKlNlc3Npb24gMTogR2V0dGluZyBTdGFydGVkIHdpdGggUiBhbmQgUlN0dWRpbyoqCioqR29hbDoqKiBTZXQgdXAgUiBhbmQgUlN0dWRpbywgYW5kIGdldCBmYW1pbGlhciB3aXRoIHRoZSBpbnRlcmZhY2UuCgotIEluc3RhbGxpbmcgUiBhbmQgUlN0dWRpby4KLSBFeHBsb3JpbmcgdGhlIGludGVyZmFjZSDigJMgQ29uc29sZSwgRW52aXJvbm1lbnQsIFNjcmlwdHMuCi0gU2V0dGluZyB1cCBhIHByb2plY3QuCi0gSW5zdGFsbGluZyBhbmQgbG9hZGluZyBwYWNrYWdlcy4KCioqUHJhY3RpY2U6KioKLSBDcmVhdGUgYW5kIHNhdmUgYW4gUiBzY3JpcHQuCi0gSW5zdGFsbCBhbmQgbG9hZCBhIHBhY2thZ2UgKGUuZy4sIGB0aWR5dmVyc2VgKS4KCi0tLQoKIyMgKipTZXNzaW9uIDI6IERhdGEgVHlwZXMgYW5kIFN0cnVjdHVyZXMqKgoqKkdvYWw6KiogTGVhcm4gYWJvdXQgZGF0YSB0eXBlcyBhbmQgc3RydWN0dXJlcyBpbiBSLgoKLSBCYXNpYyBkYXRhIHR5cGVzOiBudW1lcmljLCBjaGFyYWN0ZXIsIGxvZ2ljYWwuCi0gRGF0YSBzdHJ1Y3R1cmVzOiB2ZWN0b3JzLCBtYXRyaWNlcywgZGF0YSBmcmFtZXMsIGxpc3RzLgotIEltcG9ydGluZyBkYXRhIChFeGNlbCBhbmQgQ1NWIGZpbGVzKS4KLSBWaWV3aW5nIGFuZCBzdW1tYXJpemluZyBkYXRhLgoKKipQcmFjdGljZToqKgotIExvYWQgZmxvdyBjeXRvbWV0cnkgZGF0YSBhbmQgZXhwbG9yZSBzdHJ1Y3R1cmUuCi0gQ3JlYXRlIGFuZCBpbmRleCB2ZWN0b3JzIGFuZCBkYXRhIGZyYW1lcy4KCi0tLQoKIyMgKipTZXNzaW9uIDM6IERhdGEgTWFuaXB1bGF0aW9uIHdpdGggYGRwbHlyYCoqCioqR29hbDoqKiBJbnRyb2R1Y2UgYGRwbHlyYCBmb3IgZmlsdGVyaW5nLCBtdXRhdGluZywgYW5kIHN1bW1hcml6aW5nIGRhdGEuCgotIEZpbHRlcmluZyByb3dzIChgZmlsdGVyKClgKSwgc2VsZWN0aW5nIGNvbHVtbnMgKGBzZWxlY3QoKWApLgotIEFkZGluZyBuZXcgY29sdW1ucyAoYG11dGF0ZSgpYCkuCi0gR3JvdXBpbmcgYW5kIHN1bW1hcml6aW5nIChgZ3JvdXBfYnkoKWAgKyBgc3VtbWFyaXplKClgKS4KCioqUHJhY3RpY2U6KioKLSBDYWxjdWxhdGUgcHJvcG9ydGlvbnMgZm9yIENENC9DRDggcG9wdWxhdGlvbnMuCi0gQWRkIGNhbGN1bGF0ZWQgY29sdW1ucyBmb3IgYW5hbHlzaXMuCgotLS0KCiMjICoqU2Vzc2lvbiA0OiBCYXNpYyBQcm9ncmFtbWluZyBhbmQgQ29udHJvbCBTdHJ1Y3R1cmVzKioKKipHb2FsOioqIFVuZGVyc3RhbmQgcHJvZ3JhbW1pbmcgbG9naWMgZm9yIGF1dG9tYXRpbmcgdGFza3MuCgotIFZhcmlhYmxlcyBhbmQgYXNzaWdubWVudHMuCi0gQ29uZGl0aW9uYWwgc3RhdGVtZW50cyAoYGlmYCwgYGVsc2VgKS4KLSBMb29wcyAoYGZvcmAsIGB3aGlsZWApLgotIFdyaXRpbmcgZnVuY3Rpb25zLgoKKipQcmFjdGljZToqKgotIFdyaXRlIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgcGVyY2VudGFnZXMgZHluYW1pY2FsbHkuCi0gQXV0b21hdGUgZmlsdGVyaW5nIHRhc2tzLgoKLS0tCgojIyAqKlNlc3Npb24gNTogVmlzdWFsaXphdGlvbiB3aXRoIGBnZ3Bsb3QyYCDigJMgUGFydCAxKioKKipHb2FsOioqIENyZWF0ZSBhbmQgY3VzdG9taXplIHZpc3VhbGl6YXRpb25zLgoKLSBCYXNpY3Mgb2YgYGdncGxvdDJgIOKAkyBzY2F0dGVyLCBiYXIsIGFuZCBib3hwbG90cy4KLSBDdXN0b21pemluZyBsYWJlbHMsIHRoZW1lcywgYW5kIGNvbG9ycy4KCioqUHJhY3RpY2U6KioKLSBWaXN1YWxpemUgQ0Q0IHZzIENEOCBwcm9wb3J0aW9ucy4KLSBBZGQgY29sb3JzIGFuZCB0aGVtZXMuCgotLS0KCiMjICoqU2Vzc2lvbiA2OiBBZHZhbmNlZCBWaXN1YWxpemF0aW9uIHdpdGggYGdncGxvdDJgIOKAkyBQYXJ0IDIqKgoqKkdvYWw6KiogTGVhcm4gYWR2YW5jZWQgdmlzdWFsaXphdGlvbiB0ZWNobmlxdWVzLgoKLSBGYWNldGluZyBhbmQgc21hbGwgbXVsdGlwbGVzLgotIENvbWJpbmluZyBwbG90cyAoZ3JpZCBsYXlvdXRzKS4KLSBTYXZpbmcgaGlnaC1yZXNvbHV0aW9uIHBsb3RzLgoKKipQcmFjdGljZToqKgotIENyZWF0ZSBmYWNldGVkIGJveHBsb3RzIGZvciBzdWJzZXRzLgotIEV4cG9ydCBwbG90cyBmb3IgcmVwb3J0cy4KCi0tLQoKIyMgKipTZXNzaW9uIDc6IFN0YXRpc3RpY2FsIEFuYWx5c2lzKioKKipHb2FsOioqIFVuZGVyc3RhbmQgZGVzY3JpcHRpdmUgYW5kIGluZmVyZW50aWFsIHN0YXRpc3RpY3MuCgotIERlc2NyaXB0aXZlIHN0YXRpc3RpY3M6IG1lYW4sIG1lZGlhbiwgbW9kZS4KLSBIeXBvdGhlc2lzIHRlc3RpbmcgKHQtdGVzdHMsIEFOT1ZBKS4KLSBDb3JyZWxhdGlvbiBhbmQgcmVncmVzc2lvbi4KCioqUHJhY3RpY2U6KioKLSBUZXN0IGRpZmZlcmVuY2VzIGluIENENCBwcm9wb3J0aW9ucy4KLSBQZXJmb3JtIGNvcnJlbGF0aW9uIGFuYWx5c2lzLgoKLS0tCgojIyAqKlNlc3Npb24gODogUmVwcm9kdWNpYmxlIFJlcG9ydHMgd2l0aCBSTWFya2Rvd24qKgoqKkdvYWw6KiogQnVpbGQgZHluYW1pYyBhbmQgc2hhcmVhYmxlIHJlcG9ydHMuCgotIEludHJvZHVjdGlvbiB0byBSTWFya2Rvd24uCi0gQ29tYmluaW5nIHRleHQsIGNvZGUsIGFuZCB2aXN1YWxzLgotIEV4cG9ydGluZyB0byBQREYgYW5kIEhUTUwuCgoqKlByYWN0aWNlOioqCi0gQ3JlYXRlIGEgcmVwb3J0IHN1bW1hcml6aW5nIGZsb3cgY3l0b21ldHJ5IGRhdGEuCi0gRW1iZWQgdmlzdWFsaXphdGlvbnMgYW5kIHRhYmxlcy4KCi0tLQoKIyMgKipTZXNzaW9uIDk6IE1pbmkgUHJvamVjdCDigJMgUHV0dGluZyBJdCBBbGwgVG9nZXRoZXIqKgoqKkdvYWw6KiogQXBwbHkgc2tpbGxzIHRvIGEgY29tcGxldGUgd29ya2Zsb3cuCgoqKlByYWN0aWNlOioqCi0gTG9hZCBhbmQgY2xlYW4gZGF0YS4KLSBTdW1tYXJpemUgYW5kIHZpc3VhbGl6ZSB0cmVuZHMuCi0gUnVuIHRlc3RzIGFuZCBjb21waWxlIGV2ZXJ5dGhpbmcgaW50byBhIHJlcG9ydC4KCi0tLQoKIyMgKipTZXNzaW9uIDEwOiBUcm91Ymxlc2hvb3RpbmcgYW5kIFdvcmtmbG93IERlc2lnbioqCioqR29hbDoqKiBUZWFjaCBkZWJ1Z2dpbmcgc3RyYXRlZ2llcyBhbmQgd29ya2Zsb3cgb3B0aW1pemF0aW9uLgoKLSBEZWJ1Z2dpbmcgZXJyb3JzIGFuZCB3YXJuaW5ncy4KLSBXcml0aW5nIG1vZHVsYXIgc2NyaXB0cyAoZnVuY3Rpb25zKS4KLSBPcmdhbml6aW5nIGxhcmdlciBwcm9qZWN0cy4KLSBCcmllZiBpbnRybyB0byBHaXQvR2l0SHViIGZvciB2ZXJzaW9uIGNvbnRyb2wuCgoqKlByYWN0aWNlOioqCi0gRGVidWcgYSBzY3JpcHQgd2l0aCBlcnJvcnMuCi0gUmVzdHJ1Y3R1cmUgY29kZSBmb3IgcmV1c2FiaWxpdHkuCgotLS0KCiMgKipGaW5hbCBUaG91Z2h0cyoqClRoaXMgc2VyaWVzIGlzIGRlc2lnbmVkIHRvIGVxdWlwIHBhcnRpY2lwYW50cyB3aXRoIGJvdGggY29uY2VwdHVhbCBhbmQgcHJhY3RpY2FsIHNraWxscyB0byBjb25maWRlbnRseSBhcHByb2FjaCBwcm9ncmFtbWluZyBhbmQgZGF0YSBhbmFseXNpcy4gSXQgZW1waGFzaXplcyByZXByb2R1Y2liaWxpdHksIHNjYWxhYmlsaXR5LCBhbmQgc3RydWN0dXJlZCB3b3JrZmxvd3MsIHByZXBhcmluZyBsZWFybmVycyBmb3IgcmVhbC13b3JsZCBiaW9pbmZvcm1hdGljcyBjaGFsbGVuZ2VzLgoK