vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2018-07-11T18:22:34+02:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/3297Faire des cas difficiles pour les heuristiques (segmentation, filtrage) par g...2018-07-11T18:22:34+02:00Mathieu GiraudFaire des cas difficiles pour les heuristiques (segmentation, filtrage) par grainesPour #3183, #3223, #3225, ce serait bien de faire des séquences (même artificielles) qui mettraient l'heuristique de filtrage en difficulté... de la même manière qu'on a déjà beaucoup de tests sur des cas limites pour ~"cpp\-heuristic" ....Pour #3183, #3223, #3225, ce serait bien de faire des séquences (même artificielles) qui mettraient l'heuristique de filtrage en difficulté... de la même manière qu'on a déjà beaucoup de tests sur des cas limites pour ~"cpp\-heuristic" .
Cela dépend aussi fortement des graines choisies. #1364https://gitlab.inria.fr/vidjil/vidjil/-/issues/3281Fichiers BAM avec données pairées : exception ou non ?2018-06-13T09:25:11+02:00Mikaël SalsonFichiers BAM avec données pairées : exception ou non ?Lorsque le BAM avait été implanté, il avait été prévu de ne pas permettre l'utilisation de données pairées (car les reads ne sont pas fusionnés), comme indiqué dans la doc. Une exception est donc levée dans un tel cas. Il existe un seul ...Lorsque le BAM avait été implanté, il avait été prévu de ne pas permettre l'utilisation de données pairées (car les reads ne sont pas fusionnés), comme indiqué dans la doc. Une exception est donc levée dans un tel cas. Il existe un seul cas où on devrait permettre cela : du RNA-Seq car fusionner les reads ne présente aucun intérêt.
Or le seul cas de BAM uploadé sur le serveur public c'est du RNA-Seq pairé ! (#3263)
On peut très bien rester sur une exception (avec un message plus explicite car là c'est uniquement une assertion qui échoue) et dire qu'on ne gère que les FASTQ. Aucune garantie sur le reste.
Une alternative serait de mettre un warning (#2247). Le problème c'est qu'une personne envoyant un fichier BAM avec des données pairées d'amplicons verra ses données analysées juste avec un warning et serait probablement assez peu motivée pour réuploader 2 FASTQ et relancer l'analyse alors qu'elle a déjà des résultats devant les yeux.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3269vidjil.cpp ne devrait pas, par défaut, sortir un fichier par clone segmenté2018-06-22T12:04:52+02:00Mathieu Giraudvidjil.cpp ne devrait pas, par défaut, sortir un fichier par clone segmentéUn *fichier* `ofstream out_clone(clone_file_name.c_str())` est ouvert par clone sous le `-z`. Il faudrait voir si on souhaite garder ce fonctionnement, ou bien limiter cette sortie à quelques clones.
Non essentiel pour l'instant (c'est...Un *fichier* `ofstream out_clone(clone_file_name.c_str())` est ouvert par clone sous le `-z`. Il faudrait voir si on souhaite garder ce fonctionnement, ou bien limiter cette sortie à quelques clones.
Non essentiel pour l'instant (c'est ce qu'on a toujours fait, et le temps n'est pas si grand), mais devra être résolu avant qu'on fasse en routine des `-z 10000`.
cc @boreechttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3267Filtrage des germlines : le désactiver pour les "petites" germlines ?2018-07-06T11:10:44+02:00Mathieu GiraudFiltrage des germlines : le désactiver pour les "petites" germlines ?Faudrait-il quelque chose pour désactiver le filtrage sur certaines germlines ?
- Un truc en dur qui le ferait que pour les `IGHV` (et éventuellement d'autres pour lesquels on voit une accélération) ? Cela peut être largement suffisa...Faudrait-il quelque chose pour désactiver le filtrage sur certaines germlines ?
- Un truc en dur qui le ferait que pour les `IGHV` (et éventuellement d'autres pour lesquels on voit une accélération) ? Cela peut être largement suffisant dans un premier temps.
- Ou bien plus un truc plus fin, automatique avec la taille de la germline ?
(quand c'est désactivé, pas de construction de l'automate comme dans #3268).
cc @boreechttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3225Filtrage par automate : prendre les N meilleures séquences et leurs « voisines »2018-10-10T15:37:05+02:00Mikaël SalsonFiltrage par automate : prendre les N meilleures séquences et leurs « voisines »En général je pense que #3217 avec N = 1 donnera de bons résultats (en gérant les ex-aequo). Mais on aura probablement des situations où la vraie séquence est en fait en 2è ou 3è position mais juste avec quelqes k-mers de moins.
On pour...En général je pense que #3217 avec N = 1 donnera de bons résultats (en gérant les ex-aequo). Mais on aura probablement des situations où la vraie séquence est en fait en 2è ou 3è position mais juste avec quelqes k-mers de moins.
On pourrait dire qu'on prend N = 5 pour prendre une marge de sécurité pour ces cas-là. Mais c'est dommage de prendre 5 gènes dans le cas où le premier est largement devant en termes de nombres de k-mers trouvés.
On pourrait plutôt se dire qu'on prend les N meilleures séquences et leurs voisines proches en termes de nombres de k-mers trouvés, si elles existent. Toute la question est comment définir que le nombre d'occurrences est suffisamment proche ?
S'il est à 0, on a un ex aequo et on considère déjà qu'on doit le prendre.
Si on a 1 k-mer de moins, on sent bien que ce n'est pas très significatif et qu'on devrait prendre ce gène en considération aussi.
Si on a une erreur de séquençage qui nous éloigne du vrai gène et qui nous rapproche, à tort, d'un autre gène, cela peut nous faire perdre k k-mers.
Mais la distance permise dépend aussi de la longueur du gène : il est normal de tolérer une distance plus grande pour des gènes plus grands.
Faut-il avoir des calculs de probabilités ?Algo 2018.09https://gitlab.inria.fr/vidjil/vidjil/-/issues/3222vue commune pour les preprocess de merge2023-06-22T17:18:32+02:00Thonier Florianvue commune pour les preprocess de mergeUne question me vient en analysant #3219 : Laisse-t-on à terme le choix du software de merge ou l'impose-t-on ?
Si on laisse le choix; propose-t-on de conserver les reads non assemblés pour rejouer le merge avec un autre soft (ou même ...Une question me vient en analysant #3219 : Laisse-t-on à terme le choix du software de merge ou l'impose-t-on ?
Si on laisse le choix; propose-t-on de conserver les reads non assemblés pour rejouer le merge avec un autre soft (ou même simplement d'autres paramètres) ?
De plus, propose-t-on une vue unifiée entre les diverses sorties (cf revient à faire un json des log de preprocess ). On pourrait par exemple pour les merge indiquer des tableaux des percentiles sur la longueurs des reads assemblés par exemple; Cette étape serait supplémentaire au software.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3219Fusion de reads : essayer Flash (et BBMerge ?)2020-03-20T12:51:41+01:00Mikaël SalsonFusion de reads : essayer Flash (et BBMerge ?)Dans la publi d'OAS (cf. vdj#677) ils disent utiliser FLASH pour fusionner les reads :
* Site d'origine : https://ccb.jhu.edu/software/FLASH/
* Github : https://github.com/dstreett/FLASH2
L'avantage c'est que c'est open source.
Un arti...Dans la publi d'OAS (cf. vdj#677) ils disent utiliser FLASH pour fusionner les reads :
* Site d'origine : https://ccb.jhu.edu/software/FLASH/
* Github : https://github.com/dstreett/FLASH2
L'avantage c'est que c'est open source.
Un article compare plusieurs logiciels de fusion (dont le leur, BBMerge, qui est évidemment le meilleur) : http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0185056
Flash semble faire moins d'erreur que PEAR et être plus rapide. Flash est aussi plus rapide que BBMerge sur 1 thread. Mais il semble moins correct que BBMerge (d'après leur évaluation…). C'est Flash 1 qui est testé et non Flash 2. BBMerge ne semble pas être distribué seul mais au sein d'un package regroupant d'autres logiciels ce qui risque de rendre la distribution moins pratique.Thonier FlorianThonier Florianhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3218Supprimer les k-mers non significatifs ?2020-02-21T21:19:30+01:00Mathieu GiraudSupprimer les k-mers non significatifs ?(Juste une réflexion peut-être non pertinente, à voir uniquement si le temps du filtrage reste significatif après #3217.)
Sur IGHV (347 gènes), en prenant des k-mers de taille 5:
- 1031 k-mers différents, dont
- 36 k-mers qui appar...(Juste une réflexion peut-être non pertinente, à voir uniquement si le temps du filtrage reste significatif après #3217.)
Sur IGHV (347 gènes), en prenant des k-mers de taille 5:
- 1031 k-mers différents, dont
- 36 k-mers qui apparaissent dans >= 300 des gènes.
- environ 500 k-mers qui apparaissent dans >= 50 des gènes
Cela fait beaucoup de k-mers qui apparaissent très souvent (et qui vont "charger" l'automate, le match ne serait-il pas en `O(zn)`, où `z` est le nombre moyen d'affectations par k-mer) ?
On verra quand on aura le temps exact du filtrage (sans suppression) pour #3190 et après #3217, mais est-ce que ces 36 kmers apparaissant trop souvent apportent vraiment du signal dans le filtrage ? (Ils peuvent certes amener un signal négatif, on pourrait à la limite stocker cette info.)
cc @mikael\-s @boreechttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3216Utilisation des séquences "cibles"2023-06-28T16:58:04+02:00Thonier FlorianUtilisation des séquences "cibles"Problème de Patrick :
> comparer le nombre de read d’un patient (pour une cible) à la moyenne des reads de cette cible sur l’ensemble des patients (ou sur une cohorte définie, par exemple 200 patients de notre site). Ceci nous permettra...Problème de Patrick :
> comparer le nombre de read d’un patient (pour une cible) à la moyenne des reads de cette cible sur l’ensemble des patients (ou sur une cohorte définie, par exemple 200 patients de notre site). Ceci nous permettra d’avoir des critères d’acceptation du run.
Pour ce faire, il faut faire une recherche de cette cible sur l’ensemble des samples sélectionnées:
* Premier point : il faut déjà pouvoir spécifier la cible.
* Pouvons-nous nous contenter de le faire sur la liste des clones disponible dans les fichiers vidjil ? Nous pourrions alors passer à côté d'une séquence qui ne correspond pas à un clone du top 100, mais qui pourrait avoir son intérêt quand même.
* Rechercher sur le fichier source de séquençage ? Certainement plus long d'un point de vue informatique, mais cela reste-t-il de l'ordre du raisonnable ?
* Faudra-t-il utiliser des séquences dégénérées ?
Autre solution: passer par cloneDB. Serait-ce plus simple d'un point de vue technique ? Cela permettrai-t-il la même granulométrie dans la recherche pour l'inclusion des divers échantillons ?
@Patrick : Aurais-tu un exemple de cible que tu cherches , les samples associés, et ce que tu as (ou t'attends) a retrouver stp ?
@magiraud @mikael\-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3181Lancer CloneDB depuis fuse.py ou en offline2019-02-14T18:19:54+01:00Mathieu GiraudLancer CloneDB depuis fuse.py ou en offlineExtrait de #2312 et clonedb#1 :
> Lancer la cloneDB sur tous les clones côté client peut être une mauvaise idée ! (à voir si on le fait dans le `fuse.py`).
Pourquoi pas... mais dans ce cas, pas de check sur la contamination intra-run #...Extrait de #2312 et clonedb#1 :
> Lancer la cloneDB sur tous les clones côté client peut être une mauvaise idée ! (à voir si on le fait dans le `fuse.py`).
Pourquoi pas... mais dans ce cas, pas de check sur la contamination intra-run #1744 (qui pourrait être fait séparément).
À voir aussi comment on indique que cela a été fait "à une certain moment" (et donc, si on revient plus tard, pas forcément à jour). Et/ou relancer périodiquement CloneDB sur le serveur ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/3178Ajout de samples : « specific set » est peu clair2018-04-17T14:58:48+02:00Mikaël SalsonAjout de samples : « specific set » est peu clairOn ne sait pas bien à quoi se rapporte le champ « specific set ».
Être plus clair : « Associated patient/run/set » ?
De même il y a le champ « Common set », à remplacer par « Common patient/run/set » ?On ne sait pas bien à quoi se rapporte le champ « specific set ».
Être plus clair : « Associated patient/run/set » ?
De même il y a le champ « Common set », à remplacer par « Common patient/run/set » ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/3130Informations pour la LLC dans le rapport2022-04-19T17:14:54+02:00Mikaël SalsonInformations pour la LLC dans le rapportDans le rapport on ne sort pas des informations comme la productivité (calculée par Vidjil) ou sur le % d'homologie avec le V (récupéré d'IMGT (cf. #2819) ou si on le calcule en interne (#3131)) qui sont pertinentes pour la LLC.Dans le rapport on ne sort pas des informations comme la productivité (calculée par Vidjil) ou sur le % d'homologie avec le V (récupéré d'IMGT (cf. #2819) ou si on le calcule en interne (#3131)) qui sont pertinentes pour la LLC.Web 2022.05https://gitlab.inria.fr/vidjil/vidjil/-/issues/3111Inclure les données de diversité dans le resultat de fuse2018-03-30T10:07:17+02:00Thonier FlorianInclure les données de diversité dans le resultat de fuseLes données de diversité ne sont pas inclussent dans le résultat du fuse. Il faudrait les prendre en compte.
Vous validez ?
@magiraud @mikael-sLes données de diversité ne sont pas inclussent dans le résultat du fuse. Il faudrait les prendre en compte.
Vous validez ?
@magiraud @mikael-sThonier FlorianThonier Florianhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3110ajouter des exceptions aux timeout2018-03-28T14:56:46+02:00Thonier Florianajouter des exceptions aux timeoutDepuis quelques jours, j'ai un utilisateur qui lance des jobs sur des gros fichiers de RNAseq (~4GO). Ses jobs finissent toujours en timeout (preprocess coupé à 4h, vidjil à 2h).
Est-il possible d'assigner des jobs lourds à un worker sp...Depuis quelques jours, j'ai un utilisateur qui lance des jobs sur des gros fichiers de RNAseq (~4GO). Ses jobs finissent toujours en timeout (preprocess coupé à 4h, vidjil à 2h).
Est-il possible d'assigner des jobs lourds à un worker spécifique pour lequel le timeout serait bien plus élevé, ou bien d'assigner dynamiquement un timeout plus long quand on peux prévoir qu'un tel job est en cours ?
Tel que je le vois, il faudrait être capable de détecter avant son lancement si un job risque le timeout :
* Poids des fichiers en entrée (automatique pour tous) ?
* Déclaration de l'utilisateur dans une liste blanche ?
* une case à cocher par l'utilisateur pour signifier qu'un fichier risque d'être lourd (j'y crois pas trop). Cependant, on pourrait alors avoir une liste des jobs pour lesquels nous validons les lancements avec exceptions.
Ensuite, il ne faut pas non plus bloquer le serveur :
* n'autoriser qu'un seul jobs sans timeout, 2 max ?
Que faire d'un job long qui finalement dépasserait le timeout sans être prévu:
* si le seul en cours, le laisser et le passer en exception à la volée (laisserai 2 ou 3 workers pour les jobs plus rapide) ?
* si déjà d'autres jobs en exception il faudrait le tuer et le relancer automatiquement dès qu'un place en exception de timeout se libère ?
Voilà, beaucoup de questions. Je ne sais pas si c'est aisé ou non, et ça demande peut-être beaucoup mise au point.
cc @magiraud @mikael-s @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3104Comment organiser les recombinaisons vdj mediées2018-08-07T09:17:20+02:00Thonier FlorianComment organiser les recombinaisons vdj mediéesOn est confronté avec ikaros et ERG à un nouveau type de germline. Il faut prévoir une protocole assez flexible pour permettre d'intégré à la volée des systèmes similaires.
Pour l'instant je propose de passer par un germline ``homo-sapi...On est confronté avec ikaros et ERG à un nouveau type de germline. Il faut prévoir une protocole assez flexible pour permettre d'intégré à la volée des systèmes similaires.
Pour l'instant je propose de passer par un germline ``homo-sapiens-xxx.g`` spécifique de toutes ces configurations.
Je rajouterais aussi dans ce cas un point dans le doc du germline pour expliquer la démarche (il doit déjà y avoir un mot de souvenir).
cf #2139;
cc @magiraud @mikael-sThonier FlorianThonier Florianhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3084germline_id, *.g et vidjil-algo2020-11-19T08:41:57+01:00Mathieu Giraudgermline_id, *.g et vidjil-algoSuite à !158, cela me tenterait presque de déplacer `germline_id` dans `algo/`. En effet, `germline_id` est bien la version des germlines utilisée par l'algo.
En effet `germline/` est autonome, avec ses tests. On peut désormais faire év...Suite à !158, cela me tenterait presque de déplacer `germline_id` dans `algo/`. En effet, `germline_id` est bien la version des germlines utilisée par l'algo.
En effet `germline/` est autonome, avec ses tests. On peut désormais faire évoluer les germlines, travailler sur `split-from-imgt`, faire les tests qui vont avec sans casser l'algo. Quand on est content, on met à jour `germline_id` et on travaille sur l'algo.
Problème : on trouve aussi ces numéros de versions dans les `*.g` (mais qui sont aussi, quelque part, des choses plutôt algo).
Voir #1491.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3081Comment creer un groupe de fusion pour faire des partages ou réunion2018-03-15T13:34:45+01:00Thonier FlorianComment creer un groupe de fusion pour faire des partages ou réunionUn trio de trois utilisateurs utilisant déjà régulièrement notre plateforme me signale qu'ils travaillent ensemble. Ils souhaitent pouvoir accéder aux données des uns des autres.
La solution est donc de leur construire un nouveau group...Un trio de trois utilisateurs utilisant déjà régulièrement notre plateforme me signale qu'ils travaillent ensemble. Ils souhaitent pouvoir accéder aux données des uns des autres.
La solution est donc de leur construire un nouveau groupe partagé (fait) et il faut ensuite permettre le changement de propriété de toutes les données déjà présentes (cf vidjil/vdj#402). Cependant on n'a pas de méthode pour changer en lot l'appartenance de données. Comment faire ça ?
Solution proposée:
On passe par un contrôleur ? Telle que je le vois, il faudrait avoir la liste de tous les données, pouvoir les sélectionner au cas par cas ou en select all comme pour le contrôleur stat (cf #3041).
Ensuite avoir la liste des groupes accessibles, limitée aux seuls groupes de l'utilisateur (pour limiter les erreurs), et ensuite un bouton validation ( et pourquoi pas un popup de rappel de la manip pour les admins extérieurs).
@magiraud @mikael-s @RyanHerb
A terme, ce contrôleur pourrait être aussi accessible par les utilisateurs eux même ? Nécessiterait peut-être un nouveau niveau de droits pour faire de retropartage.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3074Compilation des fichiers CSS : less dynamique ?2019-02-05T19:19:31+01:00Mikaël SalsonCompilation des fichiers CSS : less dynamique ?Discuté avec @RyanHerb : quelle est notre politique ?
Je pense qu'il faut malgré tout continuer à commiter les fichiers CSS si on veut que des gens qui pullent le dépôt aient un client directement utilisable (sans avoir à utiliser `less...Discuté avec @RyanHerb : quelle est notre politique ?
Je pense qu'il faut malgré tout continuer à commiter les fichiers CSS si on veut que des gens qui pullent le dépôt aient un client directement utilisable (sans avoir à utiliser `less`).
Dans ce cas, quand on développe on n'est pas obligé de toujours les commiter. Par contre au moment du merge, les fichiers CSS doivent être à jour (pourrait-on automatiser cela ?).https://gitlab.inria.fr/vidjil/vidjil/-/issues/3069Empecher la modifications d'un patient lorsque des analyses sont en attente2019-03-15T09:50:50+01:00Thonier FlorianEmpecher la modifications d'un patient lorsque des analyses sont en attenteUn utilisateur m'a fait remonté des délais récurrents dans l'analyses de leur données.
Après avoir regarder plus en détail, je m'aperçois qu'ils lancent des jobs lourds (sur de gros fichiers) et si rien ne bouge au bout de 2h, ils recha...Un utilisateur m'a fait remonté des délais récurrents dans l'analyses de leur données.
Après avoir regarder plus en détail, je m'aperçois qu'ils lancent des jobs lourds (sur de gros fichiers) et si rien ne bouge au bout de 2h, ils rechargent toutes les données et relances , pensant que notre serveur est dans les choux.
Je leur ai donc expliqué que ce comportement entraîne une surcharge du serveur et que ça n'améliore pas la situation. Cependant, je n'ai pas de possibilité de leur montrer la charge serveur pour le moment. (cf #2945).
En attendant, peut-on bloquer une nouvelle demande d'analyses, le changement des données fasta voir la déétion d'un patient si il en a déjà une en attente ? Je pense que nous avions déjà fait ce qu'il fallait pour les analyses, mais comme ici les données sont rechargées (et le patient précédent supprimé puis recrée dans la foulée) je ne pense pas que notre filtre fonctionne.
En tous cas l'idée ici est d’empêcher la délétion/création de patients lorsque les gens ont l’impression que rien ne bouge côté frontend. Cela peux passer par un simple message d'alerte lorsqu'il tente de supprimer un patient (Une analyse est en attente sur ce patient. Êtes-vous certain de vouloir le supprimé ? ).
On pourrait aussi signaler un ordre dans la file d'attente du scheduler pour qu'ils puissent voir que ça avance.
Vous en pensez-quoi ? Vous avez des propositions la dessus ?
@magiraud @mikael-s @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3064Stats : controlleur 'stats' vs controlleur 'compare patients' vs controlleur ...2018-02-27T14:29:40+01:00Mathieu GiraudStats : controlleur 'stats' vs controlleur 'compare patients' vs controlleur 'set'A-t-on besoin de trois controlleurs différents ?
cc @RyanHerbA-t-on besoin de trois controlleurs différents ?
cc @RyanHerb