1 of 21

Atelier Variant

niveau 2

Nadia BESSOLTANE - INRAe

Bastien JOB - Gustave Roussy

Wilfrid Richer - Institut Curie

École de bioinformatique niveau 2 AVIESAN-IFB-INSERM 2021

2 of 21

https://www.genome.gov/Health/Genomics-and-Medicine/Polygenic-risk-scores#one

Définition

Il existe différents types de variations :

  • SNV : Single Nucleotide Variant
  • INDEL : INsertion ou DELetion
  • SV (Structural Variant)
  • CNV (Copy Number Variation)

3 of 21

Niveau 1...

3

Fastq Quality Control

-- FastQC --

Mapping

-- Bowtie2/Bwa --

Reads (Fastq)

Reference genome (Fasta)

Processing Post Alignement

Variant Calling

SNV & InDels

Filtrage & Annotation

Variants Structuraux

UNIX

4 of 21

Niveau 2 ...

4

Fastq Quality Control

-- FastQC --

Mapping

-- Bowtie2/Bwa --

Reads (Fastq)

Reference genome (Fasta)

Processing Post Alignement

Variant Calling

& Annotation

QC & Filtres

Recherche de marqueurs

Copy Number

5 of 21

  • Analyse des variants post-VCF (SNV & InDel) : contrôle qualité, filtres, recherche de marqueurs (Nadia B.)
  • Variations du Nombre de Copies (CNVs) (Bastien J.)

5

Objectifs�

6 of 21

Analyse de variants

post-VCF

Nadia BESSOLTANE - INRAE

École de bioinformatique niveau 2 AVIESAN-IFB-INSERM 2021

7 of 21

7

Rappel : du fastq au VCF�

8 of 21

Rappel : du fastq au VCF�

9 of 21

VCF (variant call format)

10 of 21

vcfR package

Manipulate and Visualize VCF Data

CRAN : The Comprehensive R Archive Network

> ## installer le package

> #install.packages(“vcfR”)

> ## charger le package

> library(vcfR)

> ## afficher la description du package

> browseVignettes('vcfR')

> my.vcf <- read.vcfR(file=”pool.vcf.gz”)

11 of 21

objet de la classe vcfR

> # l’objet vcf appartient à quelle class

> is(my.vcf)

[1] "vcfR"

> # la liste des slots (sections)

> slotNames(my.vcf) #

[1] "meta" "fix" "gt"

> # vcf header

> my.vcf@meta

> # information about variants

> my.vcf@fix

> # genotype of each sample

> my.vcf@gt

Trois sections :

  • meta-information == entête du vcf
  • Fixed information == information par variant mais commune à tous les échantillons (position, allèles, qualité…)
  • Genotype information == information de génotypage par échantillon

12 of 21

12

##fileformat=VCFv4.2

##FILTER=<ID=LowQual,Description="Low quality">

##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">

##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtere

##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">

##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">

##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VC

##GATKCommandLine=<ID=HaplotypeCaller,CommandLine="HaplotypeCaller --min-base-quality-score 18 --emit-ref-confidence NONE

##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">

##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">

##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities

...

##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read positio

##INFO=<ID=SOR,Number=1,Type=Float,Description="Symmetric Odds Ratio of 2x2 contingency table to detect strand bias">

##contig=<ID=6,length=119458736>

##source=HaplotypeCaller

#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SRR1262731 SRR1262732

6 2 . T A 67.64 . AC=1;AF=0.500;... GT:AD:DP:GQ:PL 0/1:3,2:5:75:75,0,105 0/1:3,2:5:75:75,

6 4 . GT G 58.60 . AC=1;AF=0.500;... GT:AD:DP:GQ:PL 0/1:1,2:3:28:66,0,28 0/1:1,2:3:28:66,

6 9 . C CA 55.60 . AC=1;AF=0.500;... GT:AD:DP:GQ:PL 0/1:7,2:9:63:63,0,279 0/1:7,2:9:63:63,

VCF header

Body

objet de la classe vcfR

meta(DATA)

fix (data)

gt (génotype)

13 of 21

Jeux de données #1:

Chez le bovin, il existe un locus de caractères quantitatifs (QTL) lié à la production de lait, situé sur le chromosome 6, et plus exactement sur une région de 700 kb, composée de 7 gènes.

Les échantillons QTL+ sont caractérisés par une diminution de la production en lait et une augmentation des concentrations en protéine et lipide.

Quelle mutation est responsable de ce QTL ?

Pour le TP nous disposons des résultats du variant calling de 3 échantillons (en Multi-VCF annoté).

