Skip to content

Commit 98696b3

Browse files
committed
Merge branch 'v5.0.0' of https://github.com/omics-datascience/multiomix into fix/cgds_unlinkdataset
2 parents 250bed4 + 2d487e6 commit 98696b3

13 files changed

+63
-23
lines changed

DEPLOYING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ To integrate with [Modulector][modulector] and/or [BioAPI][bioapi] using `docker
179179
name: 'multiomix-network'
180180
```
181181
3. The new versions of BioAPI and Modulector already come with service names suitable for integration with Multiomix. But **if you have any old version of those platforms**, change the Modulector and BioAPI configuration so that it does not conflict with the Multiomix configuration:
182-
1. Rename all the services in the Modulector and BioAPI `docker-compose.yml` files with the suffix `_modulector` and `_bioapi`. And rename `web` service to `modulector` or `bioapi` respectively. **NOTE:** do not forget to rename the `depends_on` parameters, and the database connection parameters to point to the new services names.
182+
1. Rename all the services in the Modulector and BioAPI `docker-compose.yml` files with the suffix `_modulector` and `_bioapi`. For example `mongo_bioapi`, `web_bioapi` and `nginx_bioapi` in the case of BioAPI. **NOTE:** do not forget to rename the `depends_on` parameters, and the database connection parameters to point to the new services names.
183183
2. Change the following block in the NGINX configuration files. In Modulector it's `config/nginx/conf.d/modulector.conf`, in BioAPI it's `/nginx/conf.d/default.conf`:
184184
```
185185
# Old
@@ -191,7 +191,7 @@ To integrate with [Modulector][modulector] and/or [BioAPI][bioapi] using `docker
191191
# New
192192
upstream web {
193193
ip_hash;
194-
server modulector:8000; # Or bioapi, dependening on which config file you're
194+
server web_modulector:8000; # Or web_bioapi, dependening on which config file you're editing
195195
}
196196
```
197197
4. Set Multiomix parameters:

docker-compose_dist.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ services:
6060

6161
# Celery worker for correlation analysis
6262
correlation-analysis-worker:
63-
image: omicsdatascience/multiomix:5.3.0-celery
63+
image: omicsdatascience/multiomix:5.4.0-celery
6464
restart: 'always'
6565
depends_on:
6666
- db
@@ -77,7 +77,7 @@ services:
7777

7878
# Celery worker for feature selection experiments
7979
fs-experiments-worker:
80-
image: omicsdatascience/multiomix:5.3.0-celery
80+
image: omicsdatascience/multiomix:5.4.0-celery
8181
restart: 'always'
8282
depends_on:
8383
- db
@@ -94,7 +94,7 @@ services:
9494

9595
# Celery worker for statistical validations and trained models
9696
stats-worker:
97-
image: omicsdatascience/multiomix:5.3.0-celery
97+
image: omicsdatascience/multiomix:5.4.0-celery
9898
restart: 'always'
9999
depends_on:
100100
- db
@@ -111,7 +111,7 @@ services:
111111

112112
# Celery worker for inference experiments
113113
inference-worker:
114-
image: omicsdatascience/multiomix:5.3.0-celery
114+
image: omicsdatascience/multiomix:5.4.0-celery
115115
restart: 'always'
116116
depends_on:
117117
- db
@@ -128,7 +128,7 @@ services:
128128

129129
# Celery worker for sync CGDSStudies
130130
sync-datasets-worker:
131-
image: omicsdatascience/multiomix:5.3.0-celery
131+
image: omicsdatascience/multiomix:5.4.0-celery
132132
restart: 'always'
133133
depends_on:
134134
- db
@@ -145,7 +145,7 @@ services:
145145

146146
# Django Backend Server
147147
multiomix:
148-
image: omicsdatascience/multiomix:5.3.0
148+
image: omicsdatascience/multiomix:5.4.0
149149
restart: 'always'
150150
# environment:
151151
# DJANGO_SETTINGS_MODULE: 'multiomics_intermediate.settings_prod'

src/biomarkers/models.py

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class Biomarker(models.Model):
6060
cnas: QuerySet['CNAIdentifier']
6161
mirnas: QuerySet['MiRNAIdentifier']
6262
mrnas: QuerySet['MRNAIdentifier']
63+
6364
name: str = models.CharField(max_length=300)
6465
description: Optional[str] = models.TextField(null=True, blank=True)
6566
tag: Optional[Tag] = models.ForeignKey(Tag, on_delete=models.SET_NULL, default=None, blank=True, null=True)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Generated by Django 4.2.15 on 2024-10-03 21:02
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('feature_selection', '0054_alter_trainedmodel_state'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='fsexperiment',
15+
name='app_name',
16+
field=models.CharField(blank=True, help_text='Spark app name to get the results', max_length=100, null=True),
17+
),
18+
migrations.AlterField(
19+
model_name='fsexperiment',
20+
name='attempt',
21+
field=models.PositiveSmallIntegerField(default=0, help_text='Number of attempts to prevent a buggy experiment running forever'),
22+
),
23+
migrations.AlterField(
24+
model_name='fsexperiment',
25+
name='emr_job_id',
26+
field=models.CharField(blank=True, help_text='Job ID in the Spark cluster', max_length=100, null=True),
27+
),
28+
migrations.AlterField(
29+
model_name='fsexperiment',
30+
name='execution_time',
31+
field=models.PositiveIntegerField(default=0, help_text='Execution time in seconds'),
32+
),
33+
migrations.AlterField(
34+
model_name='fsexperiment',
35+
name='task_id',
36+
field=models.CharField(blank=True, help_text='Celery Task ID', max_length=100, null=True),
37+
),
38+
]

src/feature_selection/models.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class ClusteringScoringMethod(models.IntegerChoices):
4848

4949

5050
class SVMKernel(models.IntegerChoices):
51-
"""SVM's kernel """
51+
"""SVM kernel """
5252
LINEAR = 1
5353
POLYNOMIAL = 2
5454
RBF = 3
@@ -102,10 +102,11 @@ class FSExperiment(models.Model):
102102
rf_times_records: QuerySet['RFTimesRecord']
103103
svm_times_records: QuerySet['SVMTimesRecord']
104104
best_model: 'TrainedModel'
105+
105106
origin_biomarker = models.ForeignKey('biomarkers.Biomarker', on_delete=models.CASCADE,
106107
related_name='fs_experiments_as_origin')
107108
algorithm = models.IntegerField(choices=FeatureSelectionAlgorithm.choices)
108-
execution_time = models.PositiveIntegerField(default=0) # Execution time in seconds
109+
execution_time = models.PositiveIntegerField(default=0, help_text='Execution time in seconds')
109110
created_biomarker = models.OneToOneField('biomarkers.Biomarker', on_delete=models.SET_NULL, null=True, blank=True,
110111
related_name='fs_experiment')
111112
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
@@ -122,14 +123,14 @@ class FSExperiment(models.Model):
122123
methylation_source = models.ForeignKey('api_service.ExperimentSource', on_delete=models.CASCADE, null=True,
123124
blank=True, related_name='fs_experiments_as_methylation')
124125

125-
task_id = models.CharField(max_length=100, blank=True, null=True) # Celery Task ID
126+
task_id = models.CharField(max_length=100, blank=True, null=True, help_text='Celery Task ID')
126127

127-
# Number of attempts to prevent a buggy experiment running forever
128-
attempt = models.PositiveSmallIntegerField(default=0)
128+
attempt = models.PositiveSmallIntegerField(default=0, help_text='Number of attempts to prevent a buggy experiment '
129+
'running forever')
129130

130131
# AWS-EMR fields
131-
app_name = models.CharField(max_length=100, null=True, blank=True) # Spark app name to get the results
132-
emr_job_id = models.CharField(max_length=100, null=True, blank=True) # Job ID in the Spark cluster
132+
app_name = models.CharField(max_length=100, null=True, blank=True, help_text='Spark app name to get the results')
133+
emr_job_id = models.CharField(max_length=100, null=True, blank=True, help_text='Job ID in the Spark cluster')
133134

134135
def get_all_sources(self):
135136
"""Returns a list with all the sources."""

src/multiomics_intermediate/settings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
# +++++ Custom settings +++++
187187

188188
# Current Multiomix version
189-
VERSION: str = '5.3.0'
189+
VERSION: str = '5.4.0'
190190

191191
# Default primary key field type
192192
# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field

src/statistical_properties/survival_functions.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def generate_survival_groups_by_median_expression(
104104
def compute_c_index_and_log_likelihood(df: pd.DataFrame) -> Tuple[float, float]:
105105
"""
106106
Computes the C-Index and the partial Log-Likelihood from a DataFrame.
107-
@param df: Pandas DataFrame. IMPORTANT: has to have 3 colunms: 'E' (event), 'T' (time), and 'group' (group in which
107+
@param df: Pandas DataFrame. IMPORTANT: has to have 3 columns: 'E' (event), 'T' (time), and 'group' (group in which
108108
the sample is).
109109
@return: A tuple with the C-Index and the partial Log-Likelihood.
110110
"""

tools/k8s/multiomix-correlation-analysis-worker.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ spec:
3636
- name: logs-data
3737
emptyDir: {}
3838
containers:
39-
- image: omicsdatascience/multiomix:5.1.2-celery
39+
- image: omicsdatascience/multiomix:5.4.0-celery
4040
name: correlation-analysis-worker
4141
env:
4242
- name: QUEUE_NAME

tools/k8s/multiomix-fs-experiments-worker.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ spec:
3636
- name: logs-data
3737
emptyDir: {}
3838
containers:
39-
- image: omicsdatascience/multiomix:5.1.2-celery
39+
- image: omicsdatascience/multiomix:5.4.0-celery
4040
name: fs-experiments-worker
4141
env:
4242
- name: QUEUE_NAME

tools/k8s/multiomix-inference-worker.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ spec:
3636
- name: logs-data
3737
emptyDir: {}
3838
containers:
39-
- image: omicsdatascience/multiomix:5.1.2-celery
39+
- image: omicsdatascience/multiomix:5.4.0-celery
4040
name: inference-worker
4141
env:
4242
- name: QUEUE_NAME

tools/k8s/multiomix-stats-worker.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ spec:
3636
- name: logs-data
3737
emptyDir: {}
3838
containers:
39-
- image: omicsdatascience/multiomix:5.1.2-celery
39+
- image: omicsdatascience/multiomix:5.4.0-celery
4040
name: stats-worker
4141
env:
4242
- name: QUEUE_NAME

tools/k8s/multiomix-sync-datasets-worker.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ spec:
3636
- name: logs-data
3737
emptyDir: {}
3838
containers:
39-
- image: omicsdatascience/multiomix:5.1.2-celery
39+
- image: omicsdatascience/multiomix:5.4.0-celery
4040
name: sync-datasets-worker
4141
env:
4242
- name: QUEUE_NAME

tools/k8s/multiomix.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ spec:
126126
- key: "multiomics_intermediate.conf"
127127
path: "multiomics_intermediate.conf"
128128
containers:
129-
- image: omicsdatascience/multiomix:4.7.1
129+
- image: omicsdatascience/multiomix:5.4.0
130130
name: multiomix
131131
env:
132132
- name: POSTGRES_USERNAME

0 commit comments

Comments
 (0)