From 38d5f87ca64fa80b62db242d926e30abb9f497e9 Mon Sep 17 00:00:00 2001 From: TrishC Date: Wed, 2 Nov 2022 14:54:44 +1100 Subject: [PATCH 1/5] Create campbell-pen-and-paper-version-control Add new case study on the usefulness of version control --- .../campbell-pen-and-paper-version-control | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/case-studies/campbell-pen-and-paper-version-control diff --git a/src/case-studies/campbell-pen-and-paper-version-control b/src/case-studies/campbell-pen-and-paper-version-control new file mode 100644 index 00000000..0394310e --- /dev/null +++ b/src/case-studies/campbell-pen-and-paper-version-control @@ -0,0 +1,17 @@ +# Pen and paper - a less user-friendly form of version control than Git + +Author: Trish Campbell (`patricia.campbell@unimelb.edu.au`) + +Project: Pertussis modelling + +## The problem + +In this project, I developed a compartmental model of pertussis to determine appropriate vaccination strategies. While plotting some single model simulations, I noticed anomalies in the modelled output for two experiments. The first experiment had an order of magnitude more people in the infectious compartments than in the second experiment, even though there seemed to be far fewer infections occurring. This scenario did not fit with the parameter values that were being used. In the differential equation file for my model, in addition to extracting the state of the model (i.e. the population in each compartment at each time step), for ease of analysis I also extracted the cumulative number of infections up to that time step. The calculation for this extraction of cumulative incidence was incorrect. + +## The solution + +The error occurred because susceptible people in my model were not all equally susceptible, and I failed to account for this when I calculated the cumulative number of infections at each time step. I identified that this was the problem by running some targeted test parameter sets and observing the changes in model output. The next step was to find out how long this bug had existed in the code and which analyses had been affected. While I was using version control, I tended to make large infrequent commits. I did, however, keep extensive hand-written notes in lab books, which played the role of a detailed history of commits. Searching through my historical lab books, I identified that I had introduced this bug into the code two years earlier. I was able to determine which parts of my results would have been affected by the bug and made the decision that all experiments needed to be re-run. + +## How version control helped + +Using a **pen and paper** form of version control enabled me to pinpoint the introduction of the error and identify the affected analyses, but it was a tedious process. While keeping an immaculate record of changes that I had made was invaluable, imagine how much simpler and faster the process would have been if I had been a regular user of an electronic version control system such as Git! From 53cc82d4e8cd8beddefdbd9f265b8ece850ab582 Mon Sep 17 00:00:00 2001 From: TrishC Date: Wed, 2 Nov 2022 15:11:51 +1100 Subject: [PATCH 2/5] Rename campbell-pen-and-paper-version-control to campbell-pen-and-paper-version-control.md --- ...-version-control => campbell-pen-and-paper-version-control.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/case-studies/{campbell-pen-and-paper-version-control => campbell-pen-and-paper-version-control.md} (100%) diff --git a/src/case-studies/campbell-pen-and-paper-version-control b/src/case-studies/campbell-pen-and-paper-version-control.md similarity index 100% rename from src/case-studies/campbell-pen-and-paper-version-control rename to src/case-studies/campbell-pen-and-paper-version-control.md From a4c530deefa5d693a2742ac057da02df95a633fd Mon Sep 17 00:00:00 2001 From: Rob Moss Date: Thu, 3 Nov 2022 10:39:47 +1100 Subject: [PATCH 3/5] Start each sentence on a new line --- .../campbell-pen-and-paper-version-control.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/case-studies/campbell-pen-and-paper-version-control.md b/src/case-studies/campbell-pen-and-paper-version-control.md index 0394310e..48654599 100644 --- a/src/case-studies/campbell-pen-and-paper-version-control.md +++ b/src/case-studies/campbell-pen-and-paper-version-control.md @@ -6,12 +6,24 @@ Project: Pertussis modelling ## The problem -In this project, I developed a compartmental model of pertussis to determine appropriate vaccination strategies. While plotting some single model simulations, I noticed anomalies in the modelled output for two experiments. The first experiment had an order of magnitude more people in the infectious compartments than in the second experiment, even though there seemed to be far fewer infections occurring. This scenario did not fit with the parameter values that were being used. In the differential equation file for my model, in addition to extracting the state of the model (i.e. the population in each compartment at each time step), for ease of analysis I also extracted the cumulative number of infections up to that time step. The calculation for this extraction of cumulative incidence was incorrect. +In this project, I developed a compartmental model of pertussis to determine appropriate vaccination strategies. +While plotting some single model simulations, I noticed anomalies in the modelled output for two experiments. +The first experiment had an order of magnitude more people in the infectious compartments than in the second experiment, even though there seemed to be far fewer infections occurring. +This scenario did not fit with the parameter values that were being used. +In the differential equation file for my model, in addition to extracting the state of the model (i.e. the population in each compartment at each time step), for ease of analysis I also extracted the cumulative number of infections up to that time step. +The calculation for this extraction of cumulative incidence was incorrect. ## The solution -The error occurred because susceptible people in my model were not all equally susceptible, and I failed to account for this when I calculated the cumulative number of infections at each time step. I identified that this was the problem by running some targeted test parameter sets and observing the changes in model output. The next step was to find out how long this bug had existed in the code and which analyses had been affected. While I was using version control, I tended to make large infrequent commits. I did, however, keep extensive hand-written notes in lab books, which played the role of a detailed history of commits. Searching through my historical lab books, I identified that I had introduced this bug into the code two years earlier. I was able to determine which parts of my results would have been affected by the bug and made the decision that all experiments needed to be re-run. +The error occurred because susceptible people in my model were not all equally susceptible, and I failed to account for this when I calculated the cumulative number of infections at each time step. +I identified that this was the problem by running some targeted test parameter sets and observing the changes in model output. +The next step was to find out how long this bug had existed in the code and which analyses had been affected. +While I was using version control, I tended to make large infrequent commits. +I did, however, keep extensive hand-written notes in lab books, which played the role of a detailed history of commits. +Searching through my historical lab books, I identified that I had introduced this bug into the code two years earlier. +I was able to determine which parts of my results would have been affected by the bug and made the decision that all experiments needed to be re-run. ## How version control helped -Using a **pen and paper** form of version control enabled me to pinpoint the introduction of the error and identify the affected analyses, but it was a tedious process. While keeping an immaculate record of changes that I had made was invaluable, imagine how much simpler and faster the process would have been if I had been a regular user of an electronic version control system such as Git! +Using a **pen and paper** form of version control enabled me to pinpoint the introduction of the error and identify the affected analyses, but it was a tedious process. +While keeping an immaculate record of changes that I had made was invaluable, imagine how much simpler and faster the process would have been if I had been a regular user of an electronic version control system such as Git! From 60373b4498a25f96e124e738fa35c2aada41148b Mon Sep 17 00:00:00 2001 From: Rob Moss Date: Thu, 3 Nov 2022 10:45:48 +1100 Subject: [PATCH 4/5] Add the case study to the table of contents This ensures that the case study will be published. --- src/SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index f154952b..afa93f48 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -71,6 +71,7 @@ - [Case studies](case-studies/README.md) - [Fixing a bug in pypfilt](case-studies/moss-pypfilt-earlier-states.md) - [Incorrect data in a pre-print figure](case-studies/moss-incorrect-data-pre-print.md) + - [Pen and paper version control](case-studies/campbell-pen-and-paper-version-control.md) ----------- From 14f29bec8b3a502bcb8b18175b39db328f1f72e4 Mon Sep 17 00:00:00 2001 From: Rob Moss Date: Thu, 3 Nov 2022 10:46:54 +1100 Subject: [PATCH 5/5] Add Trish as a contributor Trish has contributed a great case study from her PhD. --- src/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/contributors.md b/src/contributors.md index 265e6d9f..fe2c7ccb 100644 --- a/src/contributors.md +++ b/src/contributors.md @@ -5,3 +5,4 @@ Here is a list of the contributors who have helped develop these materials: - Rob Moss ([robmoss](https://github.com/robmoss)) - Eamon Conway ([EamonConway](https://github.com/EamonConway)) - James Ong ([jomonman537](https://github.com/jomonman537)) +- Trish Campbell ([TrishC](https://github.com/TrishC))