FineSegmenter et xxx en +/-, comme pour les Vk-Vk
Le FineSegmenter ne fonctionne pas encore sur les Vk-Vk de Nordine.
Le KmerSegmenter fonctionne bien, puis Germline::override_rep5_rep3_from_labels positionne rep5 et rep3 tous les deux sur IGKV.fa
mais... Le deuxième V est sur le brin négatif, et pour l'instant on ne fait pas cela : le FineSegmenter est lancé en + sur l'ensemble, puis en - sur l'ensemble, pas en mélangé. En général, le FineSegmenter est incapable de segmenter un +V -J ou un -V +J. (tant mieux ?). Bref, sur les données de Nordine, le premier Vk est trouvé, pas le deuxième.
Solutions possibles:
- Tester les 4 combinaisons dans le FineSegmenter, au moins quand on a xxx (et en profiter pour faire cela de manière plus générique qu'actuellement, il y a du code dupliqué pour le +/-)
- Faire un Germline::override_rep5_rep3_from_labels qui prend en compte le strand (et donc reconstruit un rep3 renversé si les labels ne sont pas dans le même sens). Cela irait au bout de la logique du "xxx" avec détection d'une partie gauche et droite, en sortie du KmerSegmenter on a bien cette info de strand.
- (Ou sinon, juste pour le Vk-Vk, faire une germline spéciale où il ne fait pas le revcomp. Bofbof.)
- : Non, finalement ce n'est pas la logique du "xxx", on connait les strands, on ne va pas tester les 4 combinaisons (mais il faudrait tout de même un jour nettoyer le code dupliqué)
2: Mvoui, mais attention à ne pas recréer un rep3 renversé pour chaque séquence. Un peu lourd...
... mieux, 4: mettre juste un flag "opposite_strand" dans la germline, et le faire prendre en compte par le FineSegmenter. Ce serait plus simple et relativement propre, car le FineSegmenter utilise déjà des flags pour passer en revcomp. Mvouais, pas si facile... dans tous les cas, factoriser le doublon dans segmenter.cpp:723-763 aiderait à faire la solution 4 (ou la solution 1).
Tentant... il va falloir que je me contrôle pour ne pas faire cela avant d'avoir envoyé mon HdR (arg, 10 jours).
à faire avant visite de Mathieu à Amiens, le lundi 8. Lien avec VDDJ ?
Au final, doublon dans le code supprimé, et flags (reverted_V et reverted_J) passés depuis le KmerSegmenter MAX_12 vers le FineSegmented.
40% faster on IGH :-)
Ouaouh ! Vive le CERNA :) Juste pour chipoter, il vaut mieux regarder ce graphique-là https://ci.inria.fr/bonsai/job/Vidjil-benchmark/FILENAME=testPr1.fastq.gz,GERMLINE=-G%20germline%7DIGH,label=bonsai-debian-wheezy-amd64/plot/ (ça baisse aussi) Il y a très peu de clones détectés sur le jeu Stanford, et donc peu de clones passent à la FineSegmentation
Oui, j'étais emporté par mon enthousiasme et je me disais bien que c'était le meilleur chiffre. Bref, entre 20% et 40% suivant les cas :-)