silico.biotoul.fr
 

Atelier Phylogénomique Analyses pan-génomiques

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Created page with '==Liens== *[http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique Atelier de Phylogénomique]')
m (Classification des proteins de l'OG0000017 d'OrthoFinder)
 
(19 intermediate revisions not shown)
Line 1: Line 1:
==Liens==
==Liens==
-
*[http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique Atelier de Phylogénomique]
+
*retour à [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique#Analyses_pan-g.C3.A9nomiques Atelier de Phylogénomique Analyses]
 +
 
 +
==Introduction==
 +
Les analyses pan-génomiques fournissent un cadre pour déterminer la diversité génomique de l'ensemble des gènomes analysés, mais aussi pour prédire, par extrapolation, combien de séquences génomiques supplémentaires seraient nécessaires pour caractériser l'ensemble du pan-génome ou répertoire génétique.
 +
 
 +
[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4765519/ Inside the Pan-genome - Methods and Software Overview]
 +
==Définitions==
 +
D'après [https://www.ncbi.nlm.nih.gov/pubmed/25483351 Vernikos ''et al.'' 2015]
 +
 
 +
Le pan-génome a été défini pour la première fois par [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1216834/ Tettelin et al., 2005].
 +
*le '''pan-génome''' englobe l'ensemble du répertoire de gènes accessibles au clade étudié ;
 +
*le '''génome coeur''' contient les gènes communs à toutes les souches du clade et comprend généralement des gènes responsables des aspects fondamentaux de la biologie du clade et de ses principaux traits phénotypiques ;
 +
*le '''génome accessoire''' est constitué des gènes communs à un sous-ensemble de souches et contribue à la diversité des espèces. Il peut coder des voies biochimiques supplémentaires et des fonctions qui ne sont pas essentielles à la croissance mais qui confèrent des avantages sélectifs, comme l'adaptation à différentes niches, la résistance antibiotique ou la colonisation d'un nouvel hôte ([https://www.sciencedirect.com/science/article/pii/S0959437X05001759 Medini ''et al.', 2005])
 +
*les gènes spécifiques d’une souche ou '''singletons''' désignent des gènes spécifiques à une souche n’ayant par d’orthologues dans les autres souches du clade.
 +
 
 +
==Mise en oeuvre==
 +
Ce script permet de prendre en compte les paralogs ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4507327/ Chan et al., 2015]).
 +
<source lang='bash'>
 +
cd ~/work/Prochlorococcus/panoct
 +
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/paralog_matchtable.pl -M results/matchtable_0_1.txt -P results/paralogs.txt > results/matchtable_paralog.txt
 +
</source>
 +
Celui-ci permet de reformater la table ''matchtable''.
 +
<source lang='bash'>
 +
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/matchtable2panoct.result.pl --results_dir results
 +
</source>
 +
Ce script calcule un ensemble de statistiques sur les résultats de panOCT.
 +
<source lang='bash'>
 +
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/pangenome_statistics.pl --data_file results/combined.att.dat --genomes_list results/genomes.list --method_result results/panoct.result -c results/centroids.fasta -f results/frameshifts.txt --fusion results/fragments_fusions.txt
 +
</source>
 +
Un résumé des résultats se trouve dans la fichier: [http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus/panoct/overview_stats.txt overview_stats.txt].
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.14:
 +
Commentez les résultats obtenus. Comparez ces résultats à ceux de Kettler et al., 2007.
 +
</pre>
 +
 
 +
Tracé de l'histogramme
 +
 
 +
<source lang='bash'>
 +
cat overview_stats.txt | perl -ne 'chomp; if ($p) {print "$_\n";} if (/^Cluster Size Breakdown/) {$p = 1;}' > core_cluster_histogram_data.txt
 +
 
 +
module load system/R-3.5.1
 +
 
 +
Rscript /home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/core_cluster_histogram.R -i core_cluster_histogram_data.txt
 +
 
 +
mv core_cluster_histogram.pdf ~/work/Prochlorococcus/images/.
 +
</source>
 +
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus/images/core_cluster_histogram.pdf core_cluster_histogram.pdf]
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.15:
 +
Après avoir indiqué sur la figure, le génome cœur, le génome accessoire, les singletons et le pan génome commentez les résultats obtenus.
 +
