Giter Site home page Giter Site logo

cparsania / fungiexpresz Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 0.0 342.58 MB

An R-shiny package to analyse and visualise fungal gene expression data

Home Page: https://cparsania.shinyapps.io/FungiExpresZ/

License: Other

R 85.68% Dockerfile 0.15% JavaScript 0.05% TeX 14.13%
rpackage shinyapp datavisualization geneexpression fungi sra-data visualizations visualization

fungiexpresz's Introduction

FungiExpresZ

FungiExpresZ: an intuitive package for fungal gene expression data analysis, visualization and discovery

For a reference and citation for FungiExpresZ:

Chirag Parsania, Ruiwen Chen,  Pooja Sethiya,  Zhengqiang Miao, LiguoDong, Koon Ho Wong. "FungiExpresZ: an intuitive package for fungal gene expression data analysis, visualization and discovery". Briefings in Bioinformatics (2023) doi: 10.1093/bib/bbad051

Overview

FungiExpresZ is a browser based user interface (developed in R-shiny) to analyse and visualize gene expression data. It allows users to visualize their own gene expression data as well as more than 16,000 pre processed SRA fungal gene expression data. Users can even merge their data with SRA data to perform combined analysis and visualizations. Just uploading gene expression matrix (.txt file where rows are genes and column are samples), users can generate 12 different exploratory visualizations and 6 different GO visualizations. Optionally, users can even upload multiple gene groups and sample groups to compare between them. GO analysis and GO visualizations can be performed for more than 100 different fungal species. Users can select set of genes directly from one of the scatter plot, line plot or heatmap and pass them for GO analysis and GO visualizations.

Key features

1.1 About 16,000 NCBI-SRA data from 18 different fungal species.

FungiExpresZ provides normalized gene expression values (FPKM) for more than 13,000 SRA samples. User can select one more data for visualizations. Data can be searched based on species, genotype, strain or free text which will be matched against several SRA columns.

Species SRA sample counts
Aspergillus flavus NRRL3357 348
Aspergillus fumigatus Af293 242
Aspergillus nidulans FGSC A4 151
Aspergillus niger CBS 513.88 253
Botrytis cineria B05.10 142
Candida albicans SC5314 639
Candida auris B8 441 46
Candida glabrata CBS 138 126
Cryptococcus gattii NT-10 11
Cryptococcus neoformans var. neoformans JEC21 385
Fusarium fujikuroi IMI 58289 74
Fusarium graminearum PH-1 344
Fusarium oxysporum Fo47 131
Fusarium proliferatum ET1 4
Fusarium verticillioides 7600 179
Saccharomyces cerevisiae 11872
Talaromyces marneffei ATCC 18224 26
Ustilago maydis 521 71

NOTE: We are continuously processing fungal SRA data. This table will be updated as we add new data.

1.2 Users can visualize their own data with or without integration of selected SRA data

Users can analyze and visualize their own data by uploading .txt/.csv file (columns are samples and rows are genes). Optionally, user data can be integrated with selected SRA data for combined analysis and visualization.

1.3 Visualize multiple gene groups and sample groups in a single plot

Optionally, user can upload sample groups (e.g. replicates, control vs treatment, wild type vs deletion etc.) and gene groups to compare between them. Group information can be used across several plots against fill and facet plot attributes.

1.4 12 different data exploratory visualizations

FungiExpresZ provides browser based user friendly interface, which allows users to generate ggplot2 based 12 different publication-ready elegant visualizations. Users are allowed to adjust several common plot attributes such as plot title, axis title, font size, plot theme, legend size, legend position etc. and several other plot specific attributes. Available plot options are …

  1. Scatter Plot
  2. Multi-Scatter Plot
  3. Corr Heat Box
  4. Density Plot
  5. Histogram
  6. Joy Plot
  7. Box Plot
  8. Violin Plot
  9. Bar Plot
  10. PCA Plot
  11. Line Plot
  12. Heatmap

1.5 Supports Gene Ontology (GO) enrichment and visualizations for more than 100 different fungal species

FungiExpresZ allows users to define gene-set(s) directly from plot (Scatter plot, Line plot and Heatmap) to perform gene ontology enrichment and visualizations. Available GO visualizations are …

  1. Emap plot
  2. Cnet plot
  3. Dot plot
  4. Bar plot
  5. Heat plot
  6. Upset plot

Getting access

There are three ways in which you can access FungiExpresZ.

Online

FungiExpresZ has been hoisted on shinyapps.io and can be accessed through the link https://cparsania.shinyapps.io/FungiExpresZ/. This is one of the quickest way to access the FungiExpresZ. However, due to limited computational resources, We recommend using this approach only when the size of the data is comparatively small (< 10 MB) and/or you are in a need of quick figure out of the data. Current setup allows approx. 30 concurrent users to access FungiExpresZ online. Additional traffic may disconnect random users’ session and you may end up loosing all analysis performed. Even without access traffic idle session timeout is 30 minutes, and therefore you may loose your analysis if you have thought to continue later. For stable, robust and to have long lasting session it is recommended to use one of the following two approaches.

