{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ad3fa9f6",
   "metadata": {},
   "source": [
    "# Survival analysis on TCGA breast cancer, from open data only\n",
    "\n",
    "**Level:** beginner &nbsp;·&nbsp; **Language:** Python &nbsp;·&nbsp; **Runtime:** about two minutes\n",
    "&nbsp;·&nbsp; **Access:** none required\n",
    "\n",
    "A complete, correct survival analysis of 1,098 breast tumors using only files that\n",
    "anyone can download without an account or a data access request.\n",
    "\n",
    "The part people get wrong is the endpoint, and it is worth being precise about why.\n",
    "\n",
    "GDC stores follow-up time in three different places and uses a different one depending\n",
    "on the project. For TCGA-BRCA, `diagnoses.days_to_last_follow_up` - the field almost\n",
    "everyone reaches for - is null for 1,097 of 1,098 cases, while\n",
    "`follow_ups.days_to_follow_up` is populated for 1,096. Reading only the obvious field\n",
    "gives you a cohort of about 150 patients, nearly all of them deaths, and a survival\n",
    "curve that is badly wrong in a way nothing warns you about.\n",
    "\n",
    "We hit exactly this bug building this workbook. The fix is to take the latest contact\n",
    "evidenced by *any* of the three fields, and to guard against GDC's negative sentinel\n",
    "values while doing it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9f3c4df3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:01.017342Z",
     "iopub.status.busy": "2026-09-21T00:41:01.017281Z",
     "iopub.status.idle": "2026-09-21T00:41:02.034951Z",
     "shell.execute_reply": "2026-09-21T00:41:02.034513Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lifelines survival analysis on open GDC clinical data\n"
     ]
    }
   ],
   "source": [
    "import json\n",
    "from urllib.parse import urlencode\n",
    "from urllib.request import urlopen\n",
    "\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from lifelines import CoxPHFitter, KaplanMeierFitter\n",
    "from lifelines.statistics import logrank_test\n",
    "\n",
    "GDC = \"https://api.gdc.cancer.gov\"\n",
    "PROJECT_ID = \"TCGA-BRCA\"\n",
    "\n",
    "\n",
    "def gdc_get(endpoint: str, params: dict) -> dict:\n",
    "    url = f\"{GDC}/{endpoint}?{urlencode(params)}\"\n",
    "    with urlopen(url, timeout=180) as r:  # noqa: S310 - fixed, trusted host\n",
    "        return json.loads(r.read().decode())\n",
    "\n",
    "\n",
    "print(\"lifelines survival analysis on open GDC clinical data\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2ec6dd3f",
   "metadata": {},
   "source": [
    "## 1. Pull case-level clinical fields"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "34556ee8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:02.035941Z",
     "iopub.status.busy": "2026-09-21T00:41:02.035846Z",
     "iopub.status.idle": "2026-09-21T00:41:05.148126Z",
     "shell.execute_reply": "2026-09-21T00:41:05.147423Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "retrieved 1,098 cases\n"
     ]
    }
   ],
   "source": [
    "FIELDS = [\n",
    "    \"submitter_id\",\n",
    "    \"demographic.vital_status\",\n",
    "    \"demographic.days_to_death\",\n",
    "    \"demographic.age_at_index\",\n",
    "    \"demographic.race\",\n",
    "    \"diagnoses.days_to_last_follow_up\",   # null for almost every TCGA-BRCA case\n",
    "    \"follow_ups.days_to_follow_up\",       # where the follow-up time actually lives here\n",
    "    \"diagnoses.ajcc_pathologic_stage\",\n",
    "    \"diagnoses.primary_diagnosis\",\n",
    "]\n",
    "\n",
    "filters = json.dumps(\n",
    "    {\"op\": \"in\", \"content\": {\"field\": \"project.project_id\", \"value\": [PROJECT_ID]}},\n",
    "    sort_keys=True,\n",
    ")\n",
    "hits = gdc_get(\n",
    "    \"cases\",\n",
    "    {\"filters\": filters, \"fields\": \",\".join(FIELDS), \"size\": \"5000\", \"format\": \"json\"},\n",
    ")[\"data\"][\"hits\"]\n",
    "print(f\"retrieved {len(hits):,} cases\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "99c52d7c",
   "metadata": {},
   "source": [
    "## 2. Derive the overall survival endpoint\n",
    "\n",
    "`SENTINEL_FLOOR` guards against GDC's large negative placeholders, which otherwise\n",
    "produce negative survival times that silently corrupt a Cox model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "40532b6f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:05.150664Z",
     "iopub.status.busy": "2026-09-21T00:41:05.150303Z",
     "iopub.status.idle": "2026-09-21T00:41:05.170517Z",
     "shell.execute_reply": "2026-09-21T00:41:05.170122Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "usable for survival: 1,076 of 1,098 cases\n",
      "  events (deaths)  : 150\n",
      "  censored cases   : 926\n",
      "  median follow-up among censored: 25.6 months\n"
     ]
    }
   ],
   "source": [
    "SENTINEL_FLOOR = -35000\n",
    "\n",
    "\n",
    "def as_number(x):\n",
    "    try:\n",
    "        v = float(x)\n",
    "    except (TypeError, ValueError):\n",
    "        return np.nan\n",
    "    return v if v > SENTINEL_FLOOR else np.nan\n",
    "\n",
    "\n",
    "def last_contact_days(case: dict) -> float:\n",
    "    \"\"\"Latest contact evidenced by any GDC field. Returns NaN when none is usable.\"\"\"\n",
    "    candidates = []\n",
    "    for d in case.get(\"diagnoses\") or []:\n",
    "        v = as_number(d.get(\"days_to_last_follow_up\"))\n",
    "        if v is not None and not np.isnan(v) and v >= 0:\n",
    "            candidates.append(v)\n",
    "    for f in case.get(\"follow_ups\") or []:\n",
    "        v = as_number(f.get(\"days_to_follow_up\"))\n",
    "        if v is not None and not np.isnan(v) and v >= 0:\n",
    "            candidates.append(v)\n",
    "    v = as_number((case.get(\"demographic\") or {}).get(\"days_to_death\"))\n",
    "    if v is not None and not np.isnan(v) and v >= 0:\n",
    "        candidates.append(v)\n",
    "    return max(candidates) if candidates else np.nan\n",
    "\n",
    "\n",
    "rows = []\n",
    "for h in hits:\n",
    "    demo = h.get(\"demographic\") or {}\n",
    "    # 182 of 1,098 cases carry more than one diagnosis record; take the first that has a\n",
    "    # stage rather than assuming index zero has one.\n",
    "    dxs = h.get(\"diagnoses\") or [{}]\n",
    "    stage = next(\n",
    "        (d.get(\"ajcc_pathologic_stage\") for d in dxs if d.get(\"ajcc_pathologic_stage\")),\n",
    "        None,\n",
    "    )\n",
    "    status = str(demo.get(\"vital_status\", \"\")).lower()\n",
    "    rows.append(\n",
    "        {\n",
    "            \"case\": h.get(\"submitter_id\"),\n",
    "            \"vital_status\": status,\n",
    "            \"days_to_death\": as_number(demo.get(\"days_to_death\")),\n",
    "            \"last_contact_days\": last_contact_days(h),\n",
    "            \"age\": as_number(demo.get(\"age_at_index\")),\n",
    "            \"race\": (demo.get(\"race\") or \"not reported\").lower(),\n",
    "            \"stage\": (stage or \"unknown\").lower(),\n",
    "        }\n",
    "    )\n",
    "\n",
    "df = pd.DataFrame(rows)\n",
    "\n",
    "# Event = death. Time = days to death for those who died, latest contact otherwise.\n",
    "df[\"event\"] = (df[\"vital_status\"] == \"dead\").astype(int)\n",
    "df[\"time_days\"] = np.where(\n",
    "    (df[\"event\"] == 1) & df[\"days_to_death\"].notna(),\n",
    "    df[\"days_to_death\"],\n",
    "    df[\"last_contact_days\"],\n",
    ")\n",
    "df[\"time_months\"] = df[\"time_days\"] / 30.44\n",
    "\n",
    "before = len(df)\n",
    "df = df[df[\"vital_status\"].isin([\"alive\", \"dead\"])]\n",
    "df = df[df[\"time_days\"].notna() & (df[\"time_days\"] > 0)]\n",
    "print(f\"usable for survival: {len(df):,} of {before:,} cases\")\n",
    "print(f\"  events (deaths)  : {int(df['event'].sum()):,}\")\n",
    "censored = df.loc[df[\"event\"] == 0, \"time_months\"]\n",
    "print(f\"  censored cases   : {len(censored):,}\")\n",
    "print(f\"  median follow-up among censored: {censored.median():.1f} months\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3b223e7",
   "metadata": {},
   "source": [
    "Note how many cases are dropped. Reporting this number is not optional: an analysis\n",
    "that silently analyses 900 of 1,098 cases is a different analysis from the one the\n",
    "reader assumes."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "971015f5",
   "metadata": {},
   "source": [
    "## 3. Kaplan-Meier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "2c9778aa",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:05.171478Z",
     "iopub.status.busy": "2026-09-21T00:41:05.171395Z",
     "iopub.status.idle": "2026-09-21T00:41:05.181379Z",
     "shell.execute_reply": "2026-09-21T00:41:05.181093Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "median survival     : 130.0591327201051\n",
      "survival at 12 months: 0.979\n",
      "survival at 36 months: 0.898\n",
      "survival at 60 months: 0.819\n"
     ]
    }
   ],
   "source": [
    "kmf = KaplanMeierFitter()\n",
    "kmf.fit(df[\"time_months\"], df[\"event\"], label=f\"{PROJECT_ID} overall survival\")\n",
    "\n",
    "print(f\"median survival     : {kmf.median_survival_time_}\")\n",
    "for t in (12, 36, 60):\n",
    "    if t <= df[\"time_months\"].max():\n",
    "        print(f\"survival at {t:>2} months: {float(kmf.predict(t)):.3f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1470172c",
   "metadata": {},
   "source": [
    "A median survival of `inf` is the correct answer, not a bug: fewer than half the\n",
    "patients died within the observed follow-up, so the median is not reached. Reporting a\n",
    "number here would require extrapolating beyond the data."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15845977",
   "metadata": {},
   "source": [
    "## 4. Stratified comparison: does stage separate the curves?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6c17bf35",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:05.182317Z",
     "iopub.status.busy": "2026-09-21T00:41:05.182252Z",
     "iopub.status.idle": "2026-09-21T00:41:05.195613Z",
     "shell.execute_reply": "2026-09-21T00:41:05.195235Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "stage_group\n",
      "stage II     607\n",
      "stage III    240\n",
      "stage I      183\n",
      "unknown       26\n",
      "stage IV      20\n",
      "\n",
      "log-rank stage I vs stage IV: p = 8.107e-18 (n=183 vs 20)\n"
     ]
    }
   ],
   "source": [
    "def simplify_stage(s: str) -> str:\n",
    "    s = s.replace(\"stage \", \"\").strip()\n",
    "    for group in (\"iv\", \"iii\", \"ii\", \"i\"):\n",
    "        if s.startswith(group):\n",
    "            return f\"stage {group.upper()}\"\n",
    "    return \"unknown\"\n",
    "\n",
    "\n",
    "df[\"stage_group\"] = df[\"stage\"].map(simplify_stage)\n",
    "counts = df[\"stage_group\"].value_counts()\n",
    "print(counts.to_string())\n",
    "\n",
    "groups = [g for g in [\"stage I\", \"stage II\", \"stage III\", \"stage IV\"] if counts.get(g, 0) >= 20]\n",
    "if len(groups) >= 2:\n",
    "    a, b = groups[0], groups[-1]\n",
    "    ga, gb = df[df[\"stage_group\"] == a], df[df[\"stage_group\"] == b]\n",
    "    res = logrank_test(ga[\"time_months\"], gb[\"time_months\"], ga[\"event\"], gb[\"event\"])\n",
    "    print(f\"\\nlog-rank {a} vs {b}: p = {res.p_value:.4g} (n={len(ga)} vs {len(gb)})\")\n",
    "else:\n",
    "    print(\"\\nnot enough staged cases for a log-rank comparison\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0439305e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:05.196507Z",
     "iopub.status.busy": "2026-09-21T00:41:05.196455Z",
     "iopub.status.idle": "2026-09-21T00:41:05.198713Z",
     "shell.execute_reply": "2026-09-21T00:41:05.198336Z"
    }
   },
   "outputs": [],
   "source": [
    "# One house style for every figure below: a single accent, one contrast colour for the\n",
    "# thing the reader must not miss, and nothing else. Defined here rather than imported so\n",
    "# the downloaded notebook runs on its own.\n",
    "INK, ACCENT, WARN, MUTED = \"#1f2430\", \"#2f6f6b\", \"#b4762a\", \"#9aa3b2\"\n",
    "mpl.rcParams.update(\n",
    "    {\n",
    "        \"figure.dpi\": 120,\n",
    "        \"savefig.dpi\": 120,\n",
    "        \"font.size\": 9.5,\n",
    "        \"axes.titlesize\": 11,\n",
    "        \"axes.titleweight\": \"semibold\",\n",
    "        \"axes.labelcolor\": INK,\n",
    "        \"axes.titlecolor\": INK,\n",
    "        \"text.color\": INK,\n",
    "        \"axes.edgecolor\": MUTED,\n",
    "        \"xtick.color\": MUTED,\n",
    "        \"ytick.color\": MUTED,\n",
    "        \"axes.grid\": True,\n",
    "        \"grid.color\": \"#e6e9ef\",\n",
    "        \"grid.linewidth\": 0.8,\n",
    "        \"axes.axisbelow\": True,\n",
    "    }\n",
    ")\n",
    "\n",
    "\n",
    "def finish(ax, title):\n",
    "    ax.set_title(title, loc=\"left\")\n",
    "    for side in (\"top\", \"right\"):\n",
    "        ax.spines[side].set_visible(False)\n",
    "    ax.figure.tight_layout()\n",
    "    return ax"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7477735e",
   "metadata": {},
   "source": [
    "### The curves themselves\n",
    "\n",
    "A log-rank p-value says the curves differ. It does not say how, or from when. The plot\n",
    "does both, and it shows how thin the tail of the follow-up really is."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "5458c254",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:05.199494Z",
     "iopub.status.busy": "2026-09-21T00:41:05.199449Z",
     "iopub.status.idle": "2026-09-21T00:41:05.338428Z",
     "shell.execute_reply": "2026-09-21T00:41:05.338111Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "findfont: Failed to find font weight semibold for DejaVu Sans, now using 700.\n"
     ]
    },
    {
     "data": {
      "image/png": "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z75DCA+P4Lmkohv0vzvhdbw/8XP89Mvv8u7hZ5+8p33t93mL8NKoYeYoIxERERERmUhk6SYBMht35hdTeT7N4LkRoxn0U9EO+j09S2DuzzP1vjb7h+lwcXE2ZfdEREREREREVFht+nPCgJ+IiIiIiIioiAb9RERERERERFS4GPQTERERERERFVEmteknIvOLiU3AsrU7zbY/B3s7NKgTjKBAf7Ptk4iIiIiIrAODfiILIYJzQa1WIyo6zqz7PnHmMoN+IiIiIqJiiEE/kYUQtfEiOE9JVZo1a0DcRDDnPomIiIiIyHow6CeyECL93twp+KKZgLmzBoiIiIiIyHqwIz8iIiIiIiKiIopBPxEREREREVERxaCfiIiIiIiIqIhi0E9ERERERERURDHoJyIiIiIiIiqiGPQTERERERERFVEM+omIiIiIiIiKKAb9REREREREREUUg34iIiIiIiKiIopBPxEREREREVERxaCfiIiIiIiIqIhi0E9ERERERERURDHoJyIiIiIiIiqiGPQTERERERERFVF2hV0AIiIiIiIiaxcbG4fO3QcatU1aGqBSqaBQKGBjk29FIyPY29tjw5p/UJQw6CciIiIiIjKRWq3G1Ws3eB6tnIODA4oapvcTERERERHlQdmg0jxvZPFY009ERERERJQH7779hkzrv3L1ep7OH9P7LY9I7y9qGPQTERERERHlga+PN2b/MD3P5y5VqUJ4ZCx8vd1hb6fgZ0D5gun9REREREREREUUg34iIiIiIiKiIorp/URERERExYgqJQFbPm9Z2MWgJ9TqNNjacry+wlC6fi/U7PNRkb8WGfQTERERERUD9i4ltPOpCVGFWhbSpeIJKRSqlMRiceYZ9BMRERERFQOVO7wKtSoVKfGPC7solKH3/lSlEvZ2drBhZX+Bc/UrXyyuRQb9RERERETFgHvJymj4/HeFXQzKgL33U0FgR35ERERERERERRSDfiIiIiIiIqIiiun9RMVATGwClq3dafyGaYBSpYadwhZgOzOTONjboUGdYAQF+pu2IyIiIiIiIzDoJyrigaagVqsRFR1X2MUp9k6cucygn4iIiIgKFIN+oiJM1CyLQDMlVZm3HbCm32yZFuLGS54/ByIiIiKiPGLQT1SEiVRyU9LJ2aOseYimFcy0ICIiIqLCwI78iIiIiIiIiIooBv1ERERE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",
      "text/plain": [
       "<Figure size 1032x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8.6, 4.8))\n",
    "overall = KaplanMeierFitter().fit(df[\"time_months\"], df[\"event\"], label=f\"all cases (n={len(df)})\")\n",
    "overall.plot_survival_function(ax=ax, color=INK, ci_show=False, lw=2.2)\n",
    "for color, g in zip([ACCENT, WARN, \"#7a5ea8\", MUTED], groups, strict=False):\n",
    "    sub = df[df[\"stage_group\"] == g]\n",
    "    KaplanMeierFitter().fit(\n",
    "        sub[\"time_months\"], sub[\"event\"], label=f\"{g} (n={len(sub)})\"\n",
    "    ).plot_survival_function(ax=ax, color=color, ci_show=False, lw=1.6)\n",
    "ax.set_xlabel(\"months since diagnosis\")\n",
    "ax.set_ylabel(\"survival probability\")\n",
    "ax.set_ylim(0, 1.02)\n",
    "ax.legend(frameon=False, fontsize=8.5, loc=\"lower left\")\n",
    "finish(ax, f\"{PROJECT_ID}: overall survival, and by stage at diagnosis\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d93e2317",
   "metadata": {},
   "source": [
    "## 5. Multivariable Cox model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "114f422a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-21T00:41:05.339675Z",
     "iopub.status.busy": "2026-09-21T00:41:05.339592Z",
     "iopub.status.idle": "2026-09-21T00:41:05.384993Z",
     "shell.execute_reply": "2026-09-21T00:41:05.384697Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "model cohort: 1,050 cases, 141 events\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                         coef  exp(coef)       p\n",
      "covariate                                       \n",
      "age                    0.0354     1.0360  0.0000\n",
      "stage_group_stage II   0.4640     1.5905  0.0898\n",
      "stage_group_stage III  1.1644     3.2041  0.0001\n",
      "stage_group_stage IV   2.3572    10.5609  0.0000\n",
      "\n",
      "concordance: 0.746\n"
     ]
    }
   ],
   "source": [
    "model_df = df[df[\"stage_group\"] != \"unknown\"].copy()\n",
    "model_df = model_df[model_df[\"age\"].notna()]\n",
    "design = pd.get_dummies(\n",
    "    model_df[[\"time_months\", \"event\", \"age\", \"stage_group\"]],\n",
    "    columns=[\"stage_group\"],\n",
    "    drop_first=True,\n",
    "    dtype=float,\n",
    ")\n",
    "\n",
    "print(f\"model cohort: {len(design):,} cases, {int(design['event'].sum())} events\")\n",
    "\n",
    "if len(design) >= 50 and design[\"event\"].sum() >= 10:\n",
    "    cph = CoxPHFitter()\n",
    "    cph.fit(design, duration_col=\"time_months\", event_col=\"event\")\n",
    "    summary = cph.summary[[\"coef\", \"exp(coef)\", \"p\"]].round(4)\n",
    "    print(summary.to_string())\n",
    "    print(f\"\\nconcordance: {cph.concordance_index_:.3f}\")\n",
    "else:\n",
    "    print(\"too few events for a stable Cox fit\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "513adbf1",
   "metadata": {},
   "source": [
    "## What this shows, and what it does not\n",
    "\n",
    "The analysis is complete and correct, and it runs on open data in about two minutes.\n",
    "It is also limited in ways that matter:\n",
    "\n",
    "- **The median patient is followed under three years**, though a minority reach twenty.\n",
    "  Breast cancer, especially hormone receptor positive disease, recurs over ten to twenty\n",
    "  years, so anything about late recurrence is thinly observed.\n",
    "- **Treatment is not in this model.** TCGA-BRCA records therapeutic agents for about\n",
    "  71% of cases and treatment outcome for 64%, and neither is adjusted for here. An\n",
    "  unadjusted survival model on an observational cohort mixes prognosis with treatment\n",
    "  selection.\n",
    "- **Stage is missing or unknown for a meaningful fraction**, which is why the Cox\n",
    "  cohort is smaller than the Kaplan-Meier cohort.\n",
    "\n",
    "Workbook 3 takes the treatment-response question seriously on a cohort where the\n",
    "treatment annotation supports it."
   ]
  }
 ],
 "metadata": {
  "cds": {
   "built_at": "2026-09-21T00:41:00.599906+00:00",
   "source": "workbooks/python/02_survival_tcga_brca.py"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
