if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
Warning messages:
1: In class(object) <- "environment" :
  Setting class(x) to "environment" sets attribute to NULL; result will no longer be an S4 object
2: In class(object) <- "environment" :
  Setting class(x) to "environment" sets attribute to NULL; result will no longer be an S4 object
3: In class(object) <- "environment" :
  Setting class(x) to "environment" sets attribute to NULL; result will no longer be an S4 object
4: In class(object) <- "environment" :
  Setting class(x) to "environment" sets attribute to NULL; result will no longer be an S4 object
BiocManager::install("DESeq2", version = "3.8")
Bioconductor version 3.8 (BiocManager 1.30.4), R 3.5.2 (2018-12-20)
Installing package(s) 'DESeq2'
cannot open URL 'https://bioconductor.org/packages/3.8/data/experiment/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'cannot open URL 'https://bioconductor.org/packages/3.8/workflows/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'cannot open URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'trying URL 'https://bioconductor.org/packages/3.8/bioc/bin/macosx/el-capitan/contrib/3.5/DESeq2_1.22.2.tgz'
Content type 'application/x-gzip' length 4063874 bytes (3.9 MB)
==================================================
downloaded 3.9 MB

The downloaded binary packages are in
    /var/folders/tv/755r_w4d5x98lvzczdc7s7yh0000gn/T//Rtmp944knO/downloaded_packages
Update old packages: 'backports', 'nlme'
Update all/some/none? [a/s/n]: 
A
cannot open URL 'https://bioconductor.org/packages/3.8/data/experiment/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'cannot open URL 'https://bioconductor.org/packages/3.8/workflows/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'

  There is a binary version available but the source version is later:
NO
trying URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.5/backports_1.1.3.tgz'
Content type 'application/x-gzip' length 53570 bytes (52 KB)
==================================================
downloaded 52 KB

trying URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.5/nlme_3.1-139.tgz'
Content type 'application/x-gzip' length 2365931 bytes (2.3 MB)
==================================================
downloaded 2.3 MB

The downloaded binary packages are in
    /var/folders/tv/755r_w4d5x98lvzczdc7s7yh0000gn/T//Rtmp944knO/downloaded_packages
library("DESeq2")
Loading required package: S4Vectors
Loading required package: stats4
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: ‘BiocGenerics’

The following objects are masked from ‘package:parallel’:

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ, clusterExport, clusterMap, parApply, parCapply,
    parLapply, parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from ‘package:stats’:

    IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:

    anyDuplicated, append, as.data.frame, basename, cbind, colMeans, colnames, colSums, dirname, do.call,
    duplicated, eval, evalq, Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply, lengths, Map,
    mapply, match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind, Reduce,
    rowMeans, rownames, rowSums, sapply, setdiff, sort, table, tapply, union, unique, unsplit, which,
    which.max, which.min


Attaching package: ‘S4Vectors’

The following object is masked from ‘package:base’:

    expand.grid

Loading required package: IRanges
Loading required package: GenomicRanges
Loading required package: GenomeInfoDb
Loading required package: SummarizedExperiment
Loading required package: Biobase
Welcome to Bioconductor

    Vignettes contain introductory material; view with 'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: DelayedArray
Loading required package: matrixStats

Attaching package: ‘matrixStats’

The following objects are masked from ‘package:Biobase’:

    anyMissing, rowMedians

Loading required package: BiocParallel

Attaching package: ‘DelayedArray’

The following objects are masked from ‘package:matrixStats’:

    colMaxs, colMins, colRanges, rowMaxs, rowMins, rowRanges

The following objects are masked from ‘package:base’:

    aperm, apply

NHR-25 acts as a transcription factor in Caenorhabditis elegans. In C. elegans, NHR-25 is responsible for the differentiation and development of gonads, the epidermis and embryos. Mutations to NHR-25 are associated with extreme phenotypic differences in C. elegans: embryonic arrest, molting and mutated vulvas. The purpose of this research is to perform a comparative analysis of C. elegans with a wildtype NHR-25 to mutated NHR-25. Using DESeq2 to determine differential gene expression on the data, genes altered by the absence of NHR-25 will be studied. The purpose is to determine the connection between NHR-25, the genes and the produced phenotypes

03/12/19 and 03/21/19: I had to re-do my DeSeq data analysis a total of three times because the results were not always in accordance with Maddie’s. First, I did all three mutant data sets and compared them to their wildtype. The PHEATMap results from this indicated that a dataset had odd datapoints. I removed it from that (you cannot see those results) and re-did it with a 2:2 analysis. However, my results from 2:2 looked exactly the same as Maddie’s 3:2 results. I combed over this code to make sure that there were no errors in it that would lead to these similar results. No issues were identified. This took a lot of time to do.

We performed a PCA analysis so that we can see how similar and how different our two data sets are. I anticipated that perhaps either the mutants would cluster together on the graph or that the two data sets (2 and 3) would cluster together. My PCA showed that there are similarites in PC1 for the group 3 mutant and wildtype groups but enough of a differnce between them in PC2. The group 2 data set showed more differences along PC1 and more similarity along PC2. However, the data showed that most of the data points clustered similarly together with one outlier: Aux_mut2. This indicates that the other data sets are more similar to each other than they are to aux_mut2. This should be considered in our analysis because it could emphasize that the genes in aux_mut2 exhibit more differences in differential expression than the other data sets.

sample_table<-read.table("ourdata.txt",header=TRUE,sep='\t')
sample_table<-read.table("ourdata.txt",header=TRUE,sep='\t')
aux_htseq_data<-DESeqDataSetFromHTSeqCount(sampleTable = sample_table, directory = 'Our_Data', design = ~Condition)
  Note: levels of factors in the design contain characters other than
  letters, numbers, '_' and '.'. It is recommended (but not required) to use
  only letters, numbers, and delimiters '_' or '.', as these are safe characters
  for column names in R. [This is a message, not an warning or error]
sample_table<-vst(aux_htseq_data,blind=FALSE)
  Note: levels of factors in the design contain characters other than
  letters, numbers, '_' and '.'. It is recommended (but not required) to use
  only letters, numbers, and delimiters '_' or '.', as these are safe characters
  for column names in R. [This is a message, not an warning or error]
plotPCA(sample_table,intgroup=c("Condition","Replicate"))

if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("DESeq2", version = "3.8")
Bioconductor version 3.8 (BiocManager 1.30.4), R 3.5.2 (2018-12-20)
Installing package(s) 'DESeq2'
cannot open URL 'https://bioconductor.org/packages/3.8/data/experiment/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'cannot open URL 'https://bioconductor.org/packages/3.8/workflows/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'cannot open URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'trying URL 'https://bioconductor.org/packages/3.8/bioc/bin/macosx/el-capitan/contrib/3.5/DESeq2_1.22.2.tgz'
Content type 'application/x-gzip' length 4063874 bytes (3.9 MB)
==================================================
downloaded 3.9 MB

The downloaded binary packages are in
    /var/folders/tv/755r_w4d5x98lvzczdc7s7yh0000gn/T//RtmpU29FBa/downloaded_packages
Update old packages: 'biomaRt', 'cli', 'colorspace', 'lazyeval', 'Rcpp',
  'tibble'
Update all/some/none? [a/s/n]: 
a
cannot open URL 'https://bioconductor.org/packages/3.8/data/experiment/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'cannot open URL 'https://bioconductor.org/packages/3.8/workflows/bin/macosx/el-capitan/contrib/3.5/PACKAGES.rds': HTTP status was '404 Not Found'

  There are binary versions available but the source versions are
  later:
trying URL 'https://bioconductor.org/packages/3.8/bioc/bin/macosx/el-capitan/contrib/3.5/biomaRt_2.38.0.tgz'
Content type 'application/x-gzip' length 522592 bytes (510 KB)
==================================================
downloaded 510 KB

The downloaded binary packages are in
    /var/folders/tv/755r_w4d5x98lvzczdc7s7yh0000gn/T//RtmpU29FBa/downloaded_packages
