{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction to `DESeq2`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook serves as a tutorial for using the DESeq2 package. Please be sure to consult the excellent vignette provided by the DESeq2 package. Hopefully, we will also get a chance to review the edgeR package (which also has a very nice vignette which I suggest that you review)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load packages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load requisite R packages. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loading required package: S4Vectors\n", "Loading required package: stats4\n", "Loading required package: BiocGenerics\n", "Loading required package: parallel\n", "\n", "Attaching package: ‘BiocGenerics’\n", "\n", "The following objects are masked from ‘package:parallel’:\n", "\n", " clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,\n", " clusterExport, clusterMap, parApply, parCapply, parLapply,\n", " parLapplyLB, parRapply, parSapply, parSapplyLB\n", "\n", "The following objects are masked from ‘package:stats’:\n", "\n", " IQR, mad, xtabs\n", "\n", "The following objects are masked from ‘package:base’:\n", "\n", " anyDuplicated, append, as.data.frame, cbind, colnames, do.call,\n", " duplicated, eval, evalq, Filter, Find, get, grep, grepl, intersect,\n", " is.unsorted, lapply, lengths, Map, mapply, match, mget, order,\n", " paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind,\n", " Reduce, rownames, sapply, setdiff, sort, table, tapply, union,\n", " unique, unsplit, which, which.max, which.min\n", "\n", "\n", "Attaching package: ‘S4Vectors’\n", "\n", "The following objects are masked from ‘package:base’:\n", "\n", " colMeans, colSums, expand.grid, rowMeans, rowSums\n", "\n", "Loading required package: IRanges\n", "Loading required package: GenomicRanges\n", "Loading required package: GenomeInfoDb\n", "Loading required package: SummarizedExperiment\n", "Loading required package: Biobase\n", "Welcome to Bioconductor\n", "\n", " Vignettes contain introductory material; view with\n", " 'browseVignettes()'. To cite Bioconductor, see\n", " 'citation(\"Biobase\")', and for packages 'citation(\"pkgname\")'.\n", "\n", "\n", "Attaching package: ‘limma’\n", "\n", "The following object is masked from ‘package:DESeq2’:\n", "\n", " plotMA\n", "\n", "The following object is masked from ‘package:BiocGenerics’:\n", "\n", " plotMA\n", "\n", "\n", "Attaching package: ‘dplyr’\n", "\n", "The following object is masked from ‘package:Biobase’:\n", "\n", " combine\n", "\n", "The following objects are masked from ‘package:GenomicRanges’:\n", "\n", " intersect, setdiff, union\n", "\n", "The following object is masked from ‘package:GenomeInfoDb’:\n", "\n", " intersect\n", "\n", "The following objects are masked from ‘package:IRanges’:\n", "\n", " collapse, desc, intersect, regroup, setdiff, slice, union\n", "\n", "The following objects are masked from ‘package:S4Vectors’:\n", "\n", " first, intersect, rename, setdiff, setequal, union\n", "\n", "The following objects are masked from ‘package:BiocGenerics’:\n", "\n", " combine, intersect, setdiff, union\n", "\n", "The following objects are masked from ‘package:stats’:\n", "\n", " filter, lag\n", "\n", "The following objects are masked from ‘package:base’:\n", "\n", " intersect, setdiff, setequal, union\n", "\n" ] } ], "source": [ "library(DESeq2)\n", "library(tools)\n", "library(limma)\n", "library(qvalue)\n", "library(dplyr)\n", "options(width=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step to any analysis is to import the data into an analysis ready format. The latter depends on the requirements of the package used for the analysis. \n", "\n", "For this analysis, we will use the DESeq2::DESeqDataSetFromHTSeqCount. This function allows you to import count files generated by HTSeq directly into R. If you use a program other than HTSeq, you should use the DESeq2::DESeqDataSetFromMatrix function.\n", "\n", "Let's review the three main arguments of DESeq2::DESeqDataSetFromHTSeqCount: sampleTable, directory and design\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#? DESeqDataSetFromHTSeqCount" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First set the directory under which the HTSeq count files are stored" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "datadir<-\"/home/jovyan/work/2017-HTS-materials/Materials/Statistics/08032017/Data/2015\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, put the filenames into a data frame" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
fname
17A_E.csv
27A_G.csv
37A_K.csv
47A_N.csv
57A_P.csv
67B_E.csv
\n" ], "text/latex": [ "\\begin{tabular}{r|l}\n", " & fname\\\\\n", "\\hline\n", "\t1 & 7A\\_E.csv\\\\\n", "\t2 & 7A\\_G.csv\\\\\n", "\t3 & 7A\\_K.csv\\\\\n", "\t4 & 7A\\_N.csv\\\\\n", "\t5 & 7A\\_P.csv\\\\\n", "\t6 & 7B\\_E.csv\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " fname\n", "1 7A_E.csv\n", "2 7A_G.csv\n", "3 7A_K.csv\n", "4 7A_N.csv\n", "5 7A_P.csv\n", "6 7B_E.csv" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "phdata<-data.frame(fname=list.files(path=datadir,pattern=\"*.csv\"),stringsAsFactors=FALSE)\n", "head(phdata)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is always a good idea to check the dimension of the file you have read in" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 30
  2. \n", "\t
  3. 1
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 30\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 30\n", "2. 1\n", "\n", "\n" ], "text/plain": [ "[1] 30 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(phdata)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Extract the label from the filename. Why should one reorder columns? See DESeq2 help file" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
samplefname
17A_E 7A_E.csv
27A_G 7A_G.csv
37A_K 7A_K.csv
47A_N 7A_N.csv
57A_P 7A_P.csv
67B_E 7B_E.csv
\n" ], "text/latex": [ "\\begin{tabular}{r|ll}\n", " & sample & fname\\\\\n", "\\hline\n", "\t1 & 7A\\_E & 7A\\_E.csv\\\\\n", "\t2 & 7A\\_G & 7A\\_G.csv\\\\\n", "\t3 & 7A\\_K & 7A\\_K.csv\\\\\n", "\t4 & 7A\\_N & 7A\\_N.csv\\\\\n", "\t5 & 7A\\_P & 7A\\_P.csv\\\\\n", "\t6 & 7B\\_E & 7B\\_E.csv\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " sample fname\n", "1 7A_E 7A_E.csv\n", "2 7A_G 7A_G.csv\n", "3 7A_K 7A_K.csv\n", "4 7A_N 7A_N.csv\n", "5 7A_P 7A_P.csv\n", "6 7B_E 7B_E.csv" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "phdata <- phdata %>% transmute(sample=substr(fname,1,4),fname)\n", "head(phdata)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For any analysis, you should have a manifest file that maps the file names (containing the counts) to the phenotypic and experimental condition for the sample. This file should be validated and put under strict vesrion control.\n", "\n", "For this demonstration, we will reproduce this file by parsing the file names. This is meant to help us practice R programming.\n", "\n", "\n", "Add some design info to the data frame. We will add the treatment factor (the first character of the file name: 7 or 8), the replicate id (the second character of the file name)\n", "\n", "Note that tools::md5sum will add the MD5 signature for each of the HTSeq count files. You should keep track of these for the purpose of conducting reproducible analysis" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
samplefnametrtreplteammd5
17A_E 7A_E.csv 7 A E 263e8cd3d8bbb72fac8600de41b12e73
27A_G 7A_G.csv 7 A G 8e3447446c11b3cf33496de751a0e7b0
37A_K 7A_K.csv 7 A K f94f0cf208f73ea5492f95cd8dc32ab2
47A_N 7A_N.csv 7 A N 93596ed64b4c4495bbb95722f6a27415
57A_P 7A_P.csv 7 A P 913a10ca78999596ad51db1321511d71
67B_E 7B_E.csv 7 B E 51d8902b1dee08f1af3affe6510a87a5
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & sample & fname & trt & repl & team & md5\\\\\n", "\\hline\n", "\t1 & 7A\\_E & 7A\\_E.csv & 7 & A & E & 263e8cd3d8bbb72fac8600de41b12e73\\\\\n", "\t2 & 7A\\_G & 7A\\_G.csv & 7 & A & G & 8e3447446c11b3cf33496de751a0e7b0\\\\\n", "\t3 & 7A\\_K & 7A\\_K.csv & 7 & A & K & f94f0cf208f73ea5492f95cd8dc32ab2\\\\\n", "\t4 & 7A\\_N & 7A\\_N.csv & 7 & A & N & 93596ed64b4c4495bbb95722f6a27415\\\\\n", "\t5 & 7A\\_P & 7A\\_P.csv & 7 & A & P & 913a10ca78999596ad51db1321511d71\\\\\n", "\t6 & 7B\\_E & 7B\\_E.csv & 7 & B & E & 51d8902b1dee08f1af3affe6510a87a5\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " sample fname trt repl team md5\n", "1 7A_E 7A_E.csv 7 A E 263e8cd3d8bbb72fac8600de41b12e73\n", "2 7A_G 7A_G.csv 7 A G 8e3447446c11b3cf33496de751a0e7b0\n", "3 7A_K 7A_K.csv 7 A K f94f0cf208f73ea5492f95cd8dc32ab2\n", "4 7A_N 7A_N.csv 7 A N 93596ed64b4c4495bbb95722f6a27415\n", "5 7A_P 7A_P.csv 7 A P 913a10ca78999596ad51db1321511d71\n", "6 7B_E 7B_E.csv 7 B E 51d8902b1dee08f1af3affe6510a87a5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "phdata <- phdata %>% mutate(trt=as.factor(substr(sample,1,1)),\n", " repl=substr(sample,2,2),\n", " team=substr(sample,4,4),\n", " md5=tools::md5sum(file.path(datadir,fname)))\n", "head(phdata)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Q: Why did I convert the trt variable to a factor?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " For this analysis, we pick the data from team E" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
samplefnametrtreplteammd5
17A_E 7A_E.csv 7 A E 263e8cd3d8bbb72fac8600de41b12e73
27B_E 7B_E.csv 7 B E 51d8902b1dee08f1af3affe6510a87a5
37C_E 7C_E.csv 7 C E 49a549a26e58dd5c13bd931a794c0ec3
48A_E 8A_E.csv 8 A E edaaefaf7ddeb1119f29cf3d5682d4ed
58B_E 8B_E.csv 8 B E f7d52ce9ffc0e61d7e371d072ebc0a43
68C_E 8C_E.csv 8 C E 1e668998cb9947b80f3e813a7428bfb5
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & sample & fname & trt & repl & team & md5\\\\\n", "\\hline\n", "\t1 & 7A\\_E & 7A\\_E.csv & 7 & A & E & 263e8cd3d8bbb72fac8600de41b12e73\\\\\n", "\t2 & 7B\\_E & 7B\\_E.csv & 7 & B & E & 51d8902b1dee08f1af3affe6510a87a5\\\\\n", "\t3 & 7C\\_E & 7C\\_E.csv & 7 & C & E & 49a549a26e58dd5c13bd931a794c0ec3\\\\\n", "\t4 & 8A\\_E & 8A\\_E.csv & 8 & A & E & edaaefaf7ddeb1119f29cf3d5682d4ed\\\\\n", "\t5 & 8B\\_E & 8B\\_E.csv & 8 & B & E & f7d52ce9ffc0e61d7e371d072ebc0a43\\\\\n", "\t6 & 8C\\_E & 8C\\_E.csv & 8 & C & E & 1e668998cb9947b80f3e813a7428bfb5\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " sample fname trt repl team md5\n", "1 7A_E 7A_E.csv 7 A E 263e8cd3d8bbb72fac8600de41b12e73\n", "2 7B_E 7B_E.csv 7 B E 51d8902b1dee08f1af3affe6510a87a5\n", "3 7C_E 7C_E.csv 7 C E 49a549a26e58dd5c13bd931a794c0ec3\n", "4 8A_E 8A_E.csv 8 A E edaaefaf7ddeb1119f29cf3d5682d4ed\n", "5 8B_E 8B_E.csv 8 B E f7d52ce9ffc0e61d7e371d072ebc0a43\n", "6 8C_E 8C_E.csv 8 C E 1e668998cb9947b80f3e813a7428bfb5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "phdata<- phdata %>% filter(team==\"E\")\n", "phdata" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we import the counts. Note that the first argument is the sample table while the second is the directory storing the count files. The last argument specifies the design. More on this later." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dds<-DESeqDataSetFromHTSeqCount(sampleTable=phdata,directory=datadir,design=~ trt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspect object" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's has a look at the object we have created." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "class: DESeqDataSet \n", "dim: 4444 6 \n", "metadata(1): version\n", "assays(1): counts\n", "rownames(4444): gene0 gene1 ... gene998 gene999\n", "rowData names(0):\n", "colnames(6): 7A_E 7B_E ... 8B_E 8C_E\n", "colData names(4): trt repl team md5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that this object is of class DESeqDataSet. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "'DESeqDataSet'" ], "text/latex": [ "'DESeqDataSet'" ], "text/markdown": [ "'DESeqDataSet'" ], "text/plain": [ "[1] \"DESeqDataSet\"\n", "attr(,\"package\")\n", "[1] \"DESeq2\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "class(dds)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "The object dds has the following slots." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'design'
  2. \n", "\t
  3. 'dispersionFunction'
  4. \n", "\t
  5. 'rowRanges'
  6. \n", "\t
  7. 'colData'
  8. \n", "\t
  9. 'assays'
  10. \n", "\t
  11. 'NAMES'
  12. \n", "\t
  13. 'elementMetadata'
  14. \n", "\t
  15. 'metadata'
  16. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'design'\n", "\\item 'dispersionFunction'\n", "\\item 'rowRanges'\n", "\\item 'colData'\n", "\\item 'assays'\n", "\\item 'NAMES'\n", "\\item 'elementMetadata'\n", "\\item 'metadata'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'design'\n", "2. 'dispersionFunction'\n", "3. 'rowRanges'\n", "4. 'colData'\n", "5. 'assays'\n", "6. 'NAMES'\n", "7. 'elementMetadata'\n", "8. 'metadata'\n", "\n", "\n" ], "text/plain": [ "[1] \"design\" \"dispersionFunction\" \"rowRanges\" \"colData\" \n", "[5] \"assays\" \"NAMES\" \"elementMetadata\" \"metadata\" " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "slotNames(dds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get a slot use @" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "DataFrame with 6 rows and 4 columns\n", " trt repl team md5\n", " \n", "7A_E 7 A E 263e8cd3d8bbb72fac8600de41b12e73\n", "7B_E 7 B E 51d8902b1dee08f1af3affe6510a87a5\n", "7C_E 7 C E 49a549a26e58dd5c13bd931a794c0ec3\n", "8A_E 8 A E edaaefaf7ddeb1119f29cf3d5682d4ed\n", "8B_E 8 B E f7d52ce9ffc0e61d7e371d072ebc0a43\n", "8C_E 8 C E 1e668998cb9947b80f3e813a7428bfb5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds@colData" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the design" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "~trt" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds@design" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first thing you may want to do is to have a look at the raw counts you have imported. The DESeq2::counts function extracts a matrix of counts (with the genes along the rows and samples along the columns). Let us first verify the dimension of this matrix." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 4444
  2. \n", "\t
  3. 6
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 4444\n", "\\item 6\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 4444\n", "2. 6\n", "\n", "\n" ], "text/plain": [ "[1] 4444 6" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(counts(dds))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now print the raw counts for the first three genes (how can you verify this looking at the files from htseq-count)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
7A_E7B_E7C_E8A_E8B_E8C_E
gene0 9121921 810
gene1108119155193164196
gene10322637
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & 7A\\_E & 7B\\_E & 7C\\_E & 8A\\_E & 8B\\_E & 8C\\_E\\\\\n", "\\hline\n", "\tgene0 & 9 & 12 & 19 & 21 & 8 & 10\\\\\n", "\tgene1 & 108 & 119 & 155 & 193 & 164 & 196\\\\\n", "\tgene10 & 3 & 2 & 2 & 6 & 3 & 7\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "1. 9\n", "2. 108\n", "3. 3\n", "4. 12\n", "5. 119\n", "6. 2\n", "7. 19\n", "8. 155\n", "9. 2\n", "10. 21\n", "11. 193\n", "12. 6\n", "13. 8\n", "14. 164\n", "15. 3\n", "16. 10\n", "17. 196\n", "18. 7\n", "\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E\n", "gene0 9 12 19 21 8 10\n", "gene1 108 119 155 193 164 196\n", "gene10 3 2 2 6 3 7" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "head(counts(dds),3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Slots of an S4 class" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives the design of the study" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
function () \n",
       "NULL
" ], "text/latex": [ "\\begin{minted}{r}\n", "function () \n", "NULL\n", "\\end{minted}" ], "text/markdown": [ "```r\n", "function () \n", "NULL\n", "```" ], "text/plain": [ "function () \n", "NULL\n", "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds@dispersionFunction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This slots return gene specific information (it will be populated later)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Estimate Size Factors and Dispersion Parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You recall that DESeq requires that we have estimates for sample specific size factors and gene specific dispersion factors. More specifically, recall that DESeq models the count $K_{ij}$ (gene $i$, sample $j$) as negative binomial with mean $\\mu_{ij}$ and dispersion parameter $\\alpha_i$. Here $\\mu_{ij}=s_j q_{ij}$ where $\\log_2(q_{ij}) = \\beta_{0i} + \\beta_{1i} z_j$. Here $s_j$ is the sample $j$ specific size factor." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Size Factors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We begin by estimating the size factors $s_1,\\ldots,s_n$:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dds <- estimateSizeFactors(dds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, compare the dds object to that of before applying the estimateSizeFactors() function. What has changed? What remains unchanged?" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "class: DESeqDataSet \n", "dim: 4444 6 \n", "metadata(1): version\n", "assays(1): counts\n", "rownames(4444): gene0 gene1 ... gene998 gene999\n", "rowData names(0):\n", "colnames(6): 7A_E 7B_E ... 8B_E 8C_E\n", "colData names(5): trt repl team md5 sizeFactor" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that there is a sizeFactor added to colData. Let's look at it more carefully" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also get the size factors directly (why are there six size factors?)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
0.814709325873651
\n", "\t
7B_E
\n", "\t\t
0.860242585687071
\n", "\t
7C_E
\n", "\t\t
0.982865560325398
\n", "\t
8A_E
\n", "\t\t
1.0938375107471
\n", "\t
8B_E
\n", "\t\t
1.15160914763126
\n", "\t
8C_E
\n", "\t\t
1.26477648704175
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 0.814709325873651\n", "\\item[7B\\textbackslash{}\\_E] 0.860242585687071\n", "\\item[7C\\textbackslash{}\\_E] 0.982865560325398\n", "\\item[8A\\textbackslash{}\\_E] 1.0938375107471\n", "\\item[8B\\textbackslash{}\\_E] 1.15160914763126\n", "\\item[8C\\textbackslash{}\\_E] 1.26477648704175\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 0.8147093258736517B_E\n", ": 0.8602425856870717C_E\n", ": 0.9828655603253988A_E\n", ": 1.09383751074718B_E\n", ": 1.151609147631268C_E\n", ": 1.26477648704175\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", "0.8147093 0.8602426 0.9828656 1.0938375 1.1516091 1.2647765 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sizeFactors(dds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is preferable to limit the number of decimal places. Next show the size factors rounded to 3 decimal places" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
0.815
\n", "\t
7B_E
\n", "\t\t
0.86
\n", "\t
7C_E
\n", "\t\t
0.983
\n", "\t
8A_E
\n", "\t\t
1.094
\n", "\t
8B_E
\n", "\t\t
1.152
\n", "\t
8C_E
\n", "\t\t
1.265
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 0.815\n", "\\item[7B\\textbackslash{}\\_E] 0.86\n", "\\item[7C\\textbackslash{}\\_E] 0.983\n", "\\item[8A\\textbackslash{}\\_E] 1.094\n", "\\item[8B\\textbackslash{}\\_E] 1.152\n", "\\item[8C\\textbackslash{}\\_E] 1.265\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 0.8157B_E\n", ": 0.867C_E\n", ": 0.9838A_E\n", ": 1.0948B_E\n", ": 1.1528C_E\n", ": 1.265\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", "0.815 0.860 0.983 1.094 1.152 1.265 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "round(sizeFactors(dds),3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that the size factors have been estimated, we can get \"normalized\" counts" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
7A_E7B_E7C_E8A_E8B_E8C_E
gene0 9121921 810
gene1108119155193164196
gene10322637
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & 7A\\_E & 7B\\_E & 7C\\_E & 8A\\_E & 8B\\_E & 8C\\_E\\\\\n", "\\hline\n", "\tgene0 & 9 & 12 & 19 & 21 & 8 & 10\\\\\n", "\tgene1 & 108 & 119 & 155 & 193 & 164 & 196\\\\\n", "\tgene10 & 3 & 2 & 2 & 6 & 3 & 7\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "1. 9\n", "2. 108\n", "3. 3\n", "4. 12\n", "5. 119\n", "6. 2\n", "7. 19\n", "8. 155\n", "9. 2\n", "10. 21\n", "11. 193\n", "12. 6\n", "13. 8\n", "14. 164\n", "15. 3\n", "16. 10\n", "17. 196\n", "18. 7\n", "\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E\n", "gene0 9 12 19 21 8 10\n", "gene1 108 119 155 193 164 196\n", "gene10 3 2 2 6 3 7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
7A_E7B_E7C_E8A_E8B_E8C_E
gene011.04688513.94955419.33123019.198464 6.946801 7.906535
gene1132.5626138.3331157.7021176.4430142.4094154.9681
gene103.6822952.3249262.0348665.4852752.6050515.534575
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & 7A\\_E & 7B\\_E & 7C\\_E & 8A\\_E & 8B\\_E & 8C\\_E\\\\\n", "\\hline\n", "\tgene0 & 11.046885 & 13.949554 & 19.331230 & 19.198464 & 6.946801 & 7.906535\\\\\n", "\tgene1 & 132.5626 & 138.3331 & 157.7021 & 176.4430 & 142.4094 & 154.9681\\\\\n", "\tgene10 & 3.682295 & 2.324926 & 2.034866 & 5.485275 & 2.605051 & 5.534575\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "1. 11.0468847160291\n", "2. 132.562616592349\n", "3. 3.68229490534303\n", "4. 13.9495535325256\n", "5. 138.333072530878\n", "6. 2.32492558875426\n", "7. 19.3312297906844\n", "8. 157.702137766109\n", "9. 2.03486629375625\n", "10. 19.1984639342426\n", "11. 176.443025681373\n", "12. 5.48527540978361\n", "13. 6.94680136611903\n", "14. 142.40942800544\n", "15. 2.60505051229463\n", "16. 7.90653534632788\n", "17. 154.968092788027\n", "18. 5.53457474242952\n", "\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E\n", "gene0 11.046885 13.949554 19.331230 19.198464 6.946801 7.906535\n", "gene1 132.562617 138.333073 157.702138 176.443026 142.409428 154.968093\n", "gene10 3.682295 2.324926 2.034866 5.485275 2.605051 5.534575" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "head(counts(dds),3)\n", "head(counts(dds,normalize=TRUE),3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that these are the counts divided by the size factors. Compare the first row of the last table (\"normalized\" counts for gene 1) to the hand calculation below." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
11.0468847160291
\n", "\t
7B_E
\n", "\t\t
13.9495535325256
\n", "\t
7C_E
\n", "\t\t
19.3312297906844
\n", "\t
8A_E
\n", "\t\t
19.1984639342426
\n", "\t
8B_E
\n", "\t\t
6.94680136611903
\n", "\t
8C_E
\n", "\t\t
7.90653534632788
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 11.0468847160291\n", "\\item[7B\\textbackslash{}\\_E] 13.9495535325256\n", "\\item[7C\\textbackslash{}\\_E] 19.3312297906844\n", "\\item[8A\\textbackslash{}\\_E] 19.1984639342426\n", "\\item[8B\\textbackslash{}\\_E] 6.94680136611903\n", "\\item[8C\\textbackslash{}\\_E] 7.90653534632788\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 11.04688471602917B_E\n", ": 13.94955353252567C_E\n", ": 19.33122979068448A_E\n", ": 19.19846393424268B_E\n", ": 6.946801366119038C_E\n", ": 7.90653534632788\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", "11.046885 13.949554 19.331230 19.198464 6.946801 7.906535 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "counts(dds)[1,]/sizeFactors(dds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exercise: How do you get the raw counts for gene \"GeneID:12930116\"?" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
3
\n", "\t
7B_E
\n", "\t\t
2
\n", "\t
7C_E
\n", "\t\t
2
\n", "\t
8A_E
\n", "\t\t
6
\n", "\t
8B_E
\n", "\t\t
3
\n", "\t
8C_E
\n", "\t\t
7
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 3\n", "\\item[7B\\textbackslash{}\\_E] 2\n", "\\item[7C\\textbackslash{}\\_E] 2\n", "\\item[8A\\textbackslash{}\\_E] 6\n", "\\item[8B\\textbackslash{}\\_E] 3\n", "\\item[8C\\textbackslash{}\\_E] 7\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 37B_E\n", ": 27C_E\n", ": 28A_E\n", ": 68B_E\n", ": 38C_E\n", ": 7\n", "\n" ], "text/plain": [ "7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", " 3 2 2 6 3 7 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "counts(dds)[\"gene10\",]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Exercise: How do you get the normalized counts for gene gene10 for the first 10 sample?" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
3.68229490534303
\n", "\t
7B_E
\n", "\t\t
2.32492558875426
\n", "\t
7C_E
\n", "\t\t
2.03486629375625
\n", "\t
8A_E
\n", "\t\t
5.48527540978361
\n", "\t
8B_E
\n", "\t\t
2.60505051229463
\n", "\t
8C_E
\n", "\t\t
5.53457474242952
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 3.68229490534303\n", "\\item[7B\\textbackslash{}\\_E] 2.32492558875426\n", "\\item[7C\\textbackslash{}\\_E] 2.03486629375625\n", "\\item[8A\\textbackslash{}\\_E] 5.48527540978361\n", "\\item[8B\\textbackslash{}\\_E] 2.60505051229463\n", "\\item[8C\\textbackslash{}\\_E] 5.53457474242952\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 3.682294905343037B_E\n", ": 2.324925588754267C_E\n", ": 2.034866293756258A_E\n", ": 5.485275409783618B_E\n", ": 2.605050512294638C_E\n", ": 5.53457474242952\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", "3.682295 2.324926 2.034866 5.485275 2.605051 5.534575 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "counts(dds,normalize=TRUE)[\"gene10\",]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exercise: Get a summary (mean, median, quantiles etc ) of the size factors" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " Min. 1st Qu. Median Mean 3rd Qu. Max. \n", " 0.8147 0.8909 1.0380 1.0280 1.1370 1.2650 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "summary(sizeFactors(dds))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before going to the next step, let's look at the dispersionFunction slot" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
function () \n",
       "NULL
" ], "text/latex": [ "\\begin{minted}{r}\n", "function () \n", "NULL\n", "\\end{minted}" ], "text/markdown": [ "```r\n", "function () \n", "NULL\n", "```" ], "text/plain": [ "function () \n", "NULL\n", "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds@dispersionFunction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dispersion Parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we get the dispersion factors $\\alpha_1,\\ldots,\\alpha_{m}$" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "gene-wise dispersion estimates\n", "mean-dispersion relationship\n", "final dispersion estimates\n" ] } ], "source": [ "dds<-estimateDispersions(dds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now inspect the dds object again and note that the rowRanges slot has extra information (\"metadata column names(0):\" before versus \"column names(9): baseMean baseVar ... dispOutlier dispMAP\")" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "class: DESeqDataSet \n", "dim: 4444 6 \n", "metadata(1): version\n", "assays(2): counts mu\n", "rownames(4444): gene0 gene1 ... gene998 gene999\n", "rowData names(9): baseMean baseVar ... dispOutlier dispMAP\n", "colnames(6): 7A_E 7B_E ... 8B_E 8C_E\n", "colData names(5): trt repl team md5 sizeFactor" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Note that the dispersionfunction slot is now populated" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
structure(function (q) \n",
       "coefs[1] + coefs[2]/q, coefficients = structure(c(0.0296449332226886, \n",
       "1.43330515554225), .Names = c(\"asymptDisp\", \"extraPois\")), fitType = \"parametric\", varLogDispEsts = 1.18849739273446, dispPriorVar = 0.54356332588623)
" ], "text/latex": [ "\\begin{minted}{r}\n", "structure(function (q) \n", "coefs{[}1{]} + coefs{[}2{]}/q, coefficients = structure(c(0.0296449332226886, \n", "1.43330515554225), .Names = c(\"asymptDisp\", \"extraPois\")), fitType = \"parametric\", varLogDispEsts = 1.18849739273446, dispPriorVar = 0.54356332588623)\n", "\\end{minted}" ], "text/markdown": [ "```r\n", "structure(function (q) \n", "coefs[1] + coefs[2]/q, coefficients = structure(c(0.0296449332226886, \n", "1.43330515554225), .Names = c(\"asymptDisp\", \"extraPois\")), fitType = \"parametric\", varLogDispEsts = 1.18849739273446, dispPriorVar = 0.54356332588623)\n", "```" ], "text/plain": [ "function (q) \n", "coefs[1] + coefs[2]/q\n", "\n", "attr(,\"coefficients\")\n", "asymptDisp extraPois \n", "0.02964493 1.43330516 \n", "attr(,\"fitType\")\n", "[1] \"parametric\"\n", "attr(,\"varLogDispEsts\")\n", "[1] 1.188497\n", "attr(,\"dispPriorVar\")\n", "[1] 0.5435633" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dds@dispersionFunction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can extract the gene specific dispersion factors using dispersions(). Note that there will be one number per gene. We look at the first four genes (rounded to 4 decimal places)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "alphas<-dispersions(dds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Verify that the number of dispersion factors equals the number of genes" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "4444" ], "text/latex": [ "4444" ], "text/markdown": [ "4444" ], "text/plain": [ "[1] 4444" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "length(alphas)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Print the dispersion factors for the first 5 genes rounded to four decimal points" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0.1363
  2. \n", "\t
  3. 0.0226
  4. \n", "\t
  5. 0.2759
  6. \n", "\t
  7. 0.0688
  8. \n", "\t
  9. 0.1377
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0.1363\n", "\\item 0.0226\n", "\\item 0.2759\n", "\\item 0.0688\n", "\\item 0.1377\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0.1363\n", "2. 0.0226\n", "3. 0.2759\n", "4. 0.0688\n", "5. 0.1377\n", "\n", "\n" ], "text/plain": [ "[1] 0.1363 0.0226 0.2759 0.0688 0.1377" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "round(alphas[1:5],4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Extract the metadata using mcols() for the first four genes" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "DataFrame with 4 rows and 9 columns\n", " baseMean baseVar allZero dispGeneEst dispFit dispersion dispIter dispOutlier dispMAP\n", " \n", "1 13.063245 29.15647 FALSE 0.127803253 0.13936539 0.13628195 6 FALSE 0.13628195\n", "2 150.403062 256.01201 FALSE 0.003999823 0.03917469 0.02257188 8 FALSE 0.02257188\n", "3 3.611165 2.47365 FALSE 0.000000010 0.42655433 0.27587228 8 FALSE 0.27587228\n", "4 24.170850 35.51715 FALSE 0.014700541 0.08894385 0.06884450 8 FALSE 0.06884450" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mcols(dds)[1:4,]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exercise: Provide statistical summaries of the dispersion factors" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " Min. 1st Qu. Median Mean 3rd Qu. Max. NA's \n", " 0.01119 0.02864 0.05539 0.42150 0.17510 10.00000 130 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "summary(dispersions(dds))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exercise: Summarize the dispersion factors using a box plot (may want to log transform)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAACqVBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcZGRkaGhobGxscHBweHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYoKCgpKSkqKior\nKyssLCwuLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo8PDw9PT0+Pj4/\nPz9AQEBBQUFDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExOTk5PT09QUFBRUVFSUlJT\nU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFjY2NlZWVmZmZo\naGhpaWlqampra2tsbGxtbW1vb29wcHBxcXFzc3N0dHR1dXV3d3d4eHh5eXl6enp8fHx9fX1/\nf3+CgoKDg4OEhISFhYWGhoaIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+RkZGSkpKTk5OUlJSX\nl5eYmJiZmZmbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OlpaWmpqanp6eoqKipqamqqqqr\nq6usrKytra2urq6vr6+ysrKzs7O0tLS1tbW3t7e4uLi6urq7u7u8vLy9vb2+vr6/v7/AwMDB\nwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT\n09PU1NTV1dXW1tbY2NjZ2dna2trb29vd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn\n5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5\n+fn6+vr7+/v8/Pz9/f3+/v7///+eam8CAAAACXBIWXMAABJ0AAASdAHeZh94AAAazUlEQVR4\nnO3dj3/V5XXA8XNz84PwwwjijzVg1VmngmhHtbbdQPtDqYCdTWdLS9fhRKbtqrOd7odrq65j\nW9nYlDplnaVW3Wq1wwrCLEwqOAhaVARqBfPj/iW7N5HEMr15hHOeh5zzeb/6Si6vfJs8B56P\nuXzzJEgNwDGT0gsAPCAkQAEhAQoICVBASIACQgIUEBKggJAABYQEKCAkQAEhAQoICVBASIAC\n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\nIcXCyQYjhBQLt7+NEFIshGSEkGIhJCOEFAshGSGkWDjZYISQYuFkgxFCAhQQEqCAkGLhZIMR\nQoqFkw1GCCkWbn8bIaRYCMkIIcVCSEYIKRZCMkJIsXCywQghxcLJBiOEBCggJEABIcXCyQYj\nhBQLJxuMEFIs3P42QkixEJIRQoqFkIwQUiyEZISQYuFkgxFCioWTDUYICVBASIACQoqFkw1G\nCCkWTjYYIaRYuP1thJBiISQjhJTX4Ctl9fQUXsBg6T8BI4SU1w0S3A2l/wSMEFJeS654sqhH\nHy378a/w+tSSkPKK/ncUt/MTUl5uN1Iit/MTUl5uN1Iit/MTUl5uN1Iit/MTUl5uN1Iit/MT\nUl5uN1Iit/MTUl5uN1Iit/MTUl5uN1Iit/MTUl5uN1Iit/MTUl5uN1Iit/MTUl5uN1Iit/Nn\nDunApr1vPup9rsllhOSV2/mzhrTlwxWpLNo59Hhus/dCSF65nT9nSDsmyyXXnCrdOxq/IKSQ\n3M6fM6QeWVWrDSyXSwdqhBSU2/lzhvTeDzZeDiyWlTVCCsrt/DlDau8ZerV7yil7CSkot/Nn\n/YzU3Tf0+k65coCQYnI7f86QVsjCXY3Xgx+TG35JSCG5nT9nSK+eK3La1vqDPR+QqV1HvpfB\nR9aNuJ6QnHI7f9avI+2/bc60DY0Hv7r5NDnyvWyb8NYfNrP/aD/Gcc7tRkrkdv5SR4T6f/7D\nJm/lqZ1XbufnrF1ebjdSIrfzlwipd8FYH5OQvHI7f4mQnpU1Y1xBSF65nZ+Q8nK7kRK5nZ+Q\n8nK7kRK5nZ+Q8nK7kRK5nb9ESP17Do5xBSF55XZ+bn/n5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYj\nJXI7PyHl5XYjJXI7PyHltWTRttAWEdIoQjp6SyQ4QhpFSEePkEr/CRgpEtIbLww2v4CQ3CKk\nUUcd0qG7l15zd1/fH7XLCb/3QrMLHYd09hdDO5uQRh1tSPtmNf6T1PM1Oe13z5T3vNrkSsch\ned1IidzOnzOkG6Vn/dN/LJ1XHawNflNubHIlIXnldv6cIf3Wuf212uD5srn+eHD27CZXEpJX\nbufPGVLnZxsvF8nBxqvfn9jkSkLyyu38OUM648LGy3uXDf1i3vQmVxKSV27nzxnSp+Wukcfr\nq59ociUheeV2/pwhPd8l05cOPfre59pb/uOIt27/jakjJhKSU27nz/p1pP/9/OkXDz34nHTf\nf+Qb++6/d8RSQnLK7fy5Tzb0Db188qf9Ta/iqZ1XbufnrF1ebjdSIrfzlwipd8FYH5OQvHI7\nf4mQnpU1Y1xBSF65nZ+Q8nK7kRK5nZ+Q8nK7kRK5nZ+Q8nK7kRK5nb9ESP17Do5xBSF55XZ+\nbn/n5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7\nPyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7\nPyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7\nPyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7\nPyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7\nPyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7PyHl5XYjJXI7\nPyHlteSydaFdRkijCOnofUWC+0rpPwEjhAQoICRAASEBCggplltuKb0CpwgpFre3n0sjpFgI\nyQghxUJIRggpFkIyQkixfOELpVfgFCHF0ttbegVOERKggJAABYQEKCCkWDjZYISQYuH2txFC\nioWQjBBSLIRkhJBiISQjhBQLJxuMEFIsnGwwQkiAAkICFBASoICQYuFkgxFCioXb30YIKRZC\nMkJIsRCSEUKKhZCMlAnproebv52QrHCywUiZkGSMP05CssLJBiM5Q1o7QubXXzS5kpAwzuQM\n6Yh/KafJlYSEcSZnSPdMl/P+/C8a5P31F02uJCSMM1n/jvTi1TJ/+9B74O9IhXCywUjmmw1r\nTp581wAhlcPtbyO579rtuUZ+ZxshFUNIRvLf/v7XUyd+8+1COnDzTSMuJyQjhGSkwNeRXvqM\nvF1IL3xi3ojZ8vqxfQy8A0IyUuQLsg/+9febX/CYHDrWj4G3xckGI8fnWTtCssLJBiMlQupd\nMNbHJCSMMyVCelbWjHEFIWGcISRAASHFwskGI4QUC7e/jZQIqX/PwTGuICQrhGSE29+xEJIR\nQoqFkIwQUiycbDBCSLFwssEIIQEKCAlQQEiAAkKKhZMNRggpFm5/GyGkWAjJCCHFQkhGCCkW\nQjJCSLFwssEIIcXCyQYjhAQoICRAASEBCggpFk42GCGkWLj9bYSQYiEkI4QUCyEZIaRYCMkI\nIcXCyQYjhBQLJxuMEBKggJAABYQEKCCkWDjZYISQYuH2txFCioWQjBBSLIRkhJBiISQjhDS+\n3Dr12HR0HOM7uLX078BxipDGl951x+aee47xHXAy4u0REqCAkAAFhAQoICRAASEBCggJUEBI\ngAJCAhQQEqCAkAAFhAQoICRAASEBCggJUEBIgAJCAhQQEqCAkAAFhAQoICRAASEBCo7PkNYL\nMM6sf9fb3D6k2sYngXFl47vf5RlCAvwjJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEAB\nIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEAB\nIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEAB\nIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEAB\nIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEAB\nIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEAB\nIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEAB\nIQEKCAlQQEiAAkICFBASoICQAAWEBCggJEABIQEKCAlQQEiAAkICFBASoICQAAWEBCj4P5bZ\nuD0KcTtdAAAAAElFTkSuQmCC", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "boxplot(log(dispersions(dds)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Differential Expression Analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now conduct a differential expression analysis using the DESeq() function. Keep in mind that to get to this step, we first estimated the size factors and then the dispersion parameters." ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "using pre-existing size factors\n", "estimating dispersions\n", "found already estimated dispersions, replacing these\n", "gene-wise dispersion estimates\n", "mean-dispersion relationship\n", "final dispersion estimates\n", "fitting model and testing\n" ] } ], "source": [ "ddsDE<-DESeq(dds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can get the results for the differential expression analysis using results()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "myres<-results(ddsDE)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the results for the first four genes" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "log2 fold change (MAP): trt 8 vs 7 \n", "Wald test p-value: trt 8 vs 7 \n", "DataFrame with 4 rows and 6 columns\n", " baseMean log2FoldChange lfcSE stat pvalue padj\n", " \n", "gene0 13.063245 -0.3615293 0.4895581 -0.7384809 0.4602223 0.6225190\n", "gene1 150.403062 0.1396895 0.1984781 0.7038029 0.4815555 0.6402232\n", "gene10 3.611165 0.5992853 0.6890620 0.8697117 0.3844580 0.5526493\n", "gene100 24.170850 0.2231204 0.3708345 0.6016711 0.5473931 0.6965989" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myres[1:4,]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can get the descriptions for the columns from the DE analysis" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
desc
1mean of normalized counts for all samples
2log2 fold change (MAP): trt 8 vs 7
3standard error: trt 8 vs 7
4Wald statistic: trt 8 vs 7
5Wald test p-value: trt 8 vs 7
6BH adjusted p-values
\n" ], "text/latex": [ "\\begin{tabular}{r|l}\n", " & desc\\\\\n", "\\hline\n", "\t1 & mean of normalized counts for all samples\\\\\n", "\t2 & log2 fold change (MAP): trt 8 vs 7\\\\\n", "\t3 & standard error: trt 8 vs 7\\\\\n", "\t4 & Wald statistic: trt 8 vs 7\\\\\n", "\t5 & Wald test p-value: trt 8 vs 7\\\\\n", "\t6 & BH adjusted p-values\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " desc\n", "1 mean of normalized counts for all samples\n", "2 log2 fold change (MAP): trt 8 vs 7\n", "3 standard error: trt 8 vs 7\n", "4 Wald statistic: trt 8 vs 7\n", "5 Wald test p-value: trt 8 vs 7\n", "6 BH adjusted p-values" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data.frame(desc=mcols(myres)$description) " ] }, { "cell_type": "raw", "metadata": {}, "source": [ "or look at ?results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### P-values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can extract the unadjusted p-values as follows" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "4444" ], "text/latex": [ "4444" ], "text/markdown": [ "4444" ], "text/plain": [ "[1] 4444" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 0.460222295066648
  2. \n", "\t
  3. 0.481555502006739
  4. \n", "\t
  5. 0.384457970194728
  6. \n", "\t
  7. 0.547393065612409
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0.460222295066648\n", "\\item 0.481555502006739\n", "\\item 0.384457970194728\n", "\\item 0.547393065612409\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0.460222295066648\n", "2. 0.481555502006739\n", "3. 0.384457970194728\n", "4. 0.547393065612409\n", "\n", "\n" ], "text/plain": [ "[1] 0.4602223 0.4815555 0.3844580 0.5473931" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pvalues<-myres$pvalue\n", "length(pvalues)\n", "pvalues[1:4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The BH adjusted p-values can be extracted as" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "4444" ], "text/latex": [ "4444" ], "text/markdown": [ "4444" ], "text/plain": [ "[1] 4444" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 0.622518959377389
  2. \n", "\t
  3. 0.640223160424753
  4. \n", "\t
  5. 0.552649254473344
  6. \n", "\t
  7. 0.696598867777664
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0.622518959377389\n", "\\item 0.640223160424753\n", "\\item 0.552649254473344\n", "\\item 0.696598867777664\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0.622518959377389\n", "2. 0.640223160424753\n", "3. 0.552649254473344\n", "4. 0.696598867777664\n", "\n", "\n" ], "text/plain": [ "[1] 0.6225190 0.6402232 0.5526493 0.6965989" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "adjp<-myres$padj\n", "length(adjp)\n", "adjp[1:4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate BH adjusted P-values by \"hand\" using the p.adjust() function. Note that you will not replicate the results you get under the padj column (when looking at the first four rows)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
BHadjp
10.6704050.622519
20.68729800.6402232
30.60155380.5526493
40.74567370.6965989
\n" ], "text/latex": [ "\\begin{tabular}{r|ll}\n", " & BH & adjp\\\\\n", "\\hline\n", "\t1 & 0.670405 & 0.622519\\\\\n", "\t2 & 0.6872980 & 0.6402232\\\\\n", "\t3 & 0.6015538 & 0.5526493\\\\\n", "\t4 & 0.7456737 & 0.6965989\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " BH adjp\n", "1 0.6704050 0.6225190\n", "2 0.6872980 0.6402232\n", "3 0.6015538 0.5526493\n", "4 0.7456737 0.6965989" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pvalues<-myres$pvalue\n", "BH<-p.adjust(pvalues,\"BH\")\n", "data.frame(BH=BH[1:4],adjp=adjp[1:4])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The DESeq2::results function applies \"independent\" filtering. This enabled by default. Let's disable and the reexamine the adjusted P-values" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": true }, "outputs": [], "source": [ "myres1<-results(ddsDE,independentFiltering = FALSE)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "log2 fold change (MAP): trt 8 vs 7 \n", "Wald test p-value: trt 8 vs 7 \n", "DataFrame with 4444 rows and 6 columns\n", " baseMean log2FoldChange lfcSE stat pvalue padj\n", " \n", "gene0 13.063245 -0.3615293 0.4895581 -0.7384809 0.46022230 0.67040501\n", "gene1 150.403062 0.1396895 0.1984781 0.7038029 0.48155550 0.68729798\n", "gene10 3.611165 0.5992853 0.6890620 0.8697117 0.38445797 0.60155379\n", "gene100 24.170850 0.2231204 0.3708345 0.6016711 0.54739307 0.74567369\n", "gene1000 7.675704 -1.1913393 0.5487654 -2.1709447 0.02993535 0.08914359\n", "... ... ... ... ... ... ...\n", "gene995 1.6197713 1.4706212 0.8162744 1.8016261 0.07160425 0.17719995\n", "gene996 12.8488020 -0.2319250 0.4424331 -0.5242035 0.60013703 0.78035966\n", "gene997 9.9461848 -1.0929507 0.4962577 -2.2023856 0.02763808 0.08386863\n", "gene998 36.7337608 -0.2205173 0.3212546 -0.6864254 0.49244489 0.69827572\n", "gene999 0.8127785 0.1074132 0.8147129 0.1318417 0.89510947 0.94515483" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myres1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now replicate the results" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
BHadjp
10.6704050.670405
20.6872980.687298
30.60155380.6015538
40.74567370.7456737
\n" ], "text/latex": [ "\\begin{tabular}{r|ll}\n", " & BH & adjp\\\\\n", "\\hline\n", "\t1 & 0.670405 & 0.670405\\\\\n", "\t2 & 0.687298 & 0.687298\\\\\n", "\t3 & 0.6015538 & 0.6015538\\\\\n", "\t4 & 0.7456737 & 0.7456737\\\\\n", "\\end{tabular}\n" ], "text/plain": [ " BH adjp\n", "1 0.6704050 0.6704050\n", "2 0.6872980 0.6872980\n", "3 0.6015538 0.6015538\n", "4 0.7456737 0.7456737" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pvalues1<-myres1$pvalue\n", "BH1<-p.adjust(pvalues1[!is.na(pvalues)],\"BH\")\n", "data.frame(BH=BH1[1:4],adjp=myres1$padj[1:4])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Subset and reorder the results" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "out of 4314 with nonzero total read count\n", "adjusted p-value < 0.05\n", "LFC > 0 (up) : 615, 14% \n", "LFC < 0 (down) : 685, 16% \n", "outliers [1] : 8, 0.19% \n", "low counts [2] : 501, 12% \n", "(mean count < 2)\n", "[1] see 'cooksCutoff' argument of ?results\n", "[2] see 'independentFiltering' argument of ?results\n", "\n" ] } ], "source": [ "summary(myres,0.05)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can sort the results by say the unadjusted P-values" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "log2 fold change (MAP): trt 8 vs 7 \n", "Wald test p-value: trt 8 vs 7 \n", "DataFrame with 4 rows and 6 columns\n", " baseMean log2FoldChange lfcSE stat pvalue padj\n", " \n", "gene1209 1110.3199 -3.347158 0.1492045 -22.43336 1.860541e-111 7.079359e-108\n", "gene4405 436.6800 4.443710 0.2144262 20.72373 2.116499e-95 4.026639e-92\n", "gene3312 488.4901 4.659130 0.2362760 19.71902 1.480824e-86 1.878178e-83\n", "gene3317 322.3925 5.043525 0.2597286 19.41844 5.390243e-84 5.127469e-81" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myres[order(myres[[\"pvalue\"]])[1:4],]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get the list of genes with unadjusted P-values < 0.00001 and absolute log2 FC of more than 4" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "log2 fold change (MAP): trt 8 vs 7 \n", "Wald test p-value: trt 8 vs 7 \n", "DataFrame with 24 rows and 6 columns\n", " baseMean log2FoldChange lfcSE stat pvalue padj\n", " \n", "gene1300 175.91020 4.761123 0.4248758 11.20592 3.813880e-29 3.023294e-27\n", "gene2034 128.44386 4.061622 0.3738799 10.86344 1.721393e-27 1.235830e-25\n", "gene2127 82.92247 4.353625 0.3826230 11.37837 5.359438e-30 4.338864e-28\n", "gene2128 120.48719 4.474566 0.3303883 13.54335 8.673550e-42 1.434907e-39\n", "gene2179 436.50102 5.055035 0.2805605 18.01763 1.416826e-72 1.078204e-69\n", "... ... ... ... ... ... ...\n", "gene4405 436.68000 4.443710 0.2144262 20.723727 2.116499e-95 4.026639e-92\n", "gene585 27.68248 5.127728 0.6402093 8.009455 1.152179e-15 3.535517e-14\n", "gene594 121.06565 5.862144 0.4591564 12.767207 2.499646e-37 3.396840e-35\n", "gene595 106.31889 4.798168 0.3853057 12.452885 1.348798e-35 1.466336e-33\n", "gene596 69.53289 4.007674 0.4010769 9.992284 1.647420e-23 9.084685e-22" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "subset(myres,pvalue<0.00001&abs(log2FoldChange)>4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get the list of genes with unadjusted P-values < 0.00001 and upregulated genes with log2 FC of more than 4" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "log2 fold change (MAP): trt 8 vs 7 \n", "Wald test p-value: trt 8 vs 7 \n", "DataFrame with 24 rows and 6 columns\n", " baseMean log2FoldChange lfcSE stat pvalue padj\n", " \n", "gene1300 175.91020 4.761123 0.4248758 11.20592 3.813880e-29 3.023294e-27\n", "gene2034 128.44386 4.061622 0.3738799 10.86344 1.721393e-27 1.235830e-25\n", "gene2127 82.92247 4.353625 0.3826230 11.37837 5.359438e-30 4.338864e-28\n", "gene2128 120.48719 4.474566 0.3303883 13.54335 8.673550e-42 1.434907e-39\n", "gene2179 436.50102 5.055035 0.2805605 18.01763 1.416826e-72 1.078204e-69\n", "... ... ... ... ... ... ...\n", "gene4405 436.68000 4.443710 0.2144262 20.723727 2.116499e-95 4.026639e-92\n", "gene585 27.68248 5.127728 0.6402093 8.009455 1.152179e-15 3.535517e-14\n", "gene594 121.06565 5.862144 0.4591564 12.767207 2.499646e-37 3.396840e-35\n", "gene595 106.31889 4.798168 0.3853057 12.452885 1.348798e-35 1.466336e-33\n", "gene596 69.53289 4.007674 0.4010769 9.992284 1.647420e-23 9.084685e-22" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "subset(myres,pvalue<0.00001&log2FoldChange>4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The P-values for the four top genes are beyond machine precision. You can use the format.pval() function to properly format the P-values. PLEASE promote ending the practice of publishing P-values below machine precision. (that would be akin to stating the weight of an object that weighs less than one pound with scale that whose minimum weight spec is 1lbs)." ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "log2 fold change (MAP): trt 8 vs 7 \n", "Wald test p-value: trt 8 vs 7 \n", "DataFrame with 4 rows and 7 columns\n", " baseMean log2FoldChange lfcSE stat pvalue padj pval\n", " \n", "gene1209 1110.3199 -3.347158 0.1492045 -22.43336 1.860541e-111 7.079359e-108 < 2.22e-16\n", "gene4405 436.6800 4.443710 0.2144262 20.72373 2.116499e-95 4.026639e-92 < 2.22e-16\n", "gene3312 488.4901 4.659130 0.2362760 19.71902 1.480824e-86 1.878178e-83 < 2.22e-16\n", "gene3317 322.3925 5.043525 0.2597286 19.41844 5.390243e-84 5.127469e-81 < 2.22e-16" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myres$pval=format.pval(myres$pvalue)\n", "myres[order(myres[[\"pvalue\"]])[1:4],]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Let's look at a volcano plot" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dB5jURB8G8P/1xt3B0eHoHWnS\ne5NqofcqiIKA0gQr9oYiiA0VFBWxIEpVUVHgQ7oI0qT3Ir3fcWU330yy9W5vb/cym2x239/z\ncNuyyeySd5NMJjMkAYBqpHcBAAIBggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACC\nBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQg\nAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACC\nBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQg\nAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACC\nBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQg\nAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACCBCAAggQgAIIEIACC\nBCAAggQgAIIEIACCBCAAggQgAIIEIIAGQdrxF4Ch7PB+Lfd9kLYSgMFs9Xo1932Q1lOaz5cB\nIFAarff6PQgSQBYIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKA\nAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAABE6RzTzx22hdFAfBEwASpE1EzXxQFwBMB\nE6RkogRfFAXAEwETpGeIxvmiKACeCJggSdu976APQJTACRKAjhAkAAEQJAABECQAARAkAAEQ\nJAABECQAARAkAAEQJAABECQAARAkAAEQJAABECQAARAkAAEQJAABECQAARAkAAEQJAABECQA\nAbQP0q3j18y5TYMggcFoG6Tfh1ROJKLYihN2up0OQQKD0TJI5geJEuu179G+fhLRsEw3UyJI\nYDBaBmkWNVibId/L3NSOXnczJYIEBqNlkBqVTLXdz6hT0c2UCBIYjJZBiu/l8GBcpJspESQw\nGC2D1CTZvkXKrFvBzZQIEhiMlkF6z36MtLkdvepmSgQJDEbTWrtRRIn1O/Ts2DCJaHCGmykR\nJDAYbc8j7R1dKR8RxVQYt8PtdAgSGIz2LRtuHEPLBgg4aCIEIACaCAEIgCZCAAKgiRCAAH7U\nROjWZZuVCBIYi/80EToURg5S8rgMAF34UROhf/6yeYpu5HEZALrwzyZCHyJIYCz+2UQIQQKD\n8c8mQggSGIx/NhFCkMBg/LM7LgQJDAZBAhAAQQIQAEECEEDLICU6czMlggQGo2WQ5tQnKlvb\nxs2UCBIYjKa7dhkdabFHEyJIYDDaHiMtR5AgMGkbpNNxyzyaDkECg0GtHYAACBKAAAgSgAAI\nEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKA\nAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSBJST\nyy/qslwECQLJP7FU5KweC0aQIJC8REQL9FgwggSBZAVRxC49FowgQUD5bvzvuiwXQQIQAEEC\nEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAA\nQQIQAEECEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAAQQIQAEEC\nEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAAQQIQAEECEABBAhAA\nQYIA9m6Jhvu1WRKCBIHrQihRX20WhSBB4DofQtRbm0UhSBDApheovVebJSFIAAIgSAACaB+k\nW8evmXObBkECg9E2SL8PqZxIRLEVJ+x0Ox2CBAajZZDMDxIl1mvfo339JKJhmW6mRJDAYLQM\n0ixqsDZDvpe5qR297mZKBAkMRssgNSqZarufUaeimykRJDAYLYMU38vhwbhIN1MiSGAwWgap\nSbJ9i5RZt4KbKREkMBgtg/Se/Rhpczt61c2UCBL41q2+pSfkehbGG5rW2o0iSqzfoWfHhklE\ngzPcTIkggW/NIqJfRM5Q2/NIe0dXysc+QUyFcTvcTocggW+9wVbDZSJnqH3LhhvHXLdsOBxO\nDhAk8KXLLSP6utsn8poube1Orr/o4tntf9k8hSCBsWgapFuvd+2yVLrRk21xmh1wNyF27cBg\ntAzS1WosQaHLetBdI5tRgXNupkSQwGC0DNIkevL41jsj5IO8OTTazZQIEhiMlkGqWs8sSVuo\nM79vrlvDzZQIEhiMlkGKGcz+3KLx8oOBsW6mRJDAYLQMUhWHLZLUAFskCCBaBmkCPX1i651h\ntJzd/4TGuJkSQQKD0TJIlysRUdzGatR+ZHMqdMHNlAgSGIym55Guv3BPz/XSieYsT60Pu5sQ\n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\no4nKZZkqvSxRvPW80rGiVIY3Jzo646dss6tE1MvbIrBNfpwRG/q6FHBBupRMkRu8esftMkTT\nsz75LVvJZvzmup7gabb5kcv3R6OKjyzk7Rias6kdr+77XzTVSGHrYOy5EOf9Q11lnLRfDXKj\nAEtIli1Cv+ytpPiJMmpie9NmPhjO1cLOnWNy6eFENbwtz9aaZb7OfSqDCLggSZeXZu0dPxf7\n2bpyb9Yn+WV9C3J4w+tFK8rVDpkFrOdjX8oyMtDD7IXVdxPVvxDqYndJJ/9Votq2LTP/0J0e\nCKNiDvnPXLEq6y9HZkHKNugRr0K5P+vMHyJ6V2hpjSbwguS19MouhjzaE0nRR7M+mfI9v0Lj\nH7Yi8S5apVth7F4zfs/846cbO3eyN/Z8jyjq5LnJ445L7xRv6C+NWGfyQ5wPpyhNGkwtKfyH\nl9z8Wli8y46jHPZNd83aJl0v4er0wXaPxx8ITAiSJJ196MlsFWvfsHUsa6WUqT7RbElax16a\nuGrs55L0FFHIHMuL9RxrFTLvD6VBPixxnvCPNJyokPLVZqw7Ii3L/USAac5YhxXk3ygK3yKd\n/QjtIrIJ9iClZMo1a32zPr+CrXVznZ4xP8yPKdqzdas/VVkdIf8qn/9DqXS41K1SfqIi9ol5\n93pK64m0Rxu/6cPye8H0fKvpvVi5dh0aNdGyQ/fV2GdKVlzaIrK/h8f8cy2NrCCbIAxS2m3b\nXXMTil0nFeZtubMwT6wywvlc4Rr57OpUdu/6C49/zO4+eXOLtU8HPvJ5RMRs+8TDiAorK+cH\n7KU/hX+GvPn3g+lEddJrOFzvyD578Syn2dzYx7ZI6PPcpeAL0sK4SNsR0Tz5ULo3Uc/c3/c/\nNm2bj3m4hhJVKUUxP5egZMt1GLwb8fqORb40vr+ywn1am5wuU9DT3iiKWLQsxRTl0AVsEaKS\nyiUgrl054fRwNztGAleCL0jViBKslVOz2DrUWEqZOyfF+mr6zzl1j2IeV6STclqXZSP03M+n\n3mNv/nCbXNW+P9RyGiWjb2Tyxw5v4tfMUpvb2eemhw95lT67HSO33VUsLlvllz6lJubUHnBx\nDI12eHh1xbEcJgx6wRekpkSlrfcvl6X8e6WTnapZqwzMLbIeGrkwTUkNv9Z8ENEodvfcS+U6\nH+Uv8WaqtFSeav+Qwd26VWcPnxH+EfJoVyTbMcvcdEra4dk1vM9W7t+cKMTeKORyKYqSe7zI\n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\nYXVbwE+8hkECCFwIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKA\nAAgSgAAIEoAACBKAAFoHaSEt13iJWVybXCGq/KATOpbA/H7T+CbvmnUsgeQPX4OF7iuEJK1u\nF1+sr9rLtzUO0vlCOn9v12tQcv+mlG+ffkUYRSV7lqAH9SuA5Bdfg0L3FUKS5oUkdr2Livyn\nbi4aB6kP6fy9vU7dMyTpc2qlWwn2UoNUKaU+/aFbCSR/+BosdF8hpMvR5c9I0hwao2422gZp\nEdXQ+XurS/Jl3k1DbuhVgtG0lv1dS0P0KgCn/9eg0H+FkN6hJeyv6b7B6majaZAuFG7/hs7f\nW1Jx+aYf7dSrBJUS2bZASk+srFcBOP2/BpkfrBBSw0QhI0pqGqR++Y69qfP3tn0//2sqGnJF\nrxLkqy/f1EvUqwCc/l+DzA9WCKlgvYyfnntltdrKHy2D9APNlnT/3jjTeOqh17JvUAf5tj3p\n3n+Onl+DzB9WiHRqdQ8f7LL3LXXz0TBIF4u2Men+vXFne1NJ3frYO0Y95dseuncrp+vXwPnF\nCnGKqNTyq7s701Pq5qNBkDIPMmckaWDsYUm3781aCH4aJ4GaH9OlENw16ijftqdrupWB0/lr\n4HRdIaz+I9rCbm4WjUpXNR8NgnSBbzm7SivpHUm/781SCPYzeDcVmZupSxlk5uiG8m39WF1P\nyer9NTD6rhBWmaHl5Nt+tFvVfDQI0u3vmPXSTNvY67N9v8ycCiGlNKZ79T3ALp/E19/MpIp6\nFkL/r0HSeYWwKVZdvhlB21XNRrtjpF8f4BpQ+wdWa7bM7KbSeJOOi2fG0Wb2dxON17MQ+n8N\n/rJCSAPCeZsGc62w26pmo3VbO5235JklCtzUc/nMduqQKWW00/UMjh98DVZ679pJf1K3VMk8\ng4x0QlbS/Xs7QomNFGd0K8NAqj++Dg3VbfmSf3wNFroHydydyvSrT2WN1dZO7+/tD9t++VHd\nypD+UtmI8q9m6LZ8yT++BgvdgySlvdYyvvqjautQcT0SgAAIEoAACBKAAAgSgAAIEoAACBKA\nAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAI\nEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKAAAgSgAAIEoAACBKA\nAAiSf5pNb+YyxbXJFaLKDzphe7zVNgrfGPbIvGzQnbGl2y02+7SUYIMg+adcg3S9BiX3b0r5\n9lmf2EoleyrmSFL6AKKyHauFUH8kSRsIkn/KNUivU/cMSfqcWlmf2Ep97a9OoWr/spvdDeld\n35QPskCQ/FOuQapLp/lN05Abliccg3QwtIQyuPCp8KrYJGkCQfJPjkG6OqZmXN0pKfzuqYFl\nSt1/sVkjSUoqLr/Wj3ZapnIM0iR6x3LvsXvOaVLeoIcg+SeHIJ0tS3UH3UF3sG3MvmIhbfoV\nrV2dBWn7fv6aqWjIFctkjkGqRee1LS4gSP7JIUij6HWzZJpEz0lSD1oiSZfupEaWl0zjqYd1\nMltlw7uSOTofdug0hiD5J3uQ0sKrm9hNatEi0gnqwp/50Rqks72p5CnrO2zV30OlVKqsdXmD\nHoLkn+xBOkBj5dvudO1Xepvfu64Eyfx+AjU/ZnuHw66dOSIeWySNIUj+yR6k1fSSfDuads+l\nr+W7cTxIF++mInMz7e9wPEaqQtYqhoVdf/B9YQFB8lfZt0g96dIKZYt0k2+RUhrTvVcc3+EY\npNE003KvDa3xfWEBQfJXjsdINeRjpOIFpUPUnT+zkgdpKo03Ob3DMUg7qfAl+c6xsNjbmpQ3\n6CFI/smh1u4hmi5Jpon0tGRuG7JCki7XZUHKLFHgpvM7nFo2jKHyf7GbQ3VohkYFDnYIkn+a\nTTWUyuwZ0pkyVH9wDap+TZL+iQ9t279478T20hFKbKQ4Y3mHU5DSRhCV7NQghHqZXM4eREOQ\n/NNsa2U2S8eV0TVi60y+xZ8+3KtI5SlpYQOlP2xtvY9a3uEUJEla1aNadIXOy1B7pxEEyUAy\nV+/mN0dpot4lgawQJAMxlynHDozMY2mT3iWBrBAkI5lL5R6f2oq66l0OyAZBMpTFzZPyN5+Z\nmfuEoDEECUAABAlAAAQJQAAECUAABAlAAAQJQAAECUAABAlAAAQJQAAECUAABAlAAAQJQAAE\nCUAABAlAAAQJQAAECUAABAlAAAQJQAAECUAABAlAAAQJQAAECUAABAlAAAQJQAAECUAABAlA\nAAQJQID/AyjU5PGApb9nAAAAAElFTkSuQmCC", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(myres$log2FoldChange,-log10(myres$padj),pch=19,cex=0.3,xlab=\"Log2 FC\",ylab=\"-log10(BH Adjusted P-value)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Extract results for genes GeneID:12932226 and GeneID:12930116" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "log2 fold change (MAP): trt 8 vs 7 \n", "Wald test p-value: trt 8 vs 7 \n", "DataFrame with 2 rows and 7 columns\n", " baseMean log2FoldChange lfcSE stat pvalue padj pval\n", " \n", "gene3317 322.392539 5.0435248 0.2597286 19.4184401 5.390243e-84 5.127469e-81 < 2.22e-16\n", "gene10 3.611165 0.5992853 0.6890620 0.8697117 3.844580e-01 5.526493e-01 0.38445797" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myres[c(\"gene3317\",\"gene10\"),]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exercise: Annotate the hits with adjusted P-values < 0.05 and absolute log2 FC greater than 2 in red" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nnDNnzjxybAAAAIsx/lbshx9+eOfOnR9//HHOnDmFBw8fPjx37tzk5OQZM2aYM16Bs2fPNm3a\n9L///a9+i1idTvfyyy9/+OGHlStXHjBgwKuvvurj47Ny5crAwMDMzEwL5AEAALBCxotdTExM\nhw4dAgIC7j+o0WgmTJgQFBS0detWs2X7y5QpU65evbp06dJvvvlGRH766acNGzZ079799OnT\na9eujYiIOHz48Keffnru3Ll3333XAnkAAACskPFid/PmzTp16hj8ql69eqmpqaaOZEBsbGzH\njh1HjBhRrlw5EYmPjxeROXPmODk56Sfoi2arVq127txpgTwAAABWyHix8/X1PXXq1MPH8/Ly\nYmNjGzVqZIZUD8rOznZ2di78qH+J1cPD4/45Go3G09PzwoULFsgDAABghYwXuxdffHHPnj3b\ntm27/+Ddu3cHDRqUmprauXNns2X7S5s2bX766afLly/rP+rvC+/Zs+f+OXfu3ImPj2/RooUF\n8gAAAFgh48VuypQpzz77bK9evYYNGyYiS5Ys+cc//lGzZs3169f7+flNnz7d7BlFpk6deuvW\nrWeffXbLli05OTmdO3fu3r376NGjExIS9BPS09MHDRp08eLFbt26WSAPAACAFTJe7Ozt7aOj\no2fPnq1f9WP79u1ff/21RqN555134uPjy5cvb/6Q0qFDh2XLlv3++++9evWqVq1aYGDg7du3\nU1JS/P39GzRo4OPjU6tWraioqD59+kyYMMECeQAAAKyQplQbKmRmZqakpNSoUaNy5crmy1SU\njIyMVatWrVq16syZM9evX9cfLFeuXLVq1Tp06DB69OigoCBzLCO8ePHiUaNGZWZm3v+cHwAA\nKJtycnIcHR3j4uKCgoKUzvIg4wsUX7t2zdnZWX9lzsXFxcfHp/CrrKysnJwci5U8Nze3N954\n44033hCR3NzcK1eu2NvbV6lSxc7OzjIBAAAArJnxW7FVq1aNjIw0+NWsWbO8vb1NHalEHBwc\natasWb16dVodAACAXpFX7FatWlU4jo+Pt7d/cOa9e/e2bt16+/Ztc0UDAABAaRRZ7MLCwgrH\nERERERERBqf16tXL9KEAAABQekUWu2+//VY/6Nmz57hx4zp27PjwnAoVKrRr185c0QAAAFAa\nRRa7Hj166AddunR54YUXOnXqZKlIAAAAeBTG34rdsWPHA0e0Wu2FCxfc3d2ffFXFvq8AACAA\n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\ndu/eXeM6VHLcOXPmTHh4+MiRI42zi9nY2Jw5c0Y+t1fl1JGdnZ2cGo3rCtTB0tKy+npWVVRP\nilZWVlWCaZOYMWNGSEjI008/bZzu+P4zGAxRUVG9evXq2LFj9+7d61599b4xPV1nyvTsr+kl\n/r/+9a+mfxWvvPJK165d5Yzu5uZWY2cAOcnVcf3dzc2tZ8+eycnJ8i/KdD1ZIUSPHj0GDx7c\npk0bOzu7gIAAnU53h190WNjtHcrKqp4zBwFmjmDXshHsmpfXX799EPL0rN4rKD09ffbs2bNn\nz05PT//mm2+qd2x/7733TJfv1P937i6DwXDw4MGXX345Njb25Zdfrj4AQgjRuXPnxMTECRMm\nVJkl2NraOi4ursYD8D3tG3d/tGnTpvqFv/tj+/btSr/7uzBgwADj7YEDB44ZM8bGxiYkJKS8\nvNzT07P69q6urqmpqUuXLq3eXuPzu7q6tm3b1nS9kyFDhsi/qPLy8scee6y2wubMmXOHX3Rm\nphQcLPXrJ/3viUAAtWnOwU6xTsdAA61YITw9RUaGCAsT1c6ddO7ceevWrcbbMTExU6dOFUJ0\n6tRp6NCh/v7+s2fPvnz58vHjx4UQ/v7+xoOoRqMZPXr0xYsXn3322Vu3btX4yjqdbuzYseXl\n5aaNjo6OS5cubdWqlb29fXFxcZWHSJLU6DessOzs7KSkJH9//7u6rNwwlZWV8tnH9PT0vLw8\n04VQFafVag0GQ233WlhYPProoz/88IP8Y3Z2dnJyspWV1bp164YNG+bk5HTlypUqD8nJyXn/\n/feLi4t79uxpMBjOnz8vhHB1dV25cuXzzz9vfNrKykohhLu7+4MPPvjFF1/U+OpWVlZ1rDWX\nn59/h/fWsaPYu/cO2wBoKZROli0AZ+xatNOnT+/Zs6eoqMjYUllZ+emnn27ZsuW3334z3TIz\nM7N6H/xevXoZb9d4xdN48XTq1KmjRo0aOHCgvHyn+rRu3Vpe2P5eqKiomDx5skajsbW1rc9l\n6/vgjjM829nZyaVqtdqlS5dWGVuzZs2ap59+uu6XqL7i2YMPPpibm2vavnHjxtdff12n0/Xo\n0cPY6Ozs7Ovra3q2wLSfZXh4uHE8jZWV1blz5+7RpwaYreZ8xq6lBruioqKMjIy8vLz7sCwS\nwc5MnDlzpspR1sLC4ty5c7NmzerYsWPXrl3nz59fx0HadFCk6Sq0amJhYfHKK6+sWLEiISGh\n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\ngmAHAACgEv8PGjper6Q4LdgAAAAASUVORK5CYII=", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(myres$log2FoldChange,-log10(myres$padj),pch=19,cex=0.3,xlab=\"Log2 FC\",ylab=\"-log10(BH Adjusted P-value)\",col=ifelse(myres$padj<0.05&abs(myres$log2FoldChange)>2,\"red\",\"black\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Converting/Normalizing Counts to \"Expressions\" " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Normalized Counts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have already shown how to \"normalize\" the counts using the estimated size factors" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
7A_E7B_E7C_E8A_E8B_E8C_E
gene011.04688513.94955419.33123019.198464 6.946801 7.906535
gene1132.5626138.3331157.7021176.4430142.4094154.9681
gene103.6822952.3249262.0348665.4852752.6050515.534575
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & 7A\\_E & 7B\\_E & 7C\\_E & 8A\\_E & 8B\\_E & 8C\\_E\\\\\n", "\\hline\n", "\tgene0 & 11.046885 & 13.949554 & 19.331230 & 19.198464 & 6.946801 & 7.906535\\\\\n", "\tgene1 & 132.5626 & 138.3331 & 157.7021 & 176.4430 & 142.4094 & 154.9681\\\\\n", "\tgene10 & 3.682295 & 2.324926 & 2.034866 & 5.485275 & 2.605051 & 5.534575\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "1. 11.0468847160291\n", "2. 132.562616592349\n", "3. 3.68229490534303\n", "4. 13.9495535325256\n", "5. 138.333072530878\n", "6. 2.32492558875426\n", "7. 19.3312297906844\n", "8. 157.702137766109\n", "9. 2.03486629375625\n", "10. 19.1984639342426\n", "11. 176.443025681373\n", "12. 5.48527540978361\n", "13. 6.94680136611903\n", "14. 142.40942800544\n", "15. 2.60505051229463\n", "16. 7.90653534632788\n", "17. 154.968092788027\n", "18. 5.53457474242952\n", "\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E\n", "gene0 11.046885 13.949554 19.331230 19.198464 6.946801 7.906535\n", "gene1 132.562617 138.333073 157.702138 176.443026 142.409428 154.968093\n", "gene10 3.682295 2.324926 2.034866 5.485275 2.605051 5.534575" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "head(counts(dds,normalize=TRUE),3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the counts stratified by treatment for the 2nd gene" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC/VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OlpaWmpqan\np6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5\nubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrL\ny8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd\n3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v\n7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///+5jfrr\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAfKklEQVR4nO3de3xU9Z3/8Q8QbgmYCigIiFgurkEE\nAUHELiIgVtsiF5VW8bIrl6W0VFy1Vler9KdYu1Wsv1pXWtdSq/ZCC/an1arFVoXF7rKu4pV6\n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", "text/plain": [ "Plot with title “gene1”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " plotCounts(dds, 2,intgroup=\"trt\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or alternatively (better)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC+lBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqan\np6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW3t7e4uLi5ubm6\nurq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vM\nzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e\n3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w\n8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8bAF6iAAAA\nCXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3deXxU5bnA8QeCGEIgCmFHkLJYEjWRVcQ2\noiCiVmVTZBUV4SIWFbFalV7FS1Fbt3oveFGv5da6tFVcSk0RtRdFUYtUUBEKKCD7FllCMnM+\n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", "text/plain": [ "Plot with title “gene10”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " plotCounts(dds, \"gene10\",intgroup=\"trt\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now get this plot for the top hit" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC/VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW3t7e4uLi5\nubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrL\ny8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd\n3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v\n7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///9zNFjB\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dCZhT9bnH8XfYYcApi+yKdAR1xgUB\nQQRFK4terSigdcOlrcJFFIFr1Wq1LVWxtlUrbbVirdK69Fr31qWK1Cog3opUUUFFrMKVfUeY\nSc5zz0lmYbhOBub8OCf/5Pt5ns45SU7gnTHfZpL8ScwDEJrFPQCQCwgJECAkQICQAAFCAgQI\nCRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQ\nICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAk\nQICQAAFCygH3mK1K780ZdUjznqc9nUydWPKd/Zp0Oe9/0pfMP7e0WfcJn8Q0Ye4jJPd90Lky\npOsKLOWU7f6JvzRL7Te6P7hkasPUidaz4xw0lxGS2xIr3/x+a6sIaba/87Xjuvhfr/G8T5ub\nNTmmlV/SAs97zj+v88AWZu2Wxz1xjiIkt92fvgtKhzTM7PDV3vazzRpu8S73q/nMW9fT7HLP\n62H2rR3e5yVmP4p74hxFSNni03PbtTju1fl+BKmTr5/ZqckBpz8fPNqZatat/OclzfY//V1v\n18tqhOT/iveQv/nAPz3P62b2U//E78z23fGFf87n/onHzb6eiOOby32ElCXmd0w9oLm5IqSb\nKgL5blkqpP3PTp1q/M9dL1s1f/78OytC2uJv36zY/nm7/+V5/8S7/vb9l8zaB9f8t39iaVzf\nYW4jpOywtZN/G9+/nTVIh/S6f+qE8QP8rzekQvIbOrBFcN6ulwX+WhFS+b/+9a9t/vZt//Qb\nn/lfgjuwdf72tb+b7RPcfy3xT8yJ5xvMdYSUHW4zK3ggmZhmqZCSA82u9zd+Qk2/SIV0+lpv\n/SCz5oldLgtUhlQh8U2zHuX/9M9c5p/a4W+f+iL1y57n3eVvH4/l+8t5hJQdSsxGB9vhqZA+\n9m/wq/1TXzYKHvX4yRSs9U894p+7fJfLAjVD2n6Of/f1N+/5yjObmP0ueajZwfPWP7qPf+aD\nkX9veYGQskJ5Y7NHg52HUiG9YNVuDELqGlz2sn/q37tcFqgR0kdHmTV7zPP+nqrOv+fyf1l8\nOPX0d4UX4/j+ch8hZYWP/Fv43GBnXiqkX+8Uy4TUs3bBZbNSIdW8LLBzSMGdztff8ncW+Wcu\n8dLPPLzseXc0Do7/tv+/d+L4/nIfIWWFz9I399S9jh/SfWb7zK/wyS4h1bwsUB3S9iv83RHr\ngt2V/t58L/1E3SJ/+/bUkec/8rl/Ym0c31/uI6SskGhudkewc1sqJP/3soLtVRfWDKnmZYGq\nkJJj/L2fphfalft/4gwvvaahqp2nzXok9/b3kp8IKTv08W/iWzxvTZdUSCv9BzZ/9s/94ojS\n0rm7hFTzskBVSMGrs9dX/onfMhuW8JL+ptTbUVJc/JLnlQ0x+3EM31w+IKTs8JDfQP8Hf9Uj\n/fS3N9b//e3Rz58+yuzQxC4h1bwsUBlS8gh/p3lhygveU/6JU6ef5X+9zfOOM+vwX3d9wz/x\nUYzfZC4jpOxQflT66YPW6ZC+aFvxdMK+7+76q13NywKVIa3a6WmIv3plwyp2+2zzvDeaVpy4\nNr5vMbcRUpbYNCq4nQ9/sWKJ0KJ0WKe+7/2/kGpcFqgMaW6NkLxN30n9o4ozghedvBcPDvab\n3lQex/eWDwgpWyTff+CuOWUvm7VJn1z837c+tKiWQzNctrNl9930m/cq9ne8cvetD6/TjIr/\nj5Cywy1TptwXbCebDY17FtQDIWWHMf6vdDe8Nney/9vYA3HPgnogpOyw+vDKRzdT4h4F9UFI\nWaLsj0N7NGvb+8IFcQ+CeiEkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJ\nECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAg\nJECAkAABQgIECAkQICRAgJAAgQhCWvAm4JR6fP7o3g9pvgGOmb/HN/O9H9Jrtn2v/x2A0HZ7\nbY+vQ0jALggJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQ\nAIHoQ9qybEOyrmNyIaQ5k4eNuG5x3FMgItGG9NIFPYvMrMWBkxZmPM79kJKTGwy9ZlK/Jr+N\nexBEI8qQkpeYFfUZOnJo3zZmF5dnONL9kKa3nBVs7m00O+ZBEI0oQ7rTjppdltornzvEpmU4\n0vmQkl1vS++MOTneQRCRKEPq32Vb1X5ZrwMzHOl8SB/Zx+mdJ1rGOwgiEmVIrUbvdGJikwxH\nOh/SW7Y+vTO7INOvsMgZUYY0oGv1PVJ57+IMRzof0sqCN9M793WOdxBEJMqQplc/Rpo3xG7O\ncKTzIXmDzkttdvQeH/MgiEakz9qNMyvqO2zU8H5tzMaUZTjS/ZDmNbtsjectPaXT8rgnQSSi\nfR1p0fgeLc2sefHEzO+U7H5I3itfb1Dcxfp/EPcciEb0Kxs2fZIfKxvK5s74w9txD4GosEQI\nEGCJECDAEiFAgCVCgABLhAABlggBAiwRAgRYIgQIsERIKPmnMX1OnMI/L89HLBHS2XZK4QU/\nu25gsz/EPQiilz1LhFaec2aVQfZlqL8jHlfsvyTY3NmIlUH5J3uWCG34/tVVhtumUH9HLNY3\nfTK9c9JFwddPHr/31a1xzoMoZecSobtdDOnlRjvSO786yPNWjypo3aPRvg/FOxIik51LhJwM\n6ZlWFTt/6OJt73P4fM/bfEujh2MdCZHJziVCTob0tn2W3rl+oPebdqtSuzd1cPFZE+y57Fwi\n5GRIyYOuSG1Xd/yFN2xS+rwNjV+JcSJEJzuXCDkZkvdi4ytXeOWvHX7kNq/k1xXndZ0Z60iI\nSnYuEXIzJO/FYmvfvMHZq/0735vS5yRaPRXvSIhIdi4RcjQkr3zho8+vCHam9E0/xf9cw5Wx\nDoSoZOcSIVdDqrKs8OqEv1ncbWzckyAa2blEyPmQvOe/VjLhh6ObncpLsnkie5YI7cz9kLwV\nPxl13Ngn6/xOkSMiDmnTwnUVe8uXZjgsB0JCfok0pPcHF1jBqPTLlv0z/SmEBMdEGdKylnbM\n2R2s67LgBCEhl0QZ0rn2oOclrrRjgye0CAm5JMqQug8KviZG230eISG3RBlSk3NTmxWt2q8j\nJOSWSO+RuqZfhJ1upyUICTklypCm2MjPg23yZJu0mZCQS6IMaX2pWafgA4NWHW2tiwgJOSTS\n15E2Tuvd5q1gZ+sPOhkhIYdEv0QorfzjlzNcSkhwTFwhZUZIcAwhAQKEBAgQEiBASIAAIQEC\nhAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQE\nCBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQ\nEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIg\nQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBI\ngAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAA\nIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEB\nAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIBB9SFuWbUjW\ndQwhwTHRhvTSBT2LzKzFgZMWZjyOkOCYKENKXmJW1GfoyKF925hdXJ7hSEKCY6IM6U47anZZ\naq987hCbluFIQoJjogypf5dtVftlvQ7McCQhwTFRhtRq9E4nJjbJcCQhwTFRhjSga/U9Unnv\n4gxHEhIcE2VI06sfI80bYjdnOJKQ4JhIn7UbZ1bUd9io4f3amI0py3AkIcEx0b6OtGh8j5Zm\n1rx44oKMxxESHBP9yoZNn7CyATmHJUKAAEuEAAGWCAECLBECBFgiBAiwRAgQYIkQIMASIUCA\nJUKAAEuEAIHsWSK0+YdXVxlOSHBL9iwRWnHykCqH2MZQfwcQMZYIAQIsEQIEWCIECLBECBBg\niRAgwBIhQIAlQoAAS4QAAZYIAQLZs0RoZ4QEx/CJfYAAIQEChAQIEBIgEGVIRTVlOJKQ4Jgo\nQ7q3r9kBR1TJcCQhwTGR/mpXNtye2K0DCQmOifYx0jOEhNwUbUifFz69W8cREhzDs3aAACEB\nAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQECYUNaVflWdZvWSOZJIyQ4JmxIdn/FzrXtJPOk\nERIcEyqkmTNn2iUzU2Yc1lw4FSHBMaFCsp2NEE5FSHBMqJCeeeYZm/hM2t++FE5FSHBM2MdI\nw1/QzVKNkOAYnv4GBEKH9NjZJ1aQzURIcE7YkGaYFbZN0w1FSHBN2JBKCl+p8y3x9xwhwTFh\nQ2o6TjdLNUKCY8KG1PUy3SzVCAmOCRvSjV1W6YapQkhwTNiQyi7q+cB7K1cFdEMRElwTNqSi\noqo1QrqhCAmuCRvS2Gq6oQgJrmFlAyBASIBA2JDOq6YbipDgmtD/QrbS/sW6oQgJrgn99Hdg\nx4pneh+/RTcUIcE1qsdI67tdGX6YKoQEx8iebJjQKfQs1QgJjpGFdEmz0LNUIyQ4RhRS4sUW\nhwmmqURIcEzYkArTGpv9XjcUIcE1YUM6pcKYJ3UzERKcw8oGQEAR0vp3lO/7HSAkOCZ0SBtu\naG9mba/fIBvJIyQ4J2xIW0qswxnjR3W00q26oQgJrgkb0lV2VfDBLtsm29WymQgJzgkbUq/D\n0u/GlSjpLZooQEhwTNiQWoyp2Dm/UDJPGiHBMWFDKu2bvkdK9mFlA/JY2JDG260Jf5P4qSnf\n4I6Q4JiwIa3rZiUTpk4otQPW64YiJLgm9OtIyy9tZGaNxi6XjeQREpwjWNmw/YNZi7eLxqlA\nSHBM+JAWBZ/Z98t3RPOkERIcEzak5FgbGJxll5fLZiIkOCdsSPfY0c/6m2cG2j2ymQgJzgkb\n0nEHbEttv+zOygbksbAh7XNhxc4FLSXzpBESHBM2pIMGV+wM7imZJ42Q4JiwIV1S8Ghq+7hd\nJJooQEhwTNiQVu9vJ0y995b/sA4rdEMRElwT+nWkT8YUBG/9/c33ZSN5hATnCFY2rJ7zyKzP\nReNUICQ4hncRAgQICRAgJECAkAABQgIECAkQICRAIExIHWoSTkVIcEyYkAYG9jPr2Luz2fG8\nixDyWNhf7Rbsc/xCf/POCS0XyGYiJDgnbEijO29MbTd2Hi2aKEBIcEzYkDqfVbFzFp9qjjwW\nNqROAyp2+u+vGKcCIcExYUM63R5Obf9oo0QTBQgJjgkb0qJCO/2ep+8ZYa0+0A1FSHBN6Bdk\nXz0y+Hd9dvTrspE8QoJzwq9sSMybedsj/0yqBkohJDgmfEjJpXNWetqOCAmuCf+r3cFmT3jF\nkzfKRvIICc4JG9K7LQpH+SEdbgfz+UjIY2FDOr9g7lI/pOQvbIpuKEKCa0KvbDjRC0LyvGMO\nks1ESHBO6E81v7gipHP5VHPksbAh9RuUDqmsax/dUIQE14QN6Sf2lyCkbWfatbqhCAmuCRtS\n2bGNBtvJZ7Wxw7bphiIkuCb060hf/qKrmbX9gfSWT0hwjOLNTza+s0YzTBVCgmNk7yK0Zkno\nWaoREhwTNqTiQYvTO1OVb9JFSHBM2JDM9nkitUNIyGehQ/pWsV1d5hES8lvokKauO9VO+IKQ\nkN/Ch+QlflzQ+TVCQl4ThOR5f23d6Jc/JiTkMUlI3sdHWjtCQh4LG1LhtNRm60VGSMhjqhdk\nk8/eH36YKoQEx/D5SIBAmJDMlnhWTTgVIcExYUIaMWK5961qwqkICY7hVztAIExIm2oSTkVI\ncEy4x0g1CKciJDgmTEjn1SScipDgGB4jAQKykB77duhZqhESHBM6pGX33x742SFFspkICc4J\nG9L8VpXPNVypG4qQ4JqwIZ1WcMdfe54158XjT1Z+RBIhwTGhP9X8cM/7yWDPW9t+pm4oQoJr\nwobU9ELP+1thuedNGKwbipDgmrAh9fgPz1tlsz3v1n10QxESXBM2pHMaPVHmdf1PLzliP91Q\nhATXhA3pw2Y207vYRp5oY3VDERJcE/p1pIWXv+KtHGQ2bLVsJkKCczQrG5LL1yqGqUJIcAxr\n7QCB0CHtWPRqBdlMhATnhA1pQXf+PRIQOqTBdtItt6fphiIkuCb0G0QOV66xq0RIcEzoDxr7\nL90s1QgJjgkb0rgS5aeZVyIkOCZsSJuPGvj0u++l6IYiJLgmbEgrjuBZOyB0SCOs35Tr0nRD\nERJcEzakdoN51g4IHVLP7+lmqUZIcEzYkCb2LtvDa29ZtqHOOzFCgmPChvTlSae+/sWqlN24\n5ksX9CwysxYHTlqY8ThCgmPChlRUuPvP2iUvMSvqM3Tk0L5tzC4uz3AkIcExYUMaW63O691p\nR81O/yJYPneITctwJCHBMVH+e6T+XapXQZT1OjDDkYQEx4QN6a6Hd/96rUbvdGJikwxHEhIc\nE3r1d7fdv96ArtX3SOW9izMcSUhwTNiQrrC5u3296dWPkeYNsZszHElIcEzYkBI/bHXnm6vW\nBeq8XnKcWVHfYaOG92tjNibT60+EBMeEDalt2wZ7sGh10fgeLf0jmxdPXJDxOEKCY8KGdGG1\n3bz2pk9Y2YCcE/3bcbFECDlIEdL6d9bs5jVZIoQcFTqkDTe099Noe/2Guq/HEiHkrLAhbSmx\nDmeMH9XRSrfWeT2WCCFnhQ3pKrsqeJV122S7us7rZV4iVP7Un6pcQkhwS9iQeh2WfuYgUdK7\nzutlXiK0tGPrKi1s4x5PBcQobEgtxlTsnF9Y5/VYIoScFTak0r7pe6Rkn8PqvB5LhJCzwoY0\n3m5N+JvET+2yOq/HEiHkrLAhretmJROmTii1A9bvxjVZIoQcFfp1pOWXNvLTaDR2+e5emyVC\nyEGClQ3bP5i1ePueXH/TG4szvRrrERKcE+Vau+t+E3z98GT/HqzZlIzPbxMSHBM6pMfOPrFC\n3dfr73/533bW4/yLS61XpjsxQoJjwoY0w6ywbVrd1wtC+rbd4P9el7jZfpThSEKCY8KGVFL4\nym6/+XcqpB6HBE+Xe8mSfhmOJCQ4JmxITcftwfWCkFqckz5xbssMRxISHBM2pK51vw5bfb0g\npF4D0idOOCLDkYQEx4QN6cYuu/Oe3xXXa3fNjFk3N3gq2H/OvpvhSEKCY8KGVHZRzwfeW7l7\nb6LfvWHqTVL29bzE2Q2bLcpwJCHBMaHfRL9oDz76csdHL9z9vdGD/fys598zHUhIcEyUb6Jf\nLfFu5qf6CAmOif5dhHYHIcExhAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAA\nIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEB\nAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKE\nBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQI\nEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBAS\nIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBA\nSIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiA\nACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAh\nAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEC\nhAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQE\nCBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQ\nEiBASIAAIQEChAQIEBIgQEiAQPQhbVm2IVnXMYQEx0Qb0ksX9CwysxYHTlqY8ThCgmOiDCl5\niVlRn6Ejh/ZtY3ZxeYYjCQmOiTKkO+2o2WWpvfK5Q2xahiMJCY6JMqT+XbZV7Zf1OjDDkYSU\nr9ZujnuCeooypFajdzoxsUmGIwkpL22Y1MUKim/ZEfcc9RFlSAO6Vt8jlfcuznAkIeWjNaU9\nZ7z1xi/aD3OxpChDml79GGneELs5w5GElI8uKd0QbJa2+3nck9RDpM/ajTMr6jts1PB+bczG\nlGU4kpDy0NbCx9M7N5fEO0i9RPs60qLxPVqaWfPiiQsyHkdIeeg9W5HemdUw00sjWSr6lQ2b\nPmFlA75CVUgvE9LuYIkQvtK2lo+ld35yaLyD1AtLhJAtxh28Nth82OaOuCepB5YIIVusO/zr\n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\nrkJggg==", "text/plain": [ "Plot with title “gene1209”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plotCounts(dds, \"gene1209\",intgroup=\"trt\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### FPM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another approach is to FPM: fragments per million mapped fragments" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
7A_E7B_E7C_E8A_E8B_E8C_E
gene0 7.563666 9.55108713.23585413.144951 4.756389 5.413507
gene1 90.76399 94.71495107.97671120.80836 97.50598106.10474
gene102.5212221.5918481.3932483.7557001.7836463.789455
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & 7A\\_E & 7B\\_E & 7C\\_E & 8A\\_E & 8B\\_E & 8C\\_E\\\\\n", "\\hline\n", "\tgene0 & 7.563666 & 9.551087 & 13.235854 & 13.144951 & 4.756389 & 5.413507\\\\\n", "\tgene1 & 90.76399 & 94.71495 & 107.97671 & 120.80836 & 97.50598 & 106.10474\\\\\n", "\tgene10 & 2.521222 & 1.591848 & 1.393248 & 3.755700 & 1.783646 & 3.789455\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "1. 7.56366552254104\n", "2. 90.7639862704925\n", "3. 2.52122184084701\n", "4. 9.55108700968961\n", "5. 94.7149461794219\n", "6. 1.59184783494827\n", "7. 13.2358542733735\n", "8. 107.976705914362\n", "9. 1.39324781824984\n", "10. 13.1449511312883\n", "11. 120.808360397079\n", "12. 3.75570032322524\n", "13. 4.75638909389675\n", "14. 97.5059764248834\n", "15. 1.78364591021128\n", "16. 5.41350709625843\n", "17. 106.104739086665\n", "18. 3.7894549673809\n", "\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E\n", "gene0 7.563666 9.551087 13.235854 13.14495 4.756389 5.413507\n", "gene1 90.763986 94.714946 107.976706 120.80836 97.505976 106.104739\n", "gene10 2.521222 1.591848 1.393248 3.75570 1.783646 3.789455" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "head(fpm(dds),3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's calculate the FPM manually. For gene $i$ sample $j$, the FPM is defined as $\\frac{K_{ij}}{D_j}\\times 10^{6}$ where $D_j=\\sum_{i=1} K_{ij}$ is the read depth for sample $j$. First get the read depth for each sample" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
1224153
\n", "\t
7B_E
\n", "\t\t
1294576
\n", "\t
7C_E
\n", "\t\t
1493765
\n", "\t
8A_E
\n", "\t\t
1492923
\n", "\t
8B_E
\n", "\t\t
1581586
\n", "\t
8C_E
\n", "\t\t
1736478
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 1224153\n", "\\item[7B\\textbackslash{}\\_E] 1294576\n", "\\item[7C\\textbackslash{}\\_E] 1493765\n", "\\item[8A\\textbackslash{}\\_E] 1492923\n", "\\item[8B\\textbackslash{}\\_E] 1581586\n", "\\item[8C\\textbackslash{}\\_E] 1736478\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 12241537B_E\n", ": 12945767C_E\n", ": 14937658A_E\n", ": 14929238B_E\n", ": 15815868C_E\n", ": 1736478\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", "1224153 1294576 1493765 1492923 1581586 1736478 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "D<-colSums(counts(dds))\n", "D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, the fpm() function uses a robust approach. We will disable this right now as to replicate the standard FPM. Let's look at gene 1" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
7.35202217369888
\n", "\t
7B_E
\n", "\t\t
9.26944420412552
\n", "\t
7C_E
\n", "\t\t
12.7195375443929
\n", "\t
8A_E
\n", "\t\t
14.0663651105918
\n", "\t
8B_E
\n", "\t\t
5.05821371711687
\n", "\t
8C_E
\n", "\t\t
5.75878300790451
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 7.35202217369888\n", "\\item[7B\\textbackslash{}\\_E] 9.26944420412552\n", "\\item[7C\\textbackslash{}\\_E] 12.7195375443929\n", "\\item[8A\\textbackslash{}\\_E] 14.0663651105918\n", "\\item[8B\\textbackslash{}\\_E] 5.05821371711687\n", "\\item[8C\\textbackslash{}\\_E] 5.75878300790451\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 7.352022173698887B_E\n", ": 9.269444204125527C_E\n", ": 12.71953754439298A_E\n", ": 14.06636511059188B_E\n", ": 5.058213717116878C_E\n", ": 5.75878300790451\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", " 7.352022 9.269444 12.719538 14.066365 5.058214 5.758783 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fpm1<-fpm(dds,robust=FALSE)[1,]\n", "fpm1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now get the raw counts for gene 1" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
9
\n", "\t
7B_E
\n", "\t\t
12
\n", "\t
7C_E
\n", "\t\t
19
\n", "\t
8A_E
\n", "\t\t
21
\n", "\t
8B_E
\n", "\t\t
8
\n", "\t
8C_E
\n", "\t\t
10
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 9\n", "\\item[7B\\textbackslash{}\\_E] 12\n", "\\item[7C\\textbackslash{}\\_E] 19\n", "\\item[8A\\textbackslash{}\\_E] 21\n", "\\item[8B\\textbackslash{}\\_E] 8\n", "\\item[8C\\textbackslash{}\\_E] 10\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 97B_E\n", ": 127C_E\n", ": 198A_E\n", ": 218B_E\n", ": 88C_E\n", ": 10\n", "\n" ], "text/plain": [ "7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", " 9 12 19 21 8 10 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cnt1<-counts(dds)[1,]\n", "cnt1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Now calculate the FPM for gene 1" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\t
7A_E
\n", "\t\t
7.35202217369888
\n", "\t
7B_E
\n", "\t\t
9.26944420412552
\n", "\t
7C_E
\n", "\t\t
12.7195375443929
\n", "\t
8A_E
\n", "\t\t
14.0663651105918
\n", "\t
8B_E
\n", "\t\t
5.05821371711687
\n", "\t
8C_E
\n", "\t\t
5.75878300790451
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[7A\\textbackslash{}\\_E] 7.35202217369888\n", "\\item[7B\\textbackslash{}\\_E] 9.26944420412552\n", "\\item[7C\\textbackslash{}\\_E] 12.7195375443929\n", "\\item[8A\\textbackslash{}\\_E] 14.0663651105918\n", "\\item[8B\\textbackslash{}\\_E] 5.05821371711687\n", "\\item[8C\\textbackslash{}\\_E] 5.75878300790451\n", "\\end{description*}\n" ], "text/markdown": [ "7A_E\n", ": 7.352022173698887B_E\n", ": 9.269444204125527C_E\n", ": 12.71953754439298A_E\n", ": 14.06636511059188B_E\n", ": 5.058213717116878C_E\n", ": 5.75878300790451\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E \n", " 7.352022 9.269444 12.719538 14.066365 5.058214 5.758783 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myfpm1<-cnt1/D*1e6\n", "myfpm1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "This is how you check if two numeric columns are \"equal\"? One approach is to calculate the maximum absoute difference" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "0" ], "text/latex": [ "0" ], "text/markdown": [ "0" ], "text/plain": [ "[1] 0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "max(abs(fpm1-myfpm1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above approach is also helpful in establishing if the difference is \"small\". Another approach to test for equality to use the all.equal() function" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "all.equal(fpm1,myfpm1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is generally a bad idea to compare numeric vectors using == (e.g., fpm1==myfpm1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### FPKM" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "To calculate the FPKM (fragments per kilobase per million mapped fragments) we need to add annotation to assign the feature lengths. More specifically, for gene $i$ sample $j$, the FPKM is defined as $\\frac{K_{ij}}{\\ell_i D_j}\\times 10^3 \\times 10^{6}$ where $\\ell_i$ is the \"length\" of gene $i$ (fragments for each $10^3$ bases in the gene for every $\\frac{D_j}{10^6}$ fragments. More on this later." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Regularized log transformation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The regularized log transform can be obtained using the rlog() function. Note that an important argument for this function is blind (TRUE by default). The default \"blinds\" the normalization to the design. This is very important so as to not bias the analyses (e.g. class discovery)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": true }, "outputs": [], "source": [ "rld<-rlog(dds,blind=TRUE)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Hierarchical clustering using rlog transformation" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dCZgU1bnw8RdQlgGcCCgiEwER\nEFBAVhEVNSISExdARUQQFTEuQSUYjTcaNSFoFo2agFeNn/HLRmKIosaLiSYaReW6RlFRVERZ\n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\n1t7o6wAAAABJRU5ErkJggg==", "text/plain": [ "Plot with title “Cluster Dendrogram”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dists<-dist(t(assay(rld)))\n", "plot(hclust(dists))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "PC Analysis using the rlog transformation" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzdd3xUdb7/8e85ZybTUyihF9FIQCTAIkVhFZEiSrCsLKKiIEXXsuhiQRfB\ntrIrKPWiPwsgskjWjbhYKAq6gLGgEkBBARUEhQApk2SSybTfH+fe2WyAmUky5czh9fyDx5wz\n35zzyYeZyXtOlQKBgAAAAEDykxNdAAAAAKKDYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2\nAAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAA\nOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGw\nAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA\n0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmC\nHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAA\ngE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q\n7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAA\nAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSC\nYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcA\nAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKAT\nBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsA\nAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACd\nINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgB\nAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADo\nBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEO\nAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABA\nJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2\nAAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAA\nOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGw\nAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA\n0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmC\nHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAA\ngE4Q7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q\n7AAAAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAA\nAHSCYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSC\nYAcAAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcA\nAKATBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKAT\nBDsAAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsA\nAACdINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACd\nINgBAADoBMEOAABAJwh2AAAAOkGwAwAA0AmCHQAAgE4Q7AAAAHSCYAcAAKATBDsAAACdINgB\n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\nVRiey+VqfLi0WCw2m628vNztdkelqtjJyMioc6VoDbJarVar1el01tTUJLqWUCRJSk9P134/\nbTabxWIpKyvzeDyJriUUWZZTU1NLS0sTXUgYaj9LS0u9Xm+iawlFURS73V5WVpboQsKw2+1m\ns7mkpMTn8yW6llAMBoP6uZToQsJwOBwmk6m4uFjjW+yMRqPZbC4vL0/I2ps1a5aQ9WpfpFtT\nZs2ademll/bv3/+Pf/zjBRdcoCjKnj17nn/++T179ixatCimJQIAACASkQa7iy++OD8//777\n7ps0aVJwZuvWrVeuXFnnwDsAAAAkRD2Ofxo5cuTw4cO/+uqrffv2eTyerKysXr16Wa3W2BUH\nAACAyNXvwHaj0di3b9++ffvGqBoAAAA0WKTBrrS09P777//ggw9Oe5rCiRMnoloVAAAA6i3S\nYPenP/1p6dKlffv27d69u3qJHQAAAGhKpMFu7dq1v//971etWqXx608CAACctSLd9lZRUXHF\nFVeQ6gAAADQr0mB38cUXf/311zEtBQAAAI0RabBbuHBhfn7+woULNX4jAQAAgLNWpMfYTZ8+\nvX379vfee++0adPat29vMplqP7t79+4Y1AYAAIB6iDTYVVdXZ2RkDBs2LKbVAAAAoMEiDXbr\n1q2LaR0AAABopMZeke79998fMmRIVEoBAABAY0S6xS4QCCxfvnzz5s1ut7v2zE8//bT2HAAA\nACRKpMFuwYIFU6dOdTgcXq+3qqqqffv2Pp/vyJEjrVq1ev7552NaIgAAACIR6a7Yl156qXv3\n7sePH9+/f78sy1u3bj18+HBBQYHP5xswYEBMSwQAAEAkIg12P/744/Dhw00mU+vWrX/zm998\n/vnnQoh+/fqNGTPmoYceimWFAAAAiEikwc5isfj9fvVxz549t2zZoj7u06fP1q1bY1IaAAAA\n6iPSYJednb1u3Tr1PImcnJw1a9YEAgEhxN69e51OZwwLBAAAQGQiDXbTpk3bvXt3p06dKioq\nBgwYcOjQoUmTJs2bN++FF17o379/TEsEAABAJCI9K3bUqFEvvfRSXl5eIBDo3r37008/PXPm\nTI/H0759+7lz59ZrlX6/f9WqVZs2bVJPvBg/fryiKA0YAwAAgNoiDXaSJE2cOHHixInq5PTp\n0+++++6ffvqpc+fOKSkp9VplXl7eu+++e/fddxsMhsWLF8uyPGHChAaMAQAAQG2RBrtTORyO\nCy+8sL4/5fV633vvvVtuueXiiy8WQrjd7sWLF48dO9ZsNtdrDAAAAOoIFewuu+wyi8Xy/vvv\nq49DjPzoo48iXN/hw4dLS0t79eqlTvbq1cvlch04cOCCCy6o1xgAAADUESrYVVRU+Hw+9bHX\n643K+oqLi4UQTZs2VSdtNpvZbC4tLa3XmMrKyieffDI4OWjQoNC5MxLqMXxms7m+e5bjT5Zl\nh8OR6CrCUPtpsVhMJlOiawlFkqSk6KfBYBBCWK3W4FWHtEmSJEVRkqif6tn9mpVc/bTZbBrv\npyzLSdFPo9EohLDb7fQzUdavX//MM898/fXXXbt2ve+++w4dOvTnP/+5urpaCHHFFVekp6c/\n88wz99xzz969e3/66SchxJdffjljxowvv/xSkqSePXs++eSTvXv3VhfVo0ePli1brlu3Lrjw\na665Zv/+/bt37/Z6vUajccmSJRkZGYsXL96xY0fXrl0nT57cyGPPQgW77du3Bx9H62J1TqfT\naDSqnwIqq9VaVlZWrzE1NTUffPBBcLJTp07RSg/q20n7NJ6WguhndNHP6NL+tzgV/Ywu+hld\nydLPyOXl5d14440XXHDBfffdd+zYsdtuu6179+61B5SWlo4cOdJgMAwfPlwI8cEHH4wYMaJl\ny5bjx48XQqxcubJ///7vvvvu0KFDI1ndG2+88dlnn910000DBw58++23b7/99sOHDz/22GMN\nrj/SY+w6dOgwYsSIJUuWNHhNKrvd7vF4fD5f8CxXl8tlt9vrNSY9PX3Tpk3BSb/ff/LkyUYW\nZjabbTZbRUWFeq0+LUtPT6+zjVODLBaL1WotLy+vqalJdC2hSJKUlpam/X5arVaLxeJ0Oj0e\nT6JrCUXd/Fnnq5oGqfsBysrKorUvIkYURbHZbNq/VqjdbjeZTKWlpcGdPNpkMBgsFkt5eXmi\nCwnD4XCkpKSUlJRofAu90Wg0mUwVFRUJWXtwt150ud3uadOm5eTkbN261Wq1CiFGjRp15ZVX\n1s6vH3744ZQpU5YsWSJJkt/vv++++5o1a7Z9+/bMzEwhxP3335+TkzNt2rQdO3bIcviLyn38\n8cfr1q0bNmyYEOLRRx+94oorZs+ePXny5JYtWzbsV4g02GVnZ2/ZsiUQCEiS1LA1qTIyMoQQ\nxcXFzZs3F0JUVVVVV1erMyMfI0lSampqcNLlcrlcrsZUFRQIBDS+6VuVFEUK+hlt2u+nWp7G\nixS16tR4qfQzuuhndCVLP+vl008//fnnn//yl7+oqU4IMWzYsG7duu3bty84RpKkuXPnqnHo\np59+2r179xNPPKGmOiFEZmbmHXfcMWvWrIMHD55zzjlh19i/f3811QkhrFbrjBkzRowYsXHj\nxltuuaVhv0KkFyhetGiR1+u98847KysrG7YmVceOHdPS0nbs2KFO7tixw2KxZGVl1XcMAABA\ndKkBrlu3bsE5kiR17dq19piOHTvabDb18f79+4UQdS4Sok4eOHAgkjXW2c/bs2fPyH/2tCLd\nYjd9+vS2bdu++OKL/+///b+OHTs2adKk9rO1j8YLTVGUESNGvP766y1btpRl+ZVXXhk6dKh6\nHZP169e73e7c3NwQYwAAAGLktIe71NmjWjsCnXaDpTr+TEd6hD7iSz0IrTFHiUQa7NSDkAYP\nHtzgNQWNGTPG4/HMmzfP7/cPGDDgtttuU+cXFBQ4nc7c3NwQYwAAAGLk/PPPF0J8++23PXr0\nCM7cs2fPmcafe+65Qojdu3dfc801wZm7du0SQgT3NNY+VjIQCOzfv7/2EXs7d+6svcCvv/66\n9s82gKSDveNROcbOYrHYbLby8nLtnzyRkZFRUlKS6CrCsFqtVqvV6XRq/+SJ9PR07ffTZrNZ\nLJaysjLtnzyRmpqq/ZNR1H6WlpZq/+QJu92u/ZNR7Ha72WwuKSnR/skT6udSogsJw+FwmEym\n4uJi7Z88YTabE3UySrNmzWKxWKfTee6557Zv337r1q0Wi0UIsWHDhmHDhplMpuDlTkpLS4M7\nKn0+X/fu3UtKSgoLC9UTA4qKinJycpo0abJz505FUfr37//LL7/s379fvazBe++9d9VVV11w\nwQXBy50IIYInT1RVVQ0ZMmT79u379+9v27Ztw36Fht95QvX+++8/99xzGzdubORyAAAAEis1\nNXX27NkTJ07s16/fddddV1RU9I9//KN379579+497XhFUZ577rmrr766d+/eY8eODQQCK1eu\nPHHixGuvvabuVB08ePDTTz+dm5t7/fXX79u3b9myZb/97W9rX8qjTZs2ubm5t956a2Zm5ttv\nv7179+6ZM2c2ONWJyINdIBBYvnz55s2ba2/QCgQCn376qfY3cQEAAETi9ttvb9as2TPPPPPc\nc8/16tVrzZo1ixYtUm+dcFrDhg3btm3bjBkzXn31VSFEr1693nrrreAFiv/857PEbEEAACAA\nSURBVD9XVlbm5eV9+umnffv2Xbt2bV5eXu3rFd98881dunRZuHDhd999l52d/dJLL91+++2N\nqT/SXbHz58+fOnWqw+Hwer1VVVXt27f3+XxHjhxp1arV3Llzb7zxxsYU0UjsitUgdsVGF7ti\no4tdsdHFrtjoYldsJGK0K9btdu/atatdu3YtWrQIzhw0aFB1dXVBQUF016Xuin3ooYdmz54d\nxcVGermTl156qXv37sePH9+/f78sy1u3bj18+HBBQYHP5xswYEAUCwIAAEgISZIuvfTShx56\nKDjn0KFDW7duvfzyyxNYVb1EGux+/PHH4cOHm0ym1q1b/+Y3v/n888+FEP369RszZkzt3x8A\nACBJpaSk3HPPPcuXL584ceKqVaueffbZiy++2Gaz3XPPPYkuLVKRBjuLxRLcJtyzZ88tW7ao\nj/v06ROt28gCAAAk1lNPPfXcc88VFBTcfvvtL7744qWXXrpr164G3+Ar/iINdtnZ2evWrVOP\nP8vJyVmzZo16cN7evXu1f7wCAABAJAwGw3333ffNN9+4XK79+/evXLmyXbt2MVpRIBCI7gF2\nIvJgN23atN27d3fq1KmiomLAgAGHDh2aNGnSvHnzXnjhhf79+0e3JgAAADRApJc7GTVq1Esv\nvZSXlxcIBLp37/7000/PnDnT4/G0b99+7ty5MS0RAAAAkYh0i50kSRMnTtywYYPD4RBCTJ8+\n/eTJkzt37ty3b1+dm+MCAAAgISLdYjds2LBbb731mmuusVqt6hyHw3HhhRfGrDAAAIC48nq9\n0b38qqIote8MGweRBrtPPvlE3Vx3ww03jBs3buDAgbIc6dY+AAAA7QsEAtG9zrYkSVFcWiQi\nDWdFRUX5+flXXXXV6tWrL7vssk6dOj322GP79u2LaXEAAACIXD2uY3fttdeuWrWqqKjozTff\n7Nu379y5c88///xLLrnkxRdfjGmJAAAAiES9d6dardbrr79+9erVR44cmThx4ieffHLHHXfE\nojIAAADUS6TH2AVVVFSsW7furbfeeuedd5xOZ5MmTa699tpYVAYAAIB6iTTYHT9+/J133nnr\nrbc2bNjgdrvT09Ovu+660aNHX3HFFUajMaYlAgAAIBKRBruWLVv6/f7U1NTRo0ePHj166NCh\nKSkpMa0MAABAU6RDPynf7JSOHxM+XyAt3Z+V7e96oVCURNf1H5EGuzFjxowePXrYsGFmszmm\n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\ndp2uUlJSevfu/cQTT5x77rnJycmPPvpojx49XLT/jRiTNcJQrFmG5cljrHLchF016tSpc999\n9z3yyCP3339/UlJS27ZtJ0yYcJQjUnytIUOGVFRUzJs37+DBg3l5eaNGjTrVW3SaMSZriqFY\ngwzLk8pY5fgkxWKxU70NAADUgDPrHDsAgIAJOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7CNaf//znpP9Vv379yy677E9/+tMhdyYvLS2dMWNGt27dcnJyGjZseOmll95/\n//379u07fJ2xWOy73/3uE0888Y225K233urfv3+jRo3OPvvsnj17FhcXV31348aNI0aMaNWq\nVf369X/4wx8+/fTThyxeWVl5+Do/+OCD9PT0999//xttyXHr2LHjFVdc8e18FsBx8+wXCFyf\nPn3atGkTRVEsFvvkk0+eeeaZgoKCTz75ZOLEifEZ3n777e7du2/durVdu3YDBgwoKyv7+9//\nftttty1duvTFF1+sVatW1bWtXLnyww8//EYb8N5773Xs2LFu3bpjxoypVavW448/3rlz53/8\n4x/xh4pu3LjxRz/6Ua1ata699tqmTZsWFhb279//wQcf/PnPfx5F0aZNm2666abi4uKmTZve\neeedI0aMSKx21qxZ11133fnnn39iu+dY1a1bt27dut/OZwEcvxgQqKVLl0ZRtHjx4qoTP/ro\nowYNGmRkZOzZsycWi5WXl1988cVpaWl//OMfE/Ps379/8uTJURTdeeed8Snl5eVLly4dP358\nvXr1oihasmTJsW/GyJEjU1NTS0pK4i8//vjj9PT0Xr16xV8OGDAgNTV17dq1iQ9q165dRkbG\nV1999cUXX5x77rl9+/ZduXLljBkzkpKSVq1aFZ+tpKSkXr16W7ZsOY7dAhAwP8XCmaVp06aD\nBw/evXv3O++8E0XRkiVL3nzzzTvuuGPo0KGJeWrVqnXXXXfl5uY+/vjjsVgsiqL//Oc/1157\n7YIFC8rKyr7pJ27atKlly5atWrWKv2zcuHH79u3ffPPN+MvVq1e3a9cuLy8v/jItLW3cuHG7\nd+/esGHD888/X1FRsXTp0p/+9Kd33nnn0KFDf//738dnmzlz5g033JCbm3v8OwIgRMIOzjjZ\n2dlRFH3++edRFC1btiwzM/Omm246ZJ6UlJTHHnts+vTp8TPtmjVrVl5eXl5e/te//rXadaam\npp599tnVvnX++ed/+umne/fujb+srKz86KOPvv/970dRtHfv3tzc3F69elWdv6KiIoqi0tLS\n8vLytLS0xG/BZ5111q5du6Io2rRp07PPPjt16tSjf81hw4alpKRs3749MaW8vDwzM7Nnz57x\nl88880yXLl3OOeecjIyM1q1bz58/P/bfUw+7d+8+cODAd999t1evXs2bN4+iKC8vr+o5dkdZ\ntlevXv369SspKbnyyivT09PPPffcsWPH7ty5M7Hs+vXre/bsmZ2d/b3vfW/48OHbtm1LvLVl\ny5aCgoLmzZtnZmbm5eWtWLHi6N8R4BDCDs4469ati6KoRYsWURS99dZbl1xySf369Q+fLT8/\nf9SoUWlpaVEUJSUlpaWlpaWl1a5du9p1ZmdnN2zYsNq3br755vLy8mHDhr3xxhubN28eO3bs\nF198Ec+ytLS0zZs3z5o1KzFzZWVlYWFhUlJS27Ztu3fvXlpaOnny5H//+98rVqxYvHjx1Vdf\nHUXRjBkzbrnllu985ztH/5qDBg06ePBgUVFRYsqqVat27949cuTIKIoeeeSRfv36ffnllyNH\njhw3blxycvKtt976+OOPJ2besWNH3759t27dekh3Hsuyn376aX5+fosWLebNm9e1a9dHH310\nwoQJ8bdWrlzZpUuXjz766JZbbunfv/9f/vKX9u3bf/bZZ1EUlZSUtG3b9qWXXhoyZMjEiRN3\n7NhxzTXXLFiw4OhfE+B/nOKfgoGT5pBz7A4ePPjJJ59MmzYtiqLOnTtXVlbGD4AVFBQc+zpf\nfPHF6BueYxeLxebNm1f1z86UKVMOHjx4+Gx79+4dMmRIFEXDhw+PT1m2bFlWVlZ8qfHjx1dW\nVhYXF2dlZX3xxRdf+6Hx43N9+/ZNTBkyZEhmZmb85MIrr7yycePG5eXliY/OzMwcMWJE/GW3\nbt2iKLrxxhsT23n55Zd37do1/u+jLxs/Inj//ffHXx48eLBTp065ubmxWGz//v0XXHDBxRdf\nvGvXrvi7L7zwQhRFc+bMicViffv2bdasWWlpafyt/fv3d+3atW7dul9++eXXflmAOFfFQuBG\njx49evToqlPOP//8xYsXJycn79mzJ4qipKSkk7oBixcvnjBhwhVXXDFixIjU1NSnnnrq7rvv\nPnDgwJw5c6rO9uKLL44bN66kpOQnP/nJgw8+GJ94zTXXXHXVVW+99VbTpk1zcnKiKJo+ffqE\nCRMSRwcrKytTUlKq/dy0tLR+/foVFhbu3r07IyOjrKysqKho8ODB8es/li1bFj8MGZ+5tLT0\nwIEDVe/wkpSUdN9991W7c7522dq1a994442J9bRp0yZ+W5bXX3/9vffe+93vfpeRkRF/Nz8/\nf+HChRdddNGePXuKioqmTZuWlJS0Y8eO+LsjR47829/+tm7duquuuupYdzdwZhN2ELjE7U6i\nKEpNTW3VqtXVV1+dnp4eRVHDhg1TUlKOdCu4LVu2bNq0qU2bNidyjcL27dtvvvnmvLy8F154\nITk5OYqi66677pprrrn33ntvuOGGli1bRlG0b9++qVOnzp07Nz09/Z577pk4cWLVVqtbt277\n9u3j/37ppZdee+21+JHIV155Zfz48a+//npubu7MmTNHjRp1+KcPGjRoyZIlq1atGjhw4PPP\nP79nz57EDVMyMzM3bdr08ssvb9y48Y033njttdcOuVte8+bN43vpcF+77HnnnVenTp3Ey/gX\nj6Lo3XffjaLokksuSbyVlJQUP8Fxw4YNURTNnj179uzZh3xc/GxIgGMh7CBwAwYMqDZ6oiiq\nVatWx44dN2/evHPnzsQvngn33HPPwoULi4uLTyTsXn311fLy8qFDhybiJikpqaCg4Omnny4u\nLm7ZsmVFRUWfPn3WrFnTp0+fhx56qHHjxkdaVSwWu/3226dMmVK/fv2PP/64Z8+evXv3vuOO\nO4qLi6+//vqcnJzevXsfskiPHj2ysrJWrFgxcODAwsLCZs2adenSJf7Wr3/962nTpuXm5vbr\n12/SpEmdOnVKvBV3pFMGj2XZqlVXVfy6kGoPMR44cCCKoilTpiSu7UiI5y/AsRB2cEYrKCi4\n9dZb582bN3PmzKrTKysrV65cmZGR0a5duxNZfzyPDnmIRfwK2fhPq7NmzVqzZs3kyZPvuuuu\nI/2oGrd69ep33nln3LhxURQVFRU1aNBgyZIlKSkpvXv3fvfdd5944onDw6527dr9+/dfsWLF\njh07Vq5cOXHixHhf7tq1a+bMmWPGjHn44YcTP7ZW+3yLw53IsokLVuI3Z44bP378BRdcEI/v\n1NTUqtfelpSUvPrqqx06dDiWlQNEroqFM9zYsWNbtGgxe/bshx9+ODHx4MGDU6ZM2bJly223\n3ZaaekL//bvkkkuysrIefvjhxA3w9u/fv3Dhwnr16nXo0GHfvn2LFi1q06bN3XffffSqi8Vi\n06dPnz59evwMudTU1P3798ePckVRtG/fvsQRwUMMGjRo586dkyZNKisrGz58eHzihx9+WFFR\n0bp160SZrV+//uOPP47975PWqnUiy7Zv375Ro0Zz585N7I2XX375t7/9bVlZWVZWVteuXRct\nWvT2228nvtSIESN+9atfxb8ywLFwxA7OaPXq1Xv66af79ev3s5/9bP78+ZdddllZWdnatWu3\nbt3auXPn22+//RjXk52dnZWV9a9//evw9S9cuHDYsGGtW7ceNGhQcnLy8uXLS0pKFi1alJ2d\n/frrr2/fvr1JkyY33HDDIQvedtttVc9FKyoq2rZt29ixY+Mvr7766qlTp/bp06egoOCf//zn\n8uXL45eXHq579+5nnXXWI4880rlz5/gBsyiKWrVqdd55582ePbu0tLRly5bFxcVPPvlko0aN\n1q9fv2rVqsPvb1LViSxbr169++67b9iwYZ06dRowYMDevXsfeuihJk2axJ+f9pvf/KZLly6X\nX3754MGDmzRpsnTp0g0bNjz55JNHT16A/3FqL8oFTp5qHylWrT179kybNq1z584NGjQ455xz\n8vLyFixYcODAgcPnPNLtTlJSUrKzs4+0/rVr1/bo0SMnJyc7Ozs/P3/16tXx6cuXLz/Sn6bn\nn38+sXhlZeUPfvCDRx99tOo6N27cmJ+fH78/8PLly4/y7a6//vooihYtWlR14ubNm3v06FG/\nfv2mTZsOHTp0y5Ytf/jDH3Jycrp37x6Lxbp169ahQ4eq81e93cnRl+3Zs+fFF19cddkbb7yx\n6s5Zs2ZNfn5+gwYNGjVqNHjw4A8++CDx1ttvv92vX78mTZrUr18/Ly/vueeeO8r3AjhcUuwY\nfj4AAOD/P+fYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAE4v8Ahco5BNPiKxwAAAAASUVORK5CYII=", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " plotPCA(rld,intgroup=\"trt\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Variance Stabilizing Transformation (vst) and mean-variance modelling at the observational level (voom)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Two other normalization approaches for RNA-Seq count data are provided by the functions DESeq2::vst and limma::voom (note that for the latter one needs the limma package).\n", "\n", "\n", "From ? DESeq2::vst\n", "\"This function calculates a variance stabilizing transformation (VST) from the fitted dispersion-mean relation(s) and then transforms the count data (normalized by division by the size factors or normalization factors), yielding a matrix of values which are now approximately homoskedastic (having constant variance along the range of mean values). The transformation also normalizes with respect to library size.\"\n", "\n", "Compared to DESeq2::rlog\n", "\"The ‘rlog’ is less sensitive to size factors, which can be an issue when size factors vary widely. These transformations are useful when checking for outliers or as input for machine learning techniques such as clustering or linear discriminant analysis.\"\n", "\n", "\n", "From ? limma::voom\n", "\"Transform count data to log2-counts per million (logCPM), estimate the mean-variance relationship and use this to compute appropriate observation-level weights. The data are then ready for linear modelling.\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get VST transformation" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "'DESeqTransform'" ], "text/latex": [ "'DESeqTransform'" ], "text/markdown": [ "'DESeqTransform'" ], "text/plain": [ "[1] \"DESeqTransform\"\n", "attr(,\"package\")\n", "[1] \"DESeq2\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "VST<-vst(dds)\n", "class(VST)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get the VST matrix" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 4444
  2. \n", "\t
  3. 6
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 4444\n", "\\item 6\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 4444\n", "2. 6\n", "\n", "\n" ], "text/plain": [ "[1] 4444 6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
7A_E7B_E7C_E8A_E8B_E8C_E
gene03.9237304.1804754.5593094.5510883.4528263.578618
gene17.0978507.1573947.3409887.4988257.1980227.316447
gene102.9019622.5720072.4868533.2348502.6483563.242828
gene1005.0775724.0832614.8430684.8098724.9642224.998826
gene10004.1438233.9787533.6074483.0770932.8568753.108463
gene10012.2034732.8599472.7604253.0770932.8568753.108463
gene10025.4469305.3352024.7362604.9452044.1759474.678644
gene10036.6809226.9148226.3526276.5823426.5521856.574850
gene10042.2034731.1558682.1130952.0648651.1558682.003037
gene100510.07146210.519630 9.903560 8.758925 9.039811 8.859864
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & 7A\\_E & 7B\\_E & 7C\\_E & 8A\\_E & 8B\\_E & 8C\\_E\\\\\n", "\\hline\n", "\tgene0 & 3.923730 & 4.180475 & 4.559309 & 4.551088 & 3.452826 & 3.578618\\\\\n", "\tgene1 & 7.097850 & 7.157394 & 7.340988 & 7.498825 & 7.198022 & 7.316447\\\\\n", "\tgene10 & 2.901962 & 2.572007 & 2.486853 & 3.234850 & 2.648356 & 3.242828\\\\\n", "\tgene100 & 5.077572 & 4.083261 & 4.843068 & 4.809872 & 4.964222 & 4.998826\\\\\n", "\tgene1000 & 4.143823 & 3.978753 & 3.607448 & 3.077093 & 2.856875 & 3.108463\\\\\n", "\tgene1001 & 2.203473 & 2.859947 & 2.760425 & 3.077093 & 2.856875 & 3.108463\\\\\n", "\tgene1002 & 5.446930 & 5.335202 & 4.736260 & 4.945204 & 4.175947 & 4.678644\\\\\n", "\tgene1003 & 6.680922 & 6.914822 & 6.352627 & 6.582342 & 6.552185 & 6.574850\\\\\n", "\tgene1004 & 2.203473 & 1.155868 & 2.113095 & 2.064865 & 1.155868 & 2.003037\\\\\n", "\tgene1005 & 10.071462 & 10.519630 & 9.903560 & 8.758925 & 9.039811 & 8.859864\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "1. 3.9237297238308\n", "2. 7.09785030771263\n", "3. 2.90196222134337\n", "4. 5.07757192719189\n", "5. 4.14382250142189\n", "6. 2.2034734444358\n", "7. 5.44692979735692\n", "8. 6.68092220042059\n", "9. 2.2034734444358\n", "10. 10.0714617863157\n", "11. 4.18047473251682\n", "12. 7.15739403942555\n", "13. 2.57200717221707\n", "14. 4.08326091671359\n", "15. 3.97875310849349\n", "16. 2.8599472429941\n", "17. 5.33520204180084\n", "18. 6.91482160993041\n", "19. 1.15586801676768\n", "20. 10.519630005398\n", "21. 4.55930939607652\n", "22. 7.34098840921081\n", "23. 2.48685265778482\n", "24. 4.84306848598311\n", "25. 3.60744833726885\n", "26. 2.76042491301138\n", "27. 4.73625985225847\n", "28. 6.35262670233251\n", "29. 2.11309467979689\n", "30. 9.90355960068118\n", "31. 4.55108834117343\n", "32. 7.4988248256203\n", "33. 3.23484964071387\n", "34. 4.80987169117004\n", "35. 3.07709289484174\n", "36. 3.07709289484174\n", "37. 4.94520386038564\n", "38. 6.58234242858536\n", "39. 2.0648652514165\n", "40. 8.75892473685671\n", "41. 3.45282621646509\n", "42. 7.19802243171735\n", "43. 2.64835563071343\n", "44. 4.96422193058272\n", "45. 2.85687456948886\n", "46. 2.85687456948886\n", "47. 4.17594739333703\n", "48. 6.55218536797332\n", "49. 1.15586801676768\n", "50. 9.03981117268643\n", "51. 3.57861819062613\n", "52. 7.31644728229896\n", "53. 3.24282814694562\n", "54. 4.99882571981407\n", "55. 3.10846332851866\n", "56. 3.10846332851866\n", "57. 4.67864389082441\n", "58. 6.57484996058106\n", "59. 2.00303748409097\n", "60. 8.8598640932753\n", "\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E\n", "gene0 3.923730 4.180475 4.559309 4.551088 3.452826 3.578618\n", "gene1 7.097850 7.157394 7.340988 7.498825 7.198022 7.316447\n", "gene10 2.901962 2.572007 2.486853 3.234850 2.648356 3.242828\n", "gene100 5.077572 4.083261 4.843068 4.809872 4.964222 4.998826\n", "gene1000 4.143823 3.978753 3.607448 3.077093 2.856875 3.108463\n", "gene1001 2.203473 2.859947 2.760425 3.077093 2.856875 3.108463\n", "gene1002 5.446930 5.335202 4.736260 4.945204 4.175947 4.678644\n", "gene1003 6.680922 6.914822 6.352627 6.582342 6.552185 6.574850\n", "gene1004 2.203473 1.155868 2.113095 2.064865 1.155868 2.003037\n", "gene1005 10.071462 10.519630 9.903560 8.758925 9.039811 8.859864" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "VSTmat<-assay(VST)\n", "dim(VSTmat)\n", "VSTmat[1:10,]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get voom transformation (note that according to ? limma::voom, the function is expecting raw counts" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": true }, "outputs": [], "source": [ "VOOM<-limma::voom(counts(dds))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get the VOOM matrix" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 4444
  2. \n", "\t
  3. 6
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 4444\n", "\\item 6\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 4444\n", "2. 6\n", "\n", "\n" ], "text/plain": [ "[1] 4444 6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
7A_E7B_E7C_E8A_E8B_E8C_E
gene02.9561423.2713753.7064483.8481242.4260902.596152
gene16.4697666.5283866.7018177.0180496.7005716.822221
gene101.51556990.94944730.74297392.12229901.14598202.1107256
gene1004.3229253.1510814.0357564.1497804.3159074.353582
gene10003.2317773.0198372.5085091.8812911.5085521.904275
gene10010.29317741.43487411.22840081.88129091.50855211.9042748
gene10024.7305834.6047993.9128994.3045023.3830213.985195
gene10036.0391326.2785715.6784346.0729116.0321146.055584
gene1004 0.293177439-1.372480778 0.006008335 0.006821776-1.661372918-0.211202463
gene10059.4788799.9261559.2937218.2968418.5710488.389949
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " & 7A\\_E & 7B\\_E & 7C\\_E & 8A\\_E & 8B\\_E & 8C\\_E\\\\\n", "\\hline\n", "\tgene0 & 2.956142 & 3.271375 & 3.706448 & 3.848124 & 2.426090 & 2.596152\\\\\n", "\tgene1 & 6.469766 & 6.528386 & 6.701817 & 7.018049 & 6.700571 & 6.822221\\\\\n", "\tgene10 & 1.5155699 & 0.9494473 & 0.7429739 & 2.1222990 & 1.1459820 & 2.1107256\\\\\n", "\tgene100 & 4.322925 & 3.151081 & 4.035756 & 4.149780 & 4.315907 & 4.353582\\\\\n", "\tgene1000 & 3.231777 & 3.019837 & 2.508509 & 1.881291 & 1.508552 & 1.904275\\\\\n", "\tgene1001 & 0.2931774 & 1.4348741 & 1.2284008 & 1.8812909 & 1.5085521 & 1.9042748\\\\\n", "\tgene1002 & 4.730583 & 4.604799 & 3.912899 & 4.304502 & 3.383021 & 3.985195\\\\\n", "\tgene1003 & 6.039132 & 6.278571 & 5.678434 & 6.072911 & 6.032114 & 6.055584\\\\\n", "\tgene1004 & 0.293177439 & -1.372480778 & 0.006008335 & 0.006821776 & -1.661372918 & -0.211202463\\\\\n", "\tgene1005 & 9.478879 & 9.926155 & 9.293721 & 8.296841 & 8.571048 & 8.389949\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "1. 2.9561424512784\n", "2. 6.4697661702793\n", "3. 1.51556985989242\n", "4. 4.32292478195003\n", "5. 3.23177689389183\n", "6. 0.293177438555974\n", "7. 4.73058275086327\n", "8. 6.03913181594944\n", "9. 0.293177438555974\n", "10. 9.47887883075158\n", "11. 3.27137541208834\n", "12. 6.52838603029436\n", "13. 0.949447317200978\n", "14. 3.15108117837063\n", "15. 3.01983664509238\n", "16. 1.43487414437122\n", "17. 4.60479914581353\n", "18. 6.27857091349254\n", "19. -1.37248077768638\n", "20. 9.92615462904786\n", "21. 3.70644805271646\n", "22. 6.70181660398481\n", "23. 0.742973928741571\n", "24. 4.03575567796942\n", "25. 2.50850867510455\n", "26. 1.22840075591181\n", "27. 3.91289893018388\n", "28. 5.67843367654686\n", "29. 0.00600833457536482\n", "30. 9.29372071412481\n", "31. 3.8481240303642\n", "32. 7.01804903180651\n", "33. 2.1222989938032\n", "34. 4.1497797302253\n", "35. 1.8812908942994\n", "36. 1.8812908942994\n", "37. 4.30450232502394\n", "38. 6.07291096684103\n", "39. 0.00682177638325926\n", "40. 8.29684062331588\n", "41. 2.4260899233866\n", "42. 6.7005708558715\n", "43. 1.14598200419386\n", "44. 4.31590700563617\n", "45. 1.50855208357857\n", "46. 1.50855208357857\n", "47. 3.38302120149471\n", "48. 6.03211403963558\n", "49. -1.66137291786374\n", "50. 8.57104800931233\n", "51. 2.59615245909535\n", "52. 6.8222205385752\n", "53. 2.11072563192511\n", "54. 4.35358215582128\n", "55. 1.90427475445769\n", "56. 1.90427475445769\n", "57. 3.98519474984125\n", "58. 6.05558407773265\n", "59. -0.21120246296225\n", "60. 8.38994927585824\n", "\n", "\n" ], "text/plain": [ " 7A_E 7B_E 7C_E 8A_E 8B_E 8C_E\n", "gene0 2.9561425 3.2713754 3.706448053 3.848124030 2.426090 2.5961525\n", "gene1 6.4697662 6.5283860 6.701816604 7.018049032 6.700571 6.8222205\n", "gene10 1.5155699 0.9494473 0.742973929 2.122298994 1.145982 2.1107256\n", "gene100 4.3229248 3.1510812 4.035755678 4.149779730 4.315907 4.3535822\n", "gene1000 3.2317769 3.0198366 2.508508675 1.881290894 1.508552 1.9042748\n", "gene1001 0.2931774 1.4348741 1.228400756 1.881290894 1.508552 1.9042748\n", "gene1002 4.7305828 4.6047991 3.912898930 4.304502325 3.383021 3.9851947\n", "gene1003 6.0391318 6.2785709 5.678433677 6.072910967 6.032114 6.0555841\n", "gene1004 0.2931774 -1.3724808 0.006008335 0.006821776 -1.661373 -0.2112025\n", "gene1005 9.4788788 9.9261546 9.293720714 8.296840623 8.571048 8.3899493" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "VOOMmat<-VOOM$E\n", "dim(VOOMmat)\n", "VOOMmat[1:10,]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get Session Information" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "R version 3.3.1 (2016-06-21)\n", "Platform: x86_64-pc-linux-gnu (64-bit)\n", "Running under: Debian GNU/Linux 8 (jessie)\n", "\n", "locale:\n", " [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 \n", " [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 \n", " [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C \n", "[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C \n", "\n", "attached base packages:\n", " [1] tools parallel stats4 stats graphics grDevices utils datasets methods \n", "[10] base \n", "\n", "other attached packages:\n", " [1] dplyr_0.5.0 qvalue_2.6.0 limma_3.30.13 \n", " [4] DESeq2_1.14.1 SummarizedExperiment_1.4.0 Biobase_2.34.0 \n", " [7] GenomicRanges_1.26.4 GenomeInfoDb_1.10.3 IRanges_2.8.2 \n", "[10] S4Vectors_0.12.2 BiocGenerics_0.20.0 \n", "\n", "loaded via a namespace (and not attached):\n", " [1] locfit_1.5-9.1 Rcpp_0.12.8 lattice_0.20-34 assertthat_0.1 \n", " [5] digest_0.6.10 IRdisplay_0.4.3 R6_2.2.0 plyr_1.8.4 \n", " [9] repr_0.7 backports_1.1.0 acepack_1.4.1 RSQLite_1.0.0 \n", "[13] evaluate_0.10 ggplot2_2.2.1 zlibbioc_1.20.0 lazyeval_0.2.0 \n", "[17] uuid_0.1-2 data.table_1.10.4 annotate_1.52.1 rpart_4.1-10 \n", "[21] Matrix_1.2-7.1 checkmate_1.8.3 labeling_0.3 splines_3.3.1 \n", "[25] BiocParallel_1.8.2 geneplotter_1.52.0 stringr_1.0.0 foreign_0.8-67 \n", "[29] htmlwidgets_0.9 RCurl_1.95-4.8 munsell_0.4.3 base64enc_0.1-3 \n", "[33] htmltools_0.3.5 nnet_7.3-12 tibble_1.2 gridExtra_2.2.1 \n", "[37] htmlTable_1.9 Hmisc_4.0-3 XML_3.98-1.9 crayon_1.3.1 \n", "[41] bitops_1.0-6 grid_3.3.1 jsonlite_1.1 xtable_1.8-2 \n", "[45] gtable_0.2.0 DBI_0.5-1 magrittr_1.5 scales_0.4.1 \n", "[49] stringi_1.1.2 reshape2_1.4.2 XVector_0.14.1 genefilter_1.56.0 \n", "[53] latticeExtra_0.6-28 IRkernel_0.7 Formula_1.2-2 RColorBrewer_1.1-2 \n", "[57] survival_2.41-3 AnnotationDbi_1.36.2 colorspace_1.3-1 cluster_2.0.5 \n", "[61] memoise_1.0.0 pbdZMQ_0.2-3 knitr_1.15.1 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sessionInfo()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.3.1" } }, "nbformat": 4, "nbformat_minor": 1 }