https://github.com/maayanlab/scavi
Single-cell RNA-seq data analysis and visualization
https://github.com/maayanlab/scavi
Last synced: 5 months ago
JSON representation
Single-cell RNA-seq data analysis and visualization
- Host: GitHub
- URL: https://github.com/maayanlab/scavi
- Owner: MaayanLab
- License: apache-2.0
- Created: 2018-06-20T19:03:12.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-02T13:02:00.000Z (over 2 years ago)
- Last Synced: 2023-03-31T16:29:45.877Z (about 2 years ago)
- Language: Python
- Homepage: http://amp.pharm.mssm.edu/scavi
- Size: 15.2 MB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# scAVI
scAVI is a web-based platform developed to enable users to analyze and visualize published and not published single cell RNA sequencing (scRNA-seq) datasets with state-of-the-art algorithms and visualization methods.The scAVI platform supports the analysis and visualization of 463 publicly available scRNA-seq studies from GEO covering 194,653 single cells/samples. Analyses are provided as 463 dedicated landing pages and Jupyter Notebook reports for each study.
## Deploying
### Environment
scAVI depends on several external elements including:
- biojupies notebook generator
- google cloud storage of notebooks
- mysql for registration of notebooks
- scavi visualization
- mongodb for pca/coords & metadataThe `Dockerfile` has detailed directions about setting up a system with the necessary R & python dependencies while the `docker-compose.yml` demonstrates how scavi can connect to the various external components. More likely, you would run those databases on the cloud and configure them.
The `.env.example` file has some example values, it can be copied over to `.env` and modified with the credentials and paths you use in your own application prior to using the docker-compose.
For help setting up scavi for yourself it is recommended that you contact us for further direction.
### NPM
We use nodejs for some of the UI development, for this purpose the npm package manager has a `package.json` file which identifies all necessary dependencies. Assuming you already have npm installed, this is a simple `npm install` command. For more information on npm, including installing it, please consult the [npm docs](https://docs.npmjs.com/).### Docker
We use `Dockerfile` and `docker-compose.yml` to document the process of constructing a complete virtual system capable of running this application. This includes R and python installations; the docker-compose goes a level higher and documents how scavi interacts with external databases. For more information on using docker-compose, please consult the [docker-compose documentation](https://docs.docker.com/compose/)..```bash
# Ensure you install npm dependencies in the static directory prior to building the dockerfile
cd static && npm i
# Then build the dockerfile
docker-compose build scavi
# And run
docker-compose up scavi
# Or deploy
docker-compose push scavi
```## Development
### Installation
#### Python2
```bash
# ensure virtualenv is installed
python2 -m pip install virtualenv
# ensure setup virtualenv
python2 -m virtualenv venv
# establish virtualenv
source venv/bin/activate
# install packages
pip install -r requirements.txt
```#### R
```bash
# ensure R stores things here
export R_LIBS=$(pwd)/renv
# setup R environment
R -e "source('setup.R')"
```#### NodeJS
```bash
cd static
# Install node dependencies
npm i
```### Running in development
```bash
# activate environments
source venv/bin/activate
export R_LIBS=$(pwd)/renv
# export .env variables
set -o allexport
source .env
set +o allexport
# run
bash run.sh
```