vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2021-11-22T16:38:41+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/4812Pouvoir supprimer les amorces (avant envoi vers service tiers)2021-11-22T16:38:41+01:00Thonier FlorianPouvoir supprimer les amorces (avant envoi vers service tiers)Une utilisatrice me demande si on peut supprimer les séquences d'amorces avant envoie vers IMGT par exemple.
Avec le travail qui a été fait pour le genescan, on devrait pouvoir imaginer la détection automatique des amorces, puis leur s...Une utilisatrice me demande si on peut supprimer les séquences d'amorces avant envoie vers IMGT par exemple.
Avec le travail qui a été fait pour le genescan, on devrait pouvoir imaginer la détection automatique des amorces, puis leur soustraction au besoin. Cela devrait être testé, voir comment ça fonctionne par exemple avec les séquences consensus par exemple.
On peut déjà faire quelques tests avec même temps que #3152.
Il faudrait proposer ça comme une option ? Le faire de manière automatique ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/4523Refonte de l'aligneur2021-04-08T08:39:05+02:00Mathieu GiraudRefonte de l'aligneur
@duez, nous discutons en ce moment d'une refonte globale de l'aligneur. J'imagine que tu as déjà regardé pas mal d'issues ~"client-aligner", je me permets ici de remettre une liste qui pourra éclairer notre réflexion.
- Inspirations: r...
@duez, nous discutons en ce moment d'une refonte globale de l'aligneur. J'imagine que tu as déjà regardé pas mal d'issues ~"client-aligner", je me permets ici de remettre une liste qui pourra éclairer notre réflexion.
- Inspirations: revoir les solutions existantes de #2137
- Fonctionalités
- highlights/infos sur séquence #2135 #4409 #3814 #2599 #3537 #2356 #1412 #4522 ou à l'extérieur #2049, y compris quantitatives #2313
- modes d'affichage de séquence #2140 #3164 (à fusionner avec point précédent ?)
- séquences annexes (#1408 #2354 #2355 #3731) ou virtuelles #3960
- colonnes d'info/métadonnées #2392 #3543 #2388 #2066
- contrôles #2664 #2136 #4522
- export #2068
- ajax (align, imgt...)
- Bugs (qui pourraient tomber d'eux-mêmes sur version nouvelle) #4144 #4235 #4062 #1982 #1565 #3835
- Désagréments/efficacité (idem) #4117 #4085 #2676 (je ne retrouve pas les expériences de Ryan, où sont-elles ?)
- Formats de données et modèle #2174, et ce qui est déjà dans [vidjil-format.md](http://www.vidjil.org/doc/vidjil-format/#clones-list-with-read-count-tags-vdj-designation-and-other-sequence-features)https://gitlab.inria.fr/vidjil/vidjil/-/issues/1253Se souvenir des amorces/primers utilisées : comment ?2023-03-28T16:11:50+02:00Vidjil TeamSe souvenir des amorces/primers utilisées : comment ?On pourrait gérer plus proprement les amorces, avec
- des listes d'amorces (Biomed ? nouvelles EC ? d'autres ?)
- en fonction des amorces sélectionnées, les confisg (ou les stats) sont différents, ou d'autres features
- et certains...On pourrait gérer plus proprement les amorces, avec
- des listes d'amorces (Biomed ? nouvelles EC ? d'autres ?)
- en fonction des amorces sélectionnées, les confisg (ou les stats) sont différents, ou d'autres features
- et certains réglages permettraient de chosir directement un "kit" d'amorces
Ce n'est pas facile, que cela soit au niveau de la db, du browser derrière, et même de la conception / de ce qu'on veut. Vraiment pas la priorité pour l'instant.
***
mis dans la demande d'ADT, 2016Web 2023.10https://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/1400Heuristique i.0 : être capable d'inférer des germlines "inconnus"2017-07-05T09:15:56+02:00Vidjil TeamHeuristique i.0 : être capable d'inférer des germlines "inconnus"Suite à la discussion en janvier à Necker.
On voudrait segmenter des séquences... à la découverte de ce qu'on ne connaît pas. But : 100% des reads ont une explication, TOO_SHORT, ou sinon on dit ce qu'il y a dedans.
1) Cas relativement ...Suite à la discussion en janvier à Necker.
On voudrait segmenter des séquences... à la découverte de ce qu'on ne connaît pas. But : 100% des reads ont une explication, TOO_SHORT, ou sinon on dit ce qu'il y a dedans.
1) Cas relativement simple :
+V+V+V+V+V+V+V__________________________
À distinguer du cas TOO_FEW_J / trop court. Ici, c'est probablement autre chose, et on pourrait extraire une fenêtre centrée sur la fin du V
2) Et cas plus dur : idem... sans les +V. Bref, être capable de deviner le point de jonction... on se souvient de ce qui avait été fait avec David. On pourrait tout à fait rentrer cela dans le Vidjil actuel : avoir un CountSegmenter qui prédit un point de cassure... (Question subsidiaire : que donne CRAC si on lui donne un jeu de reads V(D)J ?)
***
Séquences de Prague, sur rbx, collegues/pragues/IGH-UNSEG.affects
Il y a des trop petits... mais il y a aussi d'autres choses...
***
Si on infère des choses bizarres, il faudra mettre des checks sur la representative et/ou de gros warnings partout (on est pas sûr que la fenêtre est pertinente, qu'autour c'est pareil...)
***
b9994d1 et 196acbc
Sur Pee (217, Rennes)
- -g -i : 48% (110s)
- après max12: 85%
- après sortLeftRight : 99.1% (42s, car pas de -i)
Attention, est-on sûr de ce qu'on trouve ? Les longueurs des représentatives ont l'air plutôt bonnes, mais il faudrait quelque chose pour en être plus sûr et vérifier qu'on ne clustérise pas des bouts de V.
***
http://rbx.vidjil.org/browser/?custom=1442&custom=1443&custom=1568&custom=1569&
À gauche, multi+inc, à droite, multi+xxx.
***
Changements légers ce matin, marche avec -i, pas segmenté si < 5 kmers (DETECT_THRESHOLD)
http://rbx.vidjil.org/browser/?custom=1442&custom=1585&custom=1443&custom=1586&
***
ok pour "xxx"... mais il faudrait pouvoir avoir des choses plus méchantes, en devinant des germlines (à la David ?)
***
12bcb3c: MAX1U, -4. Modèle de proba à discuter ensemble, pour l'instant c'est trop méchant.
***
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2413Se passer de Object.assign ?2017-11-16T08:57:17+01:00Mikaël SalsonSe passer de Object.assign ?Suite à #2391 on sait qu'on utilise `Object.assign` qui est dans ES 2015. [Chrome 45 est le premier Chrome](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) à le gérer, il date de sept. 2015.
...Suite à #2391 on sait qu'on utilise `Object.assign` qui est dans ES 2015. [Chrome 45 est le premier Chrome](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) à le gérer, il date de sept. 2015.
@magiraud : Voir discussion, ci-dessous, en fait pour FF c'est décembre 2014, et pour Chrome, quasiment tous nos utilisateurs ont un Chrome... à jour.
Je ne pense pas qu'il soit raisonnable d'attendre des utilisateurs qu'ils aient tous un navigateur de moins de 2 ans.
@RyanHerb peut-on simplement remplacer `Object.assign` par autre chose ? Y a-t-il d'autres choses qui sont ES 2015 ?Web 2018.01Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2040Ajout d'une fonction clipborad pour les graph pour exporter dans le rapport2021-11-26T11:42:42+01:00Thonier FlorianAjout d'une fonction clipborad pour les graph pour exporter dans le rapportL'équipe de Debré souhaite pourvoir sauvegarder dans un clipborad différents graphiques qu'ils génèrent, et que ceux-ci soit automatiquement ajoutés aux rapports, avec si possible j'imagine un champs texte qu'ils peuvent renseigner sur l...L'équipe de Debré souhaite pourvoir sauvegarder dans un clipborad différents graphiques qu'ils génèrent, et que ceux-ci soit automatiquement ajoutés aux rapports, avec si possible j'imagine un champs texte qu'ils peuvent renseigner sur le contenu et la signification du graphique.
A minima cela passerait par un boutton permettant d'enregistrer le graphique, et de l'exporter au format image non ?
Pour ma part, je pense qu'il faudrait en plus sauvegarder/exporter des informations permettant de regénérer la figure (type locus choisi, filtre, nb clones, ...) à inclure dans le rapport.
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1702focus sur des reads avec une certaine séquence (approchée)2021-04-16T22:41:49+02:00Vidjil Teamfocus sur des reads avec une certaine séquence (approchée)Jona/Marleen, survey: "Is it possible to track down related clones, with for instance similar DJ stem sequences (not only searching in top hundred but in complete list)?"
Pouvoir lancer Vidjil avec un filtre, pour zoomer sur un ensembl...Jona/Marleen, survey: "Is it possible to track down related clones, with for instance similar DJ stem sequences (not only searching in top hundred but in complete list)?"
Pouvoir lancer Vidjil avec un filtre, pour zoomer sur un ensemble de reads ? Ou un "get reads" amélioré ?
***
@nobodyhttps://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/1007Uploader un fichier FASTA avec des séquences d'intérêt, les nommer, identifie...2020-12-11T12:55:06+01:00Vidjil TeamUploader un fichier FASTA avec des séquences d'intérêt, les nommer, identifier les manquantesPlutôt que d'avoir un fichier .analysis contenant des fenêtres à mettre en valeur, on pourrait avoir des séquences complètes à mettre en valeur. À l'interface de chercher si elle trouve des fenêtres connues dans les séquences d'intérêt. ...Plutôt que d'avoir un fichier .analysis contenant des fenêtres à mettre en valeur, on pourrait avoir des séquences complètes à mettre en valeur. À l'interface de chercher si elle trouve des fenêtres connues dans les séquences d'intérêt. Ça éviterait de devoir rentrer les fenêtres dans les fichiers .analysis (qui peuvent changer avec des modifs dans l'algo) et ça permet de traîter directement les séquences d'intérêt que nous donnent nos amis bios.
***
scénario : on a un fichier fasta donnant des clones connus pour des patients, pour des standards, et on veut le visualiser rapidement
voir déjà vdj/progs/utils/generate-analysis.py fait par Mikaël (ece856d)
il faudrait faire cela directement dans l'interface, et voir les séquences manquantes par rapport au fichier fourni
***
être aussi capable d'afficher complètement cette séquence dans l'aligneur
***
ces séquences doivent passer au fuse.py, malgré le top
***
À discuter ensemble.
Solution 1:
- server : transformer le .fa en fichier de labels
- c++ : prend ce fichier (-l, existe déjà), marque les séquences ("top: 0" marcherait out-of-the box, mais crade, disons "label")
- fuse.py : traite spécialement les clones "label"
Solution 2:
- server: transformer ce fichier en .analysis (certains
- pas de modif c++
- fuse.py : prend un .analysis en plus, et tient compte de ce qu'il y a dedans
La solution 1 est la plus simple, mais la 2 permettrait de renforcer le rôle central d'un fichier ".analysis" (et on pourrait presque avoir un fuse.py qui fusionnerait deux .analysis).
Dans les deux cas :
- browser : afficher les séquences manquantes
***
Il y avait une tâche doublon "Conserver les séquences d'intérêt dans le fuse" :
- Soit avoir un tag dans le fichier clntab ou data disant qu'on veut conserver la séquence
- Soit avoir un fichier FASTA contenant les séquences d'intérêt à conserver
***
Les deux solutions demandent de toute façon de lancer le c++ sur le .fa pour récupérer les fenêtres. Autant le faire comme pour les autres fichiers.
Solution mixte proposée :
- server : pouvoir rentrer un fichier .fa spécial (soit faire une boite dédiée à cela, soit rajouter un champ aux fichiers .fasta pour qu'ils soient tous soit "reads" soit "known clones")
- c++ : lancé sur le .fa spécial, avec -y all -z all + un flag faisant qu'il prend le nom des fichiers fasta comme "name" dans le .vidjil (et sort "top: 0", ou, mieux, un nouveau flag ?)
- c++ : lancé sur les n fichiers de reads, comme d'habitude
- fuse : prend tous ces .vidjil (mais différencie les "known clones" des "reads")
- browser :devra aussi indiquer les manquantes
***
remarque de Mikaël : il peut y avoir des N dans séquences données.
Bref, la prédiction de fenêtre ne sera peut-être pas la bonne méthode, plutôt une recherche a posteriori comme dans vdj/progs/utils/generate-analysis.py
À rediscuter encore.
***
évoqué aussi hier avec Rennes... Alice a des séquences identifiées comme à enlever, on ne veut pas le faire manuellement...
Déjà si cela taggait automatiquement, ce serait bon.
N'est-ce pas proche de charger un fichier .analysis ?
***
Rando 2016: Marc voit comment faire cela simplement en transformant (côté client ? serveur ?) le fichier FASTA en fichier .analysis.
***
Limite : si la séquence d'intérêt n'est pas dans le top 100 on ne la verra pas (cf. mail de Jona 21/09/2016)
***
#1008, #1009
***
@Duezhttps://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/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/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/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/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/2601Retravailler un alignement global en détectant les parties mal alignées2019-02-13T08:57:29+01:00Mathieu GiraudRetravailler un alignement global en détectant les parties mal alignéesPour aller plus loin que #2599, on souhaite détecter, dans un alignement, des parties mal alignées et mes remplacer par un bloc non aligné (typiquement le bloc grisé de #2599).
Mais plus simplement, on pourrait lancer un `SemiGlobalTran...Pour aller plus loin que #2599, on souhaite détecter, dans un alignement, des parties mal alignées et mes remplacer par un bloc non aligné (typiquement le bloc grisé de #2599).
Mais plus simplement, on pourrait lancer un `SemiGlobalTrans` (ou ...) comme il le faut et compléter en collant le bloc.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2602Ajouter un clone et relance de fuse2021-11-26T13:45:56+01:00Mathieu GiraudAjouter un clone et relance de fuseEn discutant de #1921 avec Aurélie ~"LIL-Lille", une motivation pour ajouter un clone serait de voir s'il n'est pas plus loin que le top 100... on voit bien l'intérêt côté bio, vérifier si un séquence Sanger est bien absente ou pas.
Cel...En discutant de #1921 avec Aurélie ~"LIL-Lille", une motivation pour ajouter un clone serait de voir s'il n'est pas plus loin que le top 100... on voit bien l'intérêt côté bio, vérifier si un séquence Sanger est bien absente ou pas.
Cela impliquerait de relancer ~"server-fuse" avec des séquences forcées. Pas facile... et surtout #1921 pouvait sinon se voir comme une fonctionnalité sans connexion à la ~"server-database".
Faire déjà #1921 sans cela ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2608N'afficher que les patients avec des mise à jours non encore visualisées par ...2017-10-17T16:49:57+02:00Thonier FlorianN'afficher que les patients avec des mise à jours non encore visualisées par l'utilisateurOriginalement dans #2607 :
> - toutes les analyses non encore visualisées.
>
> - un mix des trois (au choix les XXX dernier jobs ou bien si ca dépasse les jobs depuis XXX jours, avec e nplus une colonne qui indique si il reste un jobs ...Originalement dans #2607 :
> - toutes les analyses non encore visualisées.
>
> - un mix des trois (au choix les XXX dernier jobs ou bien si ca dépasse les jobs depuis XXX jours, avec e nplus une colonne qui indique si il reste un jobs en attente sur ce patient.
Je me demande si il ne serait aps possible de filtrer la liste des patients avec uniquement les patients (ou runs/sets, comme d'hab) qui ont reçu une update non encore vue par l'utilisateur.
@RyanHerb @magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2651Aho : quel index load pour le unexpected ?2019-02-28T20:52:32+01:00Mikaël SalsonAho : quel index load pour le unexpected ?Avec Aho, l'index load pour le undetermined est calculé pour le locus auquel on s'intéresse. C'est-à-dire que si on détecte une recombinaison Vh/Jg on aura l'index load des Vh uniquement pour la partie V et l'index load des Jg uniquement...Avec Aho, l'index load pour le undetermined est calculé pour le locus auquel on s'intéresse. C'est-à-dire que si on détecte une recombinaison Vh/Jg on aura l'index load des Vh uniquement pour la partie V et l'index load des Jg uniquement pour la partie J.
Avant on avait l'index load de tous les V/J ensemble. Peut-être serait-il mieux d'avoir l'index load de tous les V insérés d'un côté et tout l'index load des J insérés de l'autre. Sauf que ce n'est pas si simple… et pas forcément souhaitable. À terme le but est bien d'avoir un seul index avec tous les locus : c'est-à-dire la situation actuelle du unexpected.Heuristique 2.0https://gitlab.inria.fr/vidjil/vidjil/-/issues/2655Comparer des e-valeurs venant de méthodes de segmentation différentes ?2023-10-26T15:49:32+02:00Mathieu GiraudComparer des e-valeurs venant de méthodes de segmentation différentes ?Titre initial : *Ne pas* comparer des e-valeurs venant de méthodes de segmentation différentes :-)
Nous avons plusieures tâches ou bugs passés, actuels et futurs liés à la comparaison de ~"bio-e-value" entre `SEG_METHOD_*` ou germlines ...Titre initial : *Ne pas* comparer des e-valeurs venant de méthodes de segmentation différentes :-)
Nous avons plusieures tâches ou bugs passés, actuels et futurs liés à la comparaison de ~"bio-e-value" entre `SEG_METHOD_*` ou germlines différentes :
- VD/VDJ : #2652, #1878
- xxx/*: #2596, hack 5bc753eea, #2651, hack 951facdc
- ONE/* : #2653
Discussion avec @mikael-s il y a quelques jours : une p-valeur d'une séquence est la probabilité qu'elle sorte, étant donné un modèle. Mais là... on a des modèles différents, et aucune connaissance sur ces modèles. Comparer n'est donc pas pertinent.
Supposons une read honnête, V^20 D^30 J^5. Quoi que l'on pénalise, ce sera ici toujours plus beau en VD qu'en VJ. Et #1878 n'arrange pas.
Nous devons peut-être changer complètement de point de vue. Si le filtre de e-valeur est de 10^-6, et que VD et VJ passent ce filtre (1), je veux exactement avoir la réponse la plus complète : "la séquence est VJ" (voire V(D)J après `Fine`, (2)). Le fait que VD puisse être à 10^-100 et VJ à 10^-10 ne change rien au fait que la réponse complète soit vraie "avec une erreur d'au plus 10^-6" (et même 10^-10 ici). (Et... vous savez quoi ? On peut dire avec e-valeur quasi nulle que "il y a des séquences humaines dedans", mais cela n'ajouterait pas grand chose.)
(1) VD et VJ *compatibles*, comme VhDh et VhJh. S'ils ne sont pas compatibles, c'est une autre histoire, voir ci-dessous.
(2) On pourrait aussi avoir une `Kmer`-heuristique détectant V-D-J, #2654, mais pareil, rien ne dit que les e-valeurs soient comparables avec les autres.
Une proposition serait donc **d'arrêter de choisir le locus avec la meilleure e-valeur**, et d'avoir plutôt une situation évoquée dans le passée (mais jamais implémentée, ou peut-être en dur au tout début quand on a fait `IGH+`) avec un ordre partiel `SEG_METHOD_ONE < xxx (MAX_12, MAX_1U) < IGH+ < IGH`. Entre deux germlines passant le filtre de e-valeur et comparables dans l'ordre partiel, on prend la germline la plus complète. Entre deux non-comparables, on prend la meilleure e-value (3). (À voir en pratique. On définit des `stage`, 0 pour les complets, 1 pour les `+`, 2 pour `xxx`, 3 pour `ONE`... ? on utilise un `after` pour encoder la relation ?)
(3) Et encore... Si j'ai TRB et IGH qui passent tous deux à 10^-6, cela veut bien dire que, avec très forte probabilité, la séquence est ambiguë. Les mettre plutôt en `AMBIGUOUS` ?
- Cette définition est encore un chouia ambiguë: si on a `IGH+` 10^-30, `IGH` 10^-10, `TRG` 10^-10, que choisir ?
- Et qu'est-ce que cela donne pour les `TRD+` avec Dd2- ... ?
Cela peut sembler un retour en arrière par rapport à #1499/ae1ac525 (printemps 2015)... mais non: nous sommes contents de nos calculs de e-valeurs (et bien plus sûrs qu'en 2015) pour dire si une recombinaison est signifiante ou pas. Each cell counts.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2658VD/VJ : Changer d'avis au moment du Fine2018-07-06T12:39:42+02:00Mathieu GiraudVD/VJ : Changer d'avis au moment du FineIndépendamment des discussions de #2655.
Lors de la deuxième passe, on réévalue chaque read représentative pour le meilleur locus, et on lance le Fine dessus. Mais on a le temps... on pourrait tout à fait lancer deux Fine et prendre le ...Indépendamment des discussions de #2655.
Lors de la deuxième passe, on réévalue chaque read représentative pour le meilleur locus, et on lance le Fine dessus. Mais on a le temps... on pourrait tout à fait lancer deux Fine et prendre le meilleur, l'estimation de ~"bio-e-value" étant supposée plus précise lors du Fine.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2716Plusieurs tubes / index / fichiers pour un seul sample2023-02-08T12:21:43+01:00Mathieu GiraudPlusieurs tubes / index / fichiers pour un seul sampleMichael ~"PRA-Prague", comme ~"KIE-Kiel", uploade plusieurs fichiers pour un seul sample venant de chaque tube.
Connait-on d'autres utilisateurs qui font de même ?
C'est une manière vraiment détournée de se servir du client. Cela va enc...Michael ~"PRA-Prague", comme ~"KIE-Kiel", uploade plusieurs fichiers pour un seul sample venant de chaque tube.
Connait-on d'autres utilisateurs qui font de même ?
C'est une manière vraiment détournée de se servir du client. Cela va encore pour un échantillon de diagnostic (et encore), mais, dès qu'on a deux samples, et bien on ne voit plus rien du tout.
- Tagger ces "samples" d'une manière particulière ? Équivaudrait à changer la db pour avoir un truc plus fin que samples. Argh, trop complexe.
- Avoir un pre-process pour combiner `n` samples ?
- Le plus simple serait un `cat`, mais on perd l'info originale. Mais c'est peut-être pas grave ?
- Un pre-process qui ferait un `cat` en ajoutant l'info, et ensuite l'algo tiendrait compte de cela ?
- Et c'est encore plus complexe quand tout peut être R1/R2
(Dans l'autre sens, #1684)
cc @flothonihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2723Avoir des tests fonctionnels sur des jeux de démo complet2024-01-17T14:05:34+01:00Mathieu GiraudAvoir des tests fonctionnels sur des jeux de démo completNous devrions rajouter à la suite de tests algo des jeux complets de Démo #2635 vdj#195 avec une visée clinique. Ces tests pourraient être écrits par / validés avec nos utilisateurs. Ils seraient longs à lancer, et constitueraient un sta...Nous devrions rajouter à la suite de tests algo des jeux complets de Démo #2635 vdj#195 avec une visée clinique. Ces tests pourraient être écrits par / validés avec nos utilisateurs. Ils seraient longs à lancer, et constitueraient un stage après les ~"dev-tests-should-get" classiques.
Discuter au passage avec ~"KIE-Kiel" qui fait déjà des "re-certifications" sur nos releases ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2727Onglet "samples" / Un sample doit-il nécessairement appartenir à un set ?2021-02-17T11:42:18+01:00Mathieu GiraudOnglet "samples" / Un sample doit-il nécessairement appartenir à un set ?Lien surprenant entre #2726 et #2591.
#2591 :
> > @RyanHerb : et fournir une vue des sequence_file "orphelins"
>
> @magiraud : Oui, pour les admins
Ou bien pour les utilisateurs aussi ? Pourquoi un sample devrait-il appartenir à un set...Lien surprenant entre #2726 et #2591.
#2591 :
> > @RyanHerb : et fournir une vue des sequence_file "orphelins"
>
> @magiraud : Oui, pour les admins
Ou bien pour les utilisateurs aussi ? Pourquoi un sample devrait-il appartenir à un set ? Est-ce que quelque chose de plus générique ne serait pas qu'un sample puisse appartenir à 0, 1, 2, 3, ... n sets ?
Dans ce cas, on voit #2726 sous un autre angle : on devrait pouvoir visualiser un seul sample (qu'il soit ou pas dans un ou plusieurs sets). Et on pourrait faire des recherches sur les samples (typiquement de leurs infos), indépendamment de leur sets. Actuellement, c'est un peu difficile de chercher un sample si on ne sait pas dans quel patient/run/set il se trouve.
Le menu "runs / patients / sets" pourrait être alors "runs / patients / sets / samples", l'entrée "samples" remplaçant le "Compare samples", montrant tous les samples (et éventuellement, en option, uniquement les orphelins)... mais cela devrait être clair que la vue "samples" n'est pas du même niveau que les autres.
Confusion ou clarification ?
cc @RyanHerb @flothonihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2747Organiser les sample_sets par projet pour accélérer les requêtes2020-09-23T17:32:47+02:00Ryan HerbertOrganiser les sample_sets par projet pour accélérer les requêtesActuellement on a un système qui est très flexible en termes de permissions et d'associations de samples à plusieurs sets, voire plusieurs groupes. Mais c'est aussi plutôt lent à cause du système de permissions que j'ai créé.
Avec la no...Actuellement on a un système qui est très flexible en termes de permissions et d'associations de samples à plusieurs sets, voire plusieurs groupes. Mais c'est aussi plutôt lent à cause du système de permissions que j'ai créé.
Avec la notion de hierarchie de groupes, on se retrouve avec des requêtes plutôt complexes pour déterminer si l'utilisateur a accès à un élément.
> Il faut chercher si l'utilisateur appartient à un groupe qui a la permission `access` ou à un groupe dont le parent a la permission `access`
Donc lister les sets d'un type particulier auxquels un utilisateur a accès revient au code suivant:
``` python
def vidjil_accessible_query(self, name, table, user_id=None):
"""
Returns a query with all accessible records for user_id or
the current logged in user
this method does not work on GAE because uses JOIN and IN
This is an adaptation of accessible_query that better fits
the current auth system with group associations
:param: name: The name of the query (eg. 'read')
:param: table: The table for accessibility
:param: user_id: ID of the user
Example:
Use as::
db(auth.vidjil_accessible_query('read', db.mytable, 1)).select(db.mytable.ALL)
"""
if not user_id:
user_id = self.user_id
db = self.db
if isinstance(table, str) and table in self.db.tables():
table = self.db[table]
elif isinstance(table, (Set, Query)):
# experimental: build a chained query for all tables
if isinstance(table, Set):
cquery = table.query
else:
cquery = table
tablenames = db._adapter.tables(cquery)
for tablename in tablenames:
cquery &= self.vidjil_accessible_query(name, tablename,
user_id=user_id)
return cquery
if not isinstance(table, str) and\
self.has_permission(name, table, 0, user_id):
return table.id > 0
membership = self.table_membership()
permission = self.table_permission()
perm_groups = self.get_permission_groups(name, user_id)
query = (table.id.belongs(
db(((membership.user_id == user_id) &
(membership.group_id.belongs(perm_groups)) &
(membership.group_id == permission.group_id) &
(permission.name == PermissionEnum.access.value) &
(permission.table_name == table)))._select(permission.record_id)) |
table.id.belongs(
db(((membership.user_id == user_id) &
(membership.group_id.belongs(perm_groups)) &
(membership.group_id == db.group_assoc.second_group_id) &
(db.group_assoc.first_group_id == permission.group_id) &
(permission.name == PermissionEnum.access.value) &
(permission.table_name == table)))._select(permission.record_id)))
if self.settings.everybody_group_id:
query |= table.id.belongs(
db(permission.group_id == self.settings.everybody_group_id)
(permission.name == name)
(permission.table_name == table)
._select(permission.record_id))
return query
```
Ce qui produit la requête SQL suivante:
```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` IN
(SELECT `auth_permission`.`record_id` FROM `auth_permission`, `auth_membership`
WHERE (
(
(
(
(`auth_membership`.`user_id` = 2)
AND (`auth_membership`.`group_id` IN (4))
)
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`, `auth_membership`, `group_assoc`
WHERE (
(
(
(
(
(`auth_membership`.`user_id` = 2)
AND (`auth_membership`.`group_id` IN (4))
)
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')
)
)
));
```
On a donc une requête composée de deux sous-requêtes chacune contenant un `IN` aussi long que le nombre de groupes auxquels l'utilisateur appartient, l'une avec un `join` et l'autre avec deux `join` (ici les joins sont implicites).
Et les autres primitives du model `VidjilAuth` sont composées de plusieurs `joins` et souvent plusieurs requêtes.
Avec une organisation par projet (avec une nouvelle table, et une clef étrangère dans la table `sample_set`) on pourrait se débarrasser complètement de la permission `access`, et par la même occasion on laisse tomber cette anbiguïté qu'on a avec les groupes de projets/hôpitaux et les groupes de rôles/permissions.
La requête "patient" deviendrait:
```python
def get_project_sets(type, project_id):
return db(
(db.sample_set.project_id == project_id) &
(db.sample_set.sample_type == type) &
(db[type].sample_set_id == db.sample_set.id)
).select(db[type].*)
```
Avec auparavant avoir vérifié que l'utilisateur ait accès à un groupe/rôle apparetenant au projet (2 joins sur relativement peu de données). Ce qui nous donne un total de 4 joins sur deux requêtes par rapport à un total de 3 joins répartis sur 3 requêtes, et on perd les `IN`
Il y a plusieurs autres endroits où des gains de jointures ou de requêtes seraient aussi envisageables (`get_permission(...)`, `can_view_sample_set(...)`, ...).
Ainsi que des endroits où les requêtes seraient plus complexes ?
J'aurais tendance à vouloir limiter les associations de samples à des sets du même projet car celà simplifierai certaines requêtes, comme l'autocompletiondes tags, et ainsi que celle des samples_sets à l'ajout d'un sample.
Ca éliminerait également l'impacte des grosses requêtes auxquelles nous les admins soumettons la BDD. Et donc on n'occuperait plus un (voire plus) de processus uwsgi pendant des durées prolongées (par exemple, plus d'une minute pour un compare patient).
Cette moification demanderait beaucoup de travail, donc ça ne serait pas pour tout de suite, mais je pense que celà réduirait le nombre de timeouts subis par nos utilisateurs. Celà demanderait peut-être plus d'analyse, de tests et de benchmarks.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2794API URL: d'autres services utiles, côté serveur2017-11-16T12:30:27+01:00Mathieu GiraudAPI URL: d'autres services utiles, côté serveurAprès #2793, on pourrait imaginer d'autres adresses arrivant quelque part avec un retour de la db:
- `/runs`, `/patients` ?
- `?search=#Diagnosis`
- admins: adresse pour arriver sur certaines pages, type `users`, `debug` ou autre...Après #2793, on pourrait imaginer d'autres adresses arrivant quelque part avec un retour de la db:
- `/runs`, `/patients` ?
- `?search=#Diagnosis`
- admins: adresse pour arriver sur certaines pages, type `users`, `debug` ou autre...
(Pas de ~bikeshedding ici, on discute des services possibles.)
Est-ce que cela ne serait pas confus par rapport aux URL du client #1188 ?
cc @RyanHerb https://gitlab.inria.fr/vidjil/vidjil/-/issues/2820Détecter les primers dimers2023-06-28T18:28:32+02:00Mathieu GiraudDétecter les primers dimersMentionné par Aurélie ~"PAR-Debré" : les nouvelles amorces ~"ec-ngs" génèrent plus de dimers.
À controller.Mentionné par Aurélie ~"PAR-Debré" : les nouvelles amorces ~"ec-ngs" génèrent plus de dimers.
À controller.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2822Permettre de merger sur la séquence en AA2021-11-19T11:06:56+01:00Thonier FlorianPermettre de merger sur la séquence en AADans les options de merge, on pourrait imaginer transformer les clones pour permettre de suivre les clones présentant la même identité en AA et non plus en nt ?
Cas applicatif : recherche d'une même séquence en AA à travers divers pati...Dans les options de merge, on pourrait imaginer transformer les clones pour permettre de suivre les clones présentant la même identité en AA et non plus en nt ?
Cas applicatif : recherche d'une même séquence en AA à travers divers patients partageant une même maladiehttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2834Explication sur les alerte en selected reads2017-11-21T17:10:24+01:00Thonier FlorianExplication sur les alerte en selected readsLors que l'on switch un locus dnas le demo (par exemple si on desactive le TRG), on ne voit plus que les IGH, qu irepresentent 20% des reads.
On se retrouve avec une alerte `!` sur le selected locus qui n'a aucun sens.Lors que l'on switch un locus dnas le demo (par exemple si on desactive le TRG), on ne voit plus que les IGH, qu irepresentent 20% des reads.
On se retrouve avec une alerte `!` sur le selected locus qui n'a aucun sens.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2836Profils pour divers maladies/usages / Presets for different pathologies/uses2023-03-28T16:11:14+02:00Thonier FlorianProfils pour divers maladies/usages / Presets for different pathologies/uses(Voir #878.)
L'idée general de cette tâche est d'enregistrer les paramètre du setting directement pour ne pas avoir a modifier cela si on doit oouvrir 20 patient d'ffiler.
De plus, cela permettrait de retrouver pour point commun entre ...(Voir #878.)
L'idée general de cette tâche est d'enregistrer les paramètre du setting directement pour ne pas avoir a modifier cela si on doit oouvrir 20 patient d'ffiler.
De plus, cela permettrait de retrouver pour point commun entre les differents utilisateur d'un même groupe ( ~"LIL-Lille" compte inclure ces paramètre dans la descrition de leur protocole ! )
La solution la plus simple serait peut-être d'avoir un cookie qui gère les setting pour les enregistrer.Web 2023.10https://gitlab.inria.fr/vidjil/vidjil/-/issues/2842le color by reste sur la dernière valeur selectionnée lors d'un reload de la ...2017-11-29T13:46:13+01:00Thonier Florianle color by reste sur la dernière valeur selectionnée lors d'un reload de la page (mais ne l'applique pas)Une remarque que je m'étais déjà faite (mais pas retrouvé de tâche la dessus...)
Si on choisit un `color by` et que l'on recharge la page, on reste sur cette valeur qui est selectionnée. A la rigueur ce n'est pas forcement dérangeant ( ...Une remarque que je m'étais déjà faite (mais pas retrouvé de tâche la dessus...)
Si on choisit un `color by` et que l'on recharge la page, on reste sur cette valeur qui est selectionnée. A la rigueur ce n'est pas forcement dérangeant ( cf #2836). Cependant, on montre cette valeur comme active, mais elle n'est pas appliquée.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2845Un focus sur un clone mergé ne permet plus de voir ces sous-clone dans le grid2022-06-21T18:22:20+02:00Thonier FlorianUn focus sur un clone mergé ne permet plus de voir ces sous-clone dans le gridUne histoire de comportement a trancher avant de le corriger :
Un utilisateur a pris plusieurs clones qui ont été mergés. Dans un second temps, l'utilisateur a fait un focus/hide pour n'afficher que celui-ci. Cependant, l'utilisateur s...Une histoire de comportement a trancher avant de le corriger :
Un utilisateur a pris plusieurs clones qui ont été mergés. Dans un second temps, l'utilisateur a fait un focus/hide pour n'afficher que celui-ci. Cependant, l'utilisateur s'attend à pouvoir cliquer sur le clone et montrer tous ces sous-clones comme dans le grid classique.
J'imagine que l'on fait un filtre sur les clones lors d'un `hide`/`focus` qui empêche l'affichage de ces sous-clones non ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2850clique sur les bouton cluster by n'enleve pas le clustering2017-11-22T10:19:12+01:00Ghost Userclique sur les bouton cluster by n'enleve pas le clusteringquand on clique sur cluster by v/5 ou j/3 le clustering se fait. Quand on reclique sur le meme bouton il ne se passe rien le meilleur comportement ne devrait il pas etre deuxieme clique annule le clustering ?quand on clique sur cluster by v/5 ou j/3 le clustering se fait. Quand on reclique sur le meme bouton il ne se passe rien le meilleur comportement ne devrait il pas etre deuxieme clique annule le clustering ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2852"Satellites" et clustérisation2017-11-22T11:35:15+01:00Mathieu Giraud"Satellites" et clustérisationFred ~"Paris-Pitié" : à quel point des satellites sont-ils des artefacts ou de "intra-clonal" diversity ?
Voir aussi #1322.Fred ~"Paris-Pitié" : à quel point des satellites sont-ils des artefacts ou de "intra-clonal" diversity ?
Voir aussi #1322.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2853Différencier les réarrangements incomplets et pseudo-incomplets2018-12-12T10:52:33+01:00Mikaël SalsonDifférencier les réarrangements incomplets et pseudo-incompletsSuggéré par Dai lors du VW.
On pourrait effectivement différencier un vrai réarrangement incomplet (dans lequel on doit avoir la région amont du D) d'un pseudo-incomplet dans lequel le read est juste trop court ou il n'y a pas assez d'i...Suggéré par Dai lors du VW.
On pourrait effectivement différencier un vrai réarrangement incomplet (dans lequel on doit avoir la région amont du D) d'un pseudo-incomplet dans lequel le read est juste trop court ou il n'y a pas assez d'info pour trouver le V.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2860Avoir une probabilité, pour chaque nucléotide, d'être dans un V, un D ou un J2020-11-13T20:08:43+01:00Mikaël SalsonAvoir une probabilité, pour chaque nucléotide, d'être dans un V, un D ou un JAvec les discussions sur où doit -on arrêter un V, un D ou un J, je me pose la question de donner des réponses plus floues que cela.
On pourrait dire que tel nucléotide a 10% de chances d'être dans un D. Ensuite la webapp peut montrer c...Avec les discussions sur où doit -on arrêter un V, un D ou un J, je me pose la question de donner des réponses plus floues que cela.
On pourrait dire que tel nucléotide a 10% de chances d'être dans un D. Ensuite la webapp peut montrer cela (avec une couleur plus ou moins forte), et l'afficher différemment selon les préférences de l'utilisateur.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2868Mapper la touche "echap" pour fermer le menu patient2020-11-13T19:34:33+01:00Tatiana RocherMapper la touche "echap" pour fermer le menu patienthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1446Priorités sur le serveur et 'Could not connect to database'2017-11-23T00:07:40+01:00Vidjil TeamPriorités sur le serveur et 'Could not connect to database'Comment faire pour que le côté database / browser fonctionne toujours bien, même quand c'est chargé ?
Faudrait-il mettre des priorités aux différentes tâches ?
Sans aller jusqu'à -20, mettre quelque chose
- pour les workers (avec le ser...Comment faire pour que le côté database / browser fonctionne toujours bien, même quand c'est chargé ?
Faudrait-il mettre des priorités aux différentes tâches ?
Sans aller jusqu'à -20, mettre quelque chose
- pour les workers (avec le serveur de dev, il peut y en avoir plus que 3 qui tournent au total)
- pour d'autre choses ?
https://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/2407Compléter feature-c/flexible_axis_display2017-11-22T12:49:04+01:00Ghost UserCompléter feature-c/flexible_axis_displayLa nouvelle fonctionnalité est opérationnelle (-> !22), présente en dev mode pour l'instant.
Il reste cependant plusieurs choses à régler avant de la rendre 'publique'.
Problèmes connus :
- le plus important, les `.fct` (et `.prett...La nouvelle fonctionnalité est opérationnelle (-> !22), présente en dev mode pour l'instant.
Il reste cependant plusieurs choses à régler avant de la rendre 'publique'.
Problèmes connus :
- le plus important, les `.fct` (et `.pretty` selon le besoin) manquants dans `Axes`
-> comme discuté plusieurs fois, tous les axes doivent pouvoir être utilisés ; dans certains cas la `fct` voulue existe déjà mais se trouve ailleurs ; enfin cela mènera sans doute à supprimer l'utilisation `clone.axisOptions`
- déroulement de haut en bas du `segmenter_axis_menu`, dû à l'utilisation du fonctionnement du menu du haut de page (`menu-container`, classe `.selector` et fonctions associées)
-> sans doute plutôt l'inverse puisqu'ici le menu part du bas
- beaucoup de divs, parfois 'vides', pour reproduire la structure du menu et pouvoir utiliser les fonctions liées à `.selector`
- `#segmenter_axis_select.style.top` fixé arbitrairement, dans l'attente d'une solution meilleure et surtout fonctionnelle
-> j'avais essayé plusieurs choses pour obtenir `top = -height`, sans réussite
- alignement des 'colonnes' dans le segmenteur
-> en bonne partie résolu mais la solution en place mène dans certains cas à des 'rognages' de caractères (`overflow : hidden`), notamment avec Chromium
- 'disparition' de `.getPrintabeSize`
-> lire #2399, #2400
- besoin potentiel de nouveaux tests, dédiés aux modifications apportées
- valeur 'undefined' renvoyée par certains axes, transformée en '?' par `.pretty`
-> le string 'undefined' débordait dans les spans d'axisBox, mais '?' n'est pas forcément le plus pertinent ; p-ê mieux à choisir, notamment pour uniformiser si besoin
- espace pris par `list_axis_select`
-> p-ê une solution à trouver pour éviter d'augmenter la hauteur de `list_menu`
Globalement, tout ce qui concerne les contrôleurs/menus peut tout à fait bouger, il s'agissait surtout pour le moment d'avoir quelque chose d'utilisable.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2877normalisation2022-04-25T16:46:03+02:00Ghost UsernormalisationDiscussion à propos de la normalisation. Il nous a parlé d'amplification préférentielle (a priori Kiel a présenté des choses la dessus) et suggéré de normaliser à partir de la quantité d'ADN dans l'échantillon.Discussion à propos de la normalisation. Il nous a parlé d'amplification préférentielle (a priori Kiel a présenté des choses la dessus) et suggéré de normaliser à partir de la quantité d'ADN dans l'échantillon.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2891Upload de plusieurs fichiers .fasta via un .zip / .csv2023-03-28T16:10:53+02:00Mathieu GiraudUpload de plusieurs fichiers .fasta via un .zip / .csvTâche originelle dans #1362
PAN a envoyé un .zip avec 4 fichiers dedans. Et ça on ne sait pas faire. Il faudrait « juste » décompresser l'archive et itérer sur tous les fichiers et les remplir tous avec les mêmes propriétés.
***
Oui, c...Tâche originelle dans #1362
PAN a envoyé un .zip avec 4 fichiers dedans. Et ça on ne sait pas faire. Il faudrait « juste » décompresser l'archive et itérer sur tous les fichiers et les remplir tous avec les mêmes propriétés.
***
Oui, cela simplifierait beaucoup certains usages... mais ce n'est pas si évident à faire :
- le "sampling date" peut ne pas être le même (mais on pourrait faire une passe manuelle ensuite)
- et surtout, si on décompresse, il faut le faire dans environnement sécurisé pour que cela ne mette pas le bazar dans nos fichiers
- et éduquer les utilisateurs pour que le .zip soit uniquement des fichier fasta (pas un fichier .txt ou je ne sais quoi en plus)...
En mode production MRD, ce n'est pas forcément nécessaire (un point à la fois).
***
Mentionné par nos amis du NHS.
Pour eux, ce serait même *différents patients* ? Au passage, c'est vrai que c'est plus réaliste. En production, on a le(s) run(s) de la semaine, avec du diag, et des MRDs de patients existants
***
Vraiment pas facile...
Début de réflexion : on uploade une archive, cela ajoute les fichiers, on arrive sur un tableau avec la liste des fichiers et des controles pour ajouter au patient qu'on veut ?
On suppose par contre que producer / sequencer sont le même pour tous...
Mais primers, non.
Pb: tant que le .zip n'est pas arrivé, on ne peut pas afficher le tableau.
Bof / bof...
Il faudrait expliciter le scénario avec nos users pour voir ce qu'ils veulent vraiment.
***
Est-ce vraiment un problème de ne pas voir le tableau ? De toute façon on voit l'upload en cours dans le widget.
***
Remis au goût du jour pour Lyon ?
***
Après le R1+R2, il faudra voir si on remet cela au goût du jour.
Heinrik a exactement le problème d'uploader régulièrement >20 fichiers, il faudrait un moyen de le faire plus rapidement.
À voir comment cela pourrait marcher avec le R1+R2.
***
Discuté lors de la Rando 2016.
Pas prioritaire. L'idée pour les prochains mois est déjà d'utiliser les "runs", de voir si nos utilisateurs aiment cela.
***
Ping.
Henrik est revenu à la charge. La solution la plus simple est un upload de plusieurs fichiers pour *un même* patient. À mon avis on peut bidouiller un truc côté Javascript, à voir si c'est souhaitable (récupère tous les fichiers et les envoie 1 par 1 ou 2 par 2 au contrôleur).
***
@nobody
cc @RyanHerbWeb 2023.10https://gitlab.inria.fr/vidjil/vidjil/-/issues/943mapper les windows les moins abondantes sur les plus abondantes2017-11-23T17:10:50+01:00Vidjil Teammapper les windows les moins abondantes sur les plus abondantes- DBscan avec ratio (en fait, on fait un seul niveau, petit autour de gros, pas transitif) ?
- à partir des k-mers conservés ?)
***
@nobody- DBscan avec ratio (en fait, on fait un seul niveau, petit autour de gros, pas transitif) ?
- à partir des k-mers conservés ?)
***
@nobodyhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2902Création simultanée de patients et upload multiples de fichiers2022-05-20T12:21:01+02:00Mathieu GiraudCréation simultanée de patients et upload multiples de fichiersDiscuté ce matin à propos de https://gitlab.inria.fr/vidjil/vidjil/issues/1362#note_64313
Dans un premier temps, il est suffisant d'avoir deux étapes : création batch #2878 puis multi-upload #1362/#2891
Dans un second temps, on pourra...Discuté ce matin à propos de https://gitlab.inria.fr/vidjil/vidjil/issues/1362#note_64313
Dans un premier temps, il est suffisant d'avoir deux étapes : création batch #2878 puis multi-upload #1362/#2891
Dans un second temps, on pourrait avoir une procédure intégrée, à voir si ce n'est pas trop lourd
- 1) soit une UI intégrée à réaliser (comme le bas de https://gitlab.inria.fr/vidjil/vidjil/issues/1362#note_63462)
- 2) soit une procédure qui fait les deux étapes, et propose successivement à l'utilisateur les vérification des deux étapes
cc @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2906Afficher mieux les infos de longueur dans l'info, _clone_average_length ?2017-11-29T08:01:22+01:00Mathieu GiraudAfficher mieux les infos de longueur dans l'info, _clone_average_length ?Suite à #2704.
Quand on fait `getHTMLInfo`, le `clone average length` est planqué, alors que le `length`, désormais non utilisé par défaut, est très visible.
Voir aussi #2814.
Transformer d'ailleurs dans le `.vidjil` le `_clone_average_...Suite à #2704.
Quand on fait `getHTMLInfo`, le `clone average length` est planqué, alors que le `length`, désormais non utilisé par défaut, est très visible.
Voir aussi #2814.
Transformer d'ailleurs dans le `.vidjil` le `_clone_average_length` en quelque chose de plus simple / visible `average_length` ? (en conservant la compatibilité) c65f2445bhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2926Camemberts flexibles2017-12-04T11:26:27+01:00Mathieu GiraudCamemberts flexiblesActuellement, nous avons des camemberts dans le ~"client-rapport", montrant les locus par échantillon, peu configurables. Si cela n'apporte rien, on les retire ? Ou bien est-ce une information à mettre aussi dans nos vues princicpales ?
...Actuellement, nous avons des camemberts dans le ~"client-rapport", montrant les locus par échantillon, peu configurables. Si cela n'apporte rien, on les retire ? Ou bien est-ce une information à mettre aussi dans nos vues princicpales ?
Si oui, devrait-on 1) juste mettre la même vue dans l'appli principale ? Alors plutôt comme vue alternative du ~"client-graph" ?
2) ou bien dans le scatterplot, un `MODE_PIE` qui serait complémentaire de `MODE_BAR` et `MODE_GRID` ? L'axe `x` répartirait en camemberts différents (par exemple les locus), l'axe `y` serait la clé de répartition au sein d'un camembert. Les camemberts pourraient avoir tous le même rayon, soit avoir un rayon reflétant la taille des clones.
On pourrait avoir l'impression que cela permette d'afficher une information assez similaire de `MODE_BAR`. La pertinence bio serait surtout quand l'axe `x` n'est pas vraiment continu. Typiquement, les locus: souvent on ne veut pas comparer le nombre de reads par locus mais les étudier séparément (voir aussi #1887)...
Bof bof...
https://gitlab.inria.fr/vidjil/vidjil/-/issues/2928Un composant pour des infos login / serveur / uploads / ... toujours visibles2017-12-04T09:17:32+01:00Mathieu GiraudUn composant pour des infos login / serveur / uploads / ... toujours visiblesEssai pour #2848 et #2927.
- regrouper toutes les interactions au serveur quelque part. Certes, `open patient` est aussi de l'interaction serveur, mais là on parle d'infos plutôt de connexion / debug / monitor
- réfléchir sur une ou p...Essai pour #2848 et #2927.
- regrouper toutes les interactions au serveur quelque part. Certes, `open patient` est aussi de l'interaction serveur, mais là on parle d'infos plutôt de connexion / debug / monitor
- réfléchir sur une ou plusieurs icônes. Avoir un moyen d'indiquer qu'on est connecté et que le serveur répond. Regroupe-t-on ce qui dépend de l'upload, de requêtes en cours au même endroit ?
- quelle intégration au menu ? Vidjil(beta) ne prend-il pas trop de place ? comment faire des menus propres alignés à droite ? Ou bien ne pas trop passer du temps sur ces questions, tout risquant d'être chamboulé bientôt par ~"vmi-responsive" (et on aura alors une vue "serveur" ?)
- mis aucune couleur ici, bien que ce soit très tentant sur plusieurs éléments... garder la couleur pour les clones ?
![server-menu](/uploads/70736279d6d690ab0f6b7bb008fc5590/server-menu.png)
![server-menu.svg](/uploads/5e558e6a9551d88616ec3ee3bb7b95e8/server-menu.svg)https://gitlab.inria.fr/vidjil/vidjil/-/issues/2937Savoir quand on a mis à jour les sets2019-02-28T12:40:32+01:00Mathieu GiraudSavoir quand on a mis à jour les setsDiscuté avec @RyanHerb, je me l'étais aussi souvent dit récemment.
Quand on arrive sur une liste de patients/runs/sets, on aimerait savoir quand a été mis à jour chaque set. Que ce soit quand on fait du ~"server-admin" (savoir quand est...Discuté avec @RyanHerb, je me l'étais aussi souvent dit récemment.
Quand on arrive sur une liste de patients/runs/sets, on aimerait savoir quand a été mis à jour chaque set. Que ce soit quand on fait du ~"server-admin" (savoir quand est-ce que l'on a touché à tel ou tel set)... mais même en routine. Si on a travaillé récemment sur certains sets en ajoutant des fichiers, c'est normal qu'on aie à en discuter en réunion patients ou autre juste après. Au passage, sur ~"dev-gitlab", ma vue par défaut est souvent le `Last updated`...
Le tri actuel, par ordre de création de patient, est peu pertinent dans le passé (surtout qu'on ne voit pas quand les patients ont été créés, ce qui pourrait aussi être une info intéressante.)
Pistes à discuter :
- avoir une colonne `last updated` qui indique la dernière action faite sur un set (upload, run, save analysis, et même un ~"server-fuse" implicite ?). Est-ce que cette colonne devrait être calculée à partir de notres infos (hum, ~"server-speed" ?) ou une nouvelle colonne ?
- l'afficher sur la liste des sets
- pouvoir trier par la colonne
- et peut-être même que... le tri par cette colonne pourrait être la vue par défaut ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2957Avoir un mysql.log2017-12-19T20:28:42+01:00Mathieu GiraudAvoir un mysql.logSera utile en post-mortem, mais aussi en ~"server-speed".
https://stackoverflow.com/questions/650238/how-to-show-the-last-queries-executed-on-mysql
https://stackoverflow.com/questions/303994/log-all-queries-in-mysqlSera utile en post-mortem, mais aussi en ~"server-speed".
https://stackoverflow.com/questions/650238/how-to-show-the-last-queries-executed-on-mysql
https://stackoverflow.com/questions/303994/log-all-queries-in-mysqlhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2959Groupe public géré par web2py2018-01-08T09:54:07+01:00Mathieu GiraudGroupe public géré par web2pyNous gérons nous-même le groupe public.
Il y a aussi `everybody_group_id` dans `Auth` (et donc dans `VidjilAuth`), qui apparamment gère aussi `has_permission`. Je ne sais pas si cela vaudrait le coup ou pas de l'utiliser pour ne plus le...Nous gérons nous-même le groupe public.
Il y a aussi `everybody_group_id` dans `Auth` (et donc dans `VidjilAuth`), qui apparamment gère aussi `has_permission`. Je ne sais pas si cela vaudrait le coup ou pas de l'utiliser pour ne plus le faire de notre côté.
cc @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2986Pas de séquences en minuscules dans vidjil-algo ?2018-01-17T08:56:19+01:00Mathieu GiraudPas de séquences en minuscules dans vidjil-algo ?En regardant #2985, je me rends compte que dans `tools.cpp`/`tools.h`, certaines fonctions sont case-sensitive
(`nuc_to_int`, ou peut-être pas vu l'encodage ASCII) et d'autres non (`complement_nucleotide`).
D'un autre côté, dans `fasta....En regardant #2985, je me rends compte que dans `tools.cpp`/`tools.h`, certaines fonctions sont case-sensitive
(`nuc_to_int`, ou peut-être pas vu l'encodage ASCII) et d'autres non (`complement_nucleotide`).
D'un autre côté, dans `fasta.cpp`, on a bien une transformation en majuscule dans `OnlineFasta::next()`. Est-ce notre seule porte d'entrée de séquences dans vidjil-algo ? Il y a bien quelques options obscures qui doivent accepter des séquences en ligne de commande. D'autres choses ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2987Shorter / shifted w : autoriser de plus grands shifts, mais jusqu'à où ?2018-06-27T18:53:30+02:00Mathieu GiraudShorter / shifted w : autoriser de plus grands shifts, mais jusqu'à où ?Suite à #2913/#1580.
Si je ne trompe pas, le shift peut être d'au plus `-5`/`+5`, tandis que le short peut aller beaucoup plus loin. Autant cela ne me gène pas de raccourcir quand on n'a pas le choix (reads courtes des deux côtés), auta...Suite à #2913/#1580.
Si je ne trompe pas, le shift peut être d'au plus `-5`/`+5`, tandis que le short peut aller beaucoup plus loin. Autant cela ne me gène pas de raccourcir quand on n'a pas le choix (reads courtes des deux côtés), autant je pense qu'on pourrait bénéficier de plus de contenu à gauche quand on le peut.
Spontanément, j'aimerais mettre :
- les shifts testés à `{-1, 1, -2, 2, -3, 3, -4, 4}`, ou au moins `{-1, 1, -2, 2}`
- et/ou une valeur de `DEFAULT_WINDOW_SHIFT` à `10` ou `15`.
Je ne sais pas si on peut arriver à quelque chose de plus rationel. En tout cas :
- un `w50/-10` serait mieux qu'un `w45/-5`
- un `w50/-20` serait mieux qu'un `w35/-5` (?)
- par contre on ne doit pas faire `w50/-30` à la place d'un `w25/-5` qui serait sous le `MINIMAL_WINDOW_LENGTH`
Pour info, les shifts sur `stanford-w100`:
```
913 w100/-5
197 w95/-5
163 w90/-5
63 w85/-5
29 w80/-5
2 w75/-5
1 w60/-5
```Algo -- Importanthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3042Sélection de samples plus fine que le search2018-02-09T12:29:04+01:00Mathieu GiraudSélection de samples plus fine que le searchPour #2235/#3041, et pour potentiellement d'autres tâches, on souhaite à un moment pouvoir sélectionner un ensemble de samples (voire de patients/runs/sets ?).
Le "search" actuel pourrait être complété par quelque chose avec des checkbo...Pour #2235/#3041, et pour potentiellement d'autres tâches, on souhaite à un moment pouvoir sélectionner un ensemble de samples (voire de patients/runs/sets ?).
Le "search" actuel pourrait être complété par quelque chose avec des checkboxes ou similaire pour ajouter / retirer des samples des résultats. On pourrait même avoir un mode où l'on sélectionne, au fur et à mesure, plusieurs samples.
Point de détail et difficile... la recherche par tags est très bien pour l'instant.
cc @flothoni @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2223LoadAnalysisURL recharge-t-il tout, est-ce bien raisonnable ?2018-02-23T10:04:51+01:00Mikaël SalsonLoadAnalysisURL recharge-t-il tout, est-ce bien raisonnable ?Voir #2222 : il semble que `loadAnalysisURL` dans `model_loader.js` recharge tous les composants, ce qui est peut-être un peu lourd. À vérifier et si besoin à alléger.
cc @magiraud @RyanHerbVoir #2222 : il semble que `loadAnalysisURL` dans `model_loader.js` recharge tous les composants, ce qui est peut-être un peu lourd. À vérifier et si besoin à alléger.
cc @magiraud @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2201Ne pas avoir de variables globales sur les différentes vues2021-08-10T16:39:43+02:00Mathieu GiraudNe pas avoir de variables globales sur les différentes vuesDiscussion avec @aurelBZH, @mikael-s et @RyanHerb (en partant de #2182 et autres).
On ne devrait pas utiliser de variables globales `sp`, `segment`... pour chaque vue, mais avoir uniquement des appels au modèle.
Les `m.graph` et `m.s...Discussion avec @aurelBZH, @mikael-s et @RyanHerb (en partant de #2182 et autres).
On ne devrait pas utiliser de variables globales `sp`, `segment`... pour chaque vue, mais avoir uniquement des appels au modèle.
Les `m.graph` et `m.sp` ne sont que des hacks temporaires (on pourrait avoir zéro ou plusieurs `sp`, et le code doit fonctionner).
Parmi les pistes évoquées, les vues pourraient s'enregistrer auprès de `shortcut` et `url_obs` (et potentiellement d'autres). Plus généralement, comme les vues s'enregistrent déjà auprès du modèle, une solution pourrait d'avoir des fonctions type `m.getViews(SP)` qui renvoie une *liste* de vues d'un certain type. À réfléchir/discuter encore, pas urgent pour l'instant.
/label ~client ~"!-reflexion" ~"!-hard"
https://gitlab.inria.fr/vidjil/vidjil/-/issues/2095Belles URL persistantes courtes : bikeshedding2018-02-23T10:04:51+01:00Mathieu GiraudBelles URL persistantes courtes : bikeshedding#1188 réfléchit à ce qu'on veut faire passer de nouveau dans l'URL.
Énorme bikeshedding, à discuter : redéfinissons les URLs actuelles ?
Actuellement :
http://app.vidjil.org/browser/?patient=1471&config=26
http://app.vidjil.org/browse...#1188 réfléchit à ce qu'on veut faire passer de nouveau dans l'URL.
Énorme bikeshedding, à discuter : redéfinissons les URLs actuelles ?
Actuellement :
http://app.vidjil.org/browser/?patient=1471&config=26
http://app.vidjil.org/browser/?custom=13580&custom=1200&custom=16466&
`custom` ne veut plus dire grand chose → `samples` ?
`patient` → maintenant c’est `sample_set`, mais pas très beau/court. `set` ?
Le `browser` qui traine n’est pas utile et ne fait plus référence à grand chose (si on a d’autre chose que `browser`, on peut les mettre dans un autre serveur que `app`).
Pour des sample sets :
`http://app.vidjil.org?set=1471` (doit fonctionner même sans `&config=26`)
voire `http://app.vidjil.org?set=1471,1457,1128` (si on peut comparer un jour des sample sets)
ou même `http://app.vidjil.org/1471` ? (qui ne serait qu’un raccourci nginx/apache vers `?set=` ?). Ce serait le lien principal pour parler d’un patient
Pour des samples :
`app.vidjil.org?samples=3452,3456,3475` voire `?s=3452,3456,3475`
@aurelBZH @mikael-s @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1188API / URL persistantes : réfléchir à d'autres services utiles2020-11-20T21:11:37+01:00Vidjil TeamAPI / URL persistantes : réfléchir à d'autres services utiles- se logguer directement avec un token
- se logguer directement + ouvrir un patient ?
- se logguer directement (admin) + page monitor
***
- fuse.py + affichage ?
- align.cgi ?
***
Export
- `&export=html` (ou `pdf`)
...- se logguer directement avec un token
- se logguer directement + ouvrir un patient ?
- se logguer directement (admin) + page monitor
***
- fuse.py + affichage ?
- align.cgi ?
***
Export
- `&export=html` (ou `pdf`)
- `fasta` ? `svg` ?
- `igblast` ? `vquest` ?
***
Préférences utilisateurs (#878)
- tout ce qui est dans le menu "settings"
***
Sélection en cours
- "color by" et locus selectionnés
- graph : sample sélectionné
- `?plot=5` ou `?plot=gene_v,gene_v` ? : mode et axes sélectionnés
- `?clones=4,6,35` -> sélectionne des clones
- voire même search et/ou focus !
`?search=ACATCT`, `?focus=ACATCT` ?
***
***
@RyanHerb @mikael-s @aurelBZH
https://gitlab.inria.fr/vidjil/vidjil/-/issues/3064Stats : controlleur 'stats' vs controlleur 'compare patients' vs controlleur ...2018-02-27T14:29:40+01:00Mathieu GiraudStats : controlleur 'stats' vs controlleur 'compare patients' vs controlleur 'set'A-t-on besoin de trois controlleurs différents ?
cc @RyanHerbA-t-on besoin de trois controlleurs différents ?
cc @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3069Empecher la modifications d'un patient lorsque des analyses sont en attente2019-03-15T09:50:50+01:00Thonier FlorianEmpecher la modifications d'un patient lorsque des analyses sont en attenteUn utilisateur m'a fait remonté des délais récurrents dans l'analyses de leur données.
Après avoir regarder plus en détail, je m'aperçois qu'ils lancent des jobs lourds (sur de gros fichiers) et si rien ne bouge au bout de 2h, ils recha...Un utilisateur m'a fait remonté des délais récurrents dans l'analyses de leur données.
Après avoir regarder plus en détail, je m'aperçois qu'ils lancent des jobs lourds (sur de gros fichiers) et si rien ne bouge au bout de 2h, ils rechargent toutes les données et relances , pensant que notre serveur est dans les choux.
Je leur ai donc expliqué que ce comportement entraîne une surcharge du serveur et que ça n'améliore pas la situation. Cependant, je n'ai pas de possibilité de leur montrer la charge serveur pour le moment. (cf #2945).
En attendant, peut-on bloquer une nouvelle demande d'analyses, le changement des données fasta voir la déétion d'un patient si il en a déjà une en attente ? Je pense que nous avions déjà fait ce qu'il fallait pour les analyses, mais comme ici les données sont rechargées (et le patient précédent supprimé puis recrée dans la foulée) je ne pense pas que notre filtre fonctionne.
En tous cas l'idée ici est d’empêcher la délétion/création de patients lorsque les gens ont l’impression que rien ne bouge côté frontend. Cela peux passer par un simple message d'alerte lorsqu'il tente de supprimer un patient (Une analyse est en attente sur ce patient. Êtes-vous certain de vouloir le supprimé ? ).
On pourrait aussi signaler un ordre dans la file d'attente du scheduler pour qu'ils puissent voir que ça avance.
Vous en pensez-quoi ? Vous avez des propositions la dessus ?
@magiraud @mikael-s @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3074Compilation des fichiers CSS : less dynamique ?2019-02-05T19:19:31+01:00Mikaël SalsonCompilation des fichiers CSS : less dynamique ?Discuté avec @RyanHerb : quelle est notre politique ?
Je pense qu'il faut malgré tout continuer à commiter les fichiers CSS si on veut que des gens qui pullent le dépôt aient un client directement utilisable (sans avoir à utiliser `less...Discuté avec @RyanHerb : quelle est notre politique ?
Je pense qu'il faut malgré tout continuer à commiter les fichiers CSS si on veut que des gens qui pullent le dépôt aient un client directement utilisable (sans avoir à utiliser `less`).
Dans ce cas, quand on développe on n'est pas obligé de toujours les commiter. Par contre au moment du merge, les fichiers CSS doivent être à jour (pourrait-on automatiser cela ?).https://gitlab.inria.fr/vidjil/vidjil/-/issues/3075Contrôleurs obsolètes/inutilisés dans results_file.py2018-03-07T15:22:55+01:00Mikaël SalsonContrôleurs obsolètes/inutilisés dans results_file.pyJe suis tombé par hasard sur le contrôleur `results_file/index`. On y a accès via le lien `.vidjil file list` dans l'interface d'administration mais évitez de cliquer cela prend du CPU et cela fait une [erreur serveur](https://db.vidjil....Je suis tombé par hasard sur le contrôleur `results_file/index`. On y a accès via le lien `.vidjil file list` dans l'interface d'administration mais évitez de cliquer cela prend du CPU et cela fait une [erreur serveur](https://db.vidjil.org/admin/default/ticket/vidjil/134.206.27.223.2018-03-06.18-08-25.6f217564-6a46-4f7a-aa98-95dd871b4ad1).
```
AttributeError: 'NoneType' object has no attribute 'status'
```
Dans le fichier `results_file.py` j'ai également vu un contrôleur `run_all_patients`. Je ne sais pas s'il fonctionne encore mais je frémis à l'idée qu'il puisse être lancé !
Soit ces contrôleurs sont utiles et on doit les mettre à jour et les tester. Soit ils ne le sont pas et autant supprimer ce code.
@RyanHerb, @magiraud vos avis ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/3081Comment creer un groupe de fusion pour faire des partages ou réunion2018-03-15T13:34:45+01:00Thonier FlorianComment creer un groupe de fusion pour faire des partages ou réunionUn trio de trois utilisateurs utilisant déjà régulièrement notre plateforme me signale qu'ils travaillent ensemble. Ils souhaitent pouvoir accéder aux données des uns des autres.
La solution est donc de leur construire un nouveau group...Un trio de trois utilisateurs utilisant déjà régulièrement notre plateforme me signale qu'ils travaillent ensemble. Ils souhaitent pouvoir accéder aux données des uns des autres.
La solution est donc de leur construire un nouveau groupe partagé (fait) et il faut ensuite permettre le changement de propriété de toutes les données déjà présentes (cf vidjil/vdj#402). Cependant on n'a pas de méthode pour changer en lot l'appartenance de données. Comment faire ça ?
Solution proposée:
On passe par un contrôleur ? Telle que je le vois, il faudrait avoir la liste de tous les données, pouvoir les sélectionner au cas par cas ou en select all comme pour le contrôleur stat (cf #3041).
Ensuite avoir la liste des groupes accessibles, limitée aux seuls groupes de l'utilisateur (pour limiter les erreurs), et ensuite un bouton validation ( et pourquoi pas un popup de rappel de la manip pour les admins extérieurs).
@magiraud @mikael-s @RyanHerb
A terme, ce contrôleur pourrait être aussi accessible par les utilisateurs eux même ? Nécessiterait peut-être un nouveau niveau de droits pour faire de retropartage.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3084germline_id, *.g et vidjil-algo2020-11-19T08:41:57+01:00Mathieu Giraudgermline_id, *.g et vidjil-algoSuite à !158, cela me tenterait presque de déplacer `germline_id` dans `algo/`. En effet, `germline_id` est bien la version des germlines utilisée par l'algo.
En effet `germline/` est autonome, avec ses tests. On peut désormais faire év...Suite à !158, cela me tenterait presque de déplacer `germline_id` dans `algo/`. En effet, `germline_id` est bien la version des germlines utilisée par l'algo.
En effet `germline/` est autonome, avec ses tests. On peut désormais faire évoluer les germlines, travailler sur `split-from-imgt`, faire les tests qui vont avec sans casser l'algo. Quand on est content, on met à jour `germline_id` et on travaille sur l'algo.
Problème : on trouve aussi ces numéros de versions dans les `*.g` (mais qui sont aussi, quelque part, des choses plutôt algo).
Voir #1491.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3110ajouter des exceptions aux timeout2018-03-28T14:56:46+02:00Thonier Florianajouter des exceptions aux timeoutDepuis quelques jours, j'ai un utilisateur qui lance des jobs sur des gros fichiers de RNAseq (~4GO). Ses jobs finissent toujours en timeout (preprocess coupé à 4h, vidjil à 2h).
Est-il possible d'assigner des jobs lourds à un worker sp...Depuis quelques jours, j'ai un utilisateur qui lance des jobs sur des gros fichiers de RNAseq (~4GO). Ses jobs finissent toujours en timeout (preprocess coupé à 4h, vidjil à 2h).
Est-il possible d'assigner des jobs lourds à un worker spécifique pour lequel le timeout serait bien plus élevé, ou bien d'assigner dynamiquement un timeout plus long quand on peux prévoir qu'un tel job est en cours ?
Tel que je le vois, il faudrait être capable de détecter avant son lancement si un job risque le timeout :
* Poids des fichiers en entrée (automatique pour tous) ?
* Déclaration de l'utilisateur dans une liste blanche ?
* une case à cocher par l'utilisateur pour signifier qu'un fichier risque d'être lourd (j'y crois pas trop). Cependant, on pourrait alors avoir une liste des jobs pour lesquels nous validons les lancements avec exceptions.
Ensuite, il ne faut pas non plus bloquer le serveur :
* n'autoriser qu'un seul jobs sans timeout, 2 max ?
Que faire d'un job long qui finalement dépasserait le timeout sans être prévu:
* si le seul en cours, le laisser et le passer en exception à la volée (laisserai 2 ou 3 workers pour les jobs plus rapide) ?
* si déjà d'autres jobs en exception il faudrait le tuer et le relancer automatiquement dès qu'un place en exception de timeout se libère ?
Voilà, beaucoup de questions. Je ne sais pas si c'est aisé ou non, et ça demande peut-être beaucoup mise au point.
cc @magiraud @mikael-s @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3181Lancer CloneDB depuis fuse.py ou en offline2019-02-14T18:19:54+01:00Mathieu GiraudLancer CloneDB depuis fuse.py ou en offlineExtrait de #2312 et clonedb#1 :
> Lancer la cloneDB sur tous les clones côté client peut être une mauvaise idée ! (à voir si on le fait dans le `fuse.py`).
Pourquoi pas... mais dans ce cas, pas de check sur la contamination intra-run #...Extrait de #2312 et clonedb#1 :
> Lancer la cloneDB sur tous les clones côté client peut être une mauvaise idée ! (à voir si on le fait dans le `fuse.py`).
Pourquoi pas... mais dans ce cas, pas de check sur la contamination intra-run #1744 (qui pourrait être fait séparément).
À voir aussi comment on indique que cela a été fait "à une certain moment" (et donc, si on revient plus tard, pas forcément à jour). Et/ou relancer périodiquement CloneDB sur le serveur ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/3187Filtrage du BioReader pour align_against_collection : gérer le cas s'il y a p...2018-07-12T18:00:22+02:00Mikaël SalsonFiltrage du BioReader pour align_against_collection : gérer le cas s'il y a peu de résultats à getMultiResults()On pourrait avoir le cas où on a peu de k-mers correspondent à des gènes V existants (à cause de mutations par exemple).
Si on a seulement 3 k-mers qui correspondent à du V4 et 2 à du V6, a-t-on vraiment envie de privilégier ces deux gè...On pourrait avoir le cas où on a peu de k-mers correspondent à des gènes V existants (à cause de mutations par exemple).
Si on a seulement 3 k-mers qui correspondent à du V4 et 2 à du V6, a-t-on vraiment envie de privilégier ces deux gènes-là plutôt que les autres ? Il y a donc un certain seuil à partir duquel on n'a plus envie de filtrer le `BioReader`.
On pourrait calculer un seuil de p-valeur pour savoir si le nombre de k-mers est satisfaisant par exemple. On a déjà tout ce qu'il faut normalement.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3216Utilisation des séquences "cibles"2023-06-28T16:58:04+02:00Thonier FlorianUtilisation des séquences "cibles"Problème de Patrick :
> comparer le nombre de read d’un patient (pour une cible) à la moyenne des reads de cette cible sur l’ensemble des patients (ou sur une cohorte définie, par exemple 200 patients de notre site). Ceci nous permettra...Problème de Patrick :
> comparer le nombre de read d’un patient (pour une cible) à la moyenne des reads de cette cible sur l’ensemble des patients (ou sur une cohorte définie, par exemple 200 patients de notre site). Ceci nous permettra d’avoir des critères d’acceptation du run.
Pour ce faire, il faut faire une recherche de cette cible sur l’ensemble des samples sélectionnées:
* Premier point : il faut déjà pouvoir spécifier la cible.
* Pouvons-nous nous contenter de le faire sur la liste des clones disponible dans les fichiers vidjil ? Nous pourrions alors passer à côté d'une séquence qui ne correspond pas à un clone du top 100, mais qui pourrait avoir son intérêt quand même.
* Rechercher sur le fichier source de séquençage ? Certainement plus long d'un point de vue informatique, mais cela reste-t-il de l'ordre du raisonnable ?
* Faudra-t-il utiliser des séquences dégénérées ?
Autre solution: passer par cloneDB. Serait-ce plus simple d'un point de vue technique ? Cela permettrai-t-il la même granulométrie dans la recherche pour l'inclusion des divers échantillons ?
@Patrick : Aurais-tu un exemple de cible que tu cherches , les samples associés, et ce que tu as (ou t'attends) a retrouver stp ?
@magiraud @mikael\-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3218Supprimer les k-mers non significatifs ?2020-02-21T21:19:30+01:00Mathieu GiraudSupprimer les k-mers non significatifs ?(Juste une réflexion peut-être non pertinente, à voir uniquement si le temps du filtrage reste significatif après #3217.)
Sur IGHV (347 gènes), en prenant des k-mers de taille 5:
- 1031 k-mers différents, dont
- 36 k-mers qui appar...(Juste une réflexion peut-être non pertinente, à voir uniquement si le temps du filtrage reste significatif après #3217.)
Sur IGHV (347 gènes), en prenant des k-mers de taille 5:
- 1031 k-mers différents, dont
- 36 k-mers qui apparaissent dans >= 300 des gènes.
- environ 500 k-mers qui apparaissent dans >= 50 des gènes
Cela fait beaucoup de k-mers qui apparaissent très souvent (et qui vont "charger" l'automate, le match ne serait-il pas en `O(zn)`, où `z` est le nombre moyen d'affectations par k-mer) ?
On verra quand on aura le temps exact du filtrage (sans suppression) pour #3190 et après #3217, mais est-ce que ces 36 kmers apparaissant trop souvent apportent vraiment du signal dans le filtrage ? (Ils peuvent certes amener un signal négatif, on pourrait à la limite stocker cette info.)
cc @mikael\-s @boreechttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3222vue commune pour les preprocess de merge2023-06-22T17:18:32+02:00Thonier Florianvue commune pour les preprocess de mergeUne question me vient en analysant #3219 : Laisse-t-on à terme le choix du software de merge ou l'impose-t-on ?
Si on laisse le choix; propose-t-on de conserver les reads non assemblés pour rejouer le merge avec un autre soft (ou même ...Une question me vient en analysant #3219 : Laisse-t-on à terme le choix du software de merge ou l'impose-t-on ?
Si on laisse le choix; propose-t-on de conserver les reads non assemblés pour rejouer le merge avec un autre soft (ou même simplement d'autres paramètres) ?
De plus, propose-t-on une vue unifiée entre les diverses sorties (cf revient à faire un json des log de preprocess ). On pourrait par exemple pour les merge indiquer des tableaux des percentiles sur la longueurs des reads assemblés par exemple; Cette étape serait supplémentaire au software.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3267Filtrage des germlines : le désactiver pour les "petites" germlines ?2018-07-06T11:10:44+02:00Mathieu GiraudFiltrage des germlines : le désactiver pour les "petites" germlines ?Faudrait-il quelque chose pour désactiver le filtrage sur certaines germlines ?
- Un truc en dur qui le ferait que pour les `IGHV` (et éventuellement d'autres pour lesquels on voit une accélération) ? Cela peut être largement suffisa...Faudrait-il quelque chose pour désactiver le filtrage sur certaines germlines ?
- Un truc en dur qui le ferait que pour les `IGHV` (et éventuellement d'autres pour lesquels on voit une accélération) ? Cela peut être largement suffisant dans un premier temps.
- Ou bien plus un truc plus fin, automatique avec la taille de la germline ?
(quand c'est désactivé, pas de construction de l'automate comme dans #3268).
cc @boreechttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3269vidjil.cpp ne devrait pas, par défaut, sortir un fichier par clone segmenté2018-06-22T12:04:52+02:00Mathieu Giraudvidjil.cpp ne devrait pas, par défaut, sortir un fichier par clone segmentéUn *fichier* `ofstream out_clone(clone_file_name.c_str())` est ouvert par clone sous le `-z`. Il faudrait voir si on souhaite garder ce fonctionnement, ou bien limiter cette sortie à quelques clones.
Non essentiel pour l'instant (c'est...Un *fichier* `ofstream out_clone(clone_file_name.c_str())` est ouvert par clone sous le `-z`. Il faudrait voir si on souhaite garder ce fonctionnement, ou bien limiter cette sortie à quelques clones.
Non essentiel pour l'instant (c'est ce qu'on a toujours fait, et le temps n'est pas si grand), mais devra être résolu avant qu'on fasse en routine des `-z 10000`.
cc @boreechttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3281Fichiers BAM avec données pairées : exception ou non ?2018-06-13T09:25:11+02:00Mikaël SalsonFichiers BAM avec données pairées : exception ou non ?Lorsque le BAM avait été implanté, il avait été prévu de ne pas permettre l'utilisation de données pairées (car les reads ne sont pas fusionnés), comme indiqué dans la doc. Une exception est donc levée dans un tel cas. Il existe un seul ...Lorsque le BAM avait été implanté, il avait été prévu de ne pas permettre l'utilisation de données pairées (car les reads ne sont pas fusionnés), comme indiqué dans la doc. Une exception est donc levée dans un tel cas. Il existe un seul cas où on devrait permettre cela : du RNA-Seq car fusionner les reads ne présente aucun intérêt.
Or le seul cas de BAM uploadé sur le serveur public c'est du RNA-Seq pairé ! (#3263)
On peut très bien rester sur une exception (avec un message plus explicite car là c'est uniquement une assertion qui échoue) et dire qu'on ne gère que les FASTQ. Aucune garantie sur le reste.
Une alternative serait de mettre un warning (#2247). Le problème c'est qu'une personne envoyant un fichier BAM avec des données pairées d'amplicons verra ses données analysées juste avec un warning et serait probablement assez peu motivée pour réuploader 2 FASTQ et relancer l'analyse alors qu'elle a déjà des résultats devant les yeux.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3297Faire des cas difficiles pour les heuristiques (segmentation, filtrage) par g...2018-07-11T18:22:34+02:00Mathieu GiraudFaire des cas difficiles pour les heuristiques (segmentation, filtrage) par grainesPour #3183, #3223, #3225, ce serait bien de faire des séquences (même artificielles) qui mettraient l'heuristique de filtrage en difficulté... de la même manière qu'on a déjà beaucoup de tests sur des cas limites pour ~"cpp\-heuristic" ....Pour #3183, #3223, #3225, ce serait bien de faire des séquences (même artificielles) qui mettraient l'heuristique de filtrage en difficulté... de la même manière qu'on a déjà beaucoup de tests sur des cas limites pour ~"cpp\-heuristic" .
Cela dépend aussi fortement des graines choisies. #1364https://gitlab.inria.fr/vidjil/vidjil/-/issues/3300Ordre sur les flags de task.py2018-06-18T18:02:51+02:00Mathieu GiraudOrdre sur les flags de task.pyUne pensée après #3289 / !209 : on aurait pu avoir des flags avec des opérations d'ordre (comme ce qu'on met dans le mail) :
NO_JOB → QUEUED → ASSIGNED → RUNNING → COMPLETED
Mais bon, c'est sûrement inutilement compliqué.Une pensée après #3289 / !209 : on aurait pu avoir des flags avec des opérations d'ordre (comme ce qu'on met dans le mail) :
NO_JOB → QUEUED → ASSIGNED → RUNNING → COMPLETED
Mais bon, c'est sûrement inutilement compliqué.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3360Gestion plus propre des warnings2021-02-03T09:09:32+01:00Mikaël SalsonGestion plus propre des warningsPour l'instant l'ajout d'un warning se fait dans le JSON. Si on veut afficher quelque chose sur la sortie standard c'est géré indépendamment, avec des messages qui peuvent diverger.
Ce n'est donc pas très générique.
De plus l'ajout d'un...Pour l'instant l'ajout d'un warning se fait dans le JSON. Si on veut afficher quelque chose sur la sortie standard c'est géré indépendamment, avec des messages qui peuvent diverger.
Ce n'est donc pas très générique.
De plus l'ajout d'un warning dans le JSON se fait par un code unique, sous forme de chaîne, suivie d'une description.
Plusieurs éléments :
* [ ] Ne pourrait-on pas avoir une constante pour chaque warning (toujours préférable aux chaînes pour lesquelles on risque une typo) ?
* [ ] Le message ne peut-il pas être mis automatiquement (tous définis dans un tableau commun) plutôt que d'avoir à le réécrire à chaque fois ?
* [x] Les warnings ne peuvent-ils pas exister indépendamment du JSON ? Ensuite c'est chaque type de sortie qui définit ce qu'elle fait du warning.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3370Une séquence passe en unexpected au lieu d'IGH2018-07-13T16:08:46+02:00Mikaël SalsonUne séquence passe en unexpected au lieu d'IGHCe n'est pas extrêmement choquant vue la séquence.
Il s'agit de la séquence `#1347 vh2` de `gosh-igh.should-vdj.fa`. Elle contient un réarrangement VDJ normal mais à la fin elle a aussi du V dans le sens négatif.
Auparavant la séquence...Ce n'est pas extrêmement choquant vue la séquence.
Il s'agit de la séquence `#1347 vh2` de `gosh-igh.should-vdj.fa`. Elle contient un réarrangement VDJ normal mais à la fin elle a aussi du V dans le sens négatif.
Auparavant la séquence était vue comme une séquence VDJ normale mais avec la mise à jour des germlines, on a plus de k-mers reconnus comme V- à la fin de la séquence ce qui donne une meilleure e-valeur à la recombinaison inattendue par rapport à la VDJ classique.
Voici les affectations :
```
_ _ _ _ _ _ _+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H
+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H
+H+H+H+H+H+H ?+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H _
_ _ _ _+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H
+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H
+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H
+H+H+H+H+H+H+H+H+H _ _+H _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _+h+h+h+h+h+h+h+h+h _ _ _ _ _ _+h _ _ _ _ _ _+h+h+h
+h+h+h+h _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H
-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H
-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H-H
```
Est-on choqué que ce soit unexpected ou non ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/3379identito-vigilance: protocole par le biais des SNP2018-07-13T16:21:52+02:00Thonier Florianidentito-vigilance: protocole par le biais des SNPIl s'agit d'une piste de réflexion sur ce que j'ai entendu cette semaine au labo.
Dnas le cadre des manips de séquençage de l'équipe de Rennes en oncologie ou somatique, ils passent des échantillons pour voir des SNP.
L'association d...Il s'agit d'une piste de réflexion sur ce que j'ai entendu cette semaine au labo.
Dnas le cadre des manips de séquençage de l'équipe de Rennes en oncologie ou somatique, ils passent des échantillons pour voir des SNP.
L'association de quelques SNP permet de discriminer des patients et par exemple de savoir le sexe, et aussi un code de quelques lettres qui pourra devenir unique.
Ces SNP sont répartits sur de nombreux gènes qui sont justement ceux qu'ils observent. Ils n'en ont que quelques un de dispo pour cette raison (8 ou 9). Ça ne fait pas forcement un très grande combinatoire, mais ils l'utilisent à l'échelle d'un run uniquement.
Vu le type de données que l'on a, ce n'est pas envisageable (mutation, recombo, locus différents suivant les samples,...). Mais c'est à garder dans un coin de notre esprit.
PS; ça fait prendre conscience qu'il en faut peu pour identifier quelque un.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3386Indexer séparément, mais à la suite, les up/down-stream2018-07-16T07:31:14+02:00Mathieu GiraudIndexer séparément, mais à la suite, les up/down-streamNous aimons le up/down-stream. Nous avons fait #3008 pour J+down, et, précédemment, la même chose Dd2/Dd3.
Mais idéalement, on devrait distinguer des situations comme `JJJJJdddd`, `JJJJJCCCCC`, `JJJJJ----`. Et, avec des reads non-longu...Nous aimons le up/down-stream. Nous avons fait #3008 pour J+down, et, précédemment, la même chose Dd2/Dd3.
Mais idéalement, on devrait distinguer des situations comme `JJJJJdddd`, `JJJJJCCCCC`, `JJJJJ----`. Et, avec des reads non-longues, `JJJJJdddddCCCC` ne devrait pas arriver.
Certes, avoir d'un côté `J.fa` et de l'autre `J+down.fa` fournit une solution, idem pour Dd2/Dd3, couplé avec des entrées dans `germline.h` différentes (et des méthodes de segmentation différentes), mais on sent la recopie d'informations. Et même en situation "normale" `JJJJJdddd`, on aimerait #3147, mais là cela relève plutôt du FineSegmenter.
Serait-ce possible d'avoir un mécanisme où l'on indexe directement `(J + down)`, avec un kmer `down` déclenché
dès le premier nucléotide de `down` ? Avec Aho, c'est peut-être encore plus simple à implémenter ?
Cela demanderait aussi d'adapter les méthodes de segmentation... ou possiblement #3377.
Ping #2138.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3389Séquences stockées dans `seqs_by_window` : champs, compression ?2018-07-18T09:58:40+02:00Mathieu GiraudSéquences stockées dans `seqs_by_window` : champs, compression ?Une réflexion parallèle à #2120/#3387 : l'espace mémoire au cours de la phase 1 provient quasi totalement de
`map<junction, BinReadStorage > seqs_by_window`. Vu ce qu'il y a dans le `BinReadStorage`, il est probable que cela soit dominé ...Une réflexion parallèle à #2120/#3387 : l'espace mémoire au cours de la phase 1 provient quasi totalement de
`map<junction, BinReadStorage > seqs_by_window`. Vu ce qu'il y a dans le `BinReadStorage`, il est probable que cela soit dominé par les `list<Sequence> *bins`. Dans une `Sequence`, il y a :
```
typedef struct read_t
{
string label_full;
string label;
string sequence; // Sequence: original string representation
string quality;
int* seq; // Sequence: seq representation
size_t marked_pos; // Some marked position in the sequence
} Sequence;
```
Est-ce que tout cela est vraiment conservé et utile ?
- La `quality` double la taille (mais elle est utile pour la representative, c'est cela ?)
- `label_full` et `label` pourraient être supprimés (mais bon, quasi-négligeable ?), sauf quand on veut `-a` ou `-u`
- Est-ce que cela aurait un intérêt de stocker `sequence` et `quality` de manière compressée ?
cc @boreechttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3423Etendre vidjilparser.py pour générer des fichiers2018-07-30T15:52:07+02:00Ryan HerbertEtendre vidjilparser.py pour générer des fichiersDans #2240 nous avons créé un module capable d'extraire les informations d'un fichier en maintenant la structure d'un fichier vidjil, et de valider un fichier vidjil en suivant un modèle passé en paramètre, mais il ne sait pas encore gén...Dans #2240 nous avons créé un module capable d'extraire les informations d'un fichier en maintenant la structure d'un fichier vidjil, et de valider un fichier vidjil en suivant un modèle passé en paramètre, mais il ne sait pas encore générer "from scratch" un fichier vidjil.
Il faudrait savoir quel type d'API nous souhaitons construire.
L'utilisateur à-t-il besoin d'avoir des connaissances dans le format Vidjil, ou l'API suffit-elle ?
Moins on demande de connaissances sur le format vidjil, plus l'API demandera de complexité.
Mais plus on demande de connaissances, plus on se rapproche d'une API qui renvoit un dictionnaire plus ou moins complet que l'utilisateur doit compléter.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3437d3.js : conserver, changer ?2019-01-10T15:21:24+01:00Mathieu Giraudd3.js : conserver, changer ?Conservera-t-on a terme d3.js ? Très puissant, mais maitrise-t-on ce qu'il se passe ?
chart.js va être testé par @flothoni pour ~"app\-stats" stats#233, on pourra ainsi se faire une idée.
(Notons que même le ~"client\-grid" pourrait êtr...Conservera-t-on a terme d3.js ? Très puissant, mais maitrise-t-on ce qu'il se passe ?
chart.js va être testé par @flothoni pour ~"app\-stats" stats#233, on pourra ainsi se faire une idée.
(Notons que même le ~"client\-grid" pourrait être fait en chart.js, http://www.chartjs.org/samples/latest/scriptable/bubble.html). Mais chart.js ne permet pas d'export svg.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3447Tests fonctionnels / d'intégration de performance/saturation2018-09-04T09:34:20+02:00Mathieu GiraudTests fonctionnels / d'intégration de performance/saturationDepuis https://gitlab.inria.fr/vidjil/vidjil/issues/2323#note_114506 :
> Je ne suis pas encore complètement convaincu que le [Chaos Monkey](https://en.wikipedia.org/wiki/Chaos_Monkey) s'applique à nous... :-)
Plus généralement, et déjà...Depuis https://gitlab.inria.fr/vidjil/vidjil/issues/2323#note_114506 :
> Je ne suis pas encore complètement convaincu que le [Chaos Monkey](https://en.wikipedia.org/wiki/Chaos_Monkey) s'applique à nous... :-)
Plus généralement, et déjà sur l'architecture de test (même si ensuite #2323 pourrait se poser), faudrait-il avoir des tests de performance / saturation ?
Par exemple 3, 5, 10 pseudo-clients qui veulent en même temps ou presque se connecter et faire des choses de #3401, peut-être en lançant chacun plusieurs runs. Même si c'est normal que le serveur ralentisse, on devrait en théorie ne rien perdre (ou avoir des messages d'erreurs pertinents à certains moments).https://gitlab.inria.fr/vidjil/vidjil/-/issues/3449Readthedocs ?2021-11-19T11:06:57+01:00Mathieu GiraudReadthedocs ?www.readthedocs.org
Évoqué dans #1787. Serait possible depuis #3004.
- Est-ce toujours pertinent ? Au moins la gestion des versions à l'air bien propre
- Mais si le soft est libre, quel est le statut de l'hébgergement www.readthedocs.o...www.readthedocs.org
Évoqué dans #1787. Serait possible depuis #3004.
- Est-ce toujours pertinent ? Au moins la gestion des versions à l'air bien propre
- Mais si le soft est libre, quel est le statut de l'hébgergement www.readthedocs.org ?
- Si oui, est-ce encore utile de maintenir un doublon dans www.vidjil.org/doc ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/3459Avoir un fichier de conf constant pour les updates de docker2021-04-15T14:46:27+02:00Thonier FlorianAvoir un fichier de conf constant pour les updates de dockerEn parlant hier avec @RyanHerb , quelques questions se sont posées autour des updates de docker.
En faisant un git pull pour mettre à jour, on risque de provoquer des erreurs si nous avons changé quelques paramètres en dur dans les fic...En parlant hier avec @RyanHerb , quelques questions se sont posées autour des updates de docker.
En faisant un git pull pour mettre à jour, on risque de provoquer des erreurs si nous avons changé quelques paramètres en dur dans les fichiers.
Il faudrait prévoir une option pour charger un fichier de conf si dispo qui remplace certaines valeurs de la conf de base.Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3473Avoir un tutoriel pour les amdinistrateurs2020-09-18T11:34:20+02:00Thonier FlorianAvoir un tutoriel pour les amdinistrateursPour l'instant, nous n'avons qu'un tutoriel pour les utilisateurs. Il serait intéressant de faire un petit tuto qui viendrait compléter la documentation pour les administrateurs, avec notamment les étapes pour créer un preprocess qui peu...Pour l'instant, nous n'avons qu'un tutoriel pour les utilisateurs. Il serait intéressant de faire un petit tuto qui viendrait compléter la documentation pour les administrateurs, avec notamment les étapes pour créer un preprocess qui peuvent être assez complexes et qui me semble très lourdes par la documentation.
On pourrait ainsi splitter la documentation pour qu'elle présente les étapes générales et la logique, et d'un autre côté voir les aspects plus techniques pour les preprocess et l'installation des différents algo.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3537Colorer les mutations suivant l'impact sur l'acide aminé2021-11-19T11:06:56+01:00Mikaël SalsonColorer les mutations suivant l'impact sur l'acide aminéSuite à #2056 on affiche différemment les mutations silencieuses des mutations non silencieuses. Mais on pourrait aller plus loin en affichant les mutations en fonction du score dans une matrice de score pour la conversion d'un acide ami...Suite à #2056 on affiche différemment les mutations silencieuses des mutations non silencieuses. Mais on pourrait aller plus loin en affichant les mutations en fonction du score dans une matrice de score pour la conversion d'un acide aminé vers un autre.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3538Réflexion sur les lancements (post-)post-process2019-03-05T15:10:14+01:00Mathieu GiraudRéflexion sur les lancements (post-)post-processOn a des choses à lancer après nos process: #1469 #1744 #3181 #1567
Certaines choses (#1469, #3181 ?) pourraient se lancent via le ~"server-fuse", d'autres vraiment après, parfois non systématiquement, sur demande de l'usager (#1744, ~"...On a des choses à lancer après nos process: #1469 #1744 #3181 #1567
Certaines choses (#1469, #3181 ?) pourraient se lancent via le ~"server-fuse", d'autres vraiment après, parfois non systématiquement, sur demande de l'usager (#1744, ~"app\-clonedb" plus poussé, #1567...). On devrait discuter d'un mécanisme pour au moins ce dernier cas.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3550Docker : avoir quelque chose de distribuable2018-10-15T16:51:44+02:00Mathieu GiraudDocker : avoir quelque chose de distribuableActuellement, il faut le répertoire `docker` de notre git... plus `germline` pour générer `germline.js` .
- on s'est dit qu'on n'allait pas faire des releases de ce répertoire pour ne pas avoir quelque chose à maintenir
- mais si c'es...Actuellement, il faut le répertoire `docker` de notre git... plus `germline` pour générer `germline.js` .
- on s'est dit qu'on n'allait pas faire des releases de ce répertoire pour ne pas avoir quelque chose à maintenir
- mais si c'est par ~"dev\-ci" , création d'un .zip quelque part qui correspondrait à ce répertoire
- ou sinon... #1491 ?
cc @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3566Supprimer / rationaliser le format .vdj des headers ?2018-10-24T16:27:47+02:00Mathieu GiraudSupprimer / rationaliser le format .vdj des headers ?On l'a peut-être oublié, nous disons sur stdout et dans la ~doc que le `.vdj.fa` est (l'un des) "main output file"(s).
Voir aussi http://www.vidjil.org/doc/vidjil-algo/#main-output-files
```
>clone-001--IGH--0000008--0.0608%--lcl|FLN1FA...On l'a peut-être oublié, nous disons sur stdout et dans la ~doc que le `.vdj.fa` est (l'un des) "main output file"(s).
Voir aussi http://www.vidjil.org/doc/vidjil-algo/#main-output-files
```
>clone-001--IGH--0000008--0.0608%--lcl|FLN1FA001CPAUQ.1|-[106,232]-#2 - 127 bp (54% of 232.0 bp) + VDJ 1 54 73 84 85 127 IGHV3-23*05 6/ACCCGGGAGGAACAATAT/9 IGHD6-13*01 0//5 IGHJ4*02 IGH SEG_+ 1.952469e-18 1.644625e-18/3.078448e-19 {52(45)96 p CTREEQYSSWYFDFW}
CTGTACCTGCAAATGAACAGCCTG ...
```
Une fois que l'on a #2828, on peut se demander ce qu'on doit conserver.
Est-ce que ces headers sont utiles ? Oui pour ~"dev\-tests\-curated\-vdj", mais qui pourrait utiliser autre chose #3567.
On garde bien sûr la sortie `.vdj.fa`... mais :
- cas extrême : on vire ce header, ou tout ce qui est après l'espace
- ou, après la partie sans espace, on met directement le ` .tsv` AIRR #2828 (problème: trop long)
- ou au moins le *début* du .tsv, à supposer qu'on ait un ordre intelligent - (!xxx essaie de faire cela)
Dans tout les cas, au minimum, mettre la génération de tout cela dans une sous-classe de `CloneOutput` #3592.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3584Germline unexpected : comment remonter à la bonne germline ?2024-03-27T16:43:37+01:00Mikaël SalsonGermline unexpected : comment remonter à la bonne germline ?La fonction `Germline::override_rep5_rep3_from_labels` permet normalement de faire cela. Elle est utilisée lorsqu'on est en unexpected afin d'aligner la séquence contre les bons répertoires.
Les répertoires corrects sont trouvés grâce a...La fonction `Germline::override_rep5_rep3_from_labels` permet normalement de faire cela. Elle est utilisée lorsqu'on est en unexpected afin d'aligner la séquence contre les bons répertoires.
Les répertoires corrects sont trouvés grâce aux KmerAffect. Mais… ces KmerAffect sont les mêmes pour un germline complet et incomplet (le shortcut est par exemple `H` en complet et `h` en incomplet) :
```c++
affect_5 = string(1, toupper(shortcut)) + "-" + code + "V";
affect_4 = string(1, 14 + shortcut) + "-" + code + "D";
affect_3 = string(1, tolower(shortcut)) + "-" + code + "J";
```
On pourrait se dire que ce n'est pas grave et qu'on va mettre des KmerAffect différents pour les germlines complets et incomplets… sauf que non. Si on fait cela la partie commune des germlines complets et incomplets (souvent les gènes J) seraient considérés comme ambigus car appartenant à des germlines différents.Heuristique 2.0https://gitlab.inria.fr/vidjil/vidjil/-/issues/3591AIRR pour la plateforme web2021-01-15T09:19:20+01:00Mathieu GiraudAIRR pour la plateforme webPrend la suite de #3457.
Conversion/entrée via fuse.py #3673, natif depuis le .js #3967 ?
cc @flothoniPrend la suite de #3457.
Conversion/entrée via fuse.py #3673, natif depuis le .js #3967 ?
cc @flothonihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3593Moins de json dans Sample/CloneOutput ?2018-10-24T16:25:25+02:00Mathieu GiraudMoins de json dans Sample/CloneOutput ?Prend la suite de #3358.
Voir en particulier https://gitlab.inria.fr/vidjil/vidjil/issues/3358#note_124650 et https://gitlab.inria.fr/vidjil/vidjil/issues/3358#note_124819.Prend la suite de #3358.
Voir en particulier https://gitlab.inria.fr/vidjil/vidjil/issues/3358#note_124650 et https://gitlab.inria.fr/vidjil/vidjil/issues/3358#note_124819.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3627Checksum des fichiers uploadés et autres ?2021-11-19T11:06:57+01:00Mathieu GiraudChecksum des fichiers uploadés et autres ?Réflexion lancée par @mikael\-sRéflexion lancée par @mikael\-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3631Utiliser .gitlab/route-map.yml ?2018-11-26T07:48:45+01:00Mathieu GiraudUtiliser .gitlab/route-map.yml ?On pourrait avoir des liens à la "View app" plus flexible... mais pas sûr que cela nous serve, on n'a pas facilement une correspondance un fichier / une url à reviewer.
https://docs.gitlab.com/ce/ci/environments.html#go-directly-from-so...On pourrait avoir des liens à la "View app" plus flexible... mais pas sûr que cela nous serve, on n'a pas facilement une correspondance un fichier / une url à reviewer.
https://docs.gitlab.com/ce/ci/environments.html#go-directly-from-source-files-to-public-pages-on-the-environmenthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3683Avoir des champs search dans certaines dropdown2022-02-18T11:12:24+01:00Thonier FlorianAvoir des champs search dans certaines dropdownQuand je souhaite faire un `impersonnate`, il est toujours embêtant de devoir d'abords aller chercher dans la listes des users afin de récupérer l'id de celui-ci pour ensuite dérouler toute la liste.
On pourrait assez aisément trouver u...Quand je souhaite faire un `impersonnate`, il est toujours embêtant de devoir d'abords aller chercher dans la listes des users afin de récupérer l'id de celui-ci pour ensuite dérouler toute la liste.
On pourrait assez aisément trouver un système pour avoir un champs de `search` qui filtrerai dynamiquement les données de la liste. Je sais qu'il y a `bootstrap-select` qui fait ça très bien et très facilement. Mais je ne sais pas si ça fonctionne sans avoir la lib bootstrap. Il existe peut-être d'autres options du même genre.
cc @magiraud et @mikael\-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3686Bouton droit sur le client2019-01-17T15:54:50+01:00Mathieu GiraudBouton droit sur le clientQuelles possibilités aimerait-on avoir au bouton droit sur le ~client ?
Un menu contextuel avec des choses liées à la sélection d'un clone (ou de plusieurs clones) ?
cc @flothoniQuelles possibilités aimerait-on avoir au bouton droit sur le ~client ?
Un menu contextuel avec des choses liées à la sélection d'un clone (ou de plusieurs clones) ?
cc @flothonihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3721Mécanisme plus souple d'affichage dans getHtmlInfo de clone.js2020-12-04T14:13:40+01:00Mikaël SalsonMécanisme plus souple d'affichage dans getHtmlInfo de clone.jsDans #3717 on a un problème pour afficher les résultats de CloneDB dans l'ordre qu'on souhaiterait (et même, plus généralement, les afficher de manière peut-être plus souple).
Le code qui gère cela dans `getHtmlInfo` est :
```javascript...Dans #3717 on a un problème pour afficher les résultats de CloneDB dans l'ordre qu'on souhaiterait (et même, plus généralement, les afficher de manière peut-être plus souple).
Le code qui gère cela dans `getHtmlInfo` est :
```javascript
html += header("Results of "+other_infos[external_tool])
for (var item in this.seg[external_tool]) {
if (! (this.seg[external_tool][item] instanceof Object) &&
! (this.seg[external_tool][item] instanceof Array)) {
html += row_1(item, this.seg[external_tool][item])
}
}
```
On itère sur les propriétés de l'objet `this.seg[external_tool]`, et il n'y a pas de garantie sur l'ordre de l'itération.
Avant de faire le `for` on pourrait tester si l'objet possède une méthode `toHTML()` et le cas échéant y faire appel.
Dans ce cas pour les résultats de CloneDB on pourrait faire une méthode `toHTML` qui s'occupe de trier les résultats en fonction de leur sample sets.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3724Supprimer KMER_INDEX ?2019-02-12T22:26:33+01:00Mathieu GiraudSupprimer KMER_INDEX ?Faudra-t-il un jour supprimer `KMER_INDEX` ?
Attendre déjà de voir !78 et les conséquences. Proposition : même si on décide de supprimer, attendre minimum 6 mois, si ce n'est 12, après la release incluant !78.Faudra-t-il un jour supprimer `KMER_INDEX` ?
Attendre déjà de voir !78 et les conséquences. Proposition : même si on décide de supprimer, attendre minimum 6 mois, si ce n'est 12, après la release incluant !78.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3732Output files depuis client ?2019-02-13T10:49:20+01:00Mathieu GiraudOutput files depuis client ?De @flothoni : ajouter sous le menu "download output files", en pensant notamment à #1469.
On n'est pas sûr de l'utilité, à voir.De @flothoni : ajouter sous le menu "download output files", en pensant notamment à #1469.
On n'est pas sûr de l'utilité, à voir.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3734Réflexion sur chart.js2019-02-13T13:11:46+01:00Mathieu GiraudRéflexion sur chart.jsÉvoqué à l'occasion de stats#233/stats#235 : utilisera-t-on un jour chart.js à la place de d3.js dans vidjil ?
Pas du tout à l'ordre du jour pour l'instant, à discuter dans 6-12 mois en fonction de l'expérience qui aura été acquise sur ...Évoqué à l'occasion de stats#233/stats#235 : utilisera-t-on un jour chart.js à la place de d3.js dans vidjil ?
Pas du tout à l'ordre du jour pour l'instant, à discuter dans 6-12 mois en fonction de l'expérience qui aura été acquise sur ~"app\-stats".
cc @flothoni 2020-02-13