• Aucun résultat trouvé

8.1Annexe 1

Explication détaillée du script-final

head -5512 FLORALIM_11P1134572.fasta > fewseqsFLORALIM_11P1134572

Cette commande head va permettre de récupérer sur les 69 échantillons 2756 séquences. On fait head -5576 car une séquence se retrouve sur 2 lignes.

>nomdelaséquence

ATCTACTAGTACGTAGCATAATGACGTATG---Il faut donc déjà à partir de là faire attention sur la limite d’Esprit-tree de 500000 séquences.

Cette commande doit être faite sur tous les échantillons pour préparer les échantillons au clustering, les échantillons deviennent fewseqsFLORALIM_* pour garder nos fichiers de départ.

sed 's/>/>11P1134572__/' fewseqsFLORALIM_11P1134572>namedfewseqsFLORALIM_11P1134572

Cette commande permet d’ajouter devant chaque séquences de chaque échantillon d’ajouter le nom de l’échantillon pour bien observer l’appartenance de chaque séquence aux différents clusters. On ajoute un double underscore (__) pour séparer le nom de séquence au nom de l’échantillon.

Nomdelechantillon_nomdelaséquence.

Le fichier devient namedfewseqsFLORALIM_*

echo 'chimera.uchime(fasta=namedfewseqsFLORALIM_11P1134572,reference=self)'>>uchimetemp.txt

'remove.seqs(accnos=namedfewseqsFLORALIM_11P1134572uchime.accnos, fasta=namedfewseqsFLORALIM_11P1134572)'>>uchimetemp.txt

Cette commande permet de trouver les chimères dans un premier temps et dans un second temps de les supprimer. Ces chimères proviennent suite à l’amplification PCR, ce sont des séquences artéfactuelles produites par le protocole expérimental. Elles représentent un problème important car elles suggèrent la présence d’organismes non important. Pour une meilleure visualisation et surtout dans un objectif d’obtenir un résultat de clustering le plus précis possible donc le plus juste.

Cette commande est faite pour les 69 échantillons que l’on a renommé namedfewseqsFLORALIM_11P1134572.). A la fin dans la commande on a ‘>>uchimetemp.txt’, cela permet d’écrire dans le fichier uchimetemp.txt les 138 lignes de commande correspondant au traitement des chimères.

echo 'mothur uchimetemp.txt'>>startuchime.sh

qsub -q unlimitq -l h_vmem=32G -l mem=32G startuchime.sh

En comparant les abondances de séquences et voir si des chimères se sont produites sur la base de dire est ce qu’il a une première région qui ressemble à une première séquence, une deuxième région qui ressemble à une autre séquence et est-ce que cette séquence a des similitudes avec d’autres séquences d’un même échantillon. On part du principe qu’une chimère est moins abondante que ces parents.

Cette deuxième commande dure vraiment plus longtemps vu le nombre de comparaisons à faire pour chaque séquence et sort en sortie différents fichiers :

Fichiers picks sans les séquences chimériques.

Fichiers unique

37

Fichiers uchime.accnos

Fichiers uchime.chimeras

C’est à partir de ce moment qu’il faut voir si le nombre total de séquences des fichiers picks ne dépassent pas les 500000 séquences pour pouvoir utiliser Esprit-tree.

Dans le cas des 69 échantillons on a environ 159 000 séquences largement inférieur aux 500000 séquences donc je peux continuer l’analyse pour une clusterisation.

grep ‘>’ –namedfewseqsFLORALIM*picks.

cat namedfewseq*pick >all.fasta

Cette commande permet de faire la concaténation de tous les fichiers picks que l’on obtient pour chaque échantillon. Ces fichiers sont mis dans le fichier all.fasta que l’on utilisera pour Esprit-tree.

to start without qlogin: qsub -q unlimitq -l h_vmem=32G -l mem=32G script16sETanalysis.sh

Après avoir le fichier all.fasta où se retrouve tous les fichiers pick, on se lance dans Esprit-tree que l’on peut lancer directement avec le script16Sanalysis.sh ou manuellement en lançant étape par étape.

sed 's/ .*//g' all.fasta > tmp.fasta

Cela permet de supprimer les espaces dans les fichiers all.fasta et le nomme tmp.fasta.

cp tmp.fasta all.fasta

Cette commande permet de copier le fichier tmp.fasta dans all.fasta => C’est une étape importante car si un espace est en place cela peut causer des erreurs.

