This section covers the following topics:

  • Setting up a folder structure
  • Using git for version control
  • Publishing your project on GitHub
  • Choosing a license

Getting Started with Our Project

Welcome to the “Breast Cancer Outcome Analysis” project! This endeavor aims to provide a comprehensive analysis of the expected outcomes for a cohort of 55-year-old women who have undergone tumor excision for localized breast cancer. Breast cancer is a critical health concern worldwide, and understanding its outcomes post-surgery can provide valuable insights for both medical professionals and patients.


Our primary objective is to model the potential health trajectories of these women using a Markov model. This probabilistic model will allow us to simulate various health states over time, such as remaining localized, recurrence, metastasis, or death. By doing so, we can estimate the quality-adjusted life expectancy for these patients, providing a clearer picture of the potential long-term impacts of the disease and its treatment.


Throughout this tutorial, we will:

  1. Set Up Our Project Environment: Using tools like cookiecutter, we’ll establish a structured project directory, ensuring that our work remains organized and reproducible.
  2. Data Import and Exploration: We’ll import essential data, such as age-specific hazard rates, and familiarize ourselves with its structure and significance.
  3. Model Development: Using R, we’ll develop our Markov model, defining various states and transitions based on the provided data and medical knowledge.
  4. Analysis and Visualization: Once our model is in place, we’ll simulate the health trajectories and visualize the outcomes using packages like ggplot2.
  5. Sensitivity Analysis: To understand the robustness of our model, we’ll perform sensitivity analyses on key parameters, observing how changes in these values impact our results.

Collaboration and Reproducibility

Emphasizing computational reproducibility, we’ll employ version control using Git and GitHub. This approach not only ensures that our work can be reliably replicated by others but also facilitates collaboration among researchers.


Time for some hands-on practice!

Be sure to ask for help when you need it!

1. Project Setup

Installing Cookiecutter and Setting Up the Project

First, install cookiecutter:

pip install cookiecutter

Now, use cookiecutter to generate a new project structure in desired directory:

cookiecutter gh:jacobjameson/cookiecutter-project

When prompted:

  • Name your project: “BreastCancerOutcomeAnalysis”.

  • Description: “Analysis of the expected outcomes for a cohort of 55-year-old women who have undergone tumor excision for localized breast cancer.”

Understanding the Project Structure

Navigate to the newly created directory and familiarize yourself with the folders and files.

Adding Data to the Project

Download the necessary data here for the tutorial and place it in the data folder within your project directory.

2. Version Control with Git and GitHub

Initializing a Git Repository

Navigate to your project directory in the terminal:

git init

Creating a Remote Repository on GitHub

On GitHub, create a new repository with the same name as the one that you just created locally. Link your local repository to this remote:

git remote add origin [your-repository-url]

Pushing to GitHub

Commit and push your changes:

git add .
git commit -m "Initial commit"
git push --set-upstream origin main

Experimenting with GitHub

Make edits directly on GitHub and then pull those changes:

git pull

3. Create a .Rproj for this repository

What does this do? * Creates a project file (with an .Rproj extension) within the project directory. This file contains various project options (discussed below) and can also be used as a shortcut for opening the project directly from the filesystem.

  • Creates a hidden directory (named .Rproj.user) where project-specific temporary files (e.g. auto-saved source documents, window-state, etc.) are stored. This directory is also automatically added to .Rbuildignore, .gitignore, etc. if required.

  • Loads the project into RStudio and display its name in the Projects toolbar (which is located on the far right side of the main toolbar) |

4. Publication & Licensing

Reviewing Your License

Create a file in your project directory.


Exploring Licensing Options

Visit for other options. Update the file and push to GitHub!:

Now remember to push all these changes!