accélérer le FineSegmenter en utilisant des infos provenant des k-mers ou des gènes
en utilisant :
- les informations données par un KmerStringAffect
- l'information de la position des k-mers trouvés (seed and extend)
- l'information de la partie qui est discriminante dans le gène (et qu'il est utile d'aligner) [un peu à la manière des tags dans Decombinator] (et Cys)
Re-discuté cette semaine. Pourquoi pas... on pourrait faire alors -z 10000, voire -z all, mais il reste à savoir comment on récuperait des stats agrégées... et, même très accéléré, cela va plomber notre temps de calcul. À voir... cela ne m'a l'air le plus urgent.
Pas sûr que ça augmente le temps de calcul. IMSEQ et MiXCR font bien le calcul sur tous les reads sans être lents. On doit avoir les capacités de le faire aussi. C'est quelque chose fréquemment demandé par les utilisateurs, de savoir ce qui se cache dans les « others ». Les stats agrégées sont une tâche indépendante (utile aussi quand on intègrera IMSEQ, MiXCR ou d'autres).
Pour accélérer le FineSegmenter une piste est la librairie SSW (utilisée par SortMeDNA) : https://github.com/mengyao/Complete-Striped-Smith-Waterman-Library
Notre cœur de métier c'est l'algo du texte, c'est quand même ballot de laisser tomber cette partie-là.
Le KmerStringAffect peut déjà fortement restreindre le nombre de gènes à aligner (plusieurs centaines à la base pour IGHV), d'un ou deux ordres de grandeur. Ensuite il peut être intéressant de savoir quelles sont les parties à aligner préférentiellement dans les gènes. Ils font 300/400bp mais certaines parties sont très communes et apportent peu d'information.
Oui. et si on réduit d'un ordre de grandeur, ce sera déjà très bien :)
SortMeRNA utilise maintenant libSSA : https://github.com/RonnySoak/libssa (plus rapide que SSW)
à moyen terme, faire du k-band...
k-band (en fait non, moitié de la matrice) : 513a047b. 35% plus vite.
Voir aussi "KmerSegmenter++ juste avant le FineSegmenter"
Jenkins confirme une amélioration sur les temps totaux après 513a047b :
- pour Stanford S22, entre 20% et 40%
- pour testPr1.fastq.gz, entre 5% et 10%
https://ci.inria.fr/bonsai/job/Vidjil-benchmark/
Il y a aussi Parasail : https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4748600/ (pas trop fait pour de l'ADN a priori) https://github.com/jeffdaily/parasail/