TP 1 : recherche de mutation dans un QTL

Miri Cohen-Zinder et al, Genome Research 2005, DOI:10.1101/gr.3806705

Echantillons

Phénotype

Source

SRR1262731

QTL-

projet 1000 génomes bovins

SRR1205992

QTL+

SRR1205973

QTL+

RMD

14 of 21

1- Se connecter sur Rstudio via JupyterLab

2- Aller dans l’espace projet

> setwd(“/shared/projects/my_project”)

3- Créer un répertoir TP

> dir.create(“TP_variants”)

4- Copier le matériel de TP dans le dir TP_variants

> file.copy(from = “/shared/projects/ebai2021_n2/DNAseq/variants/”,

to = “TP_variants”)

> setwd(“TP_variants”)

5- Changer le workspace.

Support de TP

15 of 21

Rappel : Filtre des variants

  • De nombreux filtres peuvent être appliqués sur le VCF

→ type de variants à garder (SNVs seulement, Indels...)

→ région d’intérêt

→ filtres sur la qualité (seuils arbitraires : profondeur, génotype (0/1, 1/1), ratio allélique…)

GATK Bests Practices : recommendations selon des métriques spécifiques à GATK, différentes pour les SNVs des Indels

  • Filtres difficilement transposables entre analyse :

→ dépendent de la question biologique

→ dépendent des outils utilisés

15

RMD

→ d’où l'intérêt de faire ses propres scripts

16 of 21

Rappel : Faux positif

  • De nombreux variants Faux Positifs peuvent survenir des étapes précédentes :
    • Artéfacts issus des cycle PCR pendant la préparation des échantillons
    • Artéfacts liés à la technologie de séquençage (PacBio, HiSeq, NextSeq, … )
    • Difficultées d’alignement (régions d’ADN répétées)
    • Erreurs de lecture lors du “BaseCalling”

17 of 21

Rappel :

Faux positifs vs Filtres qualité

True Positive (polymorphisms,mutations)

False

Positive

Faux Négatif

True Négatif

Filtres/seuils

résultat final

Variant calling results

Plus on est stringent plus on va éliminer les faux positifs mais avec le risque de perdre de vrais variants

max de vrais variants

min de faux positifs

RMD

18 of 21

Rappel :

Faux positif vs Filtres qualité

True Positive (polymorphisms,mutations)

False

Positive

Filtres/seuils

résultat final

Variant calling results

Plus on est stringent plus on va éliminer de faux positifs mais avec le risque de perdre de vrais variants

max de vrais variants

min de faux positifs

RMD

19 of 21

TP 2 : Mapping-by-sequencing

Jeux de données #2: Projet SOJ « Suppressor Of jmj14 » N. Butel et I. Le Masson (IJPB - INRAe)

  • Des publications récentes suggèrent que la marque H3K4me3 protège les gènes contre le mécanisme de silencing PTGS( post-transcriptional gene silencing) qui est un mécanisme de défense contre les acides nucléiques invasifs.
  • Chez Arabidopsis thaliana, Le gène JMJ14 code pour une Histone H3K4me2/3 démethylase. Les plantes mutées pour ce gène (mutants jmj14) montrent une accumulation globale d’histones H3K4 di- et tri-methylées.

→ Afin de comprendre le rôle de JMJ14 dans la systémie de la PTGS et d’identifier ses partenaires, des cribles génétiques ont été réalisés visant à isoler des suppresseurs de la mutation jmj14.

RMD

20 of 21

TP 2 : Mapping-by-sequencing

Gène JMJ14 WT WT muté

Transgène JAP3 - + +

Phénotype :

couleur des nervures

Arabidopsis thaliana

Mutagénèse EMS

autofécondation

Grains

JAP3-jmj14/SOJ

X

JAP3-jmj14

JAP3-jmj14

F1

autofécondation

¼ F2 🡪

JAP3-jmj14/SOJ

Séquençage HiSeq3000

paired-end 150 pb

couverture 20X

pool de ~30 plantes

Jeux de données #2: Projet SOJ « Suppressor Of jmj14 » N. Butel et I. Le Masson (IJPB - INRAe)

Plan expérimental :

Données :

    • 14 échantillons SOJ
    • 1 échantillon JAP3-jmj14 🡪 contrôle

Pour le TP nous disposons des résultats du variant calling des 15 échantillons (en Multi-VCF annoté).

21 of 21

TP 2 : Mapping-by-sequencing

* Recherche des pics

Principe :

RMD