{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Notebook 1: \n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "### Notebook 1\n", "### Data set 1 (Viburnum)\n", "### Language: Bash\n", "### Data Location: NCBI SRA PRJNA299402 & PRJNA299407" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "%%bash\n", "## make a new directory for this analysis\n", "mkdir -p empirical_1/\n", "mkdir -p empirical_1/halfrun\n", "mkdir -p empirical_1/fullrun" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## import Python libraries\n", "import pandas as pd\n", "import numpy as np\n", "import ipyparallel\n", "import urllib2\n", "import glob\n", "import os" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download the sequence data\n", "Sequence data for this study is archived on the NCBI sequence read archive (SRA). The data were run in two separate Illumina runs, but are combined under a single project id number. \n", "\n", "+ Project SRA: SRP055977\n", "+ Project number: PRJNA277574\n", "+ Biosample numbers: SAMN03394519 -- SAMN03394561\n", "+ Runs: SRR1915524 -- SRR1915566 \n", "+ The barcodes file is in the github repository for this [project](). \n", "\n", "The library contains 95 samples. We uploaded the two demultiplexed samples for each individual separately, so each sample has 2 files. Below we examine just the first library (the \"half\" data set) and then both libraries combined (the \"full\" data set). We analyze on 64 samples since the remaining samples are replicate individuals within species that are part of a separate project. \n", "\n", "You can download the data set using the script below:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "## get the data from Dryad\n", "for run in $(seq 24 28);\n", "\n", " do\n", "wget -q -r -nH --cut-dirs=9 \\\n", "ftp://ftp-trace.ncbi.nlm.nih.gov/\\\n", "sra/sra-instant/reads/ByRun/sra/SRR/\\\n", "SRR191/SRR19155$run/SRR19155$run\".sra\";\n", "\n", "done" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "## convert sra files to fastq using fastq-dump tool\n", "fastq-dump *.sra" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## IPython code\n", "\n", "## This reads in a table mapping sample names to SRA numbers\n", "## that is hosted on github\n", "\n", "## open table from github url\n", "url = \"https://raw.githubusercontent.com/\"+\\\n", " \"dereneaton/virentes/master/SraRunTable.txt\"\n", "intable = urllib2.urlopen(url)\n", "\n", "## make name xfer dictionary\n", "DF = pd.read_table(intable, sep=\"\\t\")\n", "D = {DF.Run_s[i]:DF.Library_Name_s[i] for i in DF.index}\n", "\n", "## change file names and move to fastq dir/\n", "for fname in glob.glob(\"*.fastq\"):\n", " os.rename(fname, \"analysis_pyrad/fastq/\"+\\\n", " D[fname.replace(\".fastq\",\".fq\")])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create a set with reads concatenated from both technical replicates of each sample" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "mkdir -p fastq_combined" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cat: /home/deren/Documents/Vib_Lib1/fastq_Lib2/Lib2_lantan_combined_R1_.gz: No such file or directory\n", "cat: /home/deren/Documents/Vib_Lib1/fastq_Lib2/Lib2_propiinquum_combined_R1_.gz: No such file or directory\n" ] } ], "source": [ "## IPython code that makes a bash call w/ (!)\n", "## get all the data from the two libraries and concatenate it\n", "lib1tax = glob.glob(\"/home/deren/Documents/Vib_Lib1/fastq_Lib1/*.gz\")\n", "lib2tax = glob.glob(\"/home/deren/Documents/Vib_Lib1/fastq_Lib2/*.gz\")\n", "\n", "## names had to be modified to match\n", "taxa = [i.split(\"/\")[-1].split(\"_\", 1)[1] for i in lib1tax]\n", "\n", "for tax in taxa:\n", " ! cat /home/deren/Documents/Vib_Lib1/fastq_Lib1/Lib1_$tax \\\n", " /home/deren/Documents/Vib_Lib1/fastq_Lib2/Lib2_$tax \\\n", " > /home/deren/Documents/Vib_Lib1/fastq_combined/$tax " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Make a params file" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pyRAD 3.0.63\r\n" ] } ], "source": [ "%%bash\n", "pyrad --version" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\tnew params.txt file created\r\n" ] } ], "source": [ "%%bash\n", "## create a new default params file\n", "rm params.txt\n", "pyrad -n " ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%%bash\n", "## substitute new parameters into file\n", "sed -i '/## 1. /c\\empirical_1/halfrun ## 1. working directory ' params.txt\n", "sed -i '/## 6. /c\\TGCAG ## 6. cutters ' params.txt\n", "sed -i '/## 7. /c\\30 ## 7. N processors ' params.txt\n", "sed -i '/## 9. /c\\6 ## 9. NQual ' params.txt\n", "sed -i '/## 10./c\\.85 ## 10. clust threshold ' params.txt\n", "sed -i '/## 12./c\\4 ## 12. MinCov ' params.txt\n", "sed -i '/## 13./c\\10 ## 13. maxSH ' params.txt\n", "sed -i '/## 14./c\\empirical_1_half_m4 ## 14. output name ' params.txt\n", "sed -i '/## 18./c\\/home/deren/Documents/Vib_Lib1/fastq_Lib1/*.fastq ## 18. data location ' params.txt\n", "sed -i '/## 29./c\\2,2 ## 29. trim overhang ' params.txt\n", "sed -i '/## 30./c\\p,n,s,a ## 30. output formats ' params.txt" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "==** parameter inputs for pyRAD version 3.0.63 **======================== affected step ==\r\n", "empirical_1/halfrun ## 1. working directory \r\n", "./*.fastq.gz ## 2. Loc. of non-demultiplexed files (if not line 18) (s1)\r\n", "./*.barcodes ## 3. Loc. of barcode file (if not line 18) (s1)\r\n", "vsearch ## 4. command (or path) to call vsearch (or usearch) (s3,s6)\r\n", "muscle ## 5. command (or path) to call muscle (s3,s7)\r\n", "TGCAG ## 6. cutters \r\n", "30 ## 7. N processors \r\n", "6 ## 8. Mindepth: min coverage for a cluster (s4,s5)\r\n", "6 ## 9. NQual \r\n", ".85 ## 10. clust threshold \r\n", "rad ## 11. Datatype: rad,gbs,pairgbs,pairddrad,(others:see docs)(all)\r\n", "4 ## 12. MinCov \r\n", "10 ## 13. maxSH \r\n", "empirical_1_half_m4 ## 14. output name \r\n", "==== optional params below this line =================================== affected step ==\r\n", " ## 15.opt.: select subset (prefix* only selector) (s2-s7)\r\n", " ## 16.opt.: add-on (outgroup) taxa (list or prefix*) (s6,s7)\r\n", " ## 17.opt.: exclude taxa (list or prefix*) (s7)\r\n", "/home/deren/Documents/Vib_Lib1/fastq_Lib1/*.fastq ## 18. data location \r\n", " ## 19.opt.: maxM: N mismatches in barcodes (def= 1) (s1)\r\n", " ## 20.opt.: phred Qscore offset (def= 33) (s2)\r\n", " ## 21.opt.: filter: def=0=NQual 1=NQual+adapters. 2=strict (s2)\r\n", " ## 22.opt.: a priori E,H (def= 0.001,0.01, if not estimated) (s5)\r\n", " ## 23.opt.: maxN: max Ns in a cons seq (def=5) (s5)\r\n", " ## 24.opt.: maxH: max heterozyg. sites in cons seq (def=5) (s5)\r\n", " ## 25.opt.: ploidy: max alleles in cons seq (def=2;see docs) (s4,s5)\r\n", " ## 26.opt.: maxSNPs: (def=100). Paired (def=100,100) (s7)\r\n", " ## 27.opt.: maxIndels: within-clust,across-clust (def. 3,99) (s3,s7)\r\n", " ## 28.opt.: random number seed (def. 112233) (s3,s6,s7)\r\n", "2,2 ## 29. trim overhang \r\n", "p,n,s,a ## 30. output formats \r\n", " ## 31.opt.: maj. base call at depth>x> log.txt 2>&1 " ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%%bash\n", "sed -i '/## 12./c\\2 ## 12. MinCov ' params.txt\n", "sed -i '/## 14./c\\empirical_1_half_m2 ## 14. output name ' params.txt" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%%bash\n", "pyrad -p params.txt -s 7 >> log.txt 2>&1 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Assemble the full data set\n", "Added the 'a' option to output formats to build an \".alleles\" file which will be used later for mrbayes/bucky analyses. " ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "## substitute new parameters into file\n", "sed -i '/## 1. /c\\empirical_1/fullrun ## 1. working directory ' params.txt\n", "sed -i '/## 6. /c\\TGCAG ## 6. cutters ' params.txt\n", "sed -i '/## 7. /c\\30 ## 7. N processors ' params.txt\n", "sed -i '/## 9. /c\\6 ## 9. NQual ' params.txt\n", "sed -i '/## 10./c\\.85 ## 10. clust threshold ' params.txt\n", "sed -i '/## 12./c\\4 ## 12. MinCov ' params.txt\n", "sed -i '/## 13./c\\10 ## 13. maxSH ' params.txt\n", "sed -i '/## 14./c\\empirical_1_full_m4 ## 14. output name ' params.txt\n", "sed -i '/## 18./c\\/home/deren/Documents/Vib_Lib1/fastq_combined/*.fastq ## 18. data location ' params.txt\n", "sed -i '/## 29./c\\2,2 ## 29. trim overhang ' params.txt\n", "sed -i '/## 30./c\\p,n,s,a ## 30. output formats ' params.txt" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "pyrad -p params.txt -s 234567 >> log.txt 2>&1 " ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "sed -i '/## 12./c\\2 ## 12. MinCov ' params.txt\n", "sed -i '/## 14./c\\empirical_1_full_m2 ## 14. output name ' params.txt" ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "pyrad -p params.txt -s 7 >> log.txt 2>&1 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results\n", "We are interested in the relationship between the amount of input (raw) data between any two samples, the average coverage they recover when clustered together, and the phylogenetic distances separating samples. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Raw data amounts (1 sequence lane)\n", "The average number of raw reads per sample is 1.37M." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "count 65.000000\n", "mean 1372359.907692\n", "std 640115.353508\n", "min 324478.000000\n", "25% 961366.000000\n", "50% 1249609.000000\n", "75% 1602036.000000\n", "max 3113934.000000\n", "Name: passed.total, dtype: float64\n", "\n", "most raw data in sample:\n", "54 Lib1_sulcatum_D9_MEX_003\n", "Name: sample , dtype: object\n" ] } ], "source": [ "## read in the data\n", "s2dat = pd.read_table(\"empirical_1/halfrun/stats/s2.rawedit.txt\", header=0, nrows=66)\n", "\n", "## print summary stats\n", "print s2dat[\"passed.total\"].describe()\n", "\n", "## find which sample has the most raw data\n", "maxraw = s2dat[\"passed.total\"].max()\n", "print \"\\nmost raw data in sample:\"\n", "print s2dat['sample '][s2dat['passed.total']==maxraw]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Raw data amounts (2 sequence lanes)\n", "The average nreads now is 2.74M" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "count 65.000000\n", "mean 2736777.215385\n", "std 1262460.162891\n", "min 643550.000000\n", "25% 1918460.000000\n", "50% 2519904.000000\n", "75% 3215483.000000\n", "max 6183790.000000\n", "Name: passed.total, dtype: float64\n", "\n", "most raw data in sample:\n", "20 foetidum_D24_KFC_1942\n", "Name: sample , dtype: object\n" ] } ], "source": [ "## read in the data\n", "s2dat = pd.read_table(\"empirical_1/fullrun/stats/s2.rawedit.txt\", header=0, nrows=66)\n", "\n", "## print summary stats\n", "print s2dat[\"passed.total\"].describe()\n", "\n", "## find which sample has the most raw data\n", "maxraw = s2dat[\"passed.total\"].max()\n", "print \"\\nmost raw data in sample:\"\n", "print s2dat['sample '][s2dat['passed.total']==maxraw]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Look at distributions of coverage\n", "pyrad v.3.0.63 outputs depth information for each sample which I read in here and plot. First let's ask which sample has the highest depth of coverage. The std here is the std in means across samples. The std of depths within individuals is much higher." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "summary of means\n", "==================\n", "count 65.000000\n", "mean 14.869446\n", "std 3.033109\n", "min 10.008000\n", "25% 12.912000\n", "50% 14.197000\n", "75% 16.340000\n", "max 23.558000\n", "Name: dpt.me, dtype: float64\n", "\n", "summary of std\n", "==================\n", "count 65.000000\n", "mean 72.607323\n", "std 57.365233\n", "min 9.900000\n", "25% 29.634000\n", "50% 50.903000\n", "75% 103.118000\n", "max 262.167000\n", "Name: dpt.sd, dtype: float64\n", "\n", "summary of proportion lowdepth\n", "==================\n", "count 65.000000\n", "mean 0.282502\n", "std 0.031652\n", "min 0.209510\n", "25% 0.271586\n", "50% 0.283439\n", "75% 0.295572\n", "max 0.392641\n", "dtype: float64\n", "\n", "highest coverage in sample:\n", "54 Lib1_sulcatum_D9_MEX_003\n", "Name: taxa, dtype: object\n" ] } ], "source": [ "## read in the s3 results\n", "s3dat = pd.read_table(\"empirical_1/halfrun/stats/s3.clusters.txt\", header=0, nrows=66)\n", "\n", "## print summary stats\n", "print \"summary of means\\n==================\"\n", "print s3dat['dpt.me'].describe()\n", "\n", "## print summary stats\n", "print \"\\nsummary of std\\n==================\"\n", "print s3dat['dpt.sd'].describe()\n", "\n", "## print summary stats\n", "print \"\\nsummary of proportion lowdepth\\n==================\"\n", "print pd.Series(1-s3dat['d>5.tot']/s3dat[\"total\"]).describe()\n", "\n", "## find which sample has the greatest depth of retained loci\n", "maxdepth = s3dat[\"d>5.tot\"].max()\n", "print \"\\nhighest coverage in sample:\"\n", "print s3dat['taxa'][s3dat['d>5.tot']==maxdepth]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "summary of means\n", "==================\n", "count 65.000000\n", "mean 18.535369\n", "std 5.564201\n", "min 10.011000\n", "25% 14.403000\n", "50% 17.576000\n", "75% 21.119000\n", "max 36.199000\n", "Name: dpt.me, dtype: float64\n", "\n", "summary of std\n", "==================\n", "count 65.000000\n", "mean 108.366000\n", "std 89.468413\n", "min 11.761000\n", "25% 43.009000\n", "50% 77.229000\n", "75% 157.560000\n", "max 400.431000\n", "Name: dpt.sd, dtype: float64\n", "\n", "summary of proportion hidepth\n", "==================\n", "count 65.000000\n", "mean 0.252426\n", "std 0.041188\n", "min 0.153852\n", "25% 0.229203\n", "50% 0.254315\n", "75% 0.278021\n", "max 0.371032\n", "dtype: float64\n", "\n", "highest coverage in sample:\n", "31 lantanoides_D15_Beartown_2\n", "Name: taxa, dtype: object\n" ] } ], "source": [ "## read in the s3 results\n", "s3dat = pd.read_table(\"empirical_1/fullrun/stats/s3.clusters.txt\", header=0, nrows=66)\n", "\n", "## print summary stats\n", "print \"summary of means\\n==================\"\n", "print s3dat['dpt.me'].describe()\n", "\n", "## print summary stats\n", "print \"\\nsummary of std\\n==================\"\n", "print s3dat['dpt.sd'].describe()\n", "\n", "## print summary stats\n", "print \"\\nsummary of proportion hidepth\\n==================\"\n", "print pd.Series(1-s3dat['d>5.tot']/s3dat[\"total\"]).describe()\n", "\n", "## find which sample has the greatest depth of retained loci\n", "max_hiprop = (s3dat[\"d>5.tot\"]/s3dat[\"total\"]).max()\n", "print \"\\nhighest coverage in sample:\"\n", "print s3dat['taxa'][s3dat['d>5.tot']/s3dat[\"total\"]==max_hiprop]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "32.3991013699 199.423257009\n" ] } ], "source": [ "## print mean and std of coverage for the highest coverage sample\n", "with open(\"empirical_1/fullrun/clust.85/lantanoides_D15_Beartown_2.depths\", 'rb') as indat:\n", " depths = np.array(indat.read().strip().split(\",\"), dtype=int)\n", " \n", "print depths.mean(), depths.std()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/html": [ "
0102030Depth of coverage (N reads)010002000300040005000N locidataset1/sample=sulcatum_D9_MEX_003
  • Save as .csv
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import toyplot\n", "import toyplot.svg\n", "import numpy as np\n", "\n", "## read in the depth information for this sample\n", "with open(\"empirical_1/fullrun/clust.85/lantanoides_D15_Beartown_2.depths\", 'rb') as indat:\n", " depths = np.array(indat.read().strip().split(\",\"), dtype=int)\n", " \n", "## make a barplot in Toyplot\n", "canvas = toyplot.Canvas(width=350, height=300)\n", "axes = canvas.axes(xlabel=\"Depth of coverage (N reads)\", \n", " ylabel=\"N loci\",\n", " label=\"dataset1/sample=sulcatum_D9_MEX_003\")\n", "\n", "## select the loci with depth > 5 (kept)\n", "keeps = depths[depths>5]\n", "\n", "## plot kept and discarded loci\n", "edat = np.histogram(depths, range(30)) # density=True)\n", "kdat = np.histogram(keeps, range(30)) #, density=True)\n", "axes.bars(edat)\n", "axes.bars(kdat)\n", "\n", "#toyplot.svg.render(canvas, \"empirical_1_full_depthplot.svg\")" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "\r\n", "144161 ## loci with > minsp containing data\r\n", "143948 ## loci with > minsp containing data & paralogs removed\r\n", "143948 ## loci with > minsp containing data & paralogs removed & final filtering\r\n", "\r\n", "## number of loci recovered in final data set for each taxon.\r\n", "taxon\tnloci\r\n", "Lib1_acerfolium_ELS88 \t41968\r\n", "Lib1_acutifolium_DRY3_MEX_006 \t31990\r\n", "Lib1_amplificatum_D3_SAN_156003\t24211\r\n", "Lib1_anamensis_C6_PWS_2094 \t10955\r\n", "Lib1_beccarii_combinedX \t26054\r\n", "Lib1_betulifolium \t23739\r\n", "Lib1_bitchuense_combined \t19268\r\n", "Lib1_carlesii_D1_BP_001 \t42273\r\n", "Lib1_cassinoides_ELS2 \t25549\r\n", "Lib1_cinnamomifolium_PWS2105X \t29976\r\n", "Lib1_clemensiae_DRY6_PWS_2135 \t31519\r\n", "Lib1_coriaceum_combined \t26857\r\n", "Lib1_cylindricum_DRY1_WC_268 \t32747\r\n", "Lib1_davidii_D32_WC_269 \t37651\r\n", "Lib1_dentatum_ELS4 \t40230\r\n", "Lib1_dilatatum_ELS45 \t37037\r\n", "Lib1_erosum_D23_MJDJP_4 \t28689\r\n", "Lib1_erubescens_RCW36 \t22413\r\n", "Lib1_farreri_RCW21 \t27313\r\n", "Lib1_foetens_ERAD10 \t11437\r\n", "Lib1_foetidum_D24_KFC_1942 \t39936\r\n", "Lib1_formosanum_C7_JH_2007 \t3797\r\n", "Lib1_furcatum_combined \t21882\r\n", "Lib1_glaberrimum_D34_PWS_2323 \t27587\r\n", "Lib1_grandiflorum_ERAD11_Wendy \t12655\r\n", "Lib1_hanceanum_D4_PWS_2195 \t28252\r\n", "Lib1_henryi_D22_WC_272 \t16184\r\n", "Lib1_integrifolium_D25_KFC_1946\t34016\r\n", "Lib1_jamesonii_D12_PWS_1636 \t29455\r\n", "Lib1_japonicum_D26_WC_273 \t46474\r\n", "Lib1_lantana_combined \t25166\r\n", "Lib1_lantanoides_D15_Beartown_2\t36966\r\n", "Lib1_lentago_ELS85 \t25759\r\n", "Lib1_lutescens_D35_PWS_2077 \t31943\r\n", "Lib1_luzonicum_D27_9M_2005 \t35934\r\n", "Lib1_macrocephalum_D2_WC_284 \t27360\r\n", "Lib1_muhalla_D28_WC_274 \t39682\r\n", "Lib1_nervosum_C4_PWS_2298 \t22191\r\n", "Lib1_odoratissimum_combined \t17368\r\n", "Lib1_opulus_D6_WC_250 \t26534\r\n", "Lib1_orientale_DRY2_MJD_GEORGIA\t36299\r\n", "Lib1_parvifolium_D29_KFC_1953 \t46443\r\n", "Lib1_plicatum_C1_MJDJP_12 \t21943\r\n", "Lib1_propinquum_DRY4_WC_276 \t35837\r\n", "Lib1_prunifolium_ELS57 \t29395\r\n", "Lib1_punctatum_D19_PWS_2097 \t35392\r\n", "Lib1_recognitum_AA_1471_83B \t27517\r\n", "Lib1_rhytidophyllum \t26189\r\n", "Lib1_rufidulum_ELS25 \t22054\r\n", "Lib1_sambucina_D20_PWS_2100 \t31266\r\n", "Lib1_sargentii_RCW19 \t21166\r\n", "Lib1_sempervirens_combined \t20609\r\n", "Lib1_setigerum \t38816\r\n", "Lib1_sieboldii_AA_616_6B \t15182\r\n", "Lib1_sulcatum_D9_MEX_003 \t26087\r\n", "Lib1_suspensum_C5_MJD_111711 \t24471\r\n", "Lib1_sympodiale_D18_KFC_1932 \t37477\r\n", "Lib1_taiwanianum_TW1_KFC_1952 \t25293\r\n", "Lib1_tashiori_D30_TET_YAH \t40603\r\n", "Lib1_tinus_D33_WC_277 \t35049\r\n", "Lib1_triphyllum_D13_PWS_1783 \t29055\r\n", "Lib1_urceolatum_MJD_Japan_8 \t18009\r\n", "Lib1_veitchii \t26094\r\n", "Lib1_vernicosum_D21_PWS_2123 \t31675\r\n", "Lib1_wrightii_D31_MJDJP_1 \t36417\r\n", "\r\n", "\r\n", "## nloci = number of loci with data for exactly ntaxa\r\n", "## ntotal = number of loci for which at least ntaxa have data\r\n", "ntaxa\tnloci\tsaved\tntotal\r\n", "1\t-\r\n", "2\t-\t\t-\r\n", "3\t-\t\t-\r\n", "4\t24191\t*\t143948\r\n", "5\t15346\t*\t119757\r\n", "6\t10842\t*\t104411\r\n", "7\t8551\t*\t93569\r\n", "8\t6854\t*\t85018\r\n", "9\t5781\t*\t78164\r\n", "10\t5066\t*\t72383\r\n", "11\t4729\t*\t67317\r\n", "12\t4282\t*\t62588\r\n", "13\t4017\t*\t58306\r\n", "14\t3664\t*\t54289\r\n", "15\t3495\t*\t50625\r\n", "16\t3397\t*\t47130\r\n", "17\t3251\t*\t43733\r\n", "18\t3065\t*\t40482\r\n", "19\t2990\t*\t37417\r\n", "20\t2911\t*\t34427\r\n", "21\t2880\t*\t31516\r\n", "22\t2732\t*\t28636\r\n", "23\t2665\t*\t25904\r\n", "24\t2697\t*\t23239\r\n", "25\t2444\t*\t20542\r\n", "26\t2379\t*\t18098\r\n", "27\t2131\t*\t15719\r\n", "28\t2087\t*\t13588\r\n", "29\t1897\t*\t11501\r\n", "30\t1686\t*\t9604\r\n", "31\t1503\t*\t7918\r\n", "32\t1299\t*\t6415\r\n", "33\t1106\t*\t5116\r\n", "34\t948\t*\t4010\r\n", "35\t748\t*\t3062\r\n", "36\t602\t*\t2314\r\n", "37\t473\t*\t1712\r\n", "38\t335\t*\t1239\r\n", "39\t242\t*\t904\r\n", "40\t185\t*\t662\r\n", "41\t122\t*\t477\r\n", "42\t98\t*\t355\r\n", "43\t52\t*\t257\r\n", "44\t47\t*\t205\r\n", "45\t30\t*\t158\r\n", "46\t22\t*\t128\r\n", "47\t15\t*\t106\r\n", "48\t11\t*\t91\r\n", "49\t9\t*\t80\r\n", "50\t10\t*\t71\r\n", "51\t7\t*\t61\r\n", "52\t9\t*\t54\r\n", "53\t6\t*\t45\r\n", "54\t10\t*\t39\r\n", "55\t5\t*\t29\r\n", "56\t4\t*\t24\r\n", "57\t4\t*\t20\r\n", "58\t5\t*\t16\r\n", "59\t3\t*\t11\r\n", "60\t2\t*\t8\r\n", "61\t3\t*\t6\r\n", "62\t1\t*\t3\r\n", "63\t0\t*\t2\r\n", "64\t2\t*\t2\r\n", "\r\n", "\r\n", "## nvar = number of loci containing n variable sites (pis+autapomorphies).\r\n", "## sumvar = sum of variable sites (SNPs).\r\n", "## pis = number of loci containing n parsimony informative sites.\r\n", "## sumpis = sum of parsimony informative sites.\r\n", "\tnvar\tsumvar\tPIS\tsumPIS\r\n", "0\t858\t0\t15884\t0\r\n", "1\t1602\t1602\t14623\t14623\r\n", "2\t2305\t6212\t13691\t42005\r\n", "3\t2953\t15071\t13104\t81317\r\n", "4\t3553\t29283\t12290\t130477\r\n", "5\t4163\t50098\t11363\t187292\r\n", "6\t4625\t77848\t10732\t251684\r\n", "7\t5057\t113247\t9733\t319815\r\n", "8\t5622\t158223\t8394\t386967\r\n", "9\t6085\t212988\t7230\t452037\r\n", "10\t6286\t275848\t6313\t515167\r\n", "11\t6314\t345302\t5023\t570420\r\n", "12\t6641\t424994\t4204\t620868\r\n", "13\t6842\t513940\t3229\t662845\r\n", "14\t6621\t606634\t2371\t696039\r\n", "15\t6566\t705124\t1787\t722844\r\n", "16\t6379\t807188\t1304\t743708\r\n", "17\t6125\t911313\t925\t759433\r\n", "18\t6037\t1019979\t616\t770521\r\n", "19\t5562\t1125657\t442\t778919\r\n", "20\t5251\t1230677\t250\t783919\r\n", "21\t4906\t1333703\t165\t787384\r\n", "22\t4581\t1434485\t112\t789848\r\n", "23\t4113\t1529084\t61\t791251\r\n", "24\t3708\t1618076\t49\t792427\r\n", "25\t3271\t1699851\t24\t793027\r\n", "26\t2950\t1776551\t8\t793235\r\n", "27\t2533\t1844942\t12\t793559\r\n", "28\t2263\t1908306\t2\t793615\r\n", "29\t1992\t1966074\t1\t793644\r\n", "30\t1662\t2015934\t3\t793734\r\n", "31\t1343\t2057567\t3\t793827\r\n", "32\t1144\t2094175\t0\t793827\r\n", "33\t935\t2125030\t0\t793827\r\n", "34\t731\t2149884\t0\t793827\r\n", "35\t556\t2169344\t0\t793827\r\n", "36\t502\t2187416\t0\t793827\r\n", "37\t347\t2200255\t0\t793827\r\n", "38\t295\t2211465\t0\t793827\r\n", "39\t208\t2219577\t0\t793827\r\n", "40\t128\t2224697\t0\t793827\r\n", "41\t98\t2228715\t0\t793827\r\n", "42\t64\t2231403\t0\t793827\r\n", "43\t53\t2233682\t0\t793827\r\n", "44\t46\t2235706\t0\t793827\r\n", "45\t21\t2236651\t0\t793827\r\n", "46\t16\t2237387\t0\t793827\r\n", "47\t10\t2237857\t0\t793827\r\n", "48\t12\t2238433\t0\t793827\r\n", "49\t9\t2238874\t0\t793827\r\n", "50\t0\t2238874\t0\t793827\r\n", "51\t2\t2238976\t0\t793827\r\n", "52\t2\t2239080\t0\t793827\r\n", "total var= 2239080\r\n", "total pis= 793827\r\n", "sampled unlinked SNPs= 143090\r\n", "sampled unlinked bi-allelic SNPs= 142267\r\n" ] } ], "source": [ "cat empirical_1/halfrun/stats/empirical_1_half_m4.stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### get average number of loci per sample" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "28605.4615385\n", "8731.83305115\n" ] } ], "source": [ "import numpy as np\n", "indat = open(\"empirical_1/halfrun/stats/empirical_1_half_m4.stats\").readlines()\n", "counts = [int(i.strip().split(\"\\t\")[1]) for i in indat[8:73]]\n", "print np.mean(counts)\n", "print np.std(counts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### get average number of samples with data for a locus" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "12.9168519187\n", "9.09974422662\n" ] } ], "source": [ "import numpy as np\n", "import itertools\n", "indat = open(\"empirical_1/halfrun/stats/empirical_1_half_m4.stats\").readlines()\n", "counts = [i.strip().split(\"\\t\") for i in indat[81:142]]\n", "#print counts\n", "ntax = [int(i[0]) for i in counts]\n", "ncounts = [int(i[1]) for i in counts]\n", "tots = list(itertools.chain(*[[i]*n for i,n in zip(ntax, ncounts)]))\n", "print np.mean(tots)\n", "print np.std(tots)" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "\r\n", "199691 ## loci with > minsp containing data\r\n", "199094 ## loci with > minsp containing data & paralogs removed\r\n", "199094 ## loci with > minsp containing data & paralogs removed & final filtering\r\n", "\r\n", "## number of loci recovered in final data set for each taxon.\r\n", "taxon\tnloci\r\n", "acerfolium_ELS88 \t59188\r\n", "acutifolium_DRY3_MEX_006 \t52932\r\n", "amplificatum_D3_SAN_156003\t38141\r\n", "anamensis_C6_PWS_2094 \t20597\r\n", "beccarii_combinedX \t41837\r\n", "betulifolium \t39533\r\n", "bitchuense_combined \t34338\r\n", "carlesii_D1_BP_001 \t58449\r\n", "cassinoides_ELS2 \t40767\r\n", "cinnamomifolium_PWS2105X \t47043\r\n", "clemensiae_DRY6_PWS_2135 \t45144\r\n", "coriaceum_combined \t43822\r\n", "cylindricum_DRY1_WC_268 \t50762\r\n", "davidii_D32_WC_269 \t53023\r\n", "dentatum_ELS4 \t59443\r\n", "dilatatum_ELS45 \t57384\r\n", "erosum_D23_MJDJP_4 \t47927\r\n", "erubescens_RCW36 \t39132\r\n", "farreri_RCW21 \t44604\r\n", "foetens_ERAD10 \t21914\r\n", "foetidum_D24_KFC_1942 \t60151\r\n", "formosanum_C7_JH_2007 \t7638\r\n", "furcatum_combined \t37959\r\n", "glaberrimum_D34_PWS_2323 \t43979\r\n", "grandiflorum_ERAD11_Wendy \t24058\r\n", "hanceanum_D4_PWS_2195 \t45482\r\n", "henryi_D22_WC_272 \t29692\r\n", "integrifolium_D25_KFC_1946\t54254\r\n", "jamesonii_D12_PWS_1636 \t48113\r\n", "japonicum_D26_WC_273 \t64083\r\n", "lantana_combined \t42060\r\n", "lantanoides_D15_Beartown_2\t52090\r\n", "lentago_ELS85 \t42188\r\n", "lutescens_D35_PWS_2077 \t48126\r\n", "luzonicum_D27_9M_2005 \t54891\r\n", "macrocephalum_D2_WC_284 \t43983\r\n", "muhalla_D28_WC_274 \t57264\r\n", "nervosum_C4_PWS_2298 \t37230\r\n", "odoratissimum_combined \t31480\r\n", "opulus_D6_WC_250 \t41578\r\n", "orientale_DRY2_MJD_GEORGIA\t54201\r\n", "parvifolium_D29_KFC_1953 \t67338\r\n", "plicatum_C1_MJDJP_12 \t37339\r\n", "propinquum_DRY4_WC_276 \t51434\r\n", "prunifolium_ELS57 \t45913\r\n", "punctatum_D19_PWS_2097 \t49862\r\n", "recognitum_AA_1471_83B \t45155\r\n", "rhytidophyllum \t43744\r\n", "rufidulum_ELS25 \t36741\r\n", "sambucina_D20_PWS_2100 \t47901\r\n", "sargentii_RCW19 \t34723\r\n", "sempervirens_combined \t35475\r\n", "setigerum \t58325\r\n", "sieboldii_AA_616_6B \t27714\r\n", "sulcatum_D9_MEX_003 \t45500\r\n", "suspensum_C5_MJD_111711 \t41110\r\n", "sympodiale_D18_KFC_1932 \t54400\r\n", "taiwanianum_TW1_KFC_1952 \t41711\r\n", "tashiori_D30_TET_YAH \t58700\r\n", "tinus_D33_WC_277 \t50680\r\n", "triphyllum_D13_PWS_1783 \t47654\r\n", "urceolatum_MJD_Japan_8 \t31220\r\n", "veitchii \t43123\r\n", "vernicosum_D21_PWS_2123 \t48356\r\n", "wrightii_D31_MJDJP_1 \t55891\r\n", "\r\n", "\r\n", "## nloci = number of loci with data for exactly ntaxa\r\n", "## ntotal = number of loci for which at least ntaxa have data\r\n", "ntaxa\tnloci\tsaved\tntotal\r\n", "1\t-\r\n", "2\t-\t\t-\r\n", "3\t-\t\t-\r\n", "4\t40036\t*\t199094\r\n", "5\t23235\t*\t159058\r\n", "6\t15581\t*\t135823\r\n", "7\t11312\t*\t120242\r\n", "8\t8843\t*\t108930\r\n", "9\t7183\t*\t100087\r\n", "10\t5858\t*\t92904\r\n", "11\t5064\t*\t87046\r\n", "12\t4440\t*\t81982\r\n", "13\t4041\t*\t77542\r\n", "14\t3703\t*\t73501\r\n", "15\t3402\t*\t69798\r\n", "16\t3177\t*\t66396\r\n", "17\t3054\t*\t63219\r\n", "18\t2789\t*\t60165\r\n", "19\t2655\t*\t57376\r\n", "20\t2534\t*\t54721\r\n", "21\t2391\t*\t52187\r\n", "22\t2361\t*\t49796\r\n", "23\t2216\t*\t47435\r\n", "24\t2123\t*\t45219\r\n", "25\t2121\t*\t43096\r\n", "26\t2074\t*\t40975\r\n", "27\t2049\t*\t38901\r\n", "28\t2023\t*\t36852\r\n", "29\t1933\t*\t34829\r\n", "30\t2020\t*\t32896\r\n", "31\t1893\t*\t30876\r\n", "32\t1916\t*\t28983\r\n", "33\t1907\t*\t27067\r\n", "34\t1916\t*\t25160\r\n", "35\t1984\t*\t23244\r\n", "36\t1857\t*\t21260\r\n", "37\t1824\t*\t19403\r\n", "38\t1755\t*\t17579\r\n", "39\t1764\t*\t15824\r\n", "40\t1724\t*\t14060\r\n", "41\t1583\t*\t12336\r\n", "42\t1567\t*\t10753\r\n", "43\t1476\t*\t9186\r\n", "44\t1347\t*\t7710\r\n", "45\t1206\t*\t6363\r\n", "46\t1098\t*\t5157\r\n", "47\t959\t*\t4059\r\n", "48\t790\t*\t3100\r\n", "49\t683\t*\t2310\r\n", "50\t468\t*\t1627\r\n", "51\t383\t*\t1159\r\n", "52\t285\t*\t776\r\n", "53\t201\t*\t491\r\n", "54\t118\t*\t290\r\n", "55\t76\t*\t172\r\n", "56\t43\t*\t96\r\n", "57\t28\t*\t53\r\n", "58\t16\t*\t25\r\n", "59\t4\t*\t9\r\n", "60\t2\t*\t5\r\n", "61\t2\t*\t3\r\n", "62\t1\t*\t1\r\n", "\r\n", "\r\n", "## nvar = number of loci containing n variable sites (pis+autapomorphies).\r\n", "## sumvar = sum of variable sites (SNPs).\r\n", "## pis = number of loci containing n parsimony informative sites.\r\n", "## sumpis = sum of parsimony informative sites.\r\n", "\tnvar\tsumvar\tPIS\tsumPIS\r\n", "0\t2213\t0\t26451\t0\r\n", "1\t3244\t3244\t20005\t20005\r\n", "2\t4394\t12032\t17249\t54503\r\n", "3\t5198\t27626\t15381\t100646\r\n", "4\t5702\t50434\t14286\t157790\r\n", "5\t6188\t81374\t13036\t222970\r\n", "6\t6480\t120254\t11956\t294706\r\n", "7\t6940\t168834\t10930\t371216\r\n", "8\t7207\t226490\t10132\t452272\r\n", "9\t7473\t293747\t9442\t537250\r\n", "10\t7456\t368307\t8372\t620970\r\n", "11\t7756\t453623\t7508\t703558\r\n", "12\t7885\t548243\t6655\t783418\r\n", "13\t8098\t653517\t5735\t857973\r\n", "14\t7717\t761555\t4896\t926517\r\n", "15\t7699\t877040\t4029\t986952\r\n", "16\t7562\t998032\t3200\t1038152\r\n", "17\t7171\t1119939\t2719\t1084375\r\n", "18\t7081\t1247397\t2068\t1121599\r\n", "19\t6630\t1373367\t1555\t1151144\r\n", "20\t6291\t1499187\t1143\t1174004\r\n", "21\t5930\t1623717\t763\t1190027\r\n", "22\t5459\t1743815\t565\t1202457\r\n", "23\t5189\t1863162\t386\t1211335\r\n", "24\t4862\t1979850\t245\t1217215\r\n", "25\t4552\t2093650\t164\t1221315\r\n", "26\t4223\t2203448\t94\t1223759\r\n", "27\t3946\t2309990\t54\t1225217\r\n", "28\t3610\t2411070\t29\t1226029\r\n", "29\t3397\t2509583\t18\t1226551\r\n", "30\t3150\t2604083\t11\t1226881\r\n", "31\t2772\t2690015\t9\t1227160\r\n", "32\t2500\t2770015\t3\t1227256\r\n", "33\t2322\t2846641\t2\t1227322\r\n", "34\t2040\t2916001\t3\t1227424\r\n", "35\t1717\t2976096\t0\t1227424\r\n", "36\t1482\t3029448\t0\t1227424\r\n", "37\t1185\t3073293\t0\t1227424\r\n", "38\t997\t3111179\t0\t1227424\r\n", "39\t876\t3145343\t0\t1227424\r\n", "40\t642\t3171023\t0\t1227424\r\n", "41\t498\t3191441\t0\t1227424\r\n", "42\t394\t3207989\t0\t1227424\r\n", "43\t260\t3219169\t0\t1227424\r\n", "44\t224\t3229025\t0\t1227424\r\n", "45\t140\t3235325\t0\t1227424\r\n", "46\t124\t3241029\t0\t1227424\r\n", "47\t64\t3244037\t0\t1227424\r\n", "48\t46\t3246245\t0\t1227424\r\n", "49\t39\t3248156\t0\t1227424\r\n", "50\t28\t3249556\t0\t1227424\r\n", "51\t19\t3250525\t0\t1227424\r\n", "52\t8\t3250941\t0\t1227424\r\n", "53\t8\t3251365\t0\t1227424\r\n", "54\t2\t3251473\t0\t1227424\r\n", "55\t1\t3251528\t0\t1227424\r\n", "56\t1\t3251584\t0\t1227424\r\n", "57\t1\t3251641\t0\t1227424\r\n", "58\t1\t3251699\t0\t1227424\r\n", "total var= 3251699\r\n", "total pis= 1227424\r\n", "sampled unlinked SNPs= 196881\r\n", "sampled unlinked bi-allelic SNPs= 195117\r\n" ] } ], "source": [ "cat empirical_1/fullrun/stats/empirical_1_full_m4.stats" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "44638.7619048\n", "11037.958308\n" ] } ], "source": [ "import numpy as np\n", "indat = open(\"empirical_1/fullrun/stats/empirical_1_full_m4.stats\").readlines()\n", "counts = [int(i.strip().split(\"\\t\")[1]) for i in indat[8:73]]\n", "print np.mean(counts)\n", "print np.std(counts)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "14.6488040825\n", "12.690632427\n" ] } ], "source": [ "import numpy as np\n", "import itertools\n", "indat = open(\"empirical_1/fullrun/stats/empirical_1_full_m4.stats\").readlines()\n", "counts = [i.strip().split(\"\\t\") for i in indat[81:140]]\n", "#print counts\n", "ntax = [int(i[0]) for i in counts]\n", "ncounts = [int(i[1]) for i in counts]\n", "tots = list(itertools.chain(*[[i]*n for i,n in zip(ntax, ncounts)]))\n", "print np.mean(tots)\n", "print np.std(tots)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Infer an ML phylogeny" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "## raxml argumement w/ ...\n", "raxmlHPC-PTHREADS-AVX -f a -m GTRGAMMA -N 100 -x 12345 -p 12345 -T 35 \\\n", " -w /home/deren/Documents/RADmissing/empirical_1/halfrun \\\n", " -n empirical_1_halfrun -s empirical_1/halfrun/outfiles/empirical_1_half_m4.phy \\\n", " -o \"Lib1_clemensiae_DRY6_PWS_2135\"\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "raxmlHPC-PTHREADS-AVX -f a -m GTRGAMMA -N 100 -x 12345 -p 12345 -T 35 \\\n", " -w /home/deren/Documents/RADmissing/empirical_1/fullrun \\\n", " -n empirical_1_fullrun -s empirical_1/fullrun/outfiles/empirical_1_full_m4.phy \\\n", " -o \"clemensiae_DRY6_PWS_2135\"" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "This is RAxML version 8.0.0 released by Alexandros Stamatakis on Dec 13 2013.\n", "\n", "With greatly appreciated code contributions by:\n", "Andre Aberer (HITS)\n", "Simon Berger (HITS)\n", "Alexey Kozlov (HITS)\n", "Nick Pattengale (Sandia)\n", "Wayne Pfeiffer (SDSC)\n", "Akifumi S. Tanabe (NRIFS)\n", "David Dao (KIT)\n", "Charlie Taylor (UF)\n", "\n", "\n", "Alignment has 1010208 distinct alignment patterns\n", "\n", "Proportion of gaps and completely undetermined characters in this alignment: 80.36%\n", "\n", "RAxML rapid bootstrapping and subsequent ML search\n" ] } ], "source": [ "%%bash \n", "head -n 20 empirical_1/halfrun/RAxML_info.empirical_1_half_m4" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "This is RAxML version 8.0.0 released by Alexandros Stamatakis on Dec 13 2013.\n", "\n", "With greatly appreciated code contributions by:\n", "Andre Aberer (HITS)\n", "Simon Berger (HITS)\n", "Alexey Kozlov (HITS)\n", "Nick Pattengale (Sandia)\n", "Wayne Pfeiffer (SDSC)\n", "Akifumi S. Tanabe (NRIFS)\n", "David Dao (KIT)\n", "Charlie Taylor (UF)\n", "\n", "\n", "Alignment has 1035341 distinct alignment patterns\n", "\n", "Proportion of gaps and completely undetermined characters in this alignment: 77.64%\n", "\n", "RAxML rapid bootstrapping and subsequent ML search\n" ] } ], "source": [ "%%bash \n", "head -n 20 empirical_1/fullrun/RAxML_info.empirical_1_full_m4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the tree in R using `ape`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%load_ext rpy2.ipython" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nIMDV1XXRokWmpqbS0tIiIiKKioqwjB9g0ZbiAXSrGwUA7N27lyj8hAcOnm708+fPx48fv3fvHtz1\nxx9/WFpadnZ2jh8/PiEhITY2ljUYxLAEuUYRvWPYu0Z/KK5cufL06VNipV8miouL16xZc+/ePWJd\nJARimIHuCBHcaG5u/vLf9eDQQNbY2IgnQgzD2tvbGxsbOQ0iLCzMfTUe4luRm5tLLJbERHJyspOT\n0/nz51EWRAxv0B0hgiMFBQXzFi6aICvXn0EYXxgqMpPOnj07QEEhEAjEAIPuCBEc+fz5s/7CxZau\nf/RnkLbWTwke2wYqJAQCgRhw0IJ6BAKBQPzQoESIQCAQiB8alAgRPaWzo2PzPN0P9bV4y4eGun3W\nq9bpqPjZW7W2NHNpRPSB/vi1e0WvDNpsxdm1tbWrVq3S1dX19/cndubixQYAfPjwYf369bNmzZKR\nkQkMDCSekaenp5aWlqKiYkhICADg1q1b0tLS0I4dERGRmZlJoVCUlJSOH+/GdYBA9ASUCBE94jst\nzv5dA8Ux+CaNRjMzMxMUFBwx4t//2165ckVRUTE7O3vy5Mn9mQiute8J+fn5S5cuzcnJKSoqcnFx\nsbOz6+rqWrhwoYODQ2pqanAw+288ICAAmrKhwNPe3r6trY1CoZiammZnZxcVFR05cgTP5ampqYWF\nhXl5eWlpafCfAomJibdv3y4oKCgoKFi2bJm9vf3ly5evXr3KZeEHAtFzUCJE9IjvtDj7d02f/dpd\nXV179uyZN2+eoqIivH8iarWfPXvGJMtma9BOSkoyNDTU19dnMtSwirMvX74sIyNjZGQkISFRXV3N\neiJsvdiHDx82MzNbvnw5Dw+PsLBwWlra6NGjYX8REZGAgABeXt6ioqKZM2d2dHTcvn176dKlEhIS\nsbGx4eHhlpaWY8aMGTt2LPTUIBD9BL01iugRP0Jx9pCQkKdPn3LvU11d/ejRI1zpyQoPD4+enh6+\nyLLPKCsr99mv7efn19jYeOvWrdevX2tpae3du5eo1RYQECDKsjkZtO3s7JKTk7W1tZncZqzi7NjY\n2HHjxqmrq1dXV3t5eTElTsDBi33x4sXExES8j7q6Ov7Z0NCwvb09ODj47NmzcXFxr1+/XrFihZub\n29WrV11cXJSUlI4ePQoAePXq1dSpU/t5nREIgBIhop8Mp+Ls586d+/UP5iKuTGgCsIhrh1OHfS9c\n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\nT/ipY7udz4cGw7K0TI09n8LExARXRBKx2+cHP/S5EFIvzhOBQAx30B0hoo98hbsxJSUlVVXVvP/i\n6+vb7YGoEBITMTExuFoFALBhw4b4+HgdHR1YrwoHw7Dly5ez/cdHb2EdnAswnh52bm5uFhER0dPT\nU1ZWVlNTu3//PoZhnp6eWlpaioqKISEhAIDMzEwKhaKkpMRULURfX19HR0dXV1dFReWPP/4AAGhq\naqalpQEAMjIyJCQkYDc/Pz8vL6+ampq1a9dqaWnJysr6+fnhg7BOB/576Zhm5xQMYuiA7ggRfeQr\n3I3x8/MLCwtra2sTG0tKSsqL33A6ZKAKIQ0zcnNzjY2N8U0ajdbU1BQeHs5UzmLbtm1NTU29KmfB\nlqamJqZaGdyh0Wg9HxwWsoiJicEwLDo62s7Ozs/PDxaUePPmzYwZM1atWmVvb//gwYO6ujptbW0o\n0AEAdHR0vH//vri4GABQXl6urq7u7e2ND4uXsOjq6oqOjr53797q1au3bt1qZmZWU1MjLy8PrXKA\nUL8CTrdlyxbipaurqyPObm5uzjYYxJACJULEAPNt78bwmkeKmtqshZCIjQ8ePIiIiBjUYIYCAgIC\nK1eupNPp7u7ueCOJRPL394flLAoLC/fs2WNjY2NiYqKqqurg4MC0TjQpKenw4cNdXV3a2trHjh07\nefJkcnJyZWWlhobGiRMnHB0dW1paBAQESkpKyGRydXV1W1vb5s2biYOTyWR/f/9Tp061trYuWLAg\nIyPD29s7Kyurra1t7dq1W7ZsIZFI9+/fnz59uqGhIVQxREZGMk2Ex8NUyMLR0ZGpoER4eLilpeWY\nMWO+fPkCvW6QZ8+ewX9UvX///vjx40R5KSxh0d7e3tLScvXqVVjC4sWLF1VVVS0tLZMmTSovL8c7\nM00HACBeOqbZOQWDGFKgRIgYMIbI3ZiVm2eQyxa7OdpT1TWsdnmybfynsiI3Nzc3N3ewgxkKfPny\npc/lLAAAdnZ2ycnJ2tra0GxXVVV15swZeH8DONSdIJFIxMH3799PrFbBVCJj+fLlrNUwWCfCYS1k\nwVRQwtLS8ujRowCAV69eTZ06FT8wNzc3ISEhISHhp59+mjlz5smTJ/FdbEtYXLt2LTg4+M8//xQX\nF9+/f/+ECRNgZ6bpwH/rY6SlpRFnZ9ocqO8UMbCgRIgYMHp4N9bRNsCr6ftcCCk7O3vixGH+mJSH\n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\nFRUVZTKZQ9XvkSNHoqOju9cXLVpUXl4+sH0mJSVZWVlhGMZkMkNCQlRUVOLi4pYtW9bZ2VlSUiIg\nIPD69WsDAwMGg9Hc3CwlJUXe1sHBITY2lsFgrFixwt/fH8Mwd3d3/AWhpaVFTU0tOjqayWR++PBh\nypQpf/31F/Ep+Sx172j9+vVFRUV4SyaTqaqqWlhYWFdXJygoOLCDBV8IuCIEACGEEsKDD6xZ0v33\nP94xY4LTnvPwjSH/1CcxXQ4vxl8K/hIWbxpwPHdycvLs2bN37typqanp6emJELp48eLSpUu1tbU3\nbtyIEMJzuqlUKr74Q0NDg4GBQXt7u6amJp1O9/X1jY+P7+jo2Ldv37x58+Tl5YOCghBClZWVU6ZM\n0dTUzMnJWbNmDUKIwWDg2TSOjo42NjabNm0yMjLau3fv2rVrLSwsWI6FJWtbQEDA09OTg4OjsLBQ\nT0/v5s2bixcv5uPjGzNmjKCgIHlbGo0mKSm5cOHCdevWbd68mbw3wunTp83NzZcuXcrGxjZ27NjE\nxERi4QuWs8TSUXt7+/379xcvXiwiIhIeHt49ZBx8veBmGQAQQkhKQUlMUuqEvTVRwTCMdv+OuNQ0\n/Ke+SJ9TVnsOYBiGENKYPf+Sx+FXOU8za27z8PJ5btswYeKk2spydg6OPcsWIIQ4ubjIxYbaGiIa\nlIydnV1NTY2Tc+D/GXJycp44cWLA8dx4iKiXl1dpaekPP/zwyy+/VFRUREVF1dbWamhoVFVV5eXl\nhYSEjBs3Dk+Yc3d3379/f319vbi4uKam5rRp00JDQ48ePdrQ0HDv3r3Xr1+rq6ubmZlNmTIFH8bD\nhw/xBO0nT56oq6sjhLKzs4ODg5WVladPnx4VFcXFxSUvL08eUvesbUNDw7a2Nh8fn2vXrkVERMTF\nxaWnp1tbWwcEBJCTZdra2l68eOHs7FxVVaWsrIz/Bel0OnHIf/755/z582NiYq5evUpspaqqSu6d\nfJbY2NjIHb1+/XrZsmXOzs63bt1ycnKysrJiCRkHXy+4IgQAod5//+Ph40P//f0PITRJatrfr144\n+4dxcnL5JDycMl2uoa5GcabWucS0U9GJp6ITWYqXs1+G0Yq6/5sxe35nZ+dght3V1ZWXl9djPPfe\nvXu7x3N3nwjt7e0RQpycnKKiosXFxR0dHa6urlu2bJk7dy6NRsNzuqdMmVJbW/vixYuysrIFCxbg\n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\nQ3VOwKBgAID+mDBhgrn1xuiiysAk2szZ83jHjJ0kKb16l4uQqFh0UeXFx/kIoSV2W4NTn1o47Jw4\nZWrk8zdUKnW0R/0JDg4ON27cIFcaGxsNDQ3Jlbi4OFlZWVFRUSaTObKj65+WlhY1NbXo6Ggmk/nh\nw4cpU6aUlJSoq6snJyfX1taKi4sTLdva2uTl5fHXb968GTt2LIZhM2bMuH37NoZhpqamkpKSTCaz\nvb1dXl6+trZ23rx5sbGxTCazoqKCh4eH2E9cXNyyZcs6OztLSkoEBARqamqUlZXfv39fXFwsICDw\n+vVrAwMDBoPR3NwsJSWFb4LnGLi5uY3UWQF9gd8IARggHr4xe3yDuXh4EEKP7sRLyMghhPjGjmVn\nZ9eeR21vbdWYPe93f+/y4pctLS2vX78mb1tXV9fS0tLHzsXFxTk5R+g/TzExMTqd7urqSlQ0NTU9\nPDzwRO/8/Px9+/atW7fO1NRUWVl569atLIneFy9ejI2NLS8vnzFjhr+/v6qqqqGhYXNzMz8/f0hI\nCPnTCxcuODo6Njc38/DwvHr1SktLq7KysrW1NSoq6vjx43fv3u3o6LCxsVm3bh3LTv7444/Tp093\ndnZqaGicO3dOU1OTTqffvHmTXCTGc/r0aXNz86VLlyKExo4dm5iYmJSUJCkpOWvWLIRQZeW/dwLn\n5uZqaGgghN69e+fv70+OpqPRaJMmTWpra2tubsav50RERIqKiioqKpqbmydPnlxaWko0FhAQ8PT0\n5ODgKCws1NPTO3/+vJWV1fjx47u6unh4eG7evLl48WI+Pj4mkykoKIgQys7OzsjIoFAo+vqsSX5g\nVMBECMAA/eZ9ormx0eHo6ZaPH37387bcugsh9Oe1K/wCghcOu0opKv/9smjseIG7URE8kyTtXdw+\nf8/11ZVPUpKGbeCspkyZws3NPbBEbwzDKioqoqKiamtrNTQ0tmzZwsXFdf78+aamJvxii/wp6iWb\nmyXam0KhkHeC/hsajg+PjY2NXCQPKSYm5urVq8RbVVXVffv2TZw4UVVVtbKy0t3dnYigo9FokZGR\nkZGRnJycenp6Fy9eJLY6derU8ePHXV1dGxoafv311/DwcITQ7du3fXx8zpw5IywsfPjw4UmTJuGN\nDQ0N29rafHx8rl27FhERYWVl5evrixAqKSmRlZVlY2NLT0+3trYOCAgQEhLKz89PSUnZs2ePrq7u\n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\nsbGxsrJySEgIQsjPz4+Pj4+4MR5/LoLIEOhvcPa9e/ckJCTwfoOCggZ5mODLggEAhtqxY8cOhkRG\nF1US/xBCIWnPiLchac9UKfoTxCZpz6NeznrRY3HPryFnz57tV78ODg43btwgVxobGw0NDcmVuLg4\nWVlZUVFRJpNJri9atKi8vHzAhzxUkpKSrKysMAxjMpl4VFtcXNyyZcs6OztLSkoEBASIlp2dnYsW\nLcrNzcXfvn792sDAgMFgNDc3S0lJYRhmZWU1ZcqU6upqDMNaWlp0dHRUVVWJzVl2W1NTo6ys/P79\n++Li4u5vMQxbv359UVHRCJ4JMHLgZhkAhkVBVuZH0hr0TmfPF2RlkhtQV1rhL56mPeyxWJzzrIbZ\nQo6Q7puent6AQ7QRQpWVle/evdu7dy+Rap2cnGxpadnV1fXq1SsKhRIUFPR/7d1NSJSLHsfxLFx4\nsEQk2kgIErpIWliSBBJBL2RKVEQgJC6yNlIgllQECZKFuhC0TdGLtKtAijxRkRC6GSOyhRs1KSrp\nBeW4SIKcsxjwylzOvXlucO/t//msZpjHeUZn8WUG/D2L97Lr6uoWL2JfvXp148aNQ0NDra2tz549\nm5ubq6mpqaioWOpM9sK8dUZGxoEDBxoaGtIWrheOTNuw7uvr27t3b1ZW1vz8fGrD5eXLl9XV1ZOT\nk2vWrOnp6SkrK/vjj3+8I0sazv727duTJ08GBwc/ffrU2dl5+PDhH3xT+L8ghPDzVVZWrvj992Vz\n0//imImJiR/5hu369es/eNJjx459/vz5741opybEnj59unjVesWKFXfu3EkkEm1tbV1dXWl72WVl\nZYsXsVOna2tre/v27ePHj6enp2tra79//77UmexEItHU1JS6PTU1tW7durSF69RD/7xhnZGRMTg4\nWFtbe/ny5dzc3NnZ2czMzOLi4snJyaKiov7+/j179mRmZi4cv6Th7ImJif379zc3Nz948KCxsVEI\nfzFCCD/fhg0bNmz49xNr9fX1ubm5P+uk79+///Dhw8LdJY1opz6Hpa1aL1u2bGhoqLOzs7e397ff\nfkvby05bxE6d7tq1awMDA8uXL8/Ly7t///6+ffuWOpM9MjKy8Ke7e/duZWVl2sL1sr/YsK6pqbl1\n61ZxcXF5eXl5efnz589LS0sLCgpGR0cvXrx48uTJ3t7ehoaGheOXNJxdXFycuqhvdXX14s/c/CL+\n29/NAj9HT09Pa2vrwt0zZ8709/evXbv21atX8/PzDQ0NLS0tqYe2b9/+7t27xT97+vTpR48e5eXl\nTU9Pz87O5ufnj46ODgwMHDx48OvXr6ljsrOzx8fH5+fnjx8/3tLScuTIkRcvXiSTyY6Ojq6urtTp\nVq5cOT4+nkwmz50719fXl/aEiUTi6NGjyWTy9u3bFy5cSCaT7e3t3d3dCy/j48ePmzZtSt0eHBxc\nv379+Pj4li1b3rx5s/jVdnd3nz9/Pu3X7+jomJ2dnZub27Zt2+vXry9dunTlypWRkZGqqqqqqqpk\nMllSUjI3N5c6+MuXL2lPm5OTMzY2NjMzU1RUNDU1lXZ3x44do6OjyWSys7Pz1KlTf+8N4n+WT4Tw\ni/hPRrSHh4ebmpp27969sGq9evXq0tLSioqKQ4cO5eTk3LhxI20ve+vWrYsXsRsbG0+cONHe3r5r\n167CwsLCwsKdO3cufsIfmclOJBJjY2ObN29OJpP5+fkPHz68efNm2sL1X21Yp3KVnZ3d3NxcUFCQ\nSCTOnj1bUFBw79694eHhmZmZrKyshcvkLnU4u76+vq6ubtWqVSUlJS4x/+sxug1AaP6PEIDQhBCA\n0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQ\nhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCE\nEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQ\ngNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA\n0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQ\nhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCE\nEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0IQQgNCEEIDQhBCA0P4E\n/s92UeOTAlgAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%R -w 600 -h 1000\n", "library(ape)\n", "tre_half <- read.tree(\"empirical_1/halfrun/RAxML_bipartitions.empirical_1_halfrun\")\n", "#rtre <- root(tre, \"Lib1_clemensiae_DRY6_PWS_2135\", resolve.root=T)\n", "#rtre <- root(rtre, \"Lib1_clemensiae_DRY6_PWS_2135\", resolve.root=T)\n", "ltre_half <- ladderize(tre_half)\n", "plot(ltre_half, cex=0.8, edge.width=2)\n", "nodelabels(ltre_half$node.label)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "png \n", " 2 \n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%R -w 600 -h 1000\n", "library(ape)\n", "svg(\"outtree.svg\", height=11, width=8)\n", "tre_full <- read.tree(\"empirical_1/fullrun/RAxML_bipartitions.empirical_1_fullrun\")\n", "#rtre <- root(tre, \"Lib1_clemensiae_DRY6_PWS_2135\", resolve.root=T)\n", "#rtre <- root(rtre, \"Lib1_clemensiae_DRY6_PWS_2135\", resolve.root=T)\n", "ltre_full <- ladderize(tre_full)\n", "plot(ltre_full, cex=0.8, edge.width=3)\n", "#nodelabels(ltre_full$node.label)\n", "dev.off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## BUCKY -- write mrbayes nexus blocks for each locus\n", "The functions `nexmake` and `subsample` are used to split the .loci file into individual nexus files for each locus within a new directory. Each nexus file is given a mrbayes command to run. Then we run the bucky tool `mbsum` to summarize the mrbayes output, and finally run `bucky` to infer concordance trees from the posterior distributions of trees across all loci. \n", "\n", "Loci are selected on the basis that they have coverage across all tips of the selected subtree and that they contain at least 1 SNP. " ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def nexmake(taxadict, loc, nexdir, trim):\n", " outloc = open(nexdir+\"/\"+str(loc)+\".nex\", 'w')\n", " header = \"\"\"\n", "#NEXUS \n", "begin data;\n", "dimensions ntax={} nchar={};\n", "format datatype=dna interleave=yes missing=N gap=-;\n", "matrix\n", "\n", "\"\"\".format(len(taxadict), len(taxadict.values()[0]))\n", " outloc.write(header)\n", " \n", " for tax, seq in taxadict.items():\n", " outloc.write(\"{}{}{}\\n\"\\\n", " .format(tax[trim:trim+9],\n", " \" \"*(10-len(tax[0:9])),\n", " \"\".join(seq)))\n", " \n", " mbstring = \"\"\"\n", " ;\n", "end;\n", "begin mrbayes;\n", "set autoclose=yes nowarn=yes;\n", "lset nst=6 rates=gamma;\n", "mcmc ngen=2200000 samplefreq=2000;\n", "sump burnin=200000;\n", "sumt burnin=200000;\n", "end; \n", "\"\"\"\n", " outloc.write(mbstring)\n", " outloc.close()\n", " " ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def unstruct(amb):\n", " \" returns bases from ambiguity code\"\n", " D = {\"R\":[\"G\",\"A\"],\n", " \"K\":[\"G\",\"T\"],\n", " \"S\":[\"G\",\"C\"],\n", " \"Y\":[\"T\",\"C\"],\n", " \"W\":[\"T\",\"A\"],\n", " \"M\":[\"C\",\"A\"]}\n", " if amb in D:\n", " return D.get(amb)\n", " else:\n", " return [amb,amb]\n", " \n", "\n", "def resolveambig(subseq):\n", " N = []\n", " for col in subseq:\n", " N.append([unstruct(i)[np.random.binomial(1, 0.5)] for i in col])\n", " return np.array(N)\n", "\n", " \n", "def newPIS(seqsamp):\n", " counts = [Counter(col) for col in seqsamp.T if not (\"-\" in col or \"N\" in col)]\n", " pis = [i.most_common(2)[1][1] > 1 for i in counts if len(i.most_common(2))>1]\n", " if sum(pis) >= 2:\n", " return sum(pis)\n", " else:\n", " return 0 " ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def parseloci(iloci, taxadict, nexdir, trim=0):\n", " nloc = 0\n", " ## create subsampled data set\n", " for loc in iloci:\n", " ## if all tip samples have data in this locus\n", " names = [line.split()[0] for line in loc.split(\"\\n\")[:-1]]\n", "\n", " ## check that locus has required samples for each subtree\n", " if all([i in names for i in taxadict.values()]):\n", " seqs = np.array([list(line.split()[1]) for line in loc.split(\"\\n\")[:-1]])\n", " seqsamp = seqs[[names.index(tax) for tax in taxadict.values()]]\n", " seqsamp = resolveambig(seqsamp)\n", " pis = newPIS(seqsamp)\n", " if pis:\n", " nloc += 1\n", " ## remove invariable columns given this subsampling\n", " keep = []\n", " for n, col in enumerate(seqsamp.T):\n", " if all([i not in [\"N\",\"-\"] for i in col]):\n", " keep.append(n)\n", " subseq = seqsamp.T[keep].T\n", " ## write to a nexus file\n", " nexdict = dict(zip(taxadict.keys(), [i.tostring() for i in subseq]))\n", " nexmake(nexdict, nloc, nexdir, trim)\n", " print nloc, 'loci kept' " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Modify line endings of loci string for easier parsing" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "199094 loci\n", "143948 loci\n" ] } ], "source": [ "def getloci(locifile):\n", " ## parse the loci file by new line characters\n", " locifile = open(locifile)\n", " lines = locifile.readlines()\n", "\n", " ## add \"|\" to end of lines that contain \"|\"\n", " for idx in range(len(lines)):\n", " if \"|\" in lines[idx]:\n", " lines[idx] = lines[idx].strip()+\"|\\n\"\n", " \n", " ## join lines back together into one large string\n", " locistr = \"\".join(lines)\n", "\n", " ## break string into loci at the \"|\\n\" character\n", " loci = locistr.split(\"|\\n\")[:-1]\n", "\n", " ## how many loci?\n", " print len(loci), \"loci\"\n", " return loci\n", " \n", "## run on both files\n", "loci_full = getloci(\"empirical_1/fullrun/outfiles/empirical_1_full_m4.loci\")\n", "loci_half = getloci(\"empirical_1/halfrun/outfiles/empirical_1_half_m4.loci\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Make nexus files" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "744 loci kept\n", "71 loci kept\n" ] } ], "source": [ "parseloci(loci_full[:], deep_dict_f, \"deep_dict_full\", 0)\n", "parseloci(loci_half[:], deep_dict_h, \"deep_dict_half\", 0)\n", "#parseloci(loci[:], shallow_dict, \"shallow_dict\", 0)" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## create a parallel client\n", "ipclient = ipyparallel.Client()\n", "lview = ipclient.load_balanced_view()\n", "\n", "## call function across all engines\n", "def mrbayes(infile):\n", " import subprocess\n", " cmd = \"mb %s\" % infile\n", " subprocess.check_call(cmd, shell=True)" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 744/744 tasks finished after 3759 s\n", "done\n" ] } ], "source": [ "## submit all nexus files to run mb\n", "allnex = glob.glob(\"deep_dict_full/*.nex\")\n", "for nex in allnex:\n", " lview.apply(mrbayes, nex)\n", "\n", "ipclient.wait_interactive()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summarize posteriors with `mbsum`" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def mbsum(nexdir, nloci): \n", " import subprocess\n", " ## combine trees from the two replicate runs\n", " for n in range(1, nloci+1):\n", " cmd = \"mbsum -n 101 -o {}{}.in {}{}.nex.run1.t {}{}.nex.run2.t\".\\\n", " format(nexdir, n, nexdir, n, nexdir, n)\n", " subprocess.check_call(cmd, shell=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run Bucky to infer concordance factors" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "from collections import Counter\n", "\n", "\n", "def subsample(infile, requires, outgroup, nexdir, trim):\n", " \"\"\" sample n taxa from infile to create nex file\"\"\"\n", " ## counter\n", " loc = 0\n", " \n", " ## create output directory\n", " if not os.path.exists(nexdir):\n", " os.mkdir(nexdir)\n", " \n", " ## input .alleles file\n", " loci = open(infile, 'r').read().strip().split(\"//\")\n", " \n", " ## create a dictionary of {names:seqs}\n", " for locus in xrange(len(loci)):\n", " locnex = [\"\"]*len(requires)\n", " for line in loci[locus].strip().split(\"\\n\"):\n", " tax = line.split()[0]\n", " seq = line.split()[-1]\n", " if \">\" in tax:\n", " if tax in requires:\n", " locnex[requires.index(tax)] = seq\n", " ## if all tips\n", " if len([i for i in locnex if i]) == len(requires):\n", " ## if locus is variable\n", " ## count how many times each char occurs in each site\n", " ccs = [Counter(i) for i in np.array([list(i) for i in locnex]).T]\n", " ## remove N and - characters and the first most occurring base\n", " for i in ccs:\n", " del i['-']\n", " del i['N']\n", " if i:\n", " del i[i.most_common()[0][0]]\n", " \n", " ## is anything left occuring more than once (minor allele=ma)?\n", " ma = max([max(i.values()) if i else 0 for i in ccs])\n", " if ma > 1:\n", " nexmake(requires, locnex, loc, outgroup, nexdir, trim)\n", " loc += 1\n", " \n", " return loc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Subtree 1 (Oreinodentinus) (full data set)\n" ] }, { "cell_type": "code", "execution_count": 162, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3300\n" ] } ], "source": [ "## inputs\n", "requires = [\">triphyllum_D13_PWS_1783_0\", \n", " \">jamesonii_D12_PWS_1636_0\",\n", " \">sulcatum_D9_MEX_003_0\",\n", " \">acutifolium_DRY3_MEX_006_0\",\n", " \">dentatum_ELS4_0\",\n", " \">recognitum_AA_1471_83B_0\"]\n", "outgroup = \"\"\n", "infile = \"empirical_1/fullrun/outfiles/empirical_1_full_m4.alleles\"\n", "nexdir = \"nex_files1\"\n", "\n", "## run function\n", "nloci = subsample(infile, requires, outgroup, nexdir, trim=1)\n", "print nloci" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Subtree 1 (Oreinodentinus) (half data set)\n" ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "364\n" ] } ], "source": [ "## inputs\n", "requires = [\">Lib1_triphyllum_D13_PWS_1783_0\", \n", " \">Lib1_jamesonii_D12_PWS_1636_0\",\n", " \">Lib1_sulcatum_D9_MEX_003_0\",\n", " \">Lib1_acutifolium_DRY3_MEX_006_0\",\n", " \">Lib1_dentatum_ELS4_0\",\n", " \">Lib1_recognitum_AA_1471_83B_0\"]\n", "outgroup = \"\"\n", "infile = \"empirical_1/halfrun/outfiles/empirical_1_half_m4.alleles\"\n", "nexdir = \"nex_files2\"\n", "## run function\n", "\n", "nloci = subsample(infile, requires, outgroup, nexdir, trim=6)\n", "print nloci" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Subtree 2 (Urceolata) (full data set)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1203\n" ] } ], "source": [ "## inputs\n", "requires = [\">clemensiae_DRY6_PWS_2135_0\", \n", " \">tinus_D33_WC_277_0\",\n", " \">taiwanianum_TW1_KFC_1952_0\",\n", " \">lantanoides_D15_Beartown_2_0\",\n", " \">amplificatum_D3_SAN_156003_0\",\n", " \">lutescens_D35_PWS_2077_0\",\n", " \">lentago_ELS85_0\",\n", " \">dentatum_ELS4_0\"]\n", "outgroup = \"\"\n", "infile = \"empirical_1/fullrun/outfiles/empirical_1_full_m4.alleles\"\n", "nexdir = \"nex_files5\"\n", "\n", "## run function\n", "nloci = subsample(infile, requires, outgroup, nexdir, trim=1)\n", "print nloci" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Subtree 2 (Urceolata) (half data set)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "106\n" ] } ], "source": [ "## inputs\n", "requires = [\">Lib1_clemensiae_DRY6_PWS_2135_0\", \n", " \">Lib1_tinus_D33_WC_277_0\",\n", " \">Lib1_taiwanianum_TW1_KFC_1952_0\",\n", " \">Lib1_lantanoides_D15_Beartown_2_0\",\n", " \">Lib1_amplificatum_D3_SAN_156003_0\",\n", " \">Lib1_lutescens_D35_PWS_2077_0\",\n", " \">Lib1_lentago_ELS85_0\",\n", " \">Lib1_dentatum_ELS4_0\"]\n", "outgroup = \"\"\n", "infile = \"empirical_1/halfrun/outfiles/empirical_1_half_m4.alleles\"\n", "nexdir = \"nex_files6\"\n", "\n", "## run function\n", "nloci = subsample(infile, requires, outgroup, nexdir, trim=6)\n", "print nloci" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run mrbayes on all nex files" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import ipyparallel\n", "import subprocess\n", "import glob\n", "\n", "## create a parallel client\n", "ipclient = ipyparallel.Client()\n", "lview = ipclient.load_balanced_view()\n", "\n", "## call function across all engines\n", "def mrbayes(infile):\n", " import subprocess\n", " cmd = \"mb %s\" % infile\n", " subprocess.check_call(cmd, shell=True)" ] }, { "cell_type": "code", "execution_count": 164, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## run on the full data set\n", "res = lview.map_async(mrbayes, glob.glob(\"nex_files1/*\"))\n", "_ = res.get()\n", "\n", "## run on the half data set\n", "res = lview.map_async(mrbayes, glob.glob(\"nex_files2/*\"))\n", "_ = res.get()" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## run on the half data set\n", "res = lview.map_async(mrbayes, glob.glob(\"nex_files3/*\"))\n", "_ = res.get()\n", "\n", "## run on the half data set\n", "res = lview.map_async(mrbayes, glob.glob(\"nex_files4/*\"))\n", "_ = res.get()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## run on the half data set\n", "res = lview.map_async(mrbayes, glob.glob(\"nex_files5/*\"))\n", "_ = res.get()\n", "\n", "## run on the half data set\n", "res = lview.map_async(mrbayes, glob.glob(\"nex_files6/*\"))\n", "_ = res.get()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run mbsum to summarize the results" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import os\n", "import subprocess\n", "\n", "def mbsum(nexdir, nloci):\n", " ## create dir for bucky input files\n", " insdir = os.path.join(nexdir, \"ins\")\n", " if not os.path.exists(insdir): \n", " os.mkdir(insdir)\n", " \n", " ## combine trees from the two replicate runs\n", " for n in range(nloci):\n", " cmd = \"mbsum -n 101 -o {}/{}.in {}{}.nex.run1.t {}{}.nex.run2.t\".\\\n", " format(insdir, n, nexdir, n, nexdir, n)\n", " subprocess.check_call(cmd, shell=True)\n", " \n", "#mbsum(\"nex_files1/\", 3300)\n", "#mbsum(\"nex_files2/\", 364)\n", "#mbsum(\"nex_files3/\", 1692)\n", "#mbsum(\"nex_files4/\", 169)\n", "mbsum(\"nex_files5/\", 1203)\n", "mbsum(\"nex_files6/\", 106)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run Bucky" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['bucky --use-independence-prior -k 4 -n 500000 -o nex_files5/ins/BUCKY.ind nex_files5/ins/*.in',\n", " 'bucky -a 0.1 -k 4 -n 500000 -c 4 -o nex_files5/ins/BUCKY.0.1 nex_files5/ins/*.in',\n", " 'bucky -a 1 -k 4 -n 500000 -c 4 -o nex_files5/ins/BUCKY.1 nex_files5/ins/*.in',\n", " 'bucky -a 10 -k 4 -n 500000 -c 4 -o nex_files5/ins/BUCKY.10 nex_files5/ins/*.in',\n", " 'bucky --use-independence-prior -k 4 -n 500000 -o nex_files6/ins/BUCKY.ind nex_files6/ins/*.in',\n", " 'bucky -a 0.1 -k 4 -n 500000 -c 4 -o nex_files6/ins/BUCKY.0.1 nex_files6/ins/*.in',\n", " 'bucky -a 1 -k 4 -n 500000 -c 4 -o nex_files6/ins/BUCKY.1 nex_files6/ins/*.in',\n", " 'bucky -a 10 -k 4 -n 500000 -c 4 -o nex_files6/ins/BUCKY.10 nex_files6/ins/*.in']" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "args = []\n", "for insdir in [\"nex_files5/ins\", \"nex_files6/ins\"]:\n", " ## independence test\n", " args.append(\"bucky --use-independence-prior -k 4 -n 500000 \\\n", " -o {}/BUCKY.ind {}/*.in\".format(insdir, insdir)) \n", " ## alpha at three levels\n", " for alpha in [0.1, 1, 10]:\n", " args.append(\"bucky -a {} -k 4 -n 500000 -c 4 -o {}/BUCKY.{} {}/*.in\".\\\n", " format(alpha, insdir, alpha, insdir))\n", " \n", " \n", "def bucky(arg):\n", " import subprocess\n", " subprocess.check_call(arg, shell=True)\n", " return arg\n", " \n", "res = lview.map_async(bucky, args)\n", "res.get()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Cleanup" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "del lbview\n", "ipclient.close()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### check out the results" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "head: cannot open ‘nex_files1/ins/BUCKY.0.1.concordance’ for reading: No such file or directory\n" ] } ], "source": [ "%%bash\n", "head -n 40 nex_files1/ins/BUCKY.0.1.concordance\n" ] }, { "cell_type": "code", "execution_count": 186, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "translate\n", " 1 triphyllu,\n", " 2 jamesonii,\n", " 3 sulcatum_,\n", " 4 acutifoli,\n", " 5 dentatum_,\n", " 6 recognitu;\n", "\n", "Population Tree:\n", "(((1,2),(3,4)),5,6);\n", "\n", "Primary Concordance Tree Topology:\n", "(((1,2),(3,4)),5,6);\n", "\n", "Population Tree, With Branch Lengths In Estimated Coalescent Units:\n", "(((1:10.000,2:10.000):0.478,(3:10.000,4:10.000):0.156):0.840,5:10.000,6:10.000);\n", "\n", "Primary Concordance Tree with Sample Concordance Factors:\n", "(((1:1.000,2:1.000):0.562,(3:1.000,4:1.000):0.351):0.591,5:1.000,6:1.000);\n", "\n", "Four-way partitions in the Population Tree: sample-wide CF, coalescent units and Ties(if present)\n", "{1; 2|3,4; 5,6}\t0.586, 0.478, \n", "{1,2; 5,6|3; 4}\t0.429, 0.156, \n", "{1,2; 3,4|5; 6}\t0.712, 0.840, \n", "\n", "Splits in the Primary Concordance Tree: sample-wide and genome-wide mean CF (95% credibility), SD of mean sample-wide CF across runs\n", "{1,2,3,4|5,6} 0.591(0.562,0.621) 0.591(0.557,0.625)\t0.001\n", "{1,2|3,4,5,6} 0.562(0.533,0.586) 0.562(0.529,0.592)\t0.001\n", "{1,2,5,6|3,4} 0.351(0.320,0.383) 0.351(0.316,0.387)\t0.001\n", "\n", "Splits NOT in the Primary Concordance Tree but with estimated CF > 0.050:\n", "{1,2,4|3,5,6} 0.131(0.108,0.156) 0.131(0.105,0.159)\t0.001\n", "{1,2,3|4,5,6} 0.126(0.104,0.148) 0.126(0.101,0.151)\t0.000\n", "{1,4,5,6|2,3} 0.123(0.105,0.144) 0.123(0.102,0.147)\t0.000\n", "{1,3|2,4,5,6} 0.119(0.100,0.143) 0.119(0.097,0.145)\t0.002\n", "{1,3,5,6|2,4} 0.111(0.092,0.129) 0.111(0.090,0.132)\t0.001\n", "{1,4|2,3,5,6} 0.107(0.085,0.127) 0.107(0.083,0.130)\t0.000\n", "{1,5,6|2,3,4} 0.098(0.079,0.115) 0.098(0.077,0.118)\t0.001\n", "{1,3,4|2,5,6} 0.086(0.069,0.104) 0.086(0.067,0.107)\t0.000\n", "{1,2,4,5|3,6} 0.062(0.047,0.079) 0.063(0.045,0.082)\t0.001\n" ] } ], "source": [ "%%bash\n", "head -n 40 nex_files1/ins/BUCKY.1.concordance\n" ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "translate\n", " 1 _triphyll,\n", " 2 _jamesoni,\n", " 3 _sulcatum,\n", " 4 _acutifol,\n", " 5 _dentatum,\n", " 6 _recognit;\n", "\n", "Population Tree:\n", "((((1,2),3),4),5,6);\n", "\n", "Primary Concordance Tree Topology:\n", "(((1,2),(3,4)),5,6);\n", "\n", "Population Tree, With Branch Lengths In Estimated Coalescent Units:\n", "((((1:10.000,2:10.000):0.315,3:10.000):0.080,4:10.000):0.540,5:10.000,6:10.000);\n", "\n", "Primary Concordance Tree with Sample Concordance Factors:\n", "(((1:1.000,2:1.000):0.389,(3:1.000,4:1.000):0.293):0.378,5:1.000,6:1.000);\n", "\n", "Four-way partitions in the Population Tree: sample-wide CF, coalescent units and Ties(if present)\n", "{1; 2|3; 4,5,6}\t0.513, 0.315, \n", "{1,2,3; 4|5; 6}\t0.612, 0.540, \n", "{1,2; 3|4; 5,6}\t0.385, 0.080, \n", "\n", "Splits in the Primary Concordance Tree: sample-wide and genome-wide mean CF (95% credibility), SD of mean sample-wide CF across runs\n", "{1,2|3,4,5,6} 0.389(0.308,0.470) 0.389(0.295,0.484)\t0.003\n", "{1,2,3,4|5,6} 0.378(0.294,0.467) 0.377(0.280,0.480)\t0.002\n", "{1,2,5,6|3,4} 0.293(0.206,0.393) 0.292(0.196,0.402)\t0.006\n", "\n", "Splits NOT in the Primary Concordance Tree but with estimated CF > 0.050:\n", "{1,2,3|4,5,6} 0.192(0.107,0.277) 0.191(0.101,0.289)\t0.005\n", "{1,4,5,6|2,3} 0.188(0.129,0.253) 0.188(0.120,0.267)\t0.004\n", "{1,3,5,6|2,4} 0.137(0.082,0.198) 0.137(0.074,0.208)\t0.002\n", "{1,3|2,4,5,6} 0.121(0.066,0.203) 0.122(0.059,0.211)\t0.002\n", "{1,5,6|2,3,4} 0.117(0.066,0.181) 0.117(0.059,0.190)\t0.003\n", "{1,4|2,3,5,6} 0.109(0.060,0.165) 0.109(0.053,0.175)\t0.002\n", "{1,2,4|3,5,6} 0.109(0.058,0.181) 0.109(0.051,0.189)\t0.003\n", "{1,3,4|2,5,6} 0.101(0.055,0.162) 0.101(0.048,0.172)\t0.002\n", "{1,5|2,3,4,6} 0.089(0.047,0.137) 0.089(0.040,0.148)\t0.001\n" ] } ], "source": [ "%%bash\n", "head -n 40 nex_files2/ins/BUCKY.1.concordance\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "translate\r\n", " 1 clemensia,\r\n", " 2 davidii_D,\r\n", " 3 taiwanian,\r\n", " 4 lantanoid,\r\n", " 5 amplifica,\r\n", " 6 lutescens,\r\n", " 7 carlesii_,\r\n", " 8 dentatum_;\r\n", "\r\n", "Population Tree:\r\n", "((1,(3,(4,((5,6),7)))),2,8);\r\n", "\r\n", "Primary Concordance Tree Topology:\r\n", "((1,((3,4),((5,6),7))),2,8);\r\n", "\r\n", "Population Tree, With Branch Lengths In Estimated Coalescent Units:\r\n", "((1:10.000,(3:10.000,(4:10.000,((5:10.000,6:10.000):0.968,7:10.000):0.092):0.029):0.134):2.022,2:10.000,8:10.000);\r\n", "\r\n", "Primary Concordance Tree with Sample Concordance Factors:\r\n", "((1:1.000,((3:1.000,4:1.000):0.201,((5:1.000,6:1.000):0.660,7:1.000):0.175):0.181):0.877,2:1.000,8:1.000);\r\n", "\r\n", "Four-way partitions in the Population Tree: sample-wide CF, coalescent units and Ties(if present)\r\n", "{1,2,3,4,8; 7|5; 6}\t0.747, 0.968, \r\n", "{1; 3,4,5,6,7|2; 8}\t0.912, 2.022, \r\n", "{1; 2,8|3; 4,5,6,7}\t0.417, 0.134, \r\n", "{1,2,3,8; 4|5,6; 7}\t0.392, 0.092, \r\n", "{1,2,8; 3|4; 5,6,7}\t0.353, 0.029, \r\n", "\r\n", "Splits in the Primary Concordance Tree: sample-wide and genome-wide mean CF (95% credibility), SD of mean sample-wide CF across runs\r\n", "{1,3,4,5,6,7|2,8} 0.877(0.847,0.904) 0.877(0.842,0.908)\t0.010\r\n", "{1,2,3,4,7,8|5,6} 0.660(0.593,0.710) 0.660(0.590,0.715)\t0.022\r\n", "{1,2,5,6,7,8|3,4} 0.201(0.149,0.250) 0.201(0.146,0.255)\t0.008\r\n", "{1,2,8|3,4,5,6,7} 0.181(0.140,0.240) 0.181(0.136,0.244)\t0.015\r\n", "{1,2,3,4,8|5,6,7} 0.175(0.111,0.230) 0.175(0.109,0.233)\t0.014\r\n", "\r\n", "Splits NOT in the Primary Concordance Tree but with estimated CF > 0.050:\r\n", "{1,2,4,5,6,8|3,7} 0.140(0.096,0.205) 0.140(0.094,0.207)\t0.024\r\n", "{1,7|2,3,4,5,6,8} 0.137(0.067,0.194) 0.137(0.065,0.197)\t0.019\r\n", "{1,2,3,8|4,5,6,7} 0.136(0.088,0.184) 0.136(0.086,0.187)\t0.012\r\n", "{1,4|2,3,5,6,7,8} 0.132(0.089,0.181) 0.132(0.086,0.185)\t0.019\r\n", "{1,3,4,5,6|2,7,8} 0.131(0.061,0.194) 0.131(0.060,0.198)\t0.031\r\n", "{1,2,3,7,8|4,5,6} 0.124(0.053,0.175) 0.124(0.051,0.178)\t0.013\r\n", "{1,3|2,4,5,6,7,8} 0.122(0.082,0.183) 0.122(0.079,0.186)\t0.018\r\n", "{1,3,4|2,5,6,7,8} 0.120(0.046,0.196) 0.120(0.045,0.199)\t0.041\r\n" ] } ], "source": [ "! head -n 45 nex_files3/ins/BUCKY.0.1.concordance\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### FINAL BUCKY RESULTS (DEEP_SCALE)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "translate\r\n", " 1 clemensia,\r\n", " 2 davidii_D,\r\n", " 3 taiwanian,\r\n", " 4 lantanoid,\r\n", " 5 amplifica,\r\n", " 6 lutescens,\r\n", " 7 carlesii_,\r\n", " 8 dentatum_;\r\n", "\r\n", "Population Tree:\r\n", "((1,(3,((4,(5,6)),7))),2,8);\r\n", "\r\n", "Primary Concordance Tree Topology:\r\n", "((1,((3,(4,(5,6))),7)),2,8);\r\n", "\r\n", "Population Tree, With Branch Lengths In Estimated Coalescent Units:\r\n", "((1:10.000,(3:10.000,((4:10.000,(5:10.000,6:10.000):0.946):0.054,7:10.000):0.057):0.220):1.283,2:10.000,8:10.000);\r\n", "\r\n", "Primary Concordance Tree with Sample Concordance Factors:\r\n", "((1:1.000,((3:1.000,(4:1.000,(5:1.000,6:1.000):0.660):0.180):0.171,7:1.000):0.270):0.744,2:1.000,8:1.000);\r\n", "\r\n", "Four-way partitions in the Population Tree: sample-wide CF, coalescent units and Ties(if present)\r\n", "{1,2,3,7,8; 4|5; 6}\t0.741, 0.946, \r\n", "{1; 3,4,5,6,7|2; 8}\t0.815, 1.283, \r\n", "{1; 2,8|3; 4,5,6,7}\t0.465, 0.220, \r\n", "{1,2,3,8; 7|4; 5,6}\t0.368, 0.054, \r\n", "{1,2,8; 3|4,5,6; 7}\t0.370, 0.057, \r\n", "\r\n", "Splits in the Primary Concordance Tree: sample-wide and genome-wide mean CF (95% credibility), SD of mean sample-wide CF across runs\r\n", "{1,3,4,5,6,7|2,8} 0.744(0.621,0.834) 0.744(0.595,0.856)\t0.058\r\n", "{1,2,3,4,7,8|5,6} 0.660(0.485,0.805) 0.660(0.463,0.818)\t0.092\r\n", "{1,2,8|3,4,5,6,7} 0.270(0.160,0.402) 0.270(0.142,0.425)\t0.062\r\n", "{1,2,3,7,8|4,5,6} 0.180(0.083,0.325) 0.180(0.069,0.344)\t0.065\r\n", "{1,2,7,8|3,4,5,6} 0.171(0.065,0.320) 0.171(0.053,0.340)\t0.070\r\n", "\r\n", "Splits NOT in the Primary Concordance Tree but with estimated CF > 0.050:\r\n", "{1,4,5,6,7|2,3,8} 0.180(0.089,0.278) 0.180(0.077,0.297)\t0.031\r\n", "{1,4|2,3,5,6,7,8} 0.164(0.101,0.225) 0.164(0.083,0.252)\t0.010\r\n", "{1,4,7|2,3,5,6,8} 0.160(0.089,0.225) 0.159(0.076,0.249)\t0.013\r\n", "{1,3,4,5,6|2,7,8} 0.134(0.018,0.237) 0.134(0.018,0.257)\t0.053\r\n", "{1,2,3,4,8|5,6,7} 0.121(0.000,0.260) 0.121(0.000,0.271)\t0.068\r\n", "{1,2,3,8|4,5,6,7} 0.110(0.000,0.195) 0.110(0.000,0.212)\t0.033\r\n", "{1,3,4|2,5,6,7,8} 0.106(0.000,0.213) 0.106(0.000,0.234)\t0.071\r\n", "{1,2,3,4,6,8|5,7} 0.103(0.000,0.201) 0.103(0.000,0.220)\t0.024\r\n" ] } ], "source": [ "! head -n 45 nex_files4/ins/BUCKY.0.1.concordance\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "translate\r\n", " 1 clemensia,\r\n", " 2 tinus_D33,\r\n", " 3 taiwanian,\r\n", " 4 lantanoid,\r\n", " 5 amplifica,\r\n", " 6 lutescens,\r\n", " 7 lentago_E,\r\n", " 8 dentatum_;\r\n", "\r\n", "Population Tree:\r\n", "((1,((3,4),((5,6),7))),2,8);\r\n", "\r\n", "Primary Concordance Tree Topology:\r\n", "((1,((3,4),((5,6),7))),2,8);\r\n", "\r\n", "Population Tree, With Branch Lengths In Estimated Coalescent Units:\r\n", "((1:10.000,((3:10.000,4:10.000):0.067,((5:10.000,6:10.000):0.776,7:10.000):0.158):0.199):1.736,2:10.000,8:10.000);\r\n", "\r\n", "Primary Concordance Tree with Sample Concordance Factors:\r\n", "((1:1.000,((3:1.000,4:1.000):0.186,((5:1.000,6:1.000):0.619,7:1.000):0.181):0.228):0.844,2:1.000,8:1.000);\r\n", "\r\n", "Four-way partitions in the Population Tree: sample-wide CF, coalescent units and Ties(if present)\r\n", "{1; 3,4,5,6,7|2; 8}\t0.883, 1.736, \r\n", "{1,2,3,4,8; 7|5; 6}\t0.693, 0.776, \r\n", "{1; 2,8|3,4; 5,6,7}\t0.454, 0.199, \r\n", "{1,2,8; 3,4|5,6; 7}\t0.431, 0.158, \r\n", "{1,2,8; 5,6,7|3; 4}\t0.377, 0.067, \r\n", "\r\n", "Splits in the Primary Concordance Tree: sample-wide and genome-wide mean CF (95% credibility), SD of mean sample-wide CF across runs\r\n", "{1,3,4,5,6,7|2,8} 0.844(0.806,0.869) 0.844(0.801,0.877)\t0.007\r\n", "{1,2,3,4,7,8|5,6} 0.619(0.524,0.712) 0.619(0.518,0.719)\t0.056\r\n", "{1,2,8|3,4,5,6,7} 0.228(0.188,0.271) 0.228(0.182,0.278)\t0.012\r\n", "{1,2,5,6,7,8|3,4} 0.186(0.145,0.234) 0.186(0.140,0.240)\t0.011\r\n", "{1,2,3,4,8|5,6,7} 0.181(0.112,0.267) 0.181(0.108,0.272)\t0.047\r\n", "\r\n", "Splits NOT in the Primary Concordance Tree but with estimated CF > 0.050:\r\n", "{1,2,3,5,6,8|4,7} 0.166(0.111,0.220) 0.166(0.107,0.225)\t0.028\r\n", "{1,3|2,4,5,6,7,8} 0.165(0.113,0.229) 0.165(0.108,0.234)\t0.031\r\n", "{1,2,4,7,8|3,5,6} 0.128(0.076,0.186) 0.128(0.074,0.190)\t0.017\r\n", "{1,4|2,3,5,6,7,8} 0.124(0.062,0.180) 0.124(0.059,0.185)\t0.033\r\n", "{1,3,4,5,6|2,7,8} 0.121(0.076,0.171) 0.121(0.072,0.176)\t0.027\r\n", "{1,2,3,8|4,5,6,7} 0.119(0.082,0.171) 0.119(0.078,0.174)\t0.015\r\n", "{1,2,4,5,6,8|3,7} 0.112(0.072,0.162) 0.112(0.070,0.166)\t0.019\r\n", "{1,3,4,7|2,5,6,8} 0.088(0.055,0.141) 0.088(0.052,0.144)\t0.010\r\n" ] } ], "source": [ "! head -n 45 nex_files5/ins/BUCKY.0.1.concordance\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "translate\r\n", " 1 clemensia,\r\n", " 2 tinus_D33,\r\n", " 3 taiwanian,\r\n", " 4 lantanoid,\r\n", " 5 amplifica,\r\n", " 6 lutescens,\r\n", " 7 lentago_E,\r\n", " 8 dentatum_;\r\n", "\r\n", "Population Tree:\r\n", "((1,((3,4),((5,6),7))),2,8);\r\n", "\r\n", "Primary Concordance Tree Topology:\r\n", "((1,((3,4),((5,6),7))),2,8);\r\n", "\r\n", "Population Tree, With Branch Lengths In Estimated Coalescent Units:\r\n", "((1:10.000,((3:10.000,4:10.000):0.060,((5:10.000,6:10.000):0.654,7:10.000):0.279):0.385):1.135,2:10.000,8:10.000);\r\n", "\r\n", "Primary Concordance Tree with Sample Concordance Factors:\r\n", "((1:1.000,((3:1.000,4:1.000):0.164,((5:1.000,6:1.000):0.564,7:1.000):0.327):0.288):0.706,2:1.000,8:1.000);\r\n", "\r\n", "Four-way partitions in the Population Tree: sample-wide CF, coalescent units and Ties(if present)\r\n", "{1,2,3,4,8; 7|5; 6}\t0.653, 0.654, \r\n", "{1; 3,4,5,6,7|2; 8}\t0.786, 1.135, \r\n", "{1,2,8; 3,4|5,6; 7}\t0.496, 0.279, \r\n", "{1; 2,8|3,4; 5,6,7}\t0.547, 0.385, \r\n", "{1,2,8; 5,6,7|3; 4}\t0.372, 0.060, \r\n", "\r\n", "Splits in the Primary Concordance Tree: sample-wide and genome-wide mean CF (95% credibility), SD of mean sample-wide CF across runs\r\n", "{1,3,4,5,6,7|2,8} 0.706(0.594,0.849) 0.705(0.553,0.867)\t0.032\r\n", "{1,2,3,4,7,8|5,6} 0.564(0.434,0.708) 0.564(0.403,0.729)\t0.040\r\n", "{1,2,3,4,8|5,6,7} 0.327(0.170,0.481) 0.327(0.151,0.504)\t0.012\r\n", "{1,2,8|3,4,5,6,7} 0.288(0.104,0.453) 0.288(0.092,0.483)\t0.068\r\n", "{1,2,5,6,7,8|3,4} 0.164(0.000,0.321) 0.164(0.000,0.350)\t0.039\r\n", "\r\n", "Splits NOT in the Primary Concordance Tree but with estimated CF > 0.050:\r\n", "{1,4,5,6,7|2,3,8} 0.195(0.066,0.321) 0.195(0.054,0.353)\t0.037\r\n", "{1,2,3,7,8|4,5,6} 0.140(0.000,0.321) 0.139(0.000,0.343)\t0.041\r\n", "{1,2|3,4,5,6,7,8} 0.137(0.057,0.274) 0.137(0.038,0.285)\t0.032\r\n", "{1,2,4,8|3,5,6,7} 0.124(0.000,0.358) 0.124(0.000,0.367)\t0.088\r\n", "{1,2,3,4,5,8|6,7} 0.123(0.000,0.255) 0.123(0.000,0.273)\t0.036\r\n", "{1,2,3,4,6,8|5,7} 0.120(0.000,0.208) 0.120(0.000,0.239)\t0.038\r\n", "{1,2,3,5,6,8|4,7} 0.114(0.000,0.283) 0.114(0.000,0.298)\t0.054\r\n", "{1,4|2,3,5,6,7,8} 0.104(0.000,0.245) 0.104(0.000,0.269)\t0.036\r\n" ] } ], "source": [ "! head -n 45 nex_files6/ins/BUCKY.0.1.concordance\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get missing data percentatge for m2 data sets \n", "For this I start raxml to get the info and then quit. Kind of lazy but simpler than calculating it myself." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "## raxml argumement w/ ...\n", "raxmlHPC-PTHREADS-AVX -f a -m GTRGAMMA -N 100 -x 12345 -p 12345 -T 20 \\\n", " -w /home/deren/Documents/RADmissing/empirical_1/fullrun \\\n", " -n empirical_1_full_m2 -s empirical_1/fullrun/outfiles/empirical_1_m2.phy\n", " " ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "This is RAxML version 8.0.16 released by Alexandros Stamatakis on March 21 2014.\n", "\n", "With greatly appreciated code contributions by:\n", "Andre Aberer (HITS)\n", "Simon Berger (HITS)\n", "Alexey Kozlov (HITS)\n", "Nick Pattengale (Sandia)\n", "Wayne Pfeiffer (SDSC)\n", "Akifumi S. Tanabe (NRIFS)\n", "David Dao (KIT)\n", "Charlie Taylor (UF)\n", "\n", "\n", "Alignment has 502491 distinct alignment patterns\n", "\n", "Proportion of gaps and completely undetermined characters in this alignment: 88.66%\n", "\n", "RAxML rapid bootstrapping and subsequent ML search\n" ] } ], "source": [ "%%bash \n", "head -n 20 empirical_1/fullrun/RAxML_info.empirical_1_full_m2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get average phylo dist (GTRgamma dist)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1] 0.06114884\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%R\n", "mean(cophenetic.phylo(ltre))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 0 }