installing the source packages ‘cli’, ‘colorspace’, ‘lazyeval’, ‘Rcpp’, ‘tibble’

trying URL 'https://cran.rstudio.com/src/contrib/cli_1.1.0.tar.gz'
Content type 'application/x-gzip' length 40232 bytes (39 KB)
==================================================
downloaded 39 KB

trying URL 'https://cran.rstudio.com/src/contrib/colorspace_1.4-1.tar.gz'
Content type 'application/x-gzip' length 2152594 bytes (2.1 MB)
==================================================
downloaded 2.1 MB

trying URL 'https://cran.rstudio.com/src/contrib/lazyeval_0.2.2.tar.gz'
Content type 'application/x-gzip' length 83482 bytes (81 KB)
==================================================
downloaded 81 KB

trying URL 'https://cran.rstudio.com/src/contrib/Rcpp_1.0.1.tar.gz'
Content type 'application/x-gzip' length 3661123 bytes (3.5 MB)
==================================================
downloaded 3.5 MB

trying URL 'https://cran.rstudio.com/src/contrib/tibble_2.1.1.tar.gz'
Content type 'application/x-gzip' length 311836 bytes (304 KB)
==================================================
downloaded 304 KB

* installing *source* package ‘cli’ ...
** package ‘cli’ successfully unpacked and MD5 sums checked
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (cli)
* installing *source* package ‘colorspace’ ...
** package ‘colorspace’ successfully unpacked and MD5 sums checked
** libs
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c colorspace.c -o colorspace.o
colorspace.c:605:13: warning: unused function 'CheckGamma' [-Wunused-function]
static void CheckGamma(SEXP gamma, double *gammaval)
            ^
1 warning generated.
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c init.c -o init.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o colorspace.so colorspace.o init.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Library/Frameworks/R.framework/Versions/3.5/Resources/library/colorspace/libs
** R
** data
*** moving datasets to lazyload DB
** demo
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (colorspace)
* installing *source* package ‘lazyeval’ ...
** package ‘lazyeval’ successfully unpacked and MD5 sums checked
** libs
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c expr.c -o expr.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c init.c -o init.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c interp.c -o interp.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c lazy.c -o lazy.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c name.c -o name.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c utils.c -o utils.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o lazyeval.so expr.o init.o interp.o lazy.o name.o utils.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Library/Frameworks/R.framework/Versions/3.5/Resources/library/lazyeval/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (lazyeval)
* installing *source* package ‘Rcpp’ ...
** package ‘Rcpp’ successfully unpacked and MD5 sums checked
** libs
clang++  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include/  -I/usr/local/include   -fPIC  -Wall -g -O2  -c Date.cpp -o Date.o
clang++  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include/  -I/usr/local/include   -fPIC  -Wall -g -O2  -c Module.cpp -o Module.o
clang++  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include/  -I/usr/local/include   -fPIC  -Wall -g -O2  -c Rcpp_init.cpp -o Rcpp_init.o
clang++  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include/  -I/usr/local/include   -fPIC  -Wall -g -O2  -c api.cpp -o api.o
clang++  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include/  -I/usr/local/include   -fPIC  -Wall -g -O2  -c attributes.cpp -o attributes.o
clang++  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include/  -I/usr/local/include   -fPIC  -Wall -g -O2  -c barrier.cpp -o barrier.o
clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o Rcpp.so Date.o Module.o Rcpp_init.o api.o attributes.o barrier.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (Rcpp)
* installing *source* package ‘tibble’ ...
** package ‘tibble’ successfully unpacked and MD5 sums checked
** libs
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c coerce.c -o coerce.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c init.c -o init.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I/usr/local/include   -fPIC  -Wall -g -O2  -c matrixToDataFrame.c -o matrixToDataFrame.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o tibble.so coerce.o init.o matrixToDataFrame.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Library/Frameworks/R.framework/Versions/3.5/Resources/library/tibble/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
*** copying figures
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (tibble)

The downloaded source packages are in
    ‘/private/var/folders/tv/755r_w4d5x98lvzczdc7s7yh0000gn/T/RtmpU29FBa/downloaded_packages’
library("DESeq2")
Loading required package: S4Vectors
Loading required package: stats4
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: ‘BiocGenerics’

The following objects are masked from ‘package:parallel’:

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from ‘package:stats’:

    IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:

    anyDuplicated, append, as.data.frame, basename, cbind,
    colMeans, colnames, colSums, dirname, do.call, duplicated,
    eval, evalq, Filter, Find, get, grep, grepl, intersect,
    is.unsorted, lapply, lengths, Map, mapply, match, mget, order,
    paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind,
    Reduce, rowMeans, rownames, rowSums, sapply, setdiff, sort,
    table, tapply, union, unique, unsplit, which, which.max,
    which.min


Attaching package: ‘S4Vectors’

The following object is masked from ‘package:base’:

    expand.grid

Loading required package: IRanges
Loading required package: GenomicRanges
Loading required package: GenomeInfoDb
Loading required package: SummarizedExperiment
Loading required package: Biobase
Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: DelayedArray
Loading required package: matrixStats

Attaching package: ‘matrixStats’

The following objects are masked from ‘package:Biobase’:

    anyMissing, rowMedians

Loading required package: BiocParallel

Attaching package: ‘DelayedArray’

The following objects are masked from ‘package:matrixStats’:

    colMaxs, colMins, colRanges, rowMaxs, rowMins, rowRanges

The following objects are masked from ‘package:base’:

    aperm, apply

03/12/19: When we first performed PHEATMap analysis on our data sets, the results were really strange and it appeared that one of our mutant data sets was the root cause of the odd results. Maddie did a 3:2 comparison on her RStudio and I did a 2:2 comparison (I got rid of both the odd mutant set and also its associated wildtype). My results appeared much better with the deletion of these data sets from my analysis and I will continue forth with these identified gene sets.

RNAi_N2_res_ordered<-aux_results[order(aux_results1$pvalue),]
Error in eval(quote(list(...)), env) : object 'aux_results1' not found

03/12/2019: Our KRY85_170613 data set produced odd results. We repeated basic analysis of the two data sets to each other. -03/21/2019: I ran this again because there was something off about my data set and it was evident in the Venn Diagram. This is a continuation of the analysis of my odd DESeq results. I spent so much time on it because, if my initial data sets were off, then my whole analysis would be impacted. I thought that it would be best to be thorough. I also did an RNAi analysis.


