Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Project Tasks"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the first few assignments, we have learned how to infer part based components (known as mutational signatures) generated by particular mutational processes using Non-negative Matrix Factorization (NMF). By doing this, we are trying to reconstruct the mutation catalog in a given sample with mutational signatures and their contributions.\n",
"\n",
"In this group project, you will use similar mutational profiles and signature activities to predict cancer types but with much larger sample size. \n",
"You should:\n",
"* Separate the data into training and test groups within each cancer type.\n",
"* Find out which features are informative for the prediction of the cancer type (label). You should combine the profiles and activities and use each data type independently.\n",
"* Implement different models for classification of the samples given the input data and evaluate the model performance using test data to avoid overfitting. Explain briefly how does each model that you have used work.\n",
"* Report model performance, using standard machine learning metrics such as confusion matrices etc. \n",
"* Compare model performance across methods and across cancer types, are some types easier top predict than others.\n",
"* Submit a single Jupyter notebook as the final report and present that during the last assignment session "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The data include both mutational catalogs from multiple cancers and the predicted activities in the paper [\"Alexandrov LB, et al. (2020) The repertoire of mutational signatures in human cancer\"](https://www.nature.com/articles/s41586-020-1943-3). The data either are generated from whole human genome (WGS) or only exomes regions (WES). Since the exome region only constitutes about 1% of human genome, the total mutation numbers in these samples are, of course, much smaller. So if you plan to use WGS together with WES data, remember to normalize the profile for each sample to sum up to 1.\n",
"\n",
"Note that, the data is generated from different platforms by different research groups, some of them (e.g. labeled with PCAWG, TCGA) are processed with the same bioinformatics pipeline. Thus, these samples will have less variability related to data processing pipelines."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cancer types might be labeled under the same tissue, e.g. 'Bone-Benign','Bone-Epith', which can also be combined together or take the one has more samples."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is a link to background reading [\"Pan-Cancer Analysis of Whole Genomes\"](https://www.nature.com/collections/afdejfafdb). Have a look especially the paper [\"A deep learning system accurately classifies primary and metastatic cancers using passenger mutation patterns\"](https://www.nature.com/articles/s41467-019-13825-8)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import re"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mutational catalogs and activities - WGS data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"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>Mutation type</th>\n",
" <th>Trinucleotide</th>\n",
" <th>Biliary-AdenoCA::SP117655</th>\n",
" <th>Biliary-AdenoCA::SP117556</th>\n",
" <th>Biliary-AdenoCA::SP117627</th>\n",
" <th>Biliary-AdenoCA::SP117775</th>\n",
" <th>Biliary-AdenoCA::SP117332</th>\n",
" <th>Biliary-AdenoCA::SP117712</th>\n",
" <th>Biliary-AdenoCA::SP117017</th>\n",
" <th>Biliary-AdenoCA::SP117031</th>\n",
" <th>...</th>\n",
" <th>Uterus-AdenoCA::SP94540</th>\n",
" <th>Uterus-AdenoCA::SP95222</th>\n",
" <th>Uterus-AdenoCA::SP89389</th>\n",
" <th>Uterus-AdenoCA::SP90503</th>\n",
" <th>Uterus-AdenoCA::SP92460</th>\n",
" <th>Uterus-AdenoCA::SP92931</th>\n",
" <th>Uterus-AdenoCA::SP91265</th>\n",
" <th>Uterus-AdenoCA::SP89909</th>\n",
" <th>Uterus-AdenoCA::SP90629</th>\n",
" <th>Uterus-AdenoCA::SP95550</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>C>A</td>\n",
" <td>ACA</td>\n",
" <td>269</td>\n",
" <td>114</td>\n",
" <td>105</td>\n",
" <td>217</td>\n",
" <td>52</td>\n",
" <td>192</td>\n",
" <td>54</td>\n",
" <td>196</td>\n",
" <td>...</td>\n",
" <td>117</td>\n",
" <td>233</td>\n",
" <td>94</td>\n",
" <td>114</td>\n",
" <td>257</td>\n",
" <td>139</td>\n",
" <td>404</td>\n",
" <td>97</td>\n",
" <td>250</td>\n",
" <td>170</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>C>A</td>\n",
" <td>ACC</td>\n",
" <td>148</td>\n",
" <td>56</td>\n",
" <td>71</td>\n",
" <td>123</td>\n",
" <td>36</td>\n",
" <td>139</td>\n",
" <td>54</td>\n",
" <td>102</td>\n",
" <td>...</td>\n",
" <td>90</td>\n",
" <td>167</td>\n",
" <td>59</td>\n",
" <td>64</td>\n",
" <td>268</td>\n",
" <td>75</td>\n",
" <td>255</td>\n",
" <td>78</td>\n",
" <td>188</td>\n",
" <td>137</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 2782 columns</p>\n",
"</div>"
],
"text/plain": [
" Mutation type Trinucleotide Biliary-AdenoCA::SP117655 \\\n",
"0 C>A ACA 269 \n",
"1 C>A ACC 148 \n",
"\n",
" Biliary-AdenoCA::SP117556 Biliary-AdenoCA::SP117627 \\\n",
"0 114 105 \n",
"1 56 71 \n",
"\n",
" Biliary-AdenoCA::SP117775 Biliary-AdenoCA::SP117332 \\\n",
"0 217 52 \n",
"1 123 36 \n",
"\n",
" Biliary-AdenoCA::SP117712 Biliary-AdenoCA::SP117017 \\\n",
"0 192 54 \n",
"1 139 54 \n",
"\n",
" Biliary-AdenoCA::SP117031 ... Uterus-AdenoCA::SP94540 \\\n",
"0 196 ... 117 \n",
"1 102 ... 90 \n",
"\n",
" Uterus-AdenoCA::SP95222 Uterus-AdenoCA::SP89389 Uterus-AdenoCA::SP90503 \\\n",
"0 233 94 114 \n",
"1 167 59 64 \n",
"\n",
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
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
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
" Uterus-AdenoCA::SP92460 Uterus-AdenoCA::SP92931 Uterus-AdenoCA::SP91265 \\\n",
"0 257 139 404 \n",
"1 268 75 255 \n",
"\n",
" Uterus-AdenoCA::SP89909 Uterus-AdenoCA::SP90629 Uterus-AdenoCA::SP95550 \n",
"0 97 250 170 \n",
"1 78 188 137 \n",
"\n",
"[2 rows x 2782 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## PCAWG data is performed by the same pipeline\n",
"PCAWG_wgs_mut = pd.read_csv (\"./project_data/catalogs/WGS/WGS_PCAWG.96.csv\")\n",
"PCAWG_wgs_mut.head(2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Accuracy is the cosine similarity of reconstruct catalog to the observed catalog "
]
},
{
"cell_type": "code",
"execution_count": 3,
"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>Biliary-AdenoCA</td>\n",
" <td>SP117655</td>\n",
" <td>0.968</td>\n",
" <td>1496</td>\n",
" <td>1296</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1825</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>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",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Biliary-AdenoCA</td>\n",
" <td>SP117556</td>\n",
" <td>0.963</td>\n",
" <td>985</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>922</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>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",
" </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 SBS5 SBS6 \\\n",
"0 Biliary-AdenoCA SP117655 0.968 1496 1296 0 0 1825 0 \n",
"1 Biliary-AdenoCA SP117556 0.963 985 0 0 0 922 0 \n",
"\n",
" SBS7a ... SBS51 SBS52 SBS53 SBS54 SBS55 SBS56 SBS57 SBS58 SBS59 \\\n",
"0 0 ... 0 0 0 0 0 0 0 0 0 \n",
"1 0 ... 0 0 0 0 0 0 0 0 0 \n",
"\n",
" SBS60 \n",
"0 0 \n",
"1 0 \n",
"\n",
"[2 rows x 68 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Activities:\n",
"PCAWG_wgs_act = pd.read_csv (\"./project_data/activities/WGS/WGS_PCAWG.activities.csv\")\n",
"PCAWG_wgs_act.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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>Mutation type</th>\n",
" <th>Trinucleotide</th>\n",
" <th>ALL::PD4020a</th>\n",
" <th>ALL::SJBALL011_D</th>\n",
" <th>ALL::SJBALL012_D</th>\n",
" <th>ALL::SJBALL020013_D1</th>\n",
" <th>ALL::SJBALL020422_D1</th>\n",
" <th>ALL::SJBALL020579_D1</th>\n",
" <th>ALL::SJBALL020589_D1</th>\n",
" <th>ALL::SJBALL020625_D1</th>\n",
" <th>...</th>\n",
" <th>Stomach-AdenoCa::pfg316T</th>\n",
" <th>Stomach-AdenoCa::pfg317T</th>\n",
" <th>Stomach-AdenoCa::pfg344T</th>\n",
" <th>Stomach-AdenoCa::pfg373T</th>\n",
" <th>Stomach-AdenoCa::pfg375T</th>\n",
" <th>Stomach-AdenoCa::pfg378T</th>\n",
" <th>Stomach-AdenoCa::pfg398T</th>\n",
" <th>Stomach-AdenoCa::pfg413T</th>\n",
" <th>Stomach-AdenoCa::pfg416T</th>\n",
" <th>Stomach-AdenoCa::pfg424T</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>C>A</td>\n",
" <td>ACA</td>\n",
" <td>35</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>...</td>\n",
" <td>133</td>\n",
" <td>185</td>\n",
" <td>202</td>\n",
" <td>185</td>\n",
" <td>96</td>\n",
" <td>134</td>\n",
" <td>12</td>\n",
" <td>279</td>\n",
" <td>75</td>\n",
" <td>135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>C>A</td>\n",
" <td>ACC</td>\n",
" <td>16</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>5</td>\n",
" <td>9</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>48</td>\n",
" <td>70</td>\n",
" <td>126</td>\n",
" <td>88</td>\n",
" <td>35</td>\n",
" <td>54</td>\n",
" <td>16</td>\n",
" <td>112</td>\n",
" <td>31</td>\n",
" <td>91</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 1867 columns</p>\n",
"</div>"
],
"text/plain": [
" Mutation type Trinucleotide ALL::PD4020a ALL::SJBALL011_D \\\n",
"0 C>A ACA 35 9 \n",
"1 C>A ACC 16 2 \n",
"\n",
" ALL::SJBALL012_D ALL::SJBALL020013_D1 ALL::SJBALL020422_D1 \\\n",
"0 2 7 5 \n",
"1 4 10 5 \n",
"\n",
" ALL::SJBALL020579_D1 ALL::SJBALL020589_D1 ALL::SJBALL020625_D1 ... \\\n",
"0 7 3 5 ... \n",
"1 9 1 2 ... \n",
"\n",
" Stomach-AdenoCa::pfg316T Stomach-AdenoCa::pfg317T \\\n",
"0 133 185 \n",
"1 48 70 \n",
"\n",
" Stomach-AdenoCa::pfg344T Stomach-AdenoCa::pfg373T \\\n",
"0 202 185 \n",
"1 126 88 \n",
"\n",
" Stomach-AdenoCa::pfg375T Stomach-AdenoCa::pfg378T \\\n",
"0 96 134 \n",
"1 35 54 \n",
"\n",
" Stomach-AdenoCa::pfg398T Stomach-AdenoCa::pfg413T \\\n",
"0 12 279 \n",
"1 16 112 \n",
"\n",
" Stomach-AdenoCa::pfg416T Stomach-AdenoCa::pfg424T \n",
"0 75 135 \n",
"1 31 91 \n",
"\n",
"[2 rows x 1867 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nonPCAWG_wgs_mut = pd.read_csv (\"./project_data/catalogs/WGS/WGS_Other.96.csv\")\n",
"nonPCAWG_wgs_mut.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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>PD4020a</td>\n",
" <td>0.995</td>\n",
" <td>208</td>\n",
" <td>3006</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>365</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>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",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ALL</td>\n",
" <td>SJBALL011_D</td>\n",
" <td>0.905</td>\n",
" <td>66</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>144</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>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",
" </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 SBS5 SBS6 \\\n",
"0 ALL PD4020a 0.995 208 3006 0 0 365 0 \n",
"1 ALL SJBALL011_D 0.905 66 0 0 0 144 0 \n",
"\n",
" SBS7a ... SBS51 SBS52 SBS53 SBS54 SBS55 SBS56 SBS57 SBS58 SBS59 \\\n",
"0 0 ... 0 0 0 0 0 0 0 0 0 \n",
"1 0 ... 0 0 0 0 0 0 0 0 0 \n",
"\n",
" SBS60 \n",
"0 0 \n",
"1 0 \n",
"\n",
"[2 rows x 68 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nonPCAWG_wgs_act = pd.read_csv (\"./project_data/activities/WGS/WGS_Other.activities.csv\")\n",
"nonPCAWG_wgs_act.head(2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mutational catalogs - WES data"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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>Mutation type</th>\n",
" <th>Trinucleotide</th>\n",
" <th>AML::TCGA-AB-2802-03B-01W-0728-08</th>\n",
" <th>AML::TCGA-AB-2803-03B-01W-0728-08</th>\n",
" <th>AML::TCGA-AB-2804-03B-01W-0728-08</th>\n",
" <th>AML::TCGA-AB-2805-03B-01W-0728-08</th>\n",
" <th>AML::TCGA-AB-2806-03B-01W-0728-08</th>\n",
" <th>AML::TCGA-AB-2807-03B-01W-0728-08</th>\n",
" <th>AML::TCGA-AB-2808-03B-01W-0728-08</th>\n",
" <th>AML::TCGA-AB-2809-03D-01W-0755-09</th>\n",
" <th>...</th>\n",
" <th>Eye-Melanoma::TCGA-WC-A885-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-WC-A888-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-WC-A88A-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-WC-AA9A-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-WC-AA9E-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-YZ-A980-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-YZ-A982-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-YZ-A983-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-YZ-A984-01A-11D-A39W-08</th>\n",
" <th>Eye-Melanoma::TCGA-YZ-A985-01A-11D-A39W-08</th>\n",
" </tr>\n",
" </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>0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>2</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>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>C>A</td>\n",
" <td>ACC</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>0</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>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 9495 columns</p>\n",
"</div>"
],
"text/plain": [
" Mutation type Trinucleotide AML::TCGA-AB-2802-03B-01W-0728-08 \\\n",
"0 C>A ACA 0 \n",
"1 C>A ACC 0 \n",
"\n",
" AML::TCGA-AB-2803-03B-01W-0728-08 AML::TCGA-AB-2804-03B-01W-0728-08 \\\n",
"0 0 0 \n",
"1 2 0 \n",
"\n",
" AML::TCGA-AB-2805-03B-01W-0728-08 AML::TCGA-AB-2806-03B-01W-0728-08 \\\n",
"0 0 4 \n",
"1 0 0 \n",
"\n",
" AML::TCGA-AB-2807-03B-01W-0728-08 AML::TCGA-AB-2808-03B-01W-0728-08 \\\n",
"0 0 2 \n",
"1 1 3 \n",
"\n",
" AML::TCGA-AB-2809-03D-01W-0755-09 ... \\\n",
"0 0 ... \n",
"1 0 ... \n",
"\n",
" Eye-Melanoma::TCGA-WC-A885-01A-11D-A39W-08 \\\n",
"0 1 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-WC-A888-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-WC-A88A-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-WC-AA9A-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-WC-AA9E-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-YZ-A980-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-YZ-A982-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-YZ-A983-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 1 \n",
"\n",
" Eye-Melanoma::TCGA-YZ-A984-01A-11D-A39W-08 \\\n",
"0 0 \n",
"1 0 \n",
"\n",
" Eye-Melanoma::TCGA-YZ-A985-01A-11D-A39W-08 \n",
"0 0 \n",
"1 0 \n",
"\n",
"[2 rows x 9495 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Performed by TCGA pipeline\n",
"TCGA_wes_mut = pd.read_csv (\"./project_data/catalogs/WES/WES_TCGA.96.csv\")\n",
"TCGA_wes_mut.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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>AML</td>\n",
" <td>TCGA-AB-2802-03B-01W-0728-08</td>\n",
" <td>0.811</td>\n",
" <td>3</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>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",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AML</td>\n",
" <td>TCGA-AB-2803-03B-01W-0728-08</td>\n",
" <td>0.608</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>7</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>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",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 68 columns</p>\n",
"</div>"
],
"text/plain": [
" Cancer Types Sample Names Accuracy SBS1 SBS2 SBS3 \\\n",
"0 AML TCGA-AB-2802-03B-01W-0728-08 0.811 3 0 0 \n",
"1 AML TCGA-AB-2803-03B-01W-0728-08 0.608 4 0 0 \n",
"\n",
" SBS4 SBS5 SBS6 SBS7a ... SBS51 SBS52 SBS53 SBS54 SBS55 SBS56 \\\n",
"0 0 0 0 0 ... 0 0 0 0 0 0 \n",
"1 0 7 0 0 ... 0 0 0 0 0 0 \n",
"\n",
" SBS57 SBS58 SBS59 SBS60 \n",
"0 0 0 0 0 \n",
"1 0 0 0 0 \n",
"\n",
"[2 rows x 68 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"##Activities\n",
"TCGA_wes_act = pd.read_csv(\"./project_data/activities/WES/WES_TCGA.activities.csv\")\n",
"TCGA_wes_act.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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>Mutation type</th>\n",
" <th>Trinucleotide</th>\n",
" <th>ALL::TARGET-10-PAIXPH-03A-01D</th>\n",
" <th>ALL::TARGET-10-PAKHZT-03A-01R</th>\n",
" <th>ALL::TARGET-10-PAKMVD-09A-01D</th>\n",
" <th>ALL::TARGET-10-PAKSWW-03A-01D</th>\n",
" <th>ALL::TARGET-10-PALETF-03A-01D</th>\n",
" <th>ALL::TARGET-10-PALLSD-09A-01D</th>\n",
" <th>ALL::TARGET-10-PAMDKS-03A-01D</th>\n",
" <th>ALL::TARGET-10-PAPJIB-04A-01D</th>\n",
" <th>...</th>\n",
" <th>Head-SCC::V-109</th>\n",
" <th>Head-SCC::V-112</th>\n",
" <th>Head-SCC::V-116</th>\n",
" <th>Head-SCC::V-119</th>\n",
" <th>Head-SCC::V-123</th>\n",
" <th>Head-SCC::V-124</th>\n",
" <th>Head-SCC::V-125</th>\n",
" <th>Head-SCC::V-14</th>\n",
" <th>Head-SCC::V-29</th>\n",
" <th>Head-SCC::V-98</th>\n",
" </tr>\n",
" </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",
" <td>0.0</td>\n",
" <td>0.250000</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",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 66 columns</p>\n",
"</div>"
],
"text/plain": [
" SBS1 SBS2 SBS3 SBS4 SBS5 SBS6 SBS7a SBS7b SBS7c \\\n",
"mut_tri \n",
"ALL::11 0.066667 0.0 0.0 0.0 0.066667 0.0 0.0 0.0 0.0 \n",
"ALL::2211636 0.000000 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 \n",
"ALL::2211638 0.000000 0.0 0.0 0.0 0.333333 0.0 0.0 0.0 0.0 \n",
"ALL::2211640 0.000000 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 \n",
"ALL::2211642 0.000000 0.0 0.0 0.0 0.250000 0.0 0.0 0.0 0.0 \n",
"\n",
" SBS7d ... SBS52 SBS53 SBS54 SBS55 SBS56 SBS57 SBS58 \\\n",
"mut_tri ... \n",
"ALL::11 0.0 ... 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 0.0 \n",
"ALL::2211638 0.0 ... 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 0.0 \n",
"ALL::2211642 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"\n",
" SBS59 SBS60 tumor_types \n",
"mut_tri \n",
"ALL::11 0.000000 0.0 ALL \n",
"ALL::2211636 0.000000 0.0 ALL \n",
"ALL::2211638 0.666667 0.0 ALL \n",
"ALL::2211640 0.000000 0.0 ALL \n",
"ALL::2211642 0.000000 0.0 ALL \n",
"\n",
"[5 rows x 66 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(\"Some content from the full act set:\")\n",
"act_mut_all.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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sdasWaPo6Gi1bdtWY8aMUd++ffXyyy8biRUXF6eoqCjPSOaqVasaKUFRpEiRPO9jvr6+xtr0o0eP1osvvqiJEyfq7bff1vz58x3vPC5SJP/KrSaO66677pIkTZ8+XfPmzfPEuO+++9SjRw8jI0eXLFmijz76yHPP6datmzp16mQkMZ2enq709HTPuZKWlpbtecQptu5rzZo103XXXacuXbrojTfeUPHixXX//fc7GiOrNm3a6PTp02rTpo2io6NVtWpVBQUFGUtKS9KsWbO0ePFi9ezZUzExMfr666+NzaSyeW20mRuZN2+eoqKidObMGbVt21YxMTHq0qWLpzPICV6XmM5v+ojL5VJiYqLj8X777bd8X3P6wdvt+uuv15kzZxy/ceVl1apVioqK0rfffquHH35Y48aNU3h4uHr16mUkXl4XJRMj2a699lrP/7vrIVesWNHxODnZeLj67rvvtHjxYv3555/ZHsSvuuoqx5NX6enpSk5OVsmSJbVlyxY99dRTntecvkmnp6crLS1NxYoV03fffefpgZcyHwpMycjIUHJysooWLarU1FQj5+OCBQtUv3599erVS40aNZJkviPNfSMrVaqU/vjjD1199dWO1YjKydb32nZy4nznnalz0v292rhxo1q1apVvQ8opO3fuVGRkpNatWydJKl26tDIyMhyNcerUKV199dW5tleuXFmnT592NFZWDRs2VMOGDfXzzz+rd+/eev/999W8eXOFh4crICDA0VjHjh3TY489pgYNGnim/UsyMvVz8+bN2UZxuhuD77//vlq1auVorO+//15xcXHZknMm2WjEu23btk1Lly5VcHCwnn32WXXu3DnPGRKXw/0ssnnzZv33v//1bB8+fLi6du1qbEbJJ598ooULF6pTp0565513tHPnTs2ePdvRGOfrCD916pSjsQriHipJRYsW1YEDBzwdWvv373f8etysWTM1bNhQL7/8su68805JmbNJTLJxfmRlI2nwwQcfOPp+F2KjEZ/Tvn37NH36dK1atUqtW7fWQw89ZLS9VrRoUfn4+CgtLU1VqlTR4cOHjcQqUaJErnuMie93amqqUlJSVLJkyWzbT506ZSTx6I7ZuHFjuVwuVa5cWQMGDFC3bt0c/7sdO3YsVzv32LFjRmeTJyQk6OzZs56yn6mpqTpy5IixeFk7QvPqFHVK06ZNNWDAAHXv3l1S5ne9WbNmjsexdV/717/+pQ0bNmjdunWqUqWKp2PBFF9fX08y350rM32/Llq0qCpVquTpOL7nnns0ffp0I7FsXhtt5kYmTJigxo0ba8yYMZ5nHqf/bl6XmDY1aiw/57txmJoa/NJLL6lr165q0KBBtoSPiSlGffv2VePGjfXpp596bmimLh5nz57VuXPnVLRo9tMyLS3N8ZG+UmZdnjlz5ngS05UqVdIzzzyjJ5980vFYbjYertq0aaM2bdpo8eLFatu2raPvndMTTzyhdu3aqUyZMqpatapuu+02SZm1d51O9D/00EPq0aOHKlSoIB8fH9WvX1+S9PvvvxvtpOnUqZNq166txYsX68iRIxo4cKA2bNjgaE22devWaenSpZo0aZL++usvhYaGGl9opWHDhjpx4oQ6deqktm3bys/PTw8//LDjcWx+r20nJypWrKj4+PhcUxPj4+OzTfNz0l133aWHH35YLpdLo0eP1smTJ887GuZy5bxenT171vGGzJkzZ/J9zcS1323Lli2aP3++fvzxRz3++ONq3769NmzYoD59+mjlypWOxnr00UeNJiSyOn78uM6ePet5BklNTVVCQoJ8fHwcXxeiatWqjr7fhdhqxEv//wzn6+urlJQUlSlTxlij+siRI9kSB8eOHdPRo0eNxJIyG06lSpVSRkaGXC6Xateu7fhU5AYNGmjOnDm5kutz5871JFidUhD3UCmzZmSnTp08o23XrFmjcePGORqje/fuWrp0qV599VW1a9fOyH06JxvnR1Y2kgbnG0gkyfE1IWw04nNytwmLFSumEydOqFy5csYSIqVLl1ZKSorq16+viIgI+fv7G+skr1q1qrZs2SIfHx9lZGRo1qxZRuq4t2rVSoMHD9aECRM8ic2kpCSNHDlSjzzyiOPxJHk+s3LlymnHjh2qUqWK4zPu2rdvr/79+2v8+PG6/vrrJWV2YowYMSJXPW0ntWzZUh07dvR0iH/66adq2bKlkVi33XabhgwZovbt28vHx0cLFy70tEmdNnDgQM2ePVuvvPKKXC6X7rvvPiPPILbua2+88Yb++usvLVmyRBMnTtRff/2l5OTkbJ2uTlq0aJF+++03LVq0SB07dlStWrV0+vTpPDuFnOLn5yeXy6Xrr79eH3zwga699lodP37cSCyb10abuZFly5Zp0aJF6tSp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ooSkzOu0yc5CG414t9atW2vBggVq2bJltiSgiaT4gQMHNGjQIP3888/y8fHRLbfcosmTJ+c5ys0JdevWNVJOKSdbDaaCuIdK0scff6zZs2erdOnS8vPzM1Jj+uzZszp37lyu+2VaWpqxRryt88PNRtJgxIgRWrx4sbp06aK2bdsaaTNlZbNN49atWze9/vrrevDBB7Nds0zM4m3cuLH69OmjIkWKGDv33erVq+eZCWRyIEVBXEciIiL03HPP6Z577snWAeXkrNMaNWrom2++yVWreP369UZnhI4aNUo33nijIiIi5HK59Mknn2jkyJFGBkmNHTtWK1euVFBQkKZOnaqbbrpJUuZAukceecTRWOvXr1dERIQSExNVpEgRpaWlqXz58o6f+7bOxwYNGmjOnDm5Zt/MnTvXyLorN998s5YuXZprEMOyZcs8fzenPf/88+rQoYPq1KljvAyuzWtj+/bt1b9/f40fP94zK37fvn0aMWJErlmol6t48eI6cOBArufSAwcOONZR7nWJaSmzYbR69WpFRUXphx9+0Llz5/TOO+84viiUJH344YeKjY2Vn5+f2rRpo5iYGOMjeb755htFREToyy+/VJUqVfTaa6+pV69exh6ybDUsbJzwbu5VifNjqhSLrYcrKXN6/LZt2/Tbb7/p/vvv16pVqxwfDT5lyhT5+/vr+++/V69evXK97mR9zDZt2qhPnz4aO3asatasKUnas2ePRo0aZXQWga+vr+677z7dd999OnHihF599VV17tzZ0Zp9ffr0UZ8+fdS3b19PPcJt27Zp5syZxqaZfv7551q9erUnoWRK1sRizlhOJx1tNypsP8xJUsOGDfX5559rz549crlcqlWrlqcxY+J7YONhPzU1VSkpKbnunadOnVJqaqojMXKKiIjQK6+8oqNHj6pDhw4KCgoyWk5hy5YtatiwobFkdFZbt27V4sWLdcMNN2S7z5ioV1y9enV17NjRs2r7ihUr1LBhQ0+pLKdLOtloxLtVqlRJI0aM8MwaM1mvdeTIkerQoYOn/M/ixYs1cuRIvfvuu47HkqQnnnhCXbt2VdWqVY2dIzYbTAVxD5WUZ4kNpzVv3lyvvPKKhgwZ4unAy8jI0OTJk9WsWTMjMW2cH1nZSBp06dJFXbp00S+//KKoqCh17NhRp06dUlRUlB5++GHHB43YbNO4JSQk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9evnGhFrok7Uiy++qJ07d6ply5aaOnWqqlev7th7X4iNhyspcxG2F198URkZGVqzZo22bdumTz75RGPHjnUsRqtWrTR48OA8Fy0z+cC/evVqvfbaa/L399frr7+u2267zVisUqVKqU2bNmrevHm2G5mpB4Ks1w+T15K8krd79+61Ojrb1PHZeojz9fX1JCbWr1+v0NBQVapUSS1atNBrr73maCw39wiGFStWeLaZGMV55syZbLNHsv6/03+3+Ph4TwIrNjZWAQEBmjt3rg4fPqxnn33WSGK6Zs2a6tGjh/Ea627Dhg0rsPr0ycnJOnDggJH3vv7663XmzBlr9TFtNOKzMj1TzD0NMyfTI1SvvfZa42UhsiYHvvvuOz3wwAOSpLJlyxrtyLB1Dz1x4oSuuuoq/fXXX+rcubPatm0rPz8/Y88+KSkp2epKN2rU6IIlzi6VjfMjK5tJgzlz5njuZ+7OkazbnGZzQIpkb3T22rVrFR4ersDAQEmZbbjJkycbiXfbbbdpyJAhnsETCxcuNPLc734WKFasmKpVq5bt+mFqdlVKSopmzpyZ7W/23HPPGStP+MMPP3gWbzedrxg2bJj69OmjevXqGS+vkZCQoPfee08xMTGeWKZmOL355ptq1aqVtm7dqnXr1ql79+7GOgndbN3X3CIiInT06FFji7hLUkZGhhITE7MtjpmRkWEk1oEDBzRo0CD9/PPP8vHx0S233KLJkyerRo0ajseyeW08n6yLgDrNVC7rH5GYNmndunVaunSpJk2a5KlpbfJEkDJ7Ydq3b6958+apfv36qlu3rnr06GE0pqRsFycTF6o6depYK+WxYsUKlStXTvPnz9eHH37o2W66MZjz4eqTTz4xllSdOHGi5syZo7CwMEnS7bffroiICEdj9O3bVxEREWrWrFmuRcv69evnaCxJ2rJli6ZMmaKMjAwNHTrU6OI/btdff73RWrdZNW3aVM8884zatGkjHx8fRUdHG6sxait5279//3wTL3/99ZejsbKy8RCXnp6utLQ0FStWTN99950ef/xxz2tpaWlGYtoaxWlztGjWBNa3337rSWBVrVrV2N8uNTVV1113nXbu3Gnk/d0OHDigGjVqqHz58p51GrIyMZona43pjIwMHTx4UE899ZTjcaTMDrquXbuqQYMGxktrSHYb8TZmitkemepmoyxEsWLF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uMPx51QS04VIXlO43UxP5Y6IiND27dt1yy23GL0opqenq2/fvp7ksKlRBue7AJoYWebn5+eZPnjdddd5vshFihQxMhXT5XKpS5cuWrJkiZVRowVl4sSJRpOAknKtRH/y5EljHSYnT550fIRofmwlb3/77bdsSWm3Bx54wFgPss0Ef06mzg23+Ph4vfPOO0pLS1OjRo3UuHFjNWrUSFdffbXRuLa98847Rhuev//+e7bRrzVq1NCePXscj2MzWXy+6eimyji1bt3aWoJAstuItzFTzK106dL6888/Pc8fGzduVJkyZYzFs1kWIivT10db91Cbi8O6zZ07V3FxcVaSPbbPj+bNm2vZsmX68ccfjSUNfv31VzVu3FhfffWVihUrZvT7lZXJRnxONkdnx8TE6L777lO5cuUkZZYw++qrr4wMtrnmmmt07Ngxzzlx/Phxa53zpv9mUma5CRt1mLMy+X0ODw/X5MmTsy3EnNWiRYuMxF27dm22hZFNLDYnZdbsvvHGGz0z2D/++GONHDkyz5nfTrB1XytRooRn8XFJqlKliqpUqWI0nq3FMaXMZ7p77rnHU0LV5KDO/fv3a//+/dnKtdr+jpuyb98+YyX8SEwXIgU5hfv7779XXFyc8YaLr6+vzpw5o4yMDBUpUsRIzVu3rA85WbeZaDhlneaZc8qnicW9fHx8VKNGDf3111+eh0ZvZLqRK2UucDdy5EidOnVKixcv1ocffmhssZCbbrpJCQkJRh8E3Gwlb0uUKHFJr10Omwn+nO68806j7z9q1ChJmbV9v/zyS7366qs6dOhQoa4xnRfT3+3y5ctrxowZat++vaTMKafly5d3PI7NZHFBJMuaNGli5XqVlelG/LfffqsGDRpozZo1+cZ32qBBg/TMM8/o4MGD6tatm/bu3etZVMmEF154QW+88Ua2kgbubSaZTprZvIfa5u/vb3UEoq2yIVLmYovDhg3LtiCye5tTbrzxRrVo0UKlS5dWamqqpk+fnq2OtikmG/E52RydPXfuXIWGhnp+Ll++vObOnetoYto9ar5UqVIKCQnxnB9ffvmllb+dJH3yySdG33/37t168803c/3NTCVv3Uwe15NPPikp+0LMps2ZM0exsbF69NFHJUmvvPKKQkNDjSzct3//fk2fPt3zc//+/Y2WXzF9X3vyySf1/vvvq1GjRtk6EkyW1pDsLo65cuVKTZgwQUeOHJH0/8dmou00depULVy4UAEBAZ6BkKbKyhSEGjVqKDk52chIcBLThdSxY8f0448/ysfHR3Xr1jWyYF9WplYjzkvdunX1/PPPq3Xr1ipdurRnu5Nf6Pbt26t///4aP368p7zFvn37NGLECE+iwkk5p31m/X9TtT9LlSqlNm3aqHnz5tkWejHxgFpQTC76mZ6ertTUVD399NNasmSJTp48qTVr1qh79+6eBx+nnTx5Uo899piVafG2krc5a3HmfM2EgkxO5LXAjJO2b9+u9evXa/369Tp69KiaNm1qrYFmU/fu3Y2+f2RkpMaPH+8ZrdGoUSNFRkY6HqcgksU2tWvXTvXr11eXLl089WhNmDx5ssLDw9W/f/8875lOXiOjo6PVoEEDvf3227leM9W4qFu3rubNm6fvvvtOUuYMuay1mZ2WV/3q3bt3Oxojr/JzDRo08Gw3MVLJ5j3UtiZNmmjSpEl69NFHsx2biWSxzbIhUma5u5zyKrdxOd5880199NFHCgwM1IYNGzRjxgwr906TjficbI7OzovTi7m72y433nhjtvO8Q4cOjsbJyWaC371gX9u2bY3P8LN1XO665qZLLWa1ZMkSffTRR57vWbdu3dSpUycjiemMjAwlJiaqUqVKkjJnoGZkZDgex830fc09e9VmTXDJ7uKYkyZN0vTp03XbbbcZLxuyYsUKffHFF15XwsOtTJkyateunZo1a5btPkON6X+ozz77TCNGjNCtt94ql8ulHTt2aOzYsdmmXzitZs2a6tGjhx544IFsJ6GJmmzuhtmCBQs825xuDD755JM6duyYHnvsMc9F/uzZs+rRo4d69OjhWBy3gkhOXH/99V5XUzqrc+fOqUWLFnmOfHfClClTVKtWLbVv316PPfaYZxTIvHnzNHXqVCMPqDanxdtK3uZVi9PNVKeM7eRESkqKZs6cma3eXO/evY0kXh5//HHVr19fgwYNUsOGDR1//4KQVwKrZcuWRhNYVapUsbJwkrdbvXq1li9frtdee01JSUnq0qWLQkJCHH8gb9CggSRlG1Fpirs+q82alW+99Zbat29vfETNJ598oo8//lh79+7V448/7tmelJSkG264wdFYeZWfc/9saqSS7dIyNsXExEjKbPS6mUoW2yob8umnn+rTTz/V77//rhdeeMGzPTk52fEZ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jo+P19ixYx2N8Z///Ec9e/bUf/7zHz3//POekdJt2rTRs88+62isf4KWLVvm2maq1JGUmcDN+l0uWrSoDh06JD8/P8cbNDZHqIaGhqpt27b68MMPVbVqVc/2GjVqqG3bto7HO3funCRp8+bNatGihUqWLGnsXpOamqrGjRvL5XKpcuXKGjBggLp162ZkJJbNe6htJUqUyHUfM/lds9UpI2U2bENDQxUaGuqpVT916tRCXavezWQjPiebo7O3bNmiBQsW6Prrr882ytLU7NZ169bp559/ztaOMZWIt5ngT0pK0pw5c3Id27x58xyPZfO40tPT1bdvX82aNctop/+vv/6qli1bavv27cZi5FS8eHFPUlqSGjZs6PhirVnZuq99/fXXqlatmsqUKaPw8HBt27ZNw4cPV9OmTR2PJWXmkv78889ss6FNrYN1xx13aODAgUbrPo8bN06zZ8/O89nG5Iwj24oWzZ4+PnnypGODO0lMF1LHjx/Xjz/+KB8fH9WtW9d4jemcD8Nnz541NsK4du3aWrJkiVwulw4ePKi33npLDRo0cDRGXr1ZVatWzbYQYmGVs45e1v832YgxrUuXLrr99tt15MgR3XPPPZ7tvr6+RqbCFS1aVFOmTNG+ffsUHx8vl8ulW2+91TOa04TOnTvr+eef1/HjxzV9+nTFxMRowIABRmJ588iygkhONG/eXM2bN/fUa3Va1uutO6mU12uF2UMPPaQGDRroxx9/lMvlUv369R3vdCpZsqRmz56t7t27y+Vyafny5Wrbtq3R6Yre6HwLBOY8P5101113qVevXgoJCZGPj4+WLFmiBg0a6NSpU44npm2MUHWP8nruuefybLh06dIl26JwTgkICNC///1v7d69W4MGDdKZM2ccj+HmvvaWK1dOO3bsUJUqVfT7778biWXzHmpb1apVtWXLFvn4+CgjI0OzZs3STTfdZCSWzU4ZN5u16m0y2YjPyebobJslKKZMmaJt27bpt99+0/33369Vq1apcePGjscpiNG3Q4cOVUBAgPbu3asXXnhBUVFRji8EVxDH5evrqzNnzsjlchlte7rvjzbXwmrYsKGWLFniKUuydOlSxwejZGXrvrZ48WI99dRT2rBhg44dO6YJEyZo3LhxxhLTYWFheuaZZ3Tw4EF169ZNe/fu1ZtvvmkklrvjwmTd59mzZ0squLJR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h7R79259+OGHat26te655x51797ds+C6U0qXLq0ff/xRdevWlST9+OOP2RaILazuu+8+SZmDOrdu3erpbI2Li3OstBOJ6UJozJgxCgsL06hRo+Tj46PAwEBNnjzZSCz3F2n//v3avHmzHnzwQUnSF1984XgxfPfCBX379lVsbKxq1KghSTpw4IBngTanjRo1SgMHDvRMGzl79my23mRcWZKTk/XWW28pKipKHTp00Keffmp0SrAt7gv69OnTNW/ePM8Dz3333acePXo4upK2N48ss/0Q98cff+iaa67Js17rI4884ng8b+dONNpYJA2F08mTJzV27Fhr8fbv36/9+/dnG+3iZCLQ5XJp7dq1Wrx4sXbu3KmWLVvqk08+8Tz/mGKzE+jYsWN67LHH1KBBg2yNMycTSzbvoba5Rx2Gh4dr6NChnsbu1q1bjd2vbXbKSN45wsxGIz4vtkZn2yhB4Xb11Vd7/r9Pnz5GYmQVERGhF154Qe+++67Wrl2rFi1aWCkfZXqgiO3jWr58uSIjI3Xy5ElVrlxZ+/fvV506dYx0ONlYC+vJJ5+UlPcMXhNs39d+/PFHvfjii8rIyNCaNWu0bds2ffLJJ8aeub766qtsZV569uypTp06qXv37kbiZVWsWDEVL15cgwcPVrNmzRQREeHYe4eHh6tv376eNWt+++03/ec//3Hs/QtKmzZtJEmxsbGaP3++SpQoISlzNLpTFRVITBdC1113nT755BOdOnVKLpfLaGLOfdF75plnsi1I0rt3b0e/xFn9/vvv2RplNWrU0J49e4zEatiwob744gvt2bNHLpdLtWrVylV/C1eGt99+W++9954eeeQRLV261NgsgYKUkJCgs2fPei72qampOnLkiKMxvHlkme2HuL59+yo6OlolSpTQrFmzPEmCKlWq6LPPPjNa+sgbtWrVytoiaSicbrrpJiUkJBiph5zT1KlTtXDhQgUEBHhK8zhdH7N58+by9/dX27Zt1bdvX/n4+Ojs2bPGF+O02Qn06KOP6tFHH/UsOG2SjXtoQdm1a5cnKS1lLhw1evRoR2MURNkQyTtHmNloxLsVxOhsmyUodu/erVmzZmn//v3ZSjg53TGTdcbsyy+/rGeeeUZ33323unbt6njt20aNGuX5N3N30ji5gJ7N48pq1qxZWrx4sXr27KmYmBh9/fXX+uyzz4zE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xQcffIDQ0FAWpf9LLEwTEREREVWTlZWF4OBgWFpaAgCsra1RVVWlcFZEREREVNuYm5sjNzdX6TSMFgvTRERERETV6ArSOuXl5eD0OyIiIiKqbuHChQAANzc3RERE4OLFi7h69ar+P3o+C6UTICIiIiKqTVxdXREdHQ21Wo309HTExsbC3d1d6bSIiIiIqBbJyMgAAMTFxQEAfvzxR/1jgiDg2LFjSqRlVLj8kIiIiIiomoqKCsTExOD48eMAAHd3d0ybNg3m5uYKZ0ZEREREtYW3tzdUKpXSaRg1FqaJiIiIiADs3r37Lx/39/eXKRMiIiIiqu3at2+PBg0a/Onjp0+fljEb48RRHkREREREACIjI9GhQwe0adNG6VSIiIiIqJZzdHTEli1blE7DqLEwTUREREQEYPny5UhMTMTVq1fh5eWF4cOHw9bWVum0iIiIiKgWsrKywuuvv650GkaNozyIiIiIiKq5efMmVCoVDh8+DGdnZwQGBuKNN95QOi0iIiIiqkXGjBmDAwcOKJ2GUWNhmoiIiIjoCUVFRUhJScHGjRsxb948jB49WumUiIiIiIhMCgvTREREREQAtFotTp48iYSEBGRlZcHDwwNeXl5wcHBQOjUiIiIiIpPDwjQREREREYDevXvDzs4OPj4+6NatGwRBMHi8devWCmVGRERERGR6WJgmIiIiIgLg7u6u/1oQBFR/mywIAo4dO6ZEWkREREREJomFaSIiIiIiIiIiIiKSlZnSCRARERERERERERHRi4WFaSIiIiIiIiIiIiKSFQvTRERERERERERERCQrFqaJiIiIiIiIiIiISFYsTBMRERERERERERGRrP4/ZFbAMbNZGZoAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1800x360 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(25, 5))\n",
"sns.set_theme()\n",
"act_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": [
"### Multinomial Naive Bayes classifier"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jr/miniconda3/lib/python3.9/site-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
" _warn_prf(average, modifier, msg_start, len(result))\n",
"/home/jr/miniconda3/lib/python3.9/site-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
" _warn_prf(average, modifier, msg_start, len(result))\n",
"/home/jr/miniconda3/lib/python3.9/site-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
" _warn_prf(average, modifier, msg_start, len(result))\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.00 0.00 0.00 73\n",
" 1 1.00 0.02 0.04 102\n",
" 2 0.00 0.00 0.00 37\n",
" 3 0.00 0.00 0.00 93\n",
" 4 0.00 0.00 0.00 27\n",
" 5 0.93 0.19 0.32 68\n",
" 6 0.00 0.00 0.00 13\n",
" 7 0.10 0.94 0.17 347\n",
" 8 0.15 0.27 0.19 319\n",
" 9 0.00 0.00 0.00 34\n",
" 10 0.00 0.00 0.00 56\n",
" 11 0.00 0.00 0.00 218\n",
" 12 0.00 0.00 0.00 5\n",
" 13 0.00 0.00 0.00 108\n",
" 14 0.00 0.00 0.00 93\n",
" 15 0.00 0.00 0.00 127\n",
" 16 0.00 0.00 0.00 63\n",
" 17 0.00 0.00 0.00 37\n",
" 18 0.00 0.00 0.00 167\n",
" 19 0.33 0.00 0.01 236\n",
" 20 0.04 0.00 0.01 297\n",
" 21 0.38 0.59 0.46 328\n",
" 22 0.75 0.01 0.03 236\n",
" 23 0.00 0.00 0.00 14\n",
" 24 0.00 0.00 0.00 22\n",
" 25 0.00 0.00 0.00 15\n",
" 26 0.00 0.00 0.00 83\n",
" 27 0.00 0.00 0.00 24\n",
" 28 0.00 0.00 0.00 110\n",
" 29 0.00 0.00 0.00 239\n",
" 30 0.00 0.00 0.00 1\n",
" 31 0.00 0.00 0.00 2\n",
" 32 0.00 0.00 0.00 36\n",
" 33 0.00 0.00 0.00 2\n",
" 34 0.00 0.00 0.00 209\n",
" 35 0.00 0.00 0.00 9\n",
" 36 0.00 0.00 0.00 61\n",
" 37 0.00 0.00 0.00 40\n",
" 38 0.00 0.00 0.00 28\n",
" 39 0.76 0.68 0.72 241\n",
" 40 0.00 0.00 0.00 11\n",
" 41 0.00 0.00 0.00 11\n",
" 43 0.00 0.00 0.00 4\n",
" 44 0.00 0.00 0.00 130\n",
" 45 0.00 0.00 0.00 47\n",
" 46 0.00 0.00 0.00 114\n",
" 47 0.00 0.00 0.00 20\n",
" 48 0.00 0.00 0.00 97\n",
" 49 0.00 0.00 0.00 16\n",
" 50 0.00 0.00 0.00 96\n",
"\n",
" accuracy 0.17 4766\n",
" macro avg 0.09 0.05 0.04 4766\n",
"weighted avg 0.17 0.17 0.10 4766\n",
"\n",
" All Train Test Pred\n",
"0 308 73.0 73.0 NaN\n",
"1 556 102.0 102.0 2.0\n",
"2 247 37.0 37.0 NaN\n",
"3 487 93.0 93.0 NaN\n",
"4 168 27.0 27.0 NaN\n",
"5 357 68.0 68.0 14.0\n",
"6 67 13.0 13.0 NaN\n",
"7 1858 347.0 347.0 3395.0\n",
"8 1595 319.0 319.0 564.0\n",
"9 128 34.0 34.0 NaN\n",
"10 291 56.0 56.0 NaN\n",
"11 1185 218.0 218.0 19.0\n",
"12 29 5.0 5.0 NaN\n",
"13 512 108.0 108.0 NaN\n",
"14 486 93.0 93.0 2.0\n",
"15 599 127.0 127.0 NaN\n",
"16 275 63.0 63.0 NaN\n",
"17 165 37.0 37.0 NaN\n",
"18 798 167.0 167.0 NaN\n",
"19 1269 236.0 236.0 3.0\n",
"20 1358 297.0 297.0 24.0\n",
"21 1668 328.0 328.0 518.0\n",
"22 1192 236.0 236.0 4.0\n",
"23 65 14.0 14.0 NaN\n",
"24 112 22.0 22.0 NaN\n",
"25 71 15.0 15.0 NaN\n",
"26 379 83.0 83.0 NaN\n",
"27 126 24.0 24.0 NaN\n",
Loading
Loading full blame...