{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loading dosage sensitive TF data...\n", "# targets1: 122\n", "# targets2: 368\n", "# splits: 5\n", "Loading training dataset...\n", "Extracting features for classification...\n", "Creating gene co-expression features...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 10000/10000 [56:14<00:00, 2.96it/s] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Feature matrix shape: (490, 4)\n", "Labels distribution: [122 368]\n", "Starting 5-fold cross-validation...\n", "\n", "Fold 1/5\n", "\n", "Random Forest Results:\n", "Accuracy: 0.7551\n", "Precision (Macro): 0.6710\n", "Precision (Weighted): 0.7431\n", "F1 (Macro): 0.6591\n", "F1 (Weighted): 0.7477\n", "\n", "Logistic Regression Results:\n", "Accuracy: 0.7449\n", "Precision (Macro): 0.6538\n", "Precision (Weighted): 0.7292\n", "F1 (Macro): 0.6394\n", "F1 (Weighted): 0.7349\n", "\n", "Fold 2/5\n", "\n", "Random Forest Results:\n", "Accuracy: 0.8367\n", "Precision (Macro): 0.7922\n", "Precision (Weighted): 0.8304\n", "F1 (Macro): 0.7728\n", "F1 (Weighted): 0.8318\n", "\n", "Logistic Regression Results:\n", "Accuracy: 0.7959\n", "Precision (Macro): 0.7329\n", "Precision (Weighted): 0.8016\n", "F1 (Macro): 0.7382\n", "F1 (Weighted): 0.7984\n", "\n", "Fold 3/5\n", "\n", "Random Forest Results:\n", "Accuracy: 0.7755\n", "Precision (Macro): 0.6938\n", "Precision (Weighted): 0.7695\n", "F1 (Macro): 0.6875\n", "F1 (Weighted): 0.7721\n", "\n", "Logistic Regression Results:\n", "Accuracy: 0.7551\n", "Precision (Macro): 0.6645\n", "Precision (Weighted): 0.7484\n", "F1 (Macro): 0.6591\n", "F1 (Weighted): 0.7514\n", "\n", "Fold 4/5\n", "\n", "Random Forest Results:\n", "Accuracy: 0.8367\n", "Precision (Macro): 0.7924\n", "Precision (Weighted): 0.8281\n", "F1 (Macro): 0.7576\n", "F1 (Weighted): 0.8283\n", "\n", "Logistic Regression Results:\n", "Accuracy: 0.7857\n", "Precision (Macro): 0.7322\n", "Precision (Weighted): 0.7657\n", "F1 (Macro): 0.6174\n", "F1 (Weighted): 0.7469\n", "\n", "Fold 5/5\n", "\n", "Random Forest Results:\n", "Accuracy: 0.8163\n", "Precision (Macro): 0.7524\n", "Precision (Weighted): 0.8116\n", "F1 (Macro): 0.7443\n", "F1 (Weighted): 0.8136\n", "\n", "Logistic Regression Results:\n", "Accuracy: 0.7449\n", "Precision (Macro): 0.6365\n", "Precision (Weighted): 0.7212\n", "F1 (Macro): 0.6145\n", "F1 (Weighted): 0.7289\n", "\n", "============================================================\n", "CROSS-VALIDATION SUMMARY\n", "============================================================\n", " accuracy precision_macro \\\n", " mean std mean std \n", "classifier \n", "Logistic Regression 0.7653 0.0239 0.6840 0.0454 \n", "Random Forest 0.8041 0.0371 0.7403 0.0559 \n", "\n", " precision_weighted f1_macro f1_weighted \\\n", " mean std mean std mean \n", "classifier \n", "Logistic Regression 0.7532 0.0321 0.6537 0.0506 0.7521 \n", "Random Forest 0.7965 0.0386 0.7243 0.0486 0.7987 \n", "\n", " \n", " std \n", "classifier \n", "Logistic Regression 0.0274 \n", "Random Forest 0.0371 \n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABcsAAAPXCAYAAAD0UBMMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XtclGX+//E3M4AHcMADkmkGqJBRrLqbShSddM3DpqtWmBa5rvFLwsRqTXM1VytjPS6u4abmYVtx+2YlapStGSsevttq4lp5AA+Vu4SnGUARmZnfHy7zdeIQDKcBXs/Ho8fEdd+f67rumxkv5jPXXJeH3W63CwAAAAAAAACAZszQ0B0AAAAAAAAAAKChkSwHAAAAAAAAADR7JMsBAAAAAAAAAM0eyXIAAAAAAAAAQLNHshwAAAAAAAAA0OyRLAcAAAAAAAAANHskywEAAAAAAAAAzR7JcgAAAAAAAABAs0eyHAAAAAAAAADQ7JEsBwAAANzciy++qPvvv79aMfv27VNYWJj27dtXR70CAKBpY/wtX1hYmJKTk12O/d3vflfLPaqexx9/XI8//niD9gHui2Q50Ay8/fbbCgsL08MPP9zQXQEAoFHYtGmTwsLCHP/dfvvtGjRokH73u9/p7NmzDd09t/f4448rLCxMP//5z8s9npmZ6bi36enp9dw7AIC7Yvx13cSJE3XHHXfIbrc7lX/55ZcKCwvTfffdVyZmz549CgsL08aNG+urm1W2f/9+JScny2KxNHRX0Mx4NnQHANS9tLQ0de7cWVlZWTp16pRuvvnmhu4SAACNwuTJk9WlSxcVFxfrn//8pzZs2KDPPvtMW7ZsUatWreqtH3Pnzi3z5vfH3HHHHcrKypKXl1cd9apyLVq00KlTp5SVlaWIiAinY2lpaWrRooWuXLnSIH0DALg3xt/q++lPf6qMjAwdPXpUYWFhjvL9+/fL09NTZ86c0X/+8x/dcMMNTsdKY6sjKytLRqOxdjpegQMHDmjZsmX65S9/KZPJVKdtAddjZjnQxH3zzTc6cOCApk+frnbt2iktLa2hu1SuS5cuNXQXAAAoIzo6WsOHD9fDDz+s+fPnKzY2Vt9++63+9re/VRhTF2Oal5eXvL29qxVjMBjUokULGQwN8yd/165dFRwcrC1btjiVX7lyRdu3b9e9995b7326cuWKbDZbvbcLAKgext/qK014//Of/3Qq379/v6Kjo9W6detyj/n7+6tbt27VaqtFixby9GT+LZomkuVAE5eWliY/Pz/dc889GjRoULnJcovFoldffVX333+/brvtNkVHR+s3v/mNzp8/7zjnypUrSk5O1qBBg3T77bfrrrvu0jPPPKPTp09Lqnhdtm+//VZhYWHatGmTo+zFF19U7969dfr0aU2cOFG9e/fW888/L0n6/PPPNXnyZN1777267bbbdM899+jVV19VUVFRmX5nZ2fr2WefVf/+/RUREaFBgwZp8eLFkqS9e/cqLCxM27dvL/eehIWF6cCBAy7cUQBAc9a/f39J18Y3qfIxzWazac2aNRo6dKhuv/123XnnnZo1a5bMZnOZej/77DONGzdOvXv3Vp8+fTRq1CinMbu8NVO3bt2qkSNHOmJ+8YtfaO3atY7jFY3NH374oUaOHKmIiAj169dPzz//vHJzc53OKb2u3NxcTZo0Sb1791b//v31+uuvy2q1Vvl+DRs2TNu2bXNKUO/YsUNFRUV68MEHy5z/3Xff6eWXX9agQYMc/Zs8ebLjfl/vx/5+Kb3+rVu3avHixbr77rv1k5/8RAUFBVW+DwAA98D4++Pjb0REhLy8vByzxUvt379fd9xxhyIiIpyO2Ww2ffHFF+rdu7c8PDwkXRtbX3nlFd1zzz267bbbNHDgQP3pT38q80FzeWuW79u3TyNHjtTtt9+uAQMGKDU1VcnJyU6z3K/3ySefaNiwYbrttts0dOhQZWRkOI4lJycrKSlJkvTAAw84luW5/u+BDz74wHE/+/btq8TERP373/8u087GjRs1YMAARUREaPTo0fr8888rvY8AHwMBTVxaWpoGDhwob29vDRs2TBs2bHD6OnRhYaHGjh2r7OxsjRo1SrfeeqsuXLigHTt2KDc3V+3atZPValVcXJz27NmjoUOH6oknnlBhYaEyMzN19OhRde3atdr9Kikp0YQJE/TTn/5U06ZNU8uWLSVJ6enpKioq0pgxY+Tv76+srCz9+c9/1n/+8x/94Q9/cMR//fXXGjt2rDw9PfXoo4+qc+fOOn36tHbs2KHExET169dPnTp1clz/D+9J165d1bt37xrcWQBAc1T6IbG/v7+jrKIxbdasWXrvvfc0cuRIPf744/r222/19ttv68svv9SGDRscX8/etGmTZsyYoR49eiguLk5t2rTRV199pb///e/6xS9+UW4/MjMzNXXqVEVGRjqSAzk5Odq/f79iY2Mr7P+mTZs0ffp03X777Zo6darOnTundevWaf/+/Xr//fedvuZstVo1YcIERURE6De/+Y327Nmj1atX66abbtJjjz1Wpfs1bNgwJScna9++fYqMjJQkbdmyRf3791f79u3LnH/o0CEdOHBAQ4cO1Q033KDvvvtOGzZs0BNPPKGtW7c6vnpflb9fSi1fvlxeXl6aMGGCiouL5eXlVa37AABoeIy/Pz7+tmjRQrfddptTQvzf//63/v3vf6t3796yWCz67LPPHMeOHj2qgoICx4z0y5cva9y4ccrNzVVMTIw6deqkAwcOaNGiRcrLy9NLL71UYdtffvmlfv3rXysgIEAJCQmy2Wz64x//6DQeX++f//ynPv74Yz322GPy8fHR+vXrNXnyZH366adq27atBg4cqJMnT2rLli2aPn262rZtK0mO+t544w0tXbpUgwcP1ujRo3X+/Hn9+c9/1tixY53u5zvvvKNZs2apd+/eio2N1TfffKOnn35afn5+6tSpU4XXg2bODqDJOnTokD00NNSemZlpt9vtdpvNZo+OjrbPmzfPcc7SpUvtoaGh9o8//rhMvM1ms9vtdvv//M//2ENDQ+1vvfVWhefs3bvXHhoaat+7d6/T8W+++cYeGhpqf/fddx1l06ZNs4eGhtoXLFhQpr7Lly+XKVuxYoU9LCzM/t133znKxo4da+/du7dT2fX9sdvt9oULF9pvu+02u8VicZSdO3fOfuutt9r/8Ic/lGkHAIBS7777rj00NNS+e/du+7lz5+z//ve/7Vu3brX37dvXHhERYf/Pf/5jt9srHtP+8Y9/2ENDQ+2bN292Ks/IyHAqt1gs9t69e9sffvhhe1FRkdO5149p06ZNs993332On+fNm2fv06ePvaSkpMJr+OHYXFxcbI+MjLQPGzbMqa1PP/3UHhoaal+6dKlTe6GhofZly5Y51TlixAj7L3/5y4pv3H+NGzfOPnToULvdbrePHDnSPmPGDLvdbrebzWZ7eHi4/b333nP078MPP3TElfd3wIEDB+yhoaH29957z1FWlb9fSut/4IEHnOqtzn0AANQvxt+ajb+vv/66PTQ01HGftmzZYr/99tvtV65cse/cudPes2dPe35+vt1ut9v//Oc/20NDQ+3//Oc/7Xa73f7HP/7R3qtXL/uJEyec6lywYIG9Z8+e9jNnzjjKQkNDnd5Tx8XF2X/yk5842rXb7faTJ0/ab731VntoaKhTfaGhofbw8HD7qVOnHGVfffWVPTQ01L5+/XpH2cqVK+2hoaH2b775xin+22+/tffs2dP+xhtvOJUfOXLEfuuttzrKS+/78OHD7VeuXHGct3HjRntoaKh93LhxP3I30VyxDAvQhKWlpalDhw7q16+fJMnDw0NDhgzRtm3bHF/h+vjjj3XLLbeUmX1den7pOW3bttW4ceMqPMcVY8aMKVNWOhtAurbm3Pnz59W7d2/Z7XZ9+eWXkqTz58/rH//4h0aNGqUbb7yxwv4MHz5cxcXFSk9Pd5Rt27ZNJSUleuihh1zuNwCg+XjyyScVGRmpe+65R4mJifLx8dGyZcsUGBjodN4Px7T09HS1adNGUVFROn/+vOO/8PBwtW7d2vHV7MzMTBUWFuqpp55SixYtnOqobIw1mUy6fPmyMjMzq3wt//rXv3Tu3DmNGTPGqa17771XISEh2rlzZ5mYH17XT3/603KXRKnML37xC23fvl3FxcX66KOPZDQaNWDAgHLPvf7vgKtXr+rChQvq2rWrTCaT4+8AqWp/v5QaMWKEU72u3AcAQP1i/HVt/C2dJV661Mj+/fsVHh4ub29v9e7dWzabTQcPHnQcK52NLl27dz/96U9lMpmc7t2dd94pq9Wqf/zjH+W2abVatWfPHj3wwANOv5+bb75Zd999d7kxd955p9M31G+55Rb5+vrqm2+++dFr3L59u2w2mwYPHuzUzw4dOujmm292/I5L73tMTIzTuvO//OUv1aZNmx9tB80Xy7AATZTVatXWrVvVr18/p0E1IiJCq1ev1p49e3TXXXfp9OnT+vnPf15pXadPn1ZwcHCtbuDh6enptAt3qTNnzugPf/iDduzYUWZNudI1RksH0NDQ0Erb6Natm26//XalpaXp4YcflnTtA4RevXrp5ptvro3LAAA0cbNmzVJwcLCMRqM6dOig4ODgMht2lTemnTp1Svn5+Y6lR37o3Llzkv7va+U9evSoVr8ee+wxffjhh5o4caICAwMVFRWlwYMHKzo6usKYM2fOSJKCg4PLHAsJCSmz6VeLFi3KfH3az8+v3DVfKzNkyBC9/vrrysjI0ObNm3XvvffK19e33HOLioq0YsUKbdq0Sbm5ubLb7Y5j+fn5jv+vyt8vpbp06eL0c3XvAwCg/jH+ujb+9unTRx4eHtq/f7+GDh2q/fv3684775R0LdHfvXt37d+/X1FRUdq/f79uv/12RyL51KlTOnLkSIX37vo9za537tw5FRUVlfseu6L33eUtgeLn5yeLxfKj13jy5EnZ7fYK/w4ozVuU3vcf9sHLy0s33XTTj7aD5otkOdBE7d27V3l5edq6dau2bt1a5nhaWpruuuuuWmuvok/ff7gRSClvb+8yf+xYrVaNHz9eZrNZv/71rxUSEqLWrVsrNzdXL774YoV1VWbEiBF65ZVX9J///EfFxcX64osvNGvWrGrXAwBoniIiInT77bdXek55Y5rNZlP79u21YMGCcmMqWsOzqtq3b6/3339fu3btUkZGhjIyMrRp0yaNGDFCr7/+eo3qLmU0Gmulno4dO6pv37566623tH///jIbgl1v7ty52rRpk2JjY9WrVy+1adNGHh4eSkxMdEqcV8f1s8oBAI0D469r2rZt60jAFxYW6siRI4qPj3cc7927t/75z3/qP//5j86cOeO0NrvNZlNUVJR+/etfl1t3UFCQy/36oYqusSpjvc1mk4eHh958881y62ndunWN+4fmjWQ50ESlpaWpffv25SaGt2/fru3bt2vOnDnq2rWrjh07VmldXbt21cGDB3X16lXHZig/VLqBxvWzviTpu+++q3Kfjx49qpMnT+r111/XiBEjHOU//Ipb6afAR48e/dE6hwwZovnz52vLli0qKiqSl5eXBg8eXOU+AQDgiq5du2rPnj3q06dPpcna0q8gHzt2rNrfevL29tb999+v+++/XzabTS+//LI2btyoSZMmlVtX6dJlJ06cKDNr7MSJE2WWNqtNw4YN08yZM2UymSqdfffRRx9pxIgRevHFFx1lV65cKfP3RVX+fqlIQ94HAEDdYvy9thTLu+++q8zMTFmtVvXp08dxrHfv3tqyZYtjqZLSZVuka/fk0qVLjpnoVdW+fXu1aNFCp06dKnOsvLKqqmhCXteuXWW329WlS5dyZ+uXKr2vp06dcrrvV69e1bfffqtbbrnF5b6haWPNcqAJKioq0scff6x7771XDz74YJn/xo4dq8LCQu3YsUM///nP9fXXX2v79u1l6in9VPfnP/+5Lly4oLfffrvCczp37iyj0VhmHbMNGzZUud+lswKu/zTZbrdr3bp1Tue1a9dOd9xxh959913HV6t+2J/rz7377ru1efNmx2z6ms4mAADgxwwePFhWq1XLly8vc6ykpMTxNeO77rpLPj4+WrFiha5cueJ0XmWzqy5cuOD0s8FgUFhYmCSpuLi43JjbbrtN7du3V2pqqtM5n332mbKzs3XvvfdW6dpc8eCDD+qZZ57R7NmzndYN/aHyZoitX7/esddKqar8/VKRhrwPAIC6xfh7LQFutVq1evVqBQUFOb3/7d27ty5duqQNGzbIYDCod+/ejmODBw/WgQMH9Pe//71MnRaLRSUlJeW2ZzQadeedd+pvf/ubcnNzHeWnTp0qt66qatWqlaSyE/J+/vOfy2g0atmyZWV+V3a73fE7uu2229SuXbsy9/29996r0nIvaL6YWQ40QTt27FBhYaHuv//+co/36tVL7dq10+bNm7Vw4UJ99NFHevbZZzVq1CiFh4fLbDZrx44dmjNnjm655RaNGDFC77//vl577TVlZWXppz/9qS5fvqw9e/ZozJgxGjBggNq0aaMHH3xQf/7zn+Xh4aGbbrpJO3fudKwJVxUhISHq2rWrXn/9deXm5srX11cfffRRuQPZzJkzNWbMGP3yl7/Uo48+qi5duui7777Tzp079cEHHzidO2LECE2ePFmS9Oyzz1bjTgIA4Jq+ffvq0Ucf1YoVK/TVV18pKipKXl5eOnnypNLT0/XSSy/pwQcflK+vr6ZPn66ZM2dq9OjRGjZsmEwmk77++msVFRVV+JXumTNnymw2q3///goMDNSZM2f05z//WT179lS3bt3KjfHy8tLzzz+v6dOna9y4cRo6dKjOnTundevWqXPnznryySfr7H60adNGCQkJP3revffeqw8++EC+vr7q3r27vvjiC+3evVv+/v5O502YMOFH/36pSEPeBwBA3WL8/b/Z4gcOHNDIkSOdjgUHB6tt27Y6cOCAQkNDHd8Ql66NrTt27ND/+3//T7/85S8VHh6uy5cv6+jRo/roo4/0t7/9rcKJZ88884x27dqlMWPGaMyYMbLZbPrzn/+sHj166KuvvnLpOsLDwyVJixcv1pAhQ+Tl5aX77rtPXbt21ZQpU7Rw4UJ99913GjBggHx8fPTtt9/qk08+0SOPPKIJEybIy8tLU6ZM0axZsxQbG6shQ4bo22+/1aZNm1izHJUiWQ40QZs3b1aLFi0UFRVV7nGDwaB7771XaWlpKi4u1ttvv63k5GRt375d7733ntq3b6/IyEjHTtZGo1Fvvvmm3njjDW3ZskUff/yx/P391adPH8en6NK1PxxKSkqUmpoqb29vPfjgg/rNb36jYcOGVanfXl5eSklJ0bx587RixQq1aNFCAwcO1NixYzV8+HCnc2+55Rb99a9/1dKlS7VhwwZduXJFN954Y7lLrNx3333y8/OTzWbTAw88UNXbCABAjfzud7/TbbfdptTUVC1evFhGo1GdO3fWQw895PSV6Icffljt27fXn/70Jy1fvlyenp4KCQmp9M3zQw89pL/+9a/6y1/+IovFooCAAA0ePFgJCQll1m+93siRI9WyZUu9+eabWrBggVq3bq0BAwbohRdecHrD3FBeeuklGQwGpaWl6cqVK+rTp4/eeuutMuun+vj4/OjfL5Vx9/sAAHBdcx9/b7rpJnXs2FHff/+908zxUr1799aOHTuclmCRrs3kXr9+vVasWKH09HS9//778vX1VVBQkBISEtSmTZsK27ztttv05ptvKikpSUuXLlWnTp00efJk5eTkKCcnx6XriIiI0LPPPqvU1FT9/e9/l81m09/+9je1bt1aTz31lIKCgrRmzRr98Y9/lCTdcMMNioqKcpo0+Oijj8pqtWrVqlVKSkpSaGio3njjDS1dutSlPqF58LC7ulMOADQSJSUluvvuu3Xffffp1VdfbejuAAAAAADQ5E2aNEnHjx/Xxx9/3NBdAaqMNcsBNHmffPKJzp8/77RpKAAAAAAAqB1FRUVOP588eVIZGRnq27dvA/UIcA3LsABosg4ePKgjR45o+fLluvXWWxmkAQAAAACoAwMGDNAvf/lL3XTTTfruu++UmpoqLy+vMkupAe6OZDmAJmvDhg3avHmzbrnlFs2fP7+huwM0SdnZ2Zo3b54OHDggHx8fDR8+XFOmTJG3t3elcRcuXNDixYuVkZGhixcvqkuXLho7dqzGjBnjdF5ubq7mzZunXbt2ycvLSwMHDtT06dPl6+tbl5cFAAAAoBruvvtubd26VXl5efL29lavXr00depUBQUFNXTXgGphzXIAAOASs9msoUOHKigoSHFxccrNzdX8+fP10EMPadasWZXGPvHEE8rJydHUqVPVqVMnZWRkaPXq1Zo7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9OhR/eQnP6nw+O23364jR464Wj0AAKhFjNsAADQejNsAADQMl5PlxcXFunr1aqXHi4qKXK0eAADUIsZtAAAaD8ZtAAAahsvJ8h49emj79u3lHrPb7fr444/VrVs3lzsGAABqD+M2AACNB+M2AAANw+Vk+bhx47R//35NnjxZR44cUUlJiUpKSvT111/r2Wef1RdffKHHH3+8NvsKAABcxLgNAEDjwbgNAEDD8HQ1cPjw4frmm2+0fPlybd++XQbDtby7zWaTh4eHnn76af3yl7+stY4CAADXMW4DANB4MG4DANAwXE6WS9Izzzyjhx56SNu3b9c333wjSeratasGDBigrl271koHAQAVy8k5roKCApdis7OPSZKOHj0iq9VW7XhfX1+FhHR3qW00DMZtAAAaD8ZtAADqX42S5dK1wXrChAnKzs5Wenq6Tp8+rZ07d2rkyJHy9fWtjT4CAMqRk3Nc/fv3qXE9cXETXI7du3c/CfNGhnEbAIDGg3EbdSkr62C1Y4xGg6zWIhmNLas94ebo0SPVbg8A6lu1kuV//vOftX79em3YsEHt2rVzlH/66aeaPHmySkpKZLfbJUnr16/Xxo0bnc4DANSe0hnly5e/qdDQsGrH1/QP3UmTJro8qx31g3EbAIDGg3Eb9aWkpESSNHVqQoO0zwc9ANxZtZLlO3bs0E033eQ0IJeUlOill16S0WjU7373O912223auXOnlixZopSUFM2YMaPWOw0A+D+hoWGKiOhV7ThPT4PatvXRhQuFKimp/jIscH+M2wAANB6M26gvffr8TOnpO+TpWf3FBrKzjykuboJWrFilbt16VDuepRwBuLtq/ct4/PhxPfLII05l+/bt0/nz5xUXF+fYYKRHjx76+uuv9dlnnzF4AwDQQBi3AQBoPBi3UZ/69PmZS3FG47XNZkNDwxQeHlGbXQIAt2CozskXL17UDTfc4FS2Z88eeXh4aODAgU7lffr00b///e+a9xAAALiEcRsAgMaDcRsAgIZXrWR5hw4ddPbsWaeyzz//XC1bttQtt9ziVO7t7S0vL6+a9xAAALiEcRsAgMaDcRsAgIZXrWT5bbfdpvfee8+xoduxY8d06NAh3X333WXWusrJySnzqTgAAKg/9TFuZ2dna/z48erVq5eioqKUlJSk4uLiSmP27dunsLCwcv978MEHnc7Nzc1VQkKCevfurb59++qll15iY1kAQJPE+20AABpetdYsj4+P1+jRozVo0CB1795dhw8floeHh5566qky527fvl39+/evtY4CAIDqqetx22w2KzY2VkFBQUpOTlZubq7mz5+voqIizZo1q8K48PBwbdy40amsoKBAEydOVHR0tKPs6tWr+vWvfy1JWrhwoYqKivT666/rueee04oVK6rVVwAA3B3vtwEAaHjVSpaHhYVp7dq1SklJ0TfffKOf/OQnmjBhgm677Tan8/bt26dWrVqVmR0GAADqT12P26mpqSosLNSyZcvk7+8vSbJarZozZ47i4uIUGBhYbpyvr6969erlVLZp0ybZbDYNGzbMUfbRRx/p2LFj2rZtm0JCQiRJJpNJEyZMUFZWliIi2FQKANB08H4bAICGV61kuXRtI5E//elPlZ7Tr18/paWludwpAABQO+py3M7IyFBkZKQjUS5JgwcP1uzZs5WZmamRI0dWua4tW7YoKCjIKQGekZGhsLAwR6JckqKiouTv76/PPvuMZDkAoMnh/TYAAA2r2slyAAAA6dp6qaNGjXIqM5lMCggIUE5OTpXrOXv2rPbu3aunn366TP3XJ8olycPDQ8HBwdWqvzyentXatgU/wmg0OB6re2+vj63PdoH6VtPnK68VAADqV07OcZf3S8rOPiZJOnr0iKxWW7XjfX19FRLS3aW2UTMkywEAgEssFotMJlOZcj8/P5nN5irXs23bNlmtVqclWErrb9OmTY3r/yGDwUNt2/q4HI+yTKZWjkdX721pHfXdLlBfauv5ymsFAIC6l5NzXP3796lxPXFxE1yO3bt3PwnzBkCyHAAANKi0tDSFh4crODi4Xtqz2eyyWC7VS1vNhcVy2fF44UJhtWKNRoNMplayWC5Xe9ZNTdoF6ltNn6+8VtyPydTKpZn+AAD3VzqjfPnyNxUaGlbteKPRIKu1SEZjy2qP20ePHtGkSRNdntWOmnG7ZHl2drbmzZunAwcOyMfHR8OHD9eUKVPk7e1dYcy+ffv0xBNPlHssODhY6enpjp8///xzLV26VF9//bUMBoNuv/12Pffcc+rZs2etXwsAAE2ZyWRSfn5+mXKz2Sw/P78q1XH69GllZWVp+vTp5dZf3h+IZrNZnTp1qn6Hr1NSUv2vQqJipW8ArFaby/fWldjaaBeoL7X1fOW1AgBA/QkN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/b75p8cee0xVqlTRpEmTZDabczxhu3v37nr00Uc1ZcoU/fXXX3zMEsA1kduAc5DbAK4HchtwDnK7ZKNYDreV29O0mzdvrldeeUXBwcGaP3++/vzzTxmNRvu+kyZNUtOmTbV9+3axHD+Qu6ysLBmNRl2+fFlr1qzRm2++qa+//loHDx6U0WjUa6+9pj/++ENPPfWU9u7dq9OnT+v333/XV199pWrVqqlNmzZKSkrS6dOni/tUALgRchtwDXIbgCuQ24BrkNslHw/4hFuyWCwyGo2SpDNnzujKlSsKCAiQv7+/JOn777/XiBEjVK1aNc2YMUPVqlVzeCDJmTNnVKlSpWKbP+Cust8nZrNZ3bt3V2Zmpmw2m1JTU1W3bl1169ZNXbp00Y8//qgJEybYf0D28fFRhQoVtGHDBu3cuVNDhw7VggUL1LRp0+I+JQBugNwGXIPcBuAK5DbgGuT2jYFiOdzO1SE8fvx4/fDDD/rrr79UoUIFPfPMM7rnnntUsWLFfw1wALnLysrS888/r/T0dI0ZM0Z169bViRMn9MILL+jEiRNau3atQkJClJWVpfXr1ys1NVX+/v7q1q2bDAaDnn/+eR0/flzLly+3P9wHgOcitwHXIrcBOBO5DbgWuV3yUSyH2xoxYoR2796t3r17y8fHR7t379ann36qnj17qn///qpcubK+//57jR49WmXKlNHixYtVpUqV4p424HZsNpvDWmfJycmKjIzUk08+qW7dusnX11dbt27VoEGD9NJLL6lv377KzMyUr6+vwzg//PCDYmJitHPnTq1YsUL16tW73qcCwI2R24BzkNsArgdyG3AOcvvGwyVBuKUDBw5oz549GjFihPr27atevXpp9uzZGjJkiN5//31t3LhRktSsWTNNmDBBUt4PUAA8VUZGhiwWiy5dumRvs1gsOnPmjI4ePapatWrJ19dXn3zyiZ5//nkNGTJEffv2VVpamj744AMdPXrU3i8xMVG//PKLLly4oP/+978ENwAH5DZQdOQ2gOuF3AaKjty+cXkX9wTg2S5fvqy3335bnTp1Uu3ate3tSUlJOnXqlL3typUr8vHx0bPPPqvExES9/fbbeuihhxQcHKyIiAitWbNGpUuXLq7TANzOwYMHtXz5ch0/flzly5dX9+7dddddd8loNCokJES33HKLYmNjdfLkSb3yyisaMmSI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Q1vdunXt/79x40Zt3rxZt9xyiypVqlSoY5QqVUqff/65XnvtNfn6+jps27hxo0qVKqWMjIxCjQ0AQEnjquw1Go1q0qSJ9u7dm2Pbnj175O3trT179uS67aabblJoaGi+j9W8eXPt379fPj4++e5TGBs3btThw4fVp08flx4HAAAAyA+K5cANrk2bNmrUqFGe24cOHaoJEybIx8dHAwYM0OHDhwt8jDvvvFNfffWVtm3bprZt29rb9+zZoz/++EPt27fXZ599Vqj5F9alS5dUtmzZ63pMAAAk12Zvs2bNFBcXp/j4eNWqVcvevmfPHj3wwAPauHGjzp49q6CgIElSVlaW9u/fr9atWxfoHAwGg0qVKlWgPgAAAEBJxzIsgIcLDg4u8l1jwcHBuv3227Vx40aH9tjYWNWtW1d16tTJ0efHH3/U4MGDdffdd6thw4a66667NHnyZKWnp+fYNz4+Xi+88IJatWqlxo0bq3379po9e7Z9+7x58xQeHq4jR45o+PDhat68uXr06CHp7yLBW2+9pbZt26phw4a69957NWvWLGVmZhbpnAEAKKyiZO9tt90mSQ53kJ88eVJnz55Vr169VKpUKYdtv/32my5dumTvJ/2dq4MHD1aLFi3UqFEjPfroo/ryyy8djpPXmuXvv/++7rvvPjVu3FjdunXTjz/+qCeffFJPPvlkjrlarVYtXLjQfvEgKipKx48ft29/8skn9c033+jPP/+0L1dz9ZI0mZmZevPNN9WuXTv7zwrTp0/PkeGZmZmaPHmyWrVqpaZNm+rZZ5/V6dOnC/JlBQAAACRxZzlwwzObzTnWCq9QoYLTj/PQQw9p0qRJSktLk5+fn7KysrRlyxb17ds31yVYtmzZovT0dD3xxBMKDAzU/v379d///lenT5/Wm2++ad/v4MGD6tmzp7y9vfX444+rWrVqOnHihL766isNHTrUYcwXXnhBN998s4YOHSqbzSZJeuWVV7R+/Xq1b99effv21f79+/X2228rPj5eb731ltO/DgAAuDJ7mzRpIm9vb+3evVuPPfaYJGn37t0qW7asGjVqpIYNG2rPnj1q3769pP8rqmcXyw8fPqwnnnhCwcHB6t+/v8qWLatPP/1U0dHRmjdvntq1a5fnsT/44AO9/vrruv3229WnTx/9+eefio6OlslkUuXKlXPsv3jxYnl5eempp56S2WzWkiVLNGLECH300UeSpGeffVapqak6ffq0Ro8eLUny8/OT9HehfeDAgdq9e7e6d++uWrVq6dChQ1q+fLmOHTumBQsW2I/z8ssva8OGDerUqZOaNWumnTt36plnninqlxoAAAAeiGI5cIPLbQ3Q33//3enHad++vV5//XVt3bpVnTt3VlxcnC5cuKAHH3xQ69aty7H/iBEjVLp0afufH3/8cd18882aNWuWTp06papVq0qSJk6cKJvNpvXr19vbsvv/U7169TRz5kz7nw8ePKj169frscce08SJEyVJPXv2VIUKFfTuu+9q586datWqldO+BgAASK7N3jJlyqh+/fravXu3vW3Pnj1q1KiRvL291bRpU4e7wXfv3q0yZcrolltukSRNmjRJVapU0dq1a+3PGenRo4eeeOIJzZgxI89ieWZmpubOnatGjRpp+fLl8vb++9eI8PBwjRo1KtdieUZGhj7++GP7cUwmkyZNmqRDhw6pbt26at26tVasWKGUlBR17tzZoW9sbKx27NihmJgY3X777fb2OnXq6LXXXtOePXvUrFkzHTx4UBs2bFCPHj302muvSfo764cPH+6Sn3cAAABwY2MZFuAGN3bsWL333nsO/7lCQECA7rzzTm3atEnS37/kNm3aVNWqVct1/6sL5ZcuXVJSUpKaNm0qm82mX3/9VZKUlJSkH374QV27dnUolEuSl5dXjjEjIyMd/vztt99Kkvr27evQ/tRTTzlsBwDAmVydvbfddptOnDihs2fPSpL27t2rpk2bSvp7TfPffvtNly9flvR3Ib1x48by9vbWxYsXtXPnTnXo0MF+93tSUpIuXLig//znPzp27JgSExNzPeYvv/yiixcvqnv37vZCufT3J8sCAgJy7fPoo486PPg7u+h98uTJfz3HLVu2qFatWgoLC7PPMykpyX6RO/uCQHaW/3MZmKioqH89BgAAAPBP3FkO3OAaN258zYeMOdNDDz2kl156SadOndKXX36Z693f2U6dOqU333xTX331lZKTkx22mc1mSf/3y3TdunXzdfzq1as7/PnPP/+UwWBQzZo1HdqDgoJkMpn0559/5mtcAAAKwtXZe9ttt2nZsmXas2ePIiIidPjwYXvmNm3a1P5Qz6pVq+rs2bP25VpOnDghm82muXPnau7cubmOff78eQUHB+doP3XqlCTlyFRvb+88L4z/80K3yWSSJKWkpPzrOR4/flzx8fGKiIjIc55S3lkfFhb2r8cAAAAA/oliOQCnuffee+Xj46ORI0cqMzNTHTp0yHU/i8Wivn37Kjk5WU8//bTCwsJUtmxZJSYmatSoUbJarYU6fqlSpXJtz+0udAAASqrs9cd3795t/6RW9p3lFSpUUEhIiHbv3q2//vrLYf/sfH3qqad055135jr2P4vORWEw5P4h1uznilyL1WpV3bp17WuZ/1Nuy74AAAAARUWxHIDTlC5dWm3bttWGDRvUpk2bPB9mdujQIR07dkzTpk1Tly5d7O1xcXEO+9WoUcO+f2FUq1ZNVqtVx48fV61atezt586dU0pKSp53wgEA4M5uuukme0G8TJkyql27tv2ubenvwvmePXt0+vRpGY1GNWnSRNL/5aqPj4/uuOOOAh0z+y7xEydOODzvIysrS3/++afCw8MLdS55XdCuWbOmDh48qIiIiGte9M7O+hMnTjjcTZ6QkFCo+QAAAMCzsWY5AKfq16+fnn/+eT333HN57pN9p9nVd5bZbDatWLHCYb8KFSqoefPmWrt2rf3j31fv/2/uuusuSdLy5csd2rPXjs3eDgBASZP9cMu4uDj7XeXZmjZtqp9++km7d+9WeHi4/P39Jf1dZG/RooVWrVqlM2fO5BgzKSkpz+M1bNhQgYGBWr16tbKysuztsbGxOZZTK4gyZcooNTU1R3uHDh2UmJio1atX59iWnp6uS5cuSZLatGkjSYqJiXHY55/ZDwAAAOQHd5YDHu7gwYP66quvJP29PmhqaqoWLFggSapXr57uvffeAo1Xr1491atX75r7hIWFqWbNmpo2bZoSExPl7++vzz77LNc1TF955RU98cQTeuSRR/T444+revXq+vPPP/XNN9/ok08++de5PPLII1q1apVSUlLUvHlz/fzzz1q/fr3atm3rcGccAADXizOy97bbbtO6dev0888/q2fPng7bmjZtqtTUVKWmpuZ48OVrr72mHj166KGHHlL37t1Vo0YNnTt3Tj/99JNOnz6tDRs25Ho8X19fDRo0SBMmTFBUVJQ6dOigP//8U+vWrSvS0i0NGjTQ5s2bNWXKFDVq1Ehly5bVvffeq86dO+vTTz/Va6+9pl27dqlZs2ayWCxKSEjQli1btGTJEjVq1Ej169dXp06d9MEHHyg1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WAAAAAAAAAAAKA4UywEAAAAAAAAAHo9iOQAAAAAAAADA41EsBwAAAAAAAAB4PIrlAAAAAAAAAACPR7EcAAAAAAAAAODxKJYDAAAAAAAAADwexXIAAAAAAAAAgMejWA4AAAAAAAAA8HgUywEAAAAAAAAAHo9iOQAAAAAAAADA41EsBwAAAAAAAAB4PIrlAAAAAAAAAACPR7EcAAAAAAAAAODxKJYDAAAAAAAAADwexXIAAAAAAAAAgMejWA4AAAAAAAAA8HgUywEAAAAAAAAAHo9iOQAAAAAAAADA41EsBwAAAAAAAAB4PO/ingAAACi54uPjNXHiRO3du1d+fn7q3LmzhgwZIl9f3zz77Nq1S7179851W2hoqLZs2eLQ9s0332jRokU6ePCgfHx8VK9ePb3xxhuqXLmyU88FAAAAAODZKJYDAIBCSU5OVlRUlEJCQjRv3jwlJiZq6tSpSk9P19ixY/Ps16BBA61atcqhzWw2q3///mrTpo1D+yeffKKXX35ZTz31lIYMGaK0tDT9+OOPysjIcMk5AQAAAAA8F8VyAABQKCtXrlRaWprmz5+vwMBASZLFYtH48eM1YMAABQcH59rP399fTZo0cWhbt26drFarOnXqZG+7ePGiXn/9dY0ZM0Y9evSwt993331OPxcAAAAAAFizHAAAFMq2bdsUERFhL5RLUocOHWS1WhUXF1egsTZu3KiQkBA1btzY3vbpp5/KarWqW7duzpoyAAAAAAB5crs7ywuz9mm2xMREzZo1S99++60uXbqkatWqaeDAgXr44Ycd9vvpp580Z84c7du3T15eXqpdu7bGjx+v+vXru+q0AAC44SQkJKhr164ObSaTSUFBQUpISMj3OOfOndPOnTs1cOBAh/Z9+/YpNDRUH3/8sRYuXKjExETVqVNHw4YN01133VWkuXt7c7+AuzAYvOyv/L0AeTMaDQ6vAAAAcD63KpYXdu1TSTpz5owef/xxhYaGasKECfL399fhw4eVmZnpsN93332nZ555Rl27dlX//v2VlZWl/fv36/Lly648NQAAbjgpKSkymUw52gMCApScnJzvcTZv3iyLxeKwBIsknT17VkePHtXcuXP14osvKigoSO+//76ee+45ffzxx6pTp06h5m0weKl8eb9C9YXz+fuXtr/y9wL8O5OpTHFPAQAA4IblVsXywq59Kklv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xx9/VHR0tPbs2aN3331XdevWvdO3AsCNkbeBwkHeBgAAcB2G8sAtHT58WD/99JNGjRqlnj17qmvXrpo/f76GDRum999/X1u2bJEkNWnSRJMnT5aU/8JHgKfKzMyUzWZTWlqac5vNZtOFCxcUFxen8PBweXt761//+pcGDx6sYcOGqWfPnkpNTdUHH3yguLg4Z7uEhAQdOnRIly5d0nvvvUeHG0Au5G3g9pG3AQAAXM/s6gDg2dLT0/X222/r6aef1t133+3cnpSUpPj4eOe27OxseXl5qX///kpISNDbb7+tZ555RiEhIYqIiNCmTZvk4+PjqtsA3M6RI0e0fv16nTp1SuXKlVPnzp318MMPy2QyKTQ0VPfee68+/fRTnTlzRhMmTNCwYcPUr18/SdJ3332n3bt364EHHnCeLyQkRJ06dVJkZKTKlCnjqtsC4GLkbaBokLcBAADcAyPL4VKfffaZ1q5dqzVr1uQaDVO2bFkFBgZq7969stls8vLyUlZWliSpY8eOyszM1KFDhyRJBoOBDjdwjX379ql79+46efKkjEaj9u7dq/79++vzzz+XJJnNZj300EP68ssvNXHiRA0aNEj9+/eXzWbT77//rvXr18vX11f33ntvrvMGBATQ4QY8HHkbKHzkbQAAAPfByHK4VGRkpJKSkrRx40bZbDb1799fYWFhCg8PV9WqVfXhhx/qvvvu07333uuchzEtLU3+/v4qW7asa4MH3ND+/fudUyD07NlTwcHB+uabbzR79mytWrVKLVq0UFBQkIYMGaIzZ85oz549io+P18GDB/XLL7/o008/VUZGhubMmSOj0cjiewByIW8DhYu8DQAA4F74JAWXyRlx1rdvX0VFRengwYN6++23FRsbK19fX82fP19JSUmaNGmStm/fruzsbMXFxemTTz5RQECAatSo4eI7ANzL6dOn1aVLFz3yyCMaNmyYgoODJUmtWrXS3/72N8XFxclqtUqSvLy8NHPmTHXq1EmxsbHq0qWLPvroI9WoUUObN2+W2WyW1Wqlww3AibwNFC7yNgAAgPsxOBwOh6uDgOex2WwymUySpJUrVyo1NVXr16+X1WpVu3btnCPVjh8/rkGDBikpKUk2m03BwcG6cuWK1qxZo3vuucfFdwG4l9jYWI0bN06JiYmaP3++7rvvPmVlZcnb21vff/+9ZsyYoWeeeUZVqlRRtWrV1LBhQ2fbkydPqlKlSipdurQMBoOsVqvMZl4+AnAVeRsofORtAAAA90OxHC41cuRIHThwQC+//LJ8fX21d+9ebd26VW3btnV2vFNSUvTdd9/p1KlTqlSpkpo2bapq1aq5OnTALcXFxWncuHE6d+6c5s6d61zs6+WXX9bu3btlMpmcRa+HH35YzZo106OPPqrKlSs7O9kOh0MGg8GVtwHATZG3gcJF3gYAAHAvFMvhMkePHlX37t01ZswYPfvss87tS5Ys0fr16/XII484O94Abt7Jkyc1fvx4JSQkaPny5VqwYIGOHTumCRMmqH79+jpy5IgOHTqkjz76SGfPnlXbtm21cOFCV4cNwM2Rt4GiQd4GAABwHxTL4TL79+9Xly5dtGnTJtWvX1+ZmZkqVaqUJOmtt97SBx98oL/97W96+eWXVatWLRdHCxQvOR3vn3/+WeXLl9fatWtVp06dXMckJyfr1KlTqlevnnN6BQDID3kbKDrkbQAAAPfACjC443K+n6lbt64qVKigf/7zn5KkUqVKKTMzU5LUtWtXlSlTRl999ZXee+89ZWdnuypcoFgKCwvT1KlT1bp1a9lsNuezlcNutyswMFANGzZ0vuINAHkhbwNFj7wNAADgHiiWo8j974f5a+dUbNOmjfbs2aPNmzdLknOEWkJCgu677z51795dL7/8sry8vO5cwEAJER4ertGjRys0NFRDhw7Vzz//7NxnNOb+9c8INQA5yNuAa5C3AQAAXI9pWFCk7Ha788P9mjVrFB8frwoVKuipp55SjRo1dPr0aY0YMUJZWVl67LHHNGDAAMXGxio6OloXL17U4sWL6XADebj22fozJ0+e1GuvvaaEhATNnDlTTZs2LeLoABRX5G2gaJC3AQAAigeK5SgyDofDORrtlVde0f79++Xv76/09HQZDAYtWbJE9evXV1xcnBYvXqzvvvtOKSkpKlu2rBwOh9atW6d77rnHxXcBuB+r1Sqz2azMzEwdOnRI1atXV3Bw8A3bxMXFqX///rr77ru1dOnSOxQpgOKEvA0UDfI2AABA8UGxHEXi2tEz+/fv14IFCzRs2DDdc8892r9/v95++20dPnxY7777rho0aKCkpCQlJSXp+++/V2BgoBo3bqzq1au7+C4A92Oz2WQymWSxWNS7d2+VKlVK3bp106OPPpprqoS8nDt3TsHBwby6DeA65G2gaJC3AQAAiheK5ShSc+fOVVpams6fP6/58+fL29tbkvTzzz9rzpw5Onz4sKKjo1W/fn0XRwoUH+np6ercubMqVqyoPn366P7773c+Wzcjp+MOAP+LvA0UPvI2AABA8cECnyhSW7du1fvvv69Lly7l6hQ0atRIo0aNUv369dWzZ0/FxMS4MEqgePnXv/6lzMxMjRgxQi1atJC3t7du5XtPOtwA8kPeBgofeRsAAKD4oFiOImG1WiVJO3bsUEREhH766Sd9+OGHyszMdB7TqFEjvfrqq6pSpYoGDx6srKysW+o4ACXdr7/+qh9++OG67UePHpXRaFT9+vVlMBic8wznPD82m+1OhwqgmCNvA7ePvA0AAFD8USxHofjfD/lms9n53++8844aNmyo+fPn69///reysrKc+xo2bKgpU6Zow4YN8vb2/tO5GwFP4HA4lJmZqV69eungwYO59tntdvn5+clmsykhIUGScnW809PTtWPHDv3xxx+uCB1AMUHeBgoPeRsAAKDkoFiO23btPIqffPKJVq5cqYULF+rChQvOYz788ENVq1ZN06dP17Zt23J1vBs0aKCqVave8bgBd2UwGFSqVCl99tln6tu3rzIzM/XLL79IkoxGo+rVq6czZ87oyy+/dI4Gzel479+/Xxs2bNC5c+dceQsA3Bh5Gyhc5G0AAICSgwU+cVvsdruMxqvfuQwfPly//fabfH19ZTKZFB8frzlz5uiBBx6Ql5eXJOm5557T+fPnNXToUHXo0OGWFjcCPEl2drbzuenWrZtOnz6tmTNnqkWLFpKk119/XR9//LHGjh2rRx99VJUqVdLBgwc1c+ZMlSpVSmvWrHE+mwCQg7wNFA3yNgAAQMlAsRyF4q233tLOnTs1e/ZsNWnSRPPnz9fbb7+tsmXLaubMmWrZsqXzFe+2bdtKkjZv3ix/f39Xhg24lYyMDDkcDpUuXVqSlJWVJW9vb8XGxqpbt26qXLmyRo0apYiICFksFs2aNUsffvihqlSpIrPZLKvVqnLlymnjxo3y8vLKVRQDgGuRt4HbR94GAAAoeSiW47b98ssvmjp1qnr37q3HHntMa9as0bx58zR+/Hh9/fXXOnTokGbPnq3mzZs7R6SdOXNG1atXd3HkgPtIT09XdHS0TCaTevToIbvdrmeeeUavvPKK2rVrp7i4OEVFRalq1aoaM2aMmjdvLknavn27fvvtN6Wlpenuu+/Ws88+K5PJJKvVmmsOYgDIQd4Gbh95GwAAoGSiWI6bZrPZlJycLIPBID8/P2cHOikpSV988YXatWunXbt2afz48XrjjTf0zDPPaNeuXerXr5+qVKmisWPH6pFHHnHOkwogt8WLF2vp0qXq3bu3tm7dquDgYC1cuFBBQUEym825Ot6vvvqqIiIiJMm5SFiOa+cjBuC5yNtA0SJvAwAAlDwUy3FTUlNT9frrr+vIkSNKTk7WX//6V73wwgsKDw+X3W5XVlaWfHx8NHLkSDkcDk2ZMkW+vr6y2+2KjIzU6dOn5e/vr88++0x+fn6uvh3Abb355pvatGmTKlWqpCVLlqhu3bqS/jsXak7Hu1q1anr11Vedc6ECwLXI28CdQd4GAAAoWZgUD3/KYrGoU6dOOnv2rO6//37Vq1dP7733nmbMmKH4+HgZjUb5+PhIkhITE5WYmChfX19J0rFjx1S2bFmtXbtW//jHP+hwA3lwOByyWq2Srk51YDabdfbsWW3fvl0XL16UJHl5eSk7O1s1a9bUxo0bFR8fr7Fjx+rw4cOuDB2AGyJvA0WLvA0AAFByMTEebshisah9+/YKCwvTpEmTVLVqVUnS3LlztWrVKsXFxalKlSqy2+1yOBxq0KCBvvjiCy1dulRNmjTRli1bdOnSJVWrVk1BQUEuvhvA/eS8ep3zOvbSpUvl4+Oj6dOna9myZXI4HOrSpYsqVKggLy8vWa1W1axZ01n4yhnBBgASeRsoauRtAACAko1pWJAvq9WqoUOH6quvvtLu3bsVFBSkrKws55ynLVu2VP/+/dWtWzdnm8uXL2vcuHH66aefZLPZFBAQoKVLl+qee+5x1W0AbitnMa/U1FS9+eabql27ttq1a+csbk2bNk3vvvuuBgwYoG7duikoKEgJCQn68ccf9fTTTzvPw1ynACTyNlDUyNsAAAAlHyPLka/MzEzVr19fMTExeu2117R8+XJ5e3srKytLDodD5cqV06FDhzRhwgQ1b95ctWrVUt26dbVw4UIdPXpUly5dUp06dRQSEuLqWwHcjt1ul9lslsViUVRUlPz9/dWsWTNVrFhRdrtdRqNR48ePl8Ph0PLly3XlyhU98MADWrt2rTIyMvTUU085R7XR4QYgkbeBokTeBgAA8AyMLMcNWSwWbd682fl69ooVKyRJS5Ys0ZIlS1ShQgVlZ2crOTlZpUqVUrt27VSrVi29/PLLLo4ccH/Z2dnq27evsrOzNXPmTIWEhMhsNisrK0teXl7OTvXMmTO1ceNG+fv766677tI777wjLy8vORwO5zEAIJG3gaJE3gYAACj5KJbjT1ksFm3atEnLly9XRESE6tSpo2XLlumtt95SixYtVLFiRe3YsUOHDh3SJ598oszMTP3zn/9U5cqVXR064DYOHDig9PR0Pfjgg85tcXFxGjhwoEaNGqVHH31UkrRz50598sknstlsql+/vnr37i1JiomJcc4vbDQana+CA8D/Im8Dt4+8DQAA4JkoluOm5HS8165dqwsXLmjRokV64oknnK+d5jh//ry8vLxUvnx5F0YLuJesrCwNGTJE4eHhGj16tHN7QkKC2rdvr/bt2+vJJ5/UP//5T3344Ydq1qyZLBaLrly5oldffVVPPPFErvMx1ymAP0PeBgqOvA0AAOC5KJbjpl25ckWbN2/W6tWr1aBBAy1fvlySci0eBiBvycnJCgwMVHp6uo4ePapGjRopOztb77zzjlasWKHSpUurXLlyeuWVV/T4448rNjZWL7zwgkaPHq3IyEhXhw+gGCJvAwVH3gYAAPBMvAuIm1amTBnnh/9ly5apf//+WrFihby9vRkxA/yJwMBASdKcOXP0/vvva82aNWrZsqW6dOmi1q1by2KxqHLlyqpcubJsNpscDodCQkLk6+vr4sgBFFfkbaDgyNsAAACeiZHluGU5r3avWrVKYWFhio6OdnVIgNu6do5Sh8OhU6dOacaMGTpw4IDmzp2rhx56KNfx6enpOnHihKZNmyaHw6H333+fghaA20LeBm4eeRsAAMCzGf/8ECA3f39/RUZGqnv37oqPj9e5c+dcHRLgtsxms9LS0vTNN9/IYDDorrvu0muvvaaGDRtq5MiR2rVrl/NYi8WiZcuWaeLEiZKk6OhomUwm2Ww2V4UPoAQgbwM3j7wNAADg2RhZjgKzWCyyWq0qW7asq0MB3E7OFAd2u12rV6/WvHnztHz5cj3yyCNyOBw6e/as3nrrLcXExGjevHlq2bKl4uPj9emnn8rhcKhPnz4ymUy5RrgBwO0gbwP5I28DAABAolgOAIUup8OdlpamDRs26LffftOWLVskSYsXL9bjjz+eb8f72oX3mFMYAICiR94GAABADorlAFAE0tLS1LFjR1WvXl2NGjWS2WzWxx9/rNOnT2vevHlq166ds+M9ZcoU7dy5Ux9++KEaNmzo6tABAPA45G0AAABIEu8IAkARWL9+vaxWq15//XXdddddkqS//OUvWrlypUaMGCGz2awnnnhC1apV0/jx4xUWFqZ7773XxVEDAOCZyNsAAACQWOATAIpERkaGjEajAgMDndvq16+vPn36qFq1aho6dKh27Nghg8GgGjVqaPTo0TKbzbJarS6MGgAAz0TeBgAAgESxHACKRJkyZXT58mWlpaVJkrKysiRJDRo0UMeOHSVJw4YN05dffimDwSCDwSBJLAoGAIALkLcBAAAgUSwHgNtis9ny3N65c2eVL19eI0eOlCTn4l/S1Q54+/bt9dhjj2nVqlVKTEy8I7ECAODpyNsAAAC4EYrlAFBAVqtVJpNJGRkZ2r59u9atW6edO3fq7NmzCggI0MiRIxUbG6uoqCidOXNGiYmJio2N1b59+9SkSRM99NBD+u2335SUlOTqWwEAoMQjbwMAAODP8N4gABSA3W6X2WyWxWLRiy++qMuXLys1NVWpqalq2rSpunfvrieeeEIGg0Fz5sxRx44dVaZMGVmtVpUrV05RUVHauXOn/Pz8ZLfbXX07AACUaORtAAAA3AyK5QBQAEajUdnZ2Ro4cKDKli2radOmKTQ0VD/++KOWL1+uBQsWyGAw6PHHH1eLFi20efNmXblyRQEBAerataskaePGjapYsaJCQkJcfDcAAJRs5G0AAADcDIPD4XC4OggAKI7Onz+vF198UYMGDdKzzz7rXOzr559/1pQpU+Tr66uZM2eqcuXKudrFxMRozZo12r17t6Kjo1W3bl1XhA8AgEchbwMAAODPMGc5ABTQpUuXFB8fr5CQEBkMBmVnZ0uSGjVqpIEDB2rv3r06efJkrjZnzpzRN998oz/++EPvvfceHW4AAO4Q8jYAAAD+DMVyAPgTNpstz+01a9ZU3bp1tW7dOiUlJcnLy8vZ8W7SpIl8fX11+vTpXG2qV6+uzp07a/ny5apTp06Rxw4AgKchbwMAAKCgKJYDQD5OnTolSTKZTHl2vH18fPToo4/q2LFjeuedd3Tx4kV5eXnJ4XDo1KlT8vPzy3Ne0+DgYAUGBhZ5/AAAeBLyNgAAAG4Xc5YDQB4uXryojh07KjQ0VNHR0ZIkq9Uqs/nqusgOh8M51+no0aP1ww8/6O6771a3bt10/vx5ffzxx7Lb7dq4caNMJpPL7gMAAE9A3gYAAEBhoFgOAHmwWCz64IMPtH79ejVo0EArVqyQlLvjbbPZnB3qpUuX6ssvv9Svv/6qatWqKSwsTEuXLpWXl1eu4wAAQOEjbwMAAKAwUCwHgHxYLBZt2rRJy5cvV+PGjfPseGdnZ8vLy0uSlJ6ervPnz8vX11fBwcEyGAy5jgUAAEWHvA0AAIDbRbEcAG7gZjreVqtVx48fV3x8vCIiIuTr6ytJstvtMhpZGgIAgDuFvA0AAIDbwadBALgBf39/RUZGasCAATpw4ID69+8vSbnmQD106JAGDBigv//97ypdurSzLR1uAADuLPI2AAAAbgcjywHgJuQ3Um3fvn168803ZTQatXnzZuer3QAAwHXI2wAAACgIiuUAcJNyOt7Lli3T/fffr4EDB2rChAmy2+366KOP5OXlxVynAAC4CfI2AAAAbhXFcgC4BRaLRZs3b9bq1av1xx9/qFatWnS4AQBwU+RtAAAA3Ao+HQLALfD391enTp1ksVgUGxurWbNmyWw20+EGAMANkbcBAABwKxhZDgAFkJqaKl9fXxkMBjrcAAC4OfI2AAAAbgbFcgC4DQ6HQwaDwdVhAACAm0DeBgAAwI1QLAcAAAAAAAAAeDyjqwMAAAAAAAAAAMDVKJYDAAAAAAAAADwexXIAAAAAAAAAgMejWA4AAAAAAAAA8HgUywEAAAAAAAAAHo9iOQAAAAAAAADA41EsBwAAAAAAAAB4PIrlAAAAAAAAAACPR7EcAAAAAAAAAODx/j9O+8lcxF5ewwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Results saved to: Downstream/ml_classification_results_250831/\n" ] } ], "source": [ "import os\n", "import sys\n", "import datetime\n", "import numpy as np\n", "import pandas as pd\n", "from datasets import load_from_disk\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.svm import SVC\n", "from sklearn.metrics import (accuracy_score, precision_score, recall_score, \n", " f1_score, classification_report, confusion_matrix)\n", "from sklearn.model_selection import StratifiedKFold, cross_val_score\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.feature_extraction.text import TfidfVectorizer\n", "import pickle\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from tqdm import tqdm\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# Load gene information\n", "gene_info = pd.read_csv(\"example_input_files/gene_info_table.csv\", index_col=0)\n", "\n", "# Create dictionaries for gene mappings\n", "gene_id_type_dict = dict(zip(gene_info[\"ensembl_id\"], gene_info[\"gene_type\"]))\n", "gene_name_id_dict = dict(zip(gene_info[\"gene_name\"], gene_info[\"ensembl_id\"]))\n", "gene_id_name_dict = {v: k for k, v in gene_name_id_dict.items()}\n", "\n", "# Load token dictionary (assuming it exists from the original script)\n", "from geneformer.pretrainer import token_dictionary\n", "\n", "def prep_inputs(genegroup1, genegroup2, id_type):\n", " \"\"\"Prepare gene targets and labels for classification\"\"\"\n", " if id_type == \"gene_name\":\n", " targets1 = [gene_name_id_dict[gene] for gene in genegroup1 if gene_name_id_dict.get(gene) in token_dictionary]\n", " targets2 = [gene_name_id_dict[gene] for gene in genegroup2 if gene_name_id_dict.get(gene) in token_dictionary]\n", " elif id_type == \"ensembl_id\":\n", " targets1 = [gene for gene in genegroup1 if gene in token_dictionary]\n", " targets2 = [gene for gene in genegroup2 if gene in token_dictionary]\n", " \n", " targets1_id = [token_dictionary[gene] for gene in targets1]\n", " targets2_id = [token_dictionary[gene] for gene in targets2]\n", " \n", " targets = np.array(targets1_id + targets2_id)\n", " labels = np.array([0]*len(targets1_id) + [1]*len(targets2_id))\n", " nsplits = min(5, min(len(targets1_id), len(targets2_id))-1)\n", " assert nsplits > 2\n", " print(f\"# targets1: {len(targets1_id)}\\n# targets2: {len(targets2_id)}\\n# splits: {nsplits}\")\n", " return targets, labels, nsplits\n", "\n", "def extract_features_from_cells(dataset, target_genes):\n", " \"\"\"Extract features from cell data for traditional ML models\"\"\"\n", " print(\"Extracting features from cell data...\")\n", " \n", " # Convert target genes to set for faster lookup\n", " target_gene_set = set(target_genes)\n", " \n", " features = []\n", " cell_labels = []\n", " \n", " for i, sample in enumerate(tqdm(dataset)):\n", " input_ids = sample['input_ids']\n", " \n", " # Check if any target genes are in this cell\n", " genes_in_cell = set(input_ids) & target_gene_set\n", " if not genes_in_cell:\n", " continue\n", " \n", " # Create feature vector based on gene expression patterns\n", " feature_vector = create_feature_vector(input_ids, target_genes)\n", " features.append(feature_vector)\n", " \n", " # Create labels for each target gene present in this cell\n", " for gene_id in genes_in_cell:\n", " if gene_id in target_genes:\n", " cell_labels.append(gene_id)\n", " \n", " return np.array(features), cell_labels\n", "\n", "def create_feature_vector(input_ids, target_genes):\n", " \"\"\"Create feature vector from gene expression data\"\"\"\n", " # Simple features: gene presence/absence and position-based features\n", " feature_vector = []\n", " \n", " # Feature 1: Length of gene sequence\n", " feature_vector.append(len(input_ids))\n", " \n", " # Feature 2-3: First and last gene IDs (normalized)\n", " if len(input_ids) > 0:\n", " feature_vector.extend([input_ids[0], input_ids[-1]])\n", " else:\n", " feature_vector.extend([0, 0])\n", " \n", " # Feature 4: Number of unique genes\n", " feature_vector.append(len(set(input_ids)))\n", " \n", " # Feature 5: Average gene ID (as proxy for gene expression level)\n", " feature_vector.append(np.mean(input_ids) if input_ids else 0)\n", " \n", " # Feature 6-10: Statistical features\n", " if input_ids:\n", " feature_vector.extend([\n", " np.std(input_ids),\n", " np.min(input_ids),\n", " np.max(input_ids),\n", " np.median(input_ids),\n", " len([x for x in input_ids if x in target_genes]) # Number of target genes\n", " ])\n", " else:\n", " feature_vector.extend([0, 0, 0, 0, 0])\n", " \n", " return feature_vector\n", "\n", "def create_gene_coexpression_features(dataset, target_genes, max_samples=10000):\n", " \"\"\"Create gene co-expression features for target genes\"\"\"\n", " print(\"Creating gene co-expression features...\")\n", " \n", " # Sample dataset if too large\n", " if len(dataset) > max_samples:\n", " indices = np.random.choice(len(dataset), max_samples, replace=False)\n", " sampled_dataset = dataset.select(indices.tolist())\n", " else:\n", " sampled_dataset = dataset\n", " \n", " # Create gene co-occurrence matrix\n", " gene_cooccurrence = {}\n", " target_gene_features = {}\n", " \n", " for gene in target_genes:\n", " gene_cooccurrence[gene] = []\n", " target_gene_features[gene] = {\n", " 'avg_position': [],\n", " 'expression_frequency': 0,\n", " 'coexpressed_genes': set()\n", " }\n", " \n", " total_cells = len(sampled_dataset)\n", " \n", " for sample in tqdm(sampled_dataset):\n", " input_ids = sample['input_ids']\n", " \n", " for gene in target_genes:\n", " if gene in input_ids:\n", " target_gene_features[gene]['expression_frequency'] += 1\n", " positions = [i for i, x in enumerate(input_ids) if x == gene]\n", " target_gene_features[gene]['avg_position'].extend(positions)\n", " target_gene_features[gene]['coexpressed_genes'].update(input_ids)\n", " \n", " # Create feature matrix for target genes\n", " feature_matrix = []\n", " gene_labels = []\n", " \n", " for gene in target_genes:\n", " features = [\n", " target_gene_features[gene]['expression_frequency'] / total_cells, # Expression frequency\n", " np.mean(target_gene_features[gene]['avg_position']) if target_gene_features[gene]['avg_position'] else 0, # Avg position\n", " len(target_gene_features[gene]['coexpressed_genes']), # Number of coexpressed genes\n", " gene, # Gene ID itself as a feature\n", " ]\n", " feature_matrix.append(features)\n", " gene_labels.append(gene)\n", " \n", " return np.array(feature_matrix), gene_labels\n", "\n", "def evaluate_classifier(classifier, X_train, X_test, y_train, y_test, classifier_name):\n", " \"\"\"Evaluate classifier and return metrics\"\"\"\n", " # Fit the classifier\n", " classifier.fit(X_train, y_train)\n", " \n", " # Make predictions\n", " y_pred = classifier.predict(X_test)\n", " \n", " # Calculate metrics\n", " accuracy = accuracy_score(y_test, y_pred)\n", " precision_macro = precision_score(y_test, y_pred, average='macro', zero_division=0)\n", " precision_weighted = precision_score(y_test, y_pred, average='weighted', zero_division=0)\n", " f1_macro = f1_score(y_test, y_pred, average='macro', zero_division=0)\n", " f1_weighted = f1_score(y_test, y_pred, average='weighted', zero_division=0)\n", " \n", " results = {\n", " 'classifier': classifier_name,\n", " 'accuracy': accuracy,\n", " 'precision_macro': precision_macro,\n", " 'precision_weighted': precision_weighted,\n", " 'f1_macro': f1_macro,\n", " 'f1_weighted': f1_weighted\n", " }\n", " \n", " print(f\"\\n{classifier_name} Results:\")\n", " print(f\"Accuracy: {accuracy:.4f}\")\n", " print(f\"Precision (Macro): {precision_macro:.4f}\")\n", " print(f\"Precision (Weighted): {precision_weighted:.4f}\")\n", " print(f\"F1 (Macro): {f1_macro:.4f}\")\n", " print(f\"F1 (Weighted): {f1_weighted:.4f}\")\n", " \n", " return results, classifier\n", "\n", "def cross_validate_classifiers(X, y, target_genes, labels, nsplits=5):\n", " \"\"\"Perform cross-validation for all classifiers\"\"\"\n", " \n", " # Initialize classifiers\n", " classifiers = {\n", " 'Random Forest': RandomForestClassifier(n_estimators=100, random_state=42, n_jobs=-1),\n", " 'Logistic Regression': LogisticRegression(random_state=42, max_iter=1000),\n", " # 'SVM': SVC(random_state=42, probability=True)\n", " }\n", " \n", " # Initialize results storage\n", " all_results = []\n", " \n", " # Set up cross-validation\n", " skf = StratifiedKFold(n_splits=nsplits, random_state=42, shuffle=True)\n", " \n", " print(f\"Starting {nsplits}-fold cross-validation...\")\n", " \n", " for fold, (train_idx, test_idx) in enumerate(skf.split(X, labels)):\n", " print(f\"\\nFold {fold + 1}/{nsplits}\")\n", " \n", " # Split data\n", " X_train, X_test = X[train_idx], X[test_idx]\n", " y_train, y_test = np.array(labels)[train_idx], np.array(labels)[test_idx]\n", " \n", " # Scale features\n", " scaler = StandardScaler()\n", " X_train_scaled = scaler.fit_transform(X_train)\n", " X_test_scaled = scaler.transform(X_test)\n", " \n", " fold_results = []\n", " \n", " # Evaluate each classifier\n", " for clf_name, classifier in classifiers.items():\n", " try:\n", " if clf_name == 'SVM':\n", " # Use scaled features for SVM\n", " results, trained_clf = evaluate_classifier(\n", " classifier, X_train_scaled, X_test_scaled, y_train, y_test, clf_name\n", " )\n", " else:\n", " # Use original features for tree-based methods\n", " results, trained_clf = evaluate_classifier(\n", " classifier, X_train, X_test, y_train, y_test, clf_name\n", " )\n", " \n", " results['fold'] = fold + 1\n", " fold_results.append(results)\n", " \n", " except Exception as e:\n", " print(f\"Error with {clf_name}: {str(e)}\")\n", " continue\n", " \n", " all_results.extend(fold_results)\n", " \n", " return all_results\n", "\n", "def plot_results(results_df):\n", " \"\"\"Plot comparison of classifier performance\"\"\"\n", " metrics = ['accuracy', 'precision_macro', 'precision_weighted', 'f1_macro', 'f1_weighted']\n", " \n", " fig, axes = plt.subplots(2, 3, figsize=(15, 10))\n", " axes = axes.flatten()\n", " \n", " for i, metric in enumerate(metrics):\n", " ax = axes[i]\n", " \n", " # Create box plot\n", " data_to_plot = []\n", " labels_to_plot = []\n", " \n", " for classifier in results_df['classifier'].unique():\n", " classifier_data = results_df[results_df['classifier'] == classifier][metric]\n", " data_to_plot.append(classifier_data)\n", " labels_to_plot.append(classifier)\n", " \n", " ax.boxplot(data_to_plot, labels=labels_to_plot)\n", " ax.set_title(f'{metric.replace(\"_\", \" \").title()}')\n", " ax.set_ylabel('Score')\n", " ax.tick_params(axis='x', rotation=45)\n", " \n", " # Remove empty subplot\n", " axes[-1].remove()\n", " \n", " plt.tight_layout()\n", " plt.show()\n", "\n", "def main():\n", " # Load dosage sensitive TF data\n", " print(\"Loading dosage sensitive TF data...\")\n", " dosage_tfs = pd.read_csv(\"example_input_files/gene_classification/dosage_sensitive_tfs/dosage_sens_tf_labels.csv\", header=0)\n", " sensitive = dosage_tfs[\"dosage_sensitive\"].dropna()\n", " insensitive = dosage_tfs[\"dosage_insensitive\"].dropna()\n", " targets, labels, nsplits = prep_inputs(sensitive, insensitive, \"ensembl_id\")\n", " \n", " # Load training dataset\n", " print(\"Loading training dataset...\")\n", " train_dataset = load_from_disk(\"Genecorpus-30M/genecorpus_30M_2048.dataset\")\n", " \n", " # Subsample dataset for efficiency\n", " shuffled_train_dataset = train_dataset.shuffle(seed=42)\n", " subsampled_train_dataset = shuffled_train_dataset.select([i for i in range(50_000)])\n", " \n", " # Extract features\n", " print(\"Extracting features for classification...\")\n", " X, gene_labels = create_gene_coexpression_features(subsampled_train_dataset, targets, max_samples=10000)\n", " \n", " # Create binary labels (0 for sensitive, 1 for insensitive)\n", " y = []\n", " for gene_id in gene_labels:\n", " if gene_id in [token_dictionary.get(gene, -1) for gene in sensitive if token_dictionary.get(gene) is not None]:\n", " y.append(0) # Sensitive\n", " else:\n", " y.append(1) # Insensitive\n", " \n", " y = np.array(y)\n", " \n", " print(f\"Feature matrix shape: {X.shape}\")\n", " print(f\"Labels distribution: {np.bincount(y)}\")\n", " \n", " # Perform cross-validation\n", " all_results = cross_validate_classifiers(X, y, targets, y, nsplits=nsplits)\n", " \n", " # Convert results to DataFrame\n", " results_df = pd.DataFrame(all_results)\n", " \n", " # Calculate and display summary statistics\n", " print(\"\\n\" + \"=\"*60)\n", " print(\"CROSS-VALIDATION SUMMARY\")\n", " print(\"=\"*60)\n", " \n", " summary_stats = results_df.groupby('classifier').agg({\n", " 'accuracy': ['mean', 'std'],\n", " 'precision_macro': ['mean', 'std'],\n", " 'precision_weighted': ['mean', 'std'],\n", " 'f1_macro': ['mean', 'std'],\n", " 'f1_weighted': ['mean', 'std']\n", " }).round(4)\n", " \n", " print(summary_stats)\n", " \n", " # Plot results\n", " plot_results(results_df)\n", " \n", " # Save results\n", " current_date = datetime.datetime.now()\n", " datestamp = f\"{str(current_date.year)[-2:]}{current_date.month:02d}{current_date.day:02d}\"\n", " output_dir = f\"Downstream/ml_classification_results_{datestamp}/\"\n", " os.makedirs(output_dir, exist_ok=True)\n", " \n", " # Save detailed results\n", " results_df.to_csv(os.path.join(output_dir, \"detailed_results.csv\"), index=False)\n", " summary_stats.to_csv(os.path.join(output_dir, \"summary_statistics.csv\"))\n", " \n", " # Save feature matrix and labels for future use\n", " np.save(os.path.join(output_dir, \"feature_matrix.npy\"), X)\n", " np.save(os.path.join(output_dir, \"labels.npy\"), y)\n", " \n", " print(f\"\\nResults saved to: {output_dir}\")\n", " \n", " return results_df, summary_stats\n", "\n", "if __name__ == \"__main__\":\n", " # Import sys for path manipulation\n", " import sys\n", " \n", " # Run main function\n", " results_df, summary_stats = main()" ] } ], "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", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 2 }