Skip to content
Open
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
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,4 @@ src/api_service/experiments/venv
docker-compose.yml
src/secretkey.txt
docker-compose.mauri_dev.yml
venv
.DS_Store
venv
64 changes: 24 additions & 40 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,64 +1,47 @@
FROM python:3.12-slim-bookworm

# Docker Files Vars
ARG LISTEN_PORT=8000
ARG LISTEN_IP="0.0.0.0"
ARG LISTEN_PORT 8000
ARG LISTEN_IP "0.0.0.0"

# Default values for deploying with multiomix image
ENV LISTEN_PORT=$LISTEN_PORT
ENV LISTEN_IP=$LISTEN_IP
ENV DJANGO_SETTINGS_MODULE="multiomics_intermediate.settings_prod"
ENV RESULT_DATAFRAME_LIMIT_ROWS=500
ENV TABLE_PAGE_SIZE=10
ENV LISTEN_PORT $LISTEN_PORT
ENV LISTEN_IP $LISTEN_IP
ENV DJANGO_SETTINGS_MODULE "multiomics_intermediate.settings_prod"
ENV RESULT_DATAFRAME_LIMIT_ROWS 500
ENV TABLE_PAGE_SIZE 10

# Modulector connection parameters
ENV MODULECTOR_HOST="127.0.0.1"
ENV MODULECTOR_PORT="8001"
ENV MODULECTOR_HOST "127.0.0.1"
ENV MODULECTOR_PORT "8001"

# BioAPI connection parameters
ENV BIOAPI_HOST="127.0.0.1"
ENV BIOAPI_PORT="8002"
ENV BIOAPI_HOST "127.0.0.1"
ENV BIOAPI_PORT "8002"

# PostgreSQL DB connection parameters
ENV POSTGRES_USERNAME="multiomics"
ENV POSTGRES_PASSWORD="multiomics"
ENV POSTGRES_HOST="db"
ENV POSTGRES_PORT=5432
ENV POSTGRES_DB="multiomics"
ENV POSTGRES_USERNAME "multiomics"
ENV POSTGRES_PASSWORD "multiomics"
ENV POSTGRES_HOST "db"
ENV POSTGRES_PORT 5432
ENV POSTGRES_DB "multiomics"

# Mongo DB connection parameters
ENV MONGO_USERNAME="multiomics"
ENV MONGO_PASSWORD="multiomics"
ENV MONGO_HOST="mongo"
ENV MONGO_PORT=27017
ENV MONGO_DB="multiomics"
ENV MONGO_USERNAME "multiomics"
ENV MONGO_PASSWORD "multiomics"
ENV MONGO_HOST "mongo"
ENV MONGO_PORT 27017
ENV MONGO_DB "multiomics"

# Redis
ENV REDIS_HOST="redis"
ENV REDIS_PORT=6379
ENV REDIS_HOST "redis"
ENV REDIS_PORT 6379

# Installs system dependencies and Node.js
RUN apt-get update && apt-get install -y python3-pip curl libcurl4-openssl-dev libssl-dev libxml2-dev \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs && mkdir /config \
&& mkdir /src

# Install R 4.4.2 from CRAN (Debian bookworm) and system dependencies
RUN set -eux; \
echo "deb http://deb.debian.org/debian sid main" > /etc/apt/sources.list.d/debian-unstable.list; \
printf 'APT::Default-Release "%s";\n' "bookworm" > /etc/apt/apt.conf.d/00default-release; \
echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf.d/90no-recommends; \
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 50\n' > /etc/apt/preferences.d/99pin-unstable; \
apt-get update; \
apt-get install -y --no-install-recommends \
ca-certificates curl gnupg build-essential gfortran libblas-dev liblapack-dev git \
libssl-dev libcurl4-openssl-dev libxml2-dev; \
apt-get install -y \
r-base=4.2.2.20221110-2 r-base-dev=4.2.2.20221110-2 r-recommended=4.2.2.20221110-2; \
rm -rf /var/lib/apt/lists/*

