vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2024-02-23T10:32:17+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/4702Productivité et pseudo-gènes2024-02-23T10:32:17+01:00Mathieu GiraudProductivité et pseudo-gènes
ERIC #2443 mentionne explicitement **functional** IGHV gene. Mais il y a un certain nombre de pseudo-gènes dans nos germlines (et il y en aura encore plus après !885). Est-ce que ces séquences sont gappées ? A-t-on eu déjà des cas ou d...
ERIC #2443 mentionne explicitement **functional** IGHV gene. Mais il y a un certain nombre de pseudo-gènes dans nos germlines (et il y en aura encore plus après !885). Est-ce que ces séquences sont gappées ? A-t-on eu déjà des cas ou des discordances avec des pseudo-gènes ?
On devrait probablement vérifier cela, ce qui impliquer de parser un peu plus les headers... et/ou, dans `split-germlines.py`, extraire deux fichiers différents, les gènes et les pseudos ?
Y a-t-il un lien avec #3654 ?Algo 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5260user group don't show name anymore since release 2024.012024-02-23T10:32:02+01:00THONIER Florianuser group don't show name anymore since release 2024.01We don't get anymore name of user in information of a personal group.
Is it a feature or a bug ?We don't get anymore name of user in information of a personal group.
Is it a feature or a bug ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/2171Permettre des OR dans les requêtes de recherche de sample sets ou samples2024-02-21T14:18:07+01:00Mathieu GiraudPermettre des OR dans les requêtes de recherche de sample sets ou samplesVoir dicussion soulevée par @flothoni dans #2170.
On souhaiterait éventuellement accepter des `OU` logiques dans requêtes (`advanced_filter` dans `modules/vijdil_utils.py`). Et d'autres choses (parenthèses ?) ? Discuter déjà de la syntax...Voir dicussion soulevée par @flothoni dans #2170.
On souhaiterait éventuellement accepter des `OU` logiques dans requêtes (`advanced_filter` dans `modules/vijdil_utils.py`). Et d'autres choses (parenthèses ?) ? Discuter déjà de la syntaxe.
cc @mikael-s @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5259search field; include creator user ?2024-02-21T14:18:06+01:00THONIER Floriansearch field; include creator user ?A specific case for ~"LIL-Lille" : a patient have the same last name that a user of the team.
The search return all patients created by this users and inside the list the expected patient. Should we ?
A search with both last and firs...A specific case for ~"LIL-Lille" : a patient have the same last name that a user of the team.
The search return all patients created by this users and inside the list the expected patient. Should we ?
A search with both last and first name don't work.
One day, we will probably improve search we capacity to include field for search.
Until this time, what should we do ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/4533compare & qc-stats depuis la page principale : un clic lorsque beaucoup de pa...2024-02-21T14:12:33+01:00Mathieu Giraudcompare & qc-stats depuis la page principale : un clic lorsque beaucoup de patients sont accessibles ne devrait pas bloquer le serveurAppuyer sur le bouton "stats" avec beaucoup de sets peut mettre à plat un serveur. Les admins ont beaucoup de sets, mais certains usagers aussi.
Si #3530 n'est vraiment pas un souci, rajouter tout de même une limite dure (50 ? 100 ? 500...Appuyer sur le bouton "stats" avec beaucoup de sets peut mettre à plat un serveur. Les admins ont beaucoup de sets, mais certains usagers aussi.
Si #3530 n'est vraiment pas un souci, rajouter tout de même une limite dure (50 ? 100 ? 500 dernier sets ?) pour qu'un simple clic ne bloque pas toutWeb 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/3171Statistiques multi-samples et contrôle de qualité run/sample, plan de bataille2024-02-21T14:12:12+01:00Mathieu GiraudStatistiques multi-samples et contrôle de qualité run/sample, plan de batailleDiscuté avec @flothoni et @mikael-s suite à ~"ec-ngs" à Lille. Le point le plus revenu dans les échanges, on s'y met en mai-juin de notre côté.
**Prérequis, pipeline de base**
- contrôleur préparant des métadonnées + ensemble de `.vid...Discuté avec @flothoni et @mikael-s suite à ~"ec-ngs" à Lille. Le point le plus revenu dans les échanges, on s'y met en mai-juin de notre côté.
**Prérequis, pipeline de base**
- contrôleur préparant des métadonnées + ensemble de `.vidjil` #3041
- qui récupère des infos des `.vidjil` #3172 (donc #2240)
- puis vue générique #2235 (app-stats: autre chose, plutôt explorer distributions V/J)
Premier but: commencer déjà par infos présentes dans `.vidjil`, typiquement *nombre de reads segmentées* et *clone principal avec son abondance*.
**Puis**
- (Jouable) Plus d'infos dans le `.vidjil`, mieux structurées, déjà depuis vidjil-algo
- les `UNSEG` triés #3049
- warnings par clone / sample #3086 #3060. Documenter, en faire de nouveaux
- (Jouable) vue spécifique #2875, spécialise #2235 pour QC, contrôles
- ~"!-hard" plus fort que #2875, profil par type de manipulation (sequenceur, données, ..) ou utilisateur #3168
- Présence des primers #3152 #1253
- ~"!-hard" (modification db) Pré-process #3154 (déjà PEAR #3054)Web 2024.04CHESNIN ClementCHESNIN Clementhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5073Migration py4web2024-02-20T15:37:21+01:00Thonier FlorianMigration py4webListe des points à traiter pour py4web, !1121
## bloquant
* [x] nom des samples (+ bloque l'ouverture des résults)
* [x] création user (quelques routes)
* [x] init base de données =\> bloque les tests cypress
* [x] affichage du status ...Liste des points à traiter pour py4web, !1121
## bloquant
* [x] nom des samples (+ bloque l'ouverture des résults)
* [x] création user (quelques routes)
* [x] init base de données =\> bloque les tests cypress
* [x] affichage du status d'une analyse (lien avec la bdd lors de l'avancement) #5076
* [x] rebaser la branche sur `dev`
* [ ] #5180; script migration web2py vers py4web @fthonier
* [x] #5185; Inconstance de la DB (certains appels retournent None alors que présents ou nouvellement créé) @clement.chesnin et @fthonier
* [x] #5190; Pipeline pour les tests unitaires @clement.chesnin
* [x] #5189; check that all download function work
* [x] #5194; download gosu
* [x] #5202; Check pre-process with py4web
* [x] #5204; compare samples fail
* [x] #5210; Fix CGI for py4web
* [x] #5213; loading analysis is not working
* [x] #1397; link to open results
## prioritaire
* [x] custom fuse (contrôleur ou serveur python pour les faire à la volée) ==\> en cours, service d'avant
* [x] convertir test-server_base en py4web (construction/lancement docker sur py4web) ==\> vidjil!1238 @flothoni
* [x] lignes dupliquées dans les sets (pour l'instant pas de limite sample/set; lié au status dans la db)
* [x] liste result sur la page patient, run set (pour l'instant id config, mais pas le lien vers les résultats) ==\> jouable pour Marc
* [x] download results file (ok pour les fused du client, là on parle de dl)
* [x] mettre en place l'archi pour les tests API (si modification) ==\> @duez quelques modifs en cours, on devra continuer #5077
* [x] #5157 et !1342; Verifier API pour les json et le login (les routes restent les mêmes donc pas de souci en théorie, verifier la sortie json) @fthonier
* [x] #5178 parse des erreurs py4web pour les afficher proprement (nb modal qui change la disposition de la page) @fthonier
* [x] #5179 tests unitaires qui n'ont pas de routes (changement de méthode nécessaire) @clement.chesnin
* [ ] doc interne
* [ ] Ensemble des scripts adhoc de web2py compatible py4web ?
* [x] #5191; (client) return that an server error occured when it is
## nettoyage
* [x] #5184; Virer web2py
* [x] #5183; Mettre à jour toute la documentation qui fait référence au serveur web2py
* [x] #5182; Retirer les fichiers de demo de py4web; bulma, vue, ...
## secondaire
* [x] #5078; impersonate (pour l'instant bypass; avancée dans son intégration dans py4web vanilla) @clement.chesnin
* [ ] #5181; fonctionnement du script `create_clone_db.py`
* [x] #5169; Redirection 303 en cas de création d'users @clement.chesnin
* [ ] #5186; Serveur de review @fthonier
* [x] #5187; Se passer de uWSGI ?
* [ ] #2019; état des process + page admin en général
* [x] taille du fichier toujours à 0Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5258Cacher/griser le bouton "run" quand on vient de cliquer / RUNNING2024-02-20T10:24:32+01:00Mathieu GiraudCacher/griser le bouton "run" quand on vient de cliquer / RUNNING
Discussion suite à #5244
Discussion suite à #5244CHESNIN ClementCHESNIN Clementhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3397Coûts environnementaux et économiques de CI (et dev)2024-02-16T10:00:05+01:00Mathieu GiraudCoûts environnementaux et économiques de CI (et dev)Depuis #2723 :
> est-il raisonnable (coûts environnementaux, économiques, dépendance sur un serveur externe, etc.) de télécharger p.ex. 1Go de données à chaque pipeline ?
Et #2881 arrive...
Plus généralement, quelle sont ces coûts sur...Depuis #2723 :
> est-il raisonnable (coûts environnementaux, économiques, dépendance sur un serveur externe, etc.) de télécharger p.ex. 1Go de données à chaque pipeline ?
Et #2881 arrive...
Plus généralement, quelle sont ces coûts sur l'ensemble de notre process de CI, qui doit faire surtout beaucoup de CPU ? Est-ce que ces coûts sont négligeables ou non devant les gains de productivité / robustesse avec un bon pipeline de CI ?Dev-cihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5056Boldrini branch with MRD computation and visualization2024-02-15T15:16:29+01:00Joao MeidanisBoldrini branch with MRD computation and visualizationI created this issue to be able to derive a merge request and a branch to add all the code and auxiliary files we use here at Boldrini for computing and visualizing MRD values based on spike-ins.I created this issue to be able to derive a merge request and a branch to add all the code and auxiliary files we use here at Boldrini for computing and visualizing MRD values based on spike-ins.Joao MeidanisJoao Meidanis2024-02-23https://gitlab.inria.fr/vidjil/vidjil/-/issues/5245Utiliser SonarQube/un linter pour la qualité python2024-02-15T09:57:21+01:00CHESNIN ClementUtiliser SonarQube/un linter pour la qualité pythonPour le moment, on ne fait pas d'analyse statique de code sur la partie python (c'est par contre le cas pour js).
On pourrait regarder du côté de SonarQube qui est déployé chez Inria (--> cf par exemple https://sonarqube.inria.fr/sonar...Pour le moment, on ne fait pas d'analyse statique de code sur la partie python (c'est par contre le cas pour js).
On pourrait regarder du côté de SonarQube qui est déployé chez Inria (--> cf par exemple https://sonarqube.inria.fr/sonarqube/profiles/show?name=Inria&language=py) ou bien [Flake8](https://flake8.pycqa.org/en/latest/) ou [ruff](https://astral.sh/ruff) par exemple.
Attention, comme on part d'une base de code existante, il faut qu'on puisse être assez permissif sur le code existant et ne pas être noyé·es sous les infos. Un objectif pour être de pouvoir avec les metrics, et avoir des warnings sur le nouveau code pour utiliser les bonnes pratiques.
Peut-être aussi pourra-t-on regarder du côté de https://ozgurozkok.com/pyupgrade-a-modern-syntax-upgrader-for-python/ ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/5239Slow request to IMGT2024-02-14T15:20:43+01:00THONIER FlorianSlow request to IMGTSince some times, we got slow answer from imgt in our CI pipeline (probably the same in current usage).
It take from 4sec to 30sec.
We need to increase timeout in our cypress jobs that are usually of 4sec by default.Since some times, we got slow answer from imgt in our CI pipeline (probably the same in current usage).
It take from 4sec to 30sec.
We need to increase timeout in our cypress jobs that are usually of 4sec by default.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5254Deadlock occurred on app2024-02-14T15:19:07+01:00CHESNIN ClementDeadlock occurred on app## Description
Seen in https://vdb.vidjil.org/_dashboard/ticket/2457259c-1bd4-4920-9294-1ce0c220b3b8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = fu...## Description
Seen in https://vdb.vidjil.org/_dashboard/ticket/2457259c-1bd4-4920-9294-1ce0c220b3b8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = func(*func_args, **func_kwargs)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 929, in wrapper
raise context["exception"]
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 908, in wrapper
context["output"] = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/controllers/default.py", line 230, in run_request
res = schedule_run(request.query["sequence_file_id"], id_config, grep_reads)
File "/usr/share/vidjil/server/py4web/apps/vidjil/tasks.py", line 96, in schedule_run
db( ( db.results_file.config_id == id_config ) &
File "/usr/local/lib/python3.8/dist-packages/pydal/objects.py", line 2787, in update
ret = db._adapter.update(table, self.query, row.op_values())
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 586, in update
raise e
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 581, in update
self.execute(sql)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/__init__.py", line 70, in wrap
return f(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pydal/adapters/base.py", line 468, in execute
rv = self.cursor.execute(command, *args[1:], **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
File "/usr/local/lib/python3.8/dist-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 558, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 822, in _read_query_result
result.read()
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 1200, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.8/dist-packages/pymysql/connections.py", line 772, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.8/dist-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.8/dist-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1213, 'Deadlock found when trying to get lock; try restarting transaction')
```
## Reproducibility ?
Hard to know what happened...
## fix clue
May be try and see analyses that were started around this time 2024-02-12 12:30:17
## Priority
Low while it is not reproduced?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5253500 error on usage page2024-02-14T15:18:48+01:00CHESNIN Clement500 error on usage page## Description
Seen on https://vdb.vidjil.org/_dashboard/ticket/85cadd06-f619-4015-801f-009bcf7852c8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = fu...## Description
Seen on https://vdb.vidjil.org/_dashboard/ticket/85cadd06-f619-4015-801f-009bcf7852c8
```
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = func(*func_args, **func_kwargs)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 929, in wrapper
raise context["exception"]
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 925, in wrapper
call(fixture.on_success, context)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 891, in call
return f(context)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 578, in on_success
context["output"] = render(
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 549, in render
return engine.render(filename, context=context)
File "/usr/local/lib/python3.8/dist-packages/renoir/apis.py", line 215, in render
return self._render(source, file_path, context)
File "/usr/local/lib/python3.8/dist-packages/renoir/apis.py", line 205, in _render
make_traceback(exc_info)
File "/usr/local/lib/python3.8/dist-packages/renoir/debug.py", line 116, in make_traceback
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/dist-packages/renoir/_internal.py", line 15, in reraise
raise value.with_traceback(tb)
File "/usr/share/vidjil/server/py4web/apps/vidjil/templates/my_account/index.html", line 47, in template
<span class="button button_token [[=fuse[3] ]]_token">
IndexError: list index out of range
```
## Reproducibility ?
Don't know how this happened
## fix clue
?
## Priority
?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5250502 error when connecting to app.vidjil.org/_dashboard2024-02-14T15:18:14+01:00CHESNIN Clement502 error when connecting to app.vidjil.org/_dashboard## Description
Try to connect to https://app.vidjil.org/_dashboard --> 502 error code is returned
## Reproducibility ?
Systematic - Workaround: connect to https://vdb.vidjil.org/_dashboard instead
## fix clue
On nginx logs on gre, we ...## Description
Try to connect to https://app.vidjil.org/_dashboard --> 502 error code is returned
## Reproducibility ?
Systematic - Workaround: connect to https://vdb.vidjil.org/_dashboard instead
## fix clue
On nginx logs on gre, we get the following error in error.log:
```
2024/02/12 13:01:50 [error] 104#104: *17556 uwsgi could not be resolved (3: Host not found), client: 131.254.16.96, server: ba9f2ecbe902, request: "GET /_dashboard HTTP/1.1", host: "app.vidjil.org"
```
To investigate in connection with #5249
## Priority
Low as we get a workaround?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5252Wrong error message disaplyed on app when 500 error occurs2024-02-14T15:17:59+01:00CHESNIN ClementWrong error message disaplyed on app when 500 error occurs## Description
When a 500 error occurs, a message regarding SSL connection is displayed instead of a meaningful error:
![Screenshot_from_2024-02-12_15-17-21](/uploads/e52279560f89cc38e386823c59c902e4/Screenshot_from_2024-02-12_15-17-21.p...## Description
When a 500 error occurs, a message regarding SSL connection is displayed instead of a meaningful error:
![Screenshot_from_2024-02-12_15-17-21](/uploads/e52279560f89cc38e386823c59c902e4/Screenshot_from_2024-02-12_15-17-21.png)
Note that the behavior is OK on vdb:
![Screenshot_from_2024-02-12_15-19-13](/uploads/6c6fcd900b76bd2128959d03e1e8daf1/Screenshot_from_2024-02-12_15-19-13.png)
## Reproducibility ?
Systematic when a 500 error occurs
## fix clue
We get a CORS issue in console (see capture above)
See also if it is related to #5250 or #5249
## Priority
?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5251500 error when opening compare samples page in some workflows2024-02-14T15:17:24+01:00CHESNIN Clement500 error when opening compare samples page in some workflows## Description
Seen in https://vdb.vidjil.org/_dashboard/ticket/9d156cdf-f59d-4543-82ac-a5ae73e0fef9 : in some case (not clearly identified yet), we do not get on id in request query, leading to a server error.
The error occurred at leas...## Description
Seen in https://vdb.vidjil.org/_dashboard/ticket/9d156cdf-f59d-4543-82ac-a5ae73e0fef9 : in some case (not clearly identified yet), we do not get on id in request query, leading to a server error.
The error occurred at least 4 times
## Reproducibility ?
A way to reproduce :
1. Go to a sample list
2. Click on a tag in the info of one of the samples
--> error occurs
There may be other way to get this error (at least with the hidden compare samples button from the patient page - but it is hidden)
## fix clue
In the HF, will be mitigated as the presence of the `id` is explicitly checked, producing a clear error and not a server failure.
However, we have to decide whether we should be able to open this kind of link and what is the expected result.
## Priority
Low?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5256Better configuration files for docker2024-02-14T14:28:30+01:00THONIER FlorianBetter configuration files for dockerWe nned to have default configuration that we can override by other files if available.
This will be better to rebase repository for some server instances.We nned to have default configuration that we can override by other files if available.
This will be better to rebase repository for some server instances.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/3493Stats et icône de relance2024-02-14T10:49:13+01:00Mathieu GiraudStats et icône de relanceÀ terme, il faudra
- si les stats sont déjà présents, ne pas la mettre
- et, à l'appui, avoir un retour utilisateur, idéalement `RUNNING` (peut-être sous forme d'icône #3324)
En attendant, il apparait sage de la mettre en commentair...À terme, il faudra
- si les stats sont déjà présents, ne pas la mettre
- et, à l'appui, avoir un retour utilisateur, idéalement `RUNNING` (peut-être sous forme d'icône #3324)
En attendant, il apparait sage de la mettre en commentaire.
Vérifier aussi qu'elle fait un ~"server\-fuse" en sortie.Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2875Qualité de chaque échantillon dans un run, contrôles (vue spécifique)2024-02-14T10:49:13+01:00Mikaël SalsonQualité de chaque échantillon dans un run, contrôles (vue spécifique)Avoir l'information pour chaque échantillon uploadé (% de reads mergés, % de reads analysés…).
En lien avec #1362 et #2235.
Avoir l'information pour chaque échantillon uploadé (% de reads mergés, % de reads analysés…).
En lien avec #1362 et #2235.