bioinfo-pf-curie / TMB

Tumor Mutational Burden
Other
49 stars 15 forks source link

Filtres coding / Non coding #2

Open Ephedria opened 3 years ago

Ephedria commented 3 years ago

Bonjour,

Il y a une ambiguïté actuellement sur les filtres coding / non coding. Un variant qui est annoté par Snpeff peut redonner plusieurs transcripts. Ainsi un variant donné peut avoir un transcript qui est codant ET un transcript qui est non codant. A l'heure actuelle :

Dans notre cas, si on veut retirer des variants qui sont non coding, on va aussi retirer des variants qui sont coding car non coding pour un des transcrits.

Serait t'il possible de changer le filtre Non coding pour ne retirer que les variants qui sont annotés seulement avec des tags Noncoding, et que dans le cas ou il y a un coding, on le garde ?

Mario

nservant commented 3 years ago

Merci @Ephedria Excellente remarque. On regarde cela et on revient vers toi

Ephedria commented 3 years ago

Hello,

Je vais préciser le souci actuel. Ce bug n'est présent que lorsque snpeff est utilisé comme annotation. Ce bug est n'apparait donc pas sur annovar qui je pense, annote qu'une seule fois.

Snpeff annote les variants avec tout les transcripts possibles, ainsi sur un variant donné il peut avoir jusqu'a 10 transcripts.

image

Ici on retrouve un variant qui a été filtré par le filtre NONCODING alors que plusieurs transcripts sont "protein_coding"

On peut étendre ce problème à tout les filtres.

Quelle est l'interaction avec le filtre -NonSyn ? Imaginons qu'on utilise juste le filtre -NonSyn qui doit retirer donc les variants synonymes, que ce passe t'il si un transcrit est codant, mais que sur une autre annotation, ce transcrit la est synonyme ? Celui ci sera t'il retiré ?

Autre question supplémentaire, comment est géré les doubles annotations ? Par exemple : splice_region_variant&synonymous_variant

Desolé pour toutes ces interrogations ...

Mario

nservant commented 3 years ago

Hello Mario,

Le comportement actuel est le suivant ; à partir du moment ou l'annotation est retrouvée au moins une fois, le variant est filtré. Donc par rapport au point que tu soulèves, je pense que cela pose problème uniquement pour les filtres Non*, à savoir NonSynonymous et NonCoding ? pour lesquels on voudrait considérer comme NonSynonymous/NonCoding seulement les cas annotés comme tel pour tous les transcrits ?

Concernant les interaction entre filtres, ils sont simplement appliqués les uns après les autres. Donc si un variant peut passer le filtre isCoding par exemple, et être filtré à l'étape NonSynonymous.

Pour en reparler N

nservant commented 3 years ago

Pour note, je pense qu'on peut facilement ajouter un nouveau champs dans le fichier de config, genre multiTranscripts=True/False qui active la contrainte que tous les transcripts soient concordants pour les filtres Non*