silico.biotoul.fr
 

Atelier Phylogénomique Analyses pan-génomiques

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Mise en oeuvre)
m (Mise en oeuvre)
Line 42: Line 42:
mv core_cluster_histogram.pdf ~/work/Prochlorococcus/images/.
mv core_cluster_histogram.pdf ~/work/Prochlorococcus/images/.
 +
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus/images/core_cluster_histogram.pdf core_cluster_histogram.pdf]
</pre>
</pre>
<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">

Revision as of 15:54, 14 October 2021

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

/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/.
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus/images/core_cluster_histogram.pdf core_cluster_histogram.pdf]
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>
/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

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. 

PanOCT classification des proteins de l'OG 5 de PorthoMCL

Nous avons vu que le OG 5 de PorthoMCL renfermait 36 séquences. Comment se distribuent ces protéines avec panOCT?

MSK

if [ -f ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt ]; 
then
  echo "rm ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt"
fi

for i in Aaaa.g_00266 Aaaa.g_00937 Aaaa.g_01196 Aaab.g_00239 Aaab.g_00820 Aaab.g_00825 Aaac.g_01231 Aaac.g_01233 Aaac.g_02086 Aaad.g_00743 Aaad.g_00747 Aaad.g_00909 Aaae.g_00242 Aaae.g_00786 Aaae.g_00791 Aaaf.g_00249 Aaaf.g_00782 Aaaf.g_00787 Aaag.g_00262 Aaag.g_00862 Aaag.g_00867 Aaah.g_00255 Aaah.g_00856 Aaah.g_01180 Aaai.g_00757 Aaai.g_00761 Aaai.g_00954 Aaaj.g_00252 Aaaj.g_00786 Aaaj.g_00791 Aaak.g_00251 Aaak.g_00834 Aaak.g_00839 Aaal.g_00941 Aaal.g_00943 Aaal.g_02214 
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 >> ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt
done

sort -nk 2 ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt
Question 1.18:
Commentez le résultat obtenu. 
Que pouvez-vous en conclure?

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

sed -i -r 's/([A-Z][a-z]{3})(\w*\.)/\1|\2/g'  ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt

MSK

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")