silico.biotoul.fr
 

M1 BBS Graphes TP Recherche de communautés dans les graphes

From silico.biotoul.fr

Revision as of 13:03, 12 December 2016 by Quentin (Talk | contribs)
Jump to: navigation, search

Contents

Introduction

Nous allons réaliser une analyse de génomique comparative qui s’inspire d’un travail publié par Snipen et Liland (2015). Le but est d’identifier le core et le pan génome d’un ensemble de souches bactériennes. Le core génome est l’ensemble des gènes communs à toutes les souches. Le pan génome est l’ensemble des gènes codés par au moins une des souches. Dans ce contexte un gène est en réalité une famille de gènes ou un cluster de gènes similaires. Idéalement, une famille de gènes serait une collection de gènes orthologues. Néanmoins, comme une analyse pan génomique ne produit pas toujours des groupes de gènes orthologues, il est préférable de parler de clusters de gènes. Bien que ce concept de clusters de gènes joue un rôle central dans les analyses de génomiques comparatives, il n’y a pas de consensus sur la façon de les calculer! Dans ce TP, nous allons explorer une approche basée sur la détection de communautés dans un graphe.

Snipen et Liland ont écrit un package R qui permet de répondre à cette question (micropan). Ils ont mis à disposition une étude de cas casestudy. pdf afin de guider les utilisateurs de ce package.

Les données

12 souches de Yersinia pestis seront analysées. Les données sont disponible sur le serveur silico dans le répertoire enseignement/m1-bioinfo/Graphe/micropan/Ypestis. Les protéines en format FASTA sont dans le répertoire data/proteins. Les comparaisons entre pairs de génomes sont réalisées à l’aide de Blast+ et une annotation des domaines Pfam des protéines est réalisée avec HMMER3. Les fichiers pré-calculés sont disponibles dans les répertoires blast et pfam. Ils sont également disponibles sous forme compressée.

Les noms des protéines sont construits de la façon suivante:

  • Première lettre en majuscule : la première lettre du genre (Y pour Yersinia)
  • Les trois lettres suivantes en minuscule : les trois premières lettres de l’espèce (pes pour pestis)
  • La cinquième lettre majuscule est le code souche (A pour KIM)
  • Les deux chiffres suivant se réfèrent au numéro du chromosome (01 pour le chromosome 1)
  • Un point est utilisé comme séparateur, il est suivit du nom de la protéine

Mise en œuvre

Nous allons utiliser les librairies : micropan et iGraph et le fichier my_micropan.R qui contient des fonctions de micropan modifiées pour prendre en compte les préfixes de nos protéines.

source(“my_micropan.R)

Tableau de données

Lecture du tableau décrivant les souches utilisées dans l’analyse.

setwd(root_dir)
genome_table_file <- "data/Ypestis.csv"

Utilisez la fonction read.table() pour charger le fichier dans la variable genome_table. Le fichier est tabulé avec un entête.

Les fichiers contenant les séquences des protéines en format FASTA sont dans le sous répertoire data/proteins. Les noms des fichiers sont dans la première colonne de genome_table.

  • Ajoutez une colonne avec le nombre de protéines dans chaque souche.

Lire chaque fichier FASTA avec la commande readLines(). Le nombre de protéines est égal au nombre de ‘>’ présents dans le fichier (utilisez grep() par exemple).

  • Tracer la distribution de la taille des protéomes (avec boxplot()).

Comparaisons des pairs de protéomes

Pour chaque pair de génomes (A, B), chaque protéine du génome A est comparée à toutes les protéines du génome B et réciproquement à l’aide de BlastP. Les alignements avec une E value < 1 sont retenus. Les résultats, sous forme tabulée, sont dans le sous répertoire blast. Les noms des fichiers sont de la forme YpesA_vs_YpesB.txt.

  • Pourquoi utiliser les protéines à la place des gènes?

La fonction blastAllAll() de micropan permet de réaliser les différents BlastP.

in_files = c();
for (i in 1:nrow(genome_table) ) {
	in_files[i] <- file.path("data/proteins", genome_table$File[i])
}
out_folder <- "blast"
myblastAllAll(in_files, out_folder, e.value=1, job=1)

Nous utiliserons les résultats pré-calculés présent dans le répertoire blast.

Inspection des résultats du BlastP All/All

La commande readBlastTable() de micropan peut être utilisée pour relire les fichiers au format tabulé.

readBlastTable(‘blast/YpesA_vs_YpesB.txt)
  • Calculez le nombre moyen de hits par protéines pour les deux comparaisons (YpesA_vs_YpesB et YpesB_vs_YpesA).