Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>C>A</td>\n",
" <td>ACA</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>C>A</td>\n",
" <td>ACC</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 9693 columns</p>\n",
"</div>"
],
"text/plain": [
" Mutation type Trinucleotide ALL::TARGET-10-PAIXPH-03A-01D \\\n",
"0 C>A ACA 0 \n",
"1 C>A ACC 0 \n",
"\n",
" ALL::TARGET-10-PAKHZT-03A-01R ALL::TARGET-10-PAKMVD-09A-01D \\\n",
"0 0 0 \n",
"1 0 0 \n",
"\n",
" ALL::TARGET-10-PAKSWW-03A-01D ALL::TARGET-10-PALETF-03A-01D \\\n",
"0 1 0 \n",
"1 1 0 \n",
"\n",
" ALL::TARGET-10-PALLSD-09A-01D ALL::TARGET-10-PAMDKS-03A-01D \\\n",
"0 0 0 \n",
"1 0 0 \n",
"\n",
" ALL::TARGET-10-PAPJIB-04A-01D ... Head-SCC::V-109 Head-SCC::V-112 \\\n",
"0 2 ... 0 0 \n",
"1 0 ... 1 0 \n",
"\n",
" Head-SCC::V-116 Head-SCC::V-119 Head-SCC::V-123 Head-SCC::V-124 \\\n",
"0 0 0 0 0 \n",
"1 0 0 0 0 \n",
"\n",
" Head-SCC::V-125 Head-SCC::V-14 Head-SCC::V-29 Head-SCC::V-98 \n",
"0 0 0 0 1 \n",
"1 0 1 0 0 \n",
"\n",
"[2 rows x 9693 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"other_wes_mut = pd.read_csv(\"./project_data/catalogs/WES/WES_Other.96.csv\")\n",
"other_wes_mut.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Cancer Types</th>\n",
" <th>Sample Names</th>\n",
" <th>Accuracy</th>\n",
" <th>SBS1</th>\n",
" <th>SBS2</th>\n",
" <th>SBS3</th>\n",
" <th>SBS4</th>\n",
" <th>SBS5</th>\n",
" <th>SBS6</th>\n",
" <th>SBS7a</th>\n",
" <th>...</th>\n",
" <th>SBS51</th>\n",
" <th>SBS52</th>\n",
" <th>SBS53</th>\n",
" <th>SBS54</th>\n",
" <th>SBS55</th>\n",
" <th>SBS56</th>\n",
" <th>SBS57</th>\n",
" <th>SBS58</th>\n",
" <th>SBS59</th>\n",
" <th>SBS60</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>ALL</td>\n",
" <td>TARGET-10-PAIXPH-03A-01D</td>\n",
" <td>0.529</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ALL</td>\n",
" <td>TARGET-10-PAKHZT-03A-01R</td>\n",
" <td>0.696</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 68 columns</p>\n",
"</div>"
],
"text/plain": [
" Cancer Types Sample Names Accuracy SBS1 SBS2 SBS3 SBS4 \\\n",
"0 ALL TARGET-10-PAIXPH-03A-01D 0.529 0 0 0 0 \n",
"1 ALL TARGET-10-PAKHZT-03A-01R 0.696 0 0 0 0 \n",
"\n",
" SBS5 SBS6 SBS7a ... SBS51 SBS52 SBS53 SBS54 SBS55 SBS56 SBS57 \\\n",
"0 0 0 0 ... 0 0 0 1 0 0 0 \n",
"1 0 0 0 ... 0 0 0 1 0 0 0 \n",
"\n",
" SBS58 SBS59 SBS60 \n",
"0 0 0 0 \n",
"1 0 0 0 \n",
"\n",
"[2 rows x 68 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"other_wes_act = pd.read_csv(\"./project_data/activities/WES/WES_Other.activities.csv\")\n",
"other_wes_act.head(2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Imports and helpers"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"import numpy as np\n",
"import pandas as pd\n",
"import sklearn\n",
"from sklearn.decomposition import PCA\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"#import torch \n",
"\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"\n",
"from sklearn.metrics import accuracy_score\n",
"from sklearn.metrics import roc_auc_score\n",
"from sklearn.metrics import roc_curve\n",
"from sklearn.metrics import classification_report\n",
"\n",
"from sklearn.model_selection import cross_val_score, train_test_split, KFold\n",
"from sklearn.model_selection import StratifiedShuffleSplit\n",
"from sklearn.model_selection import StratifiedKFold, GridSearchCV\n",
"from sklearn.model_selection import learning_curve\n",
"\n",
"from sklearn.preprocessing import LabelEncoder\n",
"\n",
"# These ones are work in progress\n",
"def plot_roc_auc(X_tst, y_test, model, is_multi_class=False):\n",
" probs = model.predict_proba(X_tst)\n",
" probs = probs[:, 1]\n",
" if is_multi_class:\n",
" auc = roc_auc_score(y_test, probs, multi_class='ovo')\n",
" else:\n",
" auc = roc_auc_score(y_test, probs, multi_class='ovo')\n",
" \n",
" fp_rate, tp_rate, thresholds = roc_curve(y_test, probs)\n",
" \n",
" plt.figure(figsize=(7,6))\n",
" plt.axis('scaled')\n",
" plt.xlim([0,1])\n",
" plt.ylim([0,1])\n",
" plt.title(\"AUC & ROC\")\n",
" plt.plot(fp_rate, tp_rate, 'g')\n",
" plt.fill_between(fp_rate, tp_rate, facecolor = \"green\", alpha = 0.7)\n",
" plt.text(0.95, 0.05, f'AUC = {auc}', ha='right', fontsize=12, weight='bold', color='blue')\n",
" plt.xlabel(\"False Positive Rate\")\n",
" plt.ylabel(\"True Positive Rate\")\n",
"\n",
"def plot_confusion_mat(y_test, y_pred, labs=None, size=None):\n",
" cm = sklearn.metrics.confusion_matrix(y_test, y_pred)\n",
" if size is None:\n",
" plt.figure(figsize=(12,10))\n",
" else:\n",
" plt.figure(figsize=size)\n",
" if labs is None:\n",
" sns.heatmap(cm, square=False, annot=True, fmt='d', cmap='viridis', cbar=True)\n",
" else:\n",
" sns.heatmap(cm, square=False, annot=True, fmt='d', cmap='viridis', xticklabels=labs, yticklabels=labs, cbar=True)\n",
" plt.xlabel('Predicted label')\n",
" plt.ylabel('True label')\n",
" #plt.ylim(0, 2)\n",
"\n",
"def plot_learning_curve(model, X, y):\n",
" N, train_lc, val_lc = learning_curve(model, X, y, cv=7, train_sizes=np.linspace(0.3, 1, 25))\n",
" plt.figure(figsize=(7,6))\n",
" plt.title(\"Learning curve\")\n",
" plt.plot(N, np.mean(train_lc, 1), color='blue', label='training score')\n",
" plt.plot(N, np.mean(val_lc, 1), color='red', label='validation score')\n",
" #plt.hlines(N, np.mean([train_lc[-1], val_lc[-1]]), N[0], N[-1], color='gray', label='mean', linestyle='dashed')\n",
"\n",
"def plot_trn_tst_dist(y_all, y_train, y_test, y_pred, in_cols=False):\n",
" #fig = None\n",
" #ax = None\n",
" if in_cols:\n",
" fig, ax = plt.subplots(2,2)\n",
" else:\n",
" fig, ax = plt.subplots(4,1)\n",
"\n",
" fig.set_size_inches(15,8)\n",
"\n",
" plt_sets = [y_all, y_train, y_test, y_pred]\n",
" plt_labels = [\"All\", \"Train\", \"Test\", \"Pred\"]\n",
" plt_set_df = pd.DataFrame()\n",
" for i in range(len(plt_sets)):\n",
" s = pd.Series(plt_sets[i]).value_counts().sort_index()\n",
" plt_set_df[plt_labels[i]] = s\n",
" \n",
" pd.DataFrame({plt_labels[i]: s}).plot(ax=ax.flat[i], kind=\"bar\")\n",
" #sns.countplot(x=s, \n",
" # palette=sns.hls_palette(2),\n",
" # ax=ax[i])\n",
" ax.flat[i].tick_params(axis=\"x\", rotation=90)\n",
"\n",
" fig.tight_layout()\n",
" with pd.option_context('display.max_rows', None,\n",
" 'display.max_columns', None,\n",
" 'display.precision', 2,\n",
" ):\n",
" print(plt_set_df)\n",
"\n",
"\n",
" \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dataset preprocess, combine profile data to a single data frame\n",
"\n",
"From all profile sets, a combined data frame is made, which has samples in the rows and features in the columns."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Profile data:\n",
"\n",
"---Data set diagnostics print---\n",
"\n",
"Missing entries in mutations: 0\n",
"The shape of the mutations data frame (23829, 97)\n",
"Checking normalization: sum of some rows:\n",
" Thymoma::TCGA-4V-A9QI-01A-11D-A423-09 1.0\n",
"CNS::TCGA-06-0216-01B-01D-1492-08 1.0\n",
"Prost-AdenoCA::SP114926 1.0\n",
"CNS::TCGA-06-1802-01A-01W-0643-08 1.0\n",
"Sarcoma-bone::IC086T_WGS 1.0\n",
"dtype: float64\n",
"\n",
"\n",
"Some tumor counts:\n",
" Breast 1858\n",
"Lung 1668\n",
"CNS 1595\n",
"Liver 1358\n",
"Kidney 1269\n",
"Name: tumor_types, dtype: int64\n",
"\n",
"\n",
"Tumor types with smallish counts: 0\n",
"Series([], Name: tumor_types, dtype: int64)\n",
"\n",
"\n",
"Unique tumor types: 51\n",
"['ALL', 'AML', 'Adrenal-neoplasm', 'Biliary-AdenoCA', 'Bladder-TCC', 'Blood-CMDI', 'Bone', 'Breast', 'CNS', 'CNS-NOS', 'Cervix', 'ColoRect-AdenoCA', 'ColoRect-Adenoma', 'DLBC', 'Eso-AdenoCA', 'Eso-SCC', 'Ewings', 'Eye', 'Head-SCC', 'Kidney', 'Liver', 'Lung', 'Lymph', 'Meninges-Meningioma', 'Mesothelium-Mesothelioma', 'Myeloid', 'Neuroblastoma', 'Oral-SCC', 'Ovary-AdenoCA', 'Panc', 'Para-AdenoCA', 'Para-Adenoma', 'Pheochromocytoma', 'Pit-All', 'Prost-AdenoCA', 'Prost-Adenoma', 'Sarcoma', 'Sarcoma-bone', 'Skin-BCC', 'Skin-Melanoma', 'Skin-SCC', 'Small-Intestine-carcinoid', 'SoftTissue-Leiomyo', 'SoftTissue-Liposarc', 'Stomach-AdenoCA', 'Testis-CA', 'Thy-AdenoCA', 'Thymoma', 'Transitional-cell-carcinoma', 'UCS', 'Uterus-AdenoCA']\n"
]
}
],
"source": [
"\n",
"def prepare_mut_df(raw_mutation_dfs, is_profile, small_sample_limit=None):\n",
"\n",
" mutations_all = pd.DataFrame()\n",
"\n",
" for df in raw_mutation_dfs:\n",
" # Make a copy of the original data frame and start processing from there\n",
" mutations = df.copy()\n",
" \n",
" if is_profile:\n",
" mutations['mut_tri'] = mutations.apply(lambda a: '{}_{}'.format(a['Mutation type'], a['Trinucleotide']), axis=1)\n",
" mutations = mutations.set_index('mut_tri').drop(['Mutation type', 'Trinucleotide'], axis=1)\n",
" mutations = mutations.T\n",
" else:\n",
" mutations['mut_tri'] = mutations.apply(lambda a: '{}::{}'.format(a['Cancer Types'], a['Sample Names']), axis=1)\n",
" mutations = mutations.set_index('mut_tri').drop(['Cancer Types', 'Sample Names', 'Accuracy'], axis=1)\n",
" \n",
" # Rename some index names\n",
" renamed_items = list(mutations.index)\n",
" index_items = list(mutations.index)\n",
"\n",
" # Combine rows for low count labels\n",
" for i in range(len(index_items)):\n",
" result = index_items[i]\n",
" for to_sub in ['Bone', 'Breast', 'Cervix', 'CNS', 'Eye', 'Liver', 'Lymph', 'Lung', 'Kidney', 'Myeloid', 'Panc' ]:\n",
" result = re.sub( to_sub + r'(-\\w*)', to_sub, result)\n",
" \n",
" renamed_items[i] = result.replace('Ca', 'CA')\n",
" \n",
" mutations.rename(index=dict(zip(index_items, renamed_items)), inplace = True)\n",
" \n",
" # Normalize \n",
" row_sums = mutations.sum(axis=1)\n",
" mutations = mutations.divide(row_sums, axis = 0)\n",
"\n",
" mutations_all = pd.concat([mutations_all, mutations])\n",
"\n",
" mutations_all.sort_index(inplace=True)\n",
"\n",
" # Do we need to renormalize after obtaining the full dataframe?\n",
" \n",
" # Figure out tumor types based on the first part of the index\n",
" tumor_types = [a.split(':')[0] for a in mutations_all.index]\n",
" # Prepare a list with all the types appearing only once\n",
" unique_tumor_types = sorted(list(set(tumor_types)))\n",
" # Attach this back to the frame\n",
" mutations_all[\"tumor_types\"] = tumor_types\n",
"\n",
" # Get rid of types with very few samples if the limit is specified\n",
" if small_sample_limit is not None:\n",
" counts = mutations_all[\"tumor_types\"].value_counts()\n",
" small_counts = list(counts[counts < small_sample_limit].index)\n",
" mutations_all = mutations_all.loc[~mutations_all[\"tumor_types\"].isin(small_counts)]\n",
"\n",
" \n",
" return (mutations_all, unique_tumor_types)\n",
"\n",
"\n",
"def print_dset_diag(mut_df, unique_tumor_types, small_sample_limit):\n",
" # Check if the data frame is ok\n",
" print(\"\\n---Data set diagnostics print---\\n\")\n",
" print(\"Missing entries in mutations:\", mut_df.isnull().sum().sum())\n",
" print(\"The shape of the mutations data frame\", mut_df.shape)\n",
"\n",
" # Check to see if the rows are normalized to one, take a sample from the data frame\n",
" norm_df = mut_df.sample(n=5, random_state=5)\n",
" print(\"Checking normalization: sum of some rows:\\n\", norm_df.iloc[:,0:-1].sum(axis=1))\n",
" print(\"\\n\")\n",
"\n",
" # Check some counts of tumor types\n",
" tumor_counts = mut_df[\"tumor_types\"].value_counts() #.sort_values(ascending=True)\n",
" print(\"Some tumor counts:\\n\", tumor_counts.head(5))\n",
" print(\"\\n\")\n",
"\n",
" small_counts = tumor_counts < 1.5*small_sample_limit\n",
" print(\"Tumor types with smallish counts:\", sum(small_counts))\n",
"\n",
" print(tumor_counts[small_counts])\n",
" print(\"\\n\")\n",
"\n",
" # Tumor types\n",
" print(\"Unique tumor types: \", len(unique_tumor_types))\n",
" print(unique_tumor_types)\n",
"\n",
"\n",
"small_sample_limit = 0\n",
"\n",
"profile_raw_data_sets = [PCAWG_wgs_mut, TCGA_wes_mut, nonPCAWG_wgs_mut, other_wes_mut]\n",
"profile_mut_all, prf_unique_tumor_types = prepare_mut_df(profile_raw_data_sets, True, small_sample_limit)\n",
"\n",
"# Print some diagnostics from the prepared data set\n",
"print(\"Profile data:\")\n",
"print_dset_diag(profile_mut_all, prf_unique_tumor_types, small_sample_limit)\n",
"\n",
"# Data matrix X for fitting, omit the tumor labeling from there, use that information in constructing true y\n",
"# Note: this contains profile data only\n",
"X_prf = profile_mut_all.drop(\"tumor_types\", axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dataset preprocess for activites data"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Activities data:\n",
"\n",
"---Data set diagnostics print---\n",
"\n",
"Missing entries in mutations: 0\n",
"The shape of the mutations data frame (23829, 66)\n",
"Checking normalization: sum of some rows:\n",
" mut_tri\n",
"Thymoma::TCGA-4V-A9QI-01A-11D-A423-09 1.0\n",
"CNS::TCGA-06-0216-01B-01D-1492-08 1.0\n",
"Prost-AdenoCA::SP114926 1.0\n",
"CNS::TCGA-06-1802-01A-01W-0643-08 1.0\n",
"Sarcoma-bone::IC086T_WGS 1.0\n",
"dtype: float64\n",
"\n",
"\n",
"Some tumor counts:\n",
" Breast 1858\n",
"Lung 1668\n",
"CNS 1595\n",
"Liver 1358\n",
"Kidney 1269\n",
"Name: tumor_types, dtype: int64\n",
"\n",
"\n",
"Tumor types with smallish counts: 0\n",
"Series([], Name: tumor_types, dtype: int64)\n",
"\n",
"\n",
"Unique tumor types: 51\n",
"['ALL', 'AML', 'Adrenal-neoplasm', 'Biliary-AdenoCA', 'Bladder-TCC', 'Blood-CMDI', 'Bone', 'Breast', 'CNS', 'CNS-NOS', 'Cervix', 'ColoRect-AdenoCA', 'ColoRect-Adenoma', 'DLBC', 'Eso-AdenoCA', 'Eso-SCC', 'Ewings', 'Eye', 'Head-SCC', 'Kidney', 'Liver', 'Lung', 'Lymph', 'Meninges-Meningioma', 'Mesothelium-Mesothelioma', 'Myeloid', 'Neuroblastoma', 'Oral-SCC', 'Ovary-AdenoCA', 'Panc', 'Para-AdenoCA', 'Para-Adenoma', 'Pheochromocytoma', 'Pit-All', 'Prost-AdenoCA', 'Prost-Adenoma', 'Sarcoma', 'Sarcoma-bone', 'Skin-BCC', 'Skin-Melanoma', 'Skin-SCC', 'Small-Intestine-carcinoid', 'SoftTissue-Leiomyo', 'SoftTissue-Liposarc', 'Stomach-AdenoCA', 'Testis-CA', 'Thy-AdenoCA', 'Thymoma', 'Transitional-cell-carcinoma', 'UCS', 'Uterus-AdenoCA']\n"
]
}
],
"source": [
"act_raw_data_sets = [PCAWG_wgs_act, TCGA_wes_act, nonPCAWG_wgs_act, other_wes_act]\n",
"act_mut_all, act_unique_tumor_types = prepare_mut_df(act_raw_data_sets, is_profile=False, small_sample_limit=small_sample_limit)\n",
"\n",
"# Print some diagnostics from the prepared data set\n",
"print(\"Activities data:\")\n",
"print_dset_diag(act_mut_all, act_unique_tumor_types, small_sample_limit)\n",
"\n",
"# Data matrix X for fitting, omit the tumor labeling from there, use that information in constructing true y\n",
"# Note: this contains profile data only\n",
"X_act = act_mut_all.drop(\"tumor_types\", axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Check profile data content"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Some content from the full profile set:\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>mut_tri</th>\n",
" <th>C>A_ACA</th>\n",
" <th>C>A_ACC</th>\n",
" <th>C>A_ACG</th>\n",
" <th>C>A_ACT</th>\n",
" <th>C>A_CCA</th>\n",
" <th>C>A_CCC</th>\n",
" <th>C>A_CCG</th>\n",
" <th>C>A_CCT</th>\n",
" <th>C>A_GCA</th>\n",
" <th>C>A_GCC</th>\n",
" <th>...</th>\n",
" <th>T>G_CTT</th>\n",
" <th>T>G_GTA</th>\n",
" <th>T>G_GTC</th>\n",
" <th>T>G_GTG</th>\n",
" <th>T>G_GTT</th>\n",
" <th>T>G_TTA</th>\n",
" <th>T>G_TTC</th>\n",
" <th>T>G_TTG</th>\n",
" <th>T>G_TTT</th>\n",
" <th>tumor_types</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>ALL::11</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.133333</td>\n",
" <td>0.066667</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.066667</td>\n",
" <td>0.0</td>\n",
" <td>0.066667</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211636</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211638</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.333333</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211640</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211642</th>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 97 columns</p>\n",
"</div>"
],
"text/plain": [
"mut_tri C>A_ACA C>A_ACC C>A_ACG C>A_ACT C>A_CCA C>A_CCC C>A_CCG \\\n",
"ALL::11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"ALL::2211636 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"ALL::2211638 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"ALL::2211640 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"ALL::2211642 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"\n",
"mut_tri C>A_CCT C>A_GCA C>A_GCC ... T>G_CTT T>G_GTA T>G_GTC \\\n",
"ALL::11 0.133333 0.066667 0.0 ... 0.066667 0.0 0.066667 \n",
"ALL::2211636 0.000000 0.000000 0.0 ... 0.000000 0.0 0.000000 \n",
"ALL::2211638 0.000000 0.000000 0.0 ... 0.000000 0.0 0.000000 \n",
"ALL::2211640 0.000000 0.000000 0.0 ... 0.000000 0.0 0.000000 \n",
"ALL::2211642 0.000000 0.000000 0.0 ... 0.000000 0.0 0.000000 \n",
"\n",
"mut_tri T>G_GTG T>G_GTT T>G_TTA T>G_TTC T>G_TTG T>G_TTT \\\n",
"ALL::11 0.0 0.0 0.000000 0.0 0.0 0.0 \n",
"ALL::2211636 0.0 0.0 0.000000 0.0 0.0 0.0 \n",
"ALL::2211638 0.0 0.0 0.333333 0.0 0.0 0.0 \n",
"ALL::2211640 0.0 0.0 0.000000 0.0 0.0 0.0 \n",
"ALL::2211642 0.0 0.0 0.000000 0.0 0.0 0.0 \n",
"\n",
"mut_tri tumor_types \n",
"ALL::11 ALL \n",
"ALL::2211636 ALL \n",
"ALL::2211638 ALL \n",
"ALL::2211640 ALL \n",
"ALL::2211642 ALL \n",
"\n",
"[5 rows x 97 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(\"Some content from the full profile set:\")\n",
"profile_mut_all.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 1800x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(25, 5))\n",
"sns.set_theme()\n",
"profile_mut_all[\"tumor_types\"].value_counts().sort_index().plot(kind=\"bar\")\n",
"#sns.countplot(x=profile_mut_all[\"tumor_types\"], palette=sns.hls_palette(2))\n",
"plt.xticks(rotation=90);\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Check activites data content"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Some content from the full act set:\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SBS1</th>\n",
" <th>SBS2</th>\n",
" <th>SBS3</th>\n",
" <th>SBS4</th>\n",
" <th>SBS5</th>\n",
" <th>SBS6</th>\n",
" <th>SBS7a</th>\n",
" <th>SBS7b</th>\n",
" <th>SBS7c</th>\n",
" <th>SBS7d</th>\n",
" <th>...</th>\n",
" <th>SBS52</th>\n",
" <th>SBS53</th>\n",
" <th>SBS54</th>\n",
" <th>SBS55</th>\n",
" <th>SBS56</th>\n",
" <th>SBS57</th>\n",
" <th>SBS58</th>\n",
" <th>SBS59</th>\n",
" <th>SBS60</th>\n",
" <th>tumor_types</th>\n",
" </tr>\n",
" <tr>\n",
" <th>mut_tri</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>ALL::11</th>\n",
" <td>0.066667</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.066667</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211636</th>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211638</th>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.333333</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.666667</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211640</th>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>ALL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALL::2211642</th>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",