Project 2 · 70% · Week 11
One gene, one cancer type, real patient data from The Cancer Genome Atlas. Decide whether that gene’s expression responds to loss of p53 function in human tumours — and if so, in which direction.
TP53 is the most frequently mutated gene in human cancer. Its protein, p53, is a transcription factor: when a cell is damaged, it switches on genes that stop the cell cycle or trigger cell death. So when p53 is lost, a gene can go either way:
Direct p53 target
goes down
the switch is gone
Proliferation gene
goes up
the brake is gone
Neither
no change
nothing to release
Everyone has a different gene and cancer type. You never type them yourself: the setup cell at the top of each notebook asks for your 6-digit registration number — the number on Canvas and your student card — and looks yours up.
REGISTRATION_NUMBER = "123456" # <-- yoursIf the notebook says your number is not on the class list, check it against Canvas, then email the convenor. Do not pick a gene yourself — you are marked on the one assigned to you.
Your choice; neither route earns or loses a mark. Start with 00_start_here.
Nothing to install.
Download the project and set it up the way the tech sessions showed you:
curl -L https://github.com/HocheggerLab/tcga-capstone-2026/archive/refs/heads/main.zip -o capstone.zip unzip capstone.zip cd tcga-capstone-2026-main uv sync
uv sync installs exactly the packages the notebooks need. Open the folder in VS Code and select the .venv kernel. All the data is included, so it works offline.
Git version control for local development is explained in Lab 7. Prefer to browse first? See the repository on GitHub.
Every task is a function with a fixed output, and every function has a check cell underneath that runs it on a worked example — CDKN1A in breast cancer, assigned to nobody. Green ticks mean it works, before you run it on your own gene.
| Task | Function | Purpose |
|---|---|---|
| 1a | load_and_clean | Clean the raw patient export into a tidy table. |
| 1b | describe_cohort | Summarise the cohort as the paper’s “Table 1”. |
| 2 | expression_landscape | Rank your gene’s expression across cancer types. |
| 3 | compare_groups | A Mann–Whitney U test — written once, used twice. |
| 4 | plot_comparison | One figure: normal, TP53 wild-type and TP53-mutant tumours. |
| 5 | run_analysis | Combine everything into one answer (marked per key). |
Each function is marked on its own. Notebook 02 does not use Notebook 01 at all, so getting stuck on Task 1 never blocks the rest.
A complete, well-written, well-interpreted core is first-class work and scores around 70. The extension is how you move from 70 to 85 — if you are struggling, do the core properly and skip it.
Whichever you choose: the named function, the supplied checks passing, at least two useful checks of your own, and a short interpretation of what it changes about your Notebook 02 answer.
In Colab, use File → Save a copy in GitHub at each milestone — every save is a commit. Working locally, git is covered in Lab 7.
Real, de-identified patient data from the open-access tiers of The Cancer Genome Atlas and the GTEx project. Treat it as you would your own medical record: never try to work out who a patient is. The full acknowledgements and citations are in 00_start_here.
Submit your notebooks through Canvas, where you will also find the deadline and your marks.