vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2019-02-28T20:52:32+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/2595Segmentation avec un seul k-mer avec Aho-Corasick2019-02-28T20:52:32+01:00Mikaël SalsonSegmentation avec un seul k-mer avec Aho-CorasickLa version de Vidjil avec Aho-Corasick échoue sur un test dans `chimera-fake.should-get` sur cette séquence (qui est un faux mélange de TRG/TRD) :
> TCTTCCAACTTGGAAGGGAGAACGAAGTCAGTCACCAGGCTGACTGGGTCATCTGCTGAAGCCCAGAAGGTTACTCAAGCCCAGTCAT...La version de Vidjil avec Aho-Corasick échoue sur un test dans `chimera-fake.should-get` sur cette séquence (qui est un faux mélange de TRG/TRD) :
> TCTTCCAACTTGGAAGGGAGAACGAAGTCAGTCACCAGGCTGACTGGGTCATCTGCTGAAGCCCAGAAGGTTACTCAAGCCCAGTCATCAGTATCCATGCCAGTGAGGAAAGCAGTCACC
Or Vidjil segmente cette séquence en IGK et la chaîne d'affectations ressemble à cela :
```
# 11 - VJ 1 79 108 120 seed IGK SEG_- 1.858802e-01 1.858801e-01/1.009101e-07 _ _-k ? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _+K _ _ _ _ _ _ _ _ _ _ _ _-K-K-K-K _ _ _ _ _ _-K-K _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _-K-K-K _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
```
Il n'y a qu'un seul `-k`, et la e-valeur est très haute, mais ça passe tout juste. Pourquoi ?
1. L'index load est faible sur les J (0,013%), contre 1,048% auparavant (il n'y avait pas de distinction entre l'index load des V et des J).
2. La séquence est relativement courte (120nt).
3. Il a peu de séquences dans le fichier.
Bref, que faire ? On est (à peu près) contents de notre calcul de e-valeur. Avoir un index load séparé pour les V et les J semble plus pertinent. Faut-il allonger la séquence pour tricher et refaire passer la e-valeur au dessus du seuil fatidique ?Mikaël SalsonMikaël Salsonhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2589Nouvelle vue pour remplacer getHTMLinfo(), information d'un clone responsif2020-12-04T14:18:26+01:00Mathieu GiraudNouvelle vue pour remplacer getHTMLinfo(), information d'un clone responsifVu à Douai : la boîte info d'un clone (`.info-container`) n'est pas responsive, en particulier si on enlève les bandeaux de gauche. Mettre directement cela comme une vue de ~"vmi-responsive" ?
Discussion : cela pourrait être même une v...Vu à Douai : la boîte info d'un clone (`.info-container`) n'est pas responsive, en particulier si on enlève les bandeaux de gauche. Mettre directement cela comme une vue de ~"vmi-responsive" ?
Discussion : cela pourrait être même une vue au sens Vidjil. À voir ce que cela pourrait être si plusieurs clones sont sélectionnés.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2585haml2023-03-01T16:42:41+01:00Mathieu Giraudhaml@RyanHerb a présenté à Douai haml : http://haml.info
Implémentation python ? https://github.com/mikeboers/PyHAML ?@RyanHerb a présenté à Douai haml : http://haml.info
Implémentation python ? https://github.com/mikeboers/PyHAML ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2579Supprimer un process ne supprime pas le scheduler_task associé2020-08-07T15:43:41+02:00Ryan HerbertSupprimer un process ne supprime pas le scheduler_task associéDepuis l'interface d'un sample_set, si on supprime un `run`, on s'attendrait à ce que je le scheduler ne lance pas la tâche associée. Or je constate qu'après avoir supprimé des tâches qui étaient en `QUEUED` ou en `ASSIGNED`, les entrées...Depuis l'interface d'un sample_set, si on supprime un `run`, on s'attendrait à ce que je le scheduler ne lance pas la tâche associée. Or je constate qu'après avoir supprimé des tâches qui étaient en `QUEUED` ou en `ASSIGNED`, les entrées dans la table `scheduler_task` ne sont pas supprimées.
Je dirais même que l'on pourrait s'attendre à ce que la tâche soit complètement killée si elle est déjà en cours d'exécution.
@flothonihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2575Doit on ajouter le créateur du groupe au groupe en question ?2017-12-19T08:47:20+01:00Ryan HerbertDoit on ajouter le créateur du groupe au groupe en question ?Lorsque l'on créé un groupe dans vidjil, l'utilisateur qui a créé le groupe est ajouté dans le groupe par défaut.
La plupart du temps ce n'est pas désiré, mais parfois c'est utile...Lorsque l'on créé un groupe dans vidjil, l'utilisateur qui a créé le groupe est ajouté dans le groupe par défaut.
La plupart du temps ce n'est pas désiré, mais parfois c'est utile...https://gitlab.inria.fr/vidjil/vidjil/-/issues/2567possibilité de revenir en arrière après normalisation2021-11-23T15:43:40+01:00Ghost Userpossibilité de revenir en arrière après normalisationIl pourrait etre utile de permettre un retour au valeur de base apres normalisation. avec peut etre un bouton annuler?Il pourrait etre utile de permettre un retour au valeur de base apres normalisation. avec peut etre un bouton annuler?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2566clareté de l'affichage de la normalisation2021-11-23T15:40:24+01:00Ghost Userclareté de l'affichage de la normalisationDans l'interface rien n'indique qu'une normalisation a eu lieu . Il pourrait etre interessant d'afficher le pourcentage normaliser tout en laissant affiché le pourcentage non normalisé.Dans l'interface rien n'indique qu'une normalisation a eu lieu . Il pourrait etre interessant d'afficher le pourcentage normaliser tout en laissant affiché le pourcentage non normalisé.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2536Faut-il maintenir un groupe vide2017-06-15T14:58:37+02:00Thonier FlorianFaut-il maintenir un groupe videVoilà le situation actuelle :
Un hôpital à 2 groupes, ingénieurs (avec l'ensemble des droits) et techniciens (sans le droits de sauvegarder les analyses)
Le premier comporte plusieurs membres, le second un seul.
On me demande de donne...Voilà le situation actuelle :
Un hôpital à 2 groupes, ingénieurs (avec l'ensemble des droits) et techniciens (sans le droits de sauvegarder les analyses)
Le premier comporte plusieurs membres, le second un seul.
On me demande de donner tous les droits à ce dernier membre. La question est donc de savoir si il vaut mieux que je déplace ce membre dans le groupe ingé qui ont tous les droits, et laisser un groupe vide derrière moi, ou bien de donner le droit manquant à ce second groupe, mais poser des soucis si un nouveau membre s'y rajoute.
Perso, je penche pour la première option. Vous êtes d'accord ?
@mikael-s @magiraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2495Retour à l'utilisateur à l'ouverture du compare sample/patients si de trop no...2021-11-23T16:42:53+01:00Thonier FlorianRetour à l'utilisateur à l'ouverture du compare sample/patients si de trop nombreux fichiersUne erreur liée à une incompréhension de ma part de la fonction m'a fait cliquer sur compare sample depuis la liste des patients. Or , vu le nombre de fichiers, j'ai ruiné le serveur, et comme je ne comprenais pas, j'ai cliqué une second...Une erreur liée à une incompréhension de ma part de la fonction m'a fait cliquer sur compare sample depuis la liste des patients. Or , vu le nombre de fichiers, j'ai ruiné le serveur, et comme je ne comprenais pas, j'ai cliqué une seconde fois ^^'
Il faudrait une alerte signalant que la charge sur de trop nombreux patients sera lourde pour le serveur, et demander confirmation.
Pourquoi pas en plus mettre la div "progress" si l'utilisateur valide son choix.
@RyanHerb @magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2492mutliple_scatterplot : id des clones dans le dom2021-11-23T16:44:58+01:00Mathieu Giraudmutliple_scatterplot : id des clones dans le domDiscussion avec @heto et @RyanHerb : un des soucis vu par les tests fonctionnels (voir en particulier `clone_in_scatterplot` dans les tests) est qu'on va avoir plusieurs objets avec le même id type `circle45`. Ce n'est pas bien, des effe...Discussion avec @heto et @RyanHerb : un des soucis vu par les tests fonctionnels (voir en particulier `clone_in_scatterplot` dans les tests) est qu'on va avoir plusieurs objets avec le même id type `circle45`. Ce n'est pas bien, des effets bizarres peuvent survenir.
* Créer des ids différents ? `0circle45` ? Demande d'avoir un identifiant par `sp`.
* Utiliser des classes au lieu des ids ? Mais souci quand on clique dessus, est-on capable de savoir où on est ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2479Mettre un verrou tant que des fichiers sont en cours de run/upload pour ne pa...2021-11-26T11:38:50+01:00Mikaël SalsonMettre un verrou tant que des fichiers sont en cours de run/upload pour ne pas lancer fuse ?Comme l'illustre #2472 : on lance beaucoup fuse.py, et inutilement.
@RyanHerb se demande si on ne pourrait pas poser un verrou pour ne pas lancer fuse tant que des fichiers sont encore en train d'être analysés (voire en cours d'upload)....Comme l'illustre #2472 : on lance beaucoup fuse.py, et inutilement.
@RyanHerb se demande si on ne pourrait pas poser un verrou pour ne pas lancer fuse tant que des fichiers sont encore en train d'être analysés (voire en cours d'upload). Cela permettrait de ne lancer qu'un seul fuse, une bonne fois pour toute plutôt que de lancer un fuse à la suite de chaque lancement (c'est aussi une réponse possible à #2011).
Inconvénient : on ne peut pas commencer à voir des résultats partiels.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2475Réduire le nombre de requêtes pour la requête Sample_Set2024-02-06T11:57:18+01:00Ryan HerbertRéduire le nombre de requêtes pour la requête Sample_SetDans la même veine que #2439 il serait bien de réduire la charge de la BDD, et d'essayer de rendre l'application plus rapide.
Voici ce qu'il se passe du point de vue de la BDD pour une requête de 4 patients (découpée en plusieurs blocks...Dans la même veine que #2439 il serait bien de réduire la charge de la BDD, et d'essayer de rendre l'application plus rapide.
Voici ce qu'il se passe du point de vue de la BDD pour une requête de 4 patients (découpée en plusieurs blocks à mesure que j'identifie les requêtes) :
``` SQL
SELECT 1
SET FOREIGN_KEY_CHECKS=1
SET sql_mode='NO_BACKSLASH_ESCAPES'
SELECT auth_membership.id, auth_membership.user_id, auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_group.id, auth_group.role, auth_group.description FROM auth_group WHERE (auth_group.id = 1)
SELECT auth_group.id, auth_group.role, auth_group.description FROM auth_group WHERE (auth_group.id = 2)
SELECT auth_group.id, auth_group.role, auth_group.description FROM auth_group WHERE (auth_group.id = 3)
commit
```
Ces requêtes sont de `self.has_permission()` dans `vidjil_accessible_query()`. Le but étant de vérifier si l'utilisateur a les accès "admin" pour cette table et cette action:
``` SQL
SELECT auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_permission.group_id FROM auth_permission WHERE (((auth_permission.name = 'read') AND (auth_permission.table_name = 'patient')) AND (auth_permission.record_id = 0))
```
Je suis admin, donc on renvoi tous les patients:
``` SQL
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id > 0) ORDER BY patient.id DESC LIMIT 51 OFFSET 0
```
Ici c'est un appel à `load_permissions()`, qui fait appel à `vidjil_accessible_query()` deux fois (pour charger tous les patients/runs/sets en mémoire et stocker la permission):
``` SQL
SELECT auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_permission.group_id FROM auth_permission WHERE (((auth_permission.name = 'read') AND (auth_permission.table_name = 'patient')) AND (auth_permission.record_id = 0))
SELECT patient.id FROM patient WHERE (patient.id > 0)
SELECT auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_permission.group_id FROM auth_permission WHERE (((auth_permission.name = 'admin') AND (auth_permission.table_name = 'patient')) AND (auth_permission.record_id = 0))
SELECT patient.id FROM patient WHERE (patient.id > 0)
```
Encore un appel à `load_permissions()` cette fois-ci pour les permissions anon. On n'est pas "admin" car les admins doivent voir les vrais noms de leurs patients :) :
``` SQL
SELECT auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_permission.group_id FROM auth_permission WHERE (((auth_permission.name = 'read') AND (auth_permission.table_name = 'patient')) AND (auth_permission.record_id = 0))
SELECT patient.id FROM patient WHERE (patient.id > 0)
SELECT auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_permission.group_id FROM auth_permission WHERE (((auth_permission.name = 'anon') AND (auth_permission.table_name = 'patient')) AND (auth_permission.record_id = 0))
SELECT auth_membership.group_id FROM auth_permission, auth_membership WHERE ((((auth_membership.user_id = 1) AND (auth_membership.group_id = auth_permission.group_id)) AND (auth_permission.record_id = 0)) AND (auth_permission.name = 'anon'))
SELECT patient.id FROM patient WHERE ((patient.id IN (SELECT auth_permission.record_id FROM auth_permission, auth_membership WHERE (((((auth_membership.user_id = 1) AND (auth_membership.group_id IN (1))) AND (auth_membership.group_id = auth_permission.group_id)) AND (auth_permission.name = 'access')) AND (auth_permission.table_name = 'patient')))) OR (patient.id IN (SELECT auth_permission.record_id FROM auth_permission, group_assoc, auth_membership WHERE ((((((auth_membership.user_id = 1) AND (auth_membership.group_id IN (1))) AND (auth_membership.group_id = group_assoc.second_group_id)) AND (group_assoc.first_group_id = auth_permission.group_id)) AND (auth_permission.name = 'access')) AND (auth_permission.table_name = 'patient')))))
```
Ici on a des vérifications d'existence effectuées dans les fonctions `can_view_info()`:
``` SQL
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 11) LIMIT 1 OFFSET 0
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 10) LIMIT 1 OFFSET 0
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 9) LIMIT 1 OFFSET 0
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 8) LIMIT 1 OFFSET 0
```
Ces requêtes sont relativement raisonnables. Récupèrent les noms des créateurs et les tailles des sample sets:
``` SQL
SELECT patient.id, auth_user.last_name FROM auth_user, patient WHERE ((patient.creator = auth_user.id) AND (patient.id IN (8,9,10,11)))
SELECT patient.id, sequence_file.size_file FROM sample_set_membership, patient, sequence_file WHERE (((sample_set_membership.sample_set_id = patient.sample_set_id) AND (sequence_file.id = sample_set_membership.sequence_file_id)) AND (patient.id IN (8,9,10,11)))
```
`load_config_information` contient deux `vidjil_accessible_query`:
``` SQL
SELECT auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_permission.group_id FROM auth_permission WHERE (((auth_permission.name = 'read') AND (auth_permission.table_name = 'config')) AND (auth_permission.record_id = 0))
SELECT auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_permission.group_id FROM auth_permission WHERE (((auth_permission.name = 'admin') AND (auth_permission.table_name = 'config')) AND (auth_permission.record_id = 0))
SELECT patient.id, config.name, config.id, fused_file.fused_file FROM patient, config, fused_file WHERE ((((patient.sample_set_id = fused_file.sample_set_id) AND (fused_file.config_id = config.id)) AND ((config.id >
0) OR (config.id > 0))) AND (patient.id IN (8,9,10,11)))
```
`load_permitted_groups()`:
``` SQL
SELECT patient.id, auth_group.role FROM auth_group, auth_permission, patient WHERE ((((((patient.id = auth_permission.record_id) OR (auth_permission.record_id = 0)) AND (auth_permission.table_name = 'patient')) AND (auth_permission.name = 'access')) AND (auth_group.id = auth_permission.group_id)) AND (patient.id IN (8,9,10,11)))
```
`load_anon_permissions()`... On n'avait pas fait ça plus haut ??? :
``` SQL
SELECT patient.id FROM auth_group, auth_permission, patient, auth_membership WHERE (((((((auth_permission.name = 'anon') AND (auth_permission.table_name = 'patient')) AND (patient.id = auth_permission.record_id)) AND (auth_group.id = auth_permission.group_id)) AND (auth_membership.user_id = 1)) AND (auth_membership.group_id = auth_group.id)) AND (patient.id IN (8,9,10,11)))
```
On charge tous les utilisateurs ? Pas trouvé dans le code... :
``` SQL
SELECT auth_user.id, auth_user.first_name, auth_user.last_name, auth_user.email, auth_user.password, auth_user.registration_key, auth_user.reset_password_key, auth_user.registration_id FROM auth_user WHERE (auth_user.id > 1)
```
Encore des vérifications d'existence... Pas trouvé l'endroit dans le code:
``` SQL
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 11) LIMIT 1 OFFSET 0
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 10) LIMIT 1 OFFSET 0
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 9) LIMIT 1 OFFSET 0
SELECT patient.id, patient.first_name, patient.last_name, patient.birth, patient.info, patient.id_label, patient.creator, patient.sample_set_id FROM patient WHERE (patient.id = 8) LIMIT 1 OFFSET 0
```
Vérifie si l'utilisateur a le droit de créer des patients/runs/sets :
``` SQL
SELECT auth_membership.group_id FROM auth_permission, auth_membership WHERE ((((auth_membership.user_id = 1) AND (auth_membership.group_id = auth_permission.group_id)) AND (auth_permission.record_id = 0)) AND (auth_permission.name = 'create'))
commit
```
A identifier:
``` SQL
SELECT 1
SET FOREIGN_KEY_CHECKS=1
SET sql_mode='NO_BACKSLASH_ESCAPES'
SELECT auth_membership.id, auth_membership.user_id, auth_membership.group_id FROM auth_membership WHERE (auth_membership.user_id = 1)
SELECT auth_group.id, auth_group.role, auth_group.description FROM auth_group WHERE (auth_group.id = 1)
SELECT auth_group.id, auth_group.role, auth_group.description FROM auth_group WHERE (auth_group.id = 2)
SELECT auth_group.id, auth_group.role, auth_group.description FROM auth_group WHERE (auth_group.id = 3)
commit
```Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2454Comparer des frameworks responsive2019-04-18T13:04:32+02:00Mathieu GiraudComparer des frameworks responsivecc @RyanHerb
Un côté Bootstrap/Foundation et un côte Skeleton/Xxxx/Xxxx...cc @RyanHerb
Un côté Bootstrap/Foundation et un côte Skeleton/Xxxx/Xxxx...https://gitlab.inria.fr/vidjil/vidjil/-/issues/2449construction des objets germlines2017-08-30T09:02:51+02:00Ghost Userconstruction des objets germlinescomment les objets germlines doivent ils etre construit? quel germline doivent etre incluses dans chaque objet?comment les objets germlines doivent ils etre construit? quel germline doivent etre incluses dans chaque objet?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2446Extraire une vue Info de builder.js2017-06-07T14:25:30+02:00Mathieu GiraudExtraire une vue Info de builder.jsQue fait vraiment `builder.js` ? `Builder` est une vue, qui crée entre autres l’élément `#info`, mais pas que :
* il y a au moins la gestion `#visu-separator`/`#vertical-separator` (qui serait différente dans un ~"client-responsive")...Que fait vraiment `builder.js` ? `Builder` est une vue, qui crée entre autres l’élément `#info`, mais pas que :
* il y a au moins la gestion `#visu-separator`/`#vertical-separator` (qui serait différente dans un ~"client-responsive").
* et il y a aussi des choses pour le menu `#top-container`
Afin d’y voir plus clair, une possibilité serait déjà d’extraire une nouvelle vue appelée `Info` qui ne s'occuperait que de `#info`.
@heto, comme tu as mentionné il y a pas longtemps les `separator` et les vues, est-ce que c’est quelque chose qui te tenterait ? Avant de coder, ce serait bien d'en rediscuter déjà ici.
@RyanHerb, comme tu as pas mal touché de chose dans ce fichier, tu as peut-être d'autres idées ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2444Customisation du client pour certains utilisateurs ou groupes2021-04-17T06:24:27+02:00Mathieu GiraudCustomisation du client pour certains utilisateurs ou groupesPour #1684 ou d'autres, on pourrait être tenté de faire des axes d'analyse pour certains utilisateurs, non visibles des autres. Plus généralement, on aimerait aussi parfois donner "certaines" fonctionnalités à certains utilisateurs, qu'e...Pour #1684 ou d'autres, on pourrait être tenté de faire des axes d'analyse pour certains utilisateurs, non visibles des autres. Plus généralement, on aimerait aussi parfois donner "certaines" fonctionnalités à certains utilisateurs, qu'elles soient en développement ou pertinentes pour quelques utilisateurs (#2043). Le `devel-mode` et le `beta-mode` peuvent être une solution, mais ce n'est pas très flexible...
On pourrait donner accès à un autre client, statique, quelque part, avec du `.js` modifié. Ou souhaite-t-on pouvoir donner un bout de `.js` en fonction de l'utilisateur ? Le ~server serait agnostique par rapport à cela, on aurait juste un `lille.js` quelque part ? ou bien en champ un base de données ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2442Afficher un échantillon sans l'impact des autres échantillons2022-05-17T11:59:25+02:00Mathieu GiraudAfficher un échantillon sans l'impact des autres échantillonsUn échange avec Aurélie ~"LIL-Lille" a fait ressortir que le même échantillon (par exemple de diagnostic) est affiché différemment lorsqu'il est accompagné d'autres échantillons (par exemple de suivi).
C'est un point attendu vu le fonct...Un échange avec Aurélie ~"LIL-Lille" a fait ressortir que le même échantillon (par exemple de diagnostic) est affiché différemment lorsqu'il est accompagné d'autres échantillons (par exemple de suivi).
C'est un point attendu vu le fonctionnement de ~"server-fuse" , mais cela peut être trompeur pour l'usager (en particulier sur la qualification "polyclonal" d'un échantillon). @RyanHerb, pourrais-tu mettre la capture transmise par Aurélie (je ne la retrouve pas) ?
Laisse-t-on cela ainsi ? Aurait-on un moyen simple de voir un échantillon sans l'influence des autres ? Recalculer un top local, avoir un autre fonctionnement du slider ? Marquer d'une certaine manière certains clones dans le fuse ?Web 2021.05marc duezmarc duezhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2441Changer un axe du scatterplot en cliquant dessus2017-11-29T15:11:35+01:00Mathieu GiraudChanger un axe du scatterplot en cliquant dessusSans aller dans le menu plot, on pourrait souhaiter changer les axes X/Y juste en cliquant sur l'axe. À discuter.Sans aller dans le menu plot, on pourrait souhaiter changer les axes X/Y juste en cliquant sur l'axe. À discuter.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2439Diminuer les heartbeats sur la BDD2024-02-06T12:00:08+01:00Mikaël SalsonDiminuer les heartbeats sur la BDDDans #1985 nous avions vu que de nombreuses requêtes étaient exécutées par Web2py pour vérifier si de nouvelles tâches étaient arrivées dans la file d'attente. On avait diminué l'intervalle de vérification pour alléger la pression sur la...Dans #1985 nous avions vu que de nombreuses requêtes étaient exécutées par Web2py pour vérifier si de nouvelles tâches étaient arrivées dans la file d'attente. On avait diminué l'intervalle de vérification pour alléger la pression sur la base de données.
Le [manuel de Web2py](http://web2py.com/books/default/chapter/29/04/the-core#queue_task-) dit ceci :
> Since version 2.4.1 if you pass an additional parameter immediate=True it will force the main worker to reassign tasks. Until 2.4.1, the worker checks for new tasks every 5 cycles (so, 5*heartbeats seconds). If you had an app that needed to check frequently for new tasks, to get a snappy behaviour you were forced to lower the heartbeat parameter, putting the db under pressure for no reason. With immediate=True you can force the check for new tasks: it will happen at most as heartbeat seconds are passed
N'aurait-on pas intérêt à mettre `immediate=True` pour toutes nos tâches ? Il n'y a pas un nombre tel de jobs que cela justifie d'interroger la base de données toutes les 2 ou 3 secondes. Ça aura en plus l'intérêt d'avoir des tâches plus rapidement assignées pour nos utilisateurs ?
cc @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2438Eviter les initialisations multiples2017-11-14T17:42:00+01:00Ghost UserEviter les initialisations multiplesJe remarque, sans savoir précisément où, que certaines vues sont initialisées plusieurs fois. Par exemple, il y a 3 exécutions de `Builder.init()` à l'ouverture de la page.
C'est sans doute lié à des mécaniques d'`udpate`.
Régler...Je remarque, sans savoir précisément où, que certaines vues sont initialisées plusieurs fois. Par exemple, il y a 3 exécutions de `Builder.init()` à l'ouverture de la page.
C'est sans doute lié à des mécaniques d'`udpate`.
Régler ce souci permettrait certainement de gagner en performance, ou du moins de limiter les appels 'superflus'.Ryan HerbertRyan Herbert