FScanpy-package/tutorial/predict_sample.ipynb

443 lines
284 KiB
Plaintext
Raw Permalink Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# FScanpy Prediction Results Interpretation\n",
"\n",
"[![中文](https://img.shields.io/badge/Language-中文-red.svg)](predict_sample_zh.ipynb)\n",
"\n",
"This notebook provides detailed interpretation of FScanpy prediction results, explaining output fields and how to analyze predictions.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2025-08-14 15:56:50.631778: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n",
"2025-08-14 15:56:50.632231: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
"2025-08-14 15:56:50.684833: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
"To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/attr_value.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/tensor.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/resource_handle.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/tensor_shape.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/types.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/full_type.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/function.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/node_def.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/op_def.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/graph.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/graph_debug_info.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/versions.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/protobuf/config.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at xla/tsl/protobuf/coordination_config.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/cost_graph.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/step_stats.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/allocation_description.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/framework/tensor_description.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/protobuf/cluster.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/google/protobuf/runtime_version.py:98: UserWarning: Protobuf gencode version 5.28.3 is exactly one major version older than the runtime version 6.31.1 at tensorflow/core/protobuf/debug.proto. Please update the gencode to avoid compatibility violations in the next runtime release.\n",
" warnings.warn(\n",
"2025-08-14 15:56:52.092041: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
"2025-08-14 15:56:52.093165: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n"
]
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Import FScanpy related modules\n",
"from FScanpy import PRFPredictor, predict_prf, plot_prf_prediction\n",
"from FScanpy.data import get_test_data_path, list_test_data\n",
"from FScanpy.utils import fscanr, extract_prf_regions"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Position Codon 33bp \\\n",
"0 114 GCC TCTGGAAGAAGTAAACGCCGAGCTGGAACAGCC \n",
"1 1794 CCC GGGGCAGTCCCCTAGCCCCGCTCAAAAGGGGGA \n",
"2 234 GTC CCACAAGTCTCGTTTCGTCGATCTTCTGGAGTT \n",
"3 129 TCC GGCTGCGGTTGCAAACTCCGAAGTCGATGCACT \n",
"4 216 GAC GGAGCAGCGGGTAAATGACCTCTTGGAGCTGTT \n",
"\n",
" 399bp Sequence_ID \\\n",
"0 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN... 0 \n",
"1 GACAGGACACATCAGAAAAGACTGTAAGGATGAAAAGGGCTCAAAA... 1 \n",
"2 CAATTCCAATTCCATGTCGATGATCGGTCAAAGCCCCCCGTGCTGC... 5 \n",
"3 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN... 12 \n",
"4 TGAACTTAAGAGCCGCATTCTTTCCGATATGGTGCGACTTGACATT... 14 \n",
"\n",
" Full_Sequence \n",
"0 ATGTTTGAAATTAACCCGGTGAATAACCGCATTCAGGACCTCACGG... \n",
"1 ATGGGGGTCTCGGGATCAAAAGGGCAGAAACTCTTTGTTTCTGTTC... \n",
"2 ATGTCGAGTAGTATCGTCCTCAGTAATAATAATTCCAATTCCAATT... \n",
"3 ATGAACAAAGAAAATGTCATTACCCTGGACAATCCGGTCAAACGTG... \n",
"4 ATGCAAGACATATTAAGTGAACTTAAGAGCCGCATTCTTTCCGATA... \n"
]
}
],
"source": [
"data = pd.read_excel(get_test_data_path('full_seq.xlsx'))\n",
"print(data.head())"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/mnt/lmpbe/guest01/FScanpy-package-main/FScanpy/predictor.py:23: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
" from pkg_resources import resource_filename\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/sklearn/base.py:380: InconsistentVersionWarning: Trying to unpickle estimator _BinMapper from version 1.6.0 when using version 1.6.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"/home/guest01/.conda/envs/fs/lib/python3.9/site-packages/sklearn/base.py:380: InconsistentVersionWarning: Trying to unpickle estimator HistGradientBoostingClassifier from version 1.6.0 when using version 1.6.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"/mnt/lmpbe/guest01/FScanpy-package-main/FScanpy/predictor.py:347: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n",
" plt.tight_layout()\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABScAAAL0CAYAAAD+wYLfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAACLmUlEQVR4nOzdd5gV9dk/4GcXpFelKwFLJKJS1ERBsYWIGlE0UaLGQgzBQkRRXyVBQI1ibC+a2I0trz0qJrFFEWIjUVGwIYKioChgoYi6wO78/vDHYc+yuyzLWQb23Pd1cXHO1OfMd2bOnM9OKUiSJAkAAAAAgA2sMO0CAAAAAID8JJwEAAAAAFIhnAQAAAAAUiGcBAAAAABSIZwEAAAAAFIhnAQAAAAAUiGcBAAAAABSIZwEAAAAAFIhnAQAAAAAUiGcBIBaatKkSVFQUBCLFi2KiIjbb789WrRosV7TzMU0NhVjxoyJHj161Mh027ZtGwUFBTF+/PicT5+acf7558dvfvObtMtYqxNPPDEGDBiQdhmsh/POOy9++9vfpl0GAGwwwkkA8tKJJ54YBQUFUVBQEPXq1YvtttsuLrzwwli5cmVErA72Vv1r3bp1HHzwwfHGG29UOJ3S/2bNmlXufMtOt23btvGzn/0s3n///Rr/zAMHDox33323ysN37tw5xo0bt17TqK599903s4waNGgQ22+/fYwdOzaSJKnxeVckF6HP9OnT44ILLogbb7wxPvnkkzjooINyU9z/N23atDj00EOjTZs20aBBg+jcuXMMHDgwFixYkNP5bMpef/316NOnTzRo0CA6duwYl1122VrH+fTTT+Pqq6+O3//+95luZbf9LbbYIg488MB4/fXXa6z2JEnipptuit133z2aNGkSLVq0iN122y3GjRsXX3/9dY3Nd5WaCuyrOp8PPvggCgoKYurUqTmbV01Mc32dffbZcccdd2yQ7wUA2BgIJwHIWwceeGB88sknMXPmzDjrrLNizJgxcfnll2cNM2PGjPjkk0/iySefjKKiovjpT38ay5cvL3c6pf9tvfXWlc57xowZMW/evHjggQfirbfeiv79+0dxcfEawyVJkglM11fDhg2jTZs2qU+jqgYPHhyffPJJzJgxI0aMGBGjRo2KG264YYPMu6a89957ERFx2GGHRbt27aJ+/frVms6KFSvW6LZw4cL48Y9/HJtvvnk8+eSTMX369LjtttuiQ4cOsWzZsvWqu7ZYsmRJHHDAAdGpU6eYMmVKXH755TFmzJi46aabKh3vlltuid69e0enTp2yupfe9idMmBB169aNQw45ZL1qLLt/Ke24446LM844Iw477LCYOHFiTJ06Nc4///x45JFH4l//+td6zbcy67sfOvHEE2PMmDG5K6iWa9WqVfTr1y+uv/76tEsBgA1COAlA3qpfv360a9cuOnXqFKecckr07ds3/v73v2cN06ZNm2jXrl3ssssuccYZZ8TcuXPjnXfeKXc6pf/VqVOn0nm3adMm2rdvH3vvvXeMGjUq3n777Zg1a1bmzMrHH388dt1116hfv348//zzUVJSEmPHjo2tt946GjZsGN27d4+//e1vWdN87LHHYvvtt4+GDRvGfvvtFx988EFW//Iuyf7HP/4RP/zhD6NBgwbRqlWrOPzwwyPiuzMXP/zwwzjzzDMzZ4ZVNI3rr78+tt1226hXr1506dIl/vrXv2b1LygoiFtuuSUOP/zwaNSoUXz/+99fYzmXp1GjRpn2GTRoUHTr1i2eeuqpTP+ioqI4++yzY8stt4zGjRvH7rvvHpMmTcr0//DDD6N///7RsmXLaNy4cey4447x2GOPVfg5xo8fn/mcZY0ZMybuuOOOeOSRRzLLY9KkSbF8+fIYOnRotG/fPho0aBCdOnWKsWPHVjiN/v37R0REYWFhZl4lJSVx4YUXxlZbbRX169ePHj16xBNPPJEZb9WZXffdd1/ss88+0aBBg7jrrrvWmP4LL7wQixcvjltuuSV69uwZW2+9dey3337xv//7v1lh+ZtvvhkHHXRQNGnSJNq2bRvHHXdcfPbZZ5n+y5Yti+OPPz6aNGkS7du3jyuvvDL23XffOOOMMzLDlHdJeosWLeL222/PvJ87d24cddRR0aJFi9h8883jsMMOy1onV52JesUVV0T79u1jiy22iNNOOy0reC0qKopzzz03OnbsGPXr14/tttsu/vKXv1T5s5R11113xfLly+PWW2+NHXfcMX7xi1/E6aefHldddVWF40RE3HvvvZm2K630tt+jR48477zzYu7cubFw4cLMMOeee25sv/320ahRo9hmm23i/PPPz/qMq84SvOWWW2LrrbeOBg0alFvD/fffH3fddVfcc8898bvf/S5++MMfRufOneOwww6LZ555Jvbbb7+s4Stbrn/9619jt912i6ZNm0a7du3imGOOyTq7trz90P/93//FBRdcENOmTctsA6XbOy1rWweeeOKJ2GuvvaJFixaxxRZbxCGHHJL5I0FEZLaNnj17RkFBQey7774RsXr9vOSSS6Jt27bRokWLzNn155xzTmy++eax1VZbxW233ZZVT1Xb+8Ybb4yOHTtGo0aN4qijjorFixdnTad///5x77335npxAcBGSTgJAP9fw4YNKzxrafHixZkfivXq1cv5fCOyz5g677zz4tJLL43p06dHt27dYuzYsXHnnXfGDTfcEG+99VaceeaZ8ctf/jL+/e9/R8R3QdARRxwR/fv3j6lTp8avf/3rOO+88yqd76OPPhqHH354HHzwwfHaa6/FhAkT4kc/+lFERDz00EOx1VZbxYUXXpg5M6w8Dz/8cAwbNizOOuusePPNN2PIkCExaNCgmDhxYtZwF1xwQRx11FHx+uuvx8EHHxzHHntsfPHFF1VaPkmSxHPPPRfvvPNO1rIfOnRoTJ48Oe699954/fXX48gjj4wDDzwwZs6cGRERp512WhQVFcWzzz4bb7zxRvzxj3+MJk2aVGmeZZ199tlx1FFHZZ0p17t377jmmmvi73//e9x///0xY8aMuOuuu6Jz584VTmNVkFF6mV599dVx5ZVXxhVXXBGvv/569OvXLw499NDM51jlvPPOi2HDhsX06dOjX79+a0y/Xbt2sXLlynj44YcrvPx90aJFsf/++0fPnj3jlVdeiSeeeCLmz58fRx11VGaYc845J/79739nzsabNGlSvPrqq+u0vFasWBH9+vWLpk2bxnPPPRcvvPBCNGnSJA488MCs9XzixInx3nvvxcSJE+OOO+6I22+/PSvwOv744+Oee+6Ja665JqZPnx433nhjpg2r8lnKmjx5cuy9995Z61G/fv1ixowZ8eWXX5Y7zhdffBFvv/127LbbbpV+5q+++ir+7//+L7bbbrvYYostMt2bNm0at99+e7z99ttx9dVXx8033xz/+7//mzXurFmz4sEHH4yHHnqowsuL77rrrujSpUscdthha/QrKCiI5s2bZ96vbbmuWLEiLrroopg2bVqMHz8+PvjggzjxxBPXmG7p/dBPfvKTOOuss2LHHXfMrL8DBw6sdJnUtKqsA8uWLYvhw4fHK6+8EhMmTIjCwsI4/PDDo6SkJCIiXnrppYiIePrpp+OTTz6Jhx56KDPuM888E/PmzYtnn302rrrqqhg9enQccsgh0bJly/jvf/8bJ598cgwZMiQ++uijzDhVbe/7778//vGPf8QTTzwRr732Wpx66qlZw/zoRz+Kjz76aI0/MgFArZQAQB464YQTksMOOyxJkiQpKSlJnnrqqaR+/frJ2WefnSRJkkycODGJiKRx48ZJ48aNk4hIIiI59NBD15hOnTp1MsM1btw4+fnPf17hfFdN98svv0ySJEnmzZuX9O7dO9lyyy2ToqKiTP/x48dnxvn222+TRo0aJS+++GLWtE466aTk6KOPTpIkSUaMGJF07do1q/+5556bNa/bbrstad68eaZ/r169kmOPPbbCWjt16pT87//+b1a3stPo3bt3Mnjw4KxhjjzyyOTggw/OvI+IZOTIkZn3X331VRIRyeOPP17hvPfZZ59ks80
"text/plain": [
"<Figure size 1600x800 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sequence_results0, fig0 = plot_prf_prediction(\n",
" sequence=str(data.iloc[0]['Full_Sequence']),\n",
" window_size=3,\n",
" short_threshold=0.2,\n",
" long_threshold=0.2,\n",
" ensemble_weight=0.6,\n",
" title=f\"PRF Prediction Results for Sequence {data.iloc[0]['Sequence_ID']} (Bar Chart + Heatmap)\",\n",
" figsize=(16, 8),\n",
" dpi=150\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sequence0: High-Confidence, Unambiguous Signal\n",
"- Known Ground Truth: The programmed ribosomal frameshifting (PRF) event for this sequence occurs at nucleotide 113.\n",
"\n",
"- Plot Interpretation: The FScanpy analysis shows a prominent probability peak at the 113 nt position. The magnitude of this peak significantly exceeds other regions in the sequence, and the surrounding bases also exhibit elevated frameshifting probabilities, forming a concentrated and well-defined signal. This indicates a high-confidence prediction from the model that corresponds precisely with the known PRF event location."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator _BinMapper from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator HistGradientBoostingClassifier from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"a:\\Code\\fscanpy-package\\FScanpy\\predictor.py:347: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n",
" plt.tight_layout()\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABS4AAAL0CAYAAAAC1KkVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAkYtJREFUeJzs3QeYHVXZAOCz6QkQegsEAqhApIMgIEW6KIqiICpNRBARBUVAkYDIj91YULAAoiCIBVEQBARRAelFKUpN6KEmkJBkN/d/vrM7m7ubzWZ3s2Xu3vd9npvsnXvvzJk5M2dmvjmloVKpVBIAAAAAQIkMGegEAAAAAAC0J3AJAAAAAJSOwCUAAAAAUDoClwAAAABA6QhcAgAAAAClI3AJAAAAAJSOwCUAAAAAUDoClwAAAABA6QhcAgAAAAClI3AJAIPQ9ddfnxoaGtLLL7+c35933nlpmWWWWax59sY8asUpp5ySNtlkkz6Z78orr5zz5tJLL+31+dM3fvazn6Xddtst1et+S/8566yz0l577TXQyQCA0hC4BKDuHHzwwTlwFK8RI0akN7zhDenLX/5yamxsbBP0K14rrrhi2nPPPdO999670PlUvx566KEOl9t+vhHA2meffdIjjzzS5+u83377pf/+979d/v6ECRPS5MmTF2sePbXjjju2bqNRo0alN73pTemMM85IlUolDZTI67333nux5nH//fenU089NZ199tnp6aefTu94xztSb7r77rvTu9/97rTSSivl7RZ5GHn23HPP9epyatXrr7+e83HDDTdMw4YN63J+xu++9KUvpUmTJrUJEFYfy0svvXTabrvt0t/+9rc+XIOUfvvb3+bjI5a35JJLpo022iiXXS+++GLqa/314KKz5fRFwL9sDxE++tGPpjvuuCP9/e9/H+ikAEApCFwCUJf22GOPHDz63//+lz772c/mQMQ3vvGNNt958MEH83euuuqqNHv27PTOd74zzZkzp8P5VL/WWmutTpcd833qqafSJZdckv7zn//k2jVNTU0LfC8CdUUwdXGNHj06B7QGeh5dddhhh+VtGdvqxBNPTCeffHKuiVTLHn744fz/e97znrTKKqukkSNH9mg+c+fOXWDatGnT0s4775yWW265vL9GkPTcc89N48aNS6+99tpip30wiGMs9uGjjz467bLLLl3+3W9+85s0duzYtO2227aZ/uY3v7n1mL/pppvSG9/4xvSud70rvfLKK4uVxnnz5nX42Re/+MUciH7LW96S/vznP6d///vf6Vvf+lYOWP/iF79Ifamjfa6romyNgDFdEw/TPvShD6Xvfe97A50UACgFgUsA6lIEjSJ4tOaaa6ZPfOITOZBx2WWXtflOBOniO5tttln6zGc+k6ZOnZoeeOCBDudT/Ro6dGiny475rrrqqmn77bfPAbn77rsv19IsamRGUGLzzTfP8/7HP/6RAxlR4zACohF42XjjjXMwpdoVV1yRaybG529/+9vTY489tshaTH/84x9zECRq562wwgrpve99b54eNboef/zxdMwxx7TWKFvYPH70ox+lddZZJ99sr7vuugsEUOK3P/3pT/O8x4wZk4M77bdzR+K7Rf4ccsghuWbZ1Vdf3fp5BJI/97nPpdVWWy0tscQSaauttsrbrxDpj4Dwsssumz+PIFNso4WtR9S4Ktazo8DLz3/+8/SHP/yhdXvEsiKIfdRRR+W8jG0YaY18Wtg8iuafQ4YMaV1W5G3UmFt99dVzfkcz3yuvvLL1d5GP8d2LL7447bDDDnk5F1xwwQLz/+c//5kDZrGtN91007yvxH7wne98p00gPYJdUdMzautFjd8DDjggPf/8862fR5DzwAMPzJ/HekVgLPaH2P87q6EW2zO2ayGOlX333TdPj2BqBGur98miBus3v/nNvJzll18+ffKTn2wTIIs8Pv7449P48ePztoma0dFku6vr0l7sB7G/RlA89q2uuuiiizpsuhu1NotjfuLEiTkfX3311Ta1kr/97W/nGp6x7FiPI488Mn+nUOyLcUzEPGI9p0yZssCybrnllvR///d/OT/iAcs222yTa9TuuuuuuRbmQQcd1Ob7cRzG51Ez84Mf/GCaMWNG62exf73tbW/Ly43tHsHWIqje2T4Xx2HsY8UxEPv0QFvUfnbrrbfmbRTlW2yLWJ+ozViIbRSifIp1Kt4XTe7POeectMYaa+R9LPIuAstf//rXc55HOX766ae3SU9X8zuOnygLY9vuvvvueT2qxf4W+8SsWbP6bNsBQK0QuASAltqE7WtTFuJmPYIXIQJ0vb3cUL3sE044IX31q1/NteYiYBfBsPPPPz/XOIwamhFQ/MhHPtLaLDVuet/3vvflm9277rorfexjH8vz6Mzll1+eb9ajCfydd96Zrr322rTlllvmz373u9/lQFoEYooaZR35/e9/nz796U/nGqsRRDr88MNzcOO6665r871oHh3BhXvuuScv78Mf/nCXm7ZGrdNoMhkB4+ptHwHDqOUW+RLz/cAHPpBrv0YN2hBBsAh83XDDDbmJ/9e+9rUcfOiJCJBG+qtr10bgKGpERXDh17/+da4ZGsGdIvDR0TyiBmSo3qbf/e53czAqAnixHhHEiObexXoUIj9jW8c+Ed9pLwIpUTs38mRhTeqjv9OddtopBzZvu+22HMB69tln87oVjjvuuLxfRZD2L3/5Sw7QVgd6uiKCj5HGpZZaKuddBFVj28f2q97PYz+JgFn8H4HhCOpUBz8jgPqrX/0qb+dY72hiX+RhV9alt8TDgy222KLT78S+FvkbQakI4BciSB3pj+M21vGvf/1r+vznP9/mtzNnzsz7ZwSd43sd1WqOfasInnWkOhAf2zQCY3/605/yK/IzypPq4PSxxx6bt1sc95HGKAva1/Ss3uciCB5dR0TN02L/jX16IHVlP4uAbQR1Iw9vvvnmHCyMMqgI5EZgM0TexToV74vtGA+RYt+K/TCC5lHr/oknnsjbNPLspJNOSv/617+6nd8R8IwyPdIc+3IEl6vF/hbHc/W8AaBuVQCgzhx00EGV97znPfnvefPmVa6++urKyJEjK5/73OfytOuuuy4iP5Ulllgiv+LveL373e9eYD5Dhw5t/V683v/+9y90ucV8X3rppfz+qaeeqmyzzTaV1VZbrTJ79uzWzy+99NLW37z++uuVMWPGVG688cY28zr00EMr+++/f/77xBNPrEycOLHN58cff3ybZZ177rmVpZdeuvXzrbfeuvLhD394oWldc801K9/5znfaTGs/j0j7YYcd1uY7H/jAByp77rln6/tIw0knndT6/tVXX83T/vznPy902TvssENl+PDheXvG//H9UaNGVf75z3/mzx9//PG83Z988sk2v9t5553ztggbbrhh5ZRTTulw/u3XI/z+97/PyylMmjSpsvHGG3e4zxQ+9alPVXbaaae8D3VF+2WEcePGVU4//fQ2097ylrdUjjzyyPz3o48+mn8zefLkRc7/C1/4QmXYsGGV5ZZbrrLHHntUvv71r1eeeeaZ1s9PO+20ym677dbmN1OnTs3zf/DBByszZsyojBgxovLrX/+69fMXXnihMnr06MqnP/3p1mnx/ViXarE9Y7uGX/ziF5V11123zXaJ/Tvmc9VVV7Vuz9jHGhsb2+w7++23X/470hPLiWOzI4tal0XpKD87EsdPzPOGG25oMz32jyFDhrQe9w0NDZWxY8d2ul+HSy65pLL88su3vo9tFvO/6667Ov3dO97xjspGG220yPRGuqK8mD59euu04447rrLVVlst9DfTpk3Labj33ns73ec6Om66ItIU27urim1SXa5Wl8XFvteV/ay9pqamylJLLVX54x//2On+3NF23H333SsTJkzI8yjE8s8444xu5/fNN9/cOu3+++/P0/71r3+1+e2yyy5bOe+88xa5vQBgsBs20IFTABgIURMpaudErZ2oaRR9irVv+hi1eKLJctTUiWaaHfWxGDWRovlpIZoILkrUZoz75ah5E82+o6lndW3C6tpd0YQ8vhfNHatFjaKobRaiRlQ0la6
"text/plain": [
"<Figure size 1600x800 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sequence_results1, fig1 = plot_prf_prediction(\n",
" sequence=str(data.iloc[1]['Full_Sequence']),\n",
" window_size=3,\n",
" short_threshold=0.2,\n",
" long_threshold=0.2,\n",
" ensemble_weight=0.6,\n",
" title=f\"PRF Prediction Results for Sequence {data.iloc[1]['Sequence_ID']} (Bar Chart + Heatmap)\",\n",
" figsize=(16, 8),\n",
" dpi=150\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sequence1: Ambiguous Signal at Low Resolution\n",
"- Known Ground Truth: The PRF event for this sequence occurs at nucleotide 1794.\n",
"\n",
"- Plot Interpretation: An initial low-resolution scan of Sequence1 identifies a probability peak near the known 1794 nt site. However, the plot also reveals multiple potential signal peaks of comparable intensity elsewhere, making it difficult to definitively identify the true event from this view alone. To resolve this ambiguity, a high-resolution analysis is necessary. By reducing the `window_size` parameter, the analysis can focus on the local vicinity of each peak to assess the concentration of high-probability predictions, which helps distinguish a true signal from background noise."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator _BinMapper from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator HistGradientBoostingClassifier from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"a:\\Code\\fscanpy-package\\FScanpy\\predictor.py:347: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n",
" plt.tight_layout()\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABS4AAAL0CAYAAAAC1KkVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAndxJREFUeJzs3QeYJEX9MODay3fAkTMnh6ggkkEQEEEEQRTFiBFERBAxYUD8I4joh1kMKBgAE4IYMIAgIogKSEZQQMlHTsIRjovzPb/a7b3ZuZnd2b0NPTPv+zx7N9Mz013d1VVd/euq7q5KpVJJAAAAAAAlMm6sEwAAAAAAUEvgEgAAAAAoHYFLAAAAAKB0BC4BAAAAgNIRuAQAAAAASkfgEgAAAAAoHYFLAAAAAKB0BC4BAAAAgNIRuAQAAAAASkfgEgDa0EUXXZS6urrSY489lt+feuqpaYUVVliqeQ7HPFrFpz/96bT55puPyHxXX331nDdnnXXWsM+fkfGDH/wgvfzlL0+dut8yek488cS01157jXUyAKA0BC4B6DjvfOc7c+Ao/iZNmpSe85znpM985jNpwYIFfYJ+xd+qq66a9txzz3T99dc3nE/13y233FJ3ubXzjQDW61//+nTbbbeN+Drvs88+6T//+U/T3585c2Y6/vjjl2oeQ7Xzzjv3bqMpU6ak5z3veem4445LlUoljZXI67333nup5nHjjTemY445Jp100knpvvvuS694xSvScLruuuvSq1/96rTaaqvl7RZ5GHn24IMPDutyWtUzzzyT83GTTTZJEyZMaDo/43ef+tSn0tFHH90nQFhdlpdffvm04447pr/85S8juAYp/fKXv8zlI5a37LLLpk033TTXXY8++mgaaaN14aK/5YxEwL9sFxHe9a53pauvvjr99a9/HeukAEApCFwC0JH22GOPHDz673//mz7ykY/kQMSXvvSlPt+5+eab83fOO++8NHfu3PTKV74yzZs3r+58qv/WW2+9fpcd87333nvTmWeemf71r3/l3jULFy5c4nsRqCuCqUtr6tSpOaA11vNo1oEHHpi3ZWyrI444Ih111FG5J1Iru/XWW/P/r3nNa9Iaa6yRJk+ePKT5zJ8/f4lpDz30UHrZy16WVlpppby/RpD0lFNOSWuttVZ66qmnljrt7SDKWOzDH/jAB9Kuu+7a9O9+8YtfpOnTp6cddtihz/QXvOAFvWX+0ksvTc997nPTq171qvT4448vVRoXLVpU97P/+7//y4HoF77whekPf/hDuuGGG9JXvvKVHLD+8Y9/nEZSvX2uWVG3RsCY5sTFtLe+9a3pG9/4xlgnBQBKQeASgI4UQaMIHq277rrpve99bw5k/Pa3v+3znQjSxXe23HLL9KEPfSjNmjUr3XTTTXXnU/03fvz4fpcd811zzTXTS17ykhyQ+/e//517aRY9MiMosdVWW+V5/+1vf8uBjOhxGAHRCLxsttlmOZhS7Zxzzsk9E+Pzl770pemOO+4YsBfT7373uxwEid55q6yySnrta1+bp0ePrjvvvDN9+MMf7u1R1mge3/nOd9L666+fT7Y32GCDJQIo8dvvf//7ed7Tpk3LwZ3a7VxPfLfIn/333z/3LDv//PN7P49A8kc/+tG09tprp2WWWSZtu+22efsVIv0REF5xxRXz5xFkim3UaD2ix1WxnvUCLz/84Q/Tb37zm97tEcuKIPahhx6a8zK2YaQ18qnRPIrhn+PGjetdVuRt9JhbZ511cn7HMN9zzz2393eRj/HdM844I+200055OT/96U+XmP/f//73HDCLbb3FFlvkfSX2g6997Wt9AukR7IqentFbL3r8vuMd70gPP/xw7+cR5Nx3333z57FeERiL/SH2//56qMX2jO1aiLLypje9KU+PYGoEa6v3yaIH65e//OW8nJVXXjm9733v6xMgizw+/PDD04wZM/K2iZ7RMWS72XWpFftB7K8RFI99q1mnn3563aG70WuzKPMbbbRRzscnn3yyT6/kr371q7mHZyw71uOQQw7J3ykU+2KUiZhHrOddd921xLIuv/zy9P/+3//L+REXWLbffvvco3a33XbLvTD322+/Pt+PchifR8/MN7/5zemJJ57o/Sz2rxe/+MV5ubHdI9haBNX72+eiHMY+VpSB2KfH2kD72RVXXJG3UdRvsS1ifaI3YyG2UYj6KdapeF8MuT/55JPTs571rLyPRd5FYPmLX/xizvOoxz/3uc/1SU+z+R3lJ+rC2La77757Xo9qsb/FPjFnzpwR23YA0CoELgGgpzdhbW/KQpysR/AiRIBuuJcbqpf9iU98In3+85/PveYiYBfBsB/96Ee5x2H00IyA4tvf/vbeYalx0vu6170un+xee+216d3vfneeR3/OPvvsfLIeQ+CvueaadMEFF6Rtttkmf/arX/0qB9IiEFP0KKvn17/+dfrgBz+Ye6xGEOmggw7KwY0LL7ywz/dieHQEF/75z3/m5b3tbW9remhr9DqNIZMRMK7e9hEwjF5ukS8x3ze+8Y2592v0oA0RBIvA18UXX5yH+H/hC1/IwYehiABppL+6d20EjqJHVAQXfv7zn+eeoRHcKQIf9eYRPSBD9Tb9+te/noNREcCL9YggRgz3LtajEPkZ2zr2ifhOrQikRO/cyJNGQ+rjfqe77LJLDmxeeeWVOYD1wAMP5HUrfOxjH8v7VQRp//jHP+YAbXWgpxkRfIw0LrfccjnvIqga2z62X/V+HvtJBMzi/wgMR1CnOvgZAdSf/exneTvHescQ+yIPm1mX4RIXD7beeut+vxP7WuRvBKUigF+IIHWkP8ptrOOf//zn9PGPf7zPb59++um8f0bQOb5Xr1dz7FtF8Kye6kB8bNMIjP3+97/Pf5GfUZ9UB6cPO+ywvN2i3Ecaoy6o7elZvc9FEDxuHRE9T4v9N/bpsdTMfhYB2wjqRh5edtllOVgYdVARyI3AZoi8i3Uq3hfbMS4ixb4V+2EEzaPX/d133523aeTZkUcemf7xj38MOr8j4Bl1eqQ59uUILleL/S3Kc/W8AaBjVQCgw+y3336V17zmNfn1okWLKueff35l8uTJlY9+9KN52oUXXhiRn8oyyyyT/+J1/L361a9eYj7jx4/v/V78veENb2i43GK+//vf//L7e++9t7L99ttX1l577crcuXN7Pz/rrLN6f/PMM89Upk2bVrnkkkv6zOuAAw6ovOUtb8mvjzjiiMpGG23U5/PDDz+8z7JOOeWUyvLLL9/7+XbbbVd529ve1jCt6667buVrX/tan2m184i0H3jggX2+88Y3vrGy55579r6PNBx55JG975988sk87Q9/+EPDZe+0006ViRMn5u0Z/8f3p0yZUvn73/+eP7/zzjvzdr/nnnv6/O5lL3tZ3hZhk002qXz605+uO//a9Qi//vWv83IKRx99dGWzzTaru88U3v/+91d22WWXvA81o3YZYa211qp87nOf6zPthS98YeWQQw7Jr2+//fb8m+OPP37A+X/yk5+sTJgwobLSSitV9thjj8oXv/jFyv3339/7+bHHHlt5+ctf3uc3s2bNyvO/+eabK0888URl0qRJlZ///Oe9nz/yyCOVqVOnVj74wQ/2Tovvx7pUi+0Z2zX8+Mc/rmywwQZ9tkvs3zGf8847r3d7xj62YMGCPvvOPvvsk19HemI5UTbrGWhdBlIvP+uJ8hPzvPjii/tMj/1j3LhxveW+q6urMn369H7363DmmWdWVl555d73sc1i/tdee22/v3vFK15R2XTTTQdMb6Qr6ovZs2f3TvvYxz5W2XbbbRv+5qGHHsppuP766/vd5+qVm2ZEmmJ7N6vYJtX1anVdXOx7zexntRYuXFhZbrnlKr/73e/63Z/rbcfdd9+9MnPmzDyPQiz/uOOOG3R+X3bZZb3TbrzxxjztH//4R5/frrjiipVTTz11wO0FAO1uwlgHTgFgLERPpOidE712oqdR3FOsduhj9OKJIcvRUyeGada7x2L0RIrhp4UYIjiQ6M0Y58vR8yaGfcdQz+rehNW9u2IIeXwvhjtWix5F0dssRI+
"text/plain": [
"<Figure size 1600x800 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sequence_results1, fig1 = plot_prf_prediction(\n",
" sequence=str(data.iloc[1]['Full_Sequence']),\n",
" window_size=1,\n",
" short_threshold=0.2,\n",
" long_threshold=0.2,\n",
" ensemble_weight=0.6,\n",
" title=f\"PRF Prediction Results for Sequence {data.iloc[1]['Sequence_ID']} (Bar Chart + Heatmap)\",\n",
" figsize=(16, 8),\n",
" dpi=150\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sequence1: Signal Confirmation at High Resolution\n",
"- Known Ground Truth: The PRF event for this sequence occurs at nucleotide 1794.\n",
"\n",
"- Plot Interpretation: Following the high-resolution analysis, the results clearly show a dense cluster of high-probability bases centered around the 1794 nt position. In contrast, the other peaks identified in the initial scan do not show a similar concentration and appear as isolated, singular data points. This consolidation of the signal confirms that the 1794 nt site is the more reliable PRF event, with a much higher likelihood than other potential sites in the sequence."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator _BinMapper from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator HistGradientBoostingClassifier from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"a:\\Code\\fscanpy-package\\FScanpy\\predictor.py:347: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n",
" plt.tight_layout()\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABR8AAALtCAYAAAChPBNAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZjtJREFUeJzt3QeYXFX5P/CTQhIgdEIgIRCKgLSEGkJvEkBQEBUBaUII0kH4QRAJRUBAMSotgIAoSJOi0oQAAoLSe5GeSAtFktBS5/+8x/8sm83uZndn7pbs5/M8k0y5M3Nn5uydO9/7nnO6lEqlUgIAAAAAqLKu1X5AAAAAAIAgfAQAAAAACiF8BAAAAAAKIXwEAAAAAAohfAQAAAAACiF8BAAAAAAKIXwEAAAAAAohfAQAAAAACiF8BAAAAAAKIXwEgLnUvffem7p06ZI+/vjjfPnyyy9PCy+8cEWPWY3H6ChOOumkNHjw4EIet2/fvvmzuemmm6r++BTjJz/5STrggANSe7fPPvuknXbaqa1Xgwocd9xx6dBDD23r1QCAqhE+AtApxQ/0CH/i1KNHj7TiiiumU045JU2fPn2W4K586tOnT9p+++3TM8880+Dj1D698sor9T5v3ceNEGqXXXZJr732WuGvedddd03//ve/m7z8wIED0+jRoyt6jJbafPPNa96jXr16pZVWWimdccYZqVQqpY4c6rzwwgvp5JNPTmPGjEnvvPNO2m677VI1PfXUU+kb3/hGWmKJJfL7Fp9hfGYTJkyo6vN0VBH81vf3Ov/88zd6v3fffTf96le/Sj/+8Y8b/NtfbLHF0rbbbpuefvrpwtY/2v9FF12UhgwZknr37p0PBKy77rr57/Szzz5LHTWQb+rzvPHGG/m9fvLJJ6v2XEU8ZqWOPvro9Lvf/a5VvhcAoDUIHwHotCIoiADo5ZdfTj/60Y/yD96zzz57lmVeeumlvMwdd9yRpkyZkr7+9a+nqVOn1vs4tU/LLbdco88dj/v222+n6667Lj333HNpxx13TDNmzKg3bCgHopWad955cyjV1o/RVMOHD8/vZbxXI0eOTCeeeGK68MILW+W5i/Lqq6/m/7/5zW+mJZdcMvXs2bNFjzNt2rTZrnv//ffTVlttlRZddNHcXiPovOyyy1K/fv3Sp59+WvG6zw0i1Kn7t7rqqqum73znO43e75JLLkkbbrhhWnbZZRv82x87dmzq3r172mGHHSpax7rbl9r23HPPdMQRR+T2c8899+TALCoyb7755vS3v/0tFaXS7VAEtbF9pWkWX3zxNGzYsHTBBRe09aoAQFUIHwHotCL4iQAoAoUf/vCHaeutt05//vOfZ1kmgrZYZu21184/+sePH59efPHFeh+n9qlbt26NPnc87lJLLZU23XTTHKo9//zzuVqyXBl52223pXXWWSc/9gMPPJBmzpyZK/8i1IwAcNCgQen666+f5TFvvfXWXCEYt2+xxRa5omdOXab/8pe/pPXWWy9XycUP3p133rmm8vDNN99MRx55ZE1lV0OPET+QV1hhhVxBuvLKK6ff//73s9we943wJh57vvnmS1/5yldme5/rE8uWP5999903rbnmmunOO++suT3C4AiT+vfvnyvXohos3r+yWP8IdRdZZJF8+2qrrZbfo4ZeR3SBLr/OuiI4iUqkCHnK70c8VwRFhxxySP4s4z2MdY3PqaHHiPUJXbt2rXmu+Gyj6nbppZfOn3dUfN1+++2zVWZdc801abPNNsvPc+WVV872+P/4xz/SxIkT83u91lpr5bYS7eCXv/zlLGH4s88+mysuo3IuKm8j0Prggw9qbo+gcq+99sq3x+v6xS9+kdtDtP+y+rqMx/sZ72tZ/K1897vfzddHIBqBWe02Wa4k/fnPf56fJyoHDz744FmC1fiMjz322DRgwID83kSF8m9/+9smv5a6Yrnaf6fvvfde/tvbb7/9UmOuvvrqms+uob/9+Nyiu2y87giCy2L94+8y2vPyyy+fw8Lar7Fc5RefW3xO8fnW59prr82f+x//+Md0/PHH57/bqGyN9/Xuu+/On3Vtjb2v8TcaFZMLLLBAXvfdd999lurY+rZDf/jDH3LVblTXlv8Gan/ebWVObSD+ljbeeOPcDuO9iHC4fBAglP824m8mXlO09drt8/TTT8+PG/cvV8cfc8wxuU3H32wE/LU19fOO6udo17Fc/J3E325t0d6i3QHA3ED4CAD/X4R2DVUdxQ/D8g/BCNmq/byh9nNHiPGzn/0sV69F6BaB1hVXXJEr/6JSMkLB73//++nvf/97Xj4Cj29961v5B2tUQ+2///75MRpzyy235EAwupM/8cQTuXJr/fXXz7fdcMMN+Yd1/NguV3bV58Ybb0yHH354rhyNEGDEiBE5KIyqrNoitIgf2NElNZ5vjz32SB999FGTq67uv//+HPrWfu8j9HvooYfy5xKPG9VrUYkWlawhApcIr+67777cXf7MM8/MAUVLRMgZ61+70i0q4X7961/nIDWCoajQjHAoAqGGHqMcVNR+T6M7bwR8ERbF64iKp+g6XX4dZfF5xnsdbSKWqStCpAhG4jNpqHt6jP+55ZZb5qDl0UcfzcFMBHDx2soiWIl2Va6miyDq8ccfb9b7FWFLrGOEW/HZRTAa7328f7XbebSTCILi/wh3I8yqHWhFCBphW7zP8bojsCl/hk15LXMSgV8ERZtsskmDy0Q7jYAywrrGfPLJJzmgi4A0Qq6yeA/iNcVjxGd98cUX50C4tjjw8Kc//Sn/3TXU/TfaVoT7ETbWFaHZQgst1OT3NT6fU089NQeJESJHKBxhW121t0Nf+9rX8t95hPjl9htd+ttSU9pAhOlHHXVUvj22cRH8x3YvQv/w8MMP5//vuuuu/JriMyiLUDcq1GMbcs4556RRo0bl8DIOaPzrX/9KBx54YN7m/ec//2n25x3bjDj4E+sc29+DDjpolmViWxyPW/cgEgB0SCUA6IT23nvv0je/+c18fubMmaU777yz1LNnz9LRRx+dr7vnnnsivSnNP//8+RTn4/SNb3xjtsfp1q1bzXJx+va3v93g85Yf97///W++/Pbbb5c23HDDUv/+/UtTpkypuf2mm26quc8XX3xRmm+++UoPPvjgLI+13377lXbbbbd8fuTIkaVVV111ltuPPfbYWZ7rsssuKy200EI1tw8dOrS0xx57NLiuyy67bOmXv/zlLNfVfYxY9+HDh8+yzHe+853S9ttvX3M51uGEE06oufzJJ5/k62677bYGn3uzzTYrzTPPPPn9jP9j+V69epX+8Y9/5NvffPPN/L6/9dZbs9xvq622yu9FWGONNUonnXRSvY9f93WEG2+8MT9P2ahRo0qDBg2qt82UHXrooaUtt9wyt6GmqPscoV+/fqXTTjttluvWW2+90kEHHZTPv/766/k+o0ePnuPjH3/88aXu3buXFl100dK2225bOuuss0rvvvtuze2nnnpqaZtttpnlPuPHj8+P/9JLL5UmT55c6tGjR+naa6+tuf3DDz8szTvvvKXDDz+85rpYPl5LbfF+xvsafv/735dWXnnlWd6XaN/xOHfccUfN+xltbPr06bO0nV133TWfj/WJ54m/zfrM6bXMyeeff15aZJFFSmeeeWajyz3xxBP5MceNG9fo334ss9RSS5Uee+yxRh/v7LPPLq2zzjqztLNo4xMmTGj0fl/96ldn2/7UZ07va30eeeSRvP7x+Yf6tkP1/U00VaxT3LepYtmuXbvOsl2NU2wHY73iM2lpG3j//ffz7c8888wsf1/lx6z7Ps6YMaPmumjTm2yySc3leI9jvf74xz826/OOdvOf//yn5rrYFsbrfeedd2qumzhxYl6ve++9t0nvGQC0Z93bOvwEgLby17/+NVdRRRVQVMFE18O645JF1VZ0i/vnP/+Zu9/VN+ZgdHesPTbXnCavCFFVGBlOTBIRXaij6ql2VV/tKquokonlovKotqggi4qfEJVJ0e24tqFDhza6DlFhFeMqViKet+4MwBtttFGu+Kktqjdrvz8LLrjgHCdBierImODjv//
"text/plain": [
"<Figure size 1600x800 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sequence_results2, fig2 = plot_prf_prediction(\n",
" sequence=str(data.iloc[2]['Full_Sequence']),\n",
" window_size=3,\n",
" short_threshold=0.2,\n",
" long_threshold=0.2,\n",
" ensemble_weight=0.6,\n",
" title=f\"PRF Prediction Results for Sequence {data.iloc[12]['Sequence_ID']} (Bar Chart + Heatmap)\",\n",
" figsize=(16, 8),\n",
" dpi=150\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator _BinMapper from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator HistGradientBoostingClassifier from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"a:\\Code\\fscanpy-package\\FScanpy\\predictor.py:347: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n",
" plt.tight_layout()\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABR8AAALtCAYAAAChPBNAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZE9JREFUeJzt3Qmc3PP9P/BPDklE3EdIhDiKKhJHRahbBaWl2qaoq0TUfZYo4iiK0rR1U1RLXXVUXSUoKuq+j7qTOhKRSuJKJJn/4/35/WftbnY3uzv7ze5mn8/HY5LZme/MfGfmM9/5zuv7/nw+nUqlUikBAAAAALSwzi19hwAAAAAAQfgIAAAAABRC+AgAAAAAFEL4CAAAAAAUQvgIAAAAABRC+AgAAAAAFEL4CAAAAAAUQvgIAAAAABRC+AgAAAAAFEL4CADzqAceeCB16tQpffzxx/nvK6+8Mi2yyCIV3WdL3Ed7cdJJJ6WBAwcWcr+9e/fO780tt9zS4vdPMU444YS03377pbZur732SjvuuGNrrwYVOPbYY9PBBx/c2qsBAC1G+AhAhxQ/0CP8iVO3bt3SyiuvnE455ZQ0Y8aMGsFd+bTkkkum7bbbLj3//PP13k/10+uvv17n49a+3wihdt555/Tmm28W/pyHDh2a/vOf/zR6+f79+6dRo0ZVdB/Ntdlmm1W9Rj169EirrLJKOuOMM1KpVErtOdR5+eWX08knn5wuvvji9P7776dtt902taRnn302ffe7301LLbVUft3iPYz3bMKECS36OO3V22+/Xefn9dFHH23wdh988EH67W9/m37xi1/U+9lffPHF0zbbbJOee+65wtY/2v8ll1ySBg0alHr16pUPBKy33nr5c/rZZ5+l9hrIN/Zxyu/fM88802KPVcR9Vuqoo45Kf/zjH+fK9wIAzA3CRwA6rAgKIgB67bXX0pFHHpl/8J599tk1lnn11VfzMnfffXeaNm1a+s53vpOmT59e5/1UP62wwgoNPnbc73vvvZduuOGG9OKLL6YddtghzZw5s86woRyIVmr++efPoVRr30djDRs2LL+W8VqNGDEinXjiiemiiy6aK49dlDfeeCP//73vfS8tvfTSqXv37s26ny+//HK2yz788MO05ZZbpsUWWyy31wg6r7jiitSnT5/06aefVrzu85J77723xud13XXXbXD5yy67LG244YZp+eWXr/ezP3r06NS1a9e0/fbbV7Rutbcv1e2+++7psMMOy+3n/vvvz4FZVGTeeuut6R//+EcqSqXboQhqY/tK4yyxxBJpyJAh6cILL2ztVQGAFiF8BKDDiuAnAqAIFH72s5+lrbbaKv3tb3+rsUwEbbHMOuusk3/0jxs3Lr3yyit13k/1U5cuXRp87LjfZZZZJm2yySY5VHvppZdytWS5MvLOO+/MgUjc98MPP5xmzZqVK/8i1IwAcMCAAenGG2+scZ933HFHrhCM6zfffPNc0TOnLtO33XZb+uY3v5mr5OIH70477VRVefjOO++kww8/vKqyq777iB/IK620Uq4gXXXVVdOf/vSnGtfHbSO8ifvu2bNn+trXvjbb61yXWLb8/uy9995prbXWSvfcc0/V9REGR4VQ37590wILLJCrweL1K4v1j1B30UUXzdd/4xvfyK9Rfc8jukCXn2dtEZxEJVKEPOXXIx4rgqKDDjoov5fxGsa6xvtU333E+oTOnTtXPVa8t1F1u+yyy+b3Oyq+7rrrrtkqs6677rq06aab5se5+uqrZ7v/f/3rX2ny5Mn5tV577bVzW4l28Jvf/KZGGP7CCy/kisuonIvK2wi0Jk6cWHV9BJV77LFHvj6e1znnnJPbQ7T/srq6jMfrGa9rWXxWfvSjH+XLIxCNwKx6myxXkv7617/OjxOVgwceeGCNYDXe42OOOSb169cvvzZRofyHP/yh0c+lPvFY1T+v8803X4PLX3vttVXvXX2f/XjfortsPO8Igsti/eNzGe15xRVXzGFh9edYrvKL9y3ep3h/63L99dfn9/0vf/lLOu644/LnNipb43W977778ntdXUOva3xGo2JywQUXzOu+66671qiOrWs79Oc//zlX7UZ1bfkzUP39bi1zagPxWfrWt76V22G8FhEOlw8ChPJnIz4z8ZyirVdvn6effnq+37h9uTr+6KOPzm06PrMR8FfX2Pc7qp+jXcdy8TmJz2510d6i3QHAvED4CAD/X4R29VUdxQ/D8g/BCNla+nFD9ceOEONXv/pVrl6L0C0CrauuuipX/kWlZISCP/nJT9I///nPvHwEHt///vfzD9aohtp3333zfTTk9ttvz4FgdCd/+umnc+XW+uuvn6+76aab8g/r+LFdruyqy80335wOPfTQXDkaIcDw4cNzUBhVWdVFaBE/sKNLajzebrvtliZNmtToqquHHnooh77VX/sI/caMGZPfl7jfH/7wh7kSLSpZQwQuEV49+OCDubv8mWeemQOK5oiQM9a/eqVbVML97ne/y0FqBENRoRnhUARC9d1HOaio/ppGd94I+CIsiucRFU/Rdbr8PMri/YzXOtpELFNbhEgRjMR7Ul/39Bj/c4sttshByxNPPJGDmfHjx+fnVhbBSrSrcjVdBFFPPfVUk16vCFtiHSPcivcugtF47eP1q97Oo51EEBT/R7gbYVb1QCtC0Ajb4nWO5x2BTfk9bMxzqU+5a3qEUnMKwqOdxsGBCOsa8sknn+SALgLSCLnK4jWI5xT3Ee/1pZdemgPh6uLAw1//+tf8uauv+2+0rQj3I2ysLUKzhRdeuNGva7w/p556ag4SI0SOUDjCttqqb4e+/e1v5895hPjl9htd+ltTY9pAhOlHHHFEvj62cRH8x3YvQv/w2GOP1aiGjfegLELdqFCPbci5556bRo4cmcPLOKDx73//O+2///55m/ff//63ye93bDPi4E+sc2x/DzjggBrLxLY47rf2QSQAaJdKANAB7bnnnqXvfe97+fysWbNK99xzT6l79+6lo446Kl92//33R3pTWmCBBfIpzsfpu9/97mz306VLl6rl4vSDH/yg3sct3+///ve//Pd7771X2nDDDUt9+/YtTZs2rer6W265peo2X3zxRalnz56lRx55pMZ97bPPPqVddtklnx8xYkRp9dVXr3H9McccU+OxrrjiitLCCy9cdf3gwYNLu+22W73ruvzyy5d+85vf1Lis9n3Eug8bNqzGMj/84Q9L2223XdXfsQ7HH3981d+ffPJJvuzOO++s97E33XTT0nzzzZdfz/g/lu/Ro0fpX//6V77+nXfeya/7u+++W+N2W265ZX4twpprrlk66aST6rz/2s8j3HzzzflxykaOHFkaMGBAnW2m7OCDDy5tscUWuQ01Ru3HCH369CmddtppNS775je/WTrggAPy+bfeeivfZtSoUXO8/+OOO67UtWvX0mKLLVbaZpttSmeddVbpgw8+qLr+1FNPLW299dY1bjNu3Lh8/6+++mpp6tSppW7dupWuv/76qus/+uij0vzzz1869NBDqy6L5eO5VBevZ7yu4U9/+lNp1VVXrfG6RPuO+7n77rurXs9oYzNmzKjRdoYOHZrPx/rE48Rnsy5zei51+fDDD0vnnHNO6dFHHy099thj+TPSqVOn0q233lrva/r000/n+xw7dmyDn/1YZplllik9+eSTpYacffbZpXXXXbdGO4s2PmHChAZv9/Wvf3227U9d5vS61uXxxx/P6x/vf6hrO1TXZ6KxYp3ito0Vy3bu3LnGdjVOsR2M9Yr3pJI2ENc///zzNT5f5fus/TrOnDmz6rJo0xtvvHHV3/Eax3r95S9/adL7He3mv//9b9VlsS2M5/v+++9XXTZ58uS8Xg888ECjXjMAaMu6tnb4CQCt5e9//3uuoooqoKiCia6Htccli6qt6BYXE1JE97u6xhyM7o7Vx+aKLr5zElWFkeHEJBHRhTqqnqpX9VWvsooqmVguKo+qiwqyqPgJUZkU3Y6rGzx4cIPrEBVWMa5iJeJxa88AvNFGG+WKn+qierP667PQQgvNcRKUqI6MCT7+97//5YqjqDS
"text/plain": [
"<Figure size 1600x800 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sequence_results0, fig0 = plot_prf_prediction(\n",
" sequence=str(data.iloc[3]['Full_Sequence']),\n",
" window_size=3,\n",
" short_threshold=0.2,\n",
" long_threshold=0.2,\n",
" ensemble_weight=0.6,\n",
" title=f\"PRF Prediction Results for Sequence {data.iloc[3]['Sequence_ID']} (Bar Chart + Heatmap)\",\n",
" figsize=(16, 8),\n",
" dpi=150\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator _BinMapper from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"c:\\Users\\31598\\.conda\\envs\\fs\\lib\\site-packages\\sklearn\\base.py:440: InconsistentVersionWarning: Trying to unpickle estimator HistGradientBoostingClassifier from version 1.6.0 when using version 1.7.0. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
" warnings.warn(\n",
"a:\\Code\\fscanpy-package\\FScanpy\\predictor.py:347: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n",
" plt.tight_layout()\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABSYAAAL0CAYAAAARA+nhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAe3VJREFUeJzt3QeYXFX9P+CTQgolFKmBSEAEDSU0QToISpEqYgSkSQkC0hQpIgEREFCMJUBEigUEQUSRJiKICEovSq+JlNBJaKnzf77n95/N7GZ3s7uZvbOz877PM8/utDtn7pl7597PnNKnVCqVEgAAAABAgfoW+WIAAAAAAEEwCQAAAAAUTjAJAAAAABROMAkAAAAAFE4wCQAAAAAUTjAJAAAAABROMAkAAAAAFE4wCQAAAAAUTjAJAAAAABROMAkAvcBtt92W+vTpk95+++18/ZJLLkmLLLLIPC2zGsuoFyeffHJac801u2W5Sy21VK6ba665purLp3b22muvdPrpp6eebvPNN09HHnlkrYvBPPjyl7+cfvjDH9a6GADQLQSTAPR6++67bw6G4jJgwIC00korpe9+97tpxowZzUK98mWJJZZI2223XXrkkUfaXE7l5emnn271dVsuNwKqXXfdNT377LPd/p5HjRqVnnzyyQ4/fvjw4Wns2LHztIx5CU7K62jQoEFp5ZVXTmeccUYqlUqpVqKud95553laxmOPPZZOOeWUNH78+PTyyy+nbbfdNlXTQw89lHbccce05JJL5vUWdRh19uqrr1b1derVhx9+mOtx9dVXT/37959rff7zn//Mj+tIQB3r/vrrr0+HH354q5/j8va+2267pRdeeCF1l2nTpqWzzjorjRw5Ms0///xp8cUXTxtttFG6+OKL0/Tp01M9bCfz8jotf5Cphu5Y5rw68cQT02mnnZbeeeedWhcFAKpOMAlAQ9hmm21yOPTUU0+lb3zjG7kl29lnn93sMU888UR+zE033ZSmTp2aPv/5z+cT/9aWU3lZYYUV2n3tWO5LL72UrrzyyvTf//437bDDDmnmzJlzPC6CuHJYOq8GDx6cA6taL6OjDjzwwLwuY10df/zx6aSTTkrnn39+qmfPPPNM/rvTTjulpZdeOg0cOLBLy2ktYHrttdfSlltumRZbbLH8eY0QNMKooUOHpvfee2+ey94bxDYWn+EID7faaqt2Hxsh1N57753XaUf89Kc/zaHjggsu2OrnOLb3P/7xj2nixInpK1/5yjy9j5b7oMrbt9566/T9738/HXTQQenOO+9Md999dzr00ENz+WJf053rdtasWV1+foS40SKbjllttdXSxz72sfSb3/ym1kUBgKoTTALQECIUinBo+eWXT1/72tdyUPGnP/2p2WMihIvHrL322rnrY4QKjz/+eKvLqbz069ev3deO5S6zzDJp0003zYHbo48+mltZllvm3HDDDWmdddbJy77jjjvyCX+0GIzAM4KVaA111VVXNVtmtNaKloVx/xZbbJGef/75uXbDvvbaa9OnPvWp3LouWlbtsssuTSFBtOo66qijmlp7tbWM8847L58gR8vTVVZZJf36179udn889xe/+EVedrTg+vjHPz7Hem5NPLZcP/vtt19aY4010s0339x0fwTF3/zmN9Oyyy6bFlhggbT++uvn9VcW5Y/Ad9FFF833r7rqqnkdtfU+olt1+X22FKH1L3/5yxwslddHvFYEQYcddliuy1iHUdaop7aWEeUJffv2bXqtqNtorbvccsvl+o7WeTfeeGPT86Ie47FXXHFF2myzzfLrXHrppa227ovWU7Gu11prrfxZic/Bj370o2ZB+X/+85/cUjMCtGjBF92PX3/99ab7I8SMQC7uj/cV3UVbdv1trRt6rM/KYCm2lS996Uv59ghLI4yt/EyWW7z94Ac/yK/zkY98JAdolaFr1PGxxx6bhg0bltdNtGy+8MILO/xeWorPQXxeIyyMz1Z7Dj744LTHHnukDTbYIHUklIvtsVy/rX2O4z1++tOfzp+X+++/v9lz999//6ZtO7ahH//4x82WUV5X0UIuguZ4TGuihfPtt9+ebrnllrwu47O04oor5vfx73//O297ZfG5+9a3vpXrJsoXn89K55xzTm5ZGuss1v8hhxyS3n333ab7y9tQbMsjRozI9fPVr3611e2k1mIfuskmm+T1G+8lgunKsD72Weuuu25aaKGF8rqI9VVuZRyf2diOQuxL4j1FfYTYLr7+9a/nbSPui8/gBRdckJcd+6xYXnxmY3/elfqO1tXRWn/IkCH589gykI7P2+WXX96t6w4AakEwCUBDipPEtloiReBTPgGMAK7arxsqX/u4447LrZ6i1VsEchF2/epXv8otBqPVUwSG0erq73//e1MI9IUvfCGfqD744IPpgAMOyMtoz3XXXZfDwuii/sADD+QwY7311sv3XX311Tkoi8Cs3Aq0NX/4wx/SEUcckVucRkg0evTofEJ+6623NntcnGBHSPXwww/n19tzzz3Tm2++2aH1E61G//GPf+RAuHLdR8Bz11135XqJ5UZrtWi9Gi1gQwQzEWxFUBNd8M8888w5WrN1VASgUf7K1rEbbrhh+slPfpKDmd/97ne5ZWcEhtF9uq1lRAvGULlOI5SI8C8Cungf0eItumOX30dZ1Ges6/hMxGNaikAlWtdGnbTV5T1aAX7mM5/JweW9996bA9BJkybl91Z2zDHH5M9VhEt/+ctfcrBUGaR1RISLUcYIZqLuIjSNdR/rr/JzHp+TaEUafyPQirCrMtyMgPS3v/1tXs/xvqMLfLkOO/JeuirqKYZXGDNmTIceH/UW+4gIt9oTn/n4rESIXhkQxrYWrafjB4r4oeKEE07Ij6sU22d8xiKc//Of/9zq8uPzFz+wxDppab755sshY1ms77gegWV0/Y5tvTL4j/A81nvsb+Kxf/vb33KQWen999/P21WE4fG4eHxr20ktxecryhNDZkQ9RcAfQWXsPyo/r6eeemrujh+Be4SR5fAxgszf//73zVrQVwaJsW7iR51omRohZfzIFfuieN+x3Xzuc5/LgXmsq87Wd3zmY/uLbSD2ybEfrRT763jd2M8BQK9SAoBebp999inttNNO+f9Zs2aVbr755tLAgQNL3/zmN/Ntt956ayQ7pQUWWCBf4v+47LjjjnMsp1+/fk2Pi8sXv/jFNl+3vNy33norX3/ppZdKG264YWnZZZctTZ06ten+a665puk5H374YWn++ecv3Xnnnc2Wtf/++5d23333/P/xxx9fGjFiRLP7jz322GavdfHFF5cWXnjhpvs32GCD0p577tlmWZdffvnSj370o2a3tVxGlP3AAw9s9pjddtuttN122zVdjzKceOKJTdfffffdfNsNN9zQ5mtvttlmpfnmmy+vz/gbjx80aFDpn//8Z77/hRdeyOv9xRdfbPa8LbfcMq+LsPrqq5dOPvnkVpff8n2EP/zhD/l1ysaMGVMaOXJkq5+Zsq9//eulz3zmM/kz1BEtXyMMHTq0dNpppzW77VOf+lTpkEMOyf8/99xz+Tljx46d6/JPOOGEUv/+/UuLLbZYaZtttimdddZZpVdeeaXp/lNPPbX0uc99rtlzJk6cmJf/xBNPlKZMmVIaMGBA6Xe/+13T/W+88UZp8ODBpSOOOKLptnh8vJdKsT5jvYZf//rXpVVWWaXZeonPdyznpptualqf8RmbMWNGs8/OqFGj8v9Rnnid2DZbM7f3Mjet1Wd48sknS0suuWTTMlp+DloT6yI+jy0/B5Wf49iGo2wrr7xyrtP2HHrooaVdd921WVmXWmqpvA7bE+v38MMPb/cx5XJtvPHGc3zmYp/RliuvvLL0kY98pOl61HW8nwcffLBD67UjZSp/fjqitX1vXGI/Ubnfi/3kQQcd1Oy5//jHP0p9+/YtffDBB60u+5577snLiO2htf12W+sxPstRhr322qvptpdffjk/96677upUfcc2/N577zXddt5555UWXHDB0syZM5tue+ihh/Kyn3/++Q6tMwCoF1pMAtAQotVRtL6KrrHRHTQmCWn
"text/plain": [
"<Figure size 1600x800 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sequence_results4, fig4 = plot_prf_prediction(\n",
" sequence=str(data.iloc[4]['Full_Sequence']),\n",
" window_size=3,\n",
" short_threshold=0.2,\n",
" long_threshold=0.2,\n",
" ensemble_weight=0.4,\n",
" title=f\"PRF Prediction Results for Sequence {data.iloc[4]['Sequence_ID']} (Bar Chart + Heatmap)\",\n",
" figsize=(16, 8),\n",
" dpi=150\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sequence4: Ambiguous Result Requiring Experimental Validation\n",
"- Known Ground Truth: The PRF event for this sequence occurs at nucleotide 216.\n",
"\n",
"- Plot Interpretation: This analysis demonstrates the inherent limitations of computational methods. FScanpy identifies three significant probability peaks, with the peaks at ~80 nt and the true site at 216 nt showing no decisive difference in magnitude. In such cases, the computational result alone is insufficient to distinguish the true PRF event. The model successfully narrows down the potential candidates to a few key regions, but subsequent biological (wet-lab) experiments are essential to validate which site is functionally active."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "fs",
"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.9.23"
}
},
"nbformat": 4,
"nbformat_minor": 2
}