--- a
+++ b/Code/Drug Discovery/ProtGPT2/Protein Generator, kkawchak.ipynb
@@ -0,0 +1,406 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "provenance": [],
+      "machine_shape": "hm"
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": 6,
+      "metadata": {
+        "id": "-oTEyfkwNdmj"
+      },
+      "outputs": [],
+      "source": [
+        "# !pip install bio\n",
+        "# from transformers import pipeline\n",
+        "# from Bio import pairwise2\n",
+        "# from Bio.Seq import Seq\n",
+        "# from Bio.SeqUtils import ProtParam\n",
+        "# import time"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# Ref 1: Hayes, J. Medium, 2023 https://medium.com/labs-notebook/large-language-models-for-drug-discovery-7ddfc005e0bb\n",
+        "# Ref 2: HF Intro, AssemblyAI 2022 https://www.youtube.com/watch?v=QEaBAZQCtwE&t=4s\n",
+        "# Ref 3: ChatGPT3.5 Code assist 2024 https://chat.openai.com/"
+      ],
+      "metadata": {
+        "id": "jzr3h73L1w-7"
+      },
+      "execution_count": 7,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "seconds = time.time()\n",
+        "print(\"Time in seconds since beginning of run:\", seconds)\n",
+        "local_time = time.ctime(seconds)\n",
+        "print(local_time)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 0
+        },
+        "id": "2K0dcoVBuBGy",
+        "outputId": "80bf40e8-b3b9-4ebd-a6d1-882e734c3733"
+      },
+      "execution_count": 8,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Time in seconds since beginning of run: 1712600025.153674\n",
+            "Mon Apr  8 18:13:45 2024\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# Function to calculate percent similarity\n",
+        "def calculate_similarity(reference_sequence, generated_sequence):\n",
+        "    alignments = pairwise2.align.globalxx(reference_sequence, generated_sequence)\n",
+        "    top_alignment = alignments[0]\n",
+        "    similarity = (top_alignment[2] / len(reference_sequence)) * 100\n",
+        "    return similarity\n",
+        "\n",
+        "# Function to calculate percent similarity based on molecular weights\n",
+        "def calculate_molecular_weight_similarity(reference_sequence, generated_sequence):\n",
+        "    try:\n",
+        "        if 'X' in generated_sequence:\n",
+        "            raise ValueError(\"'X' is not a valid unambiguous letter for protein\")\n",
+        "        ref_mw = ProtParam.ProteinAnalysis(reference_sequence).molecular_weight()\n",
+        "        gen_mw = ProtParam.ProteinAnalysis(generated_sequence).molecular_weight()\n",
+        "        similarity = (1 - abs(ref_mw - gen_mw) / ref_mw) * 100\n",
+        "    except ZeroDivisionError:\n",
+        "        similarity = 0.0\n",
+        "    return similarity\n",
+        "\n",
+        "# Function to calculate percent similarity based on isoelectric points\n",
+        "def calculate_isoelectric_point_similarity(reference_sequence, generated_sequence):\n",
+        "    try:\n",
+        "        if 'X' in generated_sequence:\n",
+        "            raise ValueError(\"'X' is not a valid unambiguous letter for protein\")\n",
+        "        ref_pI = ProtParam.ProteinAnalysis(reference_sequence).isoelectric_point()\n",
+        "        gen_pI = ProtParam.ProteinAnalysis(generated_sequence).isoelectric_point()\n",
+        "        similarity = (1 - abs(ref_pI - gen_pI) / ref_pI) * 100\n",
+        "    except ZeroDivisionError:\n",
+        "        similarity = 0.0\n",
+        "    return similarity\n",
+        "\n",
+        "# Reference sequence\n",
+        "reference_sequence = \"MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\"\n",
+        "\n",
+        "# Calculate original molecular weight and isoelectric point of reference sequence\n",
+        "ref_mw = ProtParam.ProteinAnalysis(reference_sequence).molecular_weight()\n",
+        "ref_pI = ProtParam.ProteinAnalysis(reference_sequence).isoelectric_point()\n",
+        "\n",
+        "# Initialize ProtGPT2 pipeline\n",
+        "protgpt2 = pipeline('text-generation', model=\"nferruz/ProtGPT2\")\n",
+        "\n",
+        "# Generate sequences\n",
+        "sequences = protgpt2(\"\", max_length=200, do_sample=True, top_k=950, repetition_penalty=1.2, num_return_sequences=10, eos_token_id=0)\n",
+        "\n",
+        "# Calculate similarity for each generated sequence\n",
+        "for i, seq in enumerate(sequences):\n",
+        "    generated_sequence = seq[\"generated_text\"]\n",
+        "\n",
+        "    # Check if generated sequence contains ambiguous letters\n",
+        "    if 'X' not in generated_sequence:\n",
+        "        # Calculate original molecular weight and isoelectric point of generated sequence\n",
+        "        gen_mw = ProtParam.ProteinAnalysis(generated_sequence).molecular_weight()\n",
+        "        gen_pI = ProtParam.ProteinAnalysis(generated_sequence).isoelectric_point()\n",
+        "\n",
+        "        # Calculate similarity measures\n",
+        "        similarity_sequence = calculate_similarity(reference_sequence, generated_sequence)\n",
+        "        similarity_mw = calculate_molecular_weight_similarity(reference_sequence, generated_sequence)\n",
+        "        similarity_pI = calculate_isoelectric_point_similarity(reference_sequence, generated_sequence)\n",
+        "\n",
+        "        # Print results\n",
+        "        print(\"#\")\n",
+        "        print(\"#\")\n",
+        "        print(f\"Reference Sequence: {reference_sequence}\")\n",
+        "        print(f\"Generated Sequence {i+1}: {generated_sequence}\")\n",
+        "        print(f\"Generated Similarity to Reference: {max(similarity_sequence, 0):.5f}%\")\n",
+        "        print(f\"Reference Molecular Weight: {ref_mw:.2f}\")\n",
+        "        print(f\"Generated Molecular Weight: {gen_mw:.2f}\")\n",
+        "        print(f\"Molecular Weight Similarity: {max(similarity_mw, 0):.5f}%\")\n",
+        "        print(f\"Reference Isoelectric Point: {ref_pI:.2f}\")\n",
+        "        print(f\"Generated Isoelectric Point: {gen_pI:.2f}\")\n",
+        "        print(f\"Isoelectric Point Similarity: {max(similarity_pI, 0):.5f}%\")\n",
+        "        print(\"--------------------------\")\n",
+        "    else:\n",
+        "        print(f\"Generated Sequence {i+1} contains ambiguous letters and cannot be processed.\")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 0
+        },
+        "id": "JATLuMZMwYOV",
+        "outputId": "490ef4ac-e35b-4027-b727-2d67399ea265"
+      },
+      "execution_count": 9,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation=True` to explicitly truncate examples to max length. Defaulting to 'longest_first' truncation strategy. If you encode pairs of sequences (GLUE-style) with the tokenizer you can select this strategy more precisely by providing a specific strategy to `truncation`.\n",
+            "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n",
+            "Setting `pad_token_id` to `eos_token_id`:0 for open-end generation.\n",
+            "A decoder-only architecture is being used, but right-padding was detected! For correct generation results, please set `padding_side='left'` when initializing the tokenizer.\n"
+          ]
+        },
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 1: \n",
+            "MPLPKKPFDLSKYTPDSDPDQFWGISPDGDMYVFKSGPFAKDNEDVVDAMLIDAALTVEA\n",
+            "HMDLRRDRLKDEVVIIGFEMDTSDISVESRRKYLDFQNFLLWGNQLLGCSARLLDNLDGS\n",
+            "DEETLMYCHIEPKTHDWVVDNIAHKPVPLPLADGKFIVPASSFMRRTMHFLAKNSGAGMQ\n",
+            "GYMKMIGMSEDEALEEMRKLPDNAEKLMQQQAEFGNAVGRASGFANTMGSAFLGGGANEF\n",
+            "DRQYQETMSNFTESIFKGLDTRDRLLNLLKISQPDFLKFLTMEDFSADLRSAAEAAKAIE\n",
+            "MGNIETSGQPSADQVTTNVTSNPFSDPEGNIATPWQAPVPIASPQRPIIAPAPTENKSRP\n",
+            "PVAAPDYENEPAQALSHPPVAAPAN\n",
+            "\n",
+            "Generated Similarity to Reference: 52.07101%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 42499.42\n",
+            "Molecular Weight Similarity: 0.00000%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 4.62\n",
+            "Isoelectric Point Similarity: 51.29180%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 2: \n",
+            "MPDRLRARRPALLLAGVLGVVLAGGCSSVQAGGGPDATPGGGPAPTTSATIAPAPPATES\n",
+            "PSPSAPPVAVPTPTEPTDEPSPEPFDPGTALAELTDEQGRPEFTAAARVEAFGASHFELT\n",
+            "VVNDGDGPVTVLFGDAVTVDAAGRDVRGVGRASADDLGGLELGSGESVRAEWSVAECPAL\n",
+            "SATDAALDVTSTFTFGETGGAVTVVESRDLVAPAERCGPVTDGPVDDQLASVGRSLTTIV\n",
+            "DEDGDAAYEGRIVLTQVGEGRYELQVLNGDGPVTLNGPGGPSVLDADDRVVRGTSVESDP\n",
+            "LGLGIVGPGTPARSVWRVAPECPDIGSVAVGDRFVVEVTVDGEEEVATFTMSDEVRASLD\n",
+            "ALCGA\n",
+            "\n",
+            "Generated Similarity to Reference: 48.52071%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 36659.98\n",
+            "Molecular Weight Similarity: 7.69763%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 4.05\n",
+            "Isoelectric Point Similarity: 44.99647%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 3: \n",
+            "MPPRQTHQTQQLPIQSPQQRIPQQQIQQQQIQQQSQQPVIQQLTNFYNLIPPTFPQSSIP\n",
+            "PTHPTTSHTPVTPMQHQRSNSLNNLAQPQPTTQPTQPTQQLTQPISSNNILPRLQPSNQT\n",
+            "QPQSQSQPNQNQNQSQNQNQIQNQNQNPNRLQSTNPNPKQNQFPLPQQQNQNRSPPPQQQ\n",
+            "NQNRSPNINPLQPLSQQSQFPQHQQKMPPQQKRAPGYLRQPKENTEQKPNIKFNMNQIKI\n",
+            "KDITSIFKDKNAKYILKKYDEKRIAFMFIRNILSKIKTNQFTKEEDDEFMNYIEDYIKKN\n",
+            "ENVPINKKTYKALATKIGKPWSEVIKRMSYFRHYKTLKKGIWSKLEDVKLLQAVDQNCKN\n",
+            "WSTVASQLGSKRSIIDCQQRWKNTVDPKYKRGKFSAEEDSILQKLVTKYGTCWNNITEFL\n",
+            "PGRVDAQLRVRYSVLNRINKNNPHEKITVKEQIEILKNNEKISVDELFENKKKPKIETNK\n",
+            "PKEKPKKKIRKTKVVQEEEEEEEVEEEEEESYNDDSIQYSGDDD\n",
+            "Generated Similarity to Reference: 56.80473%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 61532.45\n",
+            "Molecular Weight Similarity: 0.00000%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 9.63\n",
+            "Isoelectric Point Similarity: 93.05520%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 4: \n",
+            "MAQFYVYMCSGNPLYGGTARFLRILQELGSIDSHRPKRLRLSDLGRDPIWHVTCIAAEDE\n",
+            "NEAVALSKQWAATAADWPDADLTIRQKLRNWEVATWWDRWLIPVELPDDTRRMIATEVGK\n",
+            "YIFEQNHQVMCGNPVHGTLRVSRAKRGKGSTKWLPAVLAGEYGTRLPMVCRELRICTRTI\n",
+            "EKWTKHGYLDLSAEYWDQWHERHIRRKQDPWKPPGGEHEACVRSIRYAAEQAIGTTLLGP\n",
+            "DAERRRILTYRKRHPELANDQKSTAVDHVILTAAKEIGLTPKRLRYRWGEWRRDCEQEQA\n",
+            "TTTAGGGTQRHYKDNQPPPPTHHPNGSSLPPFDFLLDECVIPIEVVGMWTQTNYDEDARK\n",
+            "NRLLEYRLPILEVDGLGKLKFDASGPRVRPDGSTGRKYRESAAIHEHIARERVRKAEVRR\n",
+            "ERDAEIMRRRREKGWPTSPQSIFTNDWLINHASADGFGVRLILVDSASDLP\n",
+            "Generated Similarity to Reference: 56.21302%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 54324.99\n",
+            "Molecular Weight Similarity: 0.00000%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 9.14\n",
+            "Isoelectric Point Similarity: 98.48870%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 5: \n",
+            "MQKRPYLQKIVSDHPKEHKDSFKEQNQIEDHNLGKKDIEEDQSYFEPSHSSKQQIFNSEQ\n",
+            "EKIQEQIFNLKELETIPNQENPEQENQKQKAEQCVGKVSEEMKNRLQNLDGASLPKISQE\n",
+            "DQKEDQNQEQMKQIENKLAKEKIQEEINKIEEQIKRIKNLENQFQNGQQNLQSQENNQEK\n",
+            "IKEEIQKKGNLLKNNLEIEIQKLIDLKRQLEEDDLLDNEDFLIEEVDIKEKIDQFEKEQK\n",
+            "FLIQNEQQKKKIIEEMKREIEKIQEENKEDEIIEKEKEIEKKRNKLEQYRQTLLQKLKNK\n",
+            "QQALQKQKDILQLKLEEEEEAQLEKQRLLLEKYQELESQYQAELQKQQELQKKLQQEMKL\n",
+            "FQEKDDIIKKQIDLQNKLQQSQEKYQDLQKKQQKLQKEIEELQKQLQQIKQSLKKIKKQA\n",
+            "EEQQQKKQDQHQKIDNYMNQLEKLKNQQLNLQQQYDQKINQYQTEIENLQREKDRLENYA\n",
+            "QEKQKQKILENDQKQKLQKMEKDFQNLQNQLDFEKNQIQKMDQEKTALERKIKDLTQQYY\n",
+            "QKQE\n",
+            "Generated Similarity to Reference: 55.02959%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 66504.96\n",
+            "Molecular Weight Similarity: 0.00000%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 5.45\n",
+            "Isoelectric Point Similarity: 60.54060%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 6: \n",
+            "MTTKATVRELGAWPRSTAHADGNPLIAEAELRATAAPAAAAKAEAASDPYADFREVPEEP\n",
+            "AATPAPTPIARWRGPRRIALAGGGAAVVTLAAFGIGHWVGTHDTPAATAKAEPQPLAGED\n",
+            "DGAGETRTCRDGGGTTLVASWNAQAPEVHCEGGGWGSFERTFVTGTKGQRGPAGPRGEQG\n",
+            "QGGDLRIDAGSTLSATSMTFSGTAAATGTFSFGSTNVDLNVRLSKTASGSYRHFSVSVGQ\n",
+            "APVGGIGQWGGQVGNALDTHSKQALSELSASSQSLAVSDSTAFASKSGVRWTAGVRVPGT\n",
+            "SGKVTMTAVRAALTKS\n",
+            "\n",
+            "Generated Similarity to Reference: 43.19527%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 31884.84\n",
+            "Molecular Weight Similarity: 32.74594%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 8.01\n",
+            "Isoelectric Point Similarity: 88.97398%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 7: \n",
+            "MSTLRELACRARELARRRAAATRTALAAALLIVLAPALAGAGSASSGPAVSGGARSSGPG\n",
+            "VSPGPWVSPSPAPPVAAVRLRPVSGVAETARRPLSSAAGGPSGAVTAGGGAGRPRGDATT\n",
+            "GAGAAGSTAGG\n",
+            "\n",
+            "Generated Similarity to Reference: 29.58580%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 12171.62\n",
+            "Molecular Weight Similarity: 63.84703%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 12.00\n",
+            "Isoelectric Point Similarity: 66.67843%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 8: \n",
+            "ARYALDEYRARLHLPASLLLKLLRWLSVRWSRGDRLIVVSEFLRRRAQAAGYSGPPFIVP\n",
+            "NLVDGAFFAPPSDAGVATAASARSGTDAAPPAILFTATPSYRKGGATLIALAARLADEEP\n",
+            "GLRFVAAGHPLRPDVPGVEILGSLSREEIPRHMAACDIFLLPTLYDPCSTAQLEALACGL\n",
+            "PVVTTRRGGLPEMVDEGAGLILDDADPRGFAAGLGRLLGRPGLRAAMGRAGLAAAERYSM\n",
+            "DRWRATARAAIEAALAGPTAGREGEPGPAPERDLRARLEAEARGRAPLAAPAGERPVILF\n",
+            "DVTDHYGGTERVVLNFLRGLDGTAVESYLIYNPGPGLRARTDALDVSTVPVTATGRPGSL\n",
+            "ARWTAARLARRIRLERPDLVHTHDVSALGTGIAARLLGLPCVVHTEHGFWADPDLAATRY\n",
+            "SYLLRLAAWLTSRAVTVNDHVRDWLLARHGLSPGKVRTIHNGIAWAPGGDPAAARAMLAA\n",
+            "TRPGGRAVLGIVGRLVEAKGQHHLVAALREVRRRGVDLPCLIAGDGPM\n",
+            "Generated Similarity to Reference: 54.43787%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 56104.81\n",
+            "Molecular Weight Similarity: 0.00000%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 9.85\n",
+            "Isoelectric Point Similarity: 90.58699%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 9: \n",
+            "MIANGTQNIFRLLYCRHNLLRFVQQGTSGYGLYMKFAISQIFLPKLPTPPIHNLSADFDL\n",
+            "HFAMFSGSSFARAEANLAGFLLRANMEGAILREADLRRAQLCKAILENAVLGRVNLEYSN\n",
+            "LQKAIFDGATINGAVFFRTLMTDTKIDDAVLERTLFYLSQMRQAKFRL\n",
+            "\n",
+            "Generated Similarity to Reference: 35.50296%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 19002.91\n",
+            "Molecular Weight Similarity: 99.68107%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 9.64\n",
+            "Isoelectric Point Similarity: 92.93129%\n",
+            "--------------------------\n",
+            "#\n",
+            "#\n",
+            "Reference Sequence: MSKGEEVQNLFASGFRLDSAKTAAVLYGLDAGNSLSGGQPLFFSGLKPRQGVRKIAKELKVRMMDPNFIRVSGRSGKQVTMNEEAVSEFYELQGKINTFIKIVNTKEITFHKEFQYKDDPLPNKRNTIVADYFEKVLMVDNARLIAETTKPVLDAYKMDKVSNEVFVEV\n",
+            "Generated Sequence 10: \n",
+            "MSLLTKFFSLTAGFAFLGTPTAVVAASGDAEGQATPVTMTLYHMNGDSYYDDTFHEPVDA\n",
+            "LAYGDTIDPMRLFIDDEKVPVRHYTYRLLRQTNGTWTELAGAYDSSSGIPVFDGTYSADV\n",
+            "TLNDGTIFTDVAENVCSSLGFGETETRSVTNIVVSPEELEIYQAAYAQSDGTMSFPETDV\n",
+            "GDKVQALLSPTSSDGWYLMDTANNEWIPGQFFYAAGSTVASPANPGGTQSVVVVDPLTID\n",
+            "LYNARYNYTDRSMSFPSPGLGDKVENLLWPRTAVGWYYMDATSSEWVPMQFFYTGPSVVT\n",
+            "SANPAATQTATNVVVNPSDLALYIGAYQYAGGQLSFTSPTAGDKISALLLPTTSSGWYVM\n",
+            "DTNANEWIPMQYFYTGTSVTTSANPADTQRATQVIVSPNDLAAYVDAYSYSGEHLSFPVA\n",
+            "EIGDKVQALTSPPTSAGWNLMTTNSGEWVPERFFYSGPDVTTSANPEGTQRNVQVVVSES\n",
+            "HLSLYQSAYQSSGGVLSFANADAGDKLQALLSPVTSTG\n",
+            "Generated Similarity to Reference: 57.39645%\n",
+            "Reference Molecular Weight: 19063.72\n",
+            "Generated Molecular Weight: 55695.67\n",
+            "Molecular Weight Similarity: 0.00000%\n",
+            "Reference Isoelectric Point: 9.00\n",
+            "Generated Isoelectric Point: 4.06\n",
+            "Isoelectric Point Similarity: 45.07098%\n",
+            "--------------------------\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "seconds = time.time()\n",
+        "print(\"Time in seconds since end of run:\", seconds)\n",
+        "local_time = time.ctime(seconds)\n",
+        "print(local_time)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 0
+        },
+        "id": "TkiND_HHuERP",
+        "outputId": "5c79281e-2d3e-4d5b-ab50-bda16d3a2c1d"
+      },
+      "execution_count": 10,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Time in seconds since end of run: 1712600082.4905665\n",
+            "Mon Apr  8 18:14:42 2024\n"
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file