vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2018-10-24T16:25:25+02:00https://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/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/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/3554bouton dans l'interface pour relancer le swheduler web2py2021-03-05T15:51:00+01:00Thonier Florianbouton dans l'interface pour relancer le swheduler web2pyUne petite question dont je ne suis pas certain de la pertinence: serait-il envisageable de rajouter un bouton pour relancer automatiquement la commande qui relance le scheduler ?
Techniquement, je présume que ce n'est pas si compliqué...Une petite question dont je ne suis pas certain de la pertinence: serait-il envisageable de rajouter un bouton pour relancer automatiquement la commande qui relance le scheduler ?
Techniquement, je présume que ce n'est pas si compliqué que ça. Cependant, ça risque de pérenniser un problème dont on ne connaît toujours pas l'origine (il me semble).
@magiraud @mikael\-s @RyanHerbhttps://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/3542Clusteriser sur la CDR3 en acides aminées2020-09-25T10:03:31+02:00Thonier FlorianClusteriser sur la CDR3 en acides aminéesUne remarque faite par @Anne aujourd'hui. Arrest permet de faire un afichage des clones par leurs acides aminées, et donc quand il le fait, il clusterise implicitement toutes les séquences qui vont présenter la même seqeunce d'acides ami...Une remarque faite par @Anne aujourd'hui. Arrest permet de faire un afichage des clones par leurs acides aminées, et donc quand il le fait, il clusterise implicitement toutes les séquences qui vont présenter la même seqeunce d'acides aminés.
Je ne sais pas si c'est souhaitable, mais je présume qu'il y a des cas ou ce serait pratique pour l'utilisateur (plus côté recherche je pense).Mikaël SalsonMikaël Salsonhttps://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/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/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/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/3441Avoir un raccourci pour ouvrir un seul sample à la fois2021-11-22T17:30:45+01:00Thonier FlorianAvoir un raccourci pour ouvrir un seul sample à la foisSuite à #2726; une des solutions envisageable serait de rajouter une icône de raccourci sur la liste des samples et qui permettrai de n'ouvrir qu'un seul sample.
Cette solution serait plus rapide que d'avoir à ouvrir le menu compare sa...Suite à #2726; une des solutions envisageable serait de rajouter une icône de raccourci sur la liste des samples et qui permettrai de n'ouvrir qu'un seul sample.
Cette solution serait plus rapide que d'avoir à ouvrir le menu compare sample. De plus, maintenant que l'on permet de voir deux graphiques en même temps lorsqu'un seul sample est ouvert, il s'agirait là d'une solution pour avoir accès à cette vue simplement.
Risque: Avoir une icône qui sera très peu utilisée (la demande n'est pas forcement très forte).
De plus, il faudrait trouver une icône correcte.https://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/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/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/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/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/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/3304Calcul de la séquence consensus : changer le choix des reads utilisés2020-12-11T13:15:02+01:00Mikaël SalsonCalcul de la séquence consensus : changer le choix des reads utilisésPour des questions d'optimisation tous les reads ne sont pas stockés et nous n'utilisons qu'un échantillon des reads d'un clone (pour les gros clones) afin de calculer le consensus. Ce choix est géré dans la classe `ReadQualityScore` du ...Pour des questions d'optimisation tous les reads ne sont pas stockés et nous n'utilisons qu'un échantillon des reads d'un clone (pour les gros clones) afin de calculer le consensus. Ce choix est géré dans la classe `ReadQualityScore` du fichier `read_score.cpp` : on se base à la fois sur le dernier percentile de la qualité du read et sur la longueur du read. Les reads les plus longs et de meilleure qualité sont donc choisis.
On va donc biaiser le choix en faveur des séquences les plus longues. Ce qui est à la fois souhaitable : pour des raisons de qualité de séquençage on pourrait se retrouver avec uniquement une faible portion des reads du clone qui sont de pleine longueur (si on a beaucoup d'erreurs sur R2 le merge va échouer par exemple). Et c'est à la fois non souhaitable car on va privilégier les séquences les plus longues qui ne sont pas forcément représentatives du clone (cf. #3290).
Une solution serait de se contenter d'un échantillon aléatoire des reads de meilleure qualité (ce qui est plus représentatif du clone). Cela pose la question de comment constituer cet échantillon aléatoire au fur et à mesure sans connaitre a priori la taille du clone et sans biaiser en faveur des premiers ou des derniers reads.
Si cette solution donne une séquence consensus dont la longueur n'est pas satisfaisante on peut ensuite passer à une autre stratégie privilégiant les longueurs les plus élevées.
Mais je n'arrive pas à voir une solution unique qui donnerait le résultat attendu dans tous les cas.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3301Allèles non *01 (non-génome de référence) et up-downstream2018-07-20T15:38:51+02:00Mathieu GiraudAllèles non *01 (non-génome de référence) et up-downstreamSpécialisation de #3009 pour les allèles `*02` et autres
@mikael\-s, https://gitlab.inria.fr/vidjil/vidjil/merge_requests/148#note_99385:
> En fait on ne sait pas récupérer la séquence aval de IGHJ6*02 car c'est un allèle
Décide-t-on...Spécialisation de #3009 pour les allèles `*02` et autres
@mikael\-s, https://gitlab.inria.fr/vidjil/vidjil/merge_requests/148#note_99385:
> En fait on ne sait pas récupérer la séquence aval de IGHJ6*02 car c'est un allèle
Décide-t-on de
- prendre la même séquence aval que le génome (et que `*01`) ? Pourquoi pas, mais... il peut y avoir aussi des mutations dans les séquences aval, non connues dans le génome de référence et cachées ailleurs
- ne pas prendre de séquence aval pour `*02` ? Cela crée une dissymétrie, mais, d'un autre côté, si on a beaucoup d'aval qui colle parfaitement avec `*01`, c'est difficile de dire qu'on devrait coller à `*02` ?https://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é.