vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2018-07-10T16:46:56+02:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/3353should-vdj-to-tap.py --retry2018-07-10T16:46:56+02:00Mathieu Giraudshould-vdj-to-tap.py --retryDe la même manière qu'on a `should.py --retry`, on devrait avoir quelque chose pour relancer uniquement les tests loupés.De la même manière qu'on a `should.py --retry`, on devrait avoir quelque chose pour relancer uniquement les tests loupés.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3351Dockerimages starting order2018-07-11T10:56:13+02:00Alexander ShlemovDockerimages starting orderYet another Docker issue. During an initial start, the `workers` image starts BEFORE the `mysql` image and fails to connect to the database (DB initialization takes some time). It results in:
```
workers_1 | Traceback (most recent call...Yet another Docker issue. During an initial start, the `workers` image starts BEFORE the `mysql` image and fails to connect to the database (DB initialization takes some time). It results in:
```
workers_1 | Traceback (most recent call last):
workers_1 | File "/usr/share/vidjil/server/web2py/gluon/restricted.py", line 219, in restricted
workers_1 | exec(ccode, environment)
workers_1 | File "applications/vidjil/models/db.py", line 44, in <module>
workers_1 | db = DAL(defs.DB_ADDRESS,pool_size=defs.DB_POOL_SIZE,check_reserved=['all'])
workers_1 | File "/usr/share/vidjil/server/web2py/gluon/packages/dal/pydal/base.py", line 170, in __call__
workers_1 | obj = super(MetaDAL, cls).__call__(*args, **kwargs)
workers_1 | File "/usr/share/vidjil/server/web2py/gluon/packages/dal/pydal/base.py", line 475, in __init__
workers_1 | "Failure to connect, tried %d times:\n%s" % (attempts, tb)
```
Probably, this race condition could affect a usual run rather than only initial run.
The possible solution is using a special waiting script `wait-for-it` (https://github.com/vishnubob/wait-for-it) like it shown here:
https://docs.docker.com/compose/startup-order/https://gitlab.inria.fr/vidjil/vidjil/-/issues/3349doc en .md en anchors pour l'aide depuis le client2018-07-12T11:26:54+02:00Mathieu Girauddoc en .md en anchors pour l'aide depuis le clientAvec .md + mkdocs, plus besoin d'anchors, c'est le nom de la section qui est une anchor.
Vérifier les liens et adapter si besoin.Avec .md + mkdocs, plus besoin d'anchors, c'est le nom de la section qui est une anchor.
Vérifier les liens et adapter si besoin.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3345La redirection de /vidjil/default/index ne fonctionne pas toujours comme prévu2018-07-06T11:52:48+02:00Ryan HerbertLa redirection de /vidjil/default/index ne fonctionne pas toujours comme prévuDans [views/default/index.html](https://gitlab.inria.fr/vidjil/vidjil/blob/dev/server/web2py/applications/vidjil/views/default/index.html) nous redirigeons l'utilisateur vers le client. L'utilité étant de permettre à l'utilisateur d'acce...Dans [views/default/index.html](https://gitlab.inria.fr/vidjil/vidjil/blob/dev/server/web2py/applications/vidjil/views/default/index.html) nous redirigeons l'utilisateur vers le client. L'utilité étant de permettre à l'utilisateur d'accepter un certificat ssl `self-signed`. Or nous forçons le passage à HTTP pour cette redirection. Ceci ne pose pas de problèmes quand nous utilisons des ports implicites, mais l'utilisation de ports autres que ceux par défaut provoque une erreur `400 Bad Request`
Bug found by @eodushttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3344Le filtrage avec -Z 1 ne renvoie pas la bonne séquence2018-07-10T17:03:44+02:00Mikaël SalsonLe filtrage avec -Z 1 ne renvoie pas la bonne séquenceExemples où le `-Z 1` n'est pas satisfaisant. #3225 pourrait améliorer les choses.Exemples où le `-Z 1` n'est pas satisfaisant. #3225 pourrait améliorer les choses.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3343Ne pas indiquer la première germline pour les séquences avec zéro kmers2018-07-06T12:39:42+02:00Mathieu GiraudNe pas indiquer la première germline pour les séquences avec zéro kmers@mikael\-s, https://gitlab.inria.fr/vidjil/vidjil/issues/3338#note_103270:
```
>H7P7O:01381:02138 ! @10 @1 IGH UNSEG too few V/J 9.649895e+06 9.465760e+06/1.841356e+05
TGGGACCAGGGTG
```
> je ne comprends pas comment on trouve de l'I...@mikael\-s, https://gitlab.inria.fr/vidjil/vidjil/issues/3338#note_103270:
```
>H7P7O:01381:02138 ! @10 @1 IGH UNSEG too few V/J 9.649895e+06 9.465760e+06/1.841356e+05
TGGGACCAGGGTG
```
> je ne comprends pas comment on trouve de l'IGH dedans
C'est "Always remember the first kseg" : https://gitlab.inria.fr/vidjil/vidjil/blob/dev/algo/core/segment.cpp#L624 et f62ab84ahttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3340Coverage : faire quelque chose des résultats2023-06-28T18:03:29+02:00Mathieu GiraudCoverage : faire quelque chose des résultatsC'est bien d'avoir les tests de couverture... mais pour qu'il servent à quelque chose, il faudrait des warnings (voire une interdiction de merger) quand le coverage diminue. Et/ou des graphes sur le temps.
Si ce n'est pas déjà une fonct...C'est bien d'avoir les tests de couverture... mais pour qu'il servent à quelque chose, il faudrait des warnings (voire une interdiction de merger) quand le coverage diminue. Et/ou des graphes sur le temps.
Si ce n'est pas déjà une fonctionnalité de gitlab, il y a sûrement une issue déjà dans gitlab-ce à ce propos.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3337Erreur de segmentation avec une petite valeur -X n2018-07-11T13:41:36+02:00Cyprien BoréeErreur de segmentation avec une petite valeur -X nComme l'indique le titre et les commentaires de #3259, l'utilisation de **-Z** et **-X** simultanée *peut* provoquer une erreur de segmentation. (Voir ci-dessous, cela ne dépend en fait que de **-X**).
Toutefois, je ne l'ai remarqué que...Comme l'indique le titre et les commentaires de #3259, l'utilisation de **-Z** et **-X** simultanée *peut* provoquer une erreur de segmentation. (Voir ci-dessous, cela ne dépend en fait que de **-X**).
Toutefois, je ne l'ai remarqué que lorsque **-X** est doté d'une petite valeur, par exemple avec `./vidjil-algo -c segment -g germline/homo-sapiens.g -X 10 -Z 5 demo/LIL-L4.fastq.gz`.
Selon *GDB*, l'erreur semble provenir des *frames* suivant:
```
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6fd3bbc in _int_malloc (av=av@entry=0x7ffff7316b20 <main_arena>, bytes=bytes@entry=246) at malloc.c:3353
3353 malloc.c: No such file or directory.
(gdb) bt
#0 0x00007ffff6fd3bbc in _int_malloc (av=av@entry=0x7ffff7316b20 <main_arena>, bytes=bytes@entry=246) at malloc.c:3353
#1 0x00007ffff6fd6184 in __GI___libc_malloc (bytes=246) at malloc.c:2913
#2 0x00007ffff78c8e78 in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff795a499 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff795b833 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff78e1a7b in std::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x000000000048cb7a in OnlineFasta::getInterestingLine[abi:cxx11](int) ()
#7 0x000000000048d1bf in OnlineFasta::next() ()
#8 0x000000000047be61 in OnlineBioReader::skipToNthSequence() ()
#9 0x000000000048d491 in OnlineFasta::next() ()
```https://gitlab.inria.fr/vidjil/vidjil/-/issues/3336Fusionner les jobs prepare-release et release, et aussi copy/deploy ?2018-07-12T16:20:54+02:00Mathieu GiraudFusionner les jobs prepare-release et release, et aussi copy/deploy ?Discuté ce matin avec @mikael\-s : On pourrait n'avoir qu'un job `prepare-release`, mais cela suppose de faire quelque chose pour quele `RELEASE_TAG` soit `rc` quand il faut... ou même toujours `rc`.
Au passage, je ne suis pas sûr de co...Discuté ce matin avec @mikael\-s : On pourrait n'avoir qu'un job `prepare-release`, mais cela suppose de faire quelque chose pour quele `RELEASE_TAG` soit `rc` quand il faut... ou même toujours `rc`.
Au passage, je ne suis pas sûr de comprendre `copy_release`: s'il n'est pas exécuté sur le même slave, cela ne va pas fonctionner. Il faudrait lister explicitement les artefacts et dépendances. Est-ce qu'une logique plus gitlab ne serait pas d'avoir un job `release-and-publish` qui fait à la fois `release`, `copy_release` et `deploy_release_prod` ? Dans ce cas, `prepare-release` fait toujours `rc`, et `release-and-publish` fait ce qu'il faut.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3334Stéréotypie CDR3 à un subset connu2021-11-19T11:06:56+01:00Mathieu GiraudStéréotypie CDR3 à un subset connuCas particulier de #3906.Cas particulier de #3906.CLL-2018-septembrehttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3332Client : aligner avec EndWithSomeDeletions pour l'alignement contre les germl...2023-03-28T16:19:43+02:00Mathieu GiraudClient : aligner avec EndWithSomeDeletions pour l'alignement contre les germlinesQuand le V se termine par 7 délétions, actuellement ces 7 nucléotides sont répartis de manière non optimale.
- Avoir un alignement comme il faut
- Améliorer l'affichage (grisés, barrés ?) #2599
(@mikael\-s: une telle issue existait p...Quand le V se termine par 7 délétions, actuellement ces 7 nucléotides sont répartis de manière non optimale.
- Avoir un alignement comme il faut
- Améliorer l'affichage (grisés, barrés ?) #2599
(@mikael\-s: une telle issue existait peut-être déjà)Web 2023.10https://gitlab.inria.fr/vidjil/vidjil/-/issues/3324L'icône "run" n'est pas assez claire2019-02-28T12:39:27+01:00Mathieu GiraudL'icône "run" n'est pas assez claireJe me suis encore fait avoir en pensant que je n'avais pas accès au "run" alors que c'est juste le bouton qui a changé.
Le bouton engrenage fait plus penser à "paramètres". Un bouton "play" serait peut-être plus adapté, avec un texte cl...Je me suis encore fait avoir en pensant que je n'avais pas accès au "run" alors que c'est juste le bouton qui a changé.
Le bouton engrenage fait plus penser à "paramètres". Un bouton "play" serait peut-être plus adapté, avec un texte clair ("go", "process" car on ne veut pas "run"...).https://gitlab.inria.fr/vidjil/vidjil/-/issues/3323Ne pas accepter d'ajouter un sample avec un seul fichier quand le pre-process...2018-07-04T19:30:07+02:00Mathieu GiraudNe pas accepter d'ajouter un sample avec un seul fichier quand le pre-process en demande deuxOn peut actuellement valider un sample avec un seul fichier, même quand il en faudrait deux.
Au moins un nouvel utilisateur (set 27878 sur app) a ainsi sélectionné "Merge paired-end" mais a uploadé séparément R1 et R2.
Le javascript dev...On peut actuellement valider un sample avec un seul fichier, même quand il en faudrait deux.
Au moins un nouvel utilisateur (set 27878 sur app) a ainsi sélectionné "Merge paired-end" mais a uploadé séparément R1 et R2.
Le javascript devrait interdire cela.
cc @RyanHerbhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3319Renommer les modes de DP pour être plus systématique et précis2018-06-28T10:53:27+02:00Mathieu GiraudRenommer les modes de DP pour être plus systématique et précisVoir #3315, #3317.
Soit on garde les appellations « Global » / …, en spécifiant Left/Right dès que nécessaire (Local LeftGlobal-RightSemiGlobal),
Soit on est plus explicite (et ce n'est pas que du ~bikeshedding, mais aussi une manière d...Voir #3315, #3317.
Soit on garde les appellations « Global » / …, en spécifiant Left/Right dès que nécessaire (Local LeftGlobal-RightSemiGlobal),
Soit on est plus explicite (et ce n'est pas que du ~bikeshedding, mais aussi une manière de ~"dev\-refactor" le code pour que ce soit plus clair) :
- Global: `startX = Complete, endX = Complete, startY = Complete, endY = Complete`
- Local:`startX = Partial, endX = Partial, startY = Partial, endY = Partial`
- SemiGlobal: `startX = Complete, endX = Complete, startY = Partial, endY = Partial`
- (actuellement LocalEndWithSomeDeletions) LeftLocal-RightGlobalEndWithSomeDeletions: `startX = Partial, endX = Partial, startY = Partial, endY = CompleteWithSomeDeletions`
- et #3318: `startX = Complete, endX = Partial, startY = Partial, endY = CompleteWithSomeDeletions`
(on pourrait trouver un nom plus sémantique, du genre `ReadAgainstGermline`)
Bref `{start, end}{X,Y} = (Complete / CompleteWithDeletionsEnd / Partial)` qui permettrait de faire n’importe quel alignement sur ces 3^4 modes.
En l’écrivant, je me dis que c’est la bonne solution : avoir ce qu’il faut de générique, ce qui aidera aussi à la lisibilité de `dynprog.cpp`, quitte à maintenir les alias `Global` / `Local` / `SemiGlobal` (et `ReadAgainstGermline`) pour les situations les plus courantes.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3318Quel mode de DP pour les gènes V et J ?2018-07-03T20:09:09+02:00Mathieu GiraudQuel mode de DP pour les gènes V et J ?Actuellement c’est `LocalEndWithSomeDeletions` (c’est à dire `LeftLocal-RightSemiGlobalEndWithSomeDeletions`).
Mais j’ai l’impression qu’on souhaiterait plutôt un `LeftSemiGlobal-RightSemiGlobalEndWithSomeDeletions` (on veut que toute l...Actuellement c’est `LocalEndWithSomeDeletions` (c’est à dire `LeftLocal-RightSemiGlobalEndWithSomeDeletions`).
Mais j’ai l’impression qu’on souhaiterait plutôt un `LeftSemiGlobal-RightSemiGlobalEndWithSomeDeletions` (on veut que toute la partie gauche du read soit retrouvée dans le V). À vrai dire je pensais que c’était déjà le cas. À creuser.
Notons que, si V1 est meilleur que V2 en raison de ce qui est *au début* du V (ou dans l’upstream), le bonus des match de V1 joue déjà même sans cela : dans la plupart des cas on doit donner actuellement la bonne réponse, mais on peut certainement construire des exemples où. Cela va devenir important dès que l’up/downstream jouera plus #3008.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3317check_and_resolve_overlaps(): utiliser LocalEndWithSomeDeletions plutôt que ...2018-06-28T19:54:17+02:00Mathieu Giraudcheck_and_resolve_overlaps(): utiliser LocalEndWithSomeDeletions plutôt que LocalUtile dès que le V ou le J est beaucoup déleté.
Voir #3315. Probablement mêmes exemples que #3316.Utile dès que le V ou le J est beaucoup déleté.
Voir #3315. Probablement mêmes exemples que #3316.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3316check_and_resolve_overlap() pourrait, dans certains cas, générer un N2018-07-12T18:39:49+02:00Mathieu Giraudcheck_and_resolve_overlap() pourrait, dans certains cas, générer un NVoir exemple de #3315, et peut-être #2904.
Créer aussi une séquence artificielle qui mettrait encore plus cela en valeur :
par exemple un `V-AAAAAA-30/J` avec accroche pas terrible pour le tout début du J dans le V.
Notons que cela va...Voir exemple de #3315, et peut-être #2904.
Créer aussi une séquence artificielle qui mettrait encore plus cela en valeur :
par exemple un `V-AAAAAA-30/J` avec accroche pas terrible pour le tout début du J dans le V.
Notons que cela va encore plus être le cas avec #2768.
Une manière de faire, sans relancer des calculs :
- le point optimal de séparation est déterminé comme maintenant : il minimise la somme
- puis on regarde dans les alignements s’il y a des délétions (ou équivalent si alignement local, voir aussi #xxxxx) dans V et/ou J), et on applique ces délétions pour faire ressortir le N.https://gitlab.inria.fr/vidjil/vidjil/-/issues/3315Mauvais alignement du J : check_and_resolve_overlap() et alignements curieux ...2018-07-12T18:26:08+02:00Mikaël SalsonMauvais alignement du J : check_and_resolve_overlap() et alignements curieux localementDans https://gitlab.inria.fr/vidjil/vidjil/merge_requests/148#note_99705 un alignement étrange est observé pour
(7efab5bb5) :
>
On s'attend à avoir `TRGV3*01 3/TCTTC/39 TRGJ2*01` mais on trouve `TRGV3*01 3//36 TRGJ2*01`. J'aurais pu me...Dans https://gitlab.inria.fr/vidjil/vidjil/merge_requests/148#note_99705 un alignement étrange est observé pour
(7efab5bb5) :
>
On s'attend à avoir `TRGV3*01 3/TCTTC/39 TRGJ2*01` mais on trouve `TRGV3*01 3//36 TRGJ2*01`. J'aurais pu me louper dans mon alignement mais `algo/tools/align` me dit bien cela pour l'alignement avec le TRGJ :
>
```
===== -m 2 : LocalEndWithSomeDeletions
194 TGTTGTCACAGGTAAGTATCGGAAGAAT (sequence)
||||||||||||||||||||||||||||
39 TGTTGTCACAGGTAAGTATCGGAAGAAT (TRGVJ2*01)
```
Et surtout les séquences amont n'ont rien à voir :
>
```
VVVVnnnnnJJJJJJJ...
seq GGACTCTTCTGTTGTCACAGGTAAGTATC
||||||||||||||||||||
TRGJ2*01 AACAACACTTGTTGTCACAGGTAAGTATC
```
Je vois mal comment TCTTC pourrait s'aligner avec ACT…
En regardant un peu plus, la `box_J` change suite à la résolution de l'overlap :
```
[/18 @173 TRGJ2*01(1) @173 18/]
[/36 @189 TRGJ2*01(1) @173 18/]
```
Je ne suis pas sûr de comprendre ce que cela signifie (on passe de 18 délétions à 36 ?). Mais pourquoi l'alignement trouvé par Vidjil n'est pas celui donné ci-dessus (le premier) ? Il a été obtenu avec l'outil `align` qui utilise les mêmes coûts et mode d'alignement que `DynProg`. Voilà comment l'obtenir (avec l'ordre actuel des germlines) :
```
algo/tools/align -m 2 -c 2 -i 0 -j 1 algo/tests/should-vdj-tests/7849-deleted-J.should-vdj.fa germline/homo-sapiens/TRGJ+down.fa
```
Ping @magiraudhttps://gitlab.inria.fr/vidjil/vidjil/-/issues/3314Options pour le calcul de la représentative ?2018-06-27T17:09:05+02:00Mathieu GiraudOptions pour le calcul de la représentative ?`ratio_representative` et `max_auditionned` n'ont pas d'options. Utilité ?`ratio_representative` et `max_auditionned` n'ont pas d'options. Utilité ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/3313Déplacer la documentation de Filter2018-06-27T14:14:47+02:00Cyprien BoréeDéplacer la documentation de FilterPour simplifier la lecture de la classe `FilterWithACAutomaton` et pour centraliser les informations sur le code, certains commentaires sur l'explication du fonctionnement de la classe doivent se trouver dans `doc/dev.org`.Pour simplifier la lecture de la classe `FilterWithACAutomaton` et pour centraliser les informations sur le code, certains commentaires sur l'explication du fonctionnement de la classe doivent se trouver dans `doc/dev.org`.Cyprien BoréeCyprien Borée