vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2024-02-01T16:01:57+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/3381top par système dans vidjil-algo2024-02-01T16:01:57+01:00Mathieu Giraudtop par système dans vidjil-algoDepuis #1382.
Faire un `-z` (ping #3295) par système.Depuis #1382.
Faire un `-z` (ping #3295) par système.Algo 2022.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/4845Refactorer {germline,vidjil}.cpp, -V/(-D)/-J devrait créer un json .g et le p...2022-01-10T09:13:01+01:00Mathieu GiraudRefactorer {germline,vidjil}.cpp, -V/(-D)/-J devrait créer un json .g et le passer à Germline(...)Vu en faisant !1004.
Nous avons pour les germlines plusieurs moyens d'initialisation
- l'un par `Germline(... json json_recom ...);` (tout le `.g` passe par là)
- les autres par des constructeurs prenant directement en compte les -V/-D...Vu en faisant !1004.
Nous avons pour les germlines plusieurs moyens d'initialisation
- l'un par `Germline(... json json_recom ...);` (tout le `.g` passe par là)
- les autres par des constructeurs prenant directement en compte les -V/-D/-J et autres (historique, -V/-D/-J...)
Les deux appellent à un moment `init(...)` qui fait des choses. Au final il y a des doublons... et peut-être des micros-différences qui font que faire -V/-D/-J en ligne de commande n'est pas exactement équivalent à -g.
Probablement retirer la deuxième option, et, comme dans !1004, passer tout par la première option en reconstruisant un json depuis vidjil.cpp ? Cela permettrait de rapprocher les deux modes, faciliterait #4844, et probablement simplifierait l'ensemble.Algo 2022.01Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/4455Fuse en python32024-02-07T19:15:01+01:00Mathieu GiraudFuse en python3Depuis #1345Depuis #1345https://gitlab.inria.fr/vidjil/vidjil/-/issues/3644Refactor normalisation2018-12-28T08:13:43+01:00Mathieu GiraudRefactor normalisationTalked with @mikael\-s et @flothoni
Proposed solution:
- model.js: normalize() looks directly to `m.norm`
- clone.js: a new `getNormalizedReads()` *always* calls `m.normalize()`
- clone.js: all `get*Size()` functions call `getNormalize...Talked with @mikael\-s et @flothoni
Proposed solution:
- model.js: normalize() looks directly to `m.norm`
- clone.js: a new `getNormalizedReads()` *always* calls `m.normalize()`
- clone.js: all `get*Size()` functions call `getNormalizedReads()`
Thonier FlorianThonier Florianhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3483Extraire/tester isProductive/referencePhase dans clone.js2018-09-27T18:14:50+02:00Mathieu GiraudExtraire/tester isProductive/referencePhase dans clone.jshttps://gitlab.inria.fr/vidjil/vidjil/merge_requests/232/diffs#note_102980https://gitlab.inria.fr/vidjil/vidjil/merge_requests/232/diffs#note_102980https://gitlab.inria.fr/vidjil/vidjil/-/issues/3380Mettre un objet "Clone" dans le cpp2018-12-04T12:33:28+01:00Mathieu GiraudMettre un objet "Clone" dans le cpp@mikael\-s : "il manque un objet clone... c'est une fenêtre plus..." :
- representative
- infos de segmentation
- warnings
- méthodes d'affichage / d'export
But: diminuer la taille de `vidjil.cpp`@mikael\-s : "il manque un objet clone... c'est une fenêtre plus..." :
- representative
- infos de segmentation
- warnings
- méthodes d'affichage / d'export
But: diminuer la taille de `vidjil.cpp`https://gitlab.inria.fr/vidjil/vidjil/-/issues/3358Objets 'Output', où mettre la préparation complète du json_clone ?2018-11-21T16:15:35+01:00Mathieu GiraudObjets 'Output', où mettre la préparation complète du json_clone ?@mikael\-s, à propos de cecaed9c01, dans https://gitlab.inria.fr/vidjil/vidjil/merge_requests/242#note_104775 :
> Ne pourrait-on pas le mettre ailleurs ? J'aimerais vraiment que le moins de traitement possible soit fait dans `vidjil.cp...@mikael\-s, à propos de cecaed9c01, dans https://gitlab.inria.fr/vidjil/vidjil/merge_requests/242#note_104775 :
> Ne pourrait-on pas le mettre ailleurs ? J'aimerais vraiment que le moins de traitement possible soit fait dans `vidjil.cpp`.
> Faisable dans `segment.cpp` ?
>
> On pourrait aussi avoir un tableau constant qui décrive la recombinaison (dans `segment.cpp` n'a-t-on pas accès à la valeur de N ?), ce qui permettrait aussi d'en ajouter facilement.
>
> Et si on pousse le truc un peu : ces séquences spéciales pourrait même être décrites dans le json du germline.
La même question pourrait se poser pour W51, W53... et d'autres choses qui sont faits sur `json_clone`. Idéalement
tout devrait être dans segment.cpp ou ailleurs, à voir si c'est faisable car beaucoup de choses dépendent de où on en est par rapport aux options `-x`/`-y`/`-z` et autres.Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3293Rationnaliser la déclaration des graines (explicites, constantes, par défaut)2021-04-28T12:10:42+02:00Mathieu GiraudRationnaliser la déclaration des graines (explicites, constantes, par défaut)On devrait pouvoir utiliser `s13` comme `##-##--#` à la fois en ligne de commande et dans un `.g`.
On pourrait aussi avoir une seed nommée `default`.
`seedMap` est pour l'instant caché au fond de `build_from_json()` : le mettre ailleurs...On devrait pouvoir utiliser `s13` comme `##-##--#` à la fois en ligne de commande et dans un `.g`.
On pourrait aussi avoir une seed nommée `default`.
`seedMap` est pour l'instant caché au fond de `build_from_json()` : le mettre ailleurs, et faire la conversion dans `Germline`.
De plus, l'aide de `-s` devrait pouvoir expliciter l'association en affichant ces valeurs de `seedMap`.
(Et cela aiderait peut-être #3292.)Algo 2018.08Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3283Refactorer filter.cpp en une classe Filter2018-07-04T13:41:56+02:00Mathieu GiraudRefactorer filter.cpp en une classe FilterDepuis #3259 :
> Je trouve que la seconde solution ferait dépendre le filtrage plus fortement de l'implémentation utilisée pour l'automate, ce qui peut être dommage si on change de structure à un moment donné.
C'est donc plutôt la pre...Depuis #3259 :
> Je trouve que la seconde solution ferait dépendre le filtrage plus fortement de l'implémentation utilisée pour l'automate, ce qui peut être dommage si on change de structure à un moment donné.
C'est donc plutôt la première solution qui est à privilégier : une classe `Filter` qui
> contiendrait un automate, des statistiques sur ce qui est filtré et le `Germline` déclarerait donc un objet de cette classe plutôt qu'un automate.Algo 2018.08Cyprien BoréeCyprien Boréehttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3282Factoriser le code dans filterBioReaderWithACAutomaton2018-07-04T13:41:56+02:00Mikaël SalsonFactoriser le code dans filterBioReaderWithACAutomatonLe `if` est un cas particulier de ce qui se passe dans le `else`. Ne pourrait-on pas juste avoir la partie qui est dans le else ?Le `if` est un cas particulier de ce qui se passe dans le `else`. Ne pourrait-on pas juste avoir la partie qui est dans le else ?Cyprien BoréeCyprien Boréehttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3272Merge du travail de Cyprien et historique du git2018-06-13T11:51:58+02:00Mathieu GiraudMerge du travail de Cyprien et historique du git(Mis volontairement dans une issue et non pas une MR, car les branches vont changer)
Dans la perspective d'un merge prochain du travail de @boreec, j'ai regardé systématiquement les différences entre `dev` et `feature-a/920-optimize-fin...(Mis volontairement dans une issue et non pas une MR, car les branches vont changer)
Dans la perspective d'un merge prochain du travail de @boreec, j'ai regardé systématiquement les différences entre `dev` et `feature-a/920-optimize-fine-segmenter` sur les "anciens" fichiers (ce qui au passage a levé #3270, #3271).
Je me demande maintenant si on ne devrait pas simplifier l'historique pour le futur.
- Ce qui me gène le plus est a7d99993 qui touche à `align_against_collection`... alors qu'on final il n'y a absolument rien de différent dans `align_against_collection`. Je tiens à rebaser / enlever cela (je peux m'en charger).
- Plus généralement, les premières semaines il y a eu beaucoup de déplacements dans tous les sens, des fonctions essayées puis supprimées (c'est normal @boreec, cela nous arrive aussi quand on fait des choses de cet ampleur), et c'était le début et les commits n'étaient pas toujours très atomiques. Bref je me demande si on pourrait squasher (et faire quelques commits sur les différents fichiers) jusqu'à par exemple fin avril. Je peux également m'en charger si ceal vous convient.merge-filterMathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3270Utiliser NO_LIMIT_VALUE plutôt que UINT_MAX dans filter.h/filter.cpp2018-06-13T15:45:33+02:00Mathieu GiraudUtiliser NO_LIMIT_VALUE plutôt que UINT_MAX dans filter.h/filter.cppUn détail : nous n'avons pas l'habitude d'utiliser des comparaisons avec `UINT_MAX`, mais plutôt de faire un test explicite avec `NO_LIMIT_VALUE` (voir les occurrences de `NO_LIMIT_VALUE` dans `core/*.cpp`).
(Cela simplifiera en plus #3...Un détail : nous n'avons pas l'habitude d'utiliser des comparaisons avec `UINT_MAX`, mais plutôt de faire un test explicite avec `NO_LIMIT_VALUE` (voir les occurrences de `NO_LIMIT_VALUE` dans `core/*.cpp`).
(Cela simplifiera en plus #3264.)merge-filterCyprien BoréeCyprien Boréehttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3188Extraire buildACAutomatonToFilterBioReader et filterBioReaderWithACAutomaton ...2018-06-12T12:36:42+02:00Mathieu GiraudExtraire buildACAutomatonToFilterBioReader et filterBioReaderWithACAutomaton vers un nouveau filter.cpp(Ainsi que `filter.h`, et séparer aussi pour les tests.)
Suite à #3080.(Ainsi que `filter.h`, et séparer aussi pour les tests.)
Suite à #3080.Cyprien BoréeCyprien Boréehttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3172Extraction d'info depuis .vidjil pour contrôleur stats2018-09-14T12:08:24+02:00Mathieu GiraudExtraction d'info depuis .vidjil pour contrôleur statsUn point bloquant pour #3171.
On pourrait faire du parse ad-hoc d'infos... comme ce qui a été fait par @flothoni récemment ou un vieux contrôleur `patients/stats` il y a longtemps.
Mais, mieux, faire une librairie python pour `.vidjil`...Un point bloquant pour #3171.
On pourrait faire du parse ad-hoc d'infos... comme ce qui a été fait par @flothoni récemment ou un vieux contrôleur `patients/stats` il y a longtemps.
Mais, mieux, faire une librairie python pour `.vidjil` + extraction d'info #2240 #1029...
Cette tâche est donc probablement une sous-tâche de #2240 : avoir un moyen de récupérer les infos qu'on veut.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3116should: tests en cas de refactor2018-04-20T17:52:32+02:00Mathieu Giraudshould: tests en cas de refactorSi on se lance dans un gros ~"dev-refactor" voire une réécriture, un bon test sera évidemment que les `should` actuels passent et donnent la même sortie, que ce soit en `.tap` ou en `.log`.
- entrée: ne pas se priver de réfléchir à com...Si on se lance dans un gros ~"dev-refactor" voire une réécriture, un bon test sera évidemment que les `should` actuels passent et donnent la même sortie, que ce soit en `.tap` ou en `.log`.
- entrée: ne pas se priver de réfléchir à comment améliorer le format #3106 #3109... mais maintenir, au moins via options, une compatibilité avec le format actuel
- sortie: même si on met en place quelque chose pour #3107, sortir déjà du TAP...https://gitlab.inria.fr/vidjil/vidjil/-/issues/2771Le découpage des méthodes "update" est-il judicieux ?2017-11-08T09:47:11+01:00Ryan HerbertLe découpage des méthodes "update" est-il judicieux ?Les vues JS ont plusieurs méthodes de mise à jour:
- `update`
- `updateElem`
- `updateStyle`
- `updateElemStyle`
Ce découpage peut avoir beaucoup de sens pour optimiser l'application, et réduire le nombre d'opérations inutiles. Comm...Les vues JS ont plusieurs méthodes de mise à jour:
- `update`
- `updateElem`
- `updateStyle`
- `updateElemStyle`
Ce découpage peut avoir beaucoup de sens pour optimiser l'application, et réduire le nombre d'opérations inutiles. Comme par exemple, la sélection d'un clone n'affecte que son esthétique, donc on applique `updateElemStyle` pour indiquer aux vues de modifier le style du clone sélectionné.
En revanche, dans certaines situations, celà peut poser des problèmes. Je pense notamment à url.js, qui a besoin de connaître les changements de sélection de clones, ainsi que d'autres changements non-cosmetiques. Appliquer le même paradigme de `update` et `updateElemStyle`... pose un soucis de duplication des tâches. D'une part les deux méthodes seront les mêmes, mais appliquées à différents types de paramètres, et d'autre part on se retrouve avec une duplication de URL.pushState (problème similaire à #2438 ).https://gitlab.inria.fr/vidjil/vidjil/-/issues/2746Refactoriser views/{patient,run,sample_set}/index.html dans une unique vue2018-03-21T19:04:39+01:00Mathieu GiraudRefactoriser views/{patient,run,sample_set}/index.html dans une unique vueLa vue `index` des trois types de `sample_set` est très similaire. Idéalement, on aimerait n'avoir que celle de `sample_set`, avec des colonnes pouvant changer suivant le type.
Par contre, il parait normal (quoique) qu'il y ait pour cha...La vue `index` des trois types de `sample_set` est très similaire. Idéalement, on aimerait n'avoir que celle de `sample_set`, avec des colonnes pouvant changer suivant le type.
Par contre, il parait normal (quoique) qu'il y ait pour chaque type de `sample_set` un `add` / `edit` / `delete` / `confirm`, ces vues sont plus restreintes.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2732Traitement des options : refactorer vidjil.cpp avec CLI112018-06-27T16:54:12+02:00Mathieu GiraudTraitement des options : refactorer vidjil.cpp avec CLI11Séparé de #926.
Demande déjà à mieux évaluer CLI (sur `align`, ou d'autres choses) en utilisant des choses plus complexes comme les groupes.Séparé de #926.
Demande déjà à mieux évaluer CLI (sur `align`, ou d'autres choses) en utilisant des choses plus complexes comme les groupes.Algo 2018.08https://gitlab.inria.fr/vidjil/vidjil/-/issues/2685mettre des print() dans task.py2017-11-18T12:24:04+01:00Mathieu Giraudmettre des print() dans task.pycc @RyanHerbcc @RyanHerbWeb 2017.11https://gitlab.inria.fr/vidjil/vidjil/-/issues/2669Normalisation : renommer les variables A et B2017-12-08T10:03:35+01:00Mikaël SalsonNormalisation : renommer les variables A et BSuggéré par @RyanHerb : renommer les variables `model.normalization.A` et `model.normalization.B` utilisées pour la normalisation pour quelque chose de plus parlant.Suggéré par @RyanHerb : renommer les variables `model.normalization.A` et `model.normalization.B` utilisées pour la normalisation pour quelque chose de plus parlant.