<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="generator" content="pandoc" /> <meta name="author" content="Joyce Hsiao" /> <title>parametric cellcycleR for image intensities</title> <script src="site_libs/jquery-1.11.3/jquery.min.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link href="site_libs/bootstrap-3.3.5/css/cosmo.min.css" rel="stylesheet" /> <script src="site_libs/bootstrap-3.3.5/js/bootstrap.min.js"></script> <script src="site_libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script> <script src="site_libs/bootstrap-3.3.5/shim/respond.min.js"></script> <script src="site_libs/jqueryui-1.11.4/jquery-ui.min.js"></script> <link href="site_libs/tocify-1.9.1/jquery.tocify.css" rel="stylesheet" /> <script src="site_libs/tocify-1.9.1/jquery.tocify.js"></script> <script src="site_libs/navigation-1.1/tabsets.js"></script> <link href="site_libs/highlightjs-9.12.0/textmate.css" rel="stylesheet" /> <script src="site_libs/highlightjs-9.12.0/highlight.js"></script> <link href="site_libs/font-awesome-4.5.0/css/font-awesome.min.css" rel="stylesheet" /> <style type="text/css">code{white-space: pre;}</style> <style type="text/css"> pre:not([class]) { background-color: white; } </style> <script type="text/javascript"> if (window.hljs) { hljs.configure({languages: []}); hljs.initHighlightingOnLoad(); if (document.readyState && document.readyState === "complete") { window.setTimeout(function() { hljs.initHighlighting(); }, 0); } } </script> <style type="text/css"> h1 { font-size: 34px; } h1.title { font-size: 38px; } h2 { font-size: 30px; } h3 { font-size: 24px; } h4 { font-size: 18px; } h5 { font-size: 16px; } h6 { font-size: 12px; } .table th:not([align]) { text-align: left; } </style> </head> <body> <style type = "text/css"> .main-container { max-width: 940px; margin-left: auto; margin-right: auto; } code { color: inherit; background-color: rgba(0, 0, 0, 0.04); } img { max-width:100%; height: auto; } .tabbed-pane { padding-top: 12px; } button.code-folding-btn:focus { outline: none; } </style> <style type="text/css"> /* padding for bootstrap navbar */ body { padding-top: 51px; padding-bottom: 40px; } /* offset scroll position for anchor links (for fixed navbar) */ .section h1 { padding-top: 56px; margin-top: -56px; } .section h2 { padding-top: 56px; margin-top: -56px; } .section h3 { padding-top: 56px; margin-top: -56px; } .section h4 { padding-top: 56px; margin-top: -56px; } .section h5 { padding-top: 56px; margin-top: -56px; } .section h6 { padding-top: 56px; margin-top: -56px; } </style> <script> // manage active state of menu based on current page $(document).ready(function () { // active menu anchor href = window.location.pathname href = href.substr(href.lastIndexOf('/') + 1) if (href === "") href = "index.html"; var menuAnchor = $('a[href="' + href + '"]'); // mark it active menuAnchor.parent().addClass('active'); // if it's got a parent navbar menu mark it active as well menuAnchor.closest('li.dropdown').addClass('active'); }); </script> <div class="container-fluid main-container"> <!-- tabsets --> <script> $(document).ready(function () { window.buildTabsets("TOC"); }); </script> <!-- code folding --> <script> $(document).ready(function () { // move toc-ignore selectors from section div to header $('div.section.toc-ignore') .removeClass('toc-ignore') .children('h1,h2,h3,h4,h5').addClass('toc-ignore'); // establish options var options = { selectors: "h1,h2,h3", theme: "bootstrap3", context: '.toc-content', hashGenerator: function (text) { return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_').toLowerCase(); }, ignoreSelector: ".toc-ignore", scrollTo: 0 }; options.showAndHide = true; options.smoothScroll = true; // tocify var toc = $("#TOC").tocify(options).data("toc-tocify"); }); </script> <style type="text/css"> #TOC { margin: 25px 0px 20px 0px; } @media (max-width: 768px) { #TOC { position: relative; width: 100%; } } .toc-content { padding-left: 30px; padding-right: 40px; } div.main-container { max-width: 1200px; } div.tocify { width: 20%; max-width: 260px; max-height: 85%; } @media (min-width: 768px) and (max-width: 991px) { div.tocify { width: 25%; } } @media (max-width: 767px) { div.tocify { width: 100%; max-width: none; } } .tocify ul, .tocify li { line-height: 20px; } .tocify-subheader .tocify-item { font-size: 0.90em; padding-left: 25px; text-indent: 0; } .tocify .list-group-item { border-radius: 0px; } </style> <!-- setup 3col/9col grid for toc_float and main content --> <div class="row-fluid"> <div class="col-xs-12 col-sm-4 col-md-3"> <div id="TOC" class="tocify"> </div> </div> <div class="toc-content col-xs-12 col-sm-8 col-md-9"> <div class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="index.html">fucci-seq</a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li> <a href="index.html">Home</a> </li> <li> <a href="about.html">About</a> </li> <li> <a href="license.html">License</a> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li> <a href="https://github.com/jdblischak/fucci-seq"> <span class="fa fa-github"></span> </a> </li> </ul> </div><!--/.nav-collapse --> </div><!--/.container --> </div><!--/.navbar --> <!-- Add a small amount of space between sections. --> <style type="text/css"> div.section { padding-top: 12px; } </style> <div class="fluid-row" id="header"> <h1 class="title toc-ignore">parametric cellcycleR for image intensities</h1> <h4 class="author"><em>Joyce Hsiao</em></h4> </div> <!-- The file analysis/chunks.R contains chunks that define default settings shared across the workflowr files. --> <!-- Update knitr chunk options --> <!-- Insert the date the file was last updated --> <p><strong>Last updated:</strong> 2017-12-21</p> <!-- Insert the code version (Git commit SHA1) if Git repository exists and R package git2r is installed --> <p><strong>Code version:</strong> 9c7a72f</p> <hr /> <div id="introductionsummary" class="section level2"> <h2>Introduction/Summary</h2> <p><span class="math inline">\(~\)</span></p> <p>In this document, we assess the fit of <code>cellcycleR</code> across all samples and all batches. The idea is to assess the deviations from model fit for each individual and each batch. From the structure of deviation from the model fit, we can learn major sources of variation and develop strategies for removing unwanted variation accordingly.</p> <p><span class="math inline">\(~\)</span></p> <div id="data-preparation" class="section level3"> <h3>Data Preparation</h3> <p><span class="math inline">\(~\)</span></p> <p><strong>Step 1: Correct for backgorund noise</strong>:</p> <p>We correct for background intensity by substracting from each pixel the background median intensity. Then we sum up the background-corrected intensities and then take log transformation of the sum. log transformation is frequently used in image transformation for increasing contrast of the image, especially for regions with low pixel intensity.</p> <p><span class="math inline">\(F\)</span>: Pixel intensity matrix for in each FUCCI image.</p> <p><span class="math inline">\(F^{f}\)</span>: Fluorescent intensity values located inside the defined forground area. Set to be <span class="math inline">\(100 \times 100\)</span> area centered at the nucleus.</p> <p><span class="math inline">\(F^{b}\)</span>: Fluorescent intensity values for pixels in the background area.</p> <p><span class="math inline">\(N^f\)</span> and <span class="math inline">\(N^b\)</span>: Mumber of pixels located in the foreground and background area, respectively.</p> <p><span class="math display">\[ I = log10 \sum_{pixels \,\,\in \,\,foreground} \big( F^{f} - median (F^{b}) \big) \]</span></p> <p><span class="math inline">\(~\)</span></p> <p><strong>Step 2: Standardize background-corrected intensities</strong>:</p> <p>For GFP, RFP, and DAPI separatley, standardize background-corrected fluorescent intensity measurements as follows.</p> <p><span class="math inline">\(I_{nj}\)</span>: Background-correctd intensity values in single cell sample <span class="math inline">\(n\)</span> and batch <span class="math inline">\(j\)</span>.</p> <p><span class="math inline">\(\bar{I}\)</span>: Mean background-correctd intensity values across sample <span class="math inline">\(n=1,\dots, N\)</span> and batches <span class="math inline">\(j=1,\dots,J\)</span>.</p> <p><span class="math inline">\(S\)</span>: Standard deviation of background-corrected intensity values <span class="math inline">\(I_{nj}\)</span>.</p> <p><span class="math display">\[ Z = \frac{I_{nj} - \bar{I}}{S} \]</span></p> <p><span class="math inline">\(~\)</span></p> </div> <div id="results" class="section level3"> <h3>Results</h3> <ol style="list-style-type: decimal"> <li><p>Fit 200 interations. loglik = -3369.</p></li> <li><p>Fit appears to be better for RFP than for GFP and DAPI.</p></li> <li><p>Considering clustering of samples in the bivariate distribution of Red and Gree intensities. The sample clusters appear to coincide with the estimated cell times.</p></li> <li><p>Consider residual intensities at the individual level, variation around the mean for all three channles is smaller than the observed intensity.</p></li> <li><p>Consider residual intensity at the batch level within each individual, standard deviations are smaller for Red than for Green and DAPI. Moreover, for the most part, means of the residuals center at the mean for all channels, and more so for Red than for Green across the batches. These results suggest that there’s no need to fit a batch-level model for intensities.</p></li> <li><p>Consider residual intensity at the batch level. For RFP, there’s not much variation between batches. For GFP, the variation of residual intensities is the largest for plate <code>18511_18855</code> and plate <code>19160_18870</code>. The plate <code>18511_18855</code> was the first one done in imaging, and the plate <code>19160_18870</code> contains the most bubbles on the plates based on imaging results.</p></li> </ol> <p><span class="math inline">\(~\)</span></p> </div> <div id="next-steps" class="section level3"> <h3>Next steps</h3> <ol style="list-style-type: decimal"> <li>Assess model convergence conditions: run 10 times on 500 iterations; compare model convergences between different starting points (instead of random time, assign fixed time).</li> </ol> <p><span class="math inline">\(~\)</span></p> <hr /> </div> </div> <div id="load-data" class="section level2"> <h2>Load data</h2> <p><span class="math inline">\(~\)</span></p> <p>Import combined intensity data (see <a href="/project2/gilad/joycehsiao/fucci-seq/code/combine-intensity-data.R">combine-intensity-data.R</a>).</p> <p><span class="math inline">\(~\)</span></p> <pre class="r"><code>ints <- readRDS(file="../data/intensity.rds")</code></pre> <p><span class="math inline">\(~\)</span></p> <hr /> </div> <div id="estimated-cell-time" class="section level2"> <h2>Estimated cell time</h2> <p><span class="math inline">\(~\)</span></p> <div id="observed-intensity-by-time" class="section level3"> <h3>Observed intensity by time</h3> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-6-1.png" width="864" style="display: block; margin: auto;" /></p> <p><span class="math inline">\(~\)</span></p> </div> <div id="residuals-by-cell-time" class="section level3"> <h3>Residuals by cell time</h3> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-7-1.png" width="864" style="display: block; margin: auto;" /></p> <p><span class="math inline">\(~\)</span></p> </div> <div id="redgreen-by-cell-time" class="section level3"> <h3>Red/Green by cell time</h3> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-8-1.png" width="672" style="display: block; margin: auto;" /></p> <hr /> </div> </div> <div id="residuals-distributions" class="section level2"> <h2>Residuals distributions</h2> <p><span class="math inline">\(~\)</span></p> <div id="by-individual" class="section level3"> <h3>By individual</h3> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-9-1.png" width="864" style="display: block; margin: auto;" /><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-9-2.png" width="864" style="display: block; margin: auto;" /><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-9-3.png" width="864" style="display: block; margin: auto;" /></p> <p><span class="math inline">\(~\)</span></p> </div> <div id="by-individual-and-batch" class="section level3"> <h3>By individual and batch</h3> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-10-1.png" width="768" style="display: block; margin: auto;" /></p> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-11-1.png" width="768" style="display: block; margin: auto;" /></p> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-12-1.png" width="768" style="display: block; margin: auto;" /></p> <p><span class="math inline">\(~\)</span></p> </div> <div id="by-batch" class="section level3"> <h3>By batch</h3> <p><span class="math inline">\(~\)</span></p> <p><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-13-1.png" width="960" style="display: block; margin: auto;" /><img src="figure/images-cellcycleR.Rmd/unnamed-chunk-13-2.png" width="960" style="display: block; margin: auto;" /></p> <p><span class="math inline">\(~\)</span></p> <hr /> </div> </div> <div id="session-information" class="section level2"> <h2>Session information</h2> <pre><code>R version 3.4.1 (2017-06-30) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Scientific Linux 7.2 (Nitrogen) Matrix products: default BLAS: /home/joycehsiao/miniconda3/envs/fucci-seq/lib/R/lib/libRblas.so LAPACK: /home/joycehsiao/miniconda3/envs/fucci-seq/lib/R/lib/libRlapack.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] parallel stats graphics grDevices utils datasets methods [8] base other attached packages: [1] Biobase_2.38.0 BiocGenerics_0.24.0 RColorBrewer_1.1-2 [4] wesanderson_0.3.2 cowplot_0.8.0 dplyr_0.7.0 [7] data.table_1.10.4 cellcycleR_0.1.2 zoo_1.8-0 [10] binhf_1.0-1 adlift_1.3-3 EbayesThresh_1.4-12 [13] wavethresh_4.6.8 MASS_7.3-47 ggplot2_2.2.1 loaded via a namespace (and not attached): [1] Rcpp_0.12.14 compiler_3.4.1 git2r_0.19.0 plyr_1.8.4 [5] tools_3.4.1 digest_0.6.12 evaluate_0.10.1 tibble_1.3.3 [9] gtable_0.2.0 lattice_0.20-34 rlang_0.1.4.9000 yaml_2.1.16 [13] stringr_1.2.0 knitr_1.17 rprojroot_1.2 grid_3.4.1 [17] glue_1.1.1 R6_2.2.2 rmarkdown_1.8 magrittr_1.5 [21] backports_1.0.5 scales_0.4.1 htmltools_0.3.6 assertthat_0.2.0 [25] colorspace_1.3-2 labeling_0.3 stringi_1.1.2 lazyeval_0.2.0 [29] munsell_0.4.3 </code></pre> </div> <!-- Adjust MathJax settings so that all math formulae are shown using TeX fonts only; see http://docs.mathjax.org/en/latest/configuration.html. This will make the presentation more consistent at the cost of the webpage sometimes taking slightly longer to load. Note that this only works because the footer is added to webpages before the MathJax javascript. --> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ "HTML-CSS": { availableFonts: ["TeX"] } }); </script> <hr> <p> This <a href="http://rmarkdown.rstudio.com">R Markdown</a> site was created with <a href="https://github.com/jdblischak/workflowr">workflowr</a> </p> <hr> <!-- To enable disqus, uncomment the section below and provide your disqus_shortname --> <!-- disqus <div id="disqus_thread"></div> <script type="text/javascript"> /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ var disqus_shortname = 'rmarkdown'; // required: replace example with your forum shortname /* * * DON'T EDIT BELOW THIS LINE * * */ (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); </script> <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a> --> </div> </div> </div> <script> // add bootstrap table styles to pandoc tables function bootstrapStylePandocTables() { $('tr.header').parent('thead').parent('table').addClass('table table-condensed'); } $(document).ready(function () { bootstrapStylePandocTables(); }); </script> <!-- dynamically load mathjax for compatibility with self-contained --> <script> (function () { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"; document.getElementsByTagName("head")[0].appendChild(script); })(); </script> </body> </html>