vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2023-09-07T16:31:35+02:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/5164Non-recombined sequence leading to IGK false positive.2023-09-07T16:31:35+02:00Mikaël SalsonNon-recombined sequence leading to IGK false positive.See ~"NAN - Nantes" email on 2023-08-10 mentioning this issue:
He points this sequence:
```
ATGTGGACTCCCTCATGAGCAGATGCCACCAGGGCCACTGGCCCCAGCTTCCTCCTTCACAGCTGCAGTGGGGGCTGGGGCTGGGGCATCCCAGGGAGGGTTTTTGTATGAGCCTGTGTCACAGTGTGTGGTATTCGGCGGAG...See ~"NAN - Nantes" email on 2023-08-10 mentioning this issue:
He points this sequence:
```
ATGTGGACTCCCTCATGAGCAGATGCCACCAGGGCCACTGGCCCCAGCTTCCTCCTTCACAGCTGCAGTGGGGGCTGGGGCTGGGGCATCCCAGGGAGGGTTTTTGTATGAGCCTGTGTCACAGTGTGTGGTATTCGGCGGAGGGACCAAGCTGACCGTCCTAGGTGAGTCTCTTCTCCCCTCTCCTTCCCCGCTCTTGGGACAATTTCTGCTGTTTTTGTTTGTTTCTGTATCTTGTCTCA
```
where we find a `IGKV2D-29 0/78/7 J4`https://gitlab.inria.fr/vidjil/vidjil/-/issues/2596[Aho] Meilleure e-valeur avec xxx qu'avec une recombinaison classique2019-03-06T09:57:28+01:00Mikaël Salson[Aho] Meilleure e-valeur avec xxx qu'avec une recombinaison classiqueSur `should-vdj-tests/BRI_multi.should-vdj.fa` (par exemple) une séquence est segmentée en xxx au lieu de l'être en TRA+D. La e-valeur en xxx est 10^-109 contre 10^-100 en TRA+D.
Pourtant l'index load du xxx est bien plus élevé (3,7% con...Sur `should-vdj-tests/BRI_multi.should-vdj.fa` (par exemple) une séquence est segmentée en xxx au lieu de l'être en TRA+D. La e-valeur en xxx est 10^-109 contre 10^-100 en TRA+D.
Pourtant l'index load du xxx est bien plus élevé (3,7% contre 0,004%).
La séquence est :
```
>TRDV2*01 3/CGGAGG/19 TRAJ48*01 [TRA+D]
TGCAAAGAACCTGGCTGTACTTAAGATACTTGCACCATCAGAGAGAGATGAAGGGTCTTACTACTGTGCCTGTGACCGGAGGGAAATTAACCTTTGGGACTGGAACAAGACTCACCATCATACCCAGTAAGTTCTTCATCCTTGGTCAGGAAATCAGCCTGCATAAGATTCTGGGGA
```Heuristique 2.0Mikaël SalsonMikaël Salsonhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2508Vh pas trouvé, uniquement Dh-Jh2018-06-27T18:53:42+02:00Mathieu GiraudVh pas trouvé, uniquement Dh-JhAurélie ~"LIL-Lille" :
> I have a question on the results I obtain on the following sample: http://app.vidjil.org/?sample_set_id=23852&config=25
>
> Let's look on the following clones:
> >IGHD2-2*02 2/TGA/5 IGHJ5*02 362 nt, 148 52...Aurélie ~"LIL-Lille" :
> I have a question on the results I obtain on the following sample: http://app.vidjil.org/?sample_set_id=23852&config=25
>
> Let's look on the following clones:
> >IGHD2-2*02 2/TGA/5 IGHJ5*02 362 nt, 148 525 reads (10.64%, 53.45% of IGH/IGH+, 2042% of IGH+)
> GGAGTCGGGGGAGGCTTGGTCCAGCCTGGGGGTCCCTGAGACTCTCCTGTGCAGCCTCTGGATTCACCTTCAGTGACTACTACATGAGCTGGGTCCGCCAGGCTCCCGGGAAGGGGCTGGAGTGGGTAGGTTTCATTAGAAACAAAGCTAATGGTGGGACAACAGAATAGACCACGTCTGTGAAAGGCAGATTCACAATCTCAAGAGATGATTCCAAAAGCATCACCTATCTGCAAATGAACAGCCTGAGAGCCGAGGACACGGCCGTGTATCAAGGGGCATTTATTGTAGTAGTACCAGCTGCTAT
>
> ATG
> ATGGTTCGACCCCTGGGGCCAGGGAACCCTGGTCACCGTCTCCTCAGGTAAG
>
>
>
> Bonjour,
>
> Ce clone est mal nommé, il ne reconnaît pas le VH, bien présent puisque nous avons pu merger des clones qui étaient VDJ. Cela m’embête car ce clone étant majoritaire, le merge ne permet pas de corriger la séquence.
>
> Pourriez-vous y regarder et me dire pourquoi le VH n’a pas été reconnu ?
>
> Merci
>
> AurélieAlgo -- Importanthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1936Véracité des causes de non segmentation (et implications du -t ou -2)2016-12-06T10:22:13+01:00Vidjil TeamVéracité des causes de non segmentation (et implications du -t ou -2)Les causes de non segmentation varient grandement en fonction des paramètres utilisés, ce qui induit en erreur.
Par exemple sur des données de LLC, ajouter un -t 0 (par défaut -t 100), conduit à considérer le V dans toute sa longueur et ...Les causes de non segmentation varient grandement en fonction des paramètres utilisés, ce qui induit en erreur.
Par exemple sur des données de LLC, ajouter un -t 0 (par défaut -t 100), conduit à considérer le V dans toute sa longueur et donc le UNSEG too few V/J passe de ~10^5 à ~10^3, les séquences passant en fait en « UNSEG only V/5' ». Cela amène d'ailleurs à se poser la question de la pertinence de -t 100 : il y a des séquences qui contiennent vraiment du V mais dont on pense qu'elles n'en ont pas à cause du -t 100.
Par ailleurs sur ces mêmes données, utiliser un -2 fait passer une très grosse partie des séquences de « UNSEG only V/5' » à « UNSEG only J/3' » pour une raison que je n'explique pas.
Les données en question : patient 1803 et 1806 (Lille).
***
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1889evalues > 12019-09-16T16:58:45+02:00Vidjil Teamevalues > 1Des e-valeurs > 1 sont sorties pas Vidjil. Exemple ici : http://rbx.vidjil.org/browser/?patient=1634&config=25 prendre le premier clone de la liste avec un warning. La e-valeur vaut 480061.
***
Vu aussi par Tatiana, e-value >1 sample 370...Des e-valeurs > 1 sont sorties pas Vidjil. Exemple ici : http://rbx.vidjil.org/browser/?patient=1634&config=25 prendre le premier clone de la liste avec un warning. La e-valeur vaut 480061.
***
Vu aussi par Tatiana, e-value >1 sample 3703
***
Je n'arrive pas à retrouver un exemple : le bug sur le 1634 est confirmé ?
***
Je ne vois plus les e-valeurs. Elles ne sont plus affichées ?
***
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1878Prise en compte de la central région pour la p-valeur : mauvaise idée pour ch...2020-12-04T12:07:46+01:00Vidjil TeamPrise en compte de la central région pour la p-valeur : mauvaise idée pour choix du meilleur locusSur l'exemple ci-dessous (IgJC/IgVC souris,), c'est le IgVC qui devrait moralement passer : le V est beaucoup plus beau (1e-110) que le J (1e-38). *Mais* le fait d'avoir pris la "central region" pour la e-valeur (2e23e720) donne finaleme...Sur l'exemple ci-dessous (IgJC/IgVC souris,), c'est le IgVC qui devrait moralement passer : le V est beaucoup plus beau (1e-110) que le J (1e-38). *Mais* le fait d'avoir pris la "central region" pour la e-valeur (2e23e720) donne finalement une plus mauvaise e-valeur pour le segment droit (C) et finalement pour IgVC.
Je suis prêt à parier qu'on retrouve la même chose sur certains DhJh / VDJ IGH humain.
```
>6
ACATTTGGGAAGGACTGACTCTCTGAGGAGACGGTGACCGTGGTCCCTGTGCCCCAGACATCGAAGTACCACCGTAATCCCCTCCTTCGAGCACAGTAGTATGTGGCAGTATCTGCAGTGTCCACACTGGTGATCTTGAGGAATACCTGGTTTCTGGAGGTATCCTTGGAGATTGTGAGCCGGCTCTTCAGGGATGGGTTATAGCGCTTGTCATCATCCCAGTAAATGTGTGCCAGCCACTCCAGACCCTTTCCTGAAGGCTGACGAATCCAGCTCACACCCATACCAGAAGTGCTCAGTGAAAACCCAGAGAAAGAACAAGTCAGACTGAGGGTCTGGGAGGACTGCAATATCCCAGGGCCAGACTCTTTCAGAGTAACCTGGGACAGGACATATGCAGGGACAATCAGCAGCAGGAATGAGGAAGTA
# 32 - VJ 0 405 407 428 seed IgJC SEG_- 9.531439e-38 7.491827e-38/2.039612e-38-c-c-c-c-c-c-c-c-c-c-c _ _ _ _ _ _ _ _ _ _ _-C-C-C-C _ _ _ _-C-C-C-C-C-C-C _ _ _ _ _ _-C _ _ _ _ _ _-C-C-C-C-C-C-C-C-C _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (...)
# 81 - VJ 0 339 406 428 seed IgVC SEG_- 2.634030e-23 2.634030e-23/3.652017e-110-c-c-c-c-c-c-c-c-c-c-c _ _ _ _ _ _ _ _ _ _ _-Q-Q-Q-Q _ _ _ _-Q-Q-Q-Q-Q-Q-Q _ _ _ _ _ _-Q _ _ _ _ _ _-Q-Q-Q-Q-Q-Q-Q-Q-Q _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C _ _ _ _ _ _-C _ _ _ _ _ _-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C _ _ _ _ _ _ _ _ _ _ _ _ _ _-C-C-C-C-C-C-C-C-C-C _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (...)
#>6 - VJ 0 405 407 428 seed IgJC SEG_- 9.531439e-38 7.491827e-38/2.039612e-38
```
***
Que faire ? Arrêter la central région si on rencontre un k-mer "4" ? plusieurs k-mers "4" ?
***
Pas sûr de comprendre le problème. N'est-il pas censé y avoir une région centrale aussi ? Pourquoi y a-t-il trois types d'affectation dans la séquence du bas (`-c`, `-Q`, `-C`) ?
***
En bas, c'est `5`=`V`=`-C`, `4`=`J`=`-Q`, `3`=`isotypes`=`-c`.
Ne pas oublier que les k-mers 4 sont dans l'index.
Mais bon, reformulation plus simple : le problème est le choix entre VDJ et DJ :
```
VVVVVV-------DDDDDD-------JJJJJJJ donc 33333(-----44444-----)5555
DDDDDD-------JJJJJJJ donc 33333(-----)5555
```
La zone centrale, entre parenthèses, est plus grande en haut qu'en bas, d'où une moins bonne e-valeur pour la région J en haut par rapport à en bas.
***
test 69ea8e6
***
ping
***
Choses en cours dans hotfix_evalue_incomplete_germline
Voir aussi aho et xxx (pénalité qui était implicite avant) ?
***
À voir d'ici 2016.09
***
Il y a eu le hack pour 2016.09.
À revoir tranquillement pour la prochaine releaseAlgo -- Importanthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1573Coverage plus que douteux sur certains jeux de données2021-04-08T19:03:56+02:00Vidjil TeamCoverage plus que douteux sur certains jeux de donnéesSur les 20 premiers clones de Stanford S22, avec -w 60, près de la moitié ont un coverage <= 65%.
Et plusieurs sont à <= 55%.
***
Et avec -w 100, ce n'est pas vraiment mieux.
N'est-ce que des hypermutations somatiques, ou est-ce plus gr...Sur les 20 premiers clones de Stanford S22, avec -w 60, près de la moitié ont un coverage <= 65%.
Et plusieurs sont à <= 55%.
***
Et avec -w 100, ce n'est pas vraiment mieux.
N'est-ce que des hypermutations somatiques, ou est-ce plus grave ?
***
Titre changé : cela ne concerne pas que S22.
Autre exemple de jeux de données avec des coverages très douteux :
http://rbx.vidjil.org/browser/index.html?patient=786&config=26
***
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1399Calcul de la strand : améliorer, supprimer ?2016-11-29T14:35:47+01:00Vidjil TeamCalcul de la strand : améliorer, supprimer ?segment.cpp:206 : strand = affect_strand(it.affect);
1) Le calcul de la strand prend ici en compte *toutes* les affectations, même si il y a d'autres choses dans l'index considéré (ce n'est pas le cas actuellement, mais cela peut l'êtr...segment.cpp:206 : strand = affect_strand(it.affect);
1) Le calcul de la strand prend ici en compte *toutes* les affectations, même si il y a d'autres choses dans l'index considéré (ce n'est pas le cas actuellement, mais cela peut l'être avec use_index et ce le sera pour l'automate). Il ne devrait regarder que affect_5 et affect_3, c'est potentiellement un bug.
2) On pourrait même supprimer ce calcul, TRG/strand+ TRG/strand- n'étant que deux germlines différentes. (Si on le fait dès maintenant, il faudra lancer le KmerAffectAnalyser(*(germline->index), sequence) au bon moment pour ne pas répliquer les calculs).
***
Tiens, on en parle aussi ici.
***
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3388Agrandir la taille des graines pour limiter les faux positifs2019-11-23T06:51:30+01:00Mikaël SalsonAgrandir la taille des graines pour limiter les faux positifsDans vdj#693 on se rend compte que certains faux positifs peuvent gêner la segmentation. Ces faux positifs sont dus à une taille de graine faible en TRA+D (c'est un `-k 9`).
Historiquement on a cette petite taille car les TRDD sont cour...Dans vdj#693 on se rend compte que certains faux positifs peuvent gêner la segmentation. Ces faux positifs sont dus à une taille de graine faible en TRA+D (c'est un `-k 9`).
Historiquement on a cette petite taille car les TRDD sont courts. Mais maintenant qu'on utilise les régions amont et aval cette raison n'a plus de sens.
Il serait bon de remonter cette valeur à `-s 10s`, voire plus, sans forcément attendre #1364.Algo -- Importanthttps://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/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/1628Heuristique : analyser les germlines non recombinés2017-12-13T08:22:37+01:00Vidjil TeamHeuristique : analyser les germlines non recombinés0618/R1, de Maria
- on ne segmente < 0.1% en mutli+inc+xxx
- mais 18% en MAX_1U (avec -e 10000000)
(et même 21% en -t 0)
En en ayant regardé le premier cluster, plus que du MAX_1U, c'est en fait du... non recombiné.
On devrait av...0618/R1, de Maria
- on ne segmente < 0.1% en mutli+inc+xxx
- mais 18% en MAX_1U (avec -e 10000000)
(et même 21% en -t 0)
En en ayant regardé le premier cluster, plus que du MAX_1U, c'est en fait du... non recombiné.
On devrait avoir une méthode de segmentation qui sort des trucs non recombinés. #1724.
On prend l'affectation maximum, et regarde combien il y en a... mais quel calcul de proba faire ensuite ? Pour que cela ne passe pas devant une vraie séquence recombinée ? #2653
Faut-il avoir des probas conditionnelles ?
***
Germlines avec les séquences avals des V et amonts des J, et on fait du V, contre du V-aval ou du J-amont contre du J de façon tout à fait classique.
***
Pourquoi pas... mais devra-t-on rentrer toutes ces germlines ?
Ou bien, si elles sont juste présentes quelque part, le MAX_12 va les trouver.
***
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1400Heuristique i.0 : être capable d'inférer des germlines "inconnus"2017-07-05T09:15:56+02:00Vidjil TeamHeuristique i.0 : être capable d'inférer des germlines "inconnus"Suite à la discussion en janvier à Necker.
On voudrait segmenter des séquences... à la découverte de ce qu'on ne connaît pas. But : 100% des reads ont une explication, TOO_SHORT, ou sinon on dit ce qu'il y a dedans.
1) Cas relativement ...Suite à la discussion en janvier à Necker.
On voudrait segmenter des séquences... à la découverte de ce qu'on ne connaît pas. But : 100% des reads ont une explication, TOO_SHORT, ou sinon on dit ce qu'il y a dedans.
1) Cas relativement simple :
+V+V+V+V+V+V+V__________________________
À distinguer du cas TOO_FEW_J / trop court. Ici, c'est probablement autre chose, et on pourrait extraire une fenêtre centrée sur la fin du V
2) Et cas plus dur : idem... sans les +V. Bref, être capable de deviner le point de jonction... on se souvient de ce qui avait été fait avec David. On pourrait tout à fait rentrer cela dans le Vidjil actuel : avoir un CountSegmenter qui prédit un point de cassure... (Question subsidiaire : que donne CRAC si on lui donne un jeu de reads V(D)J ?)
***
Séquences de Prague, sur rbx, collegues/pragues/IGH-UNSEG.affects
Il y a des trop petits... mais il y a aussi d'autres choses...
***
Si on infère des choses bizarres, il faudra mettre des checks sur la representative et/ou de gros warnings partout (on est pas sûr que la fenêtre est pertinente, qu'autour c'est pareil...)
***
b9994d1 et 196acbc
Sur Pee (217, Rennes)
- -g -i : 48% (110s)
- après max12: 85%
- après sortLeftRight : 99.1% (42s, car pas de -i)
Attention, est-on sûr de ce qu'on trouve ? Les longueurs des représentatives ont l'air plutôt bonnes, mais il faudrait quelque chose pour en être plus sûr et vérifier qu'on ne clustérise pas des bouts de V.
***
http://rbx.vidjil.org/browser/?custom=1442&custom=1443&custom=1568&custom=1569&
À gauche, multi+inc, à droite, multi+xxx.
***
Changements légers ce matin, marche avec -i, pas segmenté si < 5 kmers (DETECT_THRESHOLD)
http://rbx.vidjil.org/browser/?custom=1442&custom=1585&custom=1443&custom=1586&
***
ok pour "xxx"... mais il faudrait pouvoir avoir des choses plus méchantes, en devinant des germlines (à la David ?)
***
12bcb3c: MAX1U, -4. Modèle de proba à discuter ensemble, pour l'instant c'est trop méchant.
***
@magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5173Merge clonotype on exact VDJ sequence (excluding primers)2023-10-19T14:34:09+02:00THONIER FlorianMerge clonotype on exact VDJ sequence (excluding primers)In some case, user upload data with primers. We have in these cases mix of primer of various length able to be used for a same clonotype. And in some configuration (no-clustering), we saw 2 clonotypes or more that are an artefact.
As p...In some case, user upload data with primers. We have in these cases mix of primer of various length able to be used for a same clonotype. And in some configuration (no-clustering), we saw 2 clonotypes or more that are an artefact.
As position and size of primer can vary, we can't make only a trimming of it.
Can we make a merge based on sequence but limited to Vstart ?
See case here: [59910-50?clone=27,35,45,81](https://app.vidjil.org/59910-50?clone=27,35,45,81)https://gitlab.inria.fr/vidjil/vidjil/-/issues/4687SEG_METHOD_ONE_CENTERED, sans minimiseur2021-04-27T15:48:34+02:00Mathieu GiraudSEG_METHOD_ONE_CENTERED, sans minimiseur
Le minimiseur est en général indispensable pour avoir une fenêtre canonique à partir de reads couvrant de manière variable un gène #2643.
Cependant, dans certains cas où l'on recherche une séquence exacte (a priori strictement incluse ...
Le minimiseur est en général indispensable pour avoir une fenêtre canonique à partir de reads couvrant de manière variable un gène #2643.
Cependant, dans certains cas où l'on recherche une séquence exacte (a priori strictement incluse dans les reads d'intérêt) #4686, on peut souhaiter avoir une position centrale sur laquelle on peut s'appuyer.
Prendre dans ce cas la position centrale (coder un `affectanalyser.getCentralPosition()`), entre le premier le dernier k-mer ? (S'il y a tout de même quelques mutations, et bien... on gardera la même position centrale si ces mutations sont "au milieu", d'où asymétrie, mais ce ne serait pas l'utilisation visée)https://gitlab.inria.fr/vidjil/vidjil/-/issues/4188Retirer les séquences de faible complexité des germlines ?2022-02-17T18:36:48+01:00Mathieu GiraudRetirer les séquences de faible complexité des germlines ?Voir a089d5b6ed dans !606 :
> It appears that `cacacacacac` exists in a J+down sequence.
Maybe we should remove low-complexity sequences?Voir a089d5b6ed dans !606 :
> It appears that `cacacacacac` exists in a J+down sequence.
Maybe we should remove low-complexity sequences?Algo 2022.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/3584Germline unexpected : comment remonter à la bonne germline ?2024-03-27T16:43:37+01:00Mikaël SalsonGermline unexpected : comment remonter à la bonne germline ?La fonction `Germline::override_rep5_rep3_from_labels` permet normalement de faire cela. Elle est utilisée lorsqu'on est en unexpected afin d'aligner la séquence contre les bons répertoires.
Les répertoires corrects sont trouvés grâce a...La fonction `Germline::override_rep5_rep3_from_labels` permet normalement de faire cela. Elle est utilisée lorsqu'on est en unexpected afin d'aligner la séquence contre les bons répertoires.
Les répertoires corrects sont trouvés grâce aux KmerAffect. Mais… ces KmerAffect sont les mêmes pour un germline complet et incomplet (le shortcut est par exemple `H` en complet et `h` en incomplet) :
```c++
affect_5 = string(1, toupper(shortcut)) + "-" + code + "V";
affect_4 = string(1, 14 + shortcut) + "-" + code + "D";
affect_3 = string(1, tolower(shortcut)) + "-" + code + "J";
```
On pourrait se dire que ce n'est pas grave et qu'on va mettre des KmerAffect différents pour les germlines complets et incomplets… sauf que non. Si on fait cela la partie commune des germlines complets et incomplets (souvent les gènes J) seraient considérés comme ambigus car appartenant à des germlines différents.Heuristique 2.0https://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/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/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 -- Important