Quels sont les choix méthodologiques qui peuvent influencer la taille du génome cœur (argumentez)?
 +
</pre>
 +
 
 +
==Taille du pan génome==
 +
La taille du pan génome à tendance à augmenter avec le nombre de génomes comparés (pour une revue: [https://www.ncbi.nlm.nih.gov/pubmed/19086349/ Tettelin et al., 2008]). Estimer sa taille est un exemple d'une classe générale de mesures où, étant donné une collection d’entités et leurs attributs, le nombre d'attributs distincts observés est fonction du nombre d'entités considérées. C’est par exemple le cas de l’analyse du langage naturel, où les entités sont les textes et les attributs sont les mots. Dans ce contexte, l’augmentation du nombre ''n'' d'attributs distincts en fonction du nombre ''N'' d'entités considérées suit la loi de Heaps ([https://en.wikipedia.org/wiki/Heaps%27_law Heaps 'law]).  Elle peut être représentée par la formule :
 +
 
 +
n=k*N-α,
 +
 
 +
où, dans un contexte génétique, ''n'' est le nombre attendu de gènes pour un nombre ''N'' de génomes et les paramètres ''k'' et ''α'' (''α''=1-''γ'') sont des paramètres libres qui sont déterminés empiriquement ([https://www.ncbi.nlm.nih.gov/pubmed/19086349/ Tettelin et al., 2008]).
 +
 
 +
Appliqué à la découverte de nouveaux gènes et selon la loi de Heap, lorsque α > 1 (γ < 0), le pan-génome est considéré comme '''fermé''', et l'ajout de nouveaux génomes n'augmentera pas significativement le nombre de nouveaux gènes. Par contre, lorsque α < 1 (0 < γ < 1), le pan-génome est '''ouvert''', et pour chaque nouveau génome ajouté, le nombre de gènes augmente significativement ([https://www.ncbi.nlm.nih.gov/pubmed/19086349/ Tettelin et al., 2008]).
 +
 
 +
Pour déterminer les paramètres ''k'' et ''α'' nous pouvons calculer toutes les combinaisons de 2 à N génomes et reporter la taille du pan génome pour chaque combinaison. Cependant, comme le nombre de combinaisons augmente très rapidement avec le nombre de génomes (C=N!/(n−1)!⋅(N−n), en pratique un échantillonnage des combinaisons possible est réalisé.
 +
 
 +
===compute_pangenome.R===
 +
compute_pangenome.R usage:
 +
<pre>
 +
-i <input file name for tab delimited 0/1 pan-genome cluster table with column and row headers>
 +
-o <output file name for combinatorial counts>
 +
-p <percentage of genomes to be considered core - default 100>
 +
-q <percentage of genomes to be considered novel - default 0 but clearly at least one genome>
 +
-s <maximum number of combinatorial samples to generate>
 +
</pre>
 +
 
 +
<source lang='bash'>
 +
Rscript /home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/compute_pangenome.R -i results/matchtable_paralog.txt -o results/pangenome_size -p 95 -q 0 -s 250
 +
</source>
 +
MSK
 +
<!--
 +
<pre>
 +
work/scripts/compute_pangenome.R -i work/Prochlorococcus/panoct/results/matchtable_paralog.txt -o work/Prochlorococcus/panoct/results/pangenome_size -p 95 -q 0 -s 250
 +
</pre>
 +
-->
 +
 
 +
Ajout de la taille des génomes en première colonne:
 +
<source lang='bash'>
 +
for i in results/*.tab; 
 +
do     
 +
awk 'END{ printf "1\t"NR"\t0"NR"\t"NR"\t"NR"\t"NR"\t\n"}' $i;
 +
done > results/unique.txt
 +
cat results/pangenome_size results/unique.txt > results/pangenome_size_comp
 +
</source>
 +
 
 +
===Pan génome et génome coeur===
 +
<source lang='bash'>
 +
Rscript /home/formation/public_html/M2_Phylogenomique/scripts/pan_core_plot.R
 +
 
 +
evince ~/work/Prochlorococcus/images/pangenome.pdf
 +
</source>
 +
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus/images/pangenome.pdf pangenome.pdf]
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.16:
 +
Décrire la figure obtenue.
 +
Comment sont obtenus les différents points gris?
 +
A quoi correspondent les triangles et les carrés de couleurs et les deux courbes associées?
 +
Comparez cette figure à la Figure 1 de Kettler et al., 2007.
 +
</pre>
 +
<!--
 +
====Log x Log plot des nouveaux gènes ====
 +
<source lang='bash'>
 +
Rscript /home/formation/public_html/M2_Phylogenomique/scripts/new_genes_plot.R
 +
display ~/work/Prochlorococcus/images/newgenome.pdf
 +
</source>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.17:
 +
Décrire cette figure.
 +
Que représente le 'a' (alpha)?
 +
Comparez la valeur obtenue avec celle reportée dans Tettelin et al., 2008.
 +
Que pourrait être l'effet de l'ajout de nouveaux génomes sur la taille du pan-génome (voir Biller et al., 2015)?
 +
Que pouvez-vous en conclure?
 +
</pre>
 +
-->
 +
<!--
 +
===run_panoct.pl===
 +
<pre>
 +
--genome_list_file,-g : File containing list of genome names
 +
--att_dir, -A : Directory containing genome .att files
 +
--gene_att_file. -a : Use this gene_att_file instead of creating one from    att_dir
 +
--blast_file,-b : Path to a file of all-vs-all BLAST results. Must be -m 8    or -m 9 tab delimited output.
 +
 
 +
--working_dir, -w : Path to be consedered the working directory for the    pipeline. Defaults to cwd ('./').
 +
--no_grid : Run all subtasks locally instead of in parallel on an    SGE/Univa grid.
 +
</pre>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/run_panoct.pl --genome_list_file tags.txt --gene_att_file gene_att  --blast_file combined.blast --no_grid
 +
</pre>
 +
 
 +
results/R.plots/core_cluster_histogram.pdf
 +
 
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.18:
 +
Après avoir indiqué sur la figure, le génome cœur, le génome accessoire, les singletons et le pan génome commentez les résultats obtenus.
 +
Quels sont les choix méthodologiques qui peuvent influencer la taille du génome cœur (argumentez)?
 +
</pre>
 +
 
 +
==compute_pangenome.R==
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/compute_pangenome.R -i ~/work/Prochlorococcus/panoct/results/matchtable_paralog.txt -o ~/work/Prochlorococcus/panoct/results/pangenome_size -p 95 -q 0 -s 250
 +
</pre>
 +
 
 +
Afficher les courbes:
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
R
 +
pangenome_size <- '~/work/Prochlorococcus/panoct/results/pangenome_size'
 +
pdf_file <- '~/work/Prochlorococcus/images/pangenome_size.pdf'
 +
 
 +
data <- read.table(file=pangenome_size, header=T)
 +
data
 +
 
 +
ymax <- max(data$Genome, data$Pan_genome)
 +
ymin <- 0
 +
 
 +
pdf(file=pdf_file, paper="a4r")
 +
plot(data$Genome, data$Pan_genome, col='blue',xlim=c(2, 12), xlab='Number of genomes', ylab='Number of genes', ylim=c(ymin, ymax), pch=20)
 +
points(data$Genome, data$Core, col='red', pch=20)
 +
dev.off()
 +
cat(pdf_file, "\n")
 +
</pre>
 +
-->
 +
 
 +
==Classification des proteins de l'OG0000017 d'OrthoFinder==
 +
Nous avons vu que le l'OG0000017 d'OrthoFinder se décomposait en deux HOG. Comment se distribuent ces protéines avec panOCT?
 +
 
 +
<source lang='bash'>
 +
awk '{ if ($2~"OG0000017") {for (i=4; i<=NF; i++) { if($i~/^A/) {print $i}}}}' ~/work/OrthoFinder/Prochlorococcus/OrthoFinder/Results_Pro/Phylogenetic_Hierarchical_Orthogroups/N0.tsv > ~/work/Prochlorococcus/panoct/OG0000017.lst
 +
</source>
 +
MSK
 +
<!--
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
if [ -f ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt ];
 +
then
 +
  echo "rm ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt"
 +
fi
 +
-->
 +
 
 +
<source lang='bash'>
 +
while read -r i
 +
do
 +
awk -v var=$i '{
 +
  pattern=var;
 +
  if (match($0,pattern)) {
 +
  printf("%s\t%d\n", var,$1);
 +
  }
 +
}' ~/work/Prochlorococcus/panoct/all_clusters_members.txt
 +
done < ~/work/Prochlorococcus/panoct/OG0000017.lst
 +
</source>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.18:
 +
Commentez le résultat obtenu.
 +
Que pouvez-vous en conclure?
 +
</pre>
 +
MSK
 +
<!--
 +
Nous pouvons annoter le graphe de la classe 5 trouvée avec PorthoMCL avec les classes trouvées avec panoct. Comme les noms des séquences ne suivent pas la même règle, nous devons modifier le fichier classes pour ajouter un '|' entre le nom de souche et le nom de gène.
 +
 
 +
MSK
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sed -i -r 's/([A-Z][a-z]{3})(\w*\.)/\1|\2/g'  ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt
 +
</pre>
 +
 
 +
MSK
 +
<syntaxhighlight lang="python">
 +
library(igraph)
 +
gr <- read.graph("work/Prochlorococcus/PorthoMCL/G5.gr", format="ncol")
 +
cl <- read.table("work/Prochlorococcus/panoct/OG5_clusters_members.txt", row.names=1)
 +
colors <- rainbow(5)[as.factor(cl[V(gr)$name,])]
 +
plot(gr, vertex.label.cex=0.8, vertex.size=10, vertex.shape="sphere", vertex.color=colors, edge.width=E(gr)$weight, edge.color="red")
 +
</syntaxhighlight>
 +
-->
 +
----
 +
*[http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique#Analyses_pan-g.C3.A9nomiques Atelier de Phylogénomique]

Current revision as of 17:21, 30 November 2022

Contents

Liens

Introduction

Les analyses pan-génomiques fournissent un cadre pour déterminer la diversité génomique de l'ensemble des gènomes analysés, mais aussi pour prédire, par extrapolation, combien de séquences génomiques supplémentaires seraient nécessaires pour caractériser l'ensemble du pan-génome ou répertoire génétique.

Inside the Pan-genome - Methods and Software Overview

Définitions

D'après Vernikos et al. 2015

Le pan-génome a été défini pour la première fois par Tettelin et al., 2005.

  • le pan-génome englobe l'ensemble du répertoire de gènes accessibles au clade étudié ;
  • le génome coeur contient les gènes communs à toutes les souches du clade et comprend généralement des gènes responsables des aspects fondamentaux de la biologie du clade et de ses principaux traits phénotypiques ;
  • le génome accessoire est constitué des gènes communs à un sous-ensemble de souches et contribue à la diversité des espèces. Il peut coder des voies biochimiques supplémentaires et des fonctions qui ne sont pas essentielles à la croissance mais qui confèrent des avantages sélectifs, comme l'adaptation à différentes niches, la résistance antibiotique ou la colonisation d'un nouvel hôte (Medini et al.', 2005)
  • les gènes spécifiques d’une souche ou singletons désignent des gènes spécifiques à une souche n’ayant par d’orthologues dans les autres souches du clade.

Mise en oeuvre

Ce script permet de prendre en compte les paralogs (Chan et al., 2015).

cd ~/work/Prochlorococcus/panoct
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/paralog_matchtable.pl -M results/matchtable_0_1.txt -P results/paralogs.txt > results/matchtable_paralog.txt

Celui-ci permet de reformater la table matchtable.

/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/matchtable2panoct.result.pl --results_dir results

Ce script calcule un ensemble de statistiques sur les résultats de panOCT.

/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/pangenome_statistics.pl --data_file results/combined.att.dat --genomes_list results/genomes.list --method_result results/panoct.result -c results/centroids.fasta -f results/frameshifts.txt --fusion results/fragments_fusions.txt

Un résumé des résultats se trouve dans la fichier: overview_stats.txt.

Question 1.14:
Commentez les résultats obtenus. Comparez ces résultats à ceux de Kettler et al., 2007.

Tracé de l'histogramme

cat overview_stats.txt | perl -ne 'chomp; if ($p) {print "$_\n";} if (/^Cluster Size Breakdown/) {$p = 1;}' > core_cluster_histogram_data.txt
 
module load system/R-3.5.1
 
Rscript /home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/core_cluster_histogram.R -i core_cluster_histogram_data.txt
 
mv core_cluster_histogram.pdf ~/work/Prochlorococcus/images/.
Question 1.15:
Après avoir indiqué sur la figure, le génome cœur, le génome accessoire, les singletons et le pan génome commentez les résultats obtenus.
Quels sont les choix méthodologiques qui peuvent influencer la taille du génome cœur (argumentez)?

Taille du pan génome

La taille du pan génome à tendance à augmenter avec le nombre de génomes comparés (pour une revue: Tettelin et al., 2008). Estimer sa taille est un exemple d'une classe générale de mesures où, étant donné une collection d’entités et leurs attributs, le nombre d'attributs distincts observés est fonction du nombre d'entités considérées. C’est par exemple le cas de l’analyse du langage naturel, où les entités sont les textes et les attributs sont les mots. Dans ce contexte, l’augmentation du nombre n d'attributs distincts en fonction du nombre N d'entités considérées suit la loi de Heaps (Heaps 'law). Elle peut être représentée par la formule :

n=k*N-α,

où, dans un contexte génétique, n est le nombre attendu de gènes pour un nombre N de génomes et les paramètres k et α (α=1-γ) sont des paramètres libres qui sont déterminés empiriquement (Tettelin et al., 2008).

Appliqué à la découverte de nouveaux gènes et selon la loi de Heap, lorsque α > 1 (γ < 0), le pan-génome est considéré comme fermé, et l'ajout de nouveaux génomes n'augmentera pas significativement le nombre de nouveaux gènes. Par contre, lorsque α < 1 (0 < γ < 1), le pan-génome est ouvert, et pour chaque nouveau génome ajouté, le nombre de gènes augmente significativement (Tettelin et al., 2008).

Pour déterminer les paramètres k et α nous pouvons calculer toutes les combinaisons de 2 à N génomes et reporter la taille du pan génome pour chaque combinaison. Cependant, comme le nombre de combinaisons augmente très rapidement avec le nombre de génomes (C=N!/(n−1)!⋅(N−n), en pratique un échantillonnage des combinaisons possible est réalisé.

compute_pangenome.R

compute_pangenome.R usage:

 -i <input file name for tab delimited 0/1 pan-genome cluster table with column and row headers>
 -o <output file name for combinatorial counts>
 -p <percentage of genomes to be considered core - default 100>
 -q <percentage of genomes to be considered novel - default 0 but clearly at least one genome>
 -s <maximum number of combinatorial samples to generate>
Rscript /home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/compute_pangenome.R -i results/matchtable_paralog.txt -o results/pangenome_size -p 95 -q 0 -s 250

MSK

Ajout de la taille des génomes en première colonne:

for i in results/*.tab;  
do       
 awk 'END{ printf "1\t"NR"\t0"NR"\t"NR"\t"NR"\t"NR"\t\n"}' $i; 
done > results/unique.txt
cat results/pangenome_size results/unique.txt > results/pangenome_size_comp

Pan génome et génome coeur

Rscript /home/formation/public_html/M2_Phylogenomique/scripts/pan_core_plot.R
 
evince ~/work/Prochlorococcus/images/pangenome.pdf
Question 1.16:
Décrire la figure obtenue. 
Comment sont obtenus les différents points gris? 
A quoi correspondent les triangles et les carrés de couleurs et les deux courbes associées?
Comparez cette figure à la Figure 1 de Kettler et al., 2007. 

Classification des proteins de l'OG0000017 d'OrthoFinder

Nous avons vu que le l'OG0000017 d'OrthoFinder se décomposait en deux HOG. Comment se distribuent ces protéines avec panOCT?

awk '{ if ($2~"OG0000017") {for (i=4; i<=NF; i++) { if($i~/^A/) {print $i}}}}' ~/work/OrthoFinder/Prochlorococcus/OrthoFinder/Results_Pro/Phylogenetic_Hierarchical_Orthogroups/N0.tsv > ~/work/Prochlorococcus/panoct/OG0000017.lst

MSK

while read -r i
do
 awk -v var=$i '{
  pattern=var;
  if (match($0,pattern)) {
   printf("%s\t%d\n", var,$1);
  }
 }' ~/work/Prochlorococcus/panoct/all_clusters_members.txt
done < ~/work/Prochlorococcus/panoct/OG0000017.lst
Question 1.18:
Commentez le résultat obtenu. 
Que pouvez-vous en conclure?

MSK