{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Defining alignment targets\n", "Example of how to define alignment targets." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set up for analysis\n", "Import necessary Python modules:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import tempfile\n", "\n", "import Bio.SeqIO\n", "\n", "from alignparse.targets import Target, Targets" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A single target\n", "First we show how to define a single `Target`, using an example an amplicon for PacBio sequencing of RecA for a deep mutational scanning experiment.\n", "The amplicon is defined in [Genbank Flat File format](https://www.ncbi.nlm.nih.gov/genbank/samplerecord/).\n", "First, let's just look at that file:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LOCUS RecA_PacBio_amplicon 1342 bp ds-DNA linear 06-AUG-2018\n", "DEFINITION PacBio amplicon for deep mutational scanning of E. coli RecA.\n", "ACCESSION None\n", "VERSION \n", "SOURCE Danny Lawrence\n", " ORGANISM .\n", "COMMENT PacBio amplicon for RecA libraries.\n", "COMMENT There are single nucleotide tags in the 5' and 3' termini to measure strand exchange.\n", "FEATURES Location/Qualifiers\n", " termini5 1..147\n", " /label=\"termini 5' of gene\"\n", " gene 148..1206\n", " /label=\"RecA gene\"\n", " spacer 1207..1285\n", " /label=\"spacer between gene & barcode\"\n", " barcode 1286..1303\n", " /label=\"18 nucleotide barcode\"\n", " termini3 1304..1342\n", " /label=\"termini 3' of barcode\"\n", " variant_tag5 33..33\n", " /label=\"5' variant tag\"\n", " variant_tag3 1311..1311\n", " /label=\"3' variant tag\"\n", "ORIGIN\n", " 1 gcacggcgtc acactttgct atgccatagc atRtttatcc ataagattag cggatcctac\n", " 61 ctgacgcttt ttatcgcaac tctctactgt ttctccataa cagaacatat tgactatccg\n", " 121 gtattacccg gcatgacagg agtaaaaATG GCTATCGACG AAAACAAACA GAAAGCGTTG\n", " 181 GCGGCAGCAC TGGGCCAGAT TGAGAAACAA TTTGGTAAAG GCTCCATCAT GCGCCTGGGT\n", " 241 GAAGACCGTT CCATGGATGT GGAAACCATC TCTACCGGTT CGCTTTCACT GGATATCGCG\n", " 301 CTTGGGGCAG GTGGTCTGCC GATGGGCCGT ATCGTCGAAA TCTACGGACC GGAATCTTCC\n", " 361 GGTAAAACCA CGCTGACGCT GCAGGTGATC GCCGCAGCGC AGCGTGAAGG TAAAACCTGT\n", " 421 GCGTTTATCG ATGCTGAACA CGCGCTGGAC CCAATCTACG CACGTAAACT GGGCGTCGAT\n", " 481 ATCGACAACC TGCTGTGCTC CCAGCCGGAC ACCGGCGAGC AGGCACTGGA AATCTGTGAC\n", " 541 GCCCTGGCGC GTTCTGGCGC AGTAGACGTT ATCGTCGTTG ACTCCGTGGC GGCACTGACG\n", " 601 CCGAAAGCGG AAATCGAAGG CGAAATCGGC GACTCTCATA TGGGCCTTGC GGCACGTATG\n", " 661 ATGAGCCAGG CGATGCGTAA GCTGGCGGGT AACCTGAAGC AGTCCAACAC GCTGCTGATC\n", " 721 TTCATCAACC AGATCCGTAT GAAAATTGGT GTGATGTTCG GCAACCCGGA AACCACTACC\n", " 781 GGTGGTAACG CGCTGAAATT CTACGCCTCT GTTCGTCTCG ACATCCGTCG TATCGGCGCG\n", " 841 GTGAAAGAGG GCGAAAACGT GGTGGGTAGC GAAACCCGCG TGAAAGTGGT GAAGAACAAA\n", " 901 ATCGCTGCGC CGTTTAAACA GGCTGAATTC CAGATCCTCT ACGGCGAAGG TATCAACTTC\n", " 961 TACGGCGAAC TGGTTGACCT GGGCGTAAAA GAGAAGCTGA TCGAGAAAGC AGGCGCGTGG\n", " 1021 TACAGCTACA AAGGTGAGAA GATCGGTCAG GGTAAAGCGA ATGCGACTGC CTGGCTGAAA\n", " 1081 GATAACCCGG AAACCGCGAA AGAGATCGAG AAGAAAGTAC GTGAGTTGCT GCTGAGCAAC\n", " 1141 CCGAACTCAA CGCCGGATTT CTCTGTAGAT GATAGCGAAG GCGTAGCAGA AACTAACGAA\n", " 1201 GATTTTTAAt cgtcttgttt gatacacaag ggtcgcatct gcggcccttt tgctttttta\n", " 1261 agttgtaagg atatgccatt ctagannnnn nnnnnnnnnn nnnagatcgg Yagagcgtcg\n", " 1321 tgtagggaaa gagtgtggta cc \n", "//\n", "\n" ] } ], "source": [ "recA_targetfile = \"../notebooks/input_files/recA_amplicon.gb\"\n", "\n", "with open(recA_targetfile) as f:\n", " print(f.read())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the Genbank file for the target into a BioPython SeqRecord:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "recA_seqrecord = Bio.SeqIO.read(recA_targetfile, format=\"genbank\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a `Target` object:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "target = Target(\n", " seqrecord=recA_seqrecord,\n", " req_features=[\n", " \"termini5\",\n", " \"gene\",\n", " \"spacer\",\n", " \"barcode\",\n", " \"termini3\",\n", " \"variant_tag5\",\n", " \"variant_tag3\",\n", " ],\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can get specific features out of the `Target` object.\n", "Below we look for two features and print the one that exists:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "target lacks feature non-existent\n", "\n", "Here is feature termini5:\n", "Feature(name=termini5, seq=GCACGGCGTCACACTTTGCTATGCCATAGCATRTTTATCCATAAGATTAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCATAACAGAACATATTGACTATCCGGTATTACCCGGCATGACAGGAGTAAAA, start=0, end=147)\n" ] } ], "source": [ "for feature in [\"non-existent\", \"termini5\"]:\n", " if target.has_feature(feature):\n", " print(f\"Here is feature {feature}:\\n{target.get_feature(feature)}\")\n", " else:\n", " print(f\"target lacks feature {feature}\\n\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can get a [dna_features_viewer](https://edinburgh-genome-foundry.github.io/DnaFeaturesViewer/) `GraphicRecord` with `Target.image`, and then plot this using its `.plot` method, which returns a `matplotlib.Axes` instance.\n", "(Note that `Target.image` also provides options for setting colors, labels):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "image = target.image()\n", "ax, _ = image.plot()\n", "_ = ax.set_title(target.name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multiple targets\n", "We can read multiple targets into a `Targets` object. Below is an example with the two LASV GP constructs - wildtype and codon optimized - from the Josiah strain.\n", "\n", "First, let's look at these files:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LOCUS LASV_Josiah_WT 1730 bp ds-DNA linear 14-JUN-2019\n", "DEFINITION .\n", "ACCESSION \n", "VERSION \n", "SOURCE Kate Crawford\n", " ORGANISM .\n", "COMMENT PacBio amplicon for LASV Josiah WT sequence\n", "FEATURES Location/Qualifiers\n", " T2A 85..147\n", " /label=\"T2A\"\n", " WPRE 1639..1730\n", " /label=\"WPRE\"\n", " ZsGreen 15..84\n", " /label=\"ZsGreen\"\n", " termini3 1639..1730\n", " /label=\"3'Termini\"\n", " index 9..14\n", " /label=\"index\"\n", " leader5 1..8\n", " /label=\"5' leader\"\n", " termini5 1..147\n", " /label=\"5'Termini\"\n", " variant_tag5 34..34\n", " /variant_1=T\n", " /variant_2=C\n", " /label=\"5'VariantTag\"\n", " variant_tag3 1702..1702\n", " /variant_1=G\n", " /variant_2=A\n", " /label=\"3'VariantTag\"\n", " spacer 1624..1638\n", " /label=\"3'Spacer\"\n", " gene 148..1623\n", " /label=\"LASV_Josiah_WT\"\n", "\n", "ORIGIN\n", " 1 GACTGATANN NNNNcagcga cgccaagaac cagYagtggc acctgaccga gcacgccatc\n", " 61 gcctccggcT CCGCCTTGCC CGCTGGATCC GGCGAGGGCA GAGGAAGTCT GCTAACATGC\n", " 121 GGTGACGTCG AGGAGAATCC TGGCCCAATG GGACAAATAG TGACATTCTT CCAGGAAGTG\n", " 181 CCTCATGTAA TAGAAGAGGT GATGAACATT GTTCTCATTG CACTGTCTGT ACTAGCAGTG\n", " 241 CTGAAAGGTC TGTACAATTT TGCAACGTGT GGCCTTGTTG GTTTGGTCAC TTTCCTCCTG\n", " 301 TTGTGTGGTA GGTCTTGCAC AACCAGTCTT TATAAAGGGG TTTATGAGCT TCAGACTCTG\n", " 361 GAACTAAACA TGGAGACACT CAATATGACC ATGCCTCTCT CCTGCACAAA GAACAACAGT\n", " 421 CATCATTATA TAATGGTGGG CAATGAGACA GGACTAGAAC TGACCTTGAC CAACACGAGC\n", " 481 ATTATTAATC ACAAATTTTG CAATCTGTCT GATGCCCACA AAAAGAACCT CTATGACCAC\n", " 541 GCTCTTATGA GCATAATCTC AACTTtccac ttgtccatcc ccaacTTCAA TCAGTATGAG\n", " 601 GCAATGAGCT GCGATTTTAA TGGGGGAAAG ATTAGTGTGC AGTACAACCT GAGTCACAGC\n", " 661 TATGCTGGGG ATGCAGCCAA CCATTGTGGT ACTGTTGCAA ATGGTGTGTT ACAGACTTTT\n", " 721 ATGAGGATGG CTTGGGGTGG GAGCTACATT GCTCTTGACT CAGGCCGTGG CAACTGGGAC\n", " 781 TGTATTATGA CTAGTTATCA ATATCTGATA ATCCAAAATA CAACCTGGGA AGATCACTGC\n", " 841 CAATTCTCGA GACCATCTCC CATCGGTTAT CTCGGGCTCC TCTCACAAAG GACTAGAGAT\n", " 901 ATTTATATTA GTAGAAGATT GCTAGGCACA TTCACATGGA CACTGTCAGA TTCTGAAGGT\n", " 961 AAAGACACAC CAGGGGGATA TTGTCTGACC AGGTGGATGC TAATTGAGGC TGAACTAAAA\n", " 1021 TGCTTCGGGA ACACAGCTGT GGCAAAATGT AATGAGAAGC ATGATGAgga attttgtgac\n", " 1081 atgctgaggc TGTTTGACTT CAACAAACAA GCCATTCAAA GGTTGAAAGC TGAAGCACAA\n", " 1141 ATGAGCATTC AGTTGATCAA CAAAGCAGTA AATGCTTTGA TAAATGACCA ACTTATAATG\n", " 1201 AAGAACCATC TACGGGACAT CATGGGAATT CCATACTGTA ATTACAGCAA GTATTGGTAC\n", " 1261 CTCAACCACA CAACTACTGG GAGAACATCA CTGCCCAAAT GTTGGCTTGT ATCAAATGGT\n", " 1321 TCATACTTGA ACGAGACCCA CTTTTCTGAT GATATTGAAC AACAAGCTGA CAATATGATC\n", " 1381 ACTGAGATGT TACAGAAGGA GTATATGGAG AGGCAGGGGA AGACACCATT GGGTCTAGTT\n", " 1441 GACCTCTTTG TGTTCAGCAC AAGTTTCTAT CTTATTAGCA TCTTCCTTCA CCTAGTCAAA\n", " 1501 ATACCAACTC ATAGGCATAT TGTAGGCAAG TCGTGTCCCA AACCTCACAG ATTGAATCAT\n", " 1561 ATGGGCATTT GTTCCTGTGG ACTCTACAAA CAGCCTGGTG TGCCTGTGAA ATGGAAGAGA\n", " 1621 TGAGCTAGCT AAACGCGTTG ATCCtaatca acctctggat tacaaaattt gtgaaagatt\n", " 1681 gactggtatt cttaactatg tRgctccttt tacgctatgt ggatacgctg \n", "//\n", "\n", "LOCUS LASV_Josiah_OPT 1730 bp ds-DNA linear 14-JUN-2019\n", "DEFINITION .\n", "ACCESSION \n", "VERSION \n", "SOURCE Kate Crawford\n", " ORGANISM .\n", "COMMENT PacBio amplicon for LASV Josiah OPT sequence\n", "FEATURES Location/Qualifiers\n", " T2A 85..147\n", " /label=\"T2A\"\n", " WPRE 1639..1730\n", " /label=\"WPRE\"\n", " ZsGreen 15..84\n", " /label=\"ZsGreen\"\n", " termini3 1639..1730\n", " /label=\"3'Termini\"\n", " index 9..14\n", " /label=\"index\"\n", " leader5 1..8\n", " /label=\"5' leader\"\n", " termini5 1..147\n", " /label=\"5'Termini\"\n", " variant_tag5 34..34\n", " /variant_1=T\n", " /variant_2=C\n", " /label=\"5'VariantTag\"\n", " variant_tag3 1702..1702\n", " /variant_1=G\n", " /variant_2=A\n", " /label=\"3'VariantTag\"\n", " spacer 1624..1638\n", " /label=\"3'Spacer\"\n", " gene 148..1623\n", " /label=\"LASV_Josiah_OPT\"\n", "\n", "ORIGIN\n", " 1 GACTGATANN NNNNcagcga cgccaagaac cagYagtggc acctgaccga gcacgccatc\n", " 61 gcctccggcT CCGCCTTGCC CGCTGGATCC GGCGAGGGCA GAGGAAGTCT GCTAACATGC\n", " 121 GGTGACGTCG AGGAGAATCC TGGCCCAATG GGCCAGATCG TGACCTTCTT CCAAGAAGTG\n", " 181 CCTCATGTGA TTGAGGAGGT GATGAATATC GTGCTGATCG CTTTAAGCGT GCTGGCCGTT\n", " 241 CTTAAGGGCC TCTATAACTT CGCCACTTGT GGTTTAGTCG GACTGGTGAC ATTTCTGCTG\n", " 301 CTGTGTGGCA GATCTTGTAC CACATCTTTA TACAAGGGCG TGTACGAGCT GCAGACTTTA\n", " 361 GAACTGAACA TGGAGACTTT AAACATGACC ATGCCTTTAA GCTGTACCAA GAACAATAGC\n", " 421 CACCACTACA TCATGGTGGG CAACGAGACC GGTTTAGAAC TGACACTCAC CAACACCAGC\n", " 481 ATTATCAACC ATAAGTTCTG CAACCTCTCC GACGCTCACA AGAAGAATTT ATACGACCAC\n", " 541 GCTTTAATGA GCATCATCTC CACCTTCCAT CTCTCCATTC CTAATttcaa ccagtacgag\n", " 601 gccatgAGCT GCGACTTTAA CGGCGGCAAG ATCTCCGTGC AGTACAATTT ATCCCATAGC\n", " 661 TACGCCGGCG ATGCCGCCAA TCACTGCGGA ACCGTGGCCA ACGGCGTGCT GCAGACATTC\n", " 721 ATGAGGATGG CTTGGGGCGG CTCCTATATC GCTTTAGACT CCGGCAGAGG AAACTGGGAC\n", " 781 TGTATCATGA CCAGCTACCA ATATTTAATC ATTCAGAACA CCACATGGGA GGACCACTGC\n", " 841 CAATTCTCTC GTCCCTCTCC TATCGGCTAT CTGGGACTGC TGTCCCAGAG GACCAGAGAC\n", " 901 ATCTACATCT CTCGTAGGCT GCTGGGCACA TTCACTTGGA CTTTAAGCGA CAGCGAAGGC\n", " 961 AAAGATACTC CCGGTGGCTA CTGTTTAACA AGATGGATGC TGATCGAGGC CGAGCTCAAG\n", " 1021 TGCTTCGGAA ATACCGCCGT GGCCAAATGC AACGAGAAAC ACGACGAGGA GTTCTGCGAC\n", " 1081 ATGCTGAGGC TCTTCGACTT CAacaagcaa gccattcaga ggcTGAAGGC CGAAGCCCAG\n", " 1141 ATGTCCATCC AGCTGATTAA TAAGGCCGTG AATGCCCTCA TTAACGACCA GCTGATCATG\n", " 1201 AAGAACCATT TAAGGGACAT CATGGGCATC CCTTATTGCA ACTACAGCAA ATACTGGTAT\n", " 1261 TTAAATCATA CCACCACCGG TCGTACATCC TTACCTAAGT GCTGGCTGGT CAGCAATGGC\n", " 1321 TCCTATTTAA ACGAGACACA CTTCTCCGAC GACATCGAGC AGCAAGCCGA CAACATGATC\n", " 1381 ACCGAAATGC TCCAGAAGGA GTACATGGAG AGGCAAGGTA AGACTCCTCT GGGTTTAGTG\n", " 1441 GATTTATTCG TCTTCAGCAC CTCCTTCTAT TTAATCTCCA TCTTTCTTCA TCTGGTGAAG\n", " 1501 ATTCCTACCC ACAGACACAT TGTGGGCAAG AGCTGTCCTA AGCCTCATAG ACTGAACCAC\n", " 1561 ATGGGCATCT GTAGCTGCGG TTTATATAAA CAGCCCGGTG TTCCCGTTAA GTGGAAGAGG\n", " 1621 TGAGCTAGCT AAACGCGTTG ATCCtaatca acctctggat tacaaaattt gtgaaagatt\n", " 1681 gactggtatt cttaactatg tRgctccttt tacgctatgt ggatacgctg \n", "//\n", "\n" ] } ], "source": [ "target_file_names = [\"LASV_Josiah_WT\", \"LASV_Josiah_OPT\"]\n", "\n", "targetfiles = [\n", " f\"../notebooks/input_files/{target_file_name}.gb\"\n", " for target_file_name in target_file_names\n", "]\n", "\n", "for targetfile in targetfiles:\n", " with open(targetfile) as f:\n", " print(f.read())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the sequences into a `Targets`:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true }, "outputs": [], "source": [ "lasv_parse_specs_file = \"../notebooks/input_files/lasv_feature_parse_specs.yaml\"\n", "\n", "lasv_targets = Targets(\n", " seqsfile=targetfiles,\n", " feature_parse_specs=lasv_parse_specs_file,\n", " allow_extra_features=True,\n", " allow_clipped_muts_seqs=True,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Iterate through lasv_targets to identify features present:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "target = LASV_Josiah_WT\n", "target lacks feature non-existent\n", "\n", "Here is feature termini5:\n", "Feature(name=termini5, seq=GCACGGCGTCACACTTTGCTATGCCATAGCATRTTTATCCATAAGATTAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCATAACAGAACATATTGACTATCCGGTATTACCCGGCATGACAGGAGTAAAA, start=0, end=147)\n", "\n", "target = LASV_Josiah_OPT\n", "target lacks feature non-existent\n", "\n", "Here is feature termini5:\n", "Feature(name=termini5, seq=GCACGGCGTCACACTTTGCTATGCCATAGCATRTTTATCCATAAGATTAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCATAACAGAACATATTGACTATCCGGTATTACCCGGCATGACAGGAGTAAAA, start=0, end=147)\n" ] } ], "source": [ "for lasv_target in lasv_targets.targets:\n", " print(f\"\\ntarget = {lasv_target.name}\")\n", " for feature in [\"non-existent\", \"termini5\"]:\n", " if lasv_target.has_feature(feature):\n", " print(f\"Here is feature {feature}:\\n{target.get_feature(feature)}\")\n", " else:\n", " print(f\"target lacks feature {feature}\\n\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot the `Targets`:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = lasv_targets.plot(ax_width=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can write them to a file for alignment:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ">LASV_Josiah_WT\n", "GACTGATANNNNNNCAGCGACGCCAAGAACCAGYAGTGGCACCTGACCGAGCACGCCATCGCCTCCGGCTCCGCCTTGCCCGCTGGATCCGGCGAGGGCAGAGGAAGTCTGCTAACATGCGGTGACGTCGAGGAGAATCCTGGCCCAATGGGACAAATAGTGACATTCTTCCAGGAAGTGCCTCATGTAATAGAAGAGGTGATGAACATTGTTCTCATTGCACTGTCTGTACTAGCAGTGCTGAAAGGTCTGTACAATTTTGCAACGTGTGGCCTTGTTGGTTTGGTCACTTTCCTCCTGTTGTGTGGTAGGTCTTGCACAACCAGTCTTTATAAAGGGGTTTATGAGCTTCAGACTCTGGAACTAAACATGGAGACACTCAATATGACCATGCCTCTCTCCTGCACAAAGAACAACAGTCATCATTATATAATGGTGGGCAATGAGACAGGACTAGAACTGACCTTGACCAACACGAGCATTATTAATCACAAATTTTGCAATCTGTCTGATGCCCACAAAAAGAACCTCTATGACCACGCTCTTATGAGCATAATCTCAACTTTCCACTTGTCCATCCCCAACTTCAATCAGTATGAGGCAATGAGCTGCGATTTTAATGGGGGAAAGATTAGTGTGCAGTACAACCTGAGTCACAGCTATGCTGGGGATGCAGCCAACCATTGTGGTACTGTTGCAAATGGTGTGTTACAGACTTTTATGAGGATGGCTTGGGGTGGGAGCTACATTGCTCTTGACTCAGGCCGTGGCAACTGGGACTGTATTATGACTAGTTATCAATATCTGATAATCCAAAATACAACCTGGGAAGATCACTGCCAATTCTCGAGACCATCTCCCATCGGTTATCTCGGGCTCCTCTCACAAAGGACTAGAGATATTTATATTAGTAGAAGATTGCTAGGCACATTCACATGGACACTGTCAGATTCTGAAGGTAAAGACACACCAGGGGGATATTGTCTGACCAGGTGGATGCTAATTGAGGCTGAACTAAAATGCTTCGGGAACACAGCTGTGGCAAAATGTAATGAGAAGCATGATGAGGAATTTTGTGACATGCTGAGGCTGTTTGACTTCAACAAACAAGCCATTCAAAGGTTGAAAGCTGAAGCACAAATGAGCATTCAGTTGATCAACAAAGCAGTAAATGCTTTGATAAATGACCAACTTATAATGAAGAACCATCTACGGGACATCATGGGAATTCCATACTGTAATTACAGCAAGTATTGGTACCTCAACCACACAACTACTGGGAGAACATCACTGCCCAAATGTTGGCTTGTATCAAATGGTTCATACTTGAACGAGACCCACTTTTCTGATGATATTGAACAACAAGCTGACAATATGATCACTGAGATGTTACAGAAGGAGTATATGGAGAGGCAGGGGAAGACACCATTGGGTCTAGTTGACCTCTTTGTGTTCAGCACAAGTTTCTATCTTATTAGCATCTTCCTTCACCTAGTCAAAATACCAACTCATAGGCATATTGTAGGCAAGTCGTGTCCCAAACCTCACAGATTGAATCATATGGGCATTTGTTCCTGTGGACTCTACAAACAGCCTGGTGTGCCTGTGAAATGGAAGAGATGAGCTAGCTAAACGCGTTGATCCTAATCAACCTCTGGATTACAAAATTTGTGAAAGATTGACTGGTATTCTTAACTATGTRGCTCCTTTTACGCTATGTGGATACGCTG\n", ">LASV_Josiah_OPT\n", "GACTGATANNNNNNCAGCGACGCCAAGAACCAGYAGTGGCACCTGACCGAGCACGCCATCGCCTCCGGCTCCGCCTTGCCCGCTGGATCCGGCGAGGGCAGAGGAAGTCTGCTAACATGCGGTGACGTCGAGGAGAATCCTGGCCCAATGGGCCAGATCGTGACCTTCTTCCAAGAAGTGCCTCATGTGATTGAGGAGGTGATGAATATCGTGCTGATCGCTTTAAGCGTGCTGGCCGTTCTTAAGGGCCTCTATAACTTCGCCACTTGTGGTTTAGTCGGACTGGTGACATTTCTGCTGCTGTGTGGCAGATCTTGTACCACATCTTTATACAAGGGCGTGTACGAGCTGCAGACTTTAGAACTGAACATGGAGACTTTAAACATGACCATGCCTTTAAGCTGTACCAAGAACAATAGCCACCACTACATCATGGTGGGCAACGAGACCGGTTTAGAACTGACACTCACCAACACCAGCATTATCAACCATAAGTTCTGCAACCTCTCCGACGCTCACAAGAAGAATTTATACGACCACGCTTTAATGAGCATCATCTCCACCTTCCATCTCTCCATTCCTAATTTCAACCAGTACGAGGCCATGAGCTGCGACTTTAACGGCGGCAAGATCTCCGTGCAGTACAATTTATCCCATAGCTACGCCGGCGATGCCGCCAATCACTGCGGAACCGTGGCCAACGGCGTGCTGCAGACATTCATGAGGATGGCTTGGGGCGGCTCCTATATCGCTTTAGACTCCGGCAGAGGAAACTGGGACTGTATCATGACCAGCTACCAATATTTAATCATTCAGAACACCACATGGGAGGACCACTGCCAATTCTCTCGTCCCTCTCCTATCGGCTATCTGGGACTGCTGTCCCAGAGGACCAGAGACATCTACATCTCTCGTAGGCTGCTGGGCACATTCACTTGGACTTTAAGCGACAGCGAAGGCAAAGATACTCCCGGTGGCTACTGTTTAACAAGATGGATGCTGATCGAGGCCGAGCTCAAGTGCTTCGGAAATACCGCCGTGGCCAAATGCAACGAGAAACACGACGAGGAGTTCTGCGACATGCTGAGGCTCTTCGACTTCAACAAGCAAGCCATTCAGAGGCTGAAGGCCGAAGCCCAGATGTCCATCCAGCTGATTAATAAGGCCGTGAATGCCCTCATTAACGACCAGCTGATCATGAAGAACCATTTAAGGGACATCATGGGCATCCCTTATTGCAACTACAGCAAATACTGGTATTTAAATCATACCACCACCGGTCGTACATCCTTACCTAAGTGCTGGCTGGTCAGCAATGGCTCCTATTTAAACGAGACACACTTCTCCGACGACATCGAGCAGCAAGCCGACAACATGATCACCGAAATGCTCCAGAAGGAGTACATGGAGAGGCAAGGTAAGACTCCTCTGGGTTTAGTGGATTTATTCGTCTTCAGCACCTCCTTCTATTTAATCTCCATCTTTCTTCATCTGGTGAAGATTCCTACCCACAGACACATTGTGGGCAAGAGCTGTCCTAAGCCTCATAGACTGAACCACATGGGCATCTGTAGCTGCGGTTTATATAAACAGCCCGGTGTTCCCGTTAAGTGGAAGAGGTGAGCTAGCTAAACGCGTTGATCCTAATCAACCTCTGGATTACAAAATTTGTGAAAGATTGACTGGTATTCTTAACTATGTRGCTCCTTTTACGCTATGTGGATACGCTG\n", "\n" ] } ], "source": [ "with tempfile.NamedTemporaryFile(mode=\"w\") as f:\n", " lasv_targets.write_fasta(f.name)\n", " f.flush()\n", " fasta_text = open(f.name).read()\n", "print(fasta_text)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.7" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 4 }