esprit-tree.sh all.fasta

Il initialise son algorithme de clusterisation en regroupant les séquences par similitude. L’avantage d’esprit-tree c’est qu’il génère ici des fichiers par OTU, c’est-à-dire un fichier dans lequel on toutes les séquences appartenant à l’OTU. C’est une étape qui prend beaucoup de temps en termes de calcul.

parsecluster all.fasta all.org.Clusters 0.03 0.03

Répartition de chaque séquences de chaque échantillon à un seuil de 0.03 de clusterisation, ce seuil a été établi par la publication Esprit-tree pour précisément les régions V3 et V4 de l’ARN 16S.

R CMD BATCH script_RcountfromET2tempoVD.r

C’est une commande R qui utilise un script pour compter le nombre d’apparition de chaque OTU dans chaque échantillon. En plus de ça R lance mothur qui lance RDPclassifier et l’avantage de cela est que pour chaque OTU il prend la séquence la plus longue comme représentative et donne l’assignation RDP de cette séquence pour produire in fine la table table.cluster.all.csv. Cette table sera la table esprittree et contient 26824 OTUs. C’est une table d’abondance où pour chaque OTU on a le nombre de fois où chaque échantillon est présent, le nom de la séquence avec le nom de l’échantillon qui est la plus proche pour un OTU et la taxonomie que donne RDP.

38

8.2 Annexe 2

Ci-dessous on retrouve une partie du script R qui m’a permis de créer une boucle de vérification de la table d’abondance espritree brute pour connaitre à partir de combien de composantes principales mes lignées pouvaient être séparé si c’était le cas.

m= c() p= c() for (i in 2:69){ threshold=26824; PCAnumber=i DAnumber=2

factortemp<-as.factor(as.character(factorsXFLORALIM$lignee[1:69])) ;#this manoeuvre avoids draging the t1 as extra "artificial" level; layout(matrix(1:1)); sample(factorsXFLORALIM$lignee[1:69],replace=F)))

numerictempdata<-numeric_Data[1:threshold,1:69] #parameters for DAPC

dapc7<-dapc(t(numerictempdata),factortemp, n.pca=PCAnumber, n.da=DAnumber) print(dapc7$var)

temp <- optim.a.score(dapc7)

temp7<-a.score(dapc7, n.sim=500);#test of the significance of the separation based on randomization of the groups

temp7$testresult<-apply(temp7$tab,2,function(x) t(c(length(which(x<0))/dim(array(x))))) #count the number of zeros for non-param test of group separation

# print(temp7$testresult, digits = getOption("digits"), quote = FALSE,na.print = "", zero.print = "0", justify = "none")

print(temp7$testresult, digits = getOption("digits"), quote = FALSE,na.print = "", zero.print = "0", justify = "none")

temp7$testresult[1]->m[i] temp7$testresult[2]->p[i]

}

table_pcnumbers =matrix(c(m,p),nrow =i,ncol= 2) table_pcnumbers = as.data.frame(table_pcnumbers) names(table_pcnumbers)= c('m','p')

plot(table_pcnumbers$m, , type = "o", main = 'Graphe représentant les probabilités de m et p en fonction du nombre de composantes principales pour espritreetotal ',xlab= 'Composantes principales', ylab =' Probabilités m et p(bleu)',)

39

8.3 Annexe 3

Heatmap représentant le résultat de corrélation d’une RCCA entre la table d’abondance esprittree au temps 2 transformée en gardant seulement les OTUs contribuant à la séparation des lignées (loadings) possédant au moins la présence de trois échantillons distincts avec les performances zootechniques de 23 porcs

40

Tableau représentant les valeurs de corrélation significatives de la RCCA avec la table d’abondance esprittree contenant les OTUs contribuant le plus à la séparation des lignées au temps 2 et les performances zootechniques de 9 caractères

Heatmap représentant le résultat de corrélation d’une RCCA entre la table d’abondance esprittree au temps 3 transformée en gardant seulement les OTUs contribuant à la séparation des lignées (loadings) possédant au moins la présence de trois échantillons distincts avec les performances zootechniques de 23 porcs

41

Tableau représentant les valeurs de corrélation significatives de la RCCA avec la table d’abondance esprittree contenant les OTUs contribuant le plus à la séparation des lignées au temps 3 et les performances zootechniques de 9 caractères

Documents relatifs