vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2024-01-10T17:54:22+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/5211CGI, custom_fuse, workers: unify ?2024-01-10T17:54:22+01:00THONIER FlorianCGI, custom_fuse, workers: unify ?Discuss with @clement.chesnin : We have 3 ways to make call to softwares on our server:
* CGI by nginx
* custom fuse with an ad-hoc server, transfert by py4web
* task with workers
At least CGI and custom_fuse could be unify in a same a...Discuss with @clement.chesnin : We have 3 ways to make call to softwares on our server:
* CGI by nginx
* custom fuse with an ad-hoc server, transfert by py4web
* task with workers
At least CGI and custom_fuse could be unify in a same ad-hoc server ? Other option ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/4036Taille des .vidjil en -y all2021-04-06T11:17:00+02:00Mathieu GiraudTaille des .vidjil en -y allvdj#921
Sur LIL-L3-1 :
- .fastq.gz 330M
- .vidjil habituel, `-z 100`, 51M
- .vidjil `-y all`, **395M**
- .vidjil après ~"server-fuse", 200k
Pour 1 clone en `-y all` sans `-z`, il y a... `1.9 ko` dans le `.vidjil` ! En plus de `se...vdj#921
Sur LIL-L3-1 :
- .fastq.gz 330M
- .vidjil habituel, `-z 100`, 51M
- .vidjil `-y all`, **395M**
- .vidjil après ~"server-fuse", 200k
Pour 1 clone en `-y all` sans `-z`, il y a... `1.9 ko` dans le `.vidjil` ! En plus de `sequence`, on a `quality`, `affectSigns`, `affectValues`... Beaucoup pour quelque chose qui va juste être un +1 dans une distribution...
- Calculer certaines distributions dans ~cpp ? Faisable, mais pas très générique, et demande ensuite des changements dans ~"server-fuse" pour lire les distributions
- Limiter au maximum ces sorties (voir aussi #3911) ? Par exemple, au-delà du `-z`, ne mettre que l'`id` et la `sequence`. Relativement simple, devrait réduire déjà la taille d'un facteur 3-4.
- Ne rien faire, tant pis pour la place, de toute façon cela se compresse bien ?
- Ne rien faire, car de toute façon le but est un jour de faire `-z all`, et on aura encore plus de choses ? (voire AIRR pour tout ?)
```
{
"_average_read_length": [
377.0
],
"_coverage": [
1.0
],
"_coverage_info": [
"377 bp (100% of 377.0 bp)"
],
"germline": "IGH",
"id": "AAAAAGTGGGAACTACTTCGGGCGGCGCCCCACCTAGGCTACTGGGGGCC",
"reads": [
1
],
"seg": {
"affectSigns": {
"seq": "+++++++ + +++++++++++++++++++++++++++++++++++++ + + ++++++++++++++ +++ + +++++++++++++++++++++++ + ++++ + ++ + + +++++++++++++++++++++++ + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++ ",
"start": 1,
"stop": 377
},
"affectValues": {
"seq": "HHHHHHH______H______HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH___H__H___HHHHHHHHHHHHHH?HHH______H____HHHHHHHHHHHHHHHHHHHHHHH_________H?HHHH________________H______HH______H_________________H______HHHHHHHHHHHHHHHHHHHHHHH______H______HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH_________________________________________________________________hhhhhhhhhhhhhhh_____________",
"start": 1,
"stop": 377
},
"evalue": {
"val": "2.012178e-46"
},
"evalue_left": {
"val": "0.000000e+00"
},
"evalue_right": {
"val": "2.012178e-46"
},
"quality": {
"seq": "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!::::*:999+85883446878/--'-----'334933-36;665999+95!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
"start": 1,
"stop": 377
}
},
```
cc @flothoni @duezAlgo -- Importanthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5175Warning similarity; Position not correct after a fuse2023-10-19T14:51:00+02:00THONIER FlorianWarning similarity; Position not correct after a fuseFor the moment, we throw some warning on similarities between clones. (Similar to clone "\#1 - TRGV9*01 0/AC/1 TRGJ1*02").
After a fuse, clone \#1 is not correct. We need to update this position at the fuse.
In fact, even without fuse w...For the moment, we throw some warning on similarities between clones. (Similar to clone "\#1 - TRGV9*01 0/AC/1 TRGJ1*02").
After a fuse, clone \#1 is not correct. We need to update this position at the fuse.
In fact, even without fuse with other sample, position is false (see https://app.vidjil.org/3296-25?clone=42,64).https://gitlab.inria.fr/vidjil/vidjil/-/issues/5124Fuse; How to merge clonotype with various windows/ids length ?2023-03-01T10:54:49+01:00THONIER FlorianFuse; How to merge clonotype with various windows/ids length ?I was looking on analysis made with multiple configurations on the same sample file.
Window length parameter is not constant and the fuse don't work.
How can we resolve this ? I was naively thinking about `if the smaller window fit ins...I was looking on analysis made with multiple configurations on the same sample file.
Window length parameter is not constant and the fuse don't work.
How can we resolve this ? I was naively thinking about `if the smaller window fit inside the bigger we can merge`. But in this case, with the longer windows configuration, a clonotype on configuration `multi` (windows of 60nt length) is splitted into multiple smaller clonotype for configuration `clonality` (full sequence windows).
It is a one-to-many relationship. If it is easy to create a link at the fuse step, how to use it in client ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/5088fuse.py: --overlaps, ordre des paramètres de fuse2022-11-17T16:08:58+01:00Mathieu Giraudfuse.py: --overlaps, ordre des paramètres de fuse
@flothoni: "avec les distributions, il y a parfois des soucis dans le parse des arguments 'nargs' (distributions, fichiers). Il faut que le `-d` ne soit pas le dernier. Une manière est de mettre `--overlaps`, mais sinon on peut aussi ju...
@flothoni: "avec les distributions, il y a parfois des soucis dans le parse des arguments 'nargs' (distributions, fichiers). Il faut que le `-d` ne soit pas le dernier. Une manière est de mettre `--overlaps`, mais sinon on peut aussi juste intervertir les arguments."
==> rajouter un `--file` pour les fichiers ? (mais ~"server-task.py").https://gitlab.inria.fr/vidjil/vidjil/-/issues/5050Fuse, pouvoir ne retenir que les clones présents dans 2 échantillons (au moin...2022-07-01T16:59:39+02:00Thonier FlorianFuse, pouvoir ne retenir que les clones présents dans 2 échantillons (au moins ou strict)Quelque part c'est l'inverse de #3828.
On a une utilisatrice qui souhaite comparer les clonotypes communs entre 2 échantillons provenant du même patient mais de 2 tissus différents.
Le cas pratique ici ne correspond peut-être pas non ...Quelque part c'est l'inverse de #3828.
On a une utilisatrice qui souhaite comparer les clonotypes communs entre 2 échantillons provenant du même patient mais de 2 tissus différents.
Le cas pratique ici ne correspond peut-être pas non plus à un usage sur le client, mais serait intéressant. On enlève dans ce cas beaucoup de bruit de fond sur les clones non détectés dans A ou B, et on obtient des fichiers plus petits et simple à analyser, avec du coup le moyen d'en avoir un aperçu sur le client, au moins sur le top 100.
L'optimum en config serveur: Faire la première passe de l'algo pour avoir les fenêtres, trouver les similaires, puis relancer l'algo avec cette liste (cf labels ?).https://gitlab.inria.fr/vidjil/vidjil/-/issues/5030fuse.py: se souvenir du numéro du sample duquel on prend une séquence2022-05-20T11:45:36+02:00Mathieu Giraudfuse.py: se souvenir du numéro du sample duquel on prend une séquence
puis l'afficher dans getHTMLinfo
à défaut de changer #3970, savoir d'où la séquence vient
puis l'afficher dans getHTMLinfo
à défaut de changer #3970, savoir d'où la séquence vienthttps://gitlab.inria.fr/vidjil/vidjil/-/issues/4917fuse.py; modifications pour les distributions2021-11-26T13:12:41+01:00Thonier Florianfuse.py; modifications pour les distributionsJe me suis aperçu que la gestion des paramètres est erroné dans le parser du fuse. Je propose ici une correction;Je me suis aperçu que la gestion des paramètres est erroné dans le parser du fuse. Je propose ici une correction;https://gitlab.inria.fr/vidjil/vidjil/-/issues/4912Pouvoir creer un fichier de séquences taggées depuis la database2023-06-28T17:34:40+02:00Thonier FlorianPouvoir creer un fichier de séquences taggées depuis la databaseL'idée ici est d'avoir un type de fichier particulier pour les tags. Avoir le moyen de charger un fichier, ou bien de copier/coller des séquences et que cela créé un fichier samples qui sera ajouté au set et analysable. On pourra aussi y...L'idée ici est d'avoir un type de fichier particulier pour les tags. Avoir le moyen de charger un fichier, ou bien de copier/coller des séquences et que cela créé un fichier samples qui sera ajouté au set et analysable. On pourra aussi y mettre des tags et dans son analyse, les clones seront donc automatiquement taggés, visible séparément sur la timeline.
Plusieurs aspects:
- pouvoir créer un fichier depuis un formulaire
- Avoir un format pour que ce fichier intègre les tags
- Que l'algo vidjil lancé avec la même config intègre les tags (déjà le cas ?àhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/4876Si le post process échouel, les analyses sont quand même disponible pour le fuse2021-10-06T17:38:57+02:00Thonier FlorianSi le post process échouel, les analyses sont quand même disponible pour le fuseSuite à une erreur sur un scirpt de preprocess fuse, toutes les analyses sont en erreur.
En cherchant a corriger ce point, j'ai vu dans le log du fuse que l'ensemble des autres analyses était listé dans la commande fuse.
Quelque part,...Suite à une erreur sur un scirpt de preprocess fuse, toutes les analyses sont en erreur.
En cherchant a corriger ce point, j'ai vu dans le log du fuse que l'ensemble des autres analyses était listé dans la commande fuse.
Quelque part, en effet, l'analyse vidjil est disponible, mais je ne pense pas que l'on devrait les inclure.
Il s'agit probablement d'un étiquetage des process dans le serveur.https://gitlab.inria.fr/vidjil/vidjil/-/issues/4802Pouvoir affiché plus de clones pour les données de capture2021-05-27T18:07:20+02:00Thonier FlorianPouvoir affiché plus de clones pour les données de captureUn utilisateur avec des données de capture demande à afficher plus de clones. Cela lui est utile puisque dans son cas, il a 390 reads , mais avec 320 clones. On a donc beaucoup de clones avec 1 seul read qui sont cachés de manière semi-a...Un utilisateur avec des données de capture demande à afficher plus de clones. Cela lui est utile puisque dans son cas, il a 390 reads , mais avec 320 clones. On a donc beaucoup de clones avec 1 seul read qui sont cachés de manière semi-aléatoire (reproductible entre 2 lancement; ou entre 2 séquençages ? A priori oui puisque conservé de par la fenêtre).
Une possibilité que je vois est de modifier dans la configuration le top du fuse pour en afficher un seuil plus haut de clonotype. On pourrait utilisé un hack que j'ai déjà testé: on donne un top ex æquo, avec plusieurs occurrence pour un top donné. Ça fonctionne, mais ça n'empêchera pas que beaucoup de clones détériore quand même les performances. (mais moins que par exemple une analyse avec 30 samples).
L'autre point est la limite côté client. Est-il possible d'ajouter une variable dans le fichier vidjil pour repousser le limite de 100 clonotypes ?
cc @magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/4579Comment relancer les fuse sur un serveur2020-11-23T13:37:35+01:00Thonier FlorianComment relancer les fuse sur un serveurJ'ai mis à jour fuse pour qu'il remonte un nouveau warning (#4566).
Ce nouveau warning peut avoir une incidence non nul sur une interprétation. Comment est-il possible de relancer les fuse sur un certain nombre d'analyses récentes ? Dan...J'ai mis à jour fuse pour qu'il remonte un nouveau warning (#4566).
Ce nouveau warning peut avoir une incidence non nul sur une interprétation. Comment est-il possible de relancer les fuse sur un certain nombre d'analyses récentes ? Dans ce cas, faut-il aussi avoir la version spécifique du fuse disponible quelque part ? Comment être certain que l'analyse que l'on regarde ait inclut cette fonction lors du fuse ?
* La technique actuellement serait possiblement de conseiller de relancer au moins une analyse puisque l'on sait que le fuse se fera automatiquement une fois celle-ci finit.
* Ne serait-il pas possible de le faire automatiquement ? Dans ce cas, on crash ou on obstrue le serveur car il y en aurait pour très longtemps (et ce n'est pas pour aller en s'améliorant.
* Ne lancer que sur les XXX analyses les plus récentes ?
* Avoir un bouton spécifique dans la page du set sans avoir a relancer une analyse ? Ce bouton ne serait disponible que si la version du fuse est différente par exemple ?
cc @magiraud @mikael-shttps://gitlab.inria.fr/vidjil/vidjil/-/issues/4554Fuse de fichier avec des windows mix de 50 et 60 nt2020-11-06T11:01:24+01:00Thonier FlorianFuse de fichier avec des windows mix de 50 et 60 ntUne question me vient. En routine il y a de cela un temps fort fort lointain, on avait des windows de taille 50, et maintenant nous sommes passé à 60.
Dans ce cas, les nouvelles analyses ne devrait pas être compatible lors du fuse non ?...Une question me vient. En routine il y a de cela un temps fort fort lointain, on avait des windows de taille 50, et maintenant nous sommes passé à 60.
Dans ce cas, les nouvelles analyses ne devrait pas être compatible lors du fuse non ?
De plus, est-ce que l'on test réellement ces comportements de mix inter-version ? Dans le cadre des tests COFRAC des hôpitaux ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/4454Index d'overlaps: une seule fonction dans fuse.py ?2020-09-03T17:21:27+02:00Mathieu GiraudIndex d'overlaps: une seule fonction dans fuse.py ?Voir https://gitlab.inria.fr/vidjil/vidjil/-/merge_requests/465#note_370823
@mikael-s, ton avis ?
cc @flothoniVoir https://gitlab.inria.fr/vidjil/vidjil/-/merge_requests/465#note_370823
@mikael-s, ton avis ?
cc @flothonihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/4445fuse.py : se souvenir de tous les clones, mais ne pas les sortir ?2020-08-03T10:49:48+02:00Mathieu Giraudfuse.py : se souvenir de tous les clones, mais ne pas les sortir ?Vu avec @flothoni
Actuellement, pour avoir un calcul exact, il faudrait `-t 10000` ou plus, mais soucis de mémoire ou autre...
Peut-être une nouvelle option `-T` qui garde "tout" en mémoire (mais de manière la plus légère possible pou...Vu avec @flothoni
Actuellement, pour avoir un calcul exact, il faudrait `-t 10000` ou plus, mais soucis de mémoire ou autre...
Peut-être une nouvelle option `-T` qui garde "tout" en mémoire (mais de manière la plus légère possible pour ceux après le `-t`, comme ce qu'on veut pour !724).
Mais finalement cela a probablement peu d'impact pour !465 dans la plupart des cas, on expérimentera déjà !465 avec ce qu'on a.https://gitlab.inria.fr/vidjil/vidjil/-/issues/4427Séquence consensus incomplète analyse comparée2021-04-08T19:03:55+02:00Anne de SeptenvilleSéquence consensus incomplète analyse comparéeJ'ai un problème de séquence consensus pour ce patient séquencé par différents laboratoires.
Avec nos données, la séquence consensus est incomplète (problème de de qualité ? autre ? ce sont de vieilles données... ce qui est étrange c'e...J'ai un problème de séquence consensus pour ce patient séquencé par différents laboratoires.
Avec nos données, la séquence consensus est incomplète (problème de de qualité ? autre ? ce sont de vieilles données... ce qui est étrange c'est que je ne me souvenais pas avoir eu ce problème précédemment avec le même fastq). Par contre pour les 4 autres laboratoires, pas de problème, la séquence consensus est ok et va jusqu'au bout du V. Mais quand je compare les 5 labos ensembles, la séquence est tronquée. Je sais qu'avant Vidjil choisissait plutôt la séquence consensus la plus longue. Quelque chose a changé de ce point de vue là ?
https://app.vidjil.org/31199-2?clone=0
J'ai un autre patient qui a exactement le même profile (séquence consensus tronquée uniquement dans nos données) mais là pas de problème, Vidjil donne une séquence complète lorsque j'affiche les 5 labos ensemble.
https://app.vidjil.org/31213-2?clone=0https://gitlab.inria.fr/vidjil/vidjil/-/issues/4367Ouvrir un seul sample; lien dans le menu pour revenir aux sets parents2020-06-23T10:41:23+02:00Thonier FlorianOuvrir un seul sample; lien dans le menu pour revenir aux sets parentsEn mix avec #2728 et #2442: Serait-il envisageable d'avoir dans le menu de l'analyse (celui qui s'affiche sous le nom du patient une fois une analyse ouverte) les liens menant aux sets le comprenant.
Pour l'instant, la meilleur solutio...En mix avec #2728 et #2442: Serait-il envisageable d'avoir dans le menu de l'analyse (celui qui s'affiche sous le nom du patient une fois une analyse ouverte) les liens menant aux sets le comprenant.
Pour l'instant, la meilleur solution que nous proposons pour #2442 est de faire un compare sample avec un seul sample. @anne nous faisait la remarque que dans ce cas, nous ne pouvons retourner au set parent, et que pire, elle perdait aussi les informations sur le patients. Si nous mettons des liens à cet endroit, on simplifierait la démarche pour remonter à son/ses sets tout en permettant d'améliorer une peu l'identitovigilance.
Cela n'empêche pas aussi de corriger ce qui est affiché dans ce menu dans le cas d'un compare samples, avec un ou plusieurs samples. Si il n'y a qu'un seul sample, l'emplacement me semble idéal. Si il y en a plusieurs je n'en suis pas aussi certain. des lignes de plus dans le log me semble plus approprié par exemple.https://gitlab.inria.fr/vidjil/vidjil/-/issues/4299TOOL_SIMILARITY in fuse.py2024-02-07T14:18:39+01:00Mathieu GiraudTOOL_SIMILARITY in fuse.pyReported by a user:
> The python script tools/fuse.py seems to use a path that does not exist. The error is the following:
>
> `! failed: ../algo/tools/similarity`
>
> The cause is the following variable / the broken link in ../algo/too...Reported by a user:
> The python script tools/fuse.py seems to use a path that does not exist. The error is the following:
>
> `! failed: ../algo/tools/similarity`
>
> The cause is the following variable / the broken link in ../algo/tools -> ./tools/:
>
> `TOOL_SIMILARITY = "../algo/tools/similarity"`
>
> It works without the error massage when switching to the following line:
>
> `TOOL_SIMILARITY = "./similarity.cgi`
The `algo` path does not exist in releases (contrary to the git).
The error does not stop fuse.py, but we should perhaps remove that or put this under an option.
see #1990 #3019https://gitlab.inria.fr/vidjil/vidjil/-/issues/4259Fuse plante parfois : “Unterminated string starting at”2020-04-29T20:35:38+02:00Mikaël SalsonFuse plante parfois : “Unterminated string starting at”Exemples le 22/04 :
* `result/tmp/out-075543//075543-37506.fuse.log`
* `result/tmp/out-075545//075545-37508.fuse.log`
* `result/tmp/out-075583//075583-37506.fuse.log`
La traceback est celle-là :
```
File "../../tools/fuse.py", line 15...Exemples le 22/04 :
* `result/tmp/out-075543//075543-37506.fuse.log`
* `result/tmp/out-075545//075545-37508.fuse.log`
* `result/tmp/out-075583//075583-37506.fuse.log`
La traceback est celle-là :
```
File "../../tools/fuse.py", line 1558, in <module>
main()
File "../../tools/fuse.py", line 1456, in main
jlist.load(path_name, args.pipeline)
File "../../tools/fuse.py", line 614, in load
self.load_vidjil(file_path, *args, **kwargs)
File "../../tools/fuse.py", line 653, in load_vidjil
self.init_data(json.load(f, object_hook=self.toPython))
File "/usr/lib/python2.7/json/__init__.py", line 291, in load
**kw)
File "/usr/lib/python2.7/json/__init__.py", line 352, in loads
return cls(encoding=encoding, **kw).decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Unterminated string starting at: line 1 column 438022 (char 438021)
```
Comme si le fichier n'était pas complet, mais relancer le fuse fonctionne.
@magiraud @flothoni @duez déjà vu ce genre d'erreurs (avec Fuse ou autre) ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/4174original_names ne peut pas être correctement renseigné avec des fichiers AIRR2020-03-03T10:46:21+01:00Mikaël Salsonoriginal_names ne peut pas être correctement renseigné avec des fichiers AIRRDans `default.py` on fait le lien entre le `original_names` d'un fichier et le sample auquel il correspond dans le sample set.
Sauf que pour les fichiers AIRR on ne peut pas avoir l'information du `original_names`. Tout ce qu'on peut re...Dans `default.py` on fait le lien entre le `original_names` d'un fichier et le sample auquel il correspond dans le sample set.
Sauf que pour les fichiers AIRR on ne peut pas avoir l'information du `original_names`. Tout ce qu'on peut renseigner, c'est au moment où on fait le `fuse.py`, on peut renseigner le nom du `results_file`. Pour cela on peut créer un autre champ (du genre `original_results_name`) qui stockerait cette information dans le fichier fused.
Ensuite dans la fonction de `get_data` de `default.py`, il faudrait un autre dictionnaire similaire à `query2` mais dont les clés soient les `results_file` de la BDD (qui sont déjà récupérés par la requête précédente).
Nécessaire pour #3591.