# Install Bioconductor limma (stats and base come with R)
RUN R -q -e 'options(repos=c(CRAN="https://cloud.r-project.org")); install.packages("BiocManager"); BiocManager::install(version="3.16", ask=FALSE); BiocManager::install("limma", ask=FALSE, update=FALSE)'

# Installs Python dependencies and compiles the frontend
ADD config/requirements.txt /config/
WORKDIR /src
Expand All @@ -75,3 +58,4 @@ HEALTHCHECK --interval=5m --timeout=30s CMD ["/bin/bash", "-c", "/src/tools/chec
ENTRYPOINT ["/bin/bash", "-c", "/src/entrypoint.sh"]

EXPOSE $LISTEN_PORT

63 changes: 23 additions & 40 deletions Dockerfile-celery
Original file line number Diff line number Diff line change
@@ -1,64 +1,47 @@
FROM python:3.12-slim-bookworm

# Docker Files Vars
ARG LISTEN_PORT=8000
ARG LISTEN_IP="0.0.0.0"
ARG LISTEN_PORT 8000
ARG LISTEN_IP "0.0.0.0"

# Default values for deploying with multiomix image
ENV LISTEN_PORT=$LISTEN_PORT
ENV LISTEN_IP=$LISTEN_IP
ENV DJANGO_SETTINGS_MODULE="multiomics_intermediate.settings_prod"
ENV RESULT_DATAFRAME_LIMIT_ROWS=500
ENV TABLE_PAGE_SIZE=10
ENV LISTEN_PORT $LISTEN_PORT
ENV LISTEN_IP $LISTEN_IP
ENV DJANGO_SETTINGS_MODULE "multiomics_intermediate.settings_prod"
ENV RESULT_DATAFRAME_LIMIT_ROWS 500
ENV TABLE_PAGE_SIZE 10

# Modulector connection parameters
ENV MODULECTOR_HOST="127.0.0.1"
ENV MODULECTOR_PORT="8001"
ENV MODULECTOR_HOST "127.0.0.1"
ENV MODULECTOR_PORT "8001"

# BioAPI connection parameters
ENV BIOAPI_HOST="127.0.0.1"
ENV BIOAPI_PORT="8002"
ENV BIOAPI_HOST "127.0.0.1"
ENV BIOAPI_PORT "8002"

# PostgreSQL DB connection parameters
ENV POSTGRES_USERNAME="multiomics"
ENV POSTGRES_PASSWORD="multiomics"
ENV POSTGRES_HOST="db"
ENV POSTGRES_PORT=5432
ENV POSTGRES_DB="multiomics"
ENV POSTGRES_USERNAME "multiomics"
ENV POSTGRES_PASSWORD "multiomics"
ENV POSTGRES_HOST "db"
ENV POSTGRES_PORT 5432
ENV POSTGRES_DB "multiomics"

# Mongo DB connection parameters
ENV MONGO_USERNAME="multiomics"
ENV MONGO_PASSWORD="multiomics"
ENV MONGO_HOST="mongo"
ENV MONGO_PORT=27017
ENV MONGO_DB="multiomics"
ENV MONGO_USERNAME "multiomics"
ENV MONGO_PASSWORD "multiomics"
ENV MONGO_HOST "mongo"
ENV MONGO_PORT 27017
ENV MONGO_DB "multiomics"

# Redis
ENV REDIS_HOST="redis"
ENV REDIS_PORT=6379
ENV REDIS_HOST "redis"
ENV REDIS_PORT 6379

# Installs system dependencies
RUN apt-get update && apt-get install -y python3-pip curl libcurl4-openssl-dev libssl-dev libxml2-dev \
&& mkdir /config \
&& mkdir /src

# Install R 4.4.2 from CRAN (Debian bookworm) and system dependencies
RUN set -eux; \
echo "deb http://deb.debian.org/debian sid main" > /etc/apt/sources.list.d/debian-unstable.list; \
printf 'APT::Default-Release "%s";\n' "bookworm" > /etc/apt/apt.conf.d/00default-release; \
echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf.d/90no-recommends; \
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 50\n' > /etc/apt/preferences.d/99pin-unstable; \
apt-get update; \
apt-get install -y --no-install-recommends \
ca-certificates curl gnupg build-essential gfortran libblas-dev liblapack-dev git \
libssl-dev libcurl4-openssl-dev libxml2-dev; \
apt-get install -y \
r-base=4.2.2.20221110-2 r-base-dev=4.2.2.20221110-2 r-recommended=4.2.2.20221110-2; \
rm -rf /var/lib/apt/lists/*

# Install Bioconductor limma (stats and base come with R)
RUN R -q -e 'options(repos=c(CRAN="https://cloud.r-project.org")); install.packages("BiocManager"); BiocManager::install(version="3.16", ask=FALSE); BiocManager::install("limma", ask=FALSE, update=FALSE)'

# Installs Python dependencies
ADD config/requirements_celery.txt /config/requirements.txt
RUN pip install --upgrade pip && pip3 install -r /config/requirements.txt
Expand Down
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<img style="float: right" src="src/frontend/static/frontend/img/logo-readme.png" alt="Multiomix logo">
<img align="right" src="src/frontend/static/frontend/img/logo-readme.png" alt="Multiomix logo">

# Multiomix

Expand All @@ -15,7 +15,6 @@ This document is focused on the **development** of the system. If you are lookin
- Node JS >= `20.x` (tested version: `20.x`)
- [Modulector][modulector] `2.2.0`
- [BioAPI][bioapi] `1.2.1`
- R `4.4.2` (required for `differential-expression`)


## Installation
Expand Down Expand Up @@ -67,7 +66,6 @@ Every time you want to work with Multiomix, you need to follow the below steps:
1. `python3 -m celery -A multiomics_intermediate worker -l info -Q stats`
1. `python3 -m celery -A multiomics_intermediate worker -l info -Q inference`
1. `python3 -m celery -A multiomics_intermediate worker -l info -Q sync_datasets`
1. `python3 -m celery -A multiomics_intermediate worker -l info -Q differential_expression`
1. If you want to check Task in the GUI you can run [Flower](https://flower.readthedocs.io/en/latest/index.html) `python3 -m celery -A multiomics_intermediate flower`

**NOTE:** maybe in Windows is needed to add `--pool=solo` to the previous commands. Example: `python3 -m celery -A multiomics_intermediate worker -l info -Q correlation_analysis --concurrency 1 --pool=solo`
Expand Down
2 changes: 0 additions & 2 deletions config/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,3 @@ scipy==1.13.0
statsmodels==0.14.2
xlrd==2.0.1
openpyxl==3.1.5
rpy2==3.6.1
urllib3==2.5.0
2 changes: 0 additions & 2 deletions config/requirements_celery.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,3 @@ scipy==1.13.0
statsmodels==0.14.2
xlrd==2.0.1
openpyxl==3.1.5
rpy2==3.6.1
urllib3==2.5.0
16 changes: 0 additions & 16 deletions docker-compose_dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,21 +233,6 @@ services:
# REDIS_HOST: 'redis'
# REDIS_PORT: 6379

# Celery worker for differential expression
differential-expression-worker:
image: omicsdatascience/multiomix:5.6.0-celery
restart: 'always'
depends_on:
- db
- mongo
volumes:
- media_data:/src/media
environment:
<<: *common-variables
QUEUE_NAME: 'differential_expression' # This MUST NOT be changed
CONCURRENCY: 2
# PostgreSQL, Mongo y Redis usan los valores por defecto del resto de servicios

# Django backend service
multiomix:
image: omicsdatascience/multiomix:5.6.0
Expand Down Expand Up @@ -305,7 +290,6 @@ services:
- stats-worker
- inference-worker
- sync-datasets-worker
- differential-expression-worker

volumes:
mongo_data:
Expand Down

This file was deleted.

Loading
Loading