Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New updates #46

Draft
wants to merge 3 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
## Contribution
# Contributing Guide

First of all thank you for your interest in contributing to this project :)

If you want to fix/report any bugs or add an extra module then please follow developer notes bellow. This will help us to maintain a specific structure to the project.

### Developers Notes
## Developer Notes

> These are the initial notes. This section will be expanded more detail. Till then please feel free to contact if anything else required to know.

If you want to start right away - [Try this Rstudio-Cloud instace of this project](https://rstudio.cloud/project/1023160). You might need to git pull after login to get the latest dev branch.

### Adding a new module

Try to keep `app.R` file minimal, only with essential lines of code. For each module, Server and UI functions should specify in a single R script (Example: `module_modulename.R`) and additional required functions for that modules should be in another file (Example: `module_modulename_utils.R`)

### Deploying

Whenever depolying to shinyapps.io - [Ref](https://support.bioconductor.org/p/107298/)

```R
options(repos = BiocManager::repositories())
```
1 change: 1 addition & 0 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Depends:
R (>= 3.0)
Imports:
shiny,
shinydashboard,
rmarkdown,
DT,
utils,
Expand Down
6 changes: 5 additions & 1 deletion R/app_utils.R
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,8 @@ app_noFCmsgPlot <- function(){
"You need to provide foldchange for this."),
cex = 1.6, col = "black")
par(mar = c(5, 4, 4, 2) + 0.1)
}
}

about_md <- function(){
return(paste0(find.package("SigBio"), "/app/about.md"))
}
40 changes: 13 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,15 @@ An interactive application suite/interface for doing Exploration and Significant

Note: Above is a screen recoding of SigBio-v0.2.1 (Few thing what you seeing in this recoding might be different when you download a recent version, as this project is going under rapid changes).

<details><summary>Try yourself?</summary>
<p>

