diff --git a/public/images/CSU.png b/public/images/CSU.png
new file mode 100644
index 0000000..9b1e41d
Binary files /dev/null and b/public/images/CSU.png differ
diff --git a/public/images/astrobio-screen.png b/public/images/astrobio-screen.png
index b332cab..93f244b 100644
Binary files a/public/images/astrobio-screen.png and b/public/images/astrobio-screen.png differ
diff --git a/public/images/twistbiosice.png b/public/images/twistbiosice.png
new file mode 100644
index 0000000..f25377f
Binary files /dev/null and b/public/images/twistbiosice.png differ
diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css
index d4e2bc0..e16f1ae 100644
--- a/public/stylesheets/style.css
+++ b/public/stylesheets/style.css
@@ -282,3 +282,7 @@ td.x {
td.y {
color: red;
}
+
+.redcolor a:link{
+ color: red;
+}
diff --git a/scripts/R/DEA/GSE147272.R b/scripts/R/DEA/GSE147272.R
index 3cfae17..814848d 100644
--- a/scripts/R/DEA/GSE147272.R
+++ b/scripts/R/DEA/GSE147272.R
@@ -1,3 +1,17 @@
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
+
library(edgeR)
library(dplyr)
@@ -16,8 +30,8 @@ d0 <- calcNormFactors(d0)
#filtering low expressed genes
cutoff <- 1
drop <- which(apply(cpm(d0), 1, max) < cutoff)
-d <- d0[-drop,]
-dim(d)
+d <- d0[-drop,]
+dim(d)
#Setting up factor names
gravity <- append(rep("MG", 4), rep("NG",4))
@@ -40,14 +54,14 @@ fit2 <- eBayes(fit2)
tT.exp <- topTable(fit2, n = Inf, adjust.method = "fdr")
-#getting annotations
+#getting annotations
anno <- rtracklayer::import("ecoli_nissle_1917.gtf")
anno <- anno %>% as.data.frame %>% filter(type == "exon") %>% select(-seqnames, -source, -score, -phase)
vmatch <- match(rownames(tT.exp),anno$gene_id)
vmatch_id <- anno$gene_name[vmatch]
-tT.exp <- tT.exp %>% mutate(Gene.Symbol = vmatch_id, Platform.ORF = rownames(tT.exp)) %>% na.omit()
+tT.exp <- tT.exp %>% mutate(Gene.Symbol = vmatch_id, Platform.ORF = rownames(tT.exp)) %>% na.omit()
write.csv(tT.exp, file = "datasets/GSE147272_Ecol/GSE147272_exponential.growth.csv")
#now for stationary phase
@@ -59,7 +73,7 @@ tT.sta <- topTable(fit3, n = Inf, adjust.method = "fdr")
vmatch <- match(rownames(tT.sta),anno$gene_id)
vmatch_id <- anno$gene_name[vmatch]
-tT.sta <- tT.sta %>% mutate(Gene.Symbol = vmatch_id, Platform.ORF = rownames(tT.sta)) %>% na.omit()
+tT.sta <- tT.sta %>% mutate(Gene.Symbol = vmatch_id, Platform.ORF = rownames(tT.sta)) %>% na.omit()
write.csv(tT.sta, file = "datasets/GSE147272_Ecol/GSE147272_stationary.growth.csv")
#getting metadata
@@ -73,4 +87,3 @@ strain <- "Nissle_1917"
gselist <- list(list(GSE = mdata[,c(1,2,5,6)]), list(GSE = mdata[,c(3,4,7,8)]))
metalabels <- c("exponential.growth", "stationary.growth")
extractMetaData(gse_groups = gselist, filename = metaName, microgravity_type = M.TYPE$RCCS, metaLabels = metalabels, strain = strain)
-
diff --git a/scripts/R/DEA/GSE40648.R b/scripts/R/DEA/GSE40648.R
index d13f71f..e5fc506 100644
--- a/scripts/R/DEA/GSE40648.R
+++ b/scripts/R/DEA/GSE40648.R
@@ -1,3 +1,16 @@
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
#GSE40648 Ecoli MICROARRAY
#R script by BENJAMIN CLARK
@@ -8,7 +21,7 @@ library(Biobase)
library(limma)
library(org.EcK12.eg.db)
source("microarray_functions.R")
-#This pulls the all the samples from the microarry dataset. This returns a list containing a single expressionSet object.
+#This pulls the all the samples from the microarry dataset. This returns a list containing a single expressionSet object.
list.gse <- getGEO("GSE40648", GSEMatrix =TRUE, AnnotGPL=TRUE)
gse <- list.gse[[1]]
@@ -31,7 +44,7 @@ treatment <- c(4,5,6)
ecoli <- de.analysis(gse = gse.rm, microgravity_group = treatment, ground_group = control)
-#print out the toptable
+#print out the toptable
ecoliname <- "datasets/GSE40648_Ecoli/GSE40648_Ecoli.csv"
write.table(ecoli$TopTable, ecoliname, row.names = FALSE, sep = ",")
remove.controls(ecoli$TopTable)
@@ -64,23 +77,23 @@ anno.go.genome <- function(go.ids){
terms <- sapply(names(line.go.items[[1]]),FUN = Term)
names(terms) <- NULL
terms <- unlist(terms)
-
+
ontologies <- sapply(names(line.go.items[[1]]), FUN = Ontology)
names(ontologies) <- NULL
ontologies <- unlist(ontologies)
-
+
inner_out <- data.frame(id = names(line.go.items[[1]]), term = terms, ontology = ontologies)
out[names(go.ids)[i]]<- list(inner_out)
-
-
-
+
+
+
}
return(out)
}
go.genome <- anno.go.genome(mapped_gos)
valid_ids <- c()
for(i in 1:length(entrez_ids)){
- if(length(go.genome[[entrez_ids[i]]]$ontology) > 0){
+ if(length(go.genome[[entrez_ids[i]]]$ontology) > 0){
GO.Function <- paste(dplyr::filter(go.genome[[entrez_ids[i]]], ontology == "MF")$term , collapse = "///")
GO.Process <- paste(dplyr::filter(go.genome[[entrez_ids[i]]], ontology == "BP")$term , collapse = "///")
GO.Component <- paste(dplyr::filter(go.genome[[entrez_ids[i]]], ontology == "CC")$term , collapse = "///")
@@ -88,20 +101,20 @@ for(i in 1:length(entrez_ids)){
else{
next
}
-
+
ided.rows <- grep(filtered.tT$TopTable$Gene.symbol, pattern = names(entrez_ids[i]))
correct.probe <- which.min(filtered.tT$TopTable[ided.rows,]$P.Value)
-
+
filtered.tT$TopTable$GO.Function[ided.rows[correct.probe]] <- GO.Function
-
+
filtered.tT$TopTable$GO.Component[ided.rows[correct.probe]] <- GO.Component
-
+
filtered.tT$TopTable$GO.Process[ided.rows[correct.probe]] <- GO.Process
-
-
+
+
valid_ids <- append(valid_ids, ided.rows[correct.probe])
-
-
+
+
}
valid_ids <- valid_ids[-which(duplicated(valid_ids))]
filtered.tT$TopTable <- filtered.tT$TopTable[valid_ids,]
@@ -118,4 +131,3 @@ strain <- "K12 MG1655"
gse_list <- list(ecoli)
labels <- c("ecoli")
extractMetaData(filename = metaName, gse_groups = gse_list, microgravity_type = M.TYPE$RPM, metaLabels = labels, strain = strain)
-
diff --git a/scripts/R/DEA/GSE4136.R b/scripts/R/DEA/GSE4136.R
index 5694e4b..b8e5dbb 100644
--- a/scripts/R/DEA/GSE4136.R
+++ b/scripts/R/DEA/GSE4136.R
@@ -1,3 +1,16 @@
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
#GSE4136 YEAST MICROARRAY
#BENJAMIN CLARK
@@ -9,7 +22,7 @@ library(stats)
library(dendextend)
library(gplots)
source("microarray_functions.R")
-#This pulls the all the samples from the microarry dataset. This returns a list containing a single expressionSet object.
+#This pulls the all the samples from the microarry dataset. This returns a list containing a single expressionSet object.
list.gse <- getGEO("GSE4136", GSEMatrix =TRUE, AnnotGPL=TRUE)
gse <- list.gse[[1]]
@@ -28,7 +41,7 @@ control <- c(1,2,3)
treatment <- c(7,8,9)
gen5 <- de.analysis(gse = gse, microgravity_group = treatment, ground_group = control)
-#print out the toptable
+#print out the toptable
gen5name <- "datasets/GSE4136_Scer/GSE4136_5thGen.csv"
write.table(gen5$TopTable, gen5name, row.names = FALSE, sep = ",")
@@ -74,7 +87,7 @@ ex_genes_f <- readxl::read_xlsx("essential/TableS3_excludedStrains-hom.xlsx", sh
ex_genes <- union(ex_genes_f, ex_genes_g)
-#Adding to Gen5 Study
+#Adding to Gen5 Study
essential_bool5 <- c()
essential_bool5[match(full_names, gen5$TopTable$Gene.symbol)] <- TRUE
@@ -121,7 +134,7 @@ gen25.orfs <- gen25$TopTable$ID[gen25.sig.df.genes]
grouped.orfs <- union(gen5.orfs,gen25.orfs)
-#pulling relevent expression data
+#pulling relevent expression data
ex <- exprs(gse)
filtered.ex <- ex[rownames(ex) %in% grouped.orfs,]
@@ -147,8 +160,8 @@ hc <- as.dendrogram(hclust(as.dist(1-cor(t(filtered.ex), method="pearson")), met
#c.index <- which(labels(hc) %in% both)
-hc %>% set("labels_col", "white") %>%
- set("by_labels_branches_col", value = both) %>%
+hc %>% set("labels_col", "white") %>%
+ set("by_labels_branches_col", value = both) %>%
plot(main = "Highlighted Union Genes Across Timescales")
#PLOTTING INTERSECTING Genes
diff --git a/scripts/R/DEA/GSE50881.R b/scripts/R/DEA/GSE50881.R
index 51b3476..7e9747a 100644
--- a/scripts/R/DEA/GSE50881.R
+++ b/scripts/R/DEA/GSE50881.R
@@ -1,5 +1,19 @@
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
+
###GSE50881 YEAST MICROARRAY TWO CHANNEL
-#BENJAMIN CLARK
+#BENJAMIN CLARK
library(GEOquery)
library(Biobase)
@@ -28,17 +42,17 @@ fvarLabels(gse) <- make.names(fvarLabels(gse))
# design <- cbind(DyeEffect = 1,SpaceVsGround = c(1,-1,1,-1,1,-1,1,-1))
# #block <- fData(gse[,1])$Block
-#
-#
+#
+#
# fit <- lmFit(gse,design)
# fit <- eBayes(fit, 0.01)
-#
+#
# #topTable.dyes <- topTable(fit, coef = "DyeEffect")
-#
+#
# anno.data <- fData(gse)
-#
+#
# f.tT <- remove.candida.controls(topTable.SvsG)
-#
+#
# f.tT <- subset(f.tT, select = c("CGD_Systematic_Name", "Description", "SpaceVsGround", "AveExpr", "F", "P.Value", "adj.P.Val"))
topTable.SvsG <- topTable(fit, adjust.method = "fdr", sort.by = "B", number = length(fit[[1]]))
@@ -48,10 +62,10 @@ f.tT <- subset(f.tT, select = c("CGD_Systematic_Name", "Description", "SpaceVsGr
-rowid <- c()
+rowid <- c()
for(i in 1:length(f.tT$ID)){
rowid <- append(rowid,((f.tT %>% filter(SPOT_ID == f.tT$SPOT_ID[i]) %>% arrange(P.Value))[1,])$ID)
-
+
}
best.rows.ids <- rowid[-which(duplicated(rowid))]
@@ -81,9 +95,9 @@ go_ids <- read.csv("Candida_albicans_GO.csv")
ordered.gos <- list()
for(annos in 1:length(rm.ftT$CGD_Systematic_Name)){
indexes <- which(rm.ftT$CGD_Systematic_Name[annos] == go_ids$systemic_id)
- ids <- go_ids$go_id[indexes]
+ ids <- go_ids$go_id[indexes]
ordered.gos[annos] <- list(ids)
-
+
}
anno.terms <- list()
@@ -96,24 +110,24 @@ for(i in 1:length(ordered.gos)){
GO.COMPONENT <- c()
if(length(ordered.gos[[i]]) == 0){
full.MF <- append(full.MF, NA)
- full.CC <- append(full.CC, NA)
+ full.CC <- append(full.CC, NA)
full.BP <- append(full.BP, NA)
next
}
for(j in 1:length(ordered.gos[[i]])){
-
+
if(Ontology(ordered.gos[[i]][[j]]) == "MF"){
GO.FUNCTION <- append(GO.FUNCTION, Term(ordered.gos[[i]][[j]]))
-
+
}else if(Ontology(ordered.gos[[i]][[j]]) == "CC"){
GO.COMPONENT <- append(GO.COMPONENT, Term(ordered.gos[[i]][[j]]))
-
+
}
else if(Ontology(ordered.gos[[i]][[j]]) == "BP"){
GO.PROCESS <- append(GO.PROCESS, Term(ordered.gos[[i]][[j]]))
-
+
}
-
+
}
if(length(GO.FUNCTION) != 0){
full.MF <- append(full.MF, paste(GO.FUNCTION, collapse = "///"))}
@@ -145,15 +159,15 @@ names <- unlist(names)
Chromosome_Location <- stringr::str_extract_all(rm.ftT$Description, pattern = "(Contig\\d+:\\D+\\d+..\\d+\\)|Contig\\d+:\\d+..\\d+)")
Chromosome_Location <- sapply(Chromosome_Location, FUN = paste, collapse = "///", USE.NAMES = FALSE)
-final.tT <- rm.ftT %>% mutate( GO.Function = full.MF, GO.Component = full.CC,
- GO.Process = full.BP, Gene.Name = names,
- Chromosome.Location = Chromosome_Location,
- ID = NULL, SPOT_ID = NULL, Description = NULL) %>%
+final.tT <- rm.ftT %>% mutate( GO.Function = full.MF, GO.Component = full.CC,
+ GO.Process = full.BP, Gene.Name = names,
+ Chromosome.Location = Chromosome_Location,
+ ID = NULL, SPOT_ID = NULL, Description = NULL) %>%
rename(LogFC = SpaceVsGround, Platform_ORF = CGD_Systematic_Name)
write.csv(final.tT, file = "datasets/GSE50881_Calb/GSE50881.csv")
-extractMetaData(gse_groups = list(list(GSE = gse[,c(1,3,5,7)]), list(GSE = gse[,c(2,4,6,8)])), microgravity_type = M.TYPE$SPACEFLOWN,
+extractMetaData(gse_groups = list(list(GSE = gse[,c(1,3,5,7)]), list(GSE = gse[,c(2,4,6,8)])), microgravity_type = M.TYPE$SPACEFLOWN,
filename = "datasets/GSE50881_Calb/GSE50881_meta", metaLabels = c("dye_swap1", "dye_swap2"), strain = "SC5413")
diff --git a/scripts/R/DEA/GSE64468.R b/scripts/R/DEA/GSE64468.R
index 6add825..a9ed918 100644
--- a/scripts/R/DEA/GSE64468.R
+++ b/scripts/R/DEA/GSE64468.R
@@ -1,5 +1,19 @@
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
+
###GSE64468 YEAST MICROARRAY
-#BENJAMIN CLARK
+#BENJAMIN CLARK
library(GEOquery)
library(Biobase)
diff --git a/scripts/R/DEA/GSE95388.R b/scripts/R/DEA/GSE95388.R
index 5c9325e..7439c6a 100644
--- a/scripts/R/DEA/GSE95388.R
+++ b/scripts/R/DEA/GSE95388.R
@@ -1,3 +1,18 @@
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
+
+
#BENJAMIN CLARK PLANT STUDY SPACE FLOWN
library(GEOquery)
@@ -5,7 +20,7 @@ library(Biobase)
library(limma)
source("microarray_functions.R")
-#This pulls the all the samples from the microarry dataset. This returns a list containing a single expressionSet object.
+#This pulls the all the samples from the microarry dataset. This returns a list containing a single expressionSet object.
gset <- getGEO("GSE95388", GSEMatrix =TRUE, AnnotGPL=TRUE)
gse <- gset[[1]]
@@ -32,5 +47,3 @@ meta.name <- "datasets/GSE95388_Atha/GSE95388_meta"
gse_list <- list(de)
labels <- c("")
extractMetaData(filename = meta.name, gse_groups = gse_list, microgravity_type = M.TYPE$SPACEFLOWN, metaLabels = labels, strain = "COL-0")
-
-
diff --git a/scripts/R/DEA/microarray_functions.R b/scripts/R/DEA/microarray_functions.R
index 023e352..901e77e 100644
--- a/scripts/R/DEA/microarray_functions.R
+++ b/scripts/R/DEA/microarray_functions.R
@@ -1,3 +1,17 @@
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
+
# MICROARRAY FUNCTIONS ADAPTED FROM GEO2R SCRIPTS FOR GENERALIZED DE ANALYSIS
#Benjamin Clark
@@ -6,14 +20,14 @@ library(arrayQualityMetrics)
M.TYPE <- create.enum(c("HARV","RPM","HYPERBOLIC","SPACEFLOWN", "RCCS"))
logcheck <- function(expression_matrix){
-
+
qx <- as.numeric(quantile(expression_matrix, c(0., 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))
LogC <- !((qx[5] > 100) ||
(qx[6]-qx[1] > 50 && qx[2] > 0) ||
(qx[2] > 0 && qx[2] < 1 && qx[4] > 1 && qx[4] < 2))
-
+
return(LogC)
-
+
}
extractMetaData <- function(gse_groups, filename, microgravity_type, metaLabels, strain = ""){
@@ -21,16 +35,16 @@ extractMetaData <- function(gse_groups, filename, microgravity_type, metaLabels,
e <- simpleError("Not a valid microgravity type")
stop(e)
}
-
-
+
+
org <- gse_groups[[1]]$GSE$organism_ch1[[1]]
if(strain != ""){
org <- paste(org, strain, sep = " ")
}
-
-
-
-
+
+
+
+
#wipe datatable if exists
#write.table(data.frame(), paste(filename, ".csv", sep = ""), append = FALSE)
for(i in 1:length(gse_groups)){
@@ -43,49 +57,49 @@ extractMetaData <- function(gse_groups, filename, microgravity_type, metaLabels,
#clean the directory
sink()
unlink(paste(filename, ".txt", sep = ""))
-
+
#append and create output
sink(paste(filename, ".txt", sep = ""), append = TRUE)
print(paste("ORGANISM:", org))
print(paste("MICROGRAVITY TYPE:",microgravity_type))
-
-
-
+
+
+
print(experimentData(gse_groups[[1]]$GSE))
-
+
sink()
-
+
}
de.analysis <- function(microgravity_group, ground_group, gse){
-
+
if (!(is(gse, "ExpressionSet") && is.vector(microgravity_group) && is.vector(ground_group))){
e <- simpleError("Improper data type(s) in signature")
stop(e)
}
group.set <- append(ground_group, microgravity_group)
groups_repr <- c()
-
+
groups_repr[which(group.set == ground_group)] <- "normal.gravity"
groups_repr[which(group.set == microgravity_group)] <- "micro.gravity"
fl <- as.factor(groups_repr)
-
+
#filtering out according to groups
filtered.gse <- gse[, group.set]
-
- #pulling expression data from it
+
+ #pulling expression data from it
ex <- exprs(gse)[,group.set]
-
+
#check if the data is log-transformed
LogC <- logcheck(ex)
-
-
- #if the sample isnt log transformed then we do it ourselves
- if (!LogC) {
+
+
+ #if the sample isnt log transformed then we do it ourselves
+ if (!LogC) {
ex[which(ex <= 0)] <- NaN
exprs(filtered.gse) <- log2(ex) }
-
+
# set up the data and proceed with analysis
#sml <- paste("G_", groups_repr, sep="") # set group names
filtered.gse$description <- fl
@@ -95,20 +109,20 @@ de.analysis <- function(microgravity_group, ground_group, gse){
cont.matrix <- makeContrasts(micro.gravity-normal.gravity, levels=design)
fit2 <- contrasts.fit(fit, cont.matrix)
fit2 <- eBayes(fit2, 0.01)
-
- #pulling the whole fitted microarray dataset and ordering by B value
+
+ #pulling the whole fitted microarray dataset and ordering by B value
tT <- topTable(fit2, adjust="fdr", sort.by="B", number = length(fit2[[1]]))
-
+
#We can get rid of the "number" argument and replace it with lfc = 2 for a log2 fold change of 2
#tT <- topTable(fit2, adjust="fdr", sort.by="B", lfc = 2)
-
+
#select parameters we want for the output
tT <- subset(tT, select=c("adj.P.Val","P.Value","t","B","logFC","Gene.symbol","Gene.title",
"Platform_ORF", "GO.Function", "GO.Process", "GO.Component", "Chromosome.annotation","ID"))
out.list <- list("TopTable" = tT, "GSE" = filtered.gse)
return(out.list)
-
-}
+
+}
remove.controls <- function(topTable){
failed.probes <- which(topTable$Platform_ORF == "")
@@ -116,7 +130,3 @@ remove.controls <- function(topTable){
f.topTable <- topTable[passed.probes,]
return(list(TopTable = f.topTable, failed.probes = failed.probes))
}
-
-
-
-
diff --git a/scripts/R/DEA/setup.R b/scripts/R/DEA/setup.R
index f65a8df..3088dcd 100644
--- a/scripts/R/DEA/setup.R
+++ b/scripts/R/DEA/setup.R
@@ -1,4 +1,16 @@
-
+#License
+
+# © Copyright 2020 iGEM Concordia, Maher Hassanain, Benjamin Clark, Hajar Mouddene, Grecia Orlano
+# This file is part of AstroBio.
+# AstroBio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or any later version.
+# AstroBio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with AstroBio. If not, see .
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
@@ -16,7 +28,3 @@ BiocManager::install("arrayQualityMetrics")
install.packages("devtools")
library(devtools)
devtools::install_github("aryoda/R_enumerations@v0.3.0-beta")
-
-
-
-
diff --git a/views/index.ejs b/views/index.ejs
index 4d360b3..5d01611 100644
--- a/views/index.ejs
+++ b/views/index.ejs
@@ -65,6 +65,7 @@ This file is part of AstroBio.
Differential gene expression analysis database for microgravity studies
+ Saccharomyces cerevisiae MultiStress Explorer can be found here
@@ -166,21 +167,46 @@ This file is part of AstroBio.
+
+
+
+ + Learn more about Astroyeast
+
+
+
ABOUT ASTROBIO
-
Astrobio is an open source database compiling literature findings on microgravity-induced gene expression changes in different living organisms. Researchers can search for specific genes, organisms, species, strains, etc. Researchers can also compare gene expression changes between studies for any given gene.
+
AstroBio is an open source database compiling literature findings on microgravity-induced gene expression changes in different living organisms. AstroBio contains transcriptomics datasets that were retrieved and analyzed from the NCBI GEO and SRA databases through the R software suite using R scripts written by our team. Included datasets were curated for quality based on normal density plot distributions, a sufficient number of replicates for robust statistical analysis, as well as the quantity of near one false discovery rates. Using our R scripts, we retrieved and performed differential gene expression analysis on two types of datasets: microarray and RNAseq.
-
Astrobio was developed by Concordia University's 2020 iGEM (international Genetically Engineered Machines) competition team as part of a larger research project. Astrobio was used to bioengineer Astroyeast, yeast strains with an alleviated response to microgravity-induced stress.
+
AstroBio was developed by Concordia University's 2020 iGEM (international Genetically Engineered Machines) competition team as part of a larger research project. AstroBio was used to bioengineer Astroyeast, yeast strains with an alleviated response to microgravity-induced stress.
+
Authors:
+
+
+
Maher Hassanain : Team leader, full stack developer, database management and software planning, integration and launching
+
+
+
Benjamin Clark : MultiStress Explorer developer and transcriptomics analysis scripts writer
+
+
+
+
+
Hajar Elmouddene : Software planning, content creator and frontend developer
+
+
+
Grecia Olano : Software planning, content creator and frontend developer
+
+
+
+
+
+
-
-
- + Learn more about Astroyeast
-
+
@@ -188,7 +214,45 @@ This file is part of AstroBio.
How To
-
How to use Astrobio: step by step guide
+
+
+
Search
+
One of the robust features of AstroBio is its search capabilities. Users can easily select any combination of the following eight search criteria: gene name, organism, species, microgravity conditions (spaceflown versus simulated microgravity), gene expression change in microgravity (upregulated versus downregulated expression), assay type (Microarray versus RNAseq), study (GEO accession number), platform open reading frame.
+
+
+
+
Compare
+
Unlike existing databases, AstroBio allows researchers the ability to directly and easily compare experimental findings for a specific gene across different studies, microgravity conditions (space-flown versus simulated microgravity), assay types, and generations. Such comparisons are important for any researcher who is attempting to determine whether results are consistent between studies for a given gene or set of genes. They are also important in determining whether there are any generation effects*.
+
*generations effects were included wherever applicable.
+
+
+
Evaluate
+
AstroBio is instrumental in determining expression changes in genes under various microgravity conditions and studies. Users can view differential gene expression analysis results, obtain general gene information, gene ontology, gene location and essential genes for spaceflights (if applicable). Moreover, users can also view study title, design, experimenter information, PlatformID, treatments and samples, experiment summary and link to the study.
+
+
+
+
+
+
+
+
+
MultiStress Explorer
+
The AstroBio MultiStress Explorer offers yeast researchers the unique ability to compare expression changes in Saccharomyces cerevisiae genes across different stressor conditions: microgravity-induced stress versus oxidative stress, heat shock-induced stress, or high-osmolarity-induced stress. Researchers can search a specific gene or multiple genes, choose the number of pairwise comparisons desired (heat shock vs. microgravity, high osmolarity vs. microgravity, oxidative stress vs. microgravity, or all of these options).
+
+
+
+
Results can be visualized in heatmaps, volcano plots, gene forest plots, and PCA-biplots. Users can also set thresholds values for PCA-biplots by setting values for expression change, number of top ranking genes, gene expression regulation (upregulated or downregulated). This allows a researcher to determine whether a given gene’s expression is specifically significantly affected by microgravity-induced stress compared to stress that is induced by other types of environmental stressors.
+
+
+
Export
+
We designed AstroBio with a “user-first” approach in mind. The database is a user-friendly web application that allows researchers the ability to filter results by ascending or descending expression changes, p value, and adjusted p value. The number of search results that are displayed per page can be set from available options: 10, 50, 100, or 500 results per page. Users can print and export search results in PDF formats.
+
+
+
@@ -286,34 +350,39 @@ This file is part of AstroBio.
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
@@ -323,6 +392,13 @@ This file is part of AstroBio.
+
+
+
+
+
+
+