vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2018-06-26T10:41:01+02:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/2249Trop de délétions dans les D : longueur négative2018-06-26T10:41:01+02:00Mikaël SalsonTrop de délétions dans les D : longueur négativeQuand on monte la e-valeur pour la FineSegmentation du D on peut se retrouver avec des D tellement courts qu'ils peuvent être de longueur négative.
Quand on monte la e-valeur pour la FineSegmentation du D on peut se retrouver avec des D tellement courts qu'ils peuvent être de longueur négative.
Algo -- Importanthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/2003Le résultat de la segmentation change selon le contexte2019-11-23T05:29:48+01:00Vidjil TeamLe résultat de la segmentation change selon le contexteExemple : http://rbx.vidjil.org/browser/index.html?patient=3837&config=2
On prend le gros clone et les petits clones autour. La moitié a un D trouvé, pas l'autre moitié. Le D fait 22bp il n'est pas trouvé dès qu'il y a une erreur/mutati...Exemple : http://rbx.vidjil.org/browser/index.html?patient=3837&config=2
On prend le gros clone et les petits clones autour. La moitié a un D trouvé, pas l'autre moitié. Le D fait 22bp il n'est pas trouvé dès qu'il y a une erreur/mutation. Or si on exporte ces séquences et qu'on fait tourner le -c segment ou, même, Vidjil avec les mêmes options que sur le serveur (et même avec le vidjil présent sur le serveur)... on ne trouve pas la même segmentation.
Voir le test 88c6e92
***
N'y aurait-il pas un test de e-valeur pour le D qui dépende du nombre de reads ? (dans le test on passe de 2D trouvés avec un seul read, contre 0 D trouvé avec 11 reads)
***
> N'y aurait-il pas un test de e-valeur pour le D qui dépende du nombre de reads ?
Oui... et je pense bien que ce n'est pas un bug, mais une feature (introduite par e6ffb91). C'est précisément pour cela qu'est fait la E-value, non ? On fait strictement la même chose pour la FineSegmentation V/J ("multiplier" dans FineSegmenter()).
Le multiplier est
- nb_reads_for_evalue pour -c segment (pour V/J comme pour D)
- sort_clones.size() pour -c clones (Aïe, je me rends compte qu'il n'y est pas pour V/J, vidjil.cpp:1413 !!!)
Ce multiplier dit bien le nombre de segmentation que l'on fait, bref ce qu'il faut pour transformer la p-valeur en e-valeur.
Après, peut-être que le calcul des p-valeurs du D est trop stringent (voir tâche réouverte).
***
Et on a même une dépendance encore plus vicieuse que celle au nombre de reads : passer de -z 100 à -z 1000 peut faire dé-segmenter une séquence... C'est la vie. Voir si IgBlast a aussi ce type de comportement.
***
Pourquoi le multiplier devrait-il être le nombre de clones plutôt que le nombre de séquences réellement segmentées ?
***
Qu'on n'ait pas les mêmes résultats entre 10M de reads (fine segmentés) et 10 reads, je comprends bien : on change de plusieurs ordres de grandeur. Mais qu'on n'ait pas les mêmes résultats entre 1 read, 6 reads et 11 reads, j'ai plus de mal. Peut-être est-ce juste un problème de seuil de E-valeur
***
> Mais qu'on n'ait pas les mêmes résultats entre 1 read, 6 reads et 11 reads, j'ai plus de mal
Tout à fait, il faut comprendre ce qu'il se passe, et il y a peut-être des bugs
> Pourquoi le multiplier devrait-il être le nombre de clones plutôt que le nombre de séquences réellement segmentées ?
Oui, l'estimation actuelle est trop stricte. Est-ce que cela devrait être un max entre sort_clones.size() et max_clones ?
***
>Oui, l'estimation actuelle est trop stricte. Est-ce que cela devrait être un max entre sort_clones.size() et max_clones ?
J'aurais dit un min ;) Ce qui importe c'est le nombre de séquences qu'on va réellement segmenter.
***
Oui, tout à fait, un min !
J'étais plus en forme hier soir (cela m'a étonné d'ailleurs, c'était après 3 verres, ce a quoi je ne suis pas habitué :-)
***
@magiraud @mikael-sAlgo -- Importanthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/1879Seuil pour les D, e-valeur2020-10-14T11:25:55+02:00Vidjil TeamSeuil pour les D, e-valeurVW16: deux écoles.
* 4nt (Hélène ~"PAR-Debré" ), pour éviter de faire un primer qui tombe dedans
* 8nt (c'est bien cela ?), (Frédéric ~"Paris-Pitié" , "vieux papiers")
Et nous, on a dit "euh, 5nt". Sommes-nous confiant dans notre c...VW16: deux écoles.
* 4nt (Hélène ~"PAR-Debré" ), pour éviter de faire un primer qui tombe dedans
* 8nt (c'est bien cela ?), (Frédéric ~"Paris-Pitié" , "vieux papiers")
Et nous, on a dit "euh, 5nt". Sommes-nous confiant dans notre calcul de e-valeur pour les D ?
***
Oui c'est bien cela. Le seuil de 8nt correspond à un seuil immuno pour avoir un D qui ait du sens.
***
segment.cpp, FineSegmenter::FineSegmentD
`float evalue_D = multiplier * (r-l) * germline->rep_4.totalSize() * segment_cost.toPValue(box_DD->score[0].first);`
Ouf, `(r-l) `est bien la taille de la zone considérée.
Calcul à priori correct... sauf qu'il dépend de` .toPValue`, donc de `K` et `lambda` qui sont fixés à la légère (mais qui ne devraient pas changer l'ordre de grandeur)
***
Depuis 2016.08, on peut jouer avec `-E`.
Avec e6ffb91, on a perdu 6 séquences de .should-vdj VDDJ.
Retravailler là-dessus, voir s'il faut des seuils différents pour premier D et D suivants, peut-être retravailler sur le score et/ou K/lambda.
***
ping, voir "Configuration trop stringeante sur la recherche du D" #2002
***
@magiraud @mikael-sAlgo -- ImportantThonier FlorianThonier Florianhttps://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/1020Multi-threader les parties critiques de vidjil.cpp2021-04-27T17:14:08+02:00Vidjil TeamMulti-threader les parties critiques de vidjil.cppNotons que cela ne changera pas le temps quand on envoie plusieurs fichiers (voire un "relaunch all"), comme il y a déjà les workers...
... mais ce sera très utile pour le lancement au coup par coup sur nos machines
***
Ping Wu (London):...Notons que cela ne changera pas le temps quand on envoie plusieurs fichiers (voire un "relaunch all"), comme il y a déjà les workers...
... mais ce sera très utile pour le lancement au coup par coup sur nos machines
***
Ping Wu (London): "Does vidjil programme support multiple-core run? I am looking ways to speed things up, as It still takes a couple of hours when running something like (...) on our cluster."
***
@nobodyAlgo -- Important