cat("\n", file = file.choose(), append = TRUE)
sample_table<-read.table("ourdata.txt",header=TRUE,sep='\t')
aux_htseq_data<-DESeqDataSetFromHTSeqCount(sampleTable = sample_table, directory ='Our_Data', design = ~Condition)
sample_table<-vst(aux_htseq_data,blind=FALSE)
plotPCA(sample_table_small,intgroup=c("Condition","Replicate"))
aux_analysis<-DESeq(aux_htseq_data)
aux_results1<-results(aux_analysis,contrast =c("Condition","Replicate""))
summary(aux_results1)


RNAi_N2_res_ordered<-aux_results[order(aux_results1$pvalue),]
RNAi_N2_res_sig<-subset(RNAi_N2_res_ordered,padj<.05)
write.table(as.data.frame(RNAi_N2_res_sig),file="RNAi_results6.txt",sep="\t")
plotCounts(dds = aux_htseq_data, gene = "col-36", intgroup = c("Condition"))
sample_table<-read.table("ourdata.txt",header=TRUE,sep='\t')
glMDPlot(aux_results, status = status, counts = counts(aux_htseq_data, normalized = TRUE), groups = aux_htseq_data$Condition, transform = TRUE, samples = colnames(aux_htseq_data), anno = anno_gene, path = './',folder = "glimma_MD", launch = FALSE)
Error in .local(object, ...) : 
  first calculate size factors, add normalizationFactors, or set normalized=FALSE

03/14/2019: We are beginning GO Term analysis on our data sets. I tried to install a go term package via bioconductor.However, Maddie drew my attention to an initial issue with our data sets so my attention was drawn away from it. Later, I found that I did a better GO term analysis on the internet so I abandoned my fruitless attempt at GO Term on R.

summary(full_results)

out of 26103 with nonzero total read count
adjusted p-value < 0.1
LFC > 0 (up)       : 102, 0.39%
LFC < 0 (down)     : 97, 0.37%
outliers [1]       : 1674, 6.4%
low counts [2]     : 13225, 51%
(mean count < 5)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results

03-19-19- We used Glimma to look at gene’s -log values. This was helpful data because it showed me genes that were significant and it allowed me to google those genes within WormBase.

if(!requireNamespace("BiocManager",quietly =TRUE))
  install.packages("BiocManager")
BiocManager::install("GenomeInfoDb",version = "3.8")
library("GenomeInfoDb")
if(!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
BiocManager::install("Glimma",version = "3.8")
library(Glimma)

status <- as.numeric(aux_results$padj < .1)
anno_gene <-data.frame(GeneID=rownames(aux_results), 
symbol = rownames(aux_results)) 

glMDPlot(aux_results, status = status, counts = counts(aux_htseq_data, normalized = FALSE), groups = aux_htseq_data$Condition, transform = TRUE, samples = colnames(aux_htseq_data), anno = anno_gene, path = './',folder = "glimma_MD", launch = FALSE)





glMDPlot(aux_results, status = status, counts = counts(aux_analysis ,normalized =FALSE), groups = aux_results$Condition, transform =TRUE, samples = colnames(aux_analysis), cols = as.hexcol(samples), anno = anno_gene, path = './', folder = "glimma_MD", launch = FALSE)

```3/21/19: Further fixing of my DeSeq analysis. This, in the end, provided us our best summary data set with 105 identified genes.

full_data<-read.table("fulldata.txt",header=TRUE,sep='\t')
full_htseq_data<-DESeqDataSetFromHTSeqCount(sampleTable = full_data,directory = 'Our_Data',design=~Condition)
normalized_full_data<-vst(full_htseq_data,blind = FALSE)
plotPCA(normalized_full_data,intgroup=c("Condition","Replicate"))
full_deseq<-DESeq(full_htseq_data)
full_results<-results(full_deseq,contrast = c("Condition","aux_mut","aux_wt"))
summary(full_results)

I spent a lot of time looking at these results with online GO term resources. Proceeding forward from the data sets that Maddie and I shared with one another, we decided to emphasize the genes that are most significantly upregulated and downregulated within our data sets. Our reserach question moving forward was “In the genes in which the knockdown of NHR-25 influences differential expression, which tissues are they expressed in and which cellular pathways do they control?”Our hope is that identifying these genes will better inform us about the function of NHR-25 within C. elegans.

RNAi_N2_res_ordered<-full_results[order(full_results$pvalue),]
RNAi_N2_res_sig<-subset(RNAi_N2_res_ordered,padj<.05)
write.table(as.data.frame(RNAi_N2_res_sig),file="fullRNAi.txt",sep="\t")

R Notes-Package Ideas on 03/26 -Volcano plot: log2fold change and adjusted p value comparisons. Visualizes the magnitude and signifance of the data. Black zone-not really significant -RNAI Count=rangedsummarizedexperiment, consensusDE 03/28-GAGE This day has had lots of stops and starts because I am trying to test out those newly presented packages in class while Maddie looks at our VennDiagram results. I have had a hard time tying to create the data sets necessary for analysis.

Maddie then gave me some genes to look at because I got frustrated with the R. gipc-2 tsp-10

cutl-16 cyn-6 dmd-10 dod-20

Links: http://bioconductor.org/packages/release/bioc/vignettes/GSEABase/inst/doc/GSEABase.pdf https://cran.r-project.org/web/packages/gmt/gmt.pdf http://kim.bio.upenn.edu/software/pivot.shtml\

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("gage", version = "3.8")
browseVignettes("gage")
library(gage)
filename=system.file("extdata/gse16873.demo", package = "gage")
demo.data=readExpData(filename, row.names=1)
head(demo.data)
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("GSEABase", version = "3.8")
library(GSEABase)
genedatatable<-read.table("completeresults.txt",header=TRUE,sep='\t')
egs<-GeneSet(genedatatable[1:105,],setName="Sample")

04/04/2019: Maddie and I identified that cpb-2 was the most downregulated TF and and K08D9.2 was the most TF gene in our data. Using the scRNA-seq data from the paper “Comprehensive single cell transcriptional profiling of a multicellular orgnaism”, we used the transcriptome data that defined expression profiles for 27 different cell types. cpb-2 is associated with the body_wall_muscle/gonads and K08D9.2 was associated with the body_wall_muscle cells. Worm-base: Cpb-2: https://wormbase.org/species/c_elegans/gene/WBGene00000771#0-9g-3 “cpb-2 encodes a cytoplasmic polyadenylation element binding (CPEB) protein homolog, expressed specifically in the spermatogenic germ line; CPB-2 is dispensable for oogenesis, in contrast to CPEBs in vertebrates (Xenopus), arthropods (Drosophila), and molluscs (Spisula), which all participate in oogenesis.” K08D9.2: https://wormbase.org/species/c_elegans/gene/WBGene00019524#0-9g-3 “K08D9.2 is affected by several genes including daf-16, daf-12, and clk-1 based on tiling array, RNA-seq, and microarray studies; is affected by four chemicals including methylmercuric chloride, Quercetin, and single-walled carbon nanotube based on microarray studies; is predicted to encode a protein with the following domain: Glycosyltransferase family 92.” My thoughts: I think that looking further into these two genes and their relationship with nhr-25 may be very important in furthering our analysis. We wanted to look at genes that are differentially expressed in the absence of nhr-25. From our analysis, these two genes are the most significant. I want to look further. What pathways do these genes control? What phenotypes are they associated with? 04/09/2019 -Maddie and I are beginning to look further in depth that these genes are impacted by/connected to within c. elegans and perhaps even human orthologs. Maddie found information on our second most downregulated gene, B0218.7, which is correlated with lots of genes involving spermatogenesis.

In the end, we performed DESeq analysis on two data sets, aux_wt and aux_mut, in order to compare differential expression betwee the mutant and the wildtype c.elegans. With our DESeq data, we created a PCA analysis, PHEATMaps, a Glimma plot and a gene venn diagram. We also discerned which genes are most upregulated and downregulated in our data sets. This pointed us to a variety of genes. By looking at these genes on Wormbase, we saw that the genes that are impacted by NHR_25’s knockdown are generally involved in protein kinase and ATP binding. Also, a lot of these genes are important in spermatogenesis. Further reserach may focus on these genes and how they influence the motility and fertility of C. elegans sperm. This could be a wet lab experiment.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBodG1sX25vdGVib29rLjogZGVmYXVsdAogIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCgpgYGB7cn0KaWYgKCFyZXF1aXJlTmFtZXNwYWNlKCJCaW9jTWFuYWdlciIsIHF1aWV0bHkgPSBUUlVFKSkKICBpbnN0YWxsLnBhY2thZ2VzKCJCaW9jTWFuYWdlciIpCkJpb2NNYW5hZ2VyOjppbnN0YWxsKCJERVNlcTIiLCB2ZXJzaW9uID0gIjMuOCIpCmxpYnJhcnkoIkRFU2VxMiIpCgpgYGAKTkhSLTI1IGFjdHMgYXMgYSB0cmFuc2NyaXB0aW9uIGZhY3RvciBpbiBDYWVub3JoYWJkaXRpcyBlbGVnYW5zLiBJbiBDLiBlbGVnYW5zLCBOSFItMjUgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBkaWZmZXJlbnRpYXRpb24gYW5kIGRldmVsb3BtZW50IG9mIGdvbmFkcywgdGhlIGVwaWRlcm1pcyBhbmQgZW1icnlvcy4gTXV0YXRpb25zIHRvIE5IUi0yNSBhcmUgYXNzb2NpYXRlZCB3aXRoIGV4dHJlbWUgcGhlbm90eXBpYyBkaWZmZXJlbmNlcyBpbiBDLiBlbGVnYW5zOiBlbWJyeW9uaWMgYXJyZXN0LCBtb2x0aW5nIGFuZCBtdXRhdGVkIHZ1bHZhcy4gVGhlIHB1cnBvc2Ugb2YgdGhpcyByZXNlYXJjaCBpcyB0byBwZXJmb3JtIGEgY29tcGFyYXRpdmUgYW5hbHlzaXMgb2YgQy4gZWxlZ2FucyB3aXRoIGEgd2lsZHR5cGUgTkhSLTI1IHRvIG11dGF0ZWQgTkhSLTI1LiBVc2luZyBERVNlcTIgdG8gZGV0ZXJtaW5lIGRpZmZlcmVudGlhbCBnZW5lIGV4cHJlc3Npb24gb24gdGhlIGRhdGEsIGdlbmVzIGFsdGVyZWQgYnkgdGhlIGFic2VuY2Ugb2YgTkhSLTI1IHdpbGwgYmUgc3R1ZGllZC4gVGhlIHB1cnBvc2UgaXMgdG8gZGV0ZXJtaW5lIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gTkhSLTI1LCB0aGUgZ2VuZXMgYW5kIHRoZSBwcm9kdWNlZCBwaGVub3R5cGVzCgoKMDMvMTIvMTkgYW5kIDAzLzIxLzE5OgpJIGhhZCB0byByZS1kbyBteSBEZVNlcSBkYXRhIGFuYWx5c2lzIGEgdG90YWwgb2YgdGhyZWUgdGltZXMgYmVjYXVzZSB0aGUgcmVzdWx0cyB3ZXJlIG5vdCBhbHdheXMgaW4gYWNjb3JkYW5jZSB3aXRoIE1hZGRpZSdzLiBGaXJzdCwgSSBkaWQgYWxsIHRocmVlIG11dGFudCBkYXRhIHNldHMgYW5kIGNvbXBhcmVkIHRoZW0gdG8gdGhlaXIgd2lsZHR5cGUuIFRoZSBQSEVBVE1hcCByZXN1bHRzIGZyb20gdGhpcyBpbmRpY2F0ZWQgdGhhdCBhIGRhdGFzZXQgaGFkIG9kZCBkYXRhcG9pbnRzLiBJIHJlbW92ZWQgaXQgZnJvbSB0aGF0ICh5b3UgY2Fubm90IHNlZSB0aG9zZSByZXN1bHRzKSBhbmQgcmUtZGlkIGl0IHdpdGggYSAyOjIgYW5hbHlzaXMuIEhvd2V2ZXIsIG15IHJlc3VsdHMgZnJvbSAyOjIgbG9va2VkIGV4YWN0bHkgdGhlIHNhbWUgYXMgTWFkZGllJ3MgMzoyIHJlc3VsdHMuIEkgY29tYmVkIG92ZXIgdGhpcyBjb2RlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXJlIHdlcmUgbm8gZXJyb3JzIGluIGl0IHRoYXQgd291bGQgbGVhZCB0byB0aGVzZSBzaW1pbGFyIHJlc3VsdHMuIE5vIGlzc3VlcyB3ZXJlIGlkZW50aWZpZWQuIFRoaXMgdG9vayBhIGxvdCBvZiB0aW1lIHRvIGRvLgoKV2UgcGVyZm9ybWVkIGEgUENBIGFuYWx5c2lzIHNvIHRoYXQgd2UgY2FuIHNlZSBob3cgc2ltaWxhciBhbmQgaG93IGRpZmZlcmVudCBvdXIgdHdvIGRhdGEgc2V0cyBhcmUuIEkgYW50aWNpcGF0ZWQgdGhhdCBwZXJoYXBzIGVpdGhlciB0aGUgbXV0YW50cyB3b3VsZCBjbHVzdGVyIHRvZ2V0aGVyIG9uIHRoZSBncmFwaCBvciB0aGF0IHRoZSB0d28gZGF0YSBzZXRzICgyIGFuZCAzKSB3b3VsZCBjbHVzdGVyIHRvZ2V0aGVyLiBNeSBQQ0Egc2hvd2VkIHRoYXQgdGhlcmUgYXJlIHNpbWlsYXJpdGVzIGluIFBDMSBmb3IgdGhlIGdyb3VwIDMgbXV0YW50IGFuZCB3aWxkdHlwZSBncm91cHMgYnV0IGVub3VnaCBvZiBhIGRpZmZlcm5jZSBiZXR3ZWVuIHRoZW0gaW4gUEMyLiBUaGUgZ3JvdXAgMiBkYXRhIHNldCBzaG93ZWQgbW9yZSBkaWZmZXJlbmNlcyBhbG9uZyBQQzEgYW5kIG1vcmUgc2ltaWxhcml0eSBhbG9uZyBQQzIuIEhvd2V2ZXIsIHRoZSBkYXRhIHNob3dlZCB0aGF0IG1vc3Qgb2YgdGhlIGRhdGEgcG9pbnRzIGNsdXN0ZXJlZCBzaW1pbGFybHkgdG9nZXRoZXIgd2l0aCBvbmUgb3V0bGllcjogQXV4X211dDIuIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIG90aGVyIGRhdGEgc2V0cyBhcmUgbW9yZSBzaW1pbGFyIHRvIGVhY2ggb3RoZXIgdGhhbiB0aGV5IGFyZSB0byBhdXhfbXV0Mi4gVGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBpbiBvdXIgYW5hbHlzaXMgYmVjYXVzZSBpdCBjb3VsZCBlbXBoYXNpemUgdGhhdCB0aGUgZ2VuZXMgaW4gYXV4X211dDIgZXhoaWJpdCBtb3JlIGRpZmZlcmVuY2VzIGluIGRpZmZlcmVudGlhbCBleHByZXNzaW9uIHRoYW4gdGhlIG90aGVyIGRhdGEgc2V0cy4gCmBgYHtyfQpzYW1wbGVfdGFibGU8LXJlYWQudGFibGUoIm91cmRhdGEudHh0IixoZWFkZXI9VFJVRSxzZXA9J1x0JykKc2FtcGxlX3RhYmxlPC1yZWFkLnRhYmxlKCJvdXJkYXRhLnR4dCIsaGVhZGVyPVRSVUUsc2VwPSdcdCcpCmF1eF9odHNlcV9kYXRhPC1ERVNlcURhdGFTZXRGcm9tSFRTZXFDb3VudChzYW1wbGVUYWJsZSA9IHNhbXBsZV90YWJsZSwgZGlyZWN0b3J5ID0gJ091cl9EYXRhJywgZGVzaWduID0gfkNvbmRpdGlvbikKc2FtcGxlX3RhYmxlPC12c3QoYXV4X2h0c2VxX2RhdGEsYmxpbmQ9RkFMU0UpCnBsb3RQQ0Eoc2FtcGxlX3RhYmxlLGludGdyb3VwPWMoIkNvbmRpdGlvbiIsIlJlcGxpY2F0ZSIpKQphdXhfYW5hbHlzaXM8LURFU2VxKGF1eF9odHNlcV9kYXRhKQphdXhfcmVzdWx0czwtcmVzdWx0cyhhdXhfYW5hbHlzaXMsY29udHJhc3QgPSBjKCJDb25kaXRpb24iLCJhdXhfbXV0IiwiYXV4X3d0IikpCnN1bW1hcnkoYXV4X3Jlc3VsdHMpClJOQWlfTjJfcmVzX29yZGVyZWQgPC1hdXhfcmVzdWx0c1tvcmRlcihhdXhfcmVzdWx0cyRwdmFsdWUpLF0gClJOQWlfTjJfcmVzX3NpZyA8LSBzdWJzZXQoYXV4X3Jlc3VsdHMsIHBhZGogPCAuMDMpCndyaXRlLnRhYmxlKGFzLmRhdGEuZnJhbWUoYXV4X3Jlc3VsdHMpLCBmaWxlPSJhdXhfcmVzdWx0c180LnR4dCIsIHNlcCA9ICJcdCIpCnBsb3RNQShhdXhfcmVzdWx0cykKCmluc3RhbGwucGFja2FnZXMoInBoZWF0bWFwIikKbGlicmFyeSgicGhlYXRtYXAiKQpzdWJzZXRfZmlyc3RfMjBfZ2VuZXMgPC0gb3JkZXIocm93TWVhbnMoY291bnRzKGF1eF9hbmFseXNpcywgbm9ybWFsaXplZCA9IFRSVUUpKSwgZGVjcmVhc2luZyA9IFRSVUUpWzE6MjBdCnBoZWF0bWFwX2F1eF9hbmFseXNpczwtIG5vcm1UcmFuc2Zvcm0oYXV4X2h0c2VxX2RhdGEpCnBoZWF0bWFwKGFzc2F5KHBoZWF0bWFwX2F1eF9hbmFseXNpcylbc3Vic2V0X2ZpcnN0XzIwX2dlbmVzLF0pCgoKCi4gCgpgYGB7cn0KcGxvdChjYXJzKQpgYGAKCgoKCjAzLzEyLzE5OiBXaGVuIHdlIGZpcnN0IHBlcmZvcm1lZCBQSEVBVE1hcCBhbmFseXNpcyBvbiBvdXIgZGF0YSBzZXRzLCB0aGUgcmVzdWx0cyB3ZXJlIHJlYWxseSBzdHJhbmdlIGFuZCBpdCBhcHBlYXJlZCB0aGF0IG9uZSBvZiBvdXIgbXV0YW50IGRhdGEgc2V0cyB3YXMgdGhlIHJvb3QgY2F1c2Ugb2YgdGhlIG9kZCByZXN1bHRzLiBNYWRkaWUgZGlkIGEgMzoyIGNvbXBhcmlzb24gb24gaGVyIFJTdHVkaW8gYW5kIEkgZGlkIGEgMjoyIGNvbXBhcmlzb24gKEkgZ290IHJpZCBvZiBib3RoIHRoZSBvZGQgbXV0YW50IHNldCBhbmQgYWxzbyBpdHMgYXNzb2NpYXRlZCB3aWxkdHlwZSkuIE15IHJlc3VsdHMgYXBwZWFyZWQgbXVjaCBiZXR0ZXIgd2l0aCB0aGUgZGVsZXRpb24gb2YgdGhlc2UgZGF0YSBzZXRzIGZyb20gbXkgYW5hbHlzaXMgYW5kIEkgd2lsbCBjb250aW51ZSBmb3J0aCB3aXRoIHRoZXNlIGlkZW50aWZpZWQgZ2VuZSBzZXRzLgpgYGB7cn0Kcn0KaWYgKCFyZXF1aXJlTmFtZXNwYWNlKCJCaW9jTWFuYWdlciIsIHF1aWV0bHkgPSBUUlVFKSkKICBpbnN0YWxsLnBhY2thZ2VzKCJCaW9jTWFuYWdlciIpCkJpb2NNYW5hZ2VyOjppbnN0YWxsKCJERVNlcTIiLCB2ZXJzaW9uID0gIjMuOCIpCmxpYnJhcnkoIkRFU2VxMiIpCgpgYGAKMDMvMTIvMjAxOTogT3VyIEtSWTg1XzE3MDYxMyBkYXRhIHNldCBwcm9kdWNlZCBvZGQgcmVzdWx0cy4gV2UgcmVwZWF0ZWQgYmFzaWMgYW5hbHlzaXMgb2YgdGhlIHR3byBkYXRhIHNldHMgdG8gZWFjaCBvdGhlci4KLTAzLzIxLzIwMTk6IEkgcmFuIHRoaXMgYWdhaW4gYmVjYXVzZSB0aGVyZSB3YXMgc29tZXRoaW5nIG9mZiBhYm91dCBteSBkYXRhIHNldCBhbmQgaXQgd2FzIGV2aWRlbnQgaW4gdGhlIFZlbm4gRGlhZ3JhbS4gClRoaXMgaXMgYSBjb250aW51YXRpb24gb2YgdGhlIGFuYWx5c2lzIG9mIG15IG9kZCBERVNlcSByZXN1bHRzLiBJIHNwZW50IHNvIG11Y2ggdGltZSBvbiBpdCBiZWNhdXNlLCBpZiBteSBpbml0aWFsIGRhdGEgc2V0cyB3ZXJlIG9mZiwgdGhlbiBteSB3aG9sZSBhbmFseXNpcyB3b3VsZCBiZSBpbXBhY3RlZC4gSSB0aG91Z2h0IHRoYXQgaXQgd291bGQgYmUgYmVzdCB0byBiZSB0aG9yb3VnaC4gSSBhbHNvIGRpZCBhbiBSTkFpIGFuYWx5c2lzLiAKYGBge3J9CgpjYXQoIlxuIiwgZmlsZSA9IGZpbGUuY2hvb3NlKCksIGFwcGVuZCA9IFRSVUUpCnNhbXBsZV90YWJsZTwtcmVhZC50YWJsZSgib3VyZGF0YS50eHQiLGhlYWRlcj1UUlVFLHNlcD0nXHQnKQphdXhfaHRzZXFfZGF0YTwtREVTZXFEYXRhU2V0RnJvbUhUU2VxQ291bnQoc2FtcGxlVGFibGUgPSBzYW1wbGVfdGFibGUsIGRpcmVjdG9yeSA9J091cl9EYXRhJywgZGVzaWduID0gfkNvbmRpdGlvbikKc2FtcGxlX3RhYmxlPC12c3QoYXV4X2h0c2VxX2RhdGEsYmxpbmQ9RkFMU0UpCnBsb3RQQ0Eoc2FtcGxlX3RhYmxlX3NtYWxsLGludGdyb3VwPWMoIkNvbmRpdGlvbiIsIlJlcGxpY2F0ZSIpKQphdXhfYW5hbHlzaXM8LURFU2VxKGF1eF9odHNlcV9kYXRhKQphdXhfcmVzdWx0czE8LXJlc3VsdHMoYXV4X2FuYWx5c2lzLGNvbnRyYXN0ID1jKCJDb25kaXRpb24iLCJSZXBsaWNhdGUiIikpCnN1bW1hcnkoYXV4X3Jlc3VsdHMxKQoKClJOQWlfTjJfcmVzX29yZGVyZWQ8LWF1eF9yZXN1bHRzW29yZGVyKGF1eF9yZXN1bHRzMSRwdmFsdWUpLF0KUk5BaV9OMl9yZXNfc2lnPC1zdWJzZXQoUk5BaV9OMl9yZXNfb3JkZXJlZCxwYWRqPC4wNSkKd3JpdGUudGFibGUoYXMuZGF0YS5mcmFtZShSTkFpX04yX3Jlc19zaWcpLGZpbGU9IlJOQWlfcmVzdWx0czYudHh0IixzZXA9Ilx0IikKcGxvdENvdW50cyhkZHMgPSBhdXhfaHRzZXFfZGF0YSwgZ2VuZSA9ICJjb2wtMzYiLCBpbnRncm91cCA9IGMoIkNvbmRpdGlvbiIpKQoKCgpgYGB7cn0KYGBgCgpgYGB7cn0Kc2FtcGxlX3RhYmxlPC1yZWFkLnRhYmxlKCJvdXJkYXRhLnR4dCIsaGVhZGVyPVRSVUUsc2VwPSdcdCcpCmBgYAoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoInBoZWF0bWFwIikKbGlicmFyeSgicGhlYXRtYXAiKQpzdWJzZXRfZmlyc3RfMjVfZ2VuZXMgPC0gb3JkZXIocm93TWVhbnMoY291bnRzKGF1eF9hbmFseXNpcywgbm9ybWFsaXplZCA9IFRSVUUpKSwgZGVjcmVhc2luZyA9IFRSVUUpWzE6MjVdCnBoZWF0bWFwX2F1eF9hbmFseXNpczwtIG5vcm1UcmFuc2Zvcm0oYXV4X2h0c2VxX2RhdGEpCnBoZWF0bWFwKGFzc2F5KHBoZWF0bWFwX2F1eF9hbmFseXNpcylbc3Vic2V0X2ZpcnN0XzI1X2dlbmVzLF0pCmBgYAowMy8xNC8yMDE5OiBXZSBhcmUgYmVnaW5uaW5nIEdPIFRlcm0gYW5hbHlzaXMgb24gb3VyIGRhdGEgc2V0cy4gSSB0cmllZCB0byBpbnN0YWxsIGEgZ28gdGVybSBwYWNrYWdlIHZpYSBiaW9jb25kdWN0b3IuSG93ZXZlciwgTWFkZGllIGRyZXcgbXkgYXR0ZW50aW9uIHRvIGFuIGluaXRpYWwgaXNzdWUgd2l0aCBvdXIgZGF0YSBzZXRzIHNvIG15IGF0dGVudGlvbiB3YXMgZHJhd24gYXdheSBmcm9tIGl0LiBMYXRlciwgSSBmb3VuZCB0aGF0IEkgZGlkIGEgYmV0dGVyIEdPIHRlcm0gYW5hbHlzaXMgb24gdGhlIGludGVybmV0IHNvIEkgYWJhbmRvbmVkIG15IGZydWl0bGVzcyBhdHRlbXB0IGF0IEdPIFRlcm0gb24gUi4gCmBgYHtyfSAKaWYgKCFyZXF1aXJlTmFtZXNwYWNlKCJCaW9jTWFuYWdlciIsIHF1aWV0bHkgPSBUUlVFKSkKICAgIGluc3RhbGwucGFja2FnZXMoIkJpb2NNYW5hZ2VyIikKQmlvY01hbmFnZXI6Omluc3RhbGwoInRvcEdPIiwgdmVyc2lvbiA9ICIzLjgiKQpzb3VyY2UoImh0dHA6Ly9iaW9jb25kdWN0b3Iub3JnL2Jpb2NMaXRlLlIiKQpiaW9jTGl0ZSgiYmlvbWFSdCIpCmVuc2VtYmwgPC0gdXNlTWFydCgiZW5zZW1ibCIsZGF0YXNldD0iUk5BaV9yZXN1bHRzLnR4dCIpCgpicm93c2VWaWduZXR0ZXMoInRvcEdPIikKYGBgCjAzLTE5LTE5LQpXZSB1c2VkIEdsaW1tYSB0byBsb29rIGF0IGdlbmUncyAtbG9nIHZhbHVlcy4gVGhpcyB3YXMgaGVscGZ1bCBkYXRhIGJlY2F1c2UgaXQgc2hvd2VkIG1lIGdlbmVzIHRoYXQgd2VyZSBzaWduaWZpY2FudCBhbmQgaXQgYWxsb3dlZCBtZSB0byBnb29nbGUgdGhvc2UgZ2VuZXMgd2l0aGluIFdvcm1CYXNlLgoKYGBge3J9CmlmKCFyZXF1aXJlTmFtZXNwYWNlKCJCaW9jTWFuYWdlciIscXVpZXRseSA9VFJVRSkpCiAgaW5zdGFsbC5wYWNrYWdlcygiQmlvY01hbmFnZXIiKQpCaW9jTWFuYWdlcjo6aW5zdGFsbCgiR2Vub21lSW5mb0RiIix2ZXJzaW9uID0gIjMuOCIpCmxpYnJhcnkoIkdlbm9tZUluZm9EYiIpCmlmKCFyZXF1aXJlTmFtZXNwYWNlKCJCaW9jTWFuYWdlciIsIHF1aWV0bHkgPSBUUlVFKSkgaW5zdGFsbC5wYWNrYWdlcygiQmlvY01hbmFnZXIiKQpCaW9jTWFuYWdlcjo6aW5zdGFsbCgiR2xpbW1hIix2ZXJzaW9uID0gIjMuOCIpCmxpYnJhcnkoR2xpbW1hKQoKc3RhdHVzIDwtIGFzLm51bWVyaWMoYXV4X3Jlc3VsdHMkcGFkaiA8IC4xKQphbm5vX2dlbmUgPC1kYXRhLmZyYW1lKEdlbmVJRD1yb3duYW1lcyhhdXhfcmVzdWx0cyksIApzeW1ib2wgPSByb3duYW1lcyhhdXhfcmVzdWx0cykpIAoKZ2xNRFBsb3QoYXV4X3Jlc3VsdHMsIHN0YXR1cyA9IHN0YXR1cywgY291bnRzID0gY291bnRzKGF1eF9odHNlcV9kYXRhLCBub3JtYWxpemVkID0gRkFMU0UpLCBncm91cHMgPSBhdXhfaHRzZXFfZGF0YSRDb25kaXRpb24sIHRyYW5zZm9ybSA9IFRSVUUsIHNhbXBsZXMgPSBjb2xuYW1lcyhhdXhfaHRzZXFfZGF0YSksIGFubm8gPSBhbm5vX2dlbmUsIHBhdGggPSAnLi8nLGZvbGRlciA9ICJnbGltbWFfTUQiLCBsYXVuY2ggPSBGQUxTRSkKCgoKCgpnbE1EUGxvdChhdXhfcmVzdWx0cywgc3RhdHVzID0gc3RhdHVzLCBjb3VudHMgPSBjb3VudHMoYXV4X2FuYWx5c2lzICxub3JtYWxpemVkID1GQUxTRSksIGdyb3VwcyA9IGF1eF9yZXN1bHRzJENvbmRpdGlvbiwgdHJhbnNmb3JtID1UUlVFLCBzYW1wbGVzID0gY29sbmFtZXMoYXV4X2FuYWx5c2lzKSwgY29scyA9IGFzLmhleGNvbChzYW1wbGVzKSwgYW5ubyA9IGFubm9fZ2VuZSwgcGF0aCA9ICcuLycsIGZvbGRlciA9ICJnbGltbWFfTUQiLCBsYXVuY2ggPSBGQUxTRSkKCgoKYGBgCgoKYGBgMy8yMS8xOTogRnVydGhlciBmaXhpbmcgb2YgbXkgRGVTZXEgYW5hbHlzaXMuIFRoaXMsIGluIHRoZSBlbmQsIHByb3ZpZGVkIHVzIG91ciBiZXN0IHN1bW1hcnkgZGF0YSBzZXQgd2l0aCAxMDUgaWRlbnRpZmllZCBnZW5lcy4KYGBge3J9CmZ1bGxfZGF0YTwtcmVhZC50YWJsZSgiZnVsbGRhdGEudHh0IixoZWFkZXI9VFJVRSxzZXA9J1x0JykKZnVsbF9odHNlcV9kYXRhPC1ERVNlcURhdGFTZXRGcm9tSFRTZXFDb3VudChzYW1wbGVUYWJsZSA9IGZ1bGxfZGF0YSxkaXJlY3RvcnkgPSAnT3VyX0RhdGEnLGRlc2lnbj1+Q29uZGl0aW9uKQpub3JtYWxpemVkX2Z1bGxfZGF0YTwtdnN0KGZ1bGxfaHRzZXFfZGF0YSxibGluZCA9IEZBTFNFKQpwbG90UENBKG5vcm1hbGl6ZWRfZnVsbF9kYXRhLGludGdyb3VwPWMoIkNvbmRpdGlvbiIsIlJlcGxpY2F0ZSIpKQpmdWxsX2Rlc2VxPC1ERVNlcShmdWxsX2h0c2VxX2RhdGEpCmZ1bGxfcmVzdWx0czwtcmVzdWx0cyhmdWxsX2Rlc2VxLGNvbnRyYXN0ID0gYygiQ29uZGl0aW9uIiwiYXV4X211dCIsImF1eF93dCIpKQpzdW1tYXJ5KGZ1bGxfcmVzdWx0cykKYGBgCkkgc3BlbnQgYSBsb3Qgb2YgdGltZSBsb29raW5nIGF0IHRoZXNlIHJlc3VsdHMgd2l0aCBvbmxpbmUgR08gdGVybSByZXNvdXJjZXMuClByb2NlZWRpbmcgZm9yd2FyZCBmcm9tIHRoZSBkYXRhIHNldHMgdGhhdCBNYWRkaWUgYW5kIEkgc2hhcmVkIHdpdGggb25lIGFub3RoZXIsIHdlIGRlY2lkZWQgdG8gZW1waGFzaXplIHRoZSBnZW5lcyB0aGF0IGFyZSBtb3N0IHNpZ25pZmljYW50bHkgdXByZWd1bGF0ZWQgYW5kIGRvd25yZWd1bGF0ZWQgd2l0aGluIG91ciBkYXRhIHNldHMuIE91ciByZXNlcmFjaCBxdWVzdGlvbiBtb3ZpbmcgZm9yd2FyZCB3YXMgIkluIHRoZSBnZW5lcyBpbiB3aGljaCB0aGUga25vY2tkb3duIG9mIE5IUi0yNSBpbmZsdWVuY2VzIGRpZmZlcmVudGlhbCBleHByZXNzaW9uLCB3aGljaCB0aXNzdWVzIGFyZSB0aGV5IGV4cHJlc3NlZCBpbiBhbmQgd2hpY2ggY2VsbHVsYXIgcGF0aHdheXMgZG8gdGhleSBjb250cm9sPyJPdXIgaG9wZSBpcyB0aGF0IGlkZW50aWZ5aW5nIHRoZXNlIGdlbmVzIHdpbGwgYmV0dGVyIGluZm9ybSB1cyBhYm91dCB0aGUgZnVuY3Rpb24gb2YgTkhSLTI1IHdpdGhpbiBDLiBlbGVnYW5zLiAKYGBge3J9ClJOQWlfTjJfcmVzX29yZGVyZWQ8LWZ1bGxfcmVzdWx0c1tvcmRlcihmdWxsX3Jlc3VsdHMkcHZhbHVlKSxdClJOQWlfTjJfcmVzX3NpZzwtc3Vic2V0KFJOQWlfTjJfcmVzX29yZGVyZWQscGFkajwuMDUpCndyaXRlLnRhYmxlKGFzLmRhdGEuZnJhbWUoUk5BaV9OMl9yZXNfc2lnKSxmaWxlPSJmdWxsUk5BaS50eHQiLHNlcD0iXHQiKQoKYGBgCgpSIE5vdGVzLVBhY2thZ2UgSWRlYXMgb24gMDMvMjYKLVZvbGNhbm8gcGxvdDogbG9nMmZvbGQgY2hhbmdlIGFuZCBhZGp1c3RlZCBwIHZhbHVlIGNvbXBhcmlzb25zLiBWaXN1YWxpemVzIHRoZSBtYWduaXR1ZGUgYW5kIHNpZ25pZmFuY2Ugb2YgdGhlIGRhdGEuIEJsYWNrIHpvbmUtbm90IHJlYWxseSBzaWduaWZpY2FudAotUk5BSSBDb3VudD1yYW5nZWRzdW1tYXJpemVkZXhwZXJpbWVudCwgY29uc2Vuc3VzREUKMDMvMjgtR0FHRQpUaGlzIGRheSBoYXMgaGFkIGxvdHMgb2Ygc3RvcHMgYW5kIHN0YXJ0cyBiZWNhdXNlIEkgYW0gdHJ5aW5nIHRvIHRlc3Qgb3V0IHRob3NlIG5ld2x5IHByZXNlbnRlZCBwYWNrYWdlcyBpbiBjbGFzcyB3aGlsZSBNYWRkaWUgbG9va3MgYXQgb3VyIFZlbm5EaWFncmFtIHJlc3VsdHMuIEkgaGF2ZSBoYWQgYSBoYXJkIHRpbWUgdHlpbmcgdG8gY3JlYXRlIHRoZSBkYXRhIHNldHMgbmVjZXNzYXJ5IGZvciBhbmFseXNpcy4KCgpNYWRkaWUgdGhlbiBnYXZlIG1lIHNvbWUgZ2VuZXMgdG8gbG9vayBhdCBiZWNhdXNlIEkgZ290IGZydXN0cmF0ZWQgd2l0aCB0aGUgUi4gCmdpcGMtMgp0c3AtMTAKCgpjdXRsLTE2CmN5bi02CmRtZC0xMApkb2QtMjAKCkxpbmtzOiBodHRwOi8vYmlvY29uZHVjdG9yLm9yZy9wYWNrYWdlcy9yZWxlYXNlL2Jpb2MvdmlnbmV0dGVzL0dTRUFCYXNlL2luc3QvZG9jL0dTRUFCYXNlLnBkZgpodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvZ210L2dtdC5wZGYKaHR0cDovL2tpbS5iaW8udXBlbm4uZWR1L3NvZnR3YXJlL3Bpdm90LnNodG1sXAoKYGBge3J9CmlmICghcmVxdWlyZU5hbWVzcGFjZSgiQmlvY01hbmFnZXIiLCBxdWlldGx5ID0gVFJVRSkpCiAgICBpbnN0YWxsLnBhY2thZ2VzKCJCaW9jTWFuYWdlciIpCkJpb2NNYW5hZ2VyOjppbnN0YWxsKCJnYWdlIiwgdmVyc2lvbiA9ICIzLjgiKQpicm93c2VWaWduZXR0ZXMoImdhZ2UiKQpsaWJyYXJ5KGdhZ2UpCmZpbGVuYW1lPXN5c3RlbS5maWxlKCJleHRkYXRhL2dzZTE2ODczLmRlbW8iLCBwYWNrYWdlID0gImdhZ2UiKQpkZW1vLmRhdGE9cmVhZEV4cERhdGEoZmlsZW5hbWUsIHJvdy5uYW1lcz0xKQpoZWFkKGRlbW8uZGF0YSkKaWYgKCFyZXF1aXJlTmFtZXNwYWNlKCJCaW9jTWFuYWdlciIsIHF1aWV0bHkgPSBUUlVFKSkKICAgIGluc3RhbGwucGFja2FnZXMoIkJpb2NNYW5hZ2VyIikKQmlvY01hbmFnZXI6Omluc3RhbGwoIkdTRUFCYXNlIiwgdmVyc2lvbiA9ICIzLjgiKQpsaWJyYXJ5KEdTRUFCYXNlKQpnZW5lZGF0YXRhYmxlPC1yZWFkLnRhYmxlKCJjb21wbGV0ZXJlc3VsdHMudHh0IixoZWFkZXI9VFJVRSxzZXA9J1x0JykKZWdzPC1HZW5lU2V0KGdlbmVkYXRhdGFibGVbMToxMDUsXSxzZXROYW1lPSJTYW1wbGUiKQoKYGBgCmBgYHtyfQoKYGBgCgowNC8wNC8yMDE5OiBNYWRkaWUgYW5kIEkgaWRlbnRpZmllZCB0aGF0IGNwYi0yIHdhcyB0aGUgbW9zdCBkb3ducmVndWxhdGVkIFRGIGFuZCBhbmQgSzA4RDkuMiB3YXMgdGhlIG1vc3QgVEYgZ2VuZSBpbiBvdXIgZGF0YS4gVXNpbmcgdGhlIHNjUk5BLXNlcSBkYXRhIGZyb20gdGhlIHBhcGVyICJDb21wcmVoZW5zaXZlIHNpbmdsZSBjZWxsIHRyYW5zY3JpcHRpb25hbCBwcm9maWxpbmcgb2YgYSBtdWx0aWNlbGx1bGFyIG9yZ25haXNtIiwgd2UgdXNlZCB0aGUgdHJhbnNjcmlwdG9tZSBkYXRhIHRoYXQgZGVmaW5lZCBleHByZXNzaW9uIHByb2ZpbGVzIGZvciAyNyBkaWZmZXJlbnQgY2VsbCB0eXBlcy4gY3BiLTIgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBib2R5X3dhbGxfbXVzY2xlL2dvbmFkcyBhbmQgSzA4RDkuMiB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBib2R5X3dhbGxfbXVzY2xlIGNlbGxzLiAKV29ybS1iYXNlOiAKQ3BiLTI6IGh0dHBzOi8vd29ybWJhc2Uub3JnL3NwZWNpZXMvY19lbGVnYW5zL2dlbmUvV0JHZW5lMDAwMDA3NzEjMC05Zy0zCiAgImNwYi0yIGVuY29kZXMgYSBjeXRvcGxhc21pYyBwb2x5YWRlbnlsYXRpb24gZWxlbWVudCBiaW5kaW5nIChDUEVCKSBwcm90ZWluIGhvbW9sb2csIGV4cHJlc3NlZCBzcGVjaWZpY2FsbHkgaW4gdGhlIHNwZXJtYXRvZ2VuaWMgZ2VybSBsaW5lOyBDUEItMiBpcyBkaXNwZW5zYWJsZSBmb3Igb29nZW5lc2lzLCBpbiBjb250cmFzdCB0byBDUEVCcyBpbiB2ZXJ0ZWJyYXRlcyAoWGVub3B1cyksIGFydGhyb3BvZHMgKERyb3NvcGhpbGEpLCBhbmQgbW9sbHVzY3MgKFNwaXN1bGEpLCB3aGljaCBhbGwgcGFydGljaXBhdGUgaW4gb29nZW5lc2lzLiIKSzA4RDkuMjogaHR0cHM6Ly93b3JtYmFzZS5vcmcvc3BlY2llcy9jX2VsZWdhbnMvZ2VuZS9XQkdlbmUwMDAxOTUyNCMwLTlnLTMKICAiSzA4RDkuMiBpcyBhZmZlY3RlZCBieSBzZXZlcmFsIGdlbmVzIGluY2x1ZGluZyBkYWYtMTYsIGRhZi0xMiwgYW5kIGNsay0xIGJhc2VkIG9uIHRpbGluZyBhcnJheSwgUk5BLXNlcSwgYW5kIG1pY3JvYXJyYXkgc3R1ZGllczsgaXMgYWZmZWN0ZWQgYnkgZm91ciBjaGVtaWNhbHMgaW5jbHVkaW5nIG1ldGh5bG1lcmN1cmljIGNobG9yaWRlLCBRdWVyY2V0aW4sIGFuZCBzaW5nbGUtd2FsbGVkIGNhcmJvbiBuYW5vdHViZSBiYXNlZCBvbiBtaWNyb2FycmF5IHN0dWRpZXM7IGlzIHByZWRpY3RlZCB0byBlbmNvZGUgYSBwcm90ZWluIHdpdGggdGhlIGZvbGxvd2luZyBkb21haW46IEdseWNvc3lsdHJhbnNmZXJhc2UgZmFtaWx5IDkyLiIKTXkgdGhvdWdodHM6IEkgdGhpbmsgdGhhdCBsb29raW5nIGZ1cnRoZXIgaW50byB0aGVzZSB0d28gZ2VuZXMgYW5kIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIG5oci0yNSBtYXkgYmUgdmVyeSBpbXBvcnRhbnQgaW4gZnVydGhlcmluZyBvdXIgYW5hbHlzaXMuIFdlIHdhbnRlZCB0byBsb29rIGF0IGdlbmVzIHRoYXQgYXJlIGRpZmZlcmVudGlhbGx5IGV4cHJlc3NlZCBpbiB0aGUgYWJzZW5jZSBvZiBuaHItMjUuIEZyb20gb3VyIGFuYWx5c2lzLCB0aGVzZSB0d28gZ2VuZXMgYXJlIHRoZSBtb3N0IHNpZ25pZmljYW50LiBJIHdhbnQgdG8gbG9vayBmdXJ0aGVyLiBXaGF0IHBhdGh3YXlzIGRvIHRoZXNlIGdlbmVzIGNvbnRyb2w/IFdoYXQgcGhlbm90eXBlcyBhcmUgdGhleSBhc3NvY2lhdGVkIHdpdGg/CjA0LzA5LzIwMTkKLU1hZGRpZSBhbmQgSSBhcmUgYmVnaW5uaW5nIHRvIGxvb2sgZnVydGhlciBpbiBkZXB0aCB0aGF0IHRoZXNlIGdlbmVzIGFyZSBpbXBhY3RlZCBieS9jb25uZWN0ZWQgdG8gd2l0aGluIGMuIGVsZWdhbnMgYW5kIHBlcmhhcHMgZXZlbiBodW1hbiBvcnRob2xvZ3MuIE1hZGRpZSBmb3VuZCBpbmZvcm1hdGlvbiBvbiBvdXIgc2Vjb25kIG1vc3QgZG93bnJlZ3VsYXRlZCBnZW5lLCBCMDIxOC43LCB3aGljaCBpcyBjb3JyZWxhdGVkIHdpdGggbG90cyBvZiBnZW5lcyBpbnZvbHZpbmcgc3Blcm1hdG9nZW5lc2lzLgoKSW4gdGhlIGVuZCwgd2UgcGVyZm9ybWVkIERFU2VxIGFuYWx5c2lzIG9uIHR3byBkYXRhIHNldHMsIGF1eF93dCBhbmQgYXV4X211dCwgaW4gb3JkZXIgdG8gY29tcGFyZSBkaWZmZXJlbnRpYWwgZXhwcmVzc2lvbiBiZXR3ZWUgdGhlIG11dGFudCBhbmQgdGhlIHdpbGR0eXBlIGMuZWxlZ2Fucy4gV2l0aCBvdXIgREVTZXEgZGF0YSwgd2UgY3JlYXRlZCBhIFBDQSBhbmFseXNpcywgUEhFQVRNYXBzLCBhIEdsaW1tYSBwbG90IGFuZCBhIGdlbmUgdmVubiBkaWFncmFtLiBXZSBhbHNvIGRpc2Nlcm5lZCB3aGljaCBnZW5lcyBhcmUgbW9zdCB1cHJlZ3VsYXRlZCBhbmQgZG93bnJlZ3VsYXRlZCBpbiBvdXIgZGF0YSBzZXRzLiBUaGlzIHBvaW50ZWQgdXMgdG8gYSB2YXJpZXR5IG9mIGdlbmVzLiBCeSBsb29raW5nIGF0IHRoZXNlIGdlbmVzIG9uIFdvcm1iYXNlLCB3ZSBzYXcgdGhhdCB0aGUgZ2VuZXMgdGhhdCBhcmUgaW1wYWN0ZWQgYnkgTkhSXzI1J3Mga25vY2tkb3duIGFyZSBnZW5lcmFsbHkgaW52b2x2ZWQgaW4gcHJvdGVpbiBraW5hc2UgYW5kIEFUUCBiaW5kaW5nLiBBbHNvLCBhIGxvdCBvZiB0aGVzZSBnZW5lcyBhcmUgaW1wb3J0YW50IGluIHNwZXJtYXRvZ2VuZXNpcy4gRnVydGhlciByZXNlcmFjaCBtYXkgZm9jdXMgb24gdGhlc2UgZ2VuZXMgYW5kIGhvdyB0aGV5IGluZmx1ZW5jZSB0aGUgbW90aWxpdHkgYW5kIGZlcnRpbGl0eSBvZiBDLiBlbGVnYW5zIHNwZXJtLiBUaGlzIGNvdWxkIGJlIGEgd2V0IGxhYiBleHBlcmltZW50LiAKCgpgYGB7cn0KCmBgYAoK