{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Week 3\n", "For this week's analysis I decided to move my focus to trying to figure out what country the SARS-Cov-2 may have traveled to the USA from. Using my work from last week, I decided to continue using the data provided by https://covid19.galaxyproject.org/genomics/4-Variation/current_complete_ncov_genomes.fasta. I also am using the same multiple sequence alignment and position table as I did for my analysis last week.\n", "\n", "However, in order to perform my analysis this week, I needed a litle more information for my data set, such as the country of origin and date of collection for each sequence in the data set. This data was provided by https://www.ncbi.nlm.nih.gov/core/assets/genbank/files/ncov-sequences.yaml. In addition to the information I was looking for, the file also contains the accesion of the sequence, accesion listing, and the state it was collected in, if that information is available. " ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'ncov-sequences (2).yaml'" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import wget\n", "\n", "url = 'https://www.ncbi.nlm.nih.gov/core/assets/genbank/files/ncov-sequences.yaml'\n", "filename = 'ncov-sequences.yaml'\n", "wget.download(url, filename)" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "import yaml\n", "\n", "#Read in the information for the sequences\n", "file = open(filename)\n", "info = yaml.load(file, Loader=yaml.FullLoader)\n", "file.close()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pulling the data out of the yaml file\n", "Once I had read in the sequence information, I needed to next pull out what I needed and store it in a dicitonary. Using the accession of sequence as the key, I stored the country of origin and collection date of the sequence together for use later." ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [], "source": [ "#Pull out the country and date information for each sequence\n", "countries_and_dates = {}\n", "for data in info['genbank-sequences']:\n", " country = data['country']\n", " #We want just the country, not the state\n", " if country is not None:\n", " country = country.split(':')[0]\n", " date = data['collection_date']\n", " countries_and_dates[data['accession']] = (country, date)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Modifying the position table\n", "Since I was using the same position table I used for my previous analysis, I needed to read in the position table I had saved." ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "\n", "#read in the position table\n", "position_table = pd.read_csv('../../data/position_table.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once I had read in the position table, I needed to add in the information I had extracted from the yaml file for each of the sequences. I also decided to add an additional name column that matched the accession for each sequence so I would not constanly neeed to remove the '.1' from the end of the seqid of the sequence in order to reference the information in the future." ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [], "source": [ "#Add the country and date information to the position table for each sequence\n", "for i in range(len(position_table)):\n", " #Add the name of the sequence without the '.1' ending\n", " name = position_table.loc[i, 'seqid'][:-2]\n", " position_table.loc[i, 'name'] = name\n", " if name in countries_and_dates:\n", " country, date = countries_and_dates[position_table.loc[i, 'name']]\n", " position_table.loc[i, 'country'] = country\n", " position_table.loc[i, 'date'] = date\n", " else:\n", " position_table.loc[i, 'country'] = None\n", " position_table.loc[i, 'date'] = None" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
seqidS_1_1S_1_2S_1_3S_2_1S_2_2S_2_3S_3_1S_3_2S_3_3...S_1271_3S_1272_1S_1272_2S_1272_3S_1273_1S_1273_2S_1273_3namecountrydate
0MT007544.1ATGTTTGTT...TTACACAMT007544Australia2020-01-25
1MT019529.1ATGTTTGTT...TTACACAMT019529China2019-12-23
2MT019530.1ATGTTTGTT...TTACACAMT019530China2019-12-30
3MT019531.1ATGTTTGTT...TTACACAMT019531China2019-12-30
4MT019532.1ATGTTTGTT...TTACACAMT019532China2019-12-30
..................................................................
672MT334544.1ATGTTTGTT...TTACACAMT334544USA2020-03-19
673MT334546.1ATGTTTGTT...TTACACAMT334546USA2020-03-19
674MT334547.1ATGTTTGTT...TTACACAMT334547USA2020-03-19
675MT334557.1ATGTTTGTT...TTACACAMT334557USA2020-03-20
676MT334561.1ATGTTTGTT...TTACACAMT334561USA2020-03-26
\n", "

677 rows × 3823 columns

\n", "
" ], "text/plain": [ " seqid S_1_1 S_1_2 S_1_3 S_2_1 S_2_2 S_2_3 S_3_1 S_3_2 S_3_3 ... \\\n", "0 MT007544.1 A T G T T T G T T ... \n", "1 MT019529.1 A T G T T T G T T ... \n", "2 MT019530.1 A T G T T T G T T ... \n", "3 MT019531.1 A T G T T T G T T ... \n", "4 MT019532.1 A T G T T T G T T ... \n", ".. ... ... ... ... ... ... ... ... ... ... ... \n", "672 MT334544.1 A T G T T T G T T ... \n", "673 MT334546.1 A T G T T T G T T ... \n", "674 MT334547.1 A T G T T T G T T ... \n", "675 MT334557.1 A T G T T T G T T ... \n", "676 MT334561.1 A T G T T T G T T ... \n", "\n", " S_1271_3 S_1272_1 S_1272_2 S_1272_3 S_1273_1 S_1273_2 S_1273_3 name \\\n", "0 T T A C A C A MT007544 \n", "1 T T A C A C A MT019529 \n", "2 T T A C A C A MT019530 \n", "3 T T A C A C A MT019531 \n", "4 T T A C A C A MT019532 \n", ".. ... ... ... ... ... ... ... ... \n", "672 T T A C A C A MT334544 \n", "673 T T A C A C A MT334546 \n", "674 T T A C A C A MT334547 \n", "675 T T A C A C A MT334557 \n", "676 T T A C A C A MT334561 \n", "\n", " country date \n", "0 Australia 2020-01-25 \n", "1 China 2019-12-23 \n", "2 China 2019-12-30 \n", "3 China 2019-12-30 \n", "4 China 2019-12-30 \n", ".. ... ... \n", "672 USA 2020-03-19 \n", "673 USA 2020-03-19 \n", "674 USA 2020-03-19 \n", "675 USA 2020-03-20 \n", "676 USA 2020-03-26 \n", "\n", "[677 rows x 3823 columns]" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "position_table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to clean up any missing data, I removed any entry from the position table that did not have a date and/or a country." ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [], "source": [ "#Remove any entry without a date or country\n", "position_table = position_table[~position_table['date'].isna()]\n", "position_table = position_table[~position_table['country'].isna()]\n", "position_table['date'] = pd.to_datetime(position_table['date'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order begin finding the data to use in my analysis from the partition table, I selected the sequence from the position table with the earliest collection date in the USA as a starting point. With this sequence selected, I then wanted to find all other seuquences that had a collection date of before or on the collection date of the selected USA sequence." ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Timestamp('2020-01-01 00:00:00')" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Find the eqrliest USA genome sequence\n", "us_genome = sorted(position_table[position_table['country'] == 'USA']['date'])[0]\n", "us_genome" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [], "source": [ "genome_table = position_table.set_index(\"seqid\")\n", "subset_seqs = genome_table[genome_table[\"date\"] <= us_genome].index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to use these sequences to create a tree, I decided to create a distance matrix in order to construct a distance based phylogenetic tree." ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MT019529.1MT019530.1MT019531.1MT019532.1MT019533.1MT039890.1MT291826.1MT291827.1MT291828.1MT291829.1MT291830.1MT326173.1
MT019529.1022224223225
MT019530.1201124112115
MT019531.1210124112115
MT019532.1211024112115
MT019533.1222203223224
MT039890.1444430445445
MT291826.1211124012115
MT291827.1211124102115
MT291828.1322235220226
MT291829.1211124112015
MT291830.1211124112105
MT326173.1555545556550
\n", "
" ], "text/plain": [ " MT019529.1 MT019530.1 MT019531.1 MT019532.1 MT019533.1 \\\n", "MT019529.1 0 2 2 2 2 \n", "MT019530.1 2 0 1 1 2 \n", "MT019531.1 2 1 0 1 2 \n", "MT019532.1 2 1 1 0 2 \n", "MT019533.1 2 2 2 2 0 \n", "MT039890.1 4 4 4 4 3 \n", "MT291826.1 2 1 1 1 2 \n", "MT291827.1 2 1 1 1 2 \n", "MT291828.1 3 2 2 2 3 \n", "MT291829.1 2 1 1 1 2 \n", "MT291830.1 2 1 1 1 2 \n", "MT326173.1 5 5 5 5 4 \n", "\n", " MT039890.1 MT291826.1 MT291827.1 MT291828.1 MT291829.1 \\\n", "MT019529.1 4 2 2 3 2 \n", "MT019530.1 4 1 1 2 1 \n", "MT019531.1 4 1 1 2 1 \n", "MT019532.1 4 1 1 2 1 \n", "MT019533.1 3 2 2 3 2 \n", "MT039890.1 0 4 4 5 4 \n", "MT291826.1 4 0 1 2 1 \n", "MT291827.1 4 1 0 2 1 \n", "MT291828.1 5 2 2 0 2 \n", "MT291829.1 4 1 1 2 0 \n", "MT291830.1 4 1 1 2 1 \n", "MT326173.1 5 5 5 6 5 \n", "\n", " MT291830.1 MT326173.1 \n", "MT019529.1 2 5 \n", "MT019530.1 1 5 \n", "MT019531.1 1 5 \n", "MT019532.1 1 5 \n", "MT019533.1 2 4 \n", "MT039890.1 4 5 \n", "MT291826.1 1 5 \n", "MT291827.1 1 5 \n", "MT291828.1 2 6 \n", "MT291829.1 1 5 \n", "MT291830.1 0 5 \n", "MT326173.1 5 0 " ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Construct the distance matrix\n", "distances = {}\n", "for i,seqid1 in enumerate(subset_seqs):\n", " distances[seqid1,seqid1]=0\n", " for j in range(i+1,len(subset_seqs)):\n", " seqid2 = subset_seqs[j]\n", " distances[seqid1,seqid2] = sum(genome_table.loc[seqid1] != genome_table.loc[seqid2])\n", " distances[seqid2,seqid1] = distances[seqid1,seqid2]\n", "distances = pd.Series(distances).unstack()\n", "\n", "distances" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tree Construction\n", "Same as how I created my trees in week 2, I again utilized biopython for constructing my phylogenetic trees." ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [], "source": [ "from Bio.Phylo.TreeConstruction import DistanceMatrix\n", "from Bio.Phylo.TreeConstruction import DistanceTreeConstructor\n", "from Bio import Phylo\n", "\n", "#Convert to biopython distance matrix\n", "matrix = np.tril(distances.values).tolist()\n", "for i in range(len(matrix)):\n", " matrix[i] = matrix[i][:i+1]\n", "dm = DistanceMatrix(list(distances.index), matrix)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Neighbor Joining Tree\n", "The first tree I wanted to make was a distacne tree using the Neighbor Joining algorithm. Using biopython's DistanceTreeConstructor class, I was able to do so" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "image/png": "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1atXX7PWQYMGkZKSQlBQEEFBQaSnpxMZGdnqnLq6OvLy8khNTW3V/re//Y3Kykp+9KMfXVfNIiIitxLPTpp3DpAN+HbS/Jw7d47k5GT35yNHjjB69Giam5vx8vLiueeeA+DAgQMUFxczf/58SktLOX36NMnJyTQ2NrJt2zaSk5MpKyvj/PnzzJ49G2hZARs9ejQeHh7ccccdPPnkk+55LMsiJCSELl260LVrVw4ePMiOHTuuu/6CgoLL2gICAvD392fp0qVERkbStWvXdo9XVlZGTk4O69atA8Df35933nmH8ePH4+HhwUMPPURFRcVVx9i/fz+7d+92r2alpaVRWFjI0KFDgZbQmpWVxfTp0+nbt2+rvkuXLiUzM5MuXbq0u2YREZFbje3By7KsnwC1xpitlmUlX+W8Z4BnAHr16mVTde65W/1+8eJF9+dLj9csy7q0Vw2Afv36ERAQ0Gqcurq6y4LEpdUggIqKCry9vTu09vHjxzNt2jQWLlzY7j7V1dWMGTOGxYsXExoa6m7PyMhwr5q999571wxFH330EQMHDnRvgH/kkUf44osv3MHrmWeeISwszB1qv2np0qW8/fbb7a5ZRETklnSlzV836geYBVQDVcARoB7476v1sXNzfWVlZasN6a+//rr51a9+ZYxpvTH92LFjpnfv3sYYY+bOnWtGjx5tGhsbjTHG7N2715w7d8589tlnZuTIka3mOXr0qDHGmL/97W8mIiLCnDx5skOu6VL9Z86cMbNnzzYXLly47Fq+fQ3GGHPq1CkTGxtrVqxYcdmYl2o9efKkiYuLM3v37m11fNKkSa021y9dutSkpqaapqYm09jYaH70ox+Zjz/+2BhjzIsvvmjGjh1rmpubL5tnz549pnfv3ubixYvXvE5trhcRkZsdN9PmemPMC8aYYGNMCPAosNEY87/srqMjTZ48maioKBISEoiOjmbKlCm4XK42z/3nf/5noqKiyMjI4O2338bf379Da/H19SUnJwcvL692nf/WW2+xf/9+Xn31VfdrHWprawF49tlniYqKYvDgweTm5hIeHg5AcXExwcHBLF++nClTpuBwOICWPWahoaHExMQQFxdHXFwcGRkZVFdXu/e5JSQk4HQ6mT//f2/vW7JkCY8++mirlUZoeR3GJdnZ2QQHB1NfX09wcDAvv/zyd7lNIiIincIy33hcZvvkLY8anzfG/ORq5yUlJZmSkpIOm/fSu6Lq6uo6bEwRERERAMuythpjkto61lmb6wEwxhQABZ1Zg4iIiIhd9OZ6EREREZsoeImIiIjYRMFLRERExCYKXiIiIiI2UfASERERsYmCl4iIiIhNFLxEREREbKLgJSIiImITBS8RERERmyh4iYiIiNhEwUtERETEJgpeIiIiIjZR8BIRERGxiYKXiIiIiE0UvERERERsouAlIiIiYhMFLxERERGbKHiJiIiI2ETBS0RERMQmCl4iIiIiNlHwEhEREbGJgpeIiIiITRS8RERERGyi4CUiIiJiEwUvEREREZsoeImIiIjYRMFLRERExCYKXiIiIiI2UfASERERsYmCl4iIiIhNFLxEREREbKLgJSIiImITBS8RERERmyh4/V1ISAjHjx+/4fP813/9Fw6Hg+joaLKysmhoaOiQcUNCQhgyZEirNqfTSXR0NPn5+TidTpxOJz4+PkREROB0Opk4cSLr168nMTGRmJgYEhMT2bhxo7v/smXLiI2NxeFwkJ2d7W4vLCwkISEBT09PVqxY0WrO7OxsHA4HkZGRTJ8+HWMM9fX1jBw5kv79++NwOMjNzW3V58MPPyQqKgqHw8GECRPavL4XX3yRnj174uPj811vlYiISOcxxtz0P4mJiaYj+fn5GT8/v1ZtvXv3NseOHevQeb7J5XKZ6upqExISYurr640xxvzsZz8zv//97ztk/N69e5u4uDhz4MABY4wxu3btMnFxccbhcLQ6b9iwYaa4uNj9+csvvzSHDh0yxhizY8cO06NHD2OMMcePHzc9e/Y0tbW1xhhjJk6caP785z8bY4yprKw027dvN48//rhZvny5e6zNmzebhx56yLhcLuNyuczAgQPNZ599Zs6fP282btxojDHmwoUL5oc//KFZu3atMcaYffv2GafTaU6ePGmMMebo0aNtXt+WLVtMTU2Nufvuu7/bjRIREbnBgBJzhUyjFa9vqaqqIjIykqeffhqHw8Hw4cP5+uuvAUhOTiYnJ4cBAwYQHh7O559/DkBzczMzZszgwQcfJDY2lrlz5wJQUFBASkoKEyZMICYmBgCXy8XXX3+Ny+Wivr6eHj16dFjt48aNY9myZQAsWbKErKysa/aJj4931+BwOGhoaODChQtUVFQQHh7O/fffD8DDDz/MypUrgZbVtdjY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NzdTU1PjPnbw4EGam5v585//TGlpKdOnT8fX15empiaqq6tJTk6mrKyMoKAgunXrBkC3bt34j//4D+rq6jh48KB7rMbGRjw9PcnJyQFwH/92QGmPgoKCy9oCAgLw9/dn6dKlREZG0rVr12uO07Ii2tql1agref/995k+fTq//vWvGTVqFF5eXgAEBQVx4MAB7r33XrZu3cpPf/pTysrK3Ktd+fn5NDQ08Nhjj7Fx40bS0tLacaUiIiK3j+/lildpaSnnzp3rsPH8/f2pqanh4sWLANTX17s3j3+Tl5cX3t7e1NfXAy3Bqz3h6HqMHz+eadOmtesxI7SscH1zxaq6upoePXpctU///v1Zt24dW7duJSsri9DQUAC8vb259957gZYVwdDQUPbt29eq75133smoUaNYs2bN9VyWiIjIbeF7ueIF4OPj02rVKCQkhDVr1nDu3Dl+8pOfuI+98cYbnDt3jpdffpnk5GTeeOMNkpKSOH78OElJSRQUFHDx4kVeeukl8vLyMMZw//33s3r1arZt28Ybb7zBH//4R/c8paWlTJ48mZMnT+J0Ovn973+Pv79/h13XmDFjOHz4MOnp6dTU1Fzz/FGjRjFhwgR++ctfUlNTQ3l5OQMGDLhqn9raWgIDA7l48SKvvfaa+9uLx44dIyAggC5dulBRUUF5eTl9+/bl3LlznD17lqCgIFwuF2vXrr3sG5giIiLfC1fadX8z/djxrcZb3aVvZX5TW98ybOvbg6+99prp27evCQ8PN2vXrnW3P/roo+af/umfjKenp3nggQfM/PnzjTHGzJkzx4SFhZmwsDCTk5Pj/pbmihUrTFRUlImNjTXx8fHm448/NsYYc+TIEfc3PqOioswvfvEL09TUZIwxZtWqVeaBBx4wXl5eJjAw0AwfPtwYY8yhQ4fMI488cs1aREREbjZc5VuNlmljj8/NJikpyVztHU/X69JerLq6ug4bU0RERATAsqytxpikto59L/d4iYiIiHQGBS8RERERmyh4iYiIiNhEwUtERETEJgpeIiIiIjZR8BIRERGxiYKXiIiIiE0UvERERERsouAlIiIiYhMFLxERERGbKHiJiIiI2ETBS0RERMQmCl4iIiIiNlHwEhEREbGJgpeIiIiITRS8RERERGyi4CUiIiJiEwUvEREREZsoeImIiIjYRMFLRERExCYKXiIi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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pylab as plt\n", "\n", "#Construct the NJ tree\n", "constructor = DistanceTreeConstructor()\n", "tree = constructor.nj(dm)\n", "\n", "%matplotlib inline\n", "\n", "tree.ladderize() # Flip branches so deeper clades are displayed at top\n", "fig = plt.figure(figsize=(10, 10))\n", "axes = fig.add_subplot(1, 1, 1)\n", "Phylo.draw(tree, axes=axes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### UPGA Tree\n", "I next also wanted to compare the results of using the same data set to construct a UPGMA tree, again using biopython" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAJNCAYAAADgY3uzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzde1hWZb7H//cSBA/gAZU2igWeEHmARyDMmUTMDdgUFA6h2B41s3JHl804Gc6v9t5ZOtpV+7dtHCcds9LGLeYh0TLQNNJpagDr0QRTZgvjAcvD5DlT8P79wfj8IlCoZHHw87ourwvue93r/q6lxYd7HR7LGIOIiIiINL42TV2AiIiIyI1CwUtERETEJgpeIiIiIjZR8BIRERGxiYKXiIiIiE0UvERERERs4tnUBTRE9+7dTVBQUFOXISIiIlKvHTt2HDfG9Kirr0UEr6CgIIqKipq6DBEREZF6WZb196v16VKjiIiIiE0UvERERERsouAlIiIiYhMFLxERERGbKHiJiIiI2ETBS0RERMQmCl4iIiIiNlHwEhEREbGJgpeIiIiITRS8RERERGyi4CUiIiJiEwUvEREREZsoeImIiIjYRMFLRERExCYKXiIiIiI2UfASERERsYmCl4iIiIhNFLxEREREbKLgJSIiImITBS8RERERmyh4iYiIiNhEwUtERETEJgpeIiIiIjZR8BIRERGxiYKXiIiIiE0UvERERERsouAlIiIiYhMFLxERERGbKHiJiIhcRVBQEMOGDavR5nQ6cTgc5OXl4XQ6cTqd+Pj4EBISgtPpZPz48RQUFLj7IiMjeeuttwA4ePAgI0aMIDQ0lLCwMF566aUa+54/fz4hISGEhYXx5JNPAnDixAlGjBiBj48Pjz32mHvbM2fOuOdwOp10796dX/7ylwAsXLiQ8PBwnE4nt99+OyUlJXUe36RJk/D398fhcFy3cyb1MMY0+z/R0dFGRETEbrfccouJjIw0Bw4cMMYYU1JSYiIjI01YWFiN7YYPH24KCwvd3587d85cunTJGGNMRUWF6dGjh7l06ZKpqKgwO3bsMMYYc/r0adO/f39TXFxsjDFm69atZuTIkebChQvGGGO+/PJLY4wxZ8+eNdu3bzcvv/yyyczMvGqtUVFR5oMPPjDGGHPq1Cl3e05OjklKSqpzzAcffGB27NhR63jkxwGKzFUyjVa8REREriE9PZ2VK1cCsGLFCjIyMuod06FDBzw9PQG4cOEClmUBEBAQQFRUFAC+vr6EhoZy+PBhAF5++WVmzJiBt7c3AP7+/gB07NiR22+/nXbt2l11vtLSUo4ePepenevUqZO779y5c+75vysuLg4/P796j0euHwUvERGRa0hLS2Pt2rUAbNiwgeTk5AaN++tf/0pYWBjh4eEsXLjQHcSuKC8v59NPP2XIkCEA7Nu3j+3btzNkyBCGDx9OYWFhg2tcsWIFY8aMqRGwFixYQN++fXnyySf53e9+1+B9SePyrH+T1ik+Pr6pSxARkWYmPz+/Vpufnx9du3YlOzub0NBQOnTo0KB9DRkyhOLiYvbs2cOECRO488473atWZ8+e5ec//znz5s1zr05VVlby1Vdf8fHHH1NYWEh6ejr79++/6mrVt2VnZ/PGG2/UaMvMzCQzM5P//d//ZdasWSxdurRBdUvjuiFXvOLj43G5XE1dhoiItBBjxowhMzOzQZcZvys0NJSOHTuye/duAC5dusTPf/5z7r//fkaPHu3eLjAwkNGjR2NZFrGxsbRp04bjx4/Xu/+dO3dSWVlJdHR0nf1jx45l3bp137tuaRw37IqX0+ms8zcbERGR70pNTeXIkSMkJSVRUVFR7/ZlZWX07t0bT09P/v73v7N3716CgoIwxvDggw8SGhrKtGnTaoy599572bp1K/Hx8ezbt4+LFy/SvXv3eueq676z0tJS+vfvD8A777zj/lqa3g0bvERERBrK19eXrKysBm//5z//mblz59K2bVvatGnDH/7wB7p3786f//xn3njjDferHgB++9vf8rOf/YxJkyYxadIkHA4HXl5eLF261H2ZMSgoiNOnT3Px4kXWrVvHpk2bGDRoEABvvvkmGzdurDH/73//e9577z3atm1L165d3ZcZKyoqmDx5snv7jIwM8vPzOX78OIGBgcycOZMHH3zwR58vuTqr+qnH5i0mJsYUFRVdt/1dub9LK14iIiJyvVmWtcMYE1NX3w15j5eIiIhIU1DwEhEREbGJgpeIiIiITRS8RERERGyi4CUiIiJiEwUvEREREZsoeImIiIjYRMFLRERExCYKXiIiIiI2UfASERERsYmCl4iIiIhNFLxEREREbKLgJSIiImITBS8RERERmyh4iYiIiNhE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dOjQ4P0VFxeTlZXFpk2bAOjatSsvv/wyY8aMoU2bNvzkJz9h//7919zH3/72N/bs2eNezUpISGDbtm3ExcUB1Z+ZmpGRwdSpU+nTpw9QvTI3ceJEfv3rX/PRRx/xi1/8gt27d9daTWutboyjFBG5zuLj43G5XE1dhghjxowhMzOzQZcZrzh06BCpqaksW7aMvn37utuTk5P561//ykcffURISEi9H5X11ltvcdttt+Hj44OPjw933nknH3/8sbv/4Ycfpn///vzyl790ty1ZsoT09HSgesXswoULHD9+vMG1t3Ra8RIR+YGcTqde7ipNLjU1lSNHjpCUlERFRUW92588eZK77rqLOXPm8NOf/rRG35WPyvrqq6/4wx/+wJtvvnnNfd18880sXryY3/zmNxhj+OCDD9wh6+mnn+bUqVO88sortcZs2bKFiRMnsmfPHi5cuOC+r+xGoBUvERGRFszX15esrCy8vLwatP3vf/97/va3v/Hcc8+5Xzlx9OhRAB5//HEGDRrET3/6U2bMmMGAAQMAKCwsJDAwkFWrVvHII48QFhYGVN9j1rdvX8LDw4mMjCQyMpLk5GQOHTrE7NmzKSkpISoqCqfT6Q5g//3f/83ixYuJjIwkIyOD119/HcuyqKio4Gc/+5m7zoyMDIYOHcrevXsJDAxkyZIl1/O0NRl9ZJCINFvN+SODmnNtItK09JFBIiIiIs2AgpeIiIiITRS8RERERGyi4CUiIiJiEwUvEREREZsoeImIiIjYRMFLRERExCYKXiIiIiI2UfASERERsYmCl4iIiIhNFLxEREREbKLgJSIiImITBS8RERERmyh4iYiIiNhEwUtERETEJgpeIiIiIjZR8BIRERGxiYKXiIiIiE0UvERERERsouAlIiIiYhMFLxERERGbKHiJiIiI2ETBS0RERMQmCl4iIiIiNlHwEhEREbGJgpeIiIiITRS8RERERGyi4CUiIiJiEwUvEREREZsoeImIiIjYRMFLRERExCYKXiIiIiI2UfASERERsYmCl4iIiIhNFLxERK6ToKAgjh8/3qhz7N27F6fT6f7TqVMn5s2b16hzSvMUFBTEsGHDarQ5nU4cDgd5eXnufyM+Pj6EhITgdDoZP348AHPmzKFfv36EhISQl5fnHj9p0iT8/f1xOBw19rtz506GDh1KeHg4ycnJnD59GoDy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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Construct the UPGMA tree\n", "constructor = DistanceTreeConstructor()\n", "tree = constructor.upgma(dm)\n", "\n", "%matplotlib inline\n", "\n", "tree.ladderize() # Flip branches so deeper clades are displayed at top\n", "fig = plt.figure(figsize=(10, 10))\n", "axes = fig.add_subplot(1, 1, 1)\n", "Phylo.draw(tree, axes=axes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Both trees are quite similar in their result. As I had expected, it appears that China, specifically Wuhan, is the source of SARS-Cov-2. It also seems to appear that Wuhan is also the source of the transmission of Sars-Cov-2 to the USA as well." ] }, { "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.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }