vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2021-02-10T20:17:07+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/3385Liste des `SEG_METHOD_*`2021-02-10T20:17:07+01:00Mathieu GiraudListe des `SEG_METHOD_*`Sans parler d'algo trop précis ni de technique (#3377, #2968, #2655)...
Quelque part un inventaire de situations bios.
- (no implémenté) `_ZERO`: Rien de connu `(_)`, mais significativement rien (`_` suffisament long, ce n'est pas exa...Sans parler d'algo trop précis ni de technique (#3377, #2968, #2655)...
Quelque part un inventaire de situations bios.
- (no implémenté) `_ZERO`: Rien de connu `(_)`, mais significativement rien (`_` suffisament long, ce n'est pas exactement comme `UNSEG_TOO_FEW_ZERO`
- `_ONE`: Colinéaire génome `(*, 1, *)` (dans cet esprit `(1)` serait souhaitable ?).
- `_53`: Recombinaison VJ, ou autre,`(5, *, 3)`.
- Notons qu'il n'y a pas de `*` sur le côté, ce qui a nécessité J+down #3008
- Cela suggère d'ailleurs (non implémenté) `_543C` #2993
- Le `*` pose #2656 #1878
- `_12`: Recombinaison inattendue xxx, `(1, *, 2)`, cas particulier de `(5, *, 3)`.
- `_1U`: Recombinaison inattendue / translocation xxx, `(1, _)`, avec `_` "sufisament long"
- `_543`: Recombinaison VDJ `(5, *, 4+, *, 3)` Le `4+` est regardé uniquement par le FineSegmenter. Il est optionnel.
- (non implémenté) `_5K43`: Recombinaison VDJ `(5, *, 4+, *, 3)` Le `4+` (ou déjà un `4?`) serait aussi considéré par le KmerSegmenter #2654
- (non implémenté) `_u543d`: Recombinaison VDJ `(up, 5, *, 4+, *, 3, down)` avec up/down stream indexé séparément #XXXX (et aussi #2138)
- (non implémenté) `_123`: Cas complexes `(*, 1, *, 2, *, 3, *)` #3376https://gitlab.inria.fr/vidjil/vidjil/-/issues/3376SEG_METHOD_123: Détecter les recombinaisons à trois, même si elles sont vues ...2018-07-16T19:33:46+02:00Mathieu GiraudSEG_METHOD_123: Détecter les recombinaisons à trois, même si elles sont vues comme VJ normalEn généralisant #3370.
Les séquences avec trois affectations (suffisament présentes) ABC, où ABC n'est pas un VDJ attendu, devraient être affichées comme unexpected... même si le AB, le AC ou le BC peuvent faire qu'elles soient vues com...En généralisant #3370.
Les séquences avec trois affectations (suffisament présentes) ABC, où ABC n'est pas un VDJ attendu, devraient être affichées comme unexpected... même si le AB, le AC ou le BC peuvent faire qu'elles soient vues comme VJ "normal". Ce sont en effet des séquences très particulières (artefact ? bio ?) et on doit attirer l'attention dessus.
Une nouvelle `SEG_METHOD_123` ? Nécessite #2968 ?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/3357Détection de séquences VJ particulières2018-08-30T17:47:05+02:00Mikaël SalsonDétection de séquences VJ particulièresPour #2232, mais cela peut aussi être dans d'autres situations comme avec des dimers d'amorces, on a des clones qui ressortent et qui ne sont pas significatifs.
On aimerait leur mettre des warnings (#2247).
Une solution est de coder en...Pour #2232, mais cela peut aussi être dans d'autres situations comme avec des dimers d'amorces, on a des clones qui ressortent et qui ne sont pas significatifs.
On aimerait leur mettre des warnings (#2247).
Une solution est de coder en dur la valeur des recombinaisons et de lever un warning lorsqu'on rencontre cette valeur-là. Une autre solution serait de stocker les séquences elle-mêmes et de détecter les fenêtres dans ces séquences. Toutes les séquences partageant cette fenêtre seront clusterisées avec ce qui nous permet ensuite de faire ce qu'on veut.
Cela éviterait de stocker des choses plus ou moins robustes en dur.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3146UNSEG only J curieux sur une affectation particulière2018-07-12T18:26:07+02:00Mathieu GiraudUNSEG only J curieux sur une affectation particulièreSéquence de #3145 (ici je ne parle pas de la séquence, uniquement de ~"cpp-heuristic").
On est en DJ, mais bon, on a deux affectations `+b` et `+B`.
Avant :
```
# 119 ! seed TRB+ UNSEG ambiguous 1.023222e-110 1.116486e-116/1.023221...Séquence de #3145 (ici je ne parle pas de la séquence, uniquement de ~"cpp-heuristic").
On est en DJ, mais bon, on a deux affectations `+b` et `+B`.
Avant :
```
# 119 ! seed TRB+ UNSEG ambiguous 1.023222e-110 1.116486e-116/1.023221e-110 _ _ _ _ _ _ _ _ _ _+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
```
Vu l'affectation, `ambiguous` est la bonne réponse.
Avec !148 (mais ma question ne concerne pas !148) :
```
# 175 ! seed TRB+ UNSEG only J/3' 1.500000e+10 1.500000e+10/0.000000e+00 _ _ _ _ _ _ _ _ _ _+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b _ _ _ _ _ _+b _ _ _ _ _ _+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b+b _ _ _ _ _ _+b _ _ _ _ _ _+b _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
```
Je ne comprends pas pourquoi on a désormais `UNSEG only J/3'`. @mikael-s ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/2996SEG_METHOD_ONE et revcomp2018-07-13T16:08:46+02:00Mathieu GiraudSEG_METHOD_ONE et revcompPour l'instant le revcomp n'est pas géré ?
- évoqué avec @mikael-s : le faire au niveau du hash de minimisation ?
- peut-être plus robuste de considérer les k-mers de l'index... à moins que ce ne soit déjà fait ? `reversed = (nb_strand...Pour l'instant le revcomp n'est pas géré ?
- évoqué avec @mikael-s : le faire au niveau du hash de minimisation ?
- peut-être plus robuste de considérer les k-mers de l'index... à moins que ce ne soit déjà fait ? `reversed = (nb_strand[0] > nb_strand[1])` est aussi calculé pour `SEG_METHOD_ONE`... est-ce pris en compte ?Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2993SEG_METHOD_543C : ne pas prendre en compte C dans la p-valeur du J2018-07-16T07:30:18+02:00Mathieu GiraudSEG_METHOD_543C : ne pas prendre en compte C dans la p-valeur du JPour résoudre #2964, discussion avec @mikael-s
- stocker dans les index les gènes constants (36 KB en IGH)
- point central: lorsqu'on a `VVV_DD_JJJJ_CCCC`, ne pas prendre en compte la zone `CCCC` pour la p-valeur du J
- puis éventu...Pour résoudre #2964, discussion avec @mikael-s
- stocker dans les index les gènes constants (36 KB en IGH)
- point central: lorsqu'on a `VVV_DD_JJJJ_CCCC`, ne pas prendre en compte la zone `CCCC` pour la p-valeur du J
- puis éventuellement #2994/#2995
Si les gènes constants sont trop gros, un pis-aller serait de ne pas considérer, dans `VVV_DD_JJJJ______`, la zone vide à droite du J. Mais c'est potentiellement dangereux.
Fait-on d'un même coup quelque chose `SEG_METHOD_C543C`, configurable ? Ou on a le temps de voir venir ?
Demande en tout cas d'abord #2968.Algo -- Importanthttps://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/2985Améliorer la fonction de hash2020-02-21T21:18:24+01:00Mathieu GiraudAméliorer la fonction de hash@mikael-s, https://gitlab.inria.fr/vidjil/vidjil/merge_requests/76#note_68968 :
> Généralement la minimisation ne se fait pas sur l'ordre lexico (car cela favorise AAAA…, ou des régions de faible complexité riches en A, qui ne sont pas ...@mikael-s, https://gitlab.inria.fr/vidjil/vidjil/merge_requests/76#note_68968 :
> Généralement la minimisation ne se fait pas sur l'ordre lexico (car cela favorise AAAA…, ou des régions de faible complexité riches en A, qui ne sont pas les séquences ADN les plus spécifiques), mais en utilisant une fonction de hash.Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2968Classes pour les méthodes de segmentation2022-02-01T10:30:14+01:00Mathieu GiraudClasses pour les méthodes de segmentationDiscuté avec @mikael-s il y a déjà un certain temps : "segment.cpp a plein de `if`, on commence a ne plus y voir grand chose."Discuté avec @mikael-s il y a déjà un certain temps : "segment.cpp a plein de `if`, on commence a ne plus y voir grand chose."Algo 2022.04Mathieu GiraudMathieu Giraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2915Ne mettre que le upstream / amont, et pas le gène D, pour être sûr du IGH+2017-11-29T13:26:07+01:00Mathieu GiraudNe mettre que le upstream / amont, et pas le gène D, pour être sûr du IGH+Proposition baroque.Proposition baroque.https://gitlab.inria.fr/vidjil/vidjil/-/issues/2909Recombinaison atypique : grande insertion dans le V2018-01-19T10:04:56+01:00Mathieu GiraudRecombinaison atypique : grande insertion dans le V@Anne@Annehttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2884Mieux documenter les causes de non segmentation "UNSEG"2017-11-29T13:16:41+01:00Tatiana RocherMieux documenter les causes de non segmentation "UNSEG"Les décrire plus clairement dans la doc ou faire des bulles contextuelles au passage de la souris ?Les décrire plus clairement dans la doc ou faire des bulles contextuelles au passage de la souris ?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/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/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" ?