vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2017-05-23T14:00:09+02:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/2098<input> du menu "settings"2017-05-23T14:00:09+02:00Mathieu Giraud<input> du menu "settings"Vu avec @aurelBZH et @mikael-s suite à #1765 : les `<input>` du menu settings (au moins `size display` et `N regions`) sont un peu curieux :
- ils ne sont pas correctement initialisés;
- lorsqu'on clique sur le label, le modèle cha...Vu avec @aurelBZH et @mikael-s suite à #1765 : les `<input>` du menu settings (au moins `size display` et `N regions`) sont un peu curieux :
- ils ne sont pas correctement initialisés;
- lorsqu'on clique sur le label, le modèle change, mais pas les `<input>`.
En lien avec cela, est-ce que les boucles précédées de `var radio` dans `model.js` sont indispensables ? (Dupliquée un certain nombre de fois.)Web 2017.05Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1631Suppression des résultats et mise à jour des fichiers fused2017-05-23T14:01:52+02:00Vidjil TeamSuppression des résultats et mise à jour des fichiers fusedIl semble n'y avoir dans la DB qu'un seul fichier fuse par fichier de séquence par config. Si on lance un nouveau run, l'ancienne entrée dans la table fused_file est-elle supprimée ?
Le problème est le suivant : j'ai lancé le même run de...Il semble n'y avoir dans la DB qu'un seul fichier fuse par fichier de séquence par config. Si on lance un nouveau run, l'ancienne entrée dans la table fused_file est-elle supprimée ?
Le problème est le suivant : j'ai lancé le même run deux fois sur le patient 531 (sur dev.vidjil.org). Une fois le 18/06, une fois le 19/06. J'ai supprimé les résultats du 19/06 mais en DB il ne reste qu'un fichier fused, celui du 19 : https://dev.vidjil.org/vidjil/appadmin/select/db?query=db.fused_file.patient_id==531 et le lien pour consulter les résultats est donc celui du 19/06 : http://dev.vidjil.org/browser/index.html?patient=531&config=2
Or je l'ai supprimé et la liste des résultats, sur la page info du patient, ne me montre que le fichier de résultat du 18/06.
***
Je ne sais pas si c'est lié, mais :
http://rbx.vidjil.org/browser/?patient=612&config=25
-> 3 points, alors qu'il n'y a que.... 2 fichiers. Le troisième a été supprimé, et on n'a pas re-fusé ensuite.
***
Dans task.py l.47-57 :
## check fused_file
row2 = db( ( db.fused_file.config_id == id_config ) &
( db.fused_file.patient_id == id_patient )
).select()
if len(row2) > 0 : ## update
fuse_id = row2[0].id
else: ## create
fuse_id = db.fused_file.insert(patient_id = id_patient,
config_id = id_config)
Si un entrée fused existe déjà, elle est remplacée.
***
Ça pose la question de ce qu'on fait. Relance-t-on fuse à chaque action sur les fichiers de résultat ?
***
@Duez @mikael-s @magiraudWeb 2017.05Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1671Mettre à disposition les reads segmentés2017-05-23T15:36:21+02:00Vidjil TeamMettre à disposition les reads segmentésAvec certaines options, on peut avoir des fichiers intéressants à donner à l'utilisateur.
Évidemment `-u` / `-U`, mais potentiellement d'autres choses. Le log complet (euh, on l'a déjà ailleurs) par exemple.
De plus, d'autres program...Avec certaines options, on peut avoir des fichiers intéressants à donner à l'utilisateur.
Évidemment `-u` / `-U`, mais potentiellement d'autres choses. Le log complet (euh, on l'a déjà ailleurs) par exemple.
De plus, d'autres programmes ont sûrement des fichiers de sortie aussi intéressant.
Bref, trouver un mécanisme flexible pour transmettre $n$ fichiers à l'utilisateur.
Cela permet d'avoir toute la puissance de l'algo même si certains trucs ne sont pas exploités par le browser.
***
@nobodyWeb 2017.05Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2396Axes/colonne: recréer productif/IMGT2022-04-08T12:04:08+02:00Mathieu GiraudAxes/colonne: recréer productif/IMGTMettre les valeurs toIMGT dans des axes.
Voir aussi #2387
Vu avec @RyanHerb @hetoMettre les valeurs toIMGT dans des axes.
Voir aussi #2387
Vu avec @RyanHerb @hetoWeb 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/2011Ne pas lancer fuse quand le nombre de samples est trop important ?2017-05-22T17:09:00+02:00Vidjil TeamNe pas lancer fuse quand le nombre de samples est trop important ?Discussion cet après-midi, suite aux problèmes de place sur /mnt/result : Mathieu propose de ne pas lancer fuse lorsque le nombre de samples est supérieur à un nombre (p. ex. 20). Cela permet d'économiser de la place (et du temps CPU : u...Discussion cet après-midi, suite aux problèmes de place sur /mnt/result : Mathieu propose de ne pas lancer fuse lorsque le nombre de samples est supérieur à un nombre (p. ex. 20). Cela permet d'économiser de la place (et du temps CPU : un fuse sur 100 fichiers prend du temps).
De plus le fuse est lancé autant de fois qu'il appartient à de sample sets (donc au moins 2, non ?).
***
753e78c : On ne garde que les 16 premiers. C'est peut-être un peu brutal de faire cela au niveau de fuse.py, mais bon, cela renvoie tout de même un .vidjil pour une visualisation sur les premiers échantillons.
***
Ça me paraît un peu rapide. On n'a pas vraiment de solution pour « degrade gracefully ».
Garde les 16 premiers : est-ce que ça veut dire qu'on va fusionner toujours les mêmes sur le serveur s'il y a plus de 16 fichiers ? Comment on fait pour avoir les autres ? Le custom fuse ne permet pas de sauvegarder les analyses.
Côté serveur il faudrait avertir les utilisateurs qu'ils ne verront que 16 fichiers.
Il y a des utilisateurs avec plus de 16 fichiers, et ça peut faire sens : http://rbx.vidjil.org/browser/index.html?patient=790&config=25
Le problème est surtout avec les runs ou avec Kiel qui met plein d'échantillons différents dans un même patient. Les clones n'ont rien à voir d'un échantillon à l'autre et donc on se retrouve avec des dizaines de milliers de clones dans le fichier. Une autre solution peut être de réduire le top lorsque le nombre de fichier augmente.
***
D'autant plus que l'utilisateur qui nous pause problème à ce sujet n'utilise pas le fuse automatique mais plutôt le custom_fuse, non ? Ne pourrait-ton pas simplement avoir des configs qui fusent et d'autres non ?
***
Oui, effectivement ça serait une solution simple de proposer à Kiel une config sans fuse (on sait faire ça ?).
***
Je pense qu'il y a un bout de code à changer pour que le run accepte de ne pas fuse, mais oui je pense que c'est possible.
***
Oui, le coup de la config en plus, pourquoi pas !
Ou même... la config par défaut pourrit faire 16 fichiers au plus, et on a une config spéciale si quelques gens veulent avoir beaucoup de points.
> « degrade gracefully ».
> Garde les 16 premiers : est-ce que ça veut dire qu'on va fusionner toujours les mêmes sur le serveur s'il y a plus de 16 fichiers
C'est une bonne question. Mais que cela soit oui ou non, c'est un "degrade gracefully" si on montre 16 points... et si on dit qu'on a une autre config si vraiment on veut avoir d'autre chose.
Enfin, quitte à avoir une autre config, on pourrait aussi régler plus finement les paramètres du fuse (top et autres).
***
Ça me semble plus simple de demander à Kiel d'utiliser une config sans fuse, plutôt que de mettre en place le nécessaire pour avertir les utilisateurs que quand il y a plus de X fichiers ils ne verront pas tous les résultats et qu'ils doivent lancer avec une autre config (en espérant qu'il y ait une config correspondante avec un fuse infini).
Autre exemple, si j'uploade 20 fichiers dans mon run (ce qui n'est pas délirant), j'ai envie de savoir si j'ai de la conta entre mes 20 fichiers pas entre 16 fichiers plus ou moins choisis aléatoirement (dont l'ordre dépendra de l'upload).
En fait plus j'y réfléchis, plus j'ai l'impression qu'un top qui diminue progressivement avec le nombre de fichiers fournit une solution plus satisfaisante (et même pas besoin de demander à Kiel d'utiliser une autre config, on peut mais ça n'est pas indispensable).
***
> plutôt que de mettre en place le nécessaire pour avertir les utilisateurs
Je ne suis pas d'accord sur ce point, c'est très simple avec les notifications. Cela permet d'avoir, par défaut, un comportement correct pour la majorité des utilisateurs, et de les inciter à utiliser correctement les patients. (Et s'ils leur manquent quelque chose, c'est facile de rajouter une config pour un user, pour des bonnes raisons). Je préfère être sûr, dès maintenant, que tous les utilisateurs font ce qu'il faut (et traiter au cas par cas quelques cas comme Kiel) plutôt que de retomber dans quelques mois sur un autre utilisateur qui fera pareil.
> Autre exemple, si j'uploade 20 fichiers dans mon run (ce qui n'est pas délirant)
Oui, tout à fait ! 16 est un exemple, cela peut être 32 ou 42 :-) Dans tous les cas, au-delà de 8-10 simples, on devrait cacher sur le graphe (cf une autre tâche). Et encore plus si on fait des SampleSets : peut-être que quelqu'un aura un SampleSet de 100/200 patients correspondant à un truc particulier... (Mais lance-t-on les mêmes configs dans tous les SampleSet ? Ce n'est pas obligé.)
> En fait plus j'y réfléchis, plus j'ai l'impression qu'un top qui diminue progressivement avec le nombre de fichiers fournit une solution plus satisfaisante
Oui, c'est aussi possible, par exemple (1000 / #samples)... mais on a déjà du mal à expliquer ce qu'est notre top, alors là cela va être encore plus dur. Ou alors, 1000 tant que #samples < 8, puis ensuite cela descend.
***
Par défaut, met-on le -f dans fuse.py à 0 et on fait une config pour Kiel où le -f est à 1 (ou X) ?
***
Kiel vient d'ajouter une centaine de fichiers → –10 Go
***
@magiraud @RyanHerb @mikael-sWeb 2017.05Mikaël SalsonMikaël Salsonhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2141Donner accès aux fichiers produit par les logiciels RepSeq utilisés par Vidjil2017-05-22T18:24:36+02:00Mikaël SalsonDonner accès aux fichiers produit par les logiciels RepSeq utilisés par VidjilDiscuté avec @magiraud et @RyanHerb : on veut pouvoir donner accès aux différents fichiers produits par les softs que nous lançons (c'est-à-dire pour l'instant Vidjil et MiXCR). Il n'y a a priori rien à cacher dans ces fichiers.Discuté avec @magiraud et @RyanHerb : on veut pouvoir donner accès aux différents fichiers produits par les softs que nous lançons (c'est-à-dire pour l'instant Vidjil et MiXCR). Il n'y a a priori rien à cacher dans ces fichiers.Web 2017.05Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1763Factoriser les doublons entre list.js et segmenter.js2017-05-23T13:59:36+02:00Vidjil TeamFactoriser les doublons entre list.js et segmenter.js`.div_elem()` m'a l'air partiellement dupliqué entre `clone.js` et `segmenter.js`
Je m'en suis rendu compte en faisant... la même modif quasiment au même endroit pour `.getShortName()`
Y aurait-il moyen de factoriser les parties comm...`.div_elem()` m'a l'air partiellement dupliqué entre `clone.js` et `segmenter.js`
Je m'en suis rendu compte en faisant... la même modif quasiment au même endroit pour `.getShortName()`
Y aurait-il moyen de factoriser les parties communes ?
***
Durant les derniers jours, j'ai fait plusieurs fois des modifs en double à ces endroits... ce serait bien de factoriser, si possible.
***
ping
***
@nobodyWeb 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/1679Avoir un paramètre pour afficher dans la liste / dans le status des clones le...2017-04-14T17:16:50+02:00Vidjil TeamAvoir un paramètre pour afficher dans la liste / dans le status des clones le nom sans allèles ou pas- au moins quand il y en a un seul (*01) (gain de place, gain de lecture)
- quand il y en a plusieurs, option ? Que signifie alors 4//5 ? Par rapport au *01 ?
***
Trois réglages dans "settings > allele names"
- always
- when ...- au moins quand il y en a un seul (*01) (gain de place, gain de lecture)
- quand il y en a plusieurs, option ? Que signifie alors 4//5 ? Par rapport au *01 ?
***
Trois réglages dans "settings > allele names"
- always
- when not *01
- never
***
On les garde dans le exportFasta ? dans le rapport ?
***
@CyanaelWeb 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/2469Avoir un meilleur moyen de modifier les configurations dans les Docker2017-05-23T13:51:52+02:00Ryan HerbertAvoir un meilleur moyen de modifier les configurations dans les DockerActuellement, le meilleur moyen de mettre à jour un fichier de configuration dans nos containers Docker est de re-build l'image. Ce qui peut être problématique car tout changement ayant été effectué au sein du container sera perdu.
L'id...Actuellement, le meilleur moyen de mettre à jour un fichier de configuration dans nos containers Docker est de re-build l'image. Ce qui peut être problématique car tout changement ayant été effectué au sein du container sera perdu.
L'idéal selon moi serait de linker les fichiers vers l'hôte (les paquets Debian crééent des liens symboliques vers `/etc/vidjil`), donc de créer un dossier homologue de celui créé par les paquets.
D'autres applications utilisent des variables d'environnement, donc il s'agirait d'ajouter la valeur qu'on veut écraser dans le docker-compose.yml (comme nous avons déjà fait avec le mot de passe root de MySQL). Mais ça risque d'être volumineux et de nuire à la clareté du fichier.Web 2017.05Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2468Changelog du prochain déploiement web2020-01-17T10:22:09+01:00Mathieu GiraudChangelog du prochain déploiement webLe déploiement web %"Web 2017.05" est imminent (lundi 22, 16h30).
Selon vdj#369, ce serait bien de faire un changelog, si possible du point de vue de l'utilisateur.
J'ai mis un brouillon directement dans le résumé de la milestone %"Web...Le déploiement web %"Web 2017.05" est imminent (lundi 22, 16h30).
Selon vdj#369, ce serait bien de faire un changelog, si possible du point de vue de l'utilisateur.
J'ai mis un brouillon directement dans le résumé de la milestone %"Web 2017.05". À éditer / compléter d'ici la release. On le stockera aussi dans un fichier quelque part.
cc @RyanHerb @flothoniWeb 2017.05Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2453Supprimer les axes IMGT dans le scatterplot2017-05-16T18:23:52+02:00Mathieu GiraudSupprimer les axes IMGT dans le scatterplotWeb 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/2451Application des axes dans list.js et segmenter.js2017-05-19T09:32:22+02:00Ryan HerbertApplication des axes dans list.js et segmenter.jsConcernant la feature développée par @heto ( 8fff7e7a..f150ba3a )
Les nouveaux accesseurs créés dans clone.js `getAxisValue` et `getPrettyAxisValue` me dérrangent quelque peu au niveau de la performance.
Dans `list.js` on appelle `clon...Concernant la feature développée par @heto ( 8fff7e7a..f150ba3a )
Les nouveaux accesseurs créés dans clone.js `getAxisValue` et `getPrettyAxisValue` me dérrangent quelque peu au niveau de la performance.
Dans `list.js` on appelle `clone.getPrettyAxisValue(axis.value);` pour chaque clone du sample (=> ça fait beaucoup d'instances de Axes et encore plus d'instances des clasess *Axis ).
Dans `segmenter.js` on utilise également `clone.getPrettyAxisValue(axOpts[i])` dans la fonction `fillAxisBox`, alors qu'on a déjà une instance de la classe Axes, donc on se retrouve avec deux instances pour chaque clone sélectionné.Web 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/2428Export de la jonction AA en csv2017-05-22T14:08:26+02:00Mathieu GiraudExport de la jonction AA en csvDemande de Michael Svatoň ~"PRA-Prague" :
> Do you think, it would be possible, when exporting a csv report of clones, to include the AA junction sequence, when present?
cc @flothoniDemande de Michael Svatoň ~"PRA-Prague" :
> Do you think, it would be possible, when exporting a csv report of clones, to include the AA junction sequence, when present?
cc @flothoniWeb 2017.05Thonier FlorianThonier Florianhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2405Streamer directement les fichiers de résultats qu'on propose de télécharger2017-05-12T14:57:59+02:00Mikaël SalsonStreamer directement les fichiers de résultats qu'on propose de téléchargerDepuis #2141 on peut récupérer les fichiers de résultats produits par les logiciels.
Voici le bout de code qui se charge de l'envoyer à l'utilisateur :
```python
with open(filepath) as f:
file_content = f.rea...Depuis #2141 on peut récupérer les fichiers de résultats produits par les logiciels.
Voici le bout de code qui se charge de l'envoyer à l'utilisateur :
```python
with open(filepath) as f:
file_content = f.read()
return response.stream(StringIO.StringIO(file_content), attachment = True, filename = request.vars['filename'])
```
On stocke donc la totalité du fichier dans une variable `file_content`. Or les fichiers de sortie peuvent être assez gros (plusieurs centaines de Mo, on doit pouvoir en trouver de quelques Go). Il vaudrait mieux directement les streamer, sans avoir à les stocker dans une variable, pour éviter d'utiliser de la mémoire (potentiellement beaucoup).Web 2017.05Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2403jshint doit-il planter le build ?2017-05-23T13:56:20+02:00Mikaël Salsonjshint doit-il planter le build ?On en a discuté un peu avec @RyanHerb pendant l'audio. Depuis 25c2c31 le build ne plante plus si `jshint` détecte des erreurs. Est-ce souhaitable ? Le risque est qu'on passe à côté de problèmes ([potentiellement graves](e0c80df5)) car pa...On en a discuté un peu avec @RyanHerb pendant l'audio. Depuis 25c2c31 le build ne plante plus si `jshint` détecte des erreurs. Est-ce souhaitable ? Le risque est qu'on passe à côté de problèmes ([potentiellement graves](e0c80df5)) car pas vraiment avertis de régression.
Perso je suis pour. Ça risque de nous embêter un peu au début (et encore…) mais à la longue ça va nous permettre d'améliorer la qualité du code.Web 2017.05Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2390Désélection du clone lors d'un clic sur la taille dans le segmenteur2017-06-15T13:13:03+02:00Ghost UserDésélection du clone lors d'un clic sur la taille dans le segmenteurRemarqué il y a quelques temps ; c'est un comportement assez étrange mais manifestement volontaire puisque le code qui en est la cause est assez explicite :
```js
div_elem.getElementsByClassName("sizeBox")[0]
.onclick = function (...Remarqué il y a quelques temps ; c'est un comportement assez étrange mais manifestement volontaire puisque le code qui en est la cause est assez explicite :
```js
div_elem.getElementsByClassName("sizeBox")[0]
.onclick = function (e) {
clone.unselect();
}
```
et identique à celui de la `delBox` (la croix à gauche).
Deux questions donc :
- est-ce bien un fonctionnement prévu ?
- si oui, faut-il le maintenir sur toutes les `axisBox` qui vont se trouver à cet endroit ?Web 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/2386Deux clics nécessaires sur "Log in" dans Firefox2017-06-09T11:19:41+02:00Ghost UserDeux clics nécessaires sur "Log in" dans FirefoxLors de la connexion depuis la première page, je dois toujours cliquer deux fois sur le bouton Log in. La première fois il change simplement de forme et la page ne bouge pas.Lors de la connexion depuis la première page, je dois toujours cliquer deux fois sur le bouton Log in. La première fois il change simplement de forme et la page ne bouge pas.Web 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/2383Presser Ctrl et un chiffre change la vue sur la grille2017-05-22T17:30:21+02:00Mikaël SalsonPresser Ctrl et un chiffre change la vue sur la grilleLa grille possède des raccourcis pour changer de vue (avec les chiffres de 0 à 9, puis avec Shift puis les chiffres). Or, faire un Ctrl+Shift+0 (remettre le zoom à 100% sous FF) lance la vue correspondant à Shift+0 (t-SNE) ce qui est trè...La grille possède des raccourcis pour changer de vue (avec les chiffres de 0 à 9, puis avec Shift puis les chiffres). Or, faire un Ctrl+Shift+0 (remettre le zoom à 100% sous FF) lance la vue correspondant à Shift+0 (t-SNE) ce qui est très lourd (dans tous les sens du terme).
Bref si la touche Ctrl ou Alt est enfoncée on ne devrait pas lancer les raccourcis si ces touches ne sont pas attendues.Web 2017.05Mikaël SalsonMikaël Salsonhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2375Axes: soucis sur histogramme2017-05-05T10:28:42+02:00Mathieu GiraudAxes: soucis sur histogrammehttp://app.vidjil.org/browser/?patient=146&config=26
preset 4, comparer avec ce qui est sur dev depuis #1471.
cc @RyanHerbhttp://app.vidjil.org/browser/?patient=146&config=26
preset 4, comparer avec ce qui est sur dev depuis #1471.
cc @RyanHerbWeb 2017.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/2336Renommer « merge » ou « cluster »2019-04-08T14:13:20+02:00Mathieu GiraudRenommer « merge » ou « cluster »Nous avons deux mots différents pour la même chose : « merge » (le bouton favori de nos utilisateurs) et « cluster » (le menu, changé par #2335).
Ce serait bien d’uniformiser, et cela aiderait à comprendre que le menu fait des choses si...Nous avons deux mots différents pour la même chose : « merge » (le bouton favori de nos utilisateurs) et « cluster » (le menu, changé par #2335).
Ce serait bien d’uniformiser, et cela aiderait à comprendre que le menu fait des choses similaires au bouton.
- remplacer « merge » par « cluster » : cohérent, mais risque de perturber les utilisateurs. Il faudra une notification.
- remplacer « cluster » par « merge » : un peu plus bizarre « merge by J’ », mais on peut s’y faire. Mvouais.
cc @mikael-s @flothoni @RyanHerb Web 2017.05