File size: 179,725 Bytes
edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 67f674c 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 98ce6d7 9e9cca9 98ce6d7 9e9cca9 98ce6d7 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 ebe5ee8 9e9cca9 ebe5ee8 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 9e9cca9 edacd12 402ba9b edacd12 9e9cca9 edacd12 9e9cca9 edacd12 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 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 |
{
"cells": [
{
"cell_type": "markdown",
"id": "08f41458-5304-48c5-9e92-f9b56ab052c4",
"metadata": {},
"source": [
"## Geneformer Fine-Tuning for Classification of Dosage-Sensitive vs. -Insensitive Transcription Factors (TFs)"
]
},
{
"cell_type": "markdown",
"id": "79539e95-2c9c-4162-835c-f0d158abb15d",
"metadata": {},
"source": [
"### Please note that, as usual with deep learning models, we **highly** recommend tuning learning hyperparameters for all fine-tuning applications as this can significantly improve model performance. Example below uses default hyperparameters, but please see the \"hyperparam_optimiz_for_disease_classifier\" script for an example of how to tune hyperparameters for downstream applications."
]
},
{
"cell_type": "markdown",
"id": "51b4852a-9f03-4bc3-ba33-79eaa4582d50",
"metadata": {},
"source": [
"### Train gene classifier with 5-fold cross-validation:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "58d59e09-5e6c-4fba-ba2b-3aee103869fd",
"metadata": {},
"outputs": [],
"source": [
"import datetime\n",
"import pickle\n",
"from geneformer import Classifier\n",
"\n",
"current_date = datetime.datetime.now()\n",
"datestamp = f\"{str(current_date.year)[-2:]}{current_date.month:02d}{current_date.day:02d}{current_date.hour:02d}{current_date.minute:02d}{current_date.second:02d}\"\n",
"datestamp_min = f\"{str(current_date.year)[-2:]}{current_date.month:02d}{current_date.day:02d}\"\n",
"\n",
"output_prefix = \"tf_dosage_sens_test\"\n",
"output_dir = f\"/path/to/output_dir/{datestamp}\"\n",
"!mkdir $output_dir"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "9e33942f-39e4-4db4-a3de-5949bed9fa5d",
"metadata": {},
"outputs": [],
"source": [
"# Example input_data_file: https://huggingface.co/datasets/ctheodoris/Genecorpus-30M/blob/main/example_input_files/gene_classification/dosage_sensitive_tfs/dosage_sensitivity_TFs.pickle\n",
"with open(\"/path/to/dosage_sensitivity_TFs.pickle\", \"rb\") as fp:\n",
" gene_class_dict = pickle.load(fp)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f4053ee9-3506-4c97-b544-8d667f0adfab",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Hyperparameter tuning is highly recommended for optimal results. No training_args provided; using default hyperparameters.\n"
]
}
],
"source": [
"cc = Classifier(classifier=\"gene\",\n",
" gene_class_dict = gene_class_dict,\n",
" max_ncells = 10_000,\n",
" freeze_layers = 4,\n",
" num_crossval_splits = 5,\n",
" forward_batch_size=200,\n",
" nproc=16)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "e4855e53-1cd7-4af0-b786-02b6c0e55f8c",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6a3f7bcf2a314368b00f49c74a775571",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Saving the dataset (0/1 shards): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Example input_data_file: https://huggingface.co/datasets/ctheodoris/Genecorpus-30M/tree/main/example_input_files/gene_classification/dosage_sensitive_tfs/gc-30M_sample50k.dataset\n",
"cc.prepare_data(input_data_file=\"/path/to/gc-30M_sample50k.dataset\",\n",
" output_directory=output_dir,\n",
" output_prefix=output_prefix)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "3a1b2c1b-36e0-4b92-9e1d-33b3328f41a2",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8ca67c71086d44f480fa241da36139ce",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"0it [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"****** Validation split: 1/5 ******\n",
"\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7059e063e1f3481eabf425ba82150079",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7c2c27cd9ecd44f7b2d7c7fafd587cfb",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "ed07a7fd5d4046869f1983250134cef0",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "430c9612c7984be8ba367e96e0ed5de3",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Some weights of BertForTokenClassification were not initialized from the model checkpoint at /gladstone/theodoris/home/ctheodoris/Geneformer and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n",
"Detected kernel version 4.18.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\n",
"/gladstone/theodoris/home/ctheodoris/Geneformer/geneformer/collator_for_classification.py:581: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" batch = {k: torch.tensor(v, dtype=torch.int64) for k, v in batch.items()}\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" \n",
" <progress value='834' max='834' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" [834/834 02:37, Epoch 1/1]\n",
" </div>\n",
" <table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>Step</th>\n",
" <th>Training Loss</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>83</td>\n",
" <td>0.729100</td>\n",
" </tr>\n",
" <tr>\n",
" <td>166</td>\n",
" <td>0.667600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>249</td>\n",
" <td>0.553100</td>\n",
" </tr>\n",
" <tr>\n",
" <td>332</td>\n",
" <td>0.409100</td>\n",
" </tr>\n",
" <tr>\n",
" <td>415</td>\n",
" <td>0.294300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>498</td>\n",
" <td>0.197000</td>\n",
" </tr>\n",
" <tr>\n",
" <td>581</td>\n",
" <td>0.138300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>664</td>\n",
" <td>0.099900</td>\n",
" </tr>\n",
" <tr>\n",
" <td>747</td>\n",
" <td>0.083700</td>\n",
" </tr>\n",
" <tr>\n",
" <td>830</td>\n",
" <td>0.072300</td>\n",
" </tr>\n",
" </tbody>\n",
"</table><p>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"****** Validation split: 2/5 ******\n",
"\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d186836393d84c19b9c0dffafb31a09c",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "26cb17f7d5b7440192ed7ada0070fa7d",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9259ec2ea7db4203bb361b1b7de3773f",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "ee45940e40b94f83a431fc1bd8081b8b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Some weights of BertForTokenClassification were not initialized from the model checkpoint at /gladstone/theodoris/home/ctheodoris/Geneformer and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n",
"Detected kernel version 4.18.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\n",
"/gladstone/theodoris/home/ctheodoris/Geneformer/geneformer/collator_for_classification.py:581: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" batch = {k: torch.tensor(v, dtype=torch.int64) for k, v in batch.items()}\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" \n",
" <progress value='834' max='834' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" [834/834 02:34, Epoch 1/1]\n",
" </div>\n",
" <table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>Step</th>\n",
" <th>Training Loss</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>83</td>\n",
" <td>0.695400</td>\n",
" </tr>\n",
" <tr>\n",
" <td>166</td>\n",
" <td>0.634600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>249</td>\n",
" <td>0.540200</td>\n",
" </tr>\n",
" <tr>\n",
" <td>332</td>\n",
" <td>0.414800</td>\n",
" </tr>\n",
" <tr>\n",
" <td>415</td>\n",
" <td>0.298500</td>\n",
" </tr>\n",
" <tr>\n",
" <td>498</td>\n",
" <td>0.199100</td>\n",
" </tr>\n",
" <tr>\n",
" <td>581</td>\n",
" <td>0.133200</td>\n",
" </tr>\n",
" <tr>\n",
" <td>664</td>\n",
" <td>0.096300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>747</td>\n",
" <td>0.078100</td>\n",
" </tr>\n",
" <tr>\n",
" <td>830</td>\n",
" <td>0.068100</td>\n",
" </tr>\n",
" </tbody>\n",
"</table><p>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"****** Validation split: 3/5 ******\n",
"\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "93e9c12bc6e243b39224994add37ce21",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "dc429098c2a14f00be1e5921cde897dc",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "fcd68a1b1f114cc7aeafb8f1fc3a26d0",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "51d522a3d10142518022f7a024cc0398",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Some weights of BertForTokenClassification were not initialized from the model checkpoint at /gladstone/theodoris/home/ctheodoris/Geneformer and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n",
"Detected kernel version 4.18.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\n",
"/gladstone/theodoris/home/ctheodoris/Geneformer/geneformer/collator_for_classification.py:581: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" batch = {k: torch.tensor(v, dtype=torch.int64) for k, v in batch.items()}\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" \n",
" <progress value='834' max='834' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" [834/834 02:35, Epoch 1/1]\n",
" </div>\n",
" <table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>Step</th>\n",
" <th>Training Loss</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>83</td>\n",
" <td>0.708600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>166</td>\n",
" <td>0.656300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>249</td>\n",
" <td>0.553600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>332</td>\n",
" <td>0.430600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>415</td>\n",
" <td>0.300000</td>\n",
" </tr>\n",
" <tr>\n",
" <td>498</td>\n",
" <td>0.202900</td>\n",
" </tr>\n",
" <tr>\n",
" <td>581</td>\n",
" <td>0.144700</td>\n",
" </tr>\n",
" <tr>\n",
" <td>664</td>\n",
" <td>0.109900</td>\n",
" </tr>\n",
" <tr>\n",
" <td>747</td>\n",
" <td>0.096000</td>\n",
" </tr>\n",
" <tr>\n",
" <td>830</td>\n",
" <td>0.086700</td>\n",
" </tr>\n",
" </tbody>\n",
"</table><p>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"****** Validation split: 4/5 ******\n",
"\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "1a9cebe980534274907ae3858a706c37",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "b5596a2de83f477facdcf484c4b3cfc9",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7e3be2a6e2084240b6f657964466ccf2",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "623bdd4b2755406396eb21332db13c3a",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Some weights of BertForTokenClassification were not initialized from the model checkpoint at /gladstone/theodoris/home/ctheodoris/Geneformer and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n",
"Detected kernel version 4.18.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\n",
"/gladstone/theodoris/home/ctheodoris/Geneformer/geneformer/collator_for_classification.py:581: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" batch = {k: torch.tensor(v, dtype=torch.int64) for k, v in batch.items()}\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" \n",
" <progress value='834' max='834' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" [834/834 02:35, Epoch 1/1]\n",
" </div>\n",
" <table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>Step</th>\n",
" <th>Training Loss</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>83</td>\n",
" <td>0.697500</td>\n",
" </tr>\n",
" <tr>\n",
" <td>166</td>\n",
" <td>0.632000</td>\n",
" </tr>\n",
" <tr>\n",
" <td>249</td>\n",
" <td>0.524600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>332</td>\n",
" <td>0.394300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>415</td>\n",
" <td>0.264700</td>\n",
" </tr>\n",
" <tr>\n",
" <td>498</td>\n",
" <td>0.180100</td>\n",
" </tr>\n",
" <tr>\n",
" <td>581</td>\n",
" <td>0.128300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>664</td>\n",
" <td>0.094200</td>\n",
" </tr>\n",
" <tr>\n",
" <td>747</td>\n",
" <td>0.082200</td>\n",
" </tr>\n",
" <tr>\n",
" <td>830</td>\n",
" <td>0.078500</td>\n",
" </tr>\n",
" </tbody>\n",
"</table><p>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"****** Validation split: 5/5 ******\n",
"\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "455067153dc145cba4e3cfdc63f129cc",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e664d317146c4edea145e2d80efd6960",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "30e3c07d77d14bb3a483ad48570d8b3a",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "fa63cf84534a435c938de556aba7da5c",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Some weights of BertForTokenClassification were not initialized from the model checkpoint at /gladstone/theodoris/home/ctheodoris/Geneformer and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n",
"Detected kernel version 4.18.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\n",
"/gladstone/theodoris/home/ctheodoris/Geneformer/geneformer/collator_for_classification.py:581: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" batch = {k: torch.tensor(v, dtype=torch.int64) for k, v in batch.items()}\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" \n",
" <progress value='834' max='834' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" [834/834 02:35, Epoch 1/1]\n",
" </div>\n",
" <table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>Step</th>\n",
" <th>Training Loss</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>83</td>\n",
" <td>0.711400</td>\n",
" </tr>\n",
" <tr>\n",
" <td>166</td>\n",
" <td>0.644000</td>\n",
" </tr>\n",
" <tr>\n",
" <td>249</td>\n",
" <td>0.535900</td>\n",
" </tr>\n",
" <tr>\n",
" <td>332</td>\n",
" <td>0.395400</td>\n",
" </tr>\n",
" <tr>\n",
" <td>415</td>\n",
" <td>0.275400</td>\n",
" </tr>\n",
" <tr>\n",
" <td>498</td>\n",
" <td>0.193600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>581</td>\n",
" <td>0.129300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>664</td>\n",
" <td>0.093300</td>\n",
" </tr>\n",
" <tr>\n",
" <td>747</td>\n",
" <td>0.070000</td>\n",
" </tr>\n",
" <tr>\n",
" <td>830</td>\n",
" <td>0.067100</td>\n",
" </tr>\n",
" </tbody>\n",
"</table><p>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 6 layer Geneformer: https://huggingface.co/ctheodoris/Geneformer/blob/main/model.safetensors\n",
"all_metrics = cc.validate(model_directory=\"/path/to/Geneformer\",\n",
" prepared_input_data_file=f\"{output_dir}/{output_prefix}_labeled.dataset\",\n",
" id_class_dict_file=f\"{output_dir}/{output_prefix}_id_class_dict.pkl\",\n",
" output_directory=output_dir,\n",
" output_prefix=output_prefix)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "11a1329b-4968-45f3-ac7a-2438b574404e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1000x1000 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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VYlvpVIpxo0bh8zMTISGhuLTTz/FwYMHsXDhwjKPe/LkCaKiotCpUyeEhIQgODgYhYWFGD58OK5fv16hPjCDSkRERESCPXv2QCqVIiYmBjo6OgAAVVVVBAYGwt/fHxYWFiUeZ2pqiuPHj6Nhw4ZCWadOndCzZ0/s2rULwcHB5e4DM6hERERESkZUxVdVxMbGwt3dXQhOAcDLywtisRinTp0q9ThNTU254BQA1NXVYWFhgefPn1eoDwxQiYiIiJRNLUaoCQkJCllSsVgMMzMzJCQkVKitrKws3Lx5E61atarQcRziJyIiIvoXSkpKwkcffVTq5ydOnCixXCqVQiKRKJRLJBKkp6dXqA/r1q3D69evMXr06AodxwCViIiISMnU9ir+kshkMogq8AzWgwcPIiIiAosXL0aLFi0qdC4GqERERERKpgJxYKmMjIxKzZKWRSKRQCqVKpRnZGSUukDqn86cOYP58+fDz88Po0aNqnAfOAeViIiISMnU5iIpCwsLhbmmubm5ePDgQbkC1KtXr2L69Ono06cPPvnkk0r1gQEqEREREQk8PDwQFxeH1NRUoez48ePIzc2Fp6dnmccmJCRg0qRJcHJyQnBwcIWmBLyJASoRERGREhGh6hv1VyWLOnz4cGhrayMgIACnT59GTEwMli9fDl9fX7kM6meffQYbGxvh/cuXL+Hn5wc1NTV8+OGHuH79Oi5fvozLly/jxo0bFeoD56ASERERKZ3aWyQlkUgQERGBoKAgzJgxAxoaGvDx8UFgYKBcvcLCQhQUFAjv7927h6SkJADA+PHj5eqamJjg5MmT5e4DA1QiIiIikmNubo7w8PAy66xcuRIrV64U3ru5ueH27dvVcn4GqERERERKpjpW8ddlDFCJiIiIlEw9j0+5SIqIiIiIlAszqERERERKhkP8RERERKRERNXwqNO6HeFyiJ+IiIiIlAozqERERETKpm4nQKuMASoRERGRkqnn8SkDVCIiIiKlIqqGRVJ1PMLlHFQiIiIiUirMoBIREREpmaqv4q/bGKASERERKZv6HZ9yiJ+IiIiIlAszqERERERKRISqJ1DregKWASoRERGRkqnvjzrlED8RERERKRVmUImIiIiUDFfxExEREZFS4RA/EREREZESYYBKREREREqFQ/xERERESqa+D/EzQCUiIiJSMvV9kRSH+ImIiIhI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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cc.plot_conf_mat(\n",
" conf_mat_dict={\"Geneformer\": all_metrics[\"conf_matrix\"]},\n",
" output_directory=output_dir,\n",
" output_prefix=output_prefix,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "edf6ffd9-8b84-4d31-8b39-11959140382f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5cAAALvCAYAAADxkzH9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1hTZxsG8DtMGSLTrRUVUHGBe1J3pYoTZx11a7WOah211dpqHXXUOmtddSKKW9u66lYEHDgQF+7BVkCZ5/sjH8eEBAgkcALcv+vKRfK+b855AgnJk3fJBEEQQERERERERKQFA6kDICIiIiIiooKPySURERERERFpjcklERERERERaY3JJREREREREWmNySURERERERFpjcklERERERERaY3JJREREREREWmNySURERERERFpjcklERERERERaY3JJRFREda6dWu4uLjAxcUFz54909lxp02bJh7Xz89PZ8cl/TBgwADx73v58mWpw6EspP+dXFxcdHrcovocSE1Nha+vL4YMGYKmTZuiZs2a4u9h2rRpUodHJDkjqQMg0tSAAQPg7++vts7ExATFixeHpaUl7OzsUKNGDdSoUQONGzdGuXLl8jlSIiIiKmySkpIwfPhwXLp0SepQiPQWk0sqFJKSkhAZGYnIyEg8fvwYQUFBAAADAwM0a9YMAwYMgIeHh8RREhVM06ZNw969ewEAv/zyC7p37y5xRESkS4pf3v71119o1KiRxBHpp40bNyollg0bNkTFihVhamoKAKhTp45UoWns2bNnaNOmDQCgXLlyOHnypMQRUWHD5JIKpFq1aqF27dri7bS0NLx79w7v3r3D/fv38fz5c7H87NmzOHv2LLp06YLvv/8exYsXlypsIiIiKqDSv2QDgAULFqBr167SBUOkp5hcUoHk4eGBcePGZVofHh6O/fv3Y8uWLXj16hUAYP/+/bh//z62bdsGMzOz/AqVSK/l1bfW8+fPx/z58/Pk2CS9LVu2SB0Caeju3bt5ctyi9hx4//49Hj16BAAwNjaGl5eXxBER6Scu6EOFkoODA4YNG4YjR47gs88+E8tv3bqFqVOnShgZERERFTRv374Vr9vb28PAgB+hidThK4MKNQsLCyxbtgytWrUSy/75558itbIdERERaSc5OVm8zsSSKHMyQRAEqYMg0oTiggNjx47NclhsRjEx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tWrV4Ofnh3PnzuH48eMICgrCmzdv8O7dO5iYmMDGxgaOjo6oU6cOmjdvDjc3N52viNumTRtYWloqzfvUpHemVKlSuHz5Mi5duoSAgADcunULT548EedGWVhYoGzZsqhVqxY8PT3RtGlTncatz1avXo3bt2/j4sWLuHHjBh48eIBXr17h/fv3MDExga2tLZydneHh4YHOnTtrNJT6iy++QNeuXbF//35cuHABISEhiIqKQlJSEiwsLFCqVCk4OTmhYcOG8PDwyNX7SW7kxWPNzoQJE+Du7o49e/bg5s2biIyMzNG+hprI7esiIyneY3LKzc0Nhw8fxubNm3Hq1CnxCzkHBwe4urrCy8srR1sSpatWrRr27duH48eP4/jx47h27RoiIiLw/v17WFpaonz58qhduzZatWqV6RdzlpaW8PX1xY4dO3Dq1Ck8ePAA7969y3b+pa4+G+VGnTp1cOHCBVy4cEHc6/XJkyeIiYlBWloaLC0tUaFCBdStWxdeXl5KK4hT/pIJBXmZNCLKF2FhYeKCKo6OjmrnZxIRERFR0ca+YiLKluKiSNoOiyIiIiKiwonJJRFl6fnz59iwYYN4u1OnThJGQ0RERET6isklURE2YcIE/PPPP5luLXH27Fn069dPnG/p7Oyco8VViIiIiKjo4JxLoiKsdevWeP78OSwsLODq6opy5crBxMQEMTExCA4OVtqI2NzcHNu3b5dkYQQiIiIi0n9cLZaIEB8fD39//0zrK1SogGXLljGxJCIiIqJMseeSqAh7+vQpjh07hoCAADx9+hTR0dGIiYmBsbExbG1t4erqilatWqFTp075sn8jERERERVcTC4LoPr16yMpKQkODg5Sh0JERERERBIKDw+HiYkJAgICpA6Fw2ILosTERKSmpkodBhERERERSSwlJQX60l/I5LIAKlmyJADgxIkTEkdCRERERERSatOmjdQhiLgVCREREREREWmNySURERERERFpjcklERERERERaY3JJREREREREWmNySURERERERFpjcklERERERERaY3JJREREREREWmNySURERERERFpjcklERERERERaY3JJREREREREWmNySURERERERFpjcklERERERERaY3JJREREREREWmNySURERERERFpjcklERERERERaY3JJREREREREWmNySURERERERFpzUjqAHQt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ysvLC1WrVhU5MiIiIiIyFBJZ7sXtSOd1794dAODn55e9o2pV4N27/9/gzBnAxUWEyEiXPXz4EC1btsTUqVOxYMECGBsb5HdLRERERKWKUm4gIn66NAQsi6X/I5PJIJFIVB5zcHDAkydPUKlSJS1HRURERESlgUHNFlsqyWQsiyUAwJ07d9CuXTu8fPkyzzZMLImIiIiopDC51HfJydkJpjwml6WKTCaDh4cHWrdujevXr2Pw4MFIS0sTOywiIiIiKmWYXOq73CWxAMtiS5HExESMGTMG48aNQ0pKCgAgICAAP/74o8iREREREVFpw3su9V3ukliAI5elxIMHD+Dm5oZ79+4pHfv333+RnJyMcuXKiRAZEREREZVGHLnUd7lHLiUSgAmFwduzZw9atmypMrGcMmUKLl++zMSSiIiIiLSKI5f6LndyaWYGGPE7A0OVkpKC7777Dlu2bFE6Zmlpie3bt8PNzU2EyIiIiIiotGNyqe84U2yp8eTJE7i5ueHWrVtKxz755BN4e3ujXr162g+MiIiIiAgsi9V/XOOyVPD29oazs7PKxPLrr7/GtWvXmFgSERERkaiYXOq73MklRy4NSmpqKqZOnYrBgwcjPj5e4Zi5uTk8PT2xefNm3l9JRERERKJjWay+Y1msQfP09MS6deuU9js6OsLb2xsNGzYUISoiIiIiImUcudR3LIs1aGPGjEHv3r0V9o0aNQr+/v5MLImIiIhIpzC51HccuTRoRkZG2LVrF+zt7WFqaort27djx44dMOeXCERERESkY1gWq+94z6XBs7W1xcGDB2FqaoqmTZuKHQ4RERERkUpMLvUdy2INwunTp2FtbY02bdqoPN6qVSstR0REREREVDQsi9V3LIvVaxkZGfj555/h6uqKwYMHIyoqSuyQiIiIiIiKhcmlvmNZrN4KCwuDi4sLfv31V8hkMrx+/RqjRo1CVlaW2KERERERERUZk0t9x7JYvXTu3Dk4OTnhwoULCvtPnTqFgwcPihMUEREREZEamFzqO5bF6pWsrCwsWrQILi4uCA8PVzhmbGyM1atXY9CgQSJFR0RERERUfJzQR9+xLFZvREREYOTIkThz5ozSsRo1auDAgQN5TuhDRERERKTrOHKp71gWqxeuXLkCJycnlYmlq6srgoKCmFgSERERkV5jcqnvWBar07KysrB8+XJ06dIF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JiQk4JtvvhH+UwQANzc33Lx5s0RmIyMqrfbs2SMkMp07d0azZs003kdAQABmzJiB8PBwhf1paWl4/PgxHj9+jL179+K7777LdyIFeVeuXMH06dMRExOjsD8kJAQhISE4duwYdu3ale9kHSURV2Fs2bIFa9euRXp6usL+iIgIRERE4PLly9i2bRs2bNhQ6NlKjx49innz5gkzWBbk3Llz+N///qeQhCclJSEgIAABAQEYPnw45s2bB4lEAh8fHyxYsEAh3pSUFFy7dg3Xrl3DpEmT8N133+XbX0m81kX9mfNz9uxZYbtVq1ZFeq58SWxOQvP5558LXzr4+PigY8eOasdYHHv27BHet44dO2q1fE9+5KdTp075tu3cubOwLX/fd1HExMQI10KFChVgbW2db/vatWsL2+fPn9fo77ih0PZ7KFafOV6+fClsqxotlde6dWucP38eqampuHTpkk5N3qVtTC71VSkaubx37x4GDRqktL7Yo0ePsHLlSvzyyy8iRUZkeK5cuSJs5/dNf3FdvHgR3377LdLT0yGRSNCuXTt06NABVapUQVpaGu7evYujR48iLi4Oq1atAoACP+Q9ePAAHh4eSE9Px4ABA9C8eXOYm5vjxYsX8PLywvv37/Hy5Uv89NNPCmVymoyrXr16wuQvu3btgr+/P4DsyUQqVqwotKtatapCv+vXr1cYWevRowc6duwIKysrvHr1CocPH8aLFy8QGhqK4cOHw9vbG3Xq1Mn39QgKCsKmTZsgkUgUXo/Xr1+rvGfo/v372LZtGwBgyJAhcHZ2homJCYKCgnDgwAGkpqZi7969aNasGczMzDBnzhyUL18eAwcORMOGDSGRSHD9+nUcOXJEKGFr06YNWrduXSKvtSZ+5oLI/x588sknhX7es2fPhJLT5s2bC6WWrVu3RvXq1fHmzRv4+fkhOjoaFSpUKHJc6pL/uQYMGKDVvh89eiRsN2nSJN+2tra2qFq1KsLCwhAVFVWs10t+tL0wI8/y7R89egSZTFakEevSQNvvoVh9AtlLnuR8yWRqalrgcnbyfycuX77M5JL0UCmZ0Gfnzp345ptvkJycrHTs+++/x5w5c0SIikSRmQlER4sdhfZVqABoacbjpKQkPHjwQHjs5OSk0fO/f/8eP/74I9LT02FpaYl169ahbdu2Cm0+//xzfP311xg/fjwePnyI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/fQToqKilNqtXLkSDx48AAA4OzsrjHjK8/f3h4ODAxwcHNCtW7c8+50yZYqwvXDhQrx8+VKpjaenJ86fPw8AsLe3x8CBAwv3QxEREREREekBg1vncvDgwfD19cXVq1fx+PFj9O/fH25ubqhbty5iYmJw8uRJ/PfffwCyZ2tduHCh2n127twZAwcOxKFDhxAREYEvvvgCbm5uaNSoEZKTk3Hu3DkhsTQxMcGvv/6qMwudEhERERERaYJElt9NgnoqISEBM2bMEBI6VapUqYLVq1fD2dk5zzb+/v4YNWoUAKB69eo4d+5cnm0zMjIwb948HDx4MM825cuXx5IlS9CjR49C/BRERERERET6wyCTyxy+vr44evQogoODERUVBXNzc9SsWRMuLi4YOnRogetMFiW5lH+Oj48PAgMDERERgbJly6J69ero1q0bhg4dikqVKmnkZyMiIiIiItIlBp1cEhERERERkXYY1IQ+REREREREJA4ml0RERERERKQ2g5stVtf5+vri2LFjCA4ORmRkJCwsLFCzZk306NGjUPeBFoe/vz8OHjyI//77DxERETA1NRXuAx0yZAjvAzVQ2rrWUlNTcf36dVy/fh3BwcF4/vw5YmNjYWJiggoVKqBx48bo1asXevToARMTE430SbpFjL9rua1duxYbNmwQHg8YMABLly4t8X5Ju8S61l68eIFjx47h8uXLePv2LWJjY1G+fHlUrFgRTZo0QatWrdCzZ0+UK1euRPon7dP2tRYVFYWDBw/iypUrePLkCeLi4iCVSmFjY4P69euja9eu6NevH8zNzTXaL4kjMzMTT58+xd27d3Hv3j3cvXsXISEhSElJAVCy/4eVdF7Aey61RFMz2BZFRkYG5s+fDx8fnzzbcAZbw6PNa+3kyZOYO3cuEhMTC2xbv359rFy5Eg4ODmr1SbpDjL9rqoSEhGDQoEFIT08X9jG5NCxiXWtpaWlYvXo1du/erXB9qXLkyBE0bNhQY32TOMS41o4fP45ffvkF8fHx+barVKkSVq5cidatW2ukXxLPlClTcObMmTyPl8T/YdrKC5hcakFGRga+/vprXL16FQBga2srrL0ZGxuLEydOIDAwEABgZWWFvXv3ol69emr3O2vWLBw6dAhA9pqegwYNUlh788KFCwCy197ctm0b2rRpo3afJC5tX2tbtmzB77//DgCw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ERERERERqY3JJREREREREamNySURERERERGpjcklERERERERqY3JJREREREREamNySURERERERGpjcklERERERERqY3JJREREREREamNySURUSlz6NAhODg4wMHBATNnzhQ7HFKDu7u78F76+/tr7Lzr1q0Tzrtu3TqNnZeIiAybsdgBEBEZOnd3dwQEBBT5eUeOHEHDhg1LIKLSYd26dVi/fn2ex8uWLQsrKyvUrl0bzZs3x8CBA1GjRg0tRki6wt/fH6NGjcrzuLGxMSwsLFC5cmU4OjqiV69e6NixI4yM+B09EZE8/lUkIqJSKTU1FREREfD398fGjRvRs2dPLFu2DGlpaWKHplEchVRfRkYGYmJi8PDhQxw6dAhff/01BgwYgMePH2s9Fr6fRKTLOHJJRKRFTZo0QdOmTQvVtkKFCiUcTelRqVIluLi4KOxLTk7G06dPcefOHchkMmRlZcHDwwPv37/HypUrIZFIRIqWxDZixAiFx+np6QgPD0dgYCDi4+MBACEhIRg1ahT279+PmjVrihEmEZHOYXJJRKRFnTt3xpQpU8QOo9T5+OOPMW/ePJXHHj16hB9++EEYhTpx4gR69OiB3r17azPEYtm9e3eJnHfKlCml+jrN61pJSkrC6tWrsWvXLgBAdHQ0lixZgk2bNmkzPCIincWyWCIiKtXq16+P7du3w9LSUti3c+dOESMiXWVmZoY5c+agR48ewr7z588jPDxcxKiIiHQHk0siIir1KleujIEDBwqP79y5g4SEBBEjIl325ZdfKjy+efOmSJEQEekWlsUSEemBqKgoXLhwAQEBAXj48CHevn2LxMRElCtXDra2tnBycoKrqys6duyo0X7v3LmDI0eOICgoCKGhoUhKSoK5uTlsbGxQoUIFNG3aFB06dEDLli1hamqa77mSkpJw5MgRXLp0CQ8fPkR0dDSMjIxgZ2eH5s2bo1+/fmjbtq1G4y+KZs2aCSOWmZmZePv2LerXr6/U7u3bt/D29sbVq1cRGhqKuLg4WFlZwd7eHh06dICbmxuqVq1aqD7VfX3lZyLetWsXWrdurfJYjvXr16ucQXfAgAFYunSp8Fh+pt3JkycrlMjevXsXX3zxBQDA0tISV69eRdmyZQv8WZOTk9GuXTskJSUBNdjTbAAAE35JREFUAI4dOwYHBweVbWUyGXx9feHr64tb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8OFDvHnzBomJiZBIJLCyskLt2rXRpk0bfP7556hevXqB52zTpg3+/vtvnD17FhcuXMDt27cRGRmJhIQEmJqawtbWFrVr14aTkxM6deqkMEOrLpk0aRL69+8Pb29vXLlyBaGhoYiPj4elpSVq1KiBDh06wM3NTZg9VZWSeH0L0rlzZxw6dAienp4IDAzEmzdvkJSUpNHRqUqVKqFt27a4evWqsK99+/YKS9IURvXq1bFjxw4EBQXh9OnTuHHjBt69e4e4uDhIpVJYW1vjo48+QuPGjdGhQwe0atVKY9d+cYwbNw579+5FcnIy4uPjsWvXLnz77bfCcScnJ5w8eRI7d+7E+fPnhS+J7Ozs4OjoiH79+qFbt25F6rO476e+vbZEpH8kMtY9EBERERERkZo4oQ8RERERERGpjcklERERERERqY3JJREREREREamNySURERERERGpjcklERERERERqY3JJREREREREamNySURERERERGpjcklERERERERqY3JJREREREREamNySURERERERGpjcklERERERERqY3JJREREREREamNySURERERERGpjcklERERERERqY3JJREREREREamNySURERERERGp7f8BmJFuKXTa7dcAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1000x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cc.plot_roc(\n",
" roc_metric_dict={\"Geneformer\": all_metrics[\"all_roc_metrics\"]},\n",
" model_style_dict={\"Geneformer\": {\"color\": \"red\", \"linestyle\": \"-\"}},\n",
" title=\"Dosage-sensitive vs -insensitive factors\",\n",
" output_directory=output_dir,\n",
" output_prefix=output_prefix,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "d10ac27f-8d70-400e-8a00-d0b84c1d02b4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'conf_matrix': Dosage-sensitive TFs Dosage-insensitive TFs\n",
" Dosage-sensitive TFs 61229.0 14801.0\n",
" Dosage-insensitive TFs 9094.0 73907.0,\n",
" 'macro_f1': [0.8489695337205987,\n",
" 0.8637730998133415,\n",
" 0.9122635701525341,\n",
" 0.8180200155972593,\n",
" 0.7913574275548942],\n",
" 'acc': [0.8544562281799618,\n",
" 0.8647275498539312,\n",
" 0.9122812348079727,\n",
" 0.8182044035899506,\n",
" 0.798060129740519],\n",
" 'all_roc_metrics': {'mean_tpr': array([0. , 0.29330305, 0.39824459, 0.48477052, 0.53910681,\n",
" 0.58654819, 0.62233428, 0.65499297, 0.68383714, 0.7105218 ,\n",
" 0.7331015 , 0.75404762, 0.77191402, 0.79007262, 0.80530801,\n",
" 0.81812243, 0.83182971, 0.84348565, 0.85308334, 0.86179954,\n",
" 0.87018186, 0.87841599, 0.88666193, 0.89398957, 0.90104605,\n",
" 0.90768847, 0.91468381, 0.92081589, 0.92687436, 0.93170239,\n",
" 0.93600138, 0.93963402, 0.9430781 , 0.94641134, 0.94881205,\n",
" 0.95143243, 0.95361201, 0.95556462, 0.95766077, 0.95966244,\n",
" 0.96118109, 0.96277551, 0.96448544, 0.96590662, 0.96726595,\n",
" 0.96852001, 0.96991619, 0.97113487, 0.9723888 , 0.97361378,\n",
" 0.97487929, 0.97591807, 0.97725326, 0.97856005, 0.97952476,\n",
" 0.98071045, 0.98164245, 0.98264028, 0.98393822, 0.9850845 ,\n",
" 0.98620898, 0.9872157 , 0.98857151, 0.98954745, 0.99058733,\n",
" 0.99138259, 0.99226871, 0.99306583, 0.99380789, 0.99461065,\n",
" 0.99527049, 0.99592002, 0.99655526, 0.99691174, 0.99757778,\n",
" 0.9978895 , 0.99816814, 0.99852539, 0.99874352, 0.99896924,\n",
" 0.99925024, 0.9993954 , 0.99949426, 0.99964604, 0.99974177,\n",
" 0.99977018, 0.9998233 , 0.99984802, 0.99990114, 0.99994688,\n",
" 0.99996108, 0.99997159, 1. , 1. , 1. ,\n",
" 1. , 1. , 1. , 1. , 1. ]),\n",
" 'mean_fpr': array([0. , 0.01010101, 0.02020202, 0.03030303, 0.04040404,\n",
" 0.05050505, 0.06060606, 0.07070707, 0.08080808, 0.09090909,\n",
" 0.1010101 , 0.11111111, 0.12121212, 0.13131313, 0.14141414,\n",
" 0.15151515, 0.16161616, 0.17171717, 0.18181818, 0.19191919,\n",
" 0.2020202 , 0.21212121, 0.22222222, 0.23232323, 0.24242424,\n",
" 0.25252525, 0.26262626, 0.27272727, 0.28282828, 0.29292929,\n",
" 0.3030303 , 0.31313131, 0.32323232, 0.33333333, 0.34343434,\n",
" 0.35353535, 0.36363636, 0.37373737, 0.38383838, 0.39393939,\n",
" 0.4040404 , 0.41414141, 0.42424242, 0.43434343, 0.44444444,\n",
" 0.45454545, 0.46464646, 0.47474747, 0.48484848, 0.49494949,\n",
" 0.50505051, 0.51515152, 0.52525253, 0.53535354, 0.54545455,\n",
" 0.55555556, 0.56565657, 0.57575758, 0.58585859, 0.5959596 ,\n",
" 0.60606061, 0.61616162, 0.62626263, 0.63636364, 0.64646465,\n",
" 0.65656566, 0.66666667, 0.67676768, 0.68686869, 0.6969697 ,\n",
" 0.70707071, 0.71717172, 0.72727273, 0.73737374, 0.74747475,\n",
" 0.75757576, 0.76767677, 0.77777778, 0.78787879, 0.7979798 ,\n",
" 0.80808081, 0.81818182, 0.82828283, 0.83838384, 0.84848485,\n",
" 0.85858586, 0.86868687, 0.87878788, 0.88888889, 0.8989899 ,\n",
" 0.90909091, 0.91919192, 0.92929293, 0.93939394, 0.94949495,\n",
" 0.95959596, 0.96969697, 0.97979798, 0.98989899, 1. ]),\n",
" 'all_roc_auc': [0.9373324264902606,\n",
" 0.9410936383111078,\n",
" 0.9635257667493496,\n",
" 0.8903987740960708,\n",
" 0.8781592994811886],\n",
" 'roc_auc': 0.9141830130444975,\n",
" 'roc_auc_sd': 0.03204329033266111}}"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_metrics"
]
},
{
"cell_type": "markdown",
"id": "7007e45e-16c2-47a3-962c-92b9fe867bde",
"metadata": {},
"source": [
"### Train gene classifier with all data:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "6df82c21-937c-4563-ba6b-a52ce287f542",
"metadata": {},
"outputs": [],
"source": [
"import datetime\n",
"import pickle\n",
"from geneformer import Classifier\n",
"\n",
"current_date = datetime.datetime.now()\n",
"datestamp = f\"{str(current_date.year)[-2:]}{current_date.month:02d}{current_date.day:02d}{current_date.hour:02d}{current_date.minute:02d}{current_date.second:02d}\"\n",
"datestamp_min = f\"{str(current_date.year)[-2:]}{current_date.month:02d}{current_date.day:02d}\"\n",
"\n",
"\n",
"output_prefix = \"tf_dosage_sens_alldata\"\n",
"output_dir = f\"/path/to/output_dir/{datestamp}\"\n",
"!mkdir $output_dir"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f031131c-54fd-4ad1-a925-bf0846cc3235",
"metadata": {},
"outputs": [],
"source": [
"# Example input_data_file: https://huggingface.co/datasets/ctheodoris/Genecorpus-30M/blob/main/example_input_files/gene_classification/dosage_sensitive_tfs/dosage_sensitivity_TFs.pickle\n",
"with open(\"/path/to/dosage_sensitivity_TFs.pickle\", \"rb\") as fp:\n",
" gene_class_dict = pickle.load(fp)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "cd27b15c-52d4-46a6-af8c-812c8731f82c",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Hyperparameter tuning is highly recommended for optimal results. No training_args provided; using default hyperparameters.\n"
]
}
],
"source": [
"cc = Classifier(classifier=\"gene\",\n",
" gene_class_dict = gene_class_dict,\n",
" max_ncells = 10_000,\n",
" freeze_layers = 4,\n",
" num_crossval_splits = 0,\n",
" forward_batch_size=200,\n",
" nproc=16)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "3d542bda-fbab-4d63-ab58-00d4caa996b9",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7f77eaec105642b199a9e797fccdbf4b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Saving the dataset (0/1 shards): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Example input_data_file: https://huggingface.co/datasets/ctheodoris/Genecorpus-30M/tree/main/example_input_files/gene_classification/dosage_sensitive_tfs/gc-30M_sample50k.dataset\n",
"cc.prepare_data(input_data_file=\"/path/to/gc-30M_sample50k.dataset\",\n",
" output_directory=output_dir,\n",
" output_prefix=output_prefix)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "b8f421d0-c6b2-4ceb-af93-7f5276a6dfd7",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8c8df78bcd7c4add9121d75b42ffd3ee",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Filter (num_proc=16): 0%| | 0/33558 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "102f40fd802f4b6eb48afddf8130508d",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Map (num_proc=16): 0%| | 0/10000 [00:00<?, ? examples/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"mkdir: cannot create directory ‘/gladstone/theodoris/home/ctheodoris/temp/test_suite_output/classifer_tests/240224031008/240224_geneformer_geneClassifier_tf_dosage_sens_alldata/’: File exists\n",
"Some weights of BertForTokenClassification were not initialized from the model checkpoint at /gladstone/theodoris/home/ctheodoris/Geneformer and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n",
"Detected kernel version 4.18.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.\n",
"/gladstone/theodoris/home/ctheodoris/Geneformer/geneformer/collator_for_classification.py:581: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" batch = {k: torch.tensor(v, dtype=torch.int64) for k, v in batch.items()}\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" \n",
" <progress value='834' max='834' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" [834/834 02:35, Epoch 1/1]\n",
" </div>\n",
" <table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>Step</th>\n",
" <th>Training Loss</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>83</td>\n",
" <td>0.700600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>166</td>\n",
" <td>0.643100</td>\n",
" </tr>\n",
" <tr>\n",
" <td>249</td>\n",
" <td>0.544700</td>\n",
" </tr>\n",
" <tr>\n",
" <td>332</td>\n",
" <td>0.412900</td>\n",
" </tr>\n",
" <tr>\n",
" <td>415</td>\n",
" <td>0.298600</td>\n",
" </tr>\n",
" <tr>\n",
" <td>498</td>\n",
" <td>0.205700</td>\n",
" </tr>\n",
" <tr>\n",
" <td>581</td>\n",
" <td>0.138900</td>\n",
" </tr>\n",
" <tr>\n",
" <td>664</td>\n",
" <td>0.103200</td>\n",
" </tr>\n",
" <tr>\n",
" <td>747</td>\n",
" <td>0.090000</td>\n",
" </tr>\n",
" <tr>\n",
" <td>830</td>\n",
" <td>0.083100</td>\n",
" </tr>\n",
" </tbody>\n",
"</table><p>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 6 layer Geneformer: https://huggingface.co/ctheodoris/Geneformer/blob/main/model.safetensors\n",
"trainer_test = cc.train_all_data(model_directory=\"/path/to/Geneformer\",\n",
" prepared_input_data_file=f\"{output_dir}/{output_prefix}_labeled.dataset\",\n",
" id_class_dict_file=f\"{output_dir}/{output_prefix}_id_class_dict.pkl\",\n",
" output_directory=output_dir,\n",
" output_prefix=output_prefix)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|