Do it in your own computer system by following [installation instructions](#installation) or try one of the following methods.
Try yourself?

For now this application requires atleast 4 GB of system memory. So couldn't able to host on shinyapps.io but instead with generous help of RStudio now this project Rstudio Cloud instance is 4GB. So you can simply login with following project link and follow [run instructions](#run-the-app).
Few note before you start using -
* The application will take a while to start as initially, because it try to fetch and set up the basic database.
* Few componets of this application requires atleast 4 GB of system memory. So It might crash if no sufficient memory availbile.

[Try SigBio-Shiny in Rstudio-Cloud](https://rstudio.cloud/project/1023160)
Do it in your own computer system by following [installation instructions](#installation) or try one of the following methods.

</p>
</details>
A demo instance - https://sksahu.shinyapps.io/sigbio/ (the above note applies to this as well)

---

Expand All @@ -44,14 +42,18 @@ Table Of Content
- [Developers Notes](#developers-notes)
- [Code of Conduct](#code-of-conduct)

## Overview
<details><summary><h2> Overview </h2></summary>
<p>

The main motivation is to provide an easy interface to explore a Gene-set, without worrying about getting an organism database or conversion between particular R object which can be input to an available awesome R/Bioconductor package.

After downstream analysis of gene expression data, the end results are often a set of genes (may be a list of clustered genes, up/down regulated genes). To know their biological significance on a particular context (gene ontology or pathway) lot of statistical analysis available (Gene set enrichment, Over representation). Some awesome Bioconductor packages are developed for this purpose, But often the entry point might be difficult in some cases (mostly because of a particular input type). Also, besides that specifically for non-model organism it is little challenging.

Trying to solve these problems sig-bio-shiny is made. Completely made using R and Bioconductor. No manual database dump required, which make deployment simple with a single R Script. It takes full advantage of AnnotationHub package to get latest annotation for the selected organism and do statistical analysis on top of it using various well known packages.

</p>
</details>

![](https://github.com/sk-sahu/sig-bio-shiny/blob/master/inst/figures/sig-bio-shiny-structure.png)

## Features
Expand Down Expand Up @@ -119,25 +121,9 @@ Accessed app in a browser at http:https://127.0.0.1

## Contribution

First of all thank you for your interest in contributing to this project :)
This is an open project. Please feel to contribute.

If you want to fix/report any bugs or add an extra module then please follow developer notes bellow. This will help us to maintain a specific structure to the project.

### Developers Notes

<details><summary> Expand </summary>
<p>
Try to keep `app.R` file minimal, only with essential lines of code. For each module, Server and UI functions should specify in a single R script (Example: `module_modulename.R`) and additional required functions for that modules should be in another file (Example: `module_modulename_utils.R`)

I'll extend this section in more detail. Till then please feel free to contact for more details.

Whenever depolying to shinyapps.io - [Ref](https://support.bioconductor.org/p/107298/)

```R
options(repos = BiocManager::repositories())
```
</p>
</details>
Here is a [guide for start with contributing](http:https://sk-sahu.github.io/sig-bio-shiny/CONTRIBUTING.html).

### Code of Conduct

Expand Down
5 changes: 5 additions & 0 deletions inst/app/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**SigBio-Shiny: A standalone interactive application for detecting biological significance on a set of genes**

Homepage: https://github.com/sk-sahu/sig-bio-shiny/

Issue/bug/suggestions: Please create an issue [here](https://github.com/sk-sahu/sig-bio-shiny/issues) or directly ask on [Gitter open chatroom](https://gitter.im/sig-bio-shiny/community)
24 changes: 10 additions & 14 deletions inst/app/app.R
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ ENSG00000134690,0.2
ENSG00000065328,1.7
ENSG00000117399,-0.5"

default_gene_type <- "ENSEMBL"

library(shiny)
library(shinydashboard)

Expand All @@ -44,9 +46,8 @@ ui <- dashboardPage(
menuItem("Mapped Ids", tabName = "mapped-ids", icon = icon("dashboard")),
menuItem("Gene Ontology", tabName = "gene-ontology", icon = icon("dashboard")),
menuItem("KEGG", tabName = "kegg", icon = icon("dashboard")),
menuItem("session-info", tabName = "session-info", icon = icon("dashboard")),
menuItem("Help", tabName = "help", icon = icon("dashboard")),
menuItem("About", tabName = "about", icon = icon("dashboard"))
menuItem("Session-info", tabName = "session-info", icon = icon("dashboard")),
menuItem("About", tabName = "about", icon = icon("info-circle"))
)
),
dashboardBody(
Expand All @@ -58,7 +59,7 @@ ui <- dashboardPage(
label = "[Gene] or [Gene,Foldchnage] list:",
height = "150px", width = "230px",
value = example_genelist),
selectInput("id_type", label = "Input gene-id Type:", selected = "ENSEMBL",
selectInput("id_type", label = "Input gene-id Type:", selected = default_gene_type,
choices=c("ENSEMBL", "REFSEQ", "ENTREZID"))
),
box(title = "Organism Input",
Expand Down Expand Up @@ -106,13 +107,8 @@ ui <- dashboardPage(
verbatimTextOutput("sessioninfo")
),

tabItem("help",
includeHTML("")
),

tabItem("about",
icon = icon("info-circle") ,
includeHTML("")
includeMarkdown(SigBio:::about_md())
)
)
)
Expand Down Expand Up @@ -142,7 +138,7 @@ server <- function(input, output) {

incProgress(1/7, detail = paste("Getting Org Database...")) ##### Progress step 1

validated_app_input <- callModule(SigBio:::app_input_validate_server, "input_validate",
validated_app_input <- callModule(SigBio:::app_input_validate_server, "input_validate", session,
input_org = input$org,
input_orgdb = orgdb,
input_ah = ah,
Expand All @@ -169,15 +165,15 @@ server <- function(input, output) {

# all maped ids
if(input$tabs=="mapped-ids"){
callModule(SigBio:::mapids_server, "mapids",
callModule(SigBio:::mapids_server, "mapids", session,
gene_list_uprcase = app_input$gene_list_uprcase,
org_pkg = app_input$org_pkg,
gtf_type = app_input$gtf_type)
}

# gene ontology
if(input$tabs=="gene-ontology"){
callModule(SigBio:::enrichGO_server, "enrichgo",
callModule(SigBio:::enrichGO_server, "enrichgo", session,
gene_list = app_input$gene_list_uprcase,
gene_list_with_fc = app_input$gene_list_with_fc,
entrez_ids_with_fc_vector = app_input$entrez_ids_with_fc_vector,
Expand All @@ -191,7 +187,7 @@ server <- function(input, output) {
if(input$tabs=="kegg"){
incProgress(6/7, detail = paste("Doing KEGG...")) ##### Progress step 6
SigBio:::sigbio_message(paste0("Doing enrichKEGG... "))
callModule(SigBio:::enrichKEGG_server, "enrichkegg",
callModule(SigBio:::enrichKEGG_server, "enrichkegg", session,
gene_list_with_fc = app_input$gene_list_with_fc,
entrez_ids_with_fc_vector = app_input$entrez_ids_with_fc_vector,
entrez_ids_with_fc = app_input$entrez_ids_with_fc,
Expand Down
20 changes: 14 additions & 6 deletions vignettes/SigBio.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,28 @@ output:
html_document:
toc: true
toc_depth: 3
#bibliography: bib/bibliography.bib
#csl: bib/3-biotech.csl
#link-citations: true
bibliography: bib/bibliography.bib
csl: bib/3-biotech.csl
link-citations: true
vignette: >
%\VignetteIndexEntry{1. Basic Overview}
%\VignetteEncoding{UTF-8}
%\VignetteEngine{knitr::rmarkdown}
---

# What is Sig-Bio-Shiny?
## Why is Sig-Bio-Shiny?

The main motivation is to provide an easy interface to explore a Gene-set, without worrying about getting an organism database or conversion between particular R object which can be input to an available awesome R/Bioconductor package.

# Background
Sig-Bio-Shiny Application uses few of the Biocondutor packages underneath to give an interface for doing significant biology (Such as GO, KEGG, GSE analysis).
After downstream analysis of gene expression data, the end results are often a set of genes (may be a list of clustered genes, up/down regulated genes). To know their biological significance on a particular context (gene ontology or pathway) lot of statistical analysis available (Gene set enrichment, Over representation). Some awesome Bioconductor packages are developed for this purpose, But often the entry point might be difficult in some cases (mostly because of a particular input type). Also, besides that specifically for non-model organism it is little challenging.

Trying to solve these problems sig-bio-shiny is made. Completely made using R and Bioconductor. No manual database dump required, which make deployment simple with a single R Script. It takes full advantage of AnnotationHub package to get latest annotation for the selected organism and do statistical analysis on top of it using various well known packages.

![](https://github.com/sk-sahu/sig-bio-shiny/blob/master/inst/figures/sig-bio-shiny-structure.png)

## Background

Sig-Bio-Shiny Application uses few of the Biocondutor packages underneath.

* [AnnotationHub] To get annotation information. [@AnnotationHub]
* [AnnotationDbi] To use some universal APIs for mapping data from OrgDb objects. [@AnnotationDbi]
Expand Down