Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
/.quarto/

**/*.quarto_ipynb
10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,12 @@ Click here to go to our [Course Website](https://umgcccfcsr.github.io/CytometryI

# Participating

The course will start the first week of February, with Week #1 resources being released on Sunday, February 1st at 2200 EST (Monday 0300 GMT+0). See below for additional details.

## Resources

The pre-course learning materials are now [available](https://umgcccfcsr.github.io/CytometryInR/course/00_GitHub/) , providing walkthroughs of how to set up your workstations with the required software, and exercises to help you become more familiar with the various teaching and coding resources we will be using throughout the course.

Narrated versions of the walk through materials will be available starting next week via [YouTube](https://www.youtube.com/@CytometryInR)
The course started up the first week of February. Course materials can be found [here](/course/00_GitHub/index.qmd) or via the Course tab in the navigation bar. The livestream recordings are available via [YouTube](https://www.youtube.com/@CytometryInR). See below for additional details.


## In-Person (Baltimore)

For those joining us in person, the class is being offered on Monday, Tuesday and Thursday from **4-5 pm EST** in Bressler Research Building Room 7-035. We invite you to make whichever session best fits your schedule. Monitors to plug your laptops in will be available on a first come, first served basis. These in-person sessions will not be recorded, but with the smaller class size you will have our undivided attention should you have any questions.
For those joining us in person, the class is being offered on Thursday from **4-5 pm EST** in Bressler Research Building Room 7-035. Monitors to plug your laptops in will be available on a first come, first served basis. These in-person sessions will not be recorded, but with the smaller class size you will have our undivided attention should you have any questions.

## Virtual (Worldwide)

Expand Down
10 changes: 5 additions & 5 deletions Schedule.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ sidebar: false

Cytometry in R is a free virtual mini-course being organized by the [Flow Cytometry Shared Resource](https://www.medschool.umaryland.edu/cibr/core/umgccc_flow/) core at the University of Maryland's [Greenebaum Comprehensive Cancer Center](https://www.umms.org/umgccc). This course is a passion project arising from our desire to contribute back to the community. We are excited that you have chosen to take part and look forward to helping you get started on your own learning journey.

If you did not complete the original interest form, and would like to be added to our mailing list, please complete the form [here](https://docs.google.com/forms/d/e/1FAIpQLScPK4V_WNSgQvZNq7aIHpoiX8pi3kiuCfI0Tp7hQkVJS3HPtQ/viewform?usp=publish-editor)
Course materials can be found [here](/course/00_GitHub/index.qmd) or via the Course tab in the navigation bar. The livestream recordings are available via [YouTube](https://www.youtube.com/@CytometryInR)

The pre-course learning materials are now [available](/course/00_GitHub/index.qmd) via the Course tab. They consist of walkthroughs of how to set up your workstations with the required software, and exercises to help you become more familiar with the various teaching and coding resources we will be using throughout the course.

<br>

Expand Down Expand Up @@ -63,7 +62,7 @@ The pre-course learning materials are now [available](/course/00_GitHub/index.qm

![](images/histograms.png){width=75%}

[**Week 4: February 23, 2026**]{.underline} Within this session, we explore how the various [tidyverse](https://tidyverse.org/) packages can be utilized to reorganize rows and columns of data in ways that are useful for data analysis. We will primarily work with the MFI expression data we isolated from within the .fcs file in the previous session, identifying and isolating events that meet certain criterias. We introduce the concepts behind ["tidy"](https://vita.had.co.nz/papers/tidy-data.pdf) data and how it can improve our workflows.
[**Week 4: February 23, 2026**]{.underline} Within this [fourth session](/course/04_IntroToTidyverse/index.qmd), we explore how the various [tidyverse](https://tidyverse.org/) packages can be utilized to reorganize rows and columns of data in ways that are useful for data analysis. We will primarily work with the MFI expression data we isolated from within the .fcs file in the previous session, identifying and isolating events that meet certain criterias. We introduce the concepts behind ["tidy"](https://vita.had.co.nz/papers/tidy-data.pdf) data and how it can improve our workflows.

<br>
<br>
Expand All @@ -72,7 +71,7 @@ The pre-course learning materials are now [available](/course/00_GitHub/index.qm

![](images/GatingSets.png){width=75%}

[**Week 5: March 2, 2026**]{.underline} As part of this session, we learn about the two main flow cytometry infrastructure packages in R we will be working with during the course, [flowcore](https://www.bioconductor.org/packages/release/bioc/vignettes/flowCore/inst/doc/HowTo-flowCore.pdf) and [flowWorkspace](https://www.bioconductor.org/packages/release/bioc/vignettes/flowWorkspace/inst/doc/flowWorkspace-Introduction.html). Throughout the session, we will compare how they differ in naming, memory usage, and accessing .fcs file metadata. We additionally explore how to add keywords to their respective metadata for use in filtering specimens of interest from the larger set of .fcs files.
[**Week 5: March 2, 2026**]{.underline} As part of this [fifth session](/course/05_GatingSets/index.qmd), we learn about the two main flow cytometry infrastructure packages in R we will be working with during the course, [flowcore](https://www.bioconductor.org/packages/release/bioc/vignettes/flowCore/inst/doc/HowTo-flowCore.pdf) and [flowWorkspace](https://www.bioconductor.org/packages/release/bioc/vignettes/flowWorkspace/inst/doc/flowWorkspace-Introduction.html). Throughout the session, we will compare how they differ in naming, memory usage, and accessing .fcs file metadata. We additionally explore how to add keywords to their respective metadata for use in filtering specimens of interest from the larger set of .fcs files.

<br>
<br>
Expand Down Expand Up @@ -194,7 +193,8 @@ No class week of March 30, 2026. If you are attending the [ABRF conference](http

### Conference Break 2

No class week of June 8, 2026. If you are attending the [Cyto conference](https://www.cytoconference.org/?gad_source=1&gad_campaignid=20633392465&gbraid=0AAAAADoJzsvHaLZAq9tqn_aTAQGEzIk_V&gclid=CjwKCAiA-sXMBhAOEiwAGGw6LJFFV69xaAU3s7bElL86RdnRNFwAYqOQO78MrIYQuG1qvRU6HTN3ZRoCGmAQAvD_BwE), track me down at my talks and posters.
No class week of June 8, 2026. If you are attending the [Cyto conference](https://www.cytoconference.org/?gad_source=1&gad_campaignid=20633392465&gbraid=0AAAAADoJzsvHaLZAq9tqn_aTAQGEzIk_V&gclid=CjwKCAiA-sXMBhAOEiwAGGw6LJFFV69xaAU3s7bElL86RdnRNFwAYqOQO78MrIYQuG1qvRU6HTN3ZRoCGmAQAvD_BwE), track me down at my talks ([Open-Source automation](https://davidrach.github.io/abstracts.html#cyto-2026---flow-awarenesss) on June 7, 10:30-11:30AM at Grand Ballroom;
and [Semi-supervised pipeline](https://davidrach.github.io/abstracts.html#cyto-2026---alpha-beta) on June 9, 10:30-11:45AM atRoom 2DEF) or poster (grab some Cytometry in R course hex stickers!)

<br>
<br>
Expand Down
7 changes: 6 additions & 1 deletion _quarto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ project:
- 01_*
- 02_*
- 03_*
- 04_*
- 05_*
website:
google-analytics: "G-LZ35J3XE4D"
announcement:
Expand Down Expand Up @@ -61,14 +63,17 @@ website:
- text: "00 - Floreada"
href: course/00_Floreada/index.qmd
- section: "Intro to R"
href: course/01_InstallingRPackages/index.qmd
contents:
- text: "01 - Installing R Packages"
href: course/01_InstallingRPackages/index.qmd
- text: "02 - File Paths"
href: course/02_FilePaths/index.qmd
- text: "03 - Inside a .FCS file"
href: course/03_InsideFCSFile/index.qmd
- text: "04 - Intro to Tidyverse"
href: course/04_IntroToTidyverse/index.qmd
- text: "05 - Gating Sets"
href: course/05_GatingSets/index.qmd
- section: "Cytometry Core"
href: Schedule.qmd
- section: "Beyond the Sandbox"
Expand Down
126 changes: 126 additions & 0 deletions course/00_BonusContent/PullConflicts/UpdatedPullRequest.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
---
title: "Updated Pull Request Protocol"
author: "David Rach"
date: 02-22-2026
format: html
toc: true
toc-depth: 4
---

![](/images/WebsiteBanner.png)

::: {style="text-align: right;"}
[![AGPL-3.0](https://img.shields.io/badge/license-AGPLv3-blue)](https://www.gnu.org/licenses/agpl-3.0.en.html) [![CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-sa/4.0/)
:::

# Background

Due to an encountered issue pulling in new updates for CytometryInR when you have an optional take-home problem still waiting to be reviewed, we will be modifying the protocol for submitting a pull request. You will first create a local homework branch, and submit from your branch to our homework branch. That should hopefully prevent any incoming changes from main to main from becoming conflicted.

# Getting Started

The first step is to open Positron, and navigate through the dropdown options to the Create a Branch option

![](images2/000_CreateBranch.png)

<br>

And provide a name (since the homework was for Week 02, we set it as Week 02)

![](images2/001_Week2.png)

<br>

Next, select the option to Publish the Branch

![](images2/002_PublishBranch.png)

<br>

From here, importantly, select the option to make it a branch of YOUR forked CytometryInR version (since you don't have permissions for the main course repository)

![](images2/003_ToYOURfork.png)

<br>

At this point, your new branch will have been created. You can check by entering the following code in the terminal, and verifying the * is next to the Week02 branch

```{r}
#| eval: FALSE
git branch
```

![](images2/004_MakeSureWeek02.png)

<br>

Once you have confirmed you are in your homework branch, go ahead and transfer in all the files you will be submitting for the optional take-home problems

![](images2/005_MakeAdditions.png)

<br>

And once done, make a commit as you would normally

![](images2/006_Commit.png)

<br>

As you can see, you will now be ahead of the main branch by one commit. Go ahead and sync your branch to GitHub so the contents are available remotely for use in the pull-request.

![](images2/007_Week02.png)

<br>

Once synced, you will notice that your branch is now up to date with the remote (cloud) icon. Next, proceed to checkout to the main branch, either via the dropdown or via the terminal using

```{r}
#| eval: FALSE
git checkout main

```

![](images2/008_CheckoutMain.png)

<br>

Returning to GitHub, you will see that your homework branch has received the incoming changes. You are now safe to sync your fork to bring in changes from the main course CytometryInR repository.

![](images2/009_Sync.png)


<br>

And confirm yes.

![](images2/010_SyncYes.png)

<br>

Returning to Positron, once verified you are in your main branch, proceed to pull in changes

![](images2/011_Pull.png)

<br>

If you switch between branches, you will notice you have both the new changes to main, as well as your week specific side branch co-existing peacefully.

![](images2/012_SafeSideBranch.png)

<br>

You are then safe to make a pullrequest from your homework branch, to our homework branch, without running into risk of an additional commit from our end (or delay in reviewing) causing issues.

![](images2/012_PullRequestBranchToBranch.png)

<br>


# Additional Resources

This method should hopefully avoid the previously encountered issues. Apologies once again to those who encountered the issue! Still learning how to use some of these aspects of Version control in a GitHub context.


::: {style="text-align: right;"}
[![AGPL-3.0](https://www.gnu.org/graphics/agplv3-with-text-162x68.png)](https://www.gnu.org/licenses/agpl-3.0.en.html) [![CC BY-SA 4.0](https://licensebuttons.net/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)
:::
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
128 changes: 128 additions & 0 deletions course/00_BonusContent/PullConflicts/index.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
---
title: "Take-Home Problems - Pull Fix Resolution"
author: "David Rach"
date: 02-22-2026
format: html
toc: true
toc-depth: 4
---

![](/images/WebsiteBanner.png)

::: {style="text-align: right;"}
[![AGPL-3.0](https://img.shields.io/badge/license-AGPLv3-blue)](https://www.gnu.org/licenses/agpl-3.0.en.html) [![CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-sa/4.0/)
:::

# Background

For those who have turned in the homework to the Cytometry in R - homework branches, many report having encountered merge issues pulling in the next week's data if the pull request hasn't been resolved yet. Creating a parallel branch, and submitting homework from there to the homework branch might solve the issue? But we will need to test that out. For now, here are the steps we used to resolve the issue locally without needing to delete and re-download.


# Getting Started

Start off checking your GitHub forked version of the CytometryInR, notice how many commits behind you are.

![](images/00_Start.png)

<br>

If you haven't submitted the optional Take-Home problems via a pull-request, proceed to do so.

![](images/01_Issue.png)

<br>

This was an example of the page you see when submitting the pull request. Upon submission, your branch may show merge conflicts due to difference in rendered docs. This is okay, we will resolve it on our end.

![](images/02_AsCurrentlyShowing.png)

<br>

What we will end up doing is ignore the changes and accept the current version. This issue is likely due to the weekly updating of the data resulting in new sidebar links. We will then mark these issues as resolved

![](images/03_ConflictResolution.png)

We will then mark the issues as resolved.

![](images/04_MarkAsResolved.png)

<br>

On return to the homework, we will be able to merge the branch once again. We will likely make our suggestions at this point for this branch.

![](images/05_PostEdits.png)

<br>


However, after pull request has been merged, you will see your branch is way ahead (due to everyone elses homework commits). This is the area we will need to address via the new branch method.

![](images/06_Upps.png)

<br>

For now, proceed to discard the changes (you don't need the other participants homeworks cluttering your folder)


![](images/07_DiscardCommits.png)

<br>

You will then appear as caught up with the main branch.

![](images/08_Hmm.png)

<br>

On return to Positron, attempt to pull


![](images/09_PullPostFix.png)

<br>

However, since your homework commit is still present, you will receive a pop-up asking you to see the GitLog. If you scroll up the problem log, it will give you several options.

![](images/10_GitLog.png)

<br>

You will need to enter the following code into your terminal tab:

```{r}
#| eval: FALSE
git config pull.rebase TRUE
```


![](images/11_gitconfigpullrebaseTRUE.png)

<br>

This will result in a branched appearance, and the button asking you to sync the changes.


![](images/12_Branched.png)

<br>

Upon doing so you will have a restored status vs. the main cytometry in R project folder.

![](images/13_Hmm2.png)


# Take Away

We have encountered a first growing pain for the course, in that the pull-request method we have been using still causes merge conflicts. We will be going to a homework branch to homework branch pull-request approach going forward, I will send out additional instructions on how to do so shortly.

Thanks for your patience!

David


# Additional Resources


::: {style="text-align: right;"}
[![AGPL-3.0](https://www.gnu.org/graphics/agplv3-with-text-162x68.png)](https://www.gnu.org/licenses/agpl-3.0.en.html) [![CC BY-SA 4.0](https://licensebuttons.net/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)
:::
Binary file added course/00_BonusContent/images/CommitMessage.png
Binary file added course/00_BonusContent/images/DiscardChanges.png
2 changes: 1 addition & 1 deletion course/00_Homeworks/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ Proceed to push the branch to GitHub.

---

# Re-sync if necessary
### Re-sync if necessary

If additional changes have occured to the parent CytometryInR repository, go ahead and update your branch. As long as your edits occurred within your folder inside homework folders, they should still be able to merge.

Expand Down
Loading