Atelier Phylogénomique Analyses pan-génomiques
From silico.biotoul.fr
m (→PanOCT classification des proteins de l'OG 5 de PorthoMCL) |
m (→Classification des proteins de l'OG0000017 d'OrthoFinder) |
||
(16 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
==Liens== | ==Liens== | ||
- | *[http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique#Analyses_pan-g.C3.A9nomiques Atelier de Phylogénomique Analyses | + | *retour à [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique#Analyses_pan-g.C3.A9nomiques Atelier de Phylogénomique Analyses] |
==Introduction== | ==Introduction== | ||
Line 17: | Line 17: | ||
==Mise en oeuvre== | ==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]). | 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 | /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''. | 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 | /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. | 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 | /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: | + | 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"> | <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: | Question 1.14: | ||
Line 36: | Line 37: | ||
Tracé de l'histogramme | 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 | ||
- | /home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/core_cluster_histogram.R -i 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/. | 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"> | <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: | Question 1.15: | ||
Line 69: | Line 74: | ||
</pre> | </pre> | ||
- | < | + | <source lang='bash'> |
- | /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 | + | 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> | </pre> | ||
+ | --> | ||
+ | |||
Ajout de la taille des génomes en première colonne: | 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 | cat results/pangenome_size results/unique.txt > results/pangenome_size_comp | ||
- | </ | + | </source> |
+ | |||
===Pan génome et génome coeur=== | ===Pan génome et génome coeur=== | ||
- | < | + | <source lang='bash'> |
Rscript /home/formation/public_html/M2_Phylogenomique/scripts/pan_core_plot.R | Rscript /home/formation/public_html/M2_Phylogenomique/scripts/pan_core_plot.R | ||
evince ~/work/Prochlorococcus/images/pangenome.pdf | 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"> | <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: | Question 1.16: | ||
Line 91: | Line 109: | ||
<!-- | <!-- | ||
====Log x Log plot des nouveaux gènes ==== | ====Log x Log plot des nouveaux gènes ==== | ||
- | < | + | <source lang='bash'> |
Rscript /home/formation/public_html/M2_Phylogenomique/scripts/new_genes_plot.R | 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"> | <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: | Question 1.17: | ||
Line 152: | Line 170: | ||
--> | --> | ||
- | == | + | ==Classification des proteins de l'OG0000017 d'OrthoFinder== |
- | Nous avons vu que le | + | 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 | MSK | ||
+ | <!-- | ||
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap"> | <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 ]; | if [ -f ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt ]; | ||
Line 161: | Line 183: | ||
echo "rm ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt" | echo "rm ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt" | ||
fi | fi | ||
+ | --> | ||
- | + | <source lang='bash'> | |
+ | while read -r i | ||
do | do | ||
awk -v var=$i '{ | awk -v var=$i '{ | ||
Line 169: | Line 193: | ||
printf("%s\t%d\n", var,$1); | printf("%s\t%d\n", var,$1); | ||
} | } | ||
- | }' ~/work/Prochlorococcus/panoct/all_clusters_members | + | }' ~/work/Prochlorococcus/panoct/all_clusters_members.txt |
- | done | + | 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: |
- | <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. | Commentez le résultat obtenu. | ||
Que pouvez-vous en conclure? | Que pouvez-vous en conclure? | ||
</pre> | </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. | 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. | ||
Line 194: | Line 218: | ||
plot(gr, vertex.label.cex=0.8, vertex.size=10, vertex.shape="sphere", vertex.color=colors, edge.width=E(gr)$weight, edge.color="red") | 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> | </syntaxhighlight> | ||
+ | --> | ||
---- | ---- | ||
- | *[http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique#Analyses_pan-g.C3.A9nomiques Atelier de Phylogénomique | + | *[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
- retour à 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.
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