Run Locally

Use as a docker container

This approach is highly recommended for local run as it saves users from worrying about any dependency related issues.

Install docker desktop

Follow the instructions given below to install docker desktop on …

Pull FungiExpresZ docker image to a local computer

Once the docker desktop is installed, next step is to pull the FungiExpresZ’s docker image. Before you pull the image make sure your docker desktop is running. Next, to pull the image, open the terminal and enter the below command.

docker pull cparsania/fungiexpresz:<tagName>

Replace <tagName> with the version you want to download. For example, command below will download the version 1.3.0

docker pull cparsania/fungiexpresz:1.3.0

Possible values for <tagName> can be obtained from here. It is recommended to pull latest available tag.

Run container

After getting the image on local computer, it can be run as a container. The command below will open the port given as <port_number> on local computer and launch the application on same.

docker run -p <port_number>:80 cparsania/fungiexpresz:<tagName>

You can give valid TCP <port_number> which is not occupied by your system (e.g. 3232, 3233, 5434, … etc.).

Successful launch will print standard R welcome message on terminal with the final the line http://0.0.0.0:80.

Run on browser, Finally.!!

After launch, hitting one of these URLs http://localhost:<port_number or http://127.0.0.1:<port_number> or http://<your_ip_address:<port_number> should launch the application on your browser.

Congrats!! 🎉🎉🎉🎉 .Your application will keep running until you stop the container explicitly.

Memory usage for docker

Depending upon size of the data you are analyzing, you may need to assign more computational resources to docker than the default which is 2 GB of memory and 4 CPUs on a mac with 32GB memory and 8 CPUs. Default behavior can be changed from Docker -> Preferences -> Advanced

We recommend users to allocate at least 4 GB of memory to docker before running the FungiExpresZ docker image.

How to stop container?

Container will be active until it is explicitly stopped. You can stop container using below command on a new terminal window.

#Get container id

docker ps 

#stop container 

docker stop <CONTAINER ID>

Install as an R package

FungiExpresZ can be installed as an R package on a local computer or a server. To do so basic skills of R programming is required.

Prerequisites

R version (>= 3.6.1)

Installation of FungiExpresZ as an R package is different than usual. To protect potential breakdown of various utilities of FungiExpresZ , it is recommended that FungiExpresZ uses same versions of dependancy R packages as development. Steps below will install the required versions of dependency packages without affecting already installed packages in your computer.

To keep already installed R packages unaffected in lthe ocal computer, FungiExpresZ will be installed in a separate directory.

Installation steps

  1. Create an installation directory (e.g. FungiExpresZ_R_pkg).

  2. Download renv.lock 👉 here.

renv.lock file contains information required to install specific version of dependency packages.

  1. Move renv.lock file into the installation directory created in step-1.

  2. Download an appropriate package bundle. 👉 Download package bundle here

NOTE: It is highly recommended that you download the latest available version.

  • Mac : FungiExpresZ_<version>.tgz

  • Windows: FungiExpresZ_<version>.tar.gz

  1. Move package bundle to installation directory created in step-1.

  2. Install an R pacakge renv from the terminal.

NOTE: Open terminal to type below commands

cd <path/to/installation/directory>

R -e "install.packages('remotes', repos = c(CRAN = 'https://cloud.r-project.org'))"
R -e "remotes::install_github('rstudio/[email protected]')" # 0.9.2 denotes the renv package version. 
  1. Initiate the project in a current directory.
R -e 'renv::init()'
  1. Install required versions of dependency packages.
R -e 'renv::consent(provided = TRUE)'
R -e 'renv::restore()'

NOTE: To run above commands renv.lock file must be in the same directory.

  1. Install R package devtools
R -e 'install.packages("devtools")'
  1. Install FungiExpresZ.
R -e 'devtools::install_local("FungiExpresZ_1.3.0.tar.gz" , dependencies=FALSE,  build = FALSE)'

NOTE: In above command FungiExpresZ_1.3.0.tar.gz is the path to bundle file downloaded in the step-4.

  1. Run FungiExpresZ through installed R package.
R -e 'library(shinyBS);FungiExpresZ::run_app()'
  1. Access through browser

Hit the URL printed on the console to browser and you are ready to go 🎉🎉🎉🎉.


fungiexpresz's People

Contributors

cparsania avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

fungiexpresz's Issues

Move all download tables to server sides

Currently, tables are processed on the client side. This makes processing slow and sometimes forces the browser to reload precisely when the table size is too big. To prevent this behaviour move table processing to the server side.

Heatmap gene order issue.

In heatmap plot,

For user-uploaded data, genes will be plotted in the same order if clustering is not performed. This is correct.

While analysing public gene expression data if user uploads gene groups, order of the genes within each group should be the same as user-uploaded genes. Currently, within each group, genes are plotted in alphabetical order.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.