vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2023-03-01T15:51:36+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/2692Suppression de tag, nettoyage régulier2023-03-01T15:51:36+01:00Mathieu GiraudSuppression de tag, nettoyage régulier@Cyanael : quelqu'un rentre un tag avec une faute, corrige...
On ne veut pas supprimer automatiquement les tags, mais par conrre fairer de temps en temps du nettoyage en regardant ceux qui n'ont pas d'occurences.@Cyanael : quelqu'un rentre un tag avec une faute, corrige...
On ne veut pas supprimer automatiquement les tags, mais par conrre fairer de temps en temps du nettoyage en regardant ceux qui n'ont pas d'occurences.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2690UnicodeError sur scheduler/worker2017-10-09T17:32:59+02:00Mathieu GiraudUnicodeError sur scheduler/workerCause de vdj#483.
- il y a eu des soucis `UnicodeError` dans `task.py` / scheduler
- @RyanHerb a envie de reproduire pour comprendre
/assign @RyanHerb Cause de vdj#483.
- il y a eu des soucis `UnicodeError` dans `task.py` / scheduler
- @RyanHerb a envie de reproduire pour comprendre
/assign @RyanHerb https://gitlab.inria.fr/vidjil/vidjil/-/issues/2689Autocomplétion sur un nouveau tag2017-10-18T17:23:51+02:00Mathieu GiraudAutocomplétion sur un nouveau tagJ'ai l'impression que l'autocomplétion ne fonctionne pas immédiatement : si je crée `#foo`, je vais sur un autre set, `#foo` n'est pas encore autocomplété. Si je recharge l'appli, tout fonctionne.J'ai l'impression que l'autocomplétion ne fonctionne pas immédiatement : si je crée `#foo`, je vais sur un autre set, `#foo` n'est pas encore autocomplété. Si je recharge l'appli, tout fonctionne.Ryan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2687Style du tag lorsqu'il n'y a pas de lien2017-10-06T08:00:51+02:00Mathieu GiraudStyle du tag lorsqu'il n'y a pas de lienCe serait intéressant de styler légèrement les tags même quand il ne sont pas un lien.
`a.tag-link` est mis quand il n'y a pas de lien. Serait-ce possible de mettre aussi un `span.tag-link` (ou un `span.tag-nolink`) aux endroits sans li...Ce serait intéressant de styler légèrement les tags même quand il ne sont pas un lien.
`a.tag-link` est mis quand il n'y a pas de lien. Serait-ce possible de mettre aussi un `span.tag-link` (ou un `span.tag-nolink`) aux endroits sans lien, typiquement dans les boîtes d'info dans le client ?
(Pas urgent, pas pour ce matin...)
cc @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2675Documenter les branches dans dev.org2023-03-01T16:18:46+01:00Mathieu GiraudDocumenter les branches dans dev.orgNous devrions documenter dans `dev.org` la signification de nos différentes branches, qu'elles soient déjà traitées par ~"dev-ci" ou non.
(Même si certains points dépend du ~"server-hosting", ce sont clairement des points qui dépendent ...Nous devrions documenter dans `dev.org` la signification de nos différentes branches, qu'elles soient déjà traitées par ~"dev-ci" ou non.
(Même si certains points dépend du ~"server-hosting", ce sont clairement des points qui dépendent du projet `vidjil`.)https://gitlab.inria.fr/vidjil/vidjil/-/issues/2666e-valeur de SEG_METHOD_MAX1U et index_load de AFFECT_UNKNOWN2017-09-25T10:31:56+02:00Mathieu Giraude-valeur de SEG_METHOD_MAX1U et index_load de AFFECT_UNKNOWNLe test de `chimera-fake-half.should-get` qui ne passe pas dans !79 (alors que !79 est bon dans l'esprit) révèle que les e-valeurs de `SEG_METHOD_MAX1U` sont mal calculées (et donc on en a très peu souvent).
Séquence :
```
>TRGV1*01--cg...Le test de `chimera-fake-half.should-get` qui ne passe pas dans !79 (alors que !79 est bon dans l'esprit) révèle que les e-valeurs de `SEG_METHOD_MAX1U` sont mal calculées (et donc on en a très peu souvent).
Séquence :
```
>TRGV1*01--cgcg
tcttccaacttggaagggagaacgaagtcagtcaccaggctgactgggtcatctgctgaa
cgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcg
```
Affects :
```
# 6 - VJ 1 59 88 100 seed IGK SEG_- 2.526646e+01 2.452207e+01/7.443986e-01 _ _-k ? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _+K _ _ _ _ _ _ _ _ _ _ _ _-K-K-K-K _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
# 49 ! seed TRG UNSEG ambiguous 9.600000e+01 2.122587e-92/9.600000e+01+G+G+G ?+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
```
IGK par chance (avec !79, et encore, e-value pourrie), mais ici c'est clairement un MAX1U qui doit passer (et plus que SEG_METHOD_ONE #1724).
Voir aussi #2655.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2663statement inaccessible database.js2017-09-26T15:53:23+02:00Thonier Florianstatement inaccessible database.jsDans le fichier `database.js` (branch dev, ligne 431):
```
return res
if (this.url.length == 1) $("#db_back").addClass("inactive");
```
La second ligne n'est pas accessible (obvious).
Apparait lors d'un click sur un tag d'un fichi...Dans le fichier `database.js` (branch dev, ligne 431):
```
return res
if (this.url.length == 1) $("#db_back").addClass("inactive");
```
La second ligne n'est pas accessible (obvious).
Apparait lors d'un click sur un tag d'un fichier
@RyanHerbRyan HerbertRyan Herberthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2660IgBlast : pas la même chose en direct ?2019-01-10T15:21:22+01:00Mathieu GiraudIgBlast : pas la même chose en direct ?Naïs ~"TOU-Toulouse" fait des copier/coller de ses séquences vers IgBlast, car on n'a pas la même chose que par le lien.
À explorer.
cc @flothoniNaïs ~"TOU-Toulouse" fait des copier/coller de ses séquences vers IgBlast, car on n'a pas la même chose que par le lien.
À explorer.
cc @flothonihttps://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/2657SEG_METHOD_34_NOT52018-07-13T16:24:48+02:00Mathieu GiraudSEG_METHOD_34_NOT5Une possibilité (pas forcément souhaitable) pour #2655 : en cas de VD, regarder derrière s'il y a des k-mers J, et faire le calcul qu'il faut pour dire qu'il ne devrait pas en avoir.Une possibilité (pas forcément souhaitable) pour #2655 : en cas de VD, regarder derrière s'il y a des k-mers J, et faire le calcul qu'il faut pour dire qu'il ne devrait pas en avoir.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2656Central region : couper en deux pour ne pas pénaliser deux fois2019-03-14T16:17:37+01:00Mathieu GiraudCentral region : couper en deux pour ne pas pénaliser deux foisDans 2e23e720, j'avais écrit :
> A more exact option could have been to use something like
> (first_pos_max + last_pos_max / 2) + getS()/2, but it would raise symmetry problems.
> The selected option should anyway improve the estimation...Dans 2e23e720, j'avais écrit :
> A more exact option could have been to use something like
> (first_pos_max + last_pos_max / 2) + getS()/2, but it would raise symmetry problems.
> The selected option should anyway improve the estimation in most of the cases.
Je pense que ce qui me chiffonait pour la symétrie, c'était qu'doit être invariant aux reads rev-compés. Prendre la position (first_pos_max + last_pos_max) / 2 n'est pas reproductible. Mais il suffit de dépasser d'un nucléotide quand c'est impair, et plus de soucis. On comptera dans ce cas une position deux fois, mais ce sera mieux que toute la zone centrale comptée deux fois.
Voir aussi #1878.Algo -- ImportantMathieu GiraudMathieu Giraudhttps://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/2654Heuristique KmerSegmenter détectant directement VDJ (SEG_METHOD_5K43)2018-07-16T07:30:18+02:00Mathieu GiraudHeuristique KmerSegmenter détectant directement VDJ (SEG_METHOD_5K43)On en avait parlé il y a des années, je n'en retrouve pas trace.
Utiliité d'un affectanalyzer permettant aussi de détecter le 4 au milieu du 5 et 3 ?
Peut-être pas impossible de rester linéaire, en sommant sur un espace à deux dimension...On en avait parlé il y a des années, je n'en retrouve pas trace.
Utiliité d'un affectanalyzer permettant aussi de détecter le 4 au milieu du 5 et 3 ?
Peut-être pas impossible de rester linéaire, en sommant sur un espace à deux dimension. Mais bon, utilité ? ~"wont-fix" ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2653SEG_METHOD_ONE: comment comparer aux autres SEG_METHOD_* ?2023-10-26T15:49:32+02:00Mathieu GiraudSEG_METHOD_ONE: comment comparer aux autres SEG_METHOD_* ?https://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/2648Calcul efficace d'un minimizer : par Aho ?2017-09-18T11:07:46+02:00Mathieu GiraudCalcul efficace d'un minimizer : par Aho ?Ce qui est dans !76 pour #2643 fonctionne : `kaa.minimize(const KmerAffect &affect, int margin, int width)` retourne la position (hors de `margin` sur les bords) tel que le k-mer de longueur `width` soit minimal (maximal en fait). Idéale...Ce qui est dans !76 pour #2643 fonctionne : `kaa.minimize(const KmerAffect &affect, int margin, int width)` retourne la position (hors de `margin` sur les bords) tel que le k-mer de longueur `width` soit minimal (maximal en fait). Idéalement on n'aimerait pas avoir de paramètre `width`, juste `minimize(const KmerAffect &affect, int margin)`.
Mais le code actuel est trivial, c'est du `O(n * width)`, et on utilise `tools.dna_to_int` (qui ne sert pas ailleurs, c'était une tentative il y a longtemps..., ~"dev-dead-code" ?). Si on se met à faire cela pour chaque read reconnue par SEG_METHOD_ONE (par exemple des CDs dans du RNA-seq #1801), c'est perdu.
Il y a sûrement des moyens de faire `O(n)`... voir #915 ?
@mikael-s, ne serait-ce pas possible, de coder simplement et efficacement `minimize`? Par exemple l'état final avec `affect` telle que son *adresse mémoire* soit minimale ? Si on joue avec cela, serait-ce reproductible d'un lancer à l'autre ? Si non reproductible, stocker un autre `int` dans chaque état d'Aho sur lequel on trie ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2647Tester que les germlines ne contiennent bien que du Fasta2023-03-02T10:25:00+01:00Mathieu GiraudTester que les germlines ne contiennent bien que du FastaPour tenter d'éviter des soucis comme #2598 et #2646, ce serait opportun de tester si les séquences dans `germline/*/*.fa` n'ont que du Fasta (éventuellement gappé et/ou commenté).Pour tenter d'éviter des soucis comme #2598 et #2646, ce serait opportun de tester si les séquences dans `germline/*/*.fa` n'ont que du Fasta (éventuellement gappé et/ou commenté).https://gitlab.inria.fr/vidjil/vidjil/-/issues/2645Base de données de germlines HGNC/NCBI2018-07-13T14:25:32+02:00Mathieu GiraudBase de données de germlines HGNC/NCBIVia HGNC/HUGO (qu'on utilise pour vidjil#1801 dans `get-CD.py`, c6cb81d) on accède librement à des données en provenance de ~"repseq-IMGT" avec les noms des gènes (mais pas les allèles).
- http://www.genenames.org/cgi-bin/genefamilies/s...Via HGNC/HUGO (qu'on utilise pour vidjil#1801 dans `get-CD.py`, c6cb81d) on accède librement à des données en provenance de ~"repseq-IMGT" avec les noms des gènes (mais pas les allèles).
- http://www.genenames.org/cgi-bin/genefamilies/set/348
- http://www.genenames.org/cgi-bin/genefamilies/set/370
On pourrait donc créer et distribuer une base de données de germlines #2639 via le NCBI qui correspondrait aux gènes officiels du HGNC.
Voir vdj#456.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2638Déployer manuellement l'algo (feature-a) sur dev2018-07-10T11:17:52+02:00Mathieu GiraudDéployer manuellement l'algo (feature-a) sur devDiscussion lors de l'audio : même sans faire #2637, on est intéressé parfois à avoir un `feature-a` avec un environnement web. Un déploiement manuel vers `dev` semble jouable.
Clés d'un slave à autoriser sur `vda`.Discussion lors de l'audio : même sans faire #2637, on est intéressé parfois à avoir un `feature-a` avec un environnement web. Un déploiement manuel vers `dev` semble jouable.
Clés d'un slave à autoriser sur `vda`.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2629Le texte "(focus on some clones)" devrait être plus visible2019-01-10T15:21:23+01:00Mathieu GiraudLe texte "(focus on some clones)" devrait être plus visibleDiscussion avec @flothoni sur #2626 (pas sûr que ce soit lié).
On pourrait voir mieux qu'on est en focus, peut-être avec un fond de couleur.
Attendre #2245 ?Discussion avec @flothoni sur #2626 (pas sûr que ce soit lié).
On pourrait voir mieux qu'on est en focus, peut-être avec un fond de couleur.
Attendre #2245 ?