Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>C>A</td>\n",
" <td>ACA</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>C>A</td>\n",
" <td>ACC</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 9693 columns</p>\n",
"</div>"
],
"text/plain": [
" Mutation type Trinucleotide ALL::TARGET-10-PAIXPH-03A-01D \\\n",
"0 C>A ACA 0 \n",
"1 C>A ACC 0 \n",
"\n",
" ALL::TARGET-10-PAKHZT-03A-01R ALL::TARGET-10-PAKMVD-09A-01D \\\n",
"0 0 0 \n",
"1 0 0 \n",
"\n",
" ALL::TARGET-10-PAKSWW-03A-01D ALL::TARGET-10-PALETF-03A-01D \\\n",
"0 1 0 \n",
"1 1 0 \n",
"\n",
" ALL::TARGET-10-PALLSD-09A-01D ALL::TARGET-10-PAMDKS-03A-01D \\\n",
"0 0 0 \n",
"1 0 0 \n",
"\n",
" ALL::TARGET-10-PAPJIB-04A-01D ... Head-SCC::V-109 Head-SCC::V-112 \\\n",
"0 2 ... 0 0 \n",
"1 0 ... 1 0 \n",
"\n",
" Head-SCC::V-116 Head-SCC::V-119 Head-SCC::V-123 Head-SCC::V-124 \\\n",
"0 0 0 0 0 \n",
"1 0 0 0 0 \n",
"\n",
" Head-SCC::V-125 Head-SCC::V-14 Head-SCC::V-29 Head-SCC::V-98 \n",
"0 0 0 0 1 \n",
"1 0 1 0 0 \n",
"\n",
"[2 rows x 9693 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"other_wes_mut = pd.read_csv(\"./project_data/catalogs/WES/WES_Other.96.csv\")\n",
"other_wes_mut.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Cancer Types</th>\n",
" <th>Sample Names</th>\n",
" <th>Accuracy</th>\n",
" <th>SBS1</th>\n",
" <th>SBS2</th>\n",
" <th>SBS3</th>\n",
" <th>SBS4</th>\n",
" <th>SBS5</th>\n",
" <th>SBS6</th>\n",
" <th>SBS7a</th>\n",
" <th>...</th>\n",
" <th>SBS51</th>\n",
" <th>SBS52</th>\n",
" <th>SBS53</th>\n",
" <th>SBS54</th>\n",
" <th>SBS55</th>\n",
" <th>SBS56</th>\n",
" <th>SBS57</th>\n",
" <th>SBS58</th>\n",
" <th>SBS59</th>\n",
" <th>SBS60</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>ALL</td>\n",
" <td>TARGET-10-PAIXPH-03A-01D</td>\n",
" <td>0.529</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ALL</td>\n",
" <td>TARGET-10-PAKHZT-03A-01R</td>\n",
" <td>0.696</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 68 columns</p>\n",
"</div>"
],
"text/plain": [
" Cancer Types Sample Names Accuracy SBS1 SBS2 SBS3 SBS4 \\\n",
"0 ALL TARGET-10-PAIXPH-03A-01D 0.529 0 0 0 0 \n",
"1 ALL TARGET-10-PAKHZT-03A-01R 0.696 0 0 0 0 \n",
"\n",
" SBS5 SBS6 SBS7a ... SBS51 SBS52 SBS53 SBS54 SBS55 SBS56 SBS57 \\\n",
"0 0 0 0 ... 0 0 0 1 0 0 0 \n",
"1 0 0 0 ... 0 0 0 1 0 0 0 \n",
"\n",
" SBS58 SBS59 SBS60 \n",
"0 0 0 0 \n",
"1 0 0 0 \n",
"\n",
"[2 rows x 68 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"other_wes_act = pd.read_csv(\"./project_data/activities/WES/WES_Other.activities.csv\")\n",
"other_wes_act.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"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",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.metrics import accuracy_score"
]
},
{
"cell_type": "code",
"execution_count": 23,
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
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'Myeloid-MPN', 'CNS-Oligo', 'Bone-Epith', 'Eso-AdenoCA', 'Stomach-AdenoCA', 'Bladder-TCC', 'Cervix-SCC', 'Breast-LobularCA', 'SoftTissue-Liposarc', 'CNS-PiloAstro', 'Head-SCC', 'Lung-AdenoCA', 'Liver-HCC', 'Kidney-RCC', 'Uterus-AdenoCA', 'Lymph-BNHL', 'Myeloid-AML', 'Prost-AdenoCA', 'CNS-Medullo', 'SoftTissue-Leiomyo', 'Kidney-ChRCC', 'Breast-DCIS', 'Bone-Benign', 'Myeloid-MDS', 'Lymph-CLL', 'Panc-Endocrine', 'Lung-SCC', 'Ovary-AdenoCA', 'Skin-Melanoma', 'Panc-AdenoCA', 'Breast-AdenoCA', 'Biliary-AdenoCA', 'Bone-Osteosarc', 'Thy-AdenoCA', 'ColoRect-AdenoCA', 'CNS-GBM', 'Cervix-AdenoCA'}\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 720x144 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n_mut_types, n_samples = PCAWG_wgs_mut.shape\n",
"#print(PCAWG_wgs_mut.head())\n",
"\n",
"mutations_wgs = PCAWG_wgs_mut.copy()\n",
"mutations_wgs['mut_tri'] = mutations_wgs.apply(lambda a: '{}_{}'.format(a['Mutation type'], a['Trinucleotide']), axis=1)\n",
"mutations_wgs = mutations_wgs.set_index('mut_tri').drop(['Mutation type', 'Trinucleotide'], axis=1)\n",
"mutations_wgs = mutations_wgs.T\n",
"mutations_wgs[:5]\n",
"\n",
"tumor_types_wgs = [a.split(':')[0] for a in mutations_wgs.index]\n",
"print(set(tumor_types_wgs))\n",
"\n",
"plt.figure(figsize=(10, 2))\n",
"sns.countplot(x=tumor_types_wgs, palette=sns.hls_palette(2))\n",
"plt.xticks(rotation=90);\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"target Biliary-AdenoCA\n",
"(1946, 96) (834, 96)\n"
]
}
],
"source": [
"target_type = tumor_types_wgs[0]\n",
"print(\"target\", target_type)\n",
"\n",
"wgs_labels = [1 if tumor_type == target_type else 0 for tumor_type in tumor_types_wgs]\n",
"X_train, X_test, y_train, y_test = train_test_split(mutations_wgs, wgs_labels, test_size = 0.3, random_state=1)\n",
"\n",
"print(X_train.shape, X_test.shape)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.9904076738609112"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = RandomForestClassifier(n_estimators=100, random_state=0)\n",
"model.fit(X_train, y_train)\n",
"y_model = model.predict(X_test)\n",
"accuracy_score(y_test, y_model)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}