Skip to content
Snippets Groups Projects
MultinomialNBXGBoost.ipynb 889 KiB
Newer Older
{
 "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&gt;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&gt;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&gt;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&gt;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&gt;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&gt;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&gt;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&gt;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&gt;A_ACA</th>\n",
       "      <th>C&gt;A_ACC</th>\n",
       "      <th>C&gt;A_ACG</th>\n",
       "      <th>C&gt;A_ACT</th>\n",
       "      <th>C&gt;A_CCA</th>\n",
       "      <th>C&gt;A_CCC</th>\n",
       "      <th>C&gt;A_CCG</th>\n",
       "      <th>C&gt;A_CCT</th>\n",
       "      <th>C&gt;A_GCA</th>\n",
       "      <th>C&gt;A_GCC</th>\n",
       "      <th>...</th>\n",
       "      <th>T&gt;G_CTT</th>\n",
       "      <th>T&gt;G_GTA</th>\n",
       "      <th>T&gt;G_GTC</th>\n",
       "      <th>T&gt;G_GTG</th>\n",
       "      <th>T&gt;G_GTT</th>\n",
       "      <th>T&gt;G_TTA</th>\n",
       "      <th>T&gt;G_TTC</th>\n",
       "      <th>T&gt;G_TTG</th>\n",
       "      <th>T&gt;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...