silico.biotoul.fr
 

Atelier Phylogénomique

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Arbre SSU avec IQ-TREE)
m (eggNOG)
 
(387 intermediate revisions not shown)
Line 1: Line 1:
==Matériel pédagogique==
==Matériel pédagogique==
'''Support de cours''' : Quest for Orthologs
'''Support de cours''' : Quest for Orthologs
-
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Quest4orthologs_2018.pdf Présentation].
+
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Quest4orthologs_2020.pdf Présentation].
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/references_QfO.pdf Références]
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/references_QfO.pdf Références]
-
'''Support de cours''' : Alignements de génomes et Phylogénomique  
+
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus_2020.pdf Prochlorococcus]
-
*[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2018_supports/ supports]
+
'''Support de cours''' : Alignements de génomes
-
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Genome_alignments_2019.pdf Genome_alignments.pdf]
+
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Genome_alignments_2020.pdf Genome_alignments]
 +
''Support de cours''' : Phylogénomique
 +
*[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2020_supports/PhylogenomicOct2020.pdf Phylogénomique]
 +
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Genome_alignments_2020.pdf Genome_alignments.pdf]
'''Support de cours''' : Reconstruction des états ancestraux des caractères
'''Support de cours''' : Reconstruction des états ancestraux des caractères
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/ancestral_traits_2018.pdf Présentation].
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/ancestral_traits_2018.pdf Présentation].
-
<!--
+
 
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/ancestral_traits.pdf Présentation] 'Reconstruction of ancestral traits'.
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/ancestral_traits.pdf Présentation] 'Reconstruction of ancestral traits'.
*[http://phytools.org/eqg/Exercise_5.2/ Ancestral State Reconstruction with phytools]
*[http://phytools.org/eqg/Exercise_5.2/ Ancestral State Reconstruction with phytools]
*[http://www.phytools.org/eqg2015/asr.html Ancestral State Reconstruction with phytools2]
*[http://www.phytools.org/eqg2015/asr.html Ancestral State Reconstruction with phytools2]
 +
 +
*[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2022_supports/Reconstruction_etats_ancestraux.html Reconstruction_etats_ancestraux.html]
 +
*[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2022_supports/Reconstruction_etats_ancestraux.Rmd Reconstruction_etats_ancestraux.Rmd]
 +
 +
anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia iris jacinthe
 +
<!--
 +
décrivant l'installation des logiciels pour les différents ateliers : http://silico.biotoul.fr/p/M2BBS_-_Atelier_Syst%C3%A8me
-->
-->
Line 19: Line 29:
*[https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0088837 Sun and Blanchard, 2014] Strong Genome-Wide Selection Early in the Evolution of Prochlorococcus Resulted in a Reduced Genome through the Loss of a Large Number of Small Effect Genes
*[https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0088837 Sun and Blanchard, 2014] Strong Genome-Wide Selection Early in the Evolution of Prochlorococcus Resulted in a Reduced Genome through the Loss of a Large Number of Small Effect Genes
*[https://www.ncbi.nlm.nih.gov/pubmed/29915114 Yan et al., Appl Environ Microbiol. 2018] Genome rearrangement shapes ''Prochlorococcus'' ecological adaptation.
*[https://www.ncbi.nlm.nih.gov/pubmed/29915114 Yan et al., Appl Environ Microbiol. 2018] Genome rearrangement shapes ''Prochlorococcus'' ecological adaptation.
 +
*[https://pubmed.ncbi.nlm.nih.gov/35285694/  Yan et al., mBio 2022] Diverse Subclade Differentiation Attributed to the Ubiquity of Prochlorococcus High-Light-Adapted Clade II
*[http://scope.soest.hawaii.edu/pubs/2015Biller_NatRevMicro.pdf Biller et al., Nat. Rev. Microbiol. 2015 13(1) 13-27] ''Prochlorococcus'': the structure and function of collective diversity.
*[http://scope.soest.hawaii.edu/pubs/2015Biller_NatRevMicro.pdf Biller et al., Nat. Rev. Microbiol. 2015 13(1) 13-27] ''Prochlorococcus'': the structure and function of collective diversity.
 +
*[https://www.annualreviews.org/doi/10.1146/annurev-marine-120308-081034 Partensky and Laurence Garczarek Annual Review of Marine Science 2010] Prochlorococcus: Advantages and Limits of Minimalism. 
 +
*[https://www.cell.com/current-biology/fulltext/S0960-9822(17)30213-0?code=cell-site Prochlorococcus] ''Prochlorococcus''.
*[https://www.cell.com/current-biology/fulltext/S0960-9822(17)30213-0?code=cell-site Prochlorococcus] ''Prochlorococcus''.
 +
 +
*[http://application.sb-roscoff.fr/cyanorak/welcome.html Cyanorak Information system]
==Logiciels à installer sur vos postes de travail==
==Logiciels à installer sur vos postes de travail==
Line 27: Line 42:
*[http://www.sanger.ac.uk/science/tools/artemis Artemis] : Genome browser and annotation tool
*[http://www.sanger.ac.uk/science/tools/artemis Artemis] : Genome browser and annotation tool
*[http://www.sanger.ac.uk/science/tools/artemis-comparison-tool-act Artemis Comparison Tool] : Java application for displaying pairwise comparisons between two or more DNA sequences
*[http://www.sanger.ac.uk/science/tools/artemis-comparison-tool-act Artemis Comparison Tool] : Java application for displaying pairwise comparisons between two or more DNA sequences
-
*[http://ab.inf.uni-tuebingen.de/data/software/splitstree4/download/welcome.html splitstree] The aim of SplitsTree4 is to provide a framework for evolutionary analysis using both trees and networks.
+
*[https://software-ab.cs.uni-tuebingen.de/download/splitstree4/welcome.html splitstree] The aim of SplitsTree4 is to provide a framework for evolutionary analysis using both trees and networks.
*[http://tree.bio.ed.ac.uk/software/figtree/ FigTree] is designed as a graphical viewer of phylogenetic trees and as a program for producing publication-ready figures.
*[http://tree.bio.ed.ac.uk/software/figtree/ FigTree] is designed as a graphical viewer of phylogenetic trees and as a program for producing publication-ready figures.
 +
 +
''Artemis'' (''art'' et ''act'') et ''figtree'' peuvent être installés avec [http://www.m2p-bioinfo.ups-tlse.fr/p/M2BBS_-_Atelier_Syst%C3%A8me#Atelier_Phylog.C3.A9nomique conda/mamba].
 +
 +
''Mauve'', ''mauveAligner'' et ''progressiveMauve'' peuvent être installés avec ''conda'' mais une erreur peut survenir avec Mauve. En effet, vous pouvez avoir une version trop récente de java (https://edwards.sdsu.edu/research/running-mauve-with-java-10/). Pour y remédier, chercher une "vieille" version de java et remplacer "java" par le chemin de cette version dans le fichier Mauve (ligne JAVA_CMD=java).
 +
 +
[http://silico.biotoul.fr/p/M2BBS_-_Atelier_Syst%C3%A8me#Atelier_Phylog.C3.A9nomique Atelier système]
==Ressources informatiques==
==Ressources informatiques==
Line 36: Line 57:
===Sortcuts===
===Sortcuts===
Vous allez vous connecter avec un compte fleur:
Vous allez vous connecter avec un compte fleur:
 +
<!--
<pre>
<pre>
-
anemone         CHERYN
 
-
arome         MARINE
 
-
aster         SOUFIANE
 
-
chardon         EVE
 
-
camelia         Tristan
 
-
capucine  ELISE
 
-
gerbera         CHLOE
 
-
clematite NICOLAS
 
-
cobee         JULIETTE
 
-
coquelicot CLARA
 
-
cosmos         GEOFFREY
 
-
cyclamen MATTHIEU
 
-
dahlia         JULIEN
 
-
digitale MARION
 
-
geranium ALEXANDRE
 
</pre>
</pre>
-
<!--
+
 
2019 : anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia iris jacinthe jonquille
2019 : anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia iris jacinthe jonquille
<pre>
<pre>
-
anemone BIRBES CLEMENT
 
-
arome BOUCHIBA YOUNES
 
-
aster BURNARD CALLUM
 
-
bleuet DECAESTECKER JULIEN
 
-
camelia JEREMIE MARIE
 
-
capucine KURYLO CYRIL
 
-
chardon LATOUR JUSTINE
 
-
clematite LEGUET MANON
 
-
cobee LUDWIG CORALIE
 
-
coquelicot MARICOURT PIERRE-LOUIS
 
-
cosmos PÜZIN WILLIAM
 
-
cyclamen QUELLERY ELISABETH
 
-
dahlia SIMON CHRIS
 
-
digitale TIHIC EDI
 
-
geranium VAN BLERK SEBASTIAN
 
-
gerbera YLMAZ FULYA
 
-
glaieul
 
-
hortensia
 
</pre>
</pre>
-->
-->
Line 92: Line 81:
La documentation est disponible sur le site WEB et dans le répertoire correspondant au logiciel (fichiers How_to_use and/or Readme).
La documentation est disponible sur le site WEB et dans le répertoire correspondant au logiciel (fichiers How_to_use and/or Readme).
-
=====soumission de jobs=====
+
=====Soumission de jobs avec SLURM=====
[http://bioinfo.genotoul.fr/wp-content/uploads/Seminar_cluster_SLURM_15_03_18.pdf Seminar_cluster_SLURM]
[http://bioinfo.genotoul.fr/wp-content/uploads/Seminar_cluster_SLURM_15_03_18.pdf Seminar_cluster_SLURM]
<!--
<!--
Editer un fichier (ex myscript.sh) contenant les lignes de commandes suivantes :  
Editer un fichier (ex myscript.sh) contenant les lignes de commandes suivantes :  
-
<pre>
+
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
qsub en batch
qsub en batch
qlogin interactive
qlogin interactive
Line 113: Line 102:
-->
-->
-
1. First write a script (ex: '''myscript.sh''') with the command line as following:
+
Lancer le job avec sbatch et un script du type "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/myscript.sh myscript.sh]" (les chemins sont à changer).
-
<pre>
+
-
#!/bin/bash
+
-
#SBATCH -J test
+
-
#SBATCH -o output.out
+
-
#SBATCH -e error.out
+
-
#SBATCH -t 01:00:00
+
-
#SBATCH --mem=8G
+
-
#SBATCH --mail-type=BEGIN,END,FAIL (the email address is automatically LDAP account's one)
+
-
#Purge any previous modules
+
-
module purge
+
-
 
+
-
#Load the application
+
-
module load bioinfo/ncbi-blast-2.2.29+
+
-
 
+
-
# My command lines I want to run on the cluster
+
-
blastall ...
+
-
</pre>
+
=====to submit the job, use the sbatch command line as following=====
=====to submit the job, use the sbatch command line as following=====
*sbatch  (qsub): submit a batch job to slurm (default workq partition()
*sbatch  (qsub): submit a batch job to slurm (default workq partition()
-
sbatch myscript.sh
+
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sbatch myscript.sh
 +
</pre>
*sarray  (qarray): submit a batch job-array to slurm
*sarray  (qarray): submit a batch job-array to slurm
-
 
*scancel (qdel):  kill the specified job
*scancel (qdel):  kill the specified job
Line 150: Line 123:
*sview (qmon): graphical user interface
*sview (qmon): graphical user interface
*sacct (qacct) : display accounting data
*sacct (qacct) : display accounting data
 +
*scancel (qdel) : kill the specified job
====Utiliser R sur le cluster====
====Utiliser R sur le cluster====
Line 156: Line 130:
[http://www.nathalievialaneix.eu/doc/pdf/tutoR_cluster.pdf tutoR_cluster.pdf]
[http://www.nathalievialaneix.eu/doc/pdf/tutoR_cluster.pdf tutoR_cluster.pdf]
 +
====Utiliser awk_et sed====
 +
[http://genoweb.toulouse.inra.fr/~formation/awk_sed_Genotoul2019 awk_sed_Genotoul2019]
-
=====Installation du package genoPlotR=====
+
===Scripts===
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
Aide pour les scripts en bash :https://www.tutorialkart.com/bash-shell-scripting
-
srun --pty bash
+
-
module load system/R-3.5.1
+
-
R
+
-
install.packages('genoPlotR')
+
-
Warning in install.packages("genoPlotR") :
+
-
  'lib = "/tools/R/R-3.5.1/lib64/R/library"' ne peut être ouvert en écriture
+
-
Would you like to use a personal library instead? (yes/No/cancel) yes
+
-
Would you like to create a personal library
+
-
‘~/R/x86_64-pc-linux-gnu-library/3.5’
+
-
to install packages into? (yes/No/cancel) yes
+
-
--- SVP sélectionner un miroir CRAN pour cette session ---
+
-
Secure CRAN mirrors
+
-
26: France (Lyon 2) [https]
+
-
* installing *source* package ‘ade4’ ...
+
-
* installing *source* package ‘genoPlotR’ ...
+
-
Les packages source téléchargés sont dans
 
-
‘/tmp/RtmpLdNj99/downloaded_packages’
 
-
library(genoPlotR)
 
-
</pre>
 
-
 
-
===Scripts===
 
Des scripts perl ont été écrits pour faciliter certaines étapes du TP. Ils sont disponibles dans le répertoire:  
Des scripts perl ont été écrits pour faciliter certaines étapes du TP. Ils sont disponibles dans le répertoire:  
  /home/formation/public_html/M2_Phylogenomique/scripts
  /home/formation/public_html/M2_Phylogenomique/scripts
Line 203: Line 158:
</pre>
</pre>
Pour information:
Pour information:
-
  ls -l /home/<user>
+
  ls -l /home/$USER
-
  save -> /save/<user>
+
  save -> /save/$USER
-
  work -> /work/<user>
+
  work -> /work/$USER
==Disponibilité des génomes==
==Disponibilité des génomes==
Line 251: Line 206:
==Annotation==
==Annotation==
 +
===Prokka===
===Prokka===
Les réplicons des génomes sont annotés avec le logiciel [http://www.vicbioinformatics.com/software.prokka.shtml prokka].
Les réplicons des génomes sont annotés avec le logiciel [http://www.vicbioinformatics.com/software.prokka.shtml prokka].
 +
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Prokka Prokka]
 +
 +
Nous allons copier les fichiers peptides dans un répertoire de travail:
 +
<source lang='bash'>
 +
mkdir -p ~/work/Prochlorococcus/peptide
 +
cp ~/work/Prochlorococcus/prokka/Aaa*/*.faa ~/work/Prochlorococcus/peptide/.
 +
 +
ls -l ~/work/Prochlorococcus/peptide
 +
</source>
 +
<!--
[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka prokka files].
[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka prokka files].
Line 262: Line 228:
Quels sont les logiciels utilisés pour réaliser ces annotations ?
Quels sont les logiciels utilisés pour réaliser ces annotations ?
</pre>
</pre>
 +
====Exemple d'utilisation====
====Exemple d'utilisation====
 +
Nous allons créer un répertoire pour les résultats de prokka et chercher la dernière version disponible de prokka sur le serveur.
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
mkdir -p ~/work/Prochlorococcus/prokka
 +
 +
search_module prokka
 +
</pre>
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
srun --pty bash
srun --pty bash
module load bioinfo/prokka-1.12
module load bioinfo/prokka-1.12
-
prokka  /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaaa.fas  --outdir /tmp/Aaaa --compliant --addgenes --prefix Aaaa  --locustag Aaaa.g --genus Prochlorococcus --species 'Prochlorococcus marinus subsp. marinus' --strain CCMP1375 --kingdom Bacteria --cpus 2
+
prokka  /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaaa.fas  --outdir ~/work/Prochlorococcus/prokka/Aaaa --compliant --addgenes --prefix Aaaa  --locustag Aaaa.g --genus Prochlorococcus --species 'Prochlorococcus marinus subsp. marinus' --strain CCMP1375 --kingdom Bacteria --cpus 2
</pre>
</pre>
-
Le programme génère plusieurs fichiers pour chaque réplicon, dont:
+
Le programme génère plusieurs fichiers pour chaque réplicon (~/work/Prochlorococcus/prokka/Aaaa), dont:
*annotation en format GenBank [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka/Aaaa/AaaaA01.gbk AaaaA01.gbk]
*annotation en format GenBank [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka/Aaaa/AaaaA01.gbk AaaaA01.gbk]
*annotation en format gff [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka/Aaaa/AaaaA01.gff AaaaA01.gff]
*annotation en format gff [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka/Aaaa/AaaaA01.gff AaaaA01.gff]
Line 275: Line 248:
*les séquences des CDS [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka/Aaaa/AaaaA01.ffn AaaaA01.ffn]
*les séquences des CDS [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/prokka/Aaaa/AaaaA01.ffn AaaaA01.ffn]
-
====Automatisation des annotations prokka sur l'ensemble des génomes====
+
====Automatisation des annotations ''prokka'' sur l'ensemble des génomes====
Les informations sur les génomes sont disponibles dans le fichier :
Les informations sur les génomes sont disponibles dans le fichier :
[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/NCBI/species_strain_names.txt species_strain_names.txt].  
[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/NCBI/species_strain_names.txt species_strain_names.txt].  
-
Ce fichier est lu par le programme pour compléter les paramètres de prokka pour chaque génome.  
+
Ce fichier est lu par le script Perl ''prokka_loop.pl'' pour compléter les paramètres de ''prokka'' pour chaque génome (--prefix, --locustag, --genus, --species, --strain and --kingdom).  
-
Le programme doit être lancé sur le serveur ''genologin'' et prokka est lancé sur les noeuds avec sbatch.
+
Le script ''prokka_loop.pl'' doit être lancé sur le serveur ''genologin''. Il distribue ''prokka'' sur les noeuds avec sbatch.
<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">
-
mkdir -p ~/work/Prochlorococcus/prokka
 
cd ~/work/Prochlorococcus
cd ~/work/Prochlorococcus
~/work/scripts/prokka_loop.pl --sample Prochlorococcus
~/work/scripts/prokka_loop.pl --sample Prochlorococcus
Line 289: Line 261:
squeue -l -u <user>
squeue -l -u <user>
</pre>
</pre>
-
Une fois les jobs terminés, vérifiez que les fichiers de sorties de prokka existent et ne sont pas vides.
+
Une fois les jobs terminés, vérifiez que les fichiers de sortie de ''prokka'' existent et ne sont pas vides.
<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">
ls -l ~/work/Prochlorococcus/prokka/Aaa*/*.faa
ls -l ~/work/Prochlorococcus/prokka/Aaa*/*.faa
</pre>
</pre>
-
Les fichiers avec le suffix ''.err'' renferment la sortie standard de prokka. Si tout s'est bien passé, vous pouvez supprimer les fichiers ''.err'' et ''.sh''.
+
Les fichiers avec le suffixe ''.err'' renferment la sortie standard de ''prokka''. Si tout s'est bien passé, vous pouvez supprimer les fichiers ''.err'' et ''.sh''.
<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.2:
Question 1.2:
Comparez le nombre de gènes obtenus avec ceux reportés dans la publication (Table 1) et commentez les différences observées.
Comparez le nombre de gènes obtenus avec ceux reportés dans la publication (Table 1) et commentez les différences observées.
-
Pensez-vous que prokka soit la meilleure méthode d'annotation?  
+
Comment faire pour comparer les annotations de ''prokka'' avec celles des fichiers GenBank?
 +
Pensez-vous que ''prokka'' soit la meilleure méthode d'annotation?  
Comment pourriez-vous faire pour évaluer les performances des différentes méthodes d'annotation des génomes?
Comment pourriez-vous faire pour évaluer les performances des différentes méthodes d'annotation des génomes?
</pre>
</pre>
Line 305: Line 278:
Il est fortement recommandé d'utiliser ce logiciel en local sur votre poste de travail.
Il est fortement recommandé d'utiliser ce logiciel en local sur votre poste de travail.
-
<!--
+
 
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
runVisuSession.sh
runVisuSession.sh
Line 312: Line 285:
-->
-->
-
==Séquence conservation entre souches de ''Prochlorococcus''==
+
==Conservation de séquence entre souches de ''Prochlorococcus''==
-
 
+
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Conservation_entre_souches Conservation entre souches]
-
===Genome pairs===
+
<!--
====BlastN par pairs====
====BlastN par pairs====
Afin d'estimer les conservations entre les différents génomes, nous allons les comparer par paire de génomes dans l'ordre suivant, à l'aide de ''blastn'':
Afin d'estimer les conservations entre les différents génomes, nous allons les comparer par paire de génomes dans l'ordre suivant, à l'aide de ''blastn'':
<pre>
<pre>
-
('Aaab', 'Aaag', 'Aaaj', 'Aaaf', 'Aaak', 'Aaae', 'Aaai', 'Aaad', 'Aaaa', 'Aaah', 'Aaal', 'Aaac')
+
'Aaab', 'Aaag', 'Aaaj', 'Aaaf', 'Aaak', 'Aaae', 'Aaai', 'Aaad', 'Aaaa', 'Aaah', 'Aaal', 'Aaac'
</pre>
</pre>
Les résultats sont dans le repertoire:
Les résultats sont dans le repertoire:
Line 324: Line 297:
mkdir ~/work/Prochlorococcus/BlastN
mkdir ~/work/Prochlorococcus/BlastN
</pre>
</pre>
-
Nous allons utiliser l'option ''BLAST-2-Sequences'' de blastn.
+
Nous allons utiliser l'option ''BLAST-2-Sequences'' de blastn en précisant -subject <File_In>.
-
Exemple avec une paire:
+
Exemple avec une paire de génomes:
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
search_module blast
 +
srun --pty bash  
srun --pty bash  
-
module load bioinfo/ncbi-blast-2.6.0+
+
module load bioinfo/ncbi-blast-2.7.1+
-
blastn -query /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaab.fas -subject /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaag.fas -evalue 1e-05 -outfmt 6 -num_threads 1 -out BlastN/Aaab_vs_Aaag.tab
+
blastn -query /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaab.fas -subject /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaag.fas -evalue 1e-05 -outfmt 6 -num_threads 1 -out ~/work/Prochlorococcus/BlastN/Aaab_vs_Aaag.tab
</pre>
</pre>
-
Sur l'ensemble des génomes:
+
Nous allons exécuter la même commande sur toutes les paires consécutives de génomes dans l'ordre listés ci-dessus. Nous allons utiliser ''sarray'' pour soumettre ces commandes en même temps sur le cluster. Vous pouvez vous référer à "How to generate an sarray command file with bash for single (fastq) file ?" sur la page http://bioinfo.genotoul.fr/index.php/faq/bioinfo_tips_faq/ pour vous aider dans cette tâche.
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
~/work/scripts/blastn_genome_pair.pl
+
-
squeue -l -u <user>
+
Nous allons écrire un script shell pour créer le fichier à soumettre par ''sarray''.
 +
# Dans un premier temps vous devez utiliser une boucle ''for'' pour construire les paires de génomes adjacents dans la liste ci-dessus.
 +
# et pour chaque paires reproduire la commande donnée en exemple en changeant les noms des génomes.
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
left=""
 +
for i in 'Aaab' 'Aaag' 'Aaaj' 'Aaaf' 'Aaak' 'Aaae' 'Aaai' 'Aaad' 'Aaaa' 'Aaah' 'Aaal' 'Aaac'
 +
do     
 +
  if [ "$left" != "" ];
 +
  then
 +
    output="~/work/Prochlorococcus/BlastN/"$left"_vs_"$i.tab
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastn -query /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/$left.fas -subject /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/$i.fas -evalue 1e-05 -outfmt 6 -num_threads 1 -out $output";
 +
  fi   
 +
  left=$i;
 +
done > blastn_pairs.sh
 +
</syntaxhighlight>
 +
Vérifier le script et lancer le avec ''sarray''
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
cat blastn_pairs.sh
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blastn_pairs.sh
 +
</pre>
 +
Vérifier l'exécution des blastn
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
squeue -l -u <user>
 +
</pre>
 +
Lister les fichiers obtenus:
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
ls -l ~/work/Prochlorococcus/BlastN
ls -l ~/work/Prochlorococcus/BlastN
</pre>
</pre>
Line 343: Line 342:
====genoplotR====
====genoplotR====
Nous allons utiliser [http://genoplotr.r-forge.r-project.org/ genoplotR] pour visualiser les similarités entre les paires de génomes.
Nous allons utiliser [http://genoplotr.r-forge.r-project.org/ genoplotR] pour visualiser les similarités entre les paires de génomes.
-
 
+
=====Installation du package genoPlotR=====
-
[http://www.m2p-bioinfo.ups-tlse.fr/p/Atelier_Phylog%C3%A9nomique#Installation_du_package_genoPlotR Installation du package genoPlotR]
+
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
 
+
srun --pty bash
 +
module load system/R-3.5.1
 +
R
 +
install.packages('genoPlotR')
 +
...
 +
* installing *source* package ‘genoPlotR’ ...
 +
library(genoPlotR)
 +
</pre>
 +
Sélectionner ''France (Lyon 2) [https]'' comme miroir CRAN.
 +
=====Mise en œuvre=====
genoplotR nécessite plusieurs objets:
genoplotR nécessite plusieurs objets:
*dna_seg: un objet dna_seg est un ensemble de gènes ou d'éléments le long d'un génome, à représenter sur une carte. Nous allons utiliser les fichiers en format gbk créés par prokka.
*dna_seg: un objet dna_seg est un ensemble de gènes ou d'éléments le long d'un génome, à représenter sur une carte. Nous allons utiliser les fichiers en format gbk créés par prokka.
Line 361: Line 369:
<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">
evince work/Prochlorococcus/images/genoplot_blastn_links.pdf
evince work/Prochlorococcus/images/genoplot_blastn_links.pdf
-
</pre>
 
-
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
Question 1.3:
 
-
Commentez le résultat obtenu.
 
-
Que pensez-vous de la conservation des séquences des génomes?
 
</pre>
</pre>
====ACT====
====ACT====
-
Il est également possible d'utiliser le logiciel act ([ftp://ftp.sanger.ac.uk/pub/resources/software/act/act.pdf documentation]).
+
Il est également possible d'utiliser le logiciel ''act'' ([ftp://ftp.sanger.ac.uk/pub/resources/software/act/act.pdf documentation]).
Copier les fichiers sur votre porte de travail en P0 et lancer :
Copier les fichiers sur votre porte de travail en P0 et lancer :
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
act prokka/Aaab/Aaab.gbk BlastN/Aaab_vs_Aaag.tab prokka/Aaag/Aaag.gbk
+
act work/Prochlorococcus/prokka/Aaab/Aaab.gbk work/Prochlorococcus/BlastN/Aaab_vs_Aaag.tab work/Prochlorococcus/prokka/Aaag/Aaag.gbk
</pre>
</pre>
Vous pouvez aussi utiliser les fichiers en format gff.
Vous pouvez aussi utiliser les fichiers en format gff.
 +
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
act work/Prochlorococcus/prokka/Aaab/Aaab.gff work/Prochlorococcus/BlastN/Aaab_vs_Aaag.tab work/Prochlorococcus/prokka/Aaag/Aaag.gff work/Prochlorococcus/BlastN/Aaag_vs_Aaaj.tab work/Prochlorococcus/prokka/Aaaj/Aaaj.gff work/Prochlorococcus/BlastN/Aaaj_vs_Aaaf.tab work/Prochlorococcus/prokka/Aaaf/Aaaf.gff work/Prochlorococcus/BlastN/Aaaf_vs_Aaak.tab work/Prochlorococcus/prokka/Aaak/Aaak.gff
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.3:
 +
Commentez les résultats obtenus avec genoplotR.
 +
Que pensez-vous de la conservation des séquences des génomes?
 +
</pre>
 +
-->
==Groupes de gènes orthologues==
==Groupes de gènes orthologues==
Line 382: Line 394:
Quelle méthode ont utilisé Kettler et al., 2007 pour identifier les groupes de gènes orthologues?
Quelle méthode ont utilisé Kettler et al., 2007 pour identifier les groupes de gènes orthologues?
</pre>
</pre>
 +
=== eggNOG ===
 +
*[https://github.com/eggnogdb/eggnog-mapper eggnog-mapper]
 +
See software documentation for more informations.
 +
Location: /usr/local/bioinfo/src/eggNOG-mapper
 +
 +
*[https://github.com/eggnogdb/eggnog-mapper/wiki/eggNOG-mapper-v2.1.5-to-v2.1.8#Basic_usage Basic_usage]
 +
 +
ll /usr/local/bioinfo/src/eggNOG-mapper/example_on_cluster/test_eggnog-mapper-2.0.1.sh
 +
 +
emapper.py -i ~/work/Prochlorococcus/peptide/Aaaa.faa --cpu 4 --output Aaaa_NOG -m diamond
 +
 +
cp /usr/local/bioinfo/src/eggNOG-mapper/example_on_cluster/test_eggnog-mapper-2.0.1.sh eggnog-mapper-2.0.1.sh
 +
 +
module load devel/python/Python-2.7.18; module load bioinfo/eggNOG-mapper/2.0.1; emapper.py -i p53.fa --cpu 4 --output p53_maNOG -m diamond
 +
~
 +
 +
-i FILE                input FASTA file containing query sequences (proteins by default)
 +
--data_dir DIR          Specify a path to the eggNOG-mapper databases. By default, data/ folder or the one specified by the EGGNOG_DATA_DIR environment variable.
 +
-m MODE                Search options, Default is -m diamond
 +
--target_orthologs      one2one|many2one|one2many|many2many|all defines what type of orthologs (in relation to the seed ortholog) should be used for functional transfer. Default: all
 +
--report_orthologs      as a first step in functional annotation, eggNOG-mapper identifies the orthologs of each query, using seed orthologs from the search stage as an anchoring or starting point. A list of these orthologs is not reported by default.
 +
--output,-o FILE_PREFIX base name for output files
 +
--output_dir DIR        where output files should be written. default is current working directory.
 +
--decorate_gff no|yes|FILE  Option to create/decorate a GFF file with emapper hits and/or annotations. Default is no.
 +
Output files
 +
Search hits (prefix.emapper.hits)A file with the results from the search phase, from HMMER, Diamond or MMseqs2.
 +
Seed orthologs (prefix.emapper.seed_orthologs) A file with the results from parsing the hits. Each row links a query with a seed ortholog.
 +
Annotations (prefix.emapper.annotations) A file with the results from the annotation phase.
 +
 +
<syntaxhighlight lang="bash">
 +
if [[ -e eggnog-mapper.sh]]; then
 +
  rm eggnog-mapper.sh
 +
fi
 +
 +
for file in ~/work/Zhang/PEP/Pr*.faa;
 +
do
 +
  prefix=$(basename $file .faa)
 +
  output="${prefix}.emapper.annotations"
 +
  if [[ -f "$output" ]]; then
 +
    echo "skip $output"
 +
  else
 +
    echo "module load devel/python/Python-2.7.18; module load bioinfo/eggNOG-mapper/2.0.1; emapper.py -i $file --cpu 4 --output $prefix -m diamond" 1>> eggnog-mapper.sh
 +
  fi
 +
done
 +
 +
cat eggnog-mapper.sh
 +
</syntaxhighlight>
 +
 +
<source lang='bash'>
 +
sarray -J eggNOG -o %j.out -e %j.err -t 04:00:00 --cpus-per-task=4 eggnog-mapper.sh
 +
squeue -l -u $USER
 +
</source>
 +
 +
les résultats sont dans : /home/formation/work/Prochlorococcus/eggNOG
 +
 +
=== OrthoFinder ===
 +
'''OrthoFinder''' est une plateforme rapide, précise et complète pour la génomique comparative. Il trouve des '''orthogroupes''' et des orthologues, déduit des arbres de gènes enracinés pour tous les orthogroupes et identifie tous les événements de duplication de gènes dans ces arbres.
 +
 +
Il déduit également un arbre des espèces enraciné pour l'espèce analysée et fait correspondre les événements de duplication de gènes des arbres génétiques aux branches de l'arbre des espèces.
 +
 +
OrthoFinder fournit également des statistiques complètes pour les analyses génomiques comparatives.
 +
 +
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_OrthoFinder OrthoFinder]]!
 +
===Préliminaires===
===Préliminaires===
<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">
Line 387: Line 463:
Selon vous qu'est-ce qui guide le choix du type de séquences à utiliser dans les comparaisons (peptides ou nucléotidiques)?
Selon vous qu'est-ce qui guide le choix du type de séquences à utiliser dans les comparaisons (peptides ou nucléotidiques)?
</pre>
</pre>
 +
[http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Blast Blast All-vs-All]
 +
<!--
====Blast All-All====
====Blast All-All====
Nous allons utiliser [http://bioinfo.genotoul.fr/index.php/how-to-use/?software=How_to_use_SLURM_NCBI_Blast%2B NCBI_Blast+].
Nous allons utiliser [http://bioinfo.genotoul.fr/index.php/how-to-use/?software=How_to_use_SLURM_NCBI_Blast%2B NCBI_Blast+].
Line 393: Line 471:
<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">
mkdir -p ~/work/Prochlorococcus/peptide
mkdir -p ~/work/Prochlorococcus/peptide
-
cd ~/work/Prochlorococcus/peptide
 
cp ~/work/Prochlorococcus/prokka/Aaa*/*.faa ~/work/Prochlorococcus/peptide/.
cp ~/work/Prochlorococcus/prokka/Aaa*/*.faa ~/work/Prochlorococcus/peptide/.
Line 399: Line 476:
</pre>
</pre>
=====make blast database=====
=====make blast database=====
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
cd ~/work/Prochlorococcus/peptide
 
-
module load bioinfo/ncbi-blast-2.6.0+
 
-
</pre>
 
Exemple:
Exemple:
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
srun -n1 -l makeblastdb -in Aaaa.faa -dbtype prot
+
module load bioinfo/ncbi-blast-2.7.1+
 +
srun -n1 -l makeblastdb -in Aaaa.faa -dbtype prot
</pre>
</pre>
-
Boucle sur tous les fichiers
+
Vous allez procéder comme précédemment, avec un script donné à ''sarray'', pour réaliser le makeblastdb sur tous les fichiers.
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
-
for i in *.faa;  
+
MSK
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/Prochlorococcus/peptide/*.faa;  
do       
do       
-
srun -n1 -l makeblastdb -in $i  -dbtype prot;  
+
  echo "module load bioinfo/ncbi-blast-2.7.1+; makeblastdb -in $i  -dbtype prot;"
-
done
+
done > makeblastdb.sh
-
</pre>
+
-
=====Intra genomes=====
+
cat makeblastdb.sh
 +
</syntaxhighlight>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 makeblastdb.sh
 +
squeue -l -u <user>
 +
</pre>
 +
=====Intra genomes=====
Nous vous proposons un script perl pour réaliser les ''blastp'' de l'ensemble des génomes avec '''sbatch''':
Nous vous proposons un script perl pour réaliser les ''blastp'' de l'ensemble des génomes avec '''sbatch''':
<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">
mkdir -p ~/work/Prochlorococcus/BlastP
mkdir -p ~/work/Prochlorococcus/BlastP
-
cd ~/work/Prochlorococcus
+
 
~/work/scripts/blastp_intra.pl
~/work/scripts/blastp_intra.pl
Line 433: Line 514:
</pre>
</pre>
-
=====Inter genomes=====
+
=====Paire de genomes=====
-
Pour les blastp inter génomes, nous allons utiliser un script similaire au précédent, mais avec une double boucle (sur -query et -db).
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
mkdir -p ~/work/Prochlorococcus/BlastP
 +
</pre>
 +
Exemple :
 +
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
module load bioinfo/ncbi-blast-2.7.1+
 +
srun -n1 -l blastp -query ~/work/Prochlorococcus/peptide/Aaaa.faa -db ~/work/Prochlorococcus/peptide/Aaaa.faa -seg yes -dbsize 100000000 -evalue 1e-5 -outfmt 6 -num_threads 1 -out ~/work/Prochlorococcus/BlastP/Aaaa_Aaaa.tab
 +
</pre>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.6:
 +
Explicitez et justifiez les paramètres de blast utilisés dans votre script.
 +
</pre>
 +
=====Boucle sur les genomes=====
 +
Utilisez ''sarray'' pour réaliser les ''blast'' en toutes les paires de génomes.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
evalue=1e-5
 +
dbsize=100000000
 +
for i in ~/work/Prochlorococcus/peptide/*.faa;
 +
do
 +
  ip=$(basename $i .faa)   
 +
  for j in ~/work/Prochlorococcus/peptide/*.faa; 
 +
  do
 +
    jp=$(basename $j .faa)   
 +
    outfile="~/work/Prochlorococcus/BlastP/"$ip"_"$jp".tab"
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastp -query $i -db $j -seg yes -dbsize $dbsize -evalue $evalue -outfmt 6 -num_threads 1 -out $outfile;"
 +
  done
 +
done > blast_allall.sh
 +
 +
cat blast_allall.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
 +
squeue -l -u <user>
 +
</pre>
 +
 +
Pour les blastp inter génomes, nous allons utiliser un script similaire au précédent, mais avec une double boucle (sur -query et -db).
<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">
cd ~/work/Prochlorococcus
cd ~/work/Prochlorococcus
Line 444: Line 563:
ls BlastP | wc -l
ls BlastP | wc -l
</pre>
</pre>
 +
vérifiez que les fichiers de sorties de blast sont présents et non vides.
<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.7:
Question 1.7:
Combien de fichiers attendez-vous?
Combien de fichiers attendez-vous?
</pre>
</pre>
 +
-->
===PorthoMCL===
===PorthoMCL===
 +
MSK
 +
<!--
[https://github.com/etabari/PorthoMCL PorthoMCL]
[https://github.com/etabari/PorthoMCL PorthoMCL]
Line 458: Line 581:
Il s'inspire d'[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC403725/ orthoMCL]
Il s'inspire d'[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC403725/ orthoMCL]
 +
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_PorthoMCL PorthoMCL]
 +
-->
 +
<!--
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -o-pre-wrap">  
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -o-pre-wrap">  
Question 1.8:
Question 1.8:
Line 464: Line 590:
</pre>
</pre>
-
Disponible: /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master.
+
Le logiciel est disponible ici: /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master. Il est basé sur l'enchainement de programmes ''python''. Ils peuvent être lancés séparément ou automatiquement à l'aide d'un script shell.  
-
Le logiciel est basé sur l'enchainement de programmes python. Ils peuvent être lancés séparément ou automatiquement à l'aide d'un script shell.
+
MSK
-
 
+
-
Version automatique (que nous n'utiliserons pas car nous avons déjà réalisé les blastp):
+
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">  
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">  
mkdir -p ~/work/Prochlorococcus/PorthoMCL_auto12/0.input_faa
mkdir -p ~/work/Prochlorococcus/PorthoMCL_auto12/0.input_faa
Line 476: Line 600:
/home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomcl.sh -t 12 -e 7
/home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomcl.sh -t 12 -e 7
</pre>
</pre>
 +
Nous allons utiliser une version plus simple:
Nous allons utiliser une version plus simple:
<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">  
Line 487: Line 612:
Que proposeriez-vous pour l'améliorer?
Que proposeriez-vous pour l'améliorer?
</pre>
</pre>
-
<!--
 
-
====old stuff====
 
====Step 4: Parse BLAST results====
====Step 4: Parse BLAST results====
Comme les différents blastp ont déjà été réalisés, nous passons directement à l'étape 4.
Comme les différents blastp ont déjà été réalisés, nous passons directement à l'étape 4.
Mais nous devons:
Mais nous devons:
-
=====Créer un fichier avec la liste des taxon=====
 
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
mkdir -p ~/work/Prochlorococcus/PorthoMCL
 
-
 
-
ls -1 ~/work/Prochlorococcus/peptide/*pep | sed -r 's/.+([A-Z][a-z]{3}).pep/\1/' > ~/work/Prochlorococcus/PorthoMCL/taxon_list
 
-
</pre>
 
=====Concaténer les fichiers de résultats blastp par souche:=====
=====Concaténer les fichiers de résultats blastp par souche:=====
<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">
mkdir -p ~/work/Prochlorococcus/PorthoMCL/3.blastres
mkdir -p ~/work/Prochlorococcus/PorthoMCL/3.blastres
</pre>
</pre>
-
Test pour une souche:
+
 
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
MSK
-
/home/formation/public_html/M2_Phylogenomique/scripts/cat_blast_resutls.pl --query Aaaa --taxonlist ~/work/Prochlorococcus/PorthoMCL/taxon_list --blast_dir ~/work/Prochlorococcus/BlastP --out_dir ~/work/Prochlorococcus/PorthoMCL/3.blastres
+
<syntaxhighlight lang="bash">
-
</pre>
+
for i in ~/work/Prochlorococcus/peptide/*.faa;
-
Boucle sur les souches
+
do
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
  ip=$(basename $i .faa)   
-
for file in ~/work/Prochlorococcus/peptide/*.pep
+
  outfile=~/work/Prochlorococcus/PorthoMCL/3.blastres/$ip.tab; 
 +
  if [ -f $outfile ]; then
 +
    echo "rm $outfile"
 +
    rm $outfile
 +
  fi
 +
  for j in ~/work/Prochlorococcus/peptide/*.faa;
 +
  do
 +
    jp=$(basename $j .faa)   
 +
    infile=~/work/Prochlorococcus/BlastP/$ip"_"$jp".tab"
 +
    if [ -f $infile ]; then
 +
      echo "$infile"
 +
      cat $infile >> $outfile
 +
    else
 +
      echo "Error $infile not found"
 +
    fi
 +
  done
 +
done
 +
</syntaxhighlight>
 +
 
 +
=====Modifier le nom des protéines dans les fichiers blast et fasta=====
 +
Pour que les programmes suivants identifient le nom de souche et le nom de gène, il est nécessaire de rajouter un séparateur ('|') dans les noms des protéines: Aaaa.g_00001 devient Aaaa|.g_00001. Pour cela, nous pouvons utiliser la commande sed.
 +
 
 +
Dans les fichiers ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab
 +
 
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for file in ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab
do
do
-
    prefix=$(basename "$file" .pep)
+
  prefix=$(basename "$file")
-
    /home/formation/public_html/M2_Phylogenomique/scripts/cat_blast_resutls.pl --query $prefix --taxonlist ~/work/Prochlorococcus/PorthoMCL/taxon_list --blast_dir ~/work/Prochlorococcus/BlastP --out_dir ~/work/Prochlorococcus/PorthoMCL/3.blastres
+
  sed -i -r 's/([A-Z][a-z]{3})(\w*\.)/\1|\2/g' $file
done
done
 +
</syntaxhighlight>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">mkdir -p ~/work/Prochlorococcus/PorthoMCL/compliantFasta
</pre>
</pre>
-
=====Modifier le nom des souches=====
 
-
======fichiers fasta======
 
-
Il est nécessaire d'ajouter le caractère '|' après le nom de souche.
 
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
mkdir -p ~/work/Prochlorococcus/PorthoMCL/compliantFasta
 
-
for file in ~/work/Prochlorococcus/peptide/*.pep
+
et dans les fichiers  ~/work/Prochlorococcus/peptide/*.faa
 +
 
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for file in ~/work/Prochlorococcus/peptide/*.faa
do
do
     prefix=$(basename $file .pep)
     prefix=$(basename $file .pep)
     sed -r 's/([A-Z][a-z]{3})/\1|/g' $file > ~/work/Prochlorococcus/PorthoMCL/compliantFasta/$prefix.fasta
     sed -r 's/([A-Z][a-z]{3})/\1|/g' $file > ~/work/Prochlorococcus/PorthoMCL/compliantFasta/$prefix.fasta
done
done
-
</pre>
+
</syntaxhighlight>
-
Vérifier que le changement des noms a été effectué:
+
-
grep '>' ~/work/Prochlorococcus/PorthoMCL/compliantFasta/Aaaa.fasta | head
+
-
 
+
-
======fichiers blasp======
+
-
La même opération doit être réalisée avec les fichiers résultats de blastp.
+
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
for file in ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab
+
-
do
+
-
    prefix=$(basename "$file")
+
-
    sed -i -r 's/([A-Z][a-z]{3})A/\1|A/g' $file
+
-
done
+
-
</pre>
+
-
Vérifier les changements de noms:
+
-
head ~/work/Prochlorococcus/PorthoMCL/3.blastres/Aaaa.tab
+
=====Changer le format des fichier blastp=====
=====Changer le format des fichier blastp=====
Line 546: Line 676:
mkdir -p ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq
mkdir -p ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq
</pre>
</pre>
-
Test pour une souche:
+
Exemple pour une souche:
-
<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/PorthoMCL-master/porthomclBlastParser /home/yquentin/work/Prochlorococcus/PorthoMCL/3.blastres/Aaaa.tab ~/work/Prochlorococcus/PorthoMCL/compliantFasta > ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq/Aaaa.ss.tsv
+
<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/PorthoMCL-master/porthomclBlastParser /home/yquentin/work/Prochlorococcus/PorthoMCL/3.blastres/Aaaa.tab ~/work/Prochlorococcus/PorthoMCL/compliantFasta > ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq/Aaaa.ss.tsv
</pre>
</pre>
<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">  
Line 556: Line 687:
*evalueMant et evalueExp : mantisse (partie décimale) et exposant de la e-value
*evalueMant et evalueExp : mantisse (partie décimale) et exposant de la e-value
*percentMatch = longueur de l'alignement / longueur de la séquence la plus courte (query ou hit) *100
*percentMatch = longueur de l'alignement / longueur de la séquence la plus courte (query ou hit) *100
 +
Appliquez à toutes les souches.
-
Boucle sur les souches:
+
MSK
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">for file in ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab
+
<syntaxhighlight lang="bash">
 +
for file in ~/work/Prochlorococcus/peptide/*.faa
do
do
-
    prefix=$(basename "$file" .tab)
+
  prefix=$(basename $file .faa)
-
    /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclBlastParser $file ~/work/Prochlorococcus/PorthoMCL/compliantFasta > ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq/$prefix.ss.tsv
+
  /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclBlastParser ~/work/Prochlorococcus/PorthoMCL/3.blastres/$prefix.tab ~/work/Prochlorococcus/PorthoMCL/compliantFasta > ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq/$prefix.ss.tsv
done
done
-
</pre>
+
</syntaxhighlight>
-
-->
+
 
-
<!--
+
Vérifiez les fichiers obtenus.
-
===Step 5: Finding Best Hits===
+
 
 +
====Step 5: Finding Best Hits====
Les paralogues sont identifiés et un score non normalisé leurs aient assignés. Les scores seront normalisés à l'étape 5.3 pour qu'ils soient comparables entre les génomes.
Les paralogues sont identifiés et un score non normalisé leurs aient assignés. Les scores seront normalisés à l'étape 5.3 pour qu'ils soient comparables entre les génomes.
<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">
mkdir -p ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp
mkdir -p ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp
mkdir -p ~/work/Prochlorococcus/PorthoMCL/5.besthit
mkdir -p ~/work/Prochlorococcus/PorthoMCL/5.besthit
 +
</pre>
 +
Créer un fichier avec la liste des taxon
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
ls -1 ~/work/Prochlorococcus/peptide/*faa | sed -r 's/.+([A-Z][a-z]{3}).faa/\1/' > ~/work/Prochlorococcus/PorthoMCL/taxon_list
</pre>
</pre>
Test avec une souche:
Test avec une souche:
Line 581: Line 719:
</pre>
</pre>
Boucle sur les souches:
Boucle sur les souches:
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
 +
MSK
 +
<syntaxhighlight lang="bash">
for num in {1..12}
for num in {1..12}
do
do
-
    /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsBestHit.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -s ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq -b ~/work/Prochlorococcus/PorthoMCL/5.besthit -q ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp -x $num
+
  /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsBestHit.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -s ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq -b ~/work/Prochlorococcus/PorthoMCL/5.besthit -q ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp -x $num
done
done
-
</pre>
+
</syntaxhighlight>
-
-->
+
 
-
<!--
+
====Step 6: Finding Orthologs====
-
===Step 6: Finding Orthologs===
+
A la sortie de cette étape nous obtenons l'ensemble des paires de gènes orthologues. Les fichiers de sortie sont concaténés. Le fichier concaténé est donnée en entrée à MCL.
-
La sortie de cette étape est l'ensemble des gènes orthologues. Les fichiers de sortie sont concaténés. Le fichier concaténé est donnée en entrée à MCL.
+
<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">
mkdir -p ~/work/Prochlorococcus/PorthoMCL/6.orthologs
mkdir -p ~/work/Prochlorococcus/PorthoMCL/6.orthologs
-
 
</pre>
</pre>
Test avec une souche:
Test avec une souche:
Line 599: Line 737:
/home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsOrthologs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -b ~/work/Prochlorococcus/PorthoMCL/5.besthit -o ~/work/Prochlorococcus/PorthoMCL/6.orthologs -x 1
/home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsOrthologs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -b ~/work/Prochlorococcus/PorthoMCL/5.besthit -o ~/work/Prochlorococcus/PorthoMCL/6.orthologs -x 1
</pre>
</pre>
-
 
<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">
head ~/work/Prochlorococcus/PorthoMCL/6.orthologs/Aaaa.ort.tsv
head ~/work/Prochlorococcus/PorthoMCL/6.orthologs/Aaaa.ort.tsv
</pre>
</pre>
Boucle sur les souches:
Boucle sur les souches:
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
 +
MSK
 +
<syntaxhighlight lang="bash">
for num in {1..12}
for num in {1..12}
do
do
-
    /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsOrthologs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -b ~/work/Prochlorococcus/PorthoMCL/5.besthit -o ~/work/Prochlorococcus/PorthoMCL/6.orthologs -x $num
+
  /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsOrthologs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -b ~/work/Prochlorococcus/PorthoMCL/5.besthit -o ~/work/Prochlorococcus/PorthoMCL/6.orthologs -x $num
done
done
-
</pre>
+
</syntaxhighlight>
-
-->
+
 
-
<!--
+
====Step 7: Finding Paralogs====
-
===Step 7: Finding Paralogs===
+
Les scores calculés à l'étape 5 sont normalisés.  Pour la normalisation, PorthoMCL utilise la moyenne des scores des paralogues qui ont des orthologues.
Les scores calculés à l'étape 5 sont normalisés.  Pour la normalisation, PorthoMCL utilise la moyenne des scores des paralogues qui ont des orthologues.
Line 646: Line 784:
</pre>
</pre>
Boucle sur les souches:
Boucle sur les souches:
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
 +
MSK
 +
<syntaxhighlight lang="bash">
for num in {1..12}
for num in {1..12}
do
do
-
    /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsInParalogs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -q ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp -o ~/work/Prochlorococcus/PorthoMCL/7.ogenes -p ~/work/Prochlorococcus/PorthoMCL/7.paralogs -x $num
+
  /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsInParalogs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -q ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp -o ~/work/Prochlorococcus/PorthoMCL/7.ogenes -p ~/work/Prochlorococcus/PorthoMCL/7.paralogs -x $num
done
done
-
</pre>
+
</syntaxhighlight>
-
-->
+
-
===Running MCL===
+
====Step 8: MCL====
<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.10:
Question 1.10:
Line 673: Line 812:
module load bioinfo/mcl-14-137
module load bioinfo/mcl-14-137
-
cat 6.orthologs.-5.50/*.tsv >> 8.all.ort.-5.50.tsv
+
cat ~/work/Prochlorococcus/PorthoMCL/6.orthologs/*.tsv >> ~/work/Prochlorococcus/PorthoMCL/8.all.ort.tsv
-
mcl 8.all.ort.-5.50.tsv --abc -I 1.5 -t 4 -o 8.all.ort.group.1.5-5.50
+
mcl ~/work/Prochlorococcus/PorthoMCL/8.all.ort.tsv --abc -I 1.5 -t 4 -o ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group
</pre>
</pre>
Taille des OG:
Taille des OG:
 +
 +
Vous pouvez utiliser [http://www.shellunix.com/awk.html awk] avec NF qui est le nombre de champs de l'enregistrement courant.
 +
 +
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">
awk 'BEGIN {
awk 'BEGIN {
Line 686: Line 829:
  printf(n"\t"NF"\n");
  printf(n"\t"NF"\n");
  n = n+1;
  n = n+1;
-
}' PorthoMCL/8.all.ort.group.1.5-5.50 > PorthoMCL/8.all.ort.group.1.5-5.50_class_size.tab
+
}' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group > ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group_class_size.tab
</pre>
</pre>
 +
 +
Taux de paralogie (avec ''awk'' mais en vous inspirant du [http://silico.biotoul.fr/p/M1_BBS_Graphes_TP_Recherche_de_communaut%C3%A9s_dans_les_graphes TP5] de M1):
 +
 +
MSK
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
awk '{
 +
  j=0;
 +
  for (i=1; i<=NF; i++) {
 +
    str=substr($i,1,4);
 +
    strlist[str]++;
 +
    j++;
 +
  }
 +
  if ( j > 12 ) {
 +
    nb=0;
 +
    for (str in strlist ) {nb++}
 +
    par=(NF-nb)/NF
 +
    printf("%i\t%i\t%5.3f", NF, nb, par)
 +
    for (str in strlist ) {
 +
      printf("\t%s:%s", str, strlist[str]);
 +
    }
 +
    printf("\n")
 +
  }
 +
  delete strlist;
 +
}' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group
 +
</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">
Que pensez-vous de la distribution des taille des OG? Quelle-est la taille maximum attendue?
Que pensez-vous de la distribution des taille des OG? Quelle-est la taille maximum attendue?
</pre>
</pre>
Paralogs
Paralogs
-
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">cat 7.paralogs.-5.50/*.tsv >> 8.all.par.tsv
+
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">cat 7.paralogs/*.tsv >> 8.all.par.tsv
-
mcl 8.all.par.tsv  --abc -I 1.5 -t 4 -o 8.all.par.group.I1.-5.50
+
mcl 8.all.par.tsv  --abc -I 1.5 -t 4 -o 8.all.par.group
</pre>
</pre>
-
====Visualisation of OG====
+
 
 +
====Visualisation des OG====
<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">
srun --pty bash
srun --pty bash
Line 703: Line 873:
=====Vision globale avec genoplotR=====
=====Vision globale avec genoplotR=====
<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">
-
Rscript ~/work/scripts/genoplot_OG_links.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group.1.5-5.50 --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group.1.5-5.50_all.pdf  
+
Rscript ~/work/scripts/genoplot_OG_links.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group_all.pdf  
-
evince work/Prochlorococcus/images/8.all.ort.group.1.5-5.50_all.pdf  
+
evince work/Prochlorococcus/images/8.all.ort.group_all.pdf  
</pre>
</pre>
 +
[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/figures/8.all.ort.group_all.pdf 8.all.ort.group_all.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.11:
Question 1.11:
Line 715: Line 886:
=====Restreindre aux OG sans paralogues=====
=====Restreindre aux OG sans paralogues=====
<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">
-
Rscript ~/work/scripts/genoplot_OG_links.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group.1.5-5.50 --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group.1.5-5.50_nopara.pdf --max_paralogs=0
+
Rscript ~/work/scripts/genoplot_OG_links.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group_nopara.pdf --max_paralogs=0
evince work/Prochlorococcus/images/8.all.ort.group.1.5-5.50_nopara.pdf  
evince work/Prochlorococcus/images/8.all.ort.group.1.5-5.50_nopara.pdf  
</pre>
</pre>
 +
[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/figures/8.all.ort.group_nopara.pdf 8.all.ort.group_nopara.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.12:
Question 1.12:
Line 727: Line 899:
=====Restreindre à un seul OG=====
=====Restreindre à un seul OG=====
<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">
-
Rscript ~/work/scripts/genoplot_OG_links.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group.1.5-5.50 --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group.1.5-5.50_OG5.pdf --select_OG=5
+
Rscript ~/work/scripts/genoplot_OG_links.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group_OG5.pdf --select_OG=5
-
evince work/Prochlorococcus/images/8.all.ort.group.1.5-5.50_OG5.pdf  
+
evince work/Prochlorococcus/images/8.all.ort.group_OG5.pdf  
</pre>
</pre>
 +
[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/figures/8.all.ort.group_all.pdf 8.all.ort.group_OG5.pdf]
 +
Liste des membres du groupe 5
Liste des membres du groupe 5
<pre>
<pre>
Line 750: Line 924:
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  
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
do
-
  grep $i PorthoMCL/8.all.ort.-5.50.tsv
+
  grep $i ~/work/Prochlorococcus/PorthoMCL/8.all.ort.tsv
-
done
+
done | sort | uniq > ~/work/Prochlorococcus/PorthoMCL/G5.gr
</pre>
</pre>
 +
Tracez le graphe de ces gènes avec la librairie ''igraph'' (c.f. [http://silico.biotoul.fr/p/M1_BBS_Graphes_TP_Recherche_de_communaut%C3%A9s_dans_les_graphes TP5] de M1).
-
 
+
MSK
 +
<syntaxhighlight lang="python">
 +
library(igraph)
 +
gr <- read.graph("work/Prochlorococcus/PorthoMCL/G5.gr",format="ncol")
 +
plot(gr, vertex.label.cex=0.8, vertex.size=5, vertex.shape="sphere", edge.width=E(gr)$weight, edge.color="red")
 +
</syntaxhighlight>
 +
[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/figures/graph_OG5.png graph_OG5.png]
<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.13:
Question 1.13:
Line 761: Line 942:
Comment vérifier ces hypothèses?
Comment vérifier ces hypothèses?
</pre>
</pre>
-
 
+
=====Tester l'effet de l'IF sur la taille des OG=====
-
=====Tester l'effet de l'IF surla taille des OG=====
+
Lancer MCL avec différents IF (respecter la syntaxe des noms!)
Lancer MCL avec différents IF (respecter la syntaxe des noms!)
Line 778: Line 958:
orange : OG avec au moins un paralogue(s)
orange : OG avec au moins un paralogue(s)
</pre>
</pre>
-
 
=====Tester l'effet de l'IF sur la paralogie=====
=====Tester l'effet de l'IF sur la paralogie=====
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 784: Line 963:
Rscript ~/work/scripts/MCL_OG_paralogy.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group.8.0-5.50 --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group.8.0-5.50_paralogs.pdf
Rscript ~/work/scripts/MCL_OG_paralogy.R --MCL_file=~/work/Prochlorococcus/PorthoMCL/8.all.ort.group.8.0-5.50 --pdf_file=~/work/Prochlorococcus/images/8.all.ort.group.8.0-5.50_paralogs.pdf
</pre>
</pre>
-
<!--
 
====old stuff2====
====old stuff2====
Line 831: Line 1,009:
-->
-->
-
===PanOCT with ''Prochlorococcus''===
+
=== Panaroo ===
-
Pan-genome Ortholog Clustering Tool, is a program written in PERL for pan-genomic analysis of closely related prokaryotic species or strains. Unlike traditional graph-based ortholog detection programs, it uses micro synteny or conserved gene neighborhood (CGN) in addition to homology to accurately place proteins into orthologous clusters.  
+
[https://gtonkinhill.github.io/panaroo panaroo]
 +
 
 +
===PanOCT===
 +
Pan-genome Ortholog Clustering Tool, est un programme écrit en PERL pour l'analyse pan-génomique d'espèces ou de souches procaryotes étroitement apparentées. Contrairement aux programmes traditionnels de détection d'orthologues basés sur des graphes, il utilise la micro-synténie ou le voisinage de gènes conservés (CGN) en plus de l'homologie pour placer avec précision les protéines dans des groupes orthologues.
[https://sourceforge.net/projects/panoct/ panoct project]
[https://sourceforge.net/projects/panoct/ panoct project]
 +
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_PanOCT PanOCT]
 +
<!--
Vous trouverez le package dans le repertoire suivant:
Vous trouverez le package dans le repertoire suivant:
  /home/formation/public_html/M2_Phylogenomique/PanOCT/panoct_v3.23/
  /home/formation/public_html/M2_Phylogenomique/PanOCT/panoct_v3.23/
Line 857: Line 1,040:
  ~/work/scripts/prokkagff2panoct.pl --gffdir prokka/$prefix --output panoct/results/$prefix.tab
  ~/work/scripts/prokkagff2panoct.pl --gffdir prokka/$prefix --output panoct/results/$prefix.tab
done
done
-
squeue -l -u <user>
+
 
ls panoct/results/*.tab
ls panoct/results/*.tab
</pre>
</pre>
Line 892: Line 1,075:
</pre>
</pre>
-
===run panOCT===
+
====run panOCT====
-
====panoct.pl====
+
panoct.pl: avec les paramètres par défaut.
-
with default paramerters
+
<pre>
<pre>
  -t: name of btab (wublast-style or ncbi -m8 or -m9) input file [REQUIRED]
  -t: name of btab (wublast-style or ncbi -m8 or -m9) input file [REQUIRED]
Line 901: Line 1,083:
  -P: name of concatinated .pep file [REQUIRED to calc protein lengths]
  -P: name of concatinated .pep file [REQUIRED to calc protein lengths]
</pre>
</pre>
-
 
+
La commande:
<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">
-
cd panoct
 
-
 
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/panoct.pl -b results -t combined.blast -f genomes.list -g combined.att -P combined.fasta -S yes -L 1 -M Y -H Y -V Y -N Y -F 1.33 -G y -c 0,50,95,100 -T
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/panoct.pl -b results -t combined.blast -f genomes.list -g combined.att -P combined.fasta -S yes -L 1 -M Y -H Y -V Y -N Y -F 1.33 -G y -c 0,50,95,100 -T
</pre>
</pre>
 +
Lancer avec sbatch et un script du type "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/panoct_P.csh panoct_P.csh]" (les chemins sont à changer).
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sbatch panoct_P.csh
 +
squeue -l -u <user>
 +
</pre>
 +
-->
==Analyses pan-génomiques==
==Analyses pan-génomiques==
Line 912: Line 1,098:
[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4765519/ Inside the Pan-genome - Methods and Software Overview]
[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4765519/ Inside the Pan-genome - Methods and Software Overview]
 +
 +
Suivre: [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Analyses_pan-g%C3%A9nomiques Analyses pan-génomiques]
 +
<!--
===Définitions===
===Définitions===
D'après [https://www.ncbi.nlm.nih.gov/pubmed/25483351 Vernikos ''et al.'' 2015]
D'après [https://www.ncbi.nlm.nih.gov/pubmed/25483351 Vernikos ''et al.'' 2015]
Line 982: Line 1,171:
cat results/pangenome_size results/unique.txt > results/pangenome_size_comp
cat results/pangenome_size results/unique.txt > results/pangenome_size_comp
</pre>
</pre>
-
 
+
====Pan génome et génome coeur====
-
====Afficher les courbes====
+
-
=====Pan génome et génome coeur=====
+
<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">
Rscript /home/formation/public_html/M2_Phylogenomique/scripts/pan_core_plot.R
Rscript /home/formation/public_html/M2_Phylogenomique/scripts/pan_core_plot.R
Line 1,011: Line 1,198:
Que pouvez-vous en conclure?
Que pouvez-vous en conclure?
</pre>
</pre>
-
<!--
 
====run_panoct.pl====
====run_panoct.pl====
<pre>
<pre>
Line 1,057: Line 1,243:
cat(pdf_file, "\n")
cat(pdf_file, "\n")
</pre>
</pre>
-
-->
 
-
===PanOCT classification des pro teins de l'OG 5 de PorthoMCL===
+
===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?
Nous avons vu que le OG 5 de PorthoMCL renfermait 36 séquences. Comment se distribuent ces protéines avec panOCT?
 +
 +
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">
-
rm ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt
+
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  
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
do
Line 1,080: Line 1,271:
</pre>
</pre>
-
==Alignement et comparaison de génomes complets==
+
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>
 +
-->
 +
 +
==Alignement et comparaison de génomes complets==
 +
Suivre : [http://silico.biotoul.fr/site/index.php?title=Atelier_Phylog%C3%A9nomique_Alignement_Genomes Alignement Genomes]
 +
<!--
:'''Jeu de données'''
:'''Jeu de données'''
Line 1,096: Line 1,305:
=====Diversité génomique basée sur l’ANI=====
=====Diversité génomique basée sur l’ANI=====
-
 
+
:'''Calculer l’ANI entre toutes les paires de génomes en utilisant la version basée sur [https://mummer4.github.io/ Mummer].''' http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2018_supports/CoursAligntGenomes2018.pdf
-
 
+
-
:'''Calculer l’ANI entre toutes les paires de génomes en utilisant la version basée sur [https://mummer4.github.io/ Mummer].'''
+
<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">
Line 1,109: Line 1,316:
</pre>
</pre>
 +
Exemple de script "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/RunSLURM_ANI.csh RunSLURM_ANI.csh]" (les chemins sont à changer):
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sbatch RunSLURM_ANI.csh
 +
squeue -l -u <user>
 +
</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">
Question 2.1:
Question 2.1:
Line 1,117: Line 1,329:
:'''Construire un arbre de Neighbor-Joining basé sur le ANI (ANIm_percentage_identity et ANIm_alignment_coverage) avec le logiciel de votre choix'''
:'''Construire un arbre de Neighbor-Joining basé sur le ANI (ANIm_percentage_identity et ANIm_alignment_coverage) avec le logiciel de votre choix'''
-
Vous pourrez par exemple utiliser la fonction ''nj'' du package R ''ape''. Notez que la commande ''nj'' prend en entrée une matrice de distance. La fonction ''heatmap'' ([https://www.r-graph-gallery.com/index.html r-graph-gallery] peut être utile pour visualiser les relations entre les souches.  
+
Vous pourrez par exemple utiliser la fonction ''nj'' du package R ''ape''. Notez que la commande ''nj'' prend en entrée une matrice de distance. La fonction ''heatmap'' ([https://www.r-graph-gallery.com/index.html r-graph-gallery]) peut être utile pour visualiser les relations entre les souches.  
-
 
+
 +
<syntaxhighlight lang="python">
id_file <- "work/Alignement_genomes/genomes_ANIm_output/ANIm_percentage_identity.tab"
id_file <- "work/Alignement_genomes/genomes_ANIm_output/ANIm_percentage_identity.tab"
id_data <- read.table(file=id_file, header=T, row.names=1)
id_data <- read.table(file=id_file, header=T, row.names=1)
Line 1,133: Line 1,345:
co_nj <- nj(as.matrix(1-co_data))
co_nj <- nj(as.matrix(1-co_data))
plot(co_nj, main="ANIm_alignment_coverage")
plot(co_nj, main="ANIm_alignment_coverage")
 +
</syntaxhighlight>
 +
On pourra par exemple utiliser le site [http://www.phylogeny.fr/one_task.cgi?task_type=bionj phylogeny.fr] dans lequel on importera le fichier genomes_ANIm_output/ANIm_percentage_identity.tab (modifié en enlevant la 1ère ligne et en la remplaçant par le nombre de séquences 12).
-
<!--
 
-
On pourra par exemple utiliser le site [http://www.phylogeny.fr/one_task.cgi?task_type=bionj phylogeny.fr] dans lequel on importera le fichier genomes_ANIm_output/ANIm_percentage_identity.tab (modifié en enlevant la 1ère ligne et en la remplaçant par le nombre de séquences 12).
 
-
-->
 
<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 2.2:
Question 2.2:
Line 1,152: Line 1,363:
=====Distance Mash entre les génomes=====
=====Distance Mash entre les génomes=====
Passez à l'étape suivante.
Passez à l'étape suivante.
-
<!--
 
:'''Calculer la distance Mash entre toutes les paires de génomes'''
:'''Calculer la distance Mash entre toutes les paires de génomes'''
Line 1,183: Line 1,393:
Comparez les résultats de distance MASH à ceux de l’ANI.
Comparez les résultats de distance MASH à ceux de l’ANI.
</pre>
</pre>
-
-->
 
-
 
===Alignements Mauve et ProgressiveMauve===
===Alignements Mauve et ProgressiveMauve===
<pre style="color:brown;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:brown;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 1,191: Line 1,399:
=====Alignements Mauve d'un sous-ensemble de 6 génomes=====
=====Alignements Mauve d'un sous-ensemble de 6 génomes=====
-
:'''Concaténer les 6 génomes sélectionnés à la question précédente dans un fichier multifasta'''
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
<!--
+
mkdir -p ~/work/Alignement_genomes/cat_genomes_prochlo
-
rm ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.fna
+
</pre>
-
rm ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.gbk
+
======Concaténer les 6 génomes sélectionnés à la question précédente dans un fichier multifasta======
-
rm ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.gff
+
<syntaxhighlight lang="bash">
 +
rm ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.fna
 +
rm ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.gbk
 +
rm ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.gff
for i in Aaab Aaag Aaaj Aaaf Aaak Aaae  
for i in Aaab Aaag Aaaj Aaaf Aaak Aaae  
do
do
  echo $i
  echo $i
-
  cat ~/work/Alignement_genomes/genomes_prochlo/$i.fas >> ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.fna
+
  cat ~/work/Alignement_genomes/genomes_prochlo/$i.fas >> ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.fna
-
  cat ~/work/Prochlorococcus/prokka/$i/$i.gbk >> ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.gbk
+
  cat ~/work/Prochlorococcus/prokka/$i/$i.gbk >> ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.gbk
-
  cat ~/work/Prochlorococcus/prokka/$i/$i.gff >> ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.gff
+
  cat ~/work/Prochlorococcus/prokka/$i/$i.gff >> ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.gff
done
done
-
-->
+
</syntaxhighlight>
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
MSK
 +
<syntaxhighlight lang="bash">
for i in Aaax  Aaay Aaaz
for i in Aaax  Aaay Aaaz
do
do
  echo $i
  echo $i
-
  cat ~/work/Alignement_genomes/genomes_prochlo/$i.fas >> ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.fna
+
  cat ~/work/Alignement_genomes/genomes_prochlo/$i.fas >> ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.fna
-
  cat ~/work/Prochlorococcus/prokka/$i/$i.gbk >> ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.gbk
+
  cat ~/work/Prochlorococcus/prokka/$i/$i.gbk >> ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.gbk
done
done
-
</pre>
 
-
:'''Lancement de l’alignement des 6 génomes sur le cluster SLURM'''
+
grep -c '>' ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.fna
 +
grep -c 'LOCUS' ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.gbk
 +
</syntaxhighlight>
 +
 
 +
======Lancement de l’alignement des 6 génomes sur le cluster SLURM======
<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">
mkdir ~/work/Alignement_genomes/Mauve
mkdir ~/work/Alignement_genomes/Mauve
cd ~/work/Alignement_genomes
cd ~/work/Alignement_genomes
</pre>
</pre>
-
Exemple de script "RunSLURM_PMauve_6GProchlo.csh" (les chemins sont à changer):
+
Exemple de script "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/RunSLURM_Mauve_6GProchlo.csh RunSLURM_Mauve_6GProchlo.csh]" (les chemins sont à changer):
<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">
-
#!/bin/bash
+
sbatch RunSLURM_Mauve_6GProchlo.csh
-
#SBATCH --time=02:00:00 #job time limit
+
-
#SBATCH -J Mauve_6GProclo
+
-
#SBATCH -o RunSLURM_Mauve_6GProclo.out
+
-
#SBATCH -e RunSLURM_Mauve_6GProclo.err
+
-
#SBATCH --mem=8G
+
-
#SBATCH --cpus-per-task=4 #ncpu on the same node
+
-
#SBATCH --chdir=/home/<user>/work/Alignement_genomes
+
-
#SBATCH --mail-type=BEGIN,END,FAIL (email address is LDAP accounts)
+
-
#Purge any previous modules
+
-
module purge
+
-
#Load the application
+
-
module load bioinfo/mauve_2.4.0
+
-
# My command lines I want to run on the cluster
+
-
mauveAligner --output=Mauve/6GC_Prochlorococcus_gbk.mauve_def --permutation-matrix-output=Mauve/6GC_Prochlorococcus_gbk.permutation_matrix --output-guide-tree=Mauve/6GC_Prochlorococcus_gbk.tree --output-alignment=Mauve/6GC_Prochlorococcus_gbk_mauve.xmfa genomes_prochlo/6GC_Prochlorococcus.gbk
+
-
</pre>
+
-
 
+
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
sbatch RunSLURM_PMauve_6GProchlo.csh
+
squeue -l -u <user>
squeue -l -u <user>
</pre>
</pre>
-
<!--
 
<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">
mkdir ~/work/Alignement_genomes/Mauve
mkdir ~/work/Alignement_genomes/Mauve
cd ~/work/Alignement_genomes
cd ~/work/Alignement_genomes
srun --pty bash
srun --pty bash
 +
Exemple de la commande à lancer avec le fichier en format gbk
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
module load bioinfo/mauve_2.4.0
module load bioinfo/mauve_2.4.0
-
# Exemple avec le fichier en format gbk
+
mauveAligner --output=Mauve/6GC_Prochlorococcus_gbk.mauve_def --permutation-matrix-output=Mauve/6GC_Prochlorococcus_gbk.permutation_matrix --output-guide-tree=Mauve/6GC_Prochlorococcus_gbk.tree --output-alignment=Mauve/6GC_Prochlorococcus_gbk_mauve.xmfa cat_genomes_prochlo/6GC_Prochlorococcus.gbk
-
mauveAligner --output=Mauve/6GC_Prochlorococcus_gbk.mauve_def --permutation-matrix-output=Mauve/6GC_Prochlorococcus_gbk.permutation_matrix --output-guide-tree=Mauve/6GC_Prochlorococcus_gbk.tree --output-alignment=Mauve/6GC_Prochlorococcus_gbk_mauve.xmfa genomes_prochlo/6GC_Prochlorococcus.gbk
+
</pre>
</pre>
-
 
+
Soumission du job (vérifiez que vous êtes bien sur '''genologin2'''!):
-
Soumission du job:
+
<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">
sbatch --chdir=~/work/Alignement_genomes RunSLURM_Mauve_6GProchlo.csh
sbatch --chdir=~/work/Alignement_genomes RunSLURM_Mauve_6GProchlo.csh
Line 1,273: Line 1,469:
mauveAligner --output=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.mauve_def --permutation-matrix-output=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.permutation_matrix --output-guide-tree=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.tree --output-alignment=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus_mauve.xmfa  /home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.fna
mauveAligner --output=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.mauve_def --permutation-matrix-output=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.permutation_matrix --output-guide-tree=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.tree --output-alignment=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus_mauve.xmfa  /home/hchiapello/work/TP_M2_BIOINFO/TP_2018/6GC_Prochlorococcus.fna
</pre>
</pre>
-
-->
 
-
:'''Analyser et interpréter les résultats en les visualisant via l’interface Mauve (commande Mauve)'''
+
======Analyser et interpréter les résultats en les visualisant via l’interface Mauve (commande Mauve)======
Remarques:  
Remarques:  
*dans le fichier ''Mauve/6GC_Prochlorococcus_gbk_mauve.xmfa'', le chemin du fichier gbk et relatif, penser à lancer Mauve dans le bon répertoire pour avoir les annotations des gènes.
*dans le fichier ''Mauve/6GC_Prochlorococcus_gbk_mauve.xmfa'', le chemin du fichier gbk et relatif, penser à lancer Mauve dans le bon répertoire pour avoir les annotations des gènes.
Line 1,281: Line 1,476:
<pre>
<pre>
#FormatVersion Mauve1
#FormatVersion Mauve1
-
#Sequence1File genomes_prochlo/6GC_Prochlorococcus.gbk
+
#Sequence1File cat_genomes_prochlo/6GC_Prochlorococcus.gbk
#Sequence1Entry 1
#Sequence1Entry 1
#Sequence1Format GenBank
#Sequence1Format GenBank
-
#Annotation1File genomes_prochlo/6GC_Prochlorococcus.gbk
+
#Annotation1File cat_genomes_prochlo/6GC_Prochlorococcus.gbk
...
...
 +
</pre>
 +
 +
======Exploration du contexte génomique======
 +
L'outil ''Sequence Navigator'' (les jumelles) permet de rechercher un ou plusieurs gènes sur différents critères. Nous allons utiliser cette fonctionnalité pour analyser le contexte génomique des gènes suivants. Les noms des gènes sont accessibles  par ''locus tag''. En vous plaçant sur le gène, vous avez ses annotations avec ''View Genbank...''. En quittant les jumelles, vous pouvez analyser la conservation du contexte à différentes échelles.
 +
<pre>
 +
Aaab.g_00239 Aaab.g_00820 Aaab.g_00825
 +
Aaag.g_00262 Aaag.g_00862 Aaag.g_00867
 +
Aaaj.g_00252 Aaaj.g_00786 Aaaj.g_00791
 +
Aaaf.g_00249 Aaaf.g_00782 Aaaf.g_00787
 +
Aaak.g_00251 Aaak.g_00834 Aaak.g_00839
 +
Aaae.g_00242 Aaae.g_00786 Aaae.g_00791
</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">
Question 2.5:
Question 2.5:
-
Combien y’a-t-il de LCB dans l’alignement ? Quel est leur poids minimal ? Y’a–t-il des réarrangements dans l’alignement et si oui lesquels ? Décrire la structure de l’alignement. Que se passe-t-il si on fait varier le poids des LCB ?
+
Combien y’a-t-il de LCB dans l’alignement ? Quel est leur poids minimal ? Y’a–t-il des réarrangements globaux dans l’alignement et si oui lesquels ? Décrire la structure de l’alignement. Que se passe-t-il si on fait varier le poids des LCB ?
 +
Qu'avez-vous appris de l'analyse du contexte génomique des gènes.
</pre>
</pre>
Line 1,299: Line 1,506:
cd ~/work/Alignement_genomes
cd ~/work/Alignement_genomes
</pre>
</pre>
-
Créer un ficher .csh en prenant pour exemple le fichier ''RunSLURM_Mauve_6GProchlo.csh''
+
Créer un ficher .csh en prenant pour exemple le fichier "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/RunSLURM_PMauve_6GProchlo.csh RunSLURM_PMauve_6GProchlo.csh]"
avec comme ligne de commande:
avec comme ligne de commande:
<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">
-
progressiveMauve --output=ProgressiveMauve/6GC_Prochlorococcus_PMauve.xmfa genomes_prochlo/6GC_Prochlorococcus.fna
+
progressiveMauve --output=ProgressiveMauve/6GC_Prochlorococcus_PMauve.xmfa cat_genomes_prochlo/6GC_Prochlorococcus.gbk
</pre>
</pre>
-
<!--
+
[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/Mauve Mauve]
<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"
>mkdir ~/work/Alignement_genomes/ProgressiveMauve
>mkdir ~/work/Alignement_genomes/ProgressiveMauve
srun --pty bash
srun --pty bash
module load bioinfo/mauve_2.4.0
module load bioinfo/mauve_2.4.0
-
progressiveMauve --output=ProgressiveMauve/6GC_Prochlorococcus_PMauve.xmfa genomes_prochlo/6GC_Prochlorococcus.fna
+
progressiveMauve --output=ProgressiveMauve/6GC_Prochlorococcus_PMauve.xmfa cat_genomes_prochlo/6GC_Prochlorococcus.gbk
</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">
Question 2.6:
Question 2.6:
Line 1,318: Line 1,524:
=====Alignement Progressive Mauve de l’ensemble complet des 12 génomes=====
=====Alignement Progressive Mauve de l’ensemble complet des 12 génomes=====
-
'''Concaténer les 12 génomes dans un fichier multifasta'''
+
Concaténer les 12 génomes dans un fichier multifasta
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
rm ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.fna
 +
rm ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.gbk
for i in Aaaa Aaab Aaac Aaad Aaae Aaaf Aaag Aaah Aaai Aaaj Aaak Aaal
for i in Aaaa Aaab Aaac Aaad Aaae Aaaf Aaag Aaah Aaai Aaaj Aaak Aaal
do
do
  echo $i
  echo $i
-
  cat ~/work/Alignement_genomes/genomes_prochlo/$i.fas >> ~/work/Alignement_genomes/genomes_prochlo/12GC_Prochlorococcus.fna
+
  cat ~/work/Alignement_genomes/genomes_prochlo/$i.fas >> ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.fna
 +
cat ~/work/Prochlorococcus/prokka/$i/$i.gbk >> ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.gbk
done
done
-
grep -c '>' ~/work/Alignement_genomes/genomes_prochlo/12GC_Prochlorococcus.fna
+
grep -c '>' ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.fna
-
</pre>
+
grep -c 'LOCUS' ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.gbk
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
</syntaxhighlight>
-
cat ~/work/Prochlorococcus/prokka/*/*gbk >> 12GC_Prochlorococcus.gbk
+
======Lancer l’alignement ProgressiveMauve des 12 génomes sur le cluster SLURM======
-
</pre>
+
Exemple de script "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/RunSLURM_PMauve_12GProchlo.csh RunSLURM_PMauve_12GProchlo.csh]" (les chemins sont à changer).
-
'''Lancer l’alignement ProgressiveMauve des 12 génomes sur le cluster SLURM'''
+
-
 
+
-
Exemple de script "RunSLURM_PMauve_12GProchlo.csh" (les chemins sont à changer):
+
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
#!/bin/bash
+
-
#SBATCH --time=02:00:00 #job time limit
+
-
#SBATCH -J ProgressiveMauve_12GProclo
+
-
#SBATCH -o RunSLURM_ProgressiveMauve_12GProclo.out
+
-
#SBATCH -e RunSLURM_ProgressiveMauve_12GProclo.err
+
-
#SBATCH --mem=8G
+
-
#SBATCH --cpus-per-task=4 #ncpu on the same node
+
-
#SBATCH --chdir=/home/<user>/work/Alignement_genomes
+
-
#SBATCH --mail-type=BEGIN,END,FAIL (email address is LDAP accounts)
+
-
#Purge any previous modules
+
-
module purge
+
-
#Load the application
+
-
module load bioinfo/mauve_2.4.0
+
-
# My command lines I want to run on the cluster
+
-
progressiveMauve --output=ProgressiveMauve/12GC_Prochlorococcus_PMauve.xmfa --output-guide-tree=ProgressiveMauve/12GC_Prochlorococcus_PMauve.ph genomes_prochlo/12GC_Prochlorococcus.fna
+
-
</pre>
+
-
 
+
<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">
sbatch RunSLURM_PMauve_12GProchlo.csh
sbatch RunSLURM_PMauve_12GProchlo.csh
squeue -l -u <user>
squeue -l -u <user>
</pre>
</pre>
-
<!--
+
[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/Mauve Mauve]
<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">
mkdir ~/work/Alignement_genomes/ProgressiveMauve
mkdir ~/work/Alignement_genomes/ProgressiveMauve
Line 1,368: Line 1,558:
sbatch RunSLURM_PMauve_12GProchlo.csh
sbatch RunSLURM_PMauve_12GProchlo.csh
</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">
Question 2.7:
Question 2.7:
Analyser et interpréter les résultats en les visualisant via l’interface Mauve
Analyser et interpréter les résultats en les visualisant via l’interface Mauve
 +
 +
Si vous avez l'annotation des gènes dans le résultat de ''Progressive Mauve'', vous pouvez visualiser la conservation du contexte de ces gènes de l'OG 5 de PorthoMCL et proposer une interprétation des liens complexes existant entre ces gènes homologues.
</pre>
</pre>
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
L'article de Yan et al., 2018 Genome rearrangement shapes ''Prochlorococcus'' ecological adaptation. Appl Environ Microbiol 84:e01178-18. https://doi.org/10.1128/AEM.01178-18 peut vous aider dans l'interprétation des résultats.
-
Mauve 12GC_Prochlorococcus_pmauve.xmfa
+
-
</pre>
+
-
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
Si vous avez l'annotation des gènes dans le résultat de ''Progressive Mauve'', vous pouvez tenter de visualiser la conservation du contexte de ces gènes de l'OG 5 de PorthoMCL et proposer une interprétation des liens complexes existants entre ces gènes homologues.
+
-
</pre>
+
===Reconstruction de l’histoire évolutive des réarrangements et des états ancestraux===
===Reconstruction de l’histoire évolutive des réarrangements et des états ancestraux===
-
 
+
masqué
:'''Exporter le fichier de permutation des LCBs de l’alignement généré à la question précédente avec ProgressiveMauve en cliquant dans l’interface Mauve sur Tools => Export => Export Permutation. Ainsi vous pouvez créer les fichiers permutations.'''
:'''Exporter le fichier de permutation des LCBs de l’alignement généré à la question précédente avec ProgressiveMauve en cliquant dans l’interface Mauve sur Tools => Export => Export Permutation. Ainsi vous pouvez créer les fichiers permutations.'''
*6GC_Prochlorococcus_pmauve.permutation (pour se familiariser sur les résultats!)
*6GC_Prochlorococcus_pmauve.permutation (pour se familiariser sur les résultats!)
Line 1,426: Line 1,612:
</pre>
</pre>
Ou plus simplement, vous pouvez utiliser [https://itol.embl.de/ iTOL] pous visualiser l'arbre directement avec les valeurs de bootstraps et éventuellement l'annoter.
Ou plus simplement, vous pouvez utiliser [https://itol.embl.de/ iTOL] pous visualiser l'arbre directement avec les valeurs de bootstraps et éventuellement l'annoter.
 +
-->
==Analyses phylogénomiques==
==Analyses phylogénomiques==
Comme dans [https://www.ncbi.nlm.nih.gov/pubmed/18159947 Kettler et al., 2007], nous allons utiliser quatre génomes de Synechococcus comme groupe externe dans nos analyses.  
Comme dans [https://www.ncbi.nlm.nih.gov/pubmed/18159947 Kettler et al., 2007], nous allons utiliser quatre génomes de Synechococcus comme groupe externe dans nos analyses.  
 +
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Analyses_phylog%C3%A9nomiques Analyses phylogénomiques]
 +
<!--
Mise à jour des scripts!
Mise à jour des scripts!
-
<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:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
cp /home/formation/public_html/M2_Phylogenomique/scripts/* ~/work/scripts
cp /home/formation/public_html/M2_Phylogenomique/scripts/* ~/work/scripts
</pre>
</pre>
Line 1,462: Line 1,651:
====''Synechococcus'' blastp All-All====
====''Synechococcus'' blastp All-All====
-
Nous allons reproduire le même enchaînement de scipts:
+
Nous allons reproduire le même enchaînement de scipts utilisés avec ''Prochlorococcus'' ([[Atelier_Phylogénomique#Blast_All-All]]) en prenant soin de remplacer Prochlorococcus par Synechococcus dans les noms des répertoires.
 +
 
 +
Copiez les fichier *.faa de prokka dans ~/work/Synechococcus/peptide/
 +
 
<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">
mkdir -p ~/work/Synechococcus/peptide
mkdir -p ~/work/Synechococcus/peptide
Line 1,471: Line 1,663:
</pre>
</pre>
 +
Créer la ''blast database''.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/Synechococcus/peptide/*.faa;
 +
do     
 +
  echo "module load bioinfo/ncbi-blast-2.7.1+; makeblastdb -in $i  -dbtype prot;"
 +
done > makeblastdb.sh
 +
 +
cat makeblastdb.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 makeblastdb.sh
 +
squeue -l -u <user>
 +
</pre>
 +
 +
Boucle sur les genomes de ''Synechococcus''.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
evalue=1e-5
 +
dbsize=100000000
 +
for i in ~/work/Synechococcus/peptide/*.faa;
 +
do
 +
  ip=$(basename $i .faa)   
 +
  for j in ~/work/Synechococcus/peptide/*.faa; 
 +
  do
 +
    jp=$(basename $j .faa)   
 +
    outfile="~/work/Synechococcus/BlastP/"$ip"_"$jp".tab"
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastp -query $i -db $j -seg yes -dbsize $dbsize -evalue $evalue -outfmt 6 -num_threads 1 -out $outfile;"
 +
  done
 +
done > blast_allall.sh
 +
 +
cat blast_allall.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
 +
squeue -l -u <user>
 +
</pre>
<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">
-
module load bioinfo/ncbi-blast-2.6.0+
+
module load bioinfo/ncbi-blast-2.7.1+
for i in *.faa;  
for i in *.faa;  
do       
do       
Line 1,478: Line 1,711:
done
done
</pre>
</pre>
-
 
<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">
mkdir -p ~/work/Synechococcus/BlastP
mkdir -p ~/work/Synechococcus/BlastP
Line 1,512: Line 1,744:
</pre>
</pre>
====Compléter les paires de comparaisons====
====Compléter les paires de comparaisons====
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
evalue=1e-5
 +
dbsize=100000000
 +
for i in ~/work/Synechococcus/peptide/*.faa;
 +
do
 +
  ip=$(basename $i .faa)   
 +
  for j in ~/work/Prochlorococcus/peptide/*.faa; 
 +
  do
 +
    jp=$(basename $j .faa)   
 +
    outfile="~/work/ProchlorococcusSynechococcus/BlastP/"$ip"_"$jp".tab"
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastp -query $i -db $j -seg yes -dbsize $dbsize -evalue $evalue -outfmt 6 -num_threads 1 -out $outfile;"
 +
 +
    outfile="~/work/ProchlorococcusSynechococcus/BlastP/"$jp"_"$ip".tab"
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastp -query $j -db $i -seg yes -dbsize $dbsize -evalue $evalue -outfmt 6 -num_threads 1 -out $outfile;"
 +
done
 +
done > blast_allall.sh
 +
 +
cat blast_allall.sh
 +
</syntaxhighlight>
 +
<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">
-
cd ~/work/ProchlorococcusSynechococcus
+
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
-
~/work/scripts/blastp_inter.pl
+
-
 
+
squeue -l -u <user>
squeue -l -u <user>
-
 
-
ls BlastP | wc -l
 
</pre>
</pre>
 +
Vérifiez que vous avez bien le nombre de fichiers attendus!
-
===Groupes de gènes orthologues===
+
===Groupes de gènes orthologues avec PanOCT===
====Préparation des fichiers combined====
====Préparation des fichiers combined====
<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">
Line 1,530: Line 1,780:
'''combined.att'''
'''combined.att'''
Créer un fichier avec les coordonnées, noms, fonction et souches des gènes.  
Créer un fichier avec les coordonnées, noms, fonction et souches des gènes.  
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
<syntaxhighlight lang="bash">
cd ~/work/Synechococcus
cd ~/work/Synechococcus
for file in peptide/*.faa
for file in peptide/*.faa
Line 1,540: Line 1,790:
squeue -l -u <user>
squeue -l -u <user>
ls panoct/results/*.tab
ls panoct/results/*.tab
-
</pre>
+
</syntaxhighlight>
<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">
Line 1,548: Line 1,798:
'''genomes.list'''
'''genomes.list'''
Liste des souches à analyser.
Liste des souches à analyser.
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
<syntaxhighlight lang="bash">
cd ~/work/ProchlorococcusSynechococcus/
cd ~/work/ProchlorococcusSynechococcus/
for i in peptide/*.faa
for i in peptide/*.faa
Line 1,555: Line 1,805:
done > panoct/results/genomes.list
done > panoct/results/genomes.list
more panoct/results/genomes.list
more panoct/results/genomes.list
-
</pre>
+
</syntaxhighlight>
'''combined.fasta'''
'''combined.fasta'''
Concaténer les fichier peptides dans un seul fichier.
Concaténer les fichier peptides dans un seul fichier.
Line 1,572: Line 1,822:
====run panOCT Prochlorococcus vs Synechococcus====
====run panOCT Prochlorococcus vs Synechococcus====
 +
Exemple de script "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/panoct_PS.csh panoct_PS.csh]" (les chemins sont à changer).
<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">
cd ~/work/ProchlorococcusSynechococcus/panoct
cd ~/work/ProchlorococcusSynechococcus/panoct
mkdir ~/work/ProchlorococcusSynechococcus/images
mkdir ~/work/ProchlorococcusSynechococcus/images
 +
</pre>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sbatch panoct_PS.csh
 +
squeue -l -u <user>
 +
</pre>
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/panoct.pl -b results -t combined.blast -f genomes.list -g combined.att -P combined.fasta -S yes -L 1 -M Y -H Y -V Y -N Y -F 1.33 -G y -c 0,50,95,100 -T
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/panoct.pl -b results -t combined.blast -f genomes.list -g combined.att -P combined.fasta -S yes -L 1 -M Y -H Y -V Y -N Y -F 1.33 -G y -c 0,50,95,100 -T
</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">
Question 3.1:
Question 3.1:
Résumez dans une figure les différentes étapes réalisées jusqu'à l’obtention des groupes de gènes orthologues. N'oubliez pas la légende!   
Résumez dans une figure les différentes étapes réalisées jusqu'à l’obtention des groupes de gènes orthologues. N'oubliez pas la légende!   
</pre>
</pre>
-
Heatmap des groupes de gènes orthologues
+
Heatmap des groupes de gènes orthologues avec le fichier ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable_0_1.txt
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
 +
MSK
 +
<syntaxhighlight lang="python">
srun --pty bash # si nécessaire!
srun --pty bash # si nécessaire!
module load system/R-3.5.1;
module load system/R-3.5.1;
Line 1,599: Line 1,858:
dev.off()
dev.off()
cat(pdf_file, "\n")
cat(pdf_file, "\n")
-
</pre>
+
</syntaxhighlight>
 +
 
<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 3.2:
Question 3.2:
Line 1,608: Line 1,868:
====Gènes espèces spécifique====
====Gènes espèces spécifique====
=====Gènes trouvés chez toutes les souches de ''Prochlorococcus'' mais dans aucune de ''Synechococcus'':=====
=====Gènes trouvés chez toutes les souches de ''Prochlorococcus'' mais dans aucune de ''Synechococcus'':=====
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
Vous allez utiliser un script ''awk'' pour réaliser ce filtrage.
 +
 
 +
*Editez le fichier matchtable.txt pour comprendre sa structure.
 +
*Que représente chaque ligne?
 +
*Comment sont organisées les colonnes?
 +
*Identifiez le motif signalant l'absence d'un gène dans un OG.
 +
*Pour chaque OG:
 +
**Compter le nombre de gènes présents chez les''Prochlorococcus''.
 +
**Compter le nombre de gènes absents chez les''Synechococcus''.
 +
**Editer la ligne si elle remplit les conditions
 +
 
 +
MSK
 +
<syntaxhighlight lang="awk">
awk 'BEGIN {
awk 'BEGIN {
     h=0;
     h=0;
-
          }
+
}
{
{
       mp=0
       mp=0
Line 1,621: Line 1,893:
           if( $i !~ /-/ ) sp++
           if( $i !~ /-/ ) sp++
       }
       }
-
       if ( mp==12 && sp ==0 ) {
+
       if ( mp==11 && sp ==0 ) {
           h++;
           h++;
           printf("%d\t%d", h, $1);
           printf("%d\t%d", h, $1);
Line 1,630: Line 1,902:
       }
       }
}' < ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt > ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt
}' < ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt > ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt
-
</pre>
+
</syntaxhighlight>
-
Expliquez les différentes étapes réalisées par ce script. Quelles-sont les fonctions des gènes retenus?
+
 
 +
Quelles-sont les fonctions des gènes retenus?
 +
 
 +
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">
awk '{ system("grep "$3"  ~/work/Prochlorococcus/prokka/Aaaa/Aaaa.gff >>  ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific_annotations.txt")}' < ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt
awk '{ system("grep "$3"  ~/work/Prochlorococcus/prokka/Aaaa/Aaaa.gff >>  ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific_annotations.txt")}' < ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt
</pre>
</pre>
 +
 +
=====Gènes trouvés chez toutes les souches de ''Synechococcus'' mais dans aucune de ''Prochlorococcus'':=====
 +
 +
MSK
 +
awk 'BEGIN {
 +
    h=0;
 +
}
 +
{
 +
      mp=0
 +
      for (i=2; i<=13; i++) {
 +
          if( $i !~ /-/ ) mp++
 +
      }
 +
      sp=0
 +
      for (i=14; i<=17; i++) {
 +
          if( $i !~ /-/ ) sp++
 +
      }
 +
      if ( mp==0 && sp ==4  ) {
 +
          h++;
 +
          printf("%d\t%d", h, $1);
 +
          for (i=2; i<=17; i++) {
 +
                  if( $i !~ /-/ ) printf("\t%s", $i);
 +
            }
 +
            printf("\n");
 +
      }
 +
}' < ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt<syntaxhighlight lang="awk">
 +
</syntaxhighlight>
 +
<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 3.3:
Question 3.3:
Analysez ces résultats et les confronter à ceux disponibles dans la littérature.  
Analysez ces résultats et les confronter à ceux disponibles dans la littérature.  
</pre>
</pre>
 +
Vous pouvez vous inspirer des articles de Kettler et al. (2007), Garczarek et al. 2007,  et  Partensky and Garczarek (2010).
 +
 +
====Comparaison des résultats de PanOCT avec et sans les génomes de ''Synechococcus''====
 +
Ces pairs sont à extraire des fichiers:
 +
*~/work/Prochlorococcus/panoct/results/matchtable.txt
 +
*~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt
 +
 +
A laide d'un script ''awk'', pour les deux fichiers
 +
*pour chaque OG,
 +
**sélectionner les gènes de Prochlorococcus,
 +
**les assembler par paires et les imprimer.
 +
 +
MSK
 +
<syntaxhighlight lang="awk">
 +
awk '
 +
{
 +
col[""]=0;
 +
j=0;
 +
for (i=2; i<=13; i++) {
 +
  if( $i !~ /-/ ) {
 +
  j++;
 +
  col[j]=$i;
 +
  }
 +
}
 +
ncol=j;
 +
if ( ncol > 1 ) {
 +
  #printf("%d\n", $1);
 +
  for (k=1; k<=ncol; k++) {
 +
  for (m=k+1; m<=ncol; m++) {
 +
    printf("%s%s\n", col[k], col[m]);
 +
  }
 +
  }
 +
}
 +
delete col #printf("\n");
 +
}' ~/work/Prochlorococcus/panoct/results/matchtable.txt > ~/work/ProchlorococcusSynechococcus/Ppairs.txt
 +
 +
awk '
 +
{
 +
col[""]=0;
 +
j=0;
 +
for (i=2; i<=13; i++) {
 +
  if( $i !~ /-/ ) {
 +
  j++;
 +
  col[j]=$i;
 +
  }
 +
}
 +
ncol=j;
 +
if ( ncol > 1 ) {
 +
  #printf("%d\n", $1);
 +
  for (k=1; k<=ncol; k++) {
 +
  for (m=k+1; m<=ncol; m++) {
 +
    printf("%s%s\n", col[k], col[m]);
 +
  }
 +
  }
 +
}
 +
delete col
 +
#printf("\n");
 +
}' ~/work/ProchlorococcusSynechococcus//panoct/results/matchtable.txt > ~/work/ProchlorococcusSynechococcus/PSpairs.txt
 +
</syntaxhighlight>
 +
 +
La comparaison peut être réalisée graphiquement avec un digramme de Venn.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
library('gplots')
 +
 +
Ppairs <- read.table('work/ProchlorococcusSynechococcus/Ppairs.txt')
 +
PSpairs <- read.table('work/ProchlorococcusSynechococcus/PSpairs.txt')
 +
input <- list(P=Ppairs, PS=PSpairs)
 +
venn(input)
 +
 +
a<-venn(input, show.plot=FALSE)
 +
intersections <- attr(a,"intersections")
 +
intersections$P
 +
intersections$PS
 +
</syntaxhighlight>
 +
 +
====Comparaison des résultats de PanOCT avec PorthoMCL====
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
awk '
 +
{
 +
j=0;
 +
for (i=1; i<=NF; i++) {
 +
  j++;
 +
  col[j]=$i;
 +
}
 +
ncol=j;
 +
if ( ncol > 1 ) {
 +
  for (k=1; k<=ncol; k++) {
 +
  for (m=k+1; m<=ncol; m++) {
 +
    printf("%s%s\n", col[k], col[m]);
 +
  }
 +
  }
 +
}
 +
delete col
 +
}' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group > ~/work/Prochlorococcus/PorthoMCL/8.all.ort.pairs.txt
 +
sed -i -r 's/\|//g' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.pairs.txt
 +
</syntaxhighlight>
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
library('gplots')
 +
 +
PorthoMCL <- read.table('work/Prochlorococcus/PorthoMCL/8.all.ort.pairs.txt')
 +
panoct <- read.table('work/ProchlorococcusSynechococcus/Ppairs.txt')
 +
input <- list(PorthoMCL=PorthoMCL, panoct=panoct)
 +
venn(input)
 +
</syntaxhighlight>
 +
-->
-
=====Gènes trouvés chez toutes les souches de ''Synechococcus'' mais dans aucune de ''Prochlorococcus'':=====
 
-
A vous de jouer!
 
==Phylogénie basée sur les séquences des ARNr==
==Phylogénie basée sur les séquences des ARNr==
<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">
Line 1,655: Line 2,065:
         ARNr 16S (1541 nucléotides chez E. coli2).
         ARNr 16S (1541 nucléotides chez E. coli2).
-->
-->
 +
Suivre : [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Phylog%C3%A9nie_ARNr Phylogénie ARNr]
 +
<!--
 +
===Annotation des ARNr===
Nous utilisons le logiciel ''rnammer'' pour annoter les ARNr (lsu, ssu, tsu) dans les génomes.
Nous utilisons le logiciel ''rnammer'' pour annoter les ARNr (lsu, ssu, tsu) dans les génomes.
 +
 +
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
search_module rnammer
 +
srun --pty bash
 +
module load bioinfo/rnammer-1.2
 +
rnammer -S bac -m ssu -f ~/work/Prochlorococcus/prokka/Aaaa/Aaaa_ssu.rrna < /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaaa.fas
 +
</pre>
 +
Vous allez procéder comme précédemment, avec un script donné à ''sarray'', pour réaliser le rnammer sur tous les fichiers et les trois types d'ARNr.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for s in Prochlorococcus Synechococcus
 +
do
 +
  for t in ssu lsu tsu
 +
  do 
 +
    for i in /home/formation/public_html/M2_Phylogenomique/data/$s/DNA/*.fas
 +
    do 
 +
      genome=$(basename "$i" .fas)
 +
      output="~/work/$s/prokka/"$genome"/"$genome"_"$t".rrna"
 +
      echo "module load bioinfo/rnammer-1.2; rnammer -S bac -m $t -f $output < $i;"
 +
    done
 +
  done
 +
done > rnammer.sh
 +
cat rnammer.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 rnammer.sh
 +
squeue -l -u <user>
 +
</pre>
<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">
Line 1,661: Line 2,104:
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Prochlorococcus/prokka --model ssu
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Prochlorococcus/prokka --model ssu
</pre>
</pre>
 +
Vérifiez que les fichiers de sortie ne sont pas vide!
Vérifiez que les fichiers de sortie ne sont pas vide!
<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">
-
ls -l ~/work/*/prokka/Aaa*/Aaa*ssu*.rrna
+
ls -l ~/work/*/prokka/Aaa*/Aaa*su*.rrna
-
</pre>
+
-
Changer le motif pour obtenir les deux autres ARNr:
+
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
ls -l ~/work/*/prokka/Aaa*/Aaa*lsu*.rrna
+
-
ls -l ~/work/*/prokka/Aaa*/Aaa*tsu*.rrna
+
</pre>
</pre>
Concaténer les fichiers:  
Concaténer les fichiers:  
<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">
mkdir ~/work/ProchlorococcusSynechococcus/rRNA
mkdir ~/work/ProchlorococcusSynechococcus/rRNA
-
cat ~/work/*/prokka/Aaa*/Aaa*lsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/lsu.fas
+
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*lsu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*lsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/lsu.fas
-
cat ~/work/*/prokka/Aaa*/Aaa*ssu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/ssu.fas
+
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*ssu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*ssu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/ssu.fas
-
cat ~/work/*/prokka/Aaa*/Aaa*tsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/tsu.fas
+
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*tsu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*tsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/tsu.fas
</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">
Line 1,682: Line 2,121:
Commentez.
Commentez.
</pre>
</pre>
 +
===Alignements des  ARNr===
===Alignements des  ARNr===
Mafft comporte deux options, Q-INS-i et X-INS-i, dans lesquelles les informations de structure secondaire de l'ARN sont prises en compte. Ces méthodes sont adaptées à un alignement global de séquences d'ARNc très divergentes. Pour les ARN relativement conservés, tels que les ARNr SSU et LSU, l'avantage de ces méthodes est faible ([https://academic.oup.com/mbe/article/30/4/772/1073398 Katoh ''et al.,'' 2103]). Nous utilisons la version ''mafft'' pour des raisons de rapidités.
Mafft comporte deux options, Q-INS-i et X-INS-i, dans lesquelles les informations de structure secondaire de l'ARN sont prises en compte. Ces méthodes sont adaptées à un alignement global de séquences d'ARNc très divergentes. Pour les ARN relativement conservés, tels que les ARNr SSU et LSU, l'avantage de ces méthodes est faible ([https://academic.oup.com/mbe/article/30/4/772/1073398 Katoh ''et al.,'' 2103]). Nous utilisons la version ''mafft'' pour des raisons de rapidités.
Line 1,710: Line 2,150:
===Arbre avec seaview===
===Arbre avec seaview===
Utilisez le logiciel seaview pour calculer les arbres avec les trois types ARNr.
Utilisez le logiciel seaview pour calculer les arbres avec les trois types ARNr.
 +
Expérimentez plusieurs méthodes avec différents paramètres.
Expérimentez plusieurs méthodes avec différents paramètres.
<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">
Line 1,724: Line 2,165:
Code R pour obtenir une illustration des réarrangements présents entre deux arbres (source: [http://blog.phytools.org/2016/08/finding-association-between-two-trees.html phytools blog]).
Code R pour obtenir une illustration des réarrangements présents entre deux arbres (source: [http://blog.phytools.org/2016/08/finding-association-between-two-trees.html phytools blog]).
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
library(phytools)
+
library('phytools')
ta <-read.tree(file='all_mod-PhyML_tree.ph')
ta <-read.tree(file='all_mod-PhyML_tree.ph')
tl <-read.tree(file='lsu_mod-PhyML_tree.ph')
tl <-read.tree(file='lsu_mod-PhyML_tree.ph')
Line 1,753: Line 2,194:
[http://www.iqtree.org/doc/Substitution-Models#dna-models dna-models]
[http://www.iqtree.org/doc/Substitution-Models#dna-models dna-models]
-
====Évaluation des supports de branches avec approximation bootstrap ultra-rapide :====
+
====Évaluation des supports de branches avec approximation bootstrap ultra-rapide (UFBoot):====
<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">
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy  -pre ssuGTRFR2bb1000bnni -m GTR+F+R2 -bb 1000 -redo -bnni -nt AUTO"
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy  -pre ssuGTRFR2bb1000bnni -m GTR+F+R2 -bb 1000 -redo -bnni -nt AUTO"
</pre>
</pre>
 +
NOTE: les valeurs de support de l'UFBoot ont des interprétations différentes de celles du bootstrap non paramétrique. Suivez le lien [http://www.iqtree.org/doc/Frequently-Asked-Questions#how-do-i-interpret-ultrafast-bootstrap-ufboot-support-values UFBoot support values interpretation] pour plus d'information.
 +
====Évaluer les supports de branche avec des tests de branche simple :====
====Évaluer les supports de branche avec des tests de branche simple :====
-
IQ-TREE propose le test du rapport approximatif de vraisemblance de type SH (Guindon et al., 2010).  
+
IQ-TREE propose le test du rapport approximatif de vraisemblance de type SH ([https://academic.oup.com/sysbio/article/59/3/307/1702850 Guindon et al., 2010]).  
<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">
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy -pre ssuGTRFR2bbalrt -m GTR+F+R2 -bb 1000 -alrt 1000 -redo -nt AUTO"
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy -pre ssuGTRFR2bbalrt -m GTR+F+R2 -bb 1000 -alrt 1000 -redo -nt AUTO"
</pre>
</pre>
 +
====Évaluation des supports de branche avec un bootstrap non paramétrique standard :====
====Évaluation des supports de branche avec un bootstrap non paramétrique standard :====
<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">
Line 1,767: Line 2,211:
</pre>
</pre>
-
==Arbre espèces==
+
===Arbre SSU avec FastTree===
-
'''Support de cours :''' [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2019_supports/ supports]
+
[http://www.microbesonline.org/fasttree/ FastTree] doc.
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
module load bioinfo/FastTree-2.1.10
 +
fasttree -nt -gtr < ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy > ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified_fasttree.ph
 +
</pre>
 +
Comparez et commentez les résultats obtenus avec IQ-TREE et FastTree.
 +
-->
 +
 
 +
==Arbre espèces: préparation des fichiers==
 +
'''Support de cours 1 :''' [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2020_supports/ supports]
 +
 
 +
'''Support de cours 2 :''' [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2022_supports/ supports]
Nous allons utiliser un sous ensemble de gènes concervés chez ''Prochlorococcus'' et ''Synechococcus'' pour expérimenter les différentes méthodes de reconstruction phylogénomiques. Nous nous initierons à la comparaison d’arbres.
Nous allons utiliser un sous ensemble de gènes concervés chez ''Prochlorococcus'' et ''Synechococcus'' pour expérimenter les différentes méthodes de reconstruction phylogénomiques. Nous nous initierons à la comparaison d’arbres.
 +
Suivre : [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Arbre_esp%C3%A8ces Arbre espèces]
 +
<!--
===Extraction des séquences nucléotidiques des gènes orthologues===
===Extraction des séquences nucléotidiques des gènes orthologues===
-
Créer un fichier avec toutes les séquences nucléotidiques:
+
Créer un fichier avec toutes les séquences nucléotidiques (cds):
Si le répertoire n'existe pas déjà, le créer.
Si le répertoire n'existe pas déjà, le créer.
<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">
-
mkdir ~/work/ProchlorococcusSynechococcus
+
mkdir -p ~/work/ProchlorococcusSynechococcus/DNA
-
mkdir ~/work/ProchlorococcusSynechococcus/DNA
+
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*.ffn ~/work/Synechococcus/prokka/Aaa*/Aaa*.ffn > ~/work/ProchlorococcusSynechococcus/DNA/combined_dna.ffn
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*.ffn ~/work/Synechococcus/prokka/Aaa*/Aaa*.ffn > ~/work/ProchlorococcusSynechococcus/DNA/combined_dna.ffn
grep -c '>' ~/work/ProchlorococcusSynechococcus/DNA/combined_dna.ffn
grep -c '>' ~/work/ProchlorococcusSynechococcus/DNA/combined_dna.ffn
</pre>
</pre>
-
Extraire les groupes de gènes orthologues
+
====Extraire les groupes de gènes orthologues====
Exemple de la création s'un script et lancement du job avec sbatch
Exemple de la création s'un script et lancement du job avec sbatch
<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">
mkdir -p ~/work/ProchlorococcusSynechococcus/OG/DNA
mkdir -p ~/work/ProchlorococcusSynechococcus/OG/DNA
-
vi commande.sh
+
</pre>
-
i
+
Créer le fihier suivant commande.sh
 +
<pre>
#!/usr/bin/bash
#!/usr/bin/bash
~/work/scripts/extract_sequences_from_matchtable.pl --fasta ~/work/ProchlorococcusSynechococcus/DNA/combined_dna.ffn --matchtable ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt --outdir ~/work/ProchlorococcusSynechococcus/OG/DNA --quorum 16
~/work/scripts/extract_sequences_from_matchtable.pl --fasta ~/work/ProchlorococcusSynechococcus/DNA/combined_dna.ffn --matchtable ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt --outdir ~/work/ProchlorococcusSynechococcus/OG/DNA --quorum 16
-
:wq!
 
-
sbatch commande.sh
 
</pre>
</pre>
-
 
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">sbatch commande.sh
 +
</pre>
Vérifier que les fichiers contiennent au moins 16 séquences:
Vérifier que les fichiers contiennent au moins 16 séquences:
<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">
Line 1,807: Line 2,263:
Et quand les espèces étudiées sont très éloignées phylogénétiquement parlant ?
Et quand les espèces étudiées sont très éloignées phylogénétiquement parlant ?
</pre>
</pre>
-
 
====Transformation en alignement multiples des séquences ADN des gènes====
====Transformation en alignement multiples des séquences ADN des gènes====
Le script aa_to_dna_aln.pl prend en entrée un fichier fasta contenant des séquences d'ADN. Il traduit des séquences, réalise un alignement multiple avec muscle et retraduit en ADN cet alignement multiple ([https://bioperl.org/ BioPerl]).
Le script aa_to_dna_aln.pl prend en entrée un fichier fasta contenant des séquences d'ADN. Il traduit des séquences, réalise un alignement multiple avec muscle et retraduit en ADN cet alignement multiple ([https://bioperl.org/ BioPerl]).
Line 1,834: Line 2,289:
~/work/scripts/aa_to_dna_aln_loop.pl --directory ~/work/ProchlorococcusSynechococcus/OG/DNA --outdir ~/work/ProchlorococcusSynechococcus/OG/alignment --sample 100
~/work/scripts/aa_to_dna_aln_loop.pl --directory ~/work/ProchlorococcusSynechococcus/OG/DNA --outdir ~/work/ProchlorococcusSynechococcus/OG/alignment --sample 100
</pre>
</pre>
 +
Comptez les nombre d'alignements obtenus.
<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 5.2:
Question 5.2:
Line 1,849: Line 2,305:
Connaissez-vous d'autres logiciels réalisant un traitement comparable des alignements multiples?
Connaissez-vous d'autres logiciels réalisant un traitement comparable des alignements multiples?
</pre>
</pre>
 +
====Evaluation des alignements avec t_coffee====
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/ProchlorococcusSynechococcus/OG/alignment/ali_dna_OG_*.fas
 +
do
 +
  ip=$(basename $i .aln)   
 +
  outfile="~/work/ProchlorococcusSynechococcus/OG/alignment/"$ip".ali"
 +
  echo "module load  bioinfo/T-COFFEE_11.00.8cbe486; t_coffee -infile $i -output score_ascii, aln, score_html -outfile $outfile;"
 +
done > OG_t_coffee_TCS.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 OG_t_coffee_TCS.sh
 +
squeue -l -u $USER
 +
</pre>
 +
 +
Sélection alignements avec un SCORE=1000.
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/ProchlorococcusSynechococcus/OG/alignment/*.ali;
 +
do
 +
ip=$(basename $i .aln)   
 +
grep -H 'SCORE=1000' $i
 +
done
 +
</syntaxhighlight>
 +
====Edition des alignements avec trimal====
====Edition des alignements avec trimal====
 +
MSK
 +
Trimer les alignements avec trimal. Nous pouvons utiliser les résultats de trimal pour identifier des alignements de mauvaise qualité.
Trimer les alignements avec trimal. Nous pouvons utiliser les résultats de trimal pour identifier des alignements de mauvaise qualité.
Line 1,903: Line 2,385:
Vérifiez que vous avez extrait les informations attendues.
Vérifiez que vous avez extrait les informations attendues.
</pre>
</pre>
-
<!--
+
 
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
awk 'BEGIN { min = max = "NaN" }
awk 'BEGIN { min = max = "NaN" }
Line 1,912: Line 2,394:
END { print min, max }' < ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.tab
END { print min, max }' < ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.tab
</pre>
</pre>
-
-->
 
-
 
=====Tracé de la distribution des deux paramètres=====
=====Tracé de la distribution des deux paramètres=====
Tracé de la distribution des deux paramètres pour définir des seuils permettant de retenir les meilleurs alignements
Tracé de la distribution des deux paramètres pour définir des seuils permettant de retenir les meilleurs alignements
Line 1,928: Line 2,408:
quit()
quit()
</pre>
</pre>
 +
Vous pouvez utiliser filezilla (sous Windows) ou un scp (sous linux) pour télécharger le fichier pdf en local.
Vous pouvez utiliser filezilla (sous Windows) ou un scp (sous linux) pour télécharger le fichier pdf en local.
 +
<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 5.6:
Question 5.6:
Line 1,946: Line 2,428:
Combien d'alignements avez-vous retenu?
Combien d'alignements avez-vous retenu?
</pre>
</pre>
 +
-->
-
===Super-alignement===
+
==Super-alignement (Jeudi)==
Comme dans l’article publié en 2018 de Yan et al., nous utiliserons 31 gènes du core genome tirés au hasard.
Comme dans l’article publié en 2018 de Yan et al., nous utiliserons 31 gènes du core genome tirés au hasard.
Line 1,954: Line 2,437:
<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 5.8:  
Question 5.8:  
-
Proposez une méthode pour obtenir l’alignement protéique de ces 31 gènes concaténés.
+
Proposez une méthode pour obtenir le super-alignement protéique de ces 31 gènes concaténés.
</pre>
</pre>
<!--
<!--
Line 1,962: Line 2,445:
</pre>
</pre>
-->
-->
-
=====Concaténation de 31 alignements=====
+
====Concaténation de 31 alignements====
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
<source lang='bash'>
-
~/work/scripts/concat_aligments.pl  --alignments ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70.lst --outfile ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31 -nb_ali 31
+
mkdir ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments
-
</pre>
+
 
 +
~/work/scripts/concat_aligments.pl  --alignments ~/work/ProchlorococcusSynechococcus/OG/good_alignments/SCORE1000.lst --outfile ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments/alignments.fas  -nb_ali 31
 +
</source>
Liste des alignements retenus:
Liste des alignements retenus:
-
  ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31.lst
+
  ~/work/ProchlorococcusSynechococcus/OG/good_alignments/SCORE1000.lst
 +
Aller regarder le fichier de sortie. Est-il conforme à l'attendu ?
 +
 
 +
<!--
 +
/home/formation/work/scripts/concat_aligments.pl  --alignments /home/formation/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70.lst --outfile ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31 -nb_ali 31
 +
-->
-
=====IQ-TREE=====
+
====IQ-TREE====
genologin softwares : [http://bioinfo.genotoul.fr/index.php/resources-2/softwares/?searchll=iq-tree iq-tree]  
genologin softwares : [http://bioinfo.genotoul.fr/index.php/resources-2/softwares/?searchll=iq-tree iq-tree]  
FAQ : http://www.iqtree.org/doc/Frequently-Asked-Questions
FAQ : http://www.iqtree.org/doc/Frequently-Asked-Questions
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
 +
Documentation : http://www.iqtree.org/doc/
 +
 
 +
Documentation : [http://www.iqtree.org/doc/Substitution-Models "Substitution-Models"]
 +
<source lang='bash'>
mkdir ~/work/ProchlorococcusSynechococcus/phyloG/
mkdir ~/work/ProchlorococcusSynechococcus/phyloG/
cd ~/work/ProchlorococcusSynechococcus/phyloG/
cd ~/work/ProchlorococcusSynechococcus/phyloG/
-
cp ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31 .
+
cp ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments/alignments.fas .
-
</pre>
+
</source>
Nous allons inférer un arbre à partir du super-alignement en codons:
Nous allons inférer un arbre à partir du super-alignement en codons:
-
Lancez le, puis répondez aux questions suivantes car cela va été assez long, vous y reviendrez ensuite. Surtout faites un sbatch --cpus-per-task=4 à partir de genologin.
+
Créer le fichier condTree.sh contenant les lignes suivantes. Lancez le, puis répondez aux questions suivantes car cela va être assez long, vous y reviendrez ensuite. Surtout faites un sbatch --cpus-per-task=4 à partir de genologin pour le lancer car nous avons demandé 4 slots de calcul.
N'oubliez pas de spécifier le modèle dans la ligne de commande vous gagnerez 8 heures de calcul ;-)
N'oubliez pas de spécifier le modèle dans la ligne de commande vous gagnerez 8 heures de calcul ;-)
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
-
module load bioinfo/iqtree-1.6.7
+
Bonne pratique pour quand vous travaillerez : prenez l'habitude de vérifier la version la plus récente installée sur genologin. Pensez à vérifier si elle doit être mise à jour, si oui, demander la mise à jour. Si non, utilisez la dernière version.
-
iqtree -s ~/work/ProchlorococcusSynechococcus/phyloG/alignment_0.4_70_31 -redo -bb 1000 -alrt 1000 -st CODON -nt 4 -m KOSI07+F+R6
+
<source lang='bash'>
-
</pre>
+
#!/bin/bash
 +
module load bioinfo/iqtree-2.1.3
 +
iqtree -s alignments.fas -redo -bb 1000 -alrt 1000 -st CODON -nt 4 -m KOSI07+F
 +
</source>
<!--
<!--
[http://www.iqtree.org/doc/Substitution-Models Substitution-Models]
[http://www.iqtree.org/doc/Substitution-Models Substitution-Models]
Line 1,997: Line 2,494:
Pour vous, nous avons inféré un arbre à partir du super-alignement protéique, la ligne de commande lancée était :  
Pour vous, nous avons inféré un arbre à partir du super-alignement protéique, la ligne de commande lancée était :  
  iqtree -s all_pep.fas  -bb 1000 -alrt 1000 -nt 4
  iqtree -s all_pep.fas  -bb 1000 -alrt 1000 -nt 4
 +
 +
Best-fit model according to BIC: LG+F+R4
 +
Vous trouverez les fichiers générés ici : /home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/all_pep.fas.*. Vous pouvez les copier dans votre répertoire ~/work/ProchlorococcusSynechococcus/phyloG/.
Vous trouverez les fichiers générés ici : /home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/all_pep.fas.*. Vous pouvez les copier dans votre répertoire ~/work/ProchlorococcusSynechococcus/phyloG/.
Line 2,022: Line 2,522:
===Super-arbres===
===Super-arbres===
-
Nous allons utiliser les arbres individuels protéiques ainsi que celui reconstruits à partir de la petite sous-unité de l’rRNA.
+
Nous allons utiliser les arbres individuels protéiques ainsi que celui reconstruit à partir de la petite sous-unité de l’rRNA.
-
Sur genologin le script était celui-là :
+
Sur genologin le script ssuTree.sh était celui-là :
  #!/bin/bash
  #!/bin/bash
  iqtree -s ./ssu_renamed_simplified.aln -nt 1 -AIC -bb 1000 -alrt 1000 -redo
  iqtree -s ./ssu_renamed_simplified.aln -nt 1 -AIC -bb 1000 -alrt 1000 -redo
Et on a tapé :
Et on a tapé :
-
  module load bioinfo/iqtree-1.6.7
+
  module load bioinfo/iqtree-2.0.6
  sbatch --mem=20G ssuTree.sh
  sbatch --mem=20G ssuTree.sh
-
Voici l’arbre obtenu : /home/formation/work/ProchlorococcusSynechococcus/phyloG/ssu_renamed_simplified.aln.treefile
+
Voici l’arbre obtenu :
 +
 
 +
'''/home/formation/work/ProchlorococcusSynechococcus/phyloG/ssu_renamed_simplified.aln.treefile'''
'''A vous :'''  
'''A vous :'''  
Line 2,038: Line 2,540:
Lançons les arbres protéiques. Pour cela faire un seul script que vous appellerez ind_pep_trees.sh et qui écrira toutes les commandes en bouclant sur chaque fichier d’entrée. Le but étant d’obtenir une ligne par commande iqtree sur un fichier d’alignement protéique.   
Lançons les arbres protéiques. Pour cela faire un seul script que vous appellerez ind_pep_trees.sh et qui écrira toutes les commandes en bouclant sur chaque fichier d’entrée. Le but étant d’obtenir une ligne par commande iqtree sur un fichier d’alignement protéique.   
-
Les fichiers d’input sont /home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/*_renamed.fas.
+
Les fichiers d’input sont :
 +
 
 +
'''/home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/*_renamed.fas'''
 +
 
 +
Il vous faut les copier dans votre work car sinon iqtree écrira les fichiers d'output sur le répertoire du compte de formation et pas dans le votre...
Pour vous aider inspirez vous de la réponse à la question "How to generate an sarray command file with bash for single (fastq) file ?" sur la page http://bioinfo.genotoul.fr/index.php/faq/bioinfo_tips_faq/.
Pour vous aider inspirez vous de la réponse à la question "How to generate an sarray command file with bash for single (fastq) file ?" sur la page http://bioinfo.genotoul.fr/index.php/faq/bioinfo_tips_faq/.
-
'''Attention à bien spécifier -nt 1. Si vous souhaitez utiliser plus d’un CPU il faut le réserver avec l’option --cpus-per-task dans la commande sbatch / sarray. Pas besoin d’augmenter la RAM pour les protéines. Pensez aussi à mettre -AIC comme critère de sélection de modèle.'''
+
'''Attention à bien spécifier -nt 1. Si vous souhaitez utiliser plus d’un CPU il faut le réserver avec l’option --cpus-per-task dans la commande sbatch / sarray. Pas besoin d’augmenter la RAM pour les protéines. Pensez aussi à mettre '''-AIC''' comme critère de sélection de modèle.'''
Regarder le contenu de ind_pep_trees.sh. Est-il correct ?
Regarder le contenu de ind_pep_trees.sh. Est-il correct ?
 +
 +
Remarque, il n'est pas toujours utile de tester l'ensemble des modèles, vous pouvez faire une pré-sélection avec l'option -mset et/ou -madd. Exemple '''-mset WAG,JTT,LG'''.
Rajouter la première ligne obligatoire sur genologin avec vi par exemple :  
Rajouter la première ligne obligatoire sur genologin avec vi par exemple :  
Line 2,051: Line 2,559:
Pour le lancer en parallèle sur plusieurs nœuds du cluster :
Pour le lancer en parallèle sur plusieurs nœuds du cluster :
<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">
-
module load bioinfo/iqtree-1.6.7
+
module load bioinfo/iqtree-2.0.6
sarray ind_pep_trees.sh
sarray ind_pep_trees.sh
</pre>
</pre>
Line 2,073: Line 2,581:
</pre>
</pre>
-
Concaténer tous les arbres (les 31 arbres protéiques et l’arbre ARNr) avec la commande cat.
+
Concaténer tous les arbres (les 31 arbres protéiques et l’arbre ARNr obtenu hier) avec la commande cat.
Nommez le fichier alltrees.tree.
Nommez le fichier alltrees.tree.
-
 
-
Si à 17 heure vous n'avez pas obtenu ce fichier, contactez moi par mail à claire.hoede[@]inra.fr, je vous débloquerai.
 
'''Test de plusieurs méthodes de super-arbres :'''
'''Test de plusieurs méthodes de super-arbres :'''
Line 2,091: Line 2,597:
R
R
library(phytools)
library(phytools)
-
trees=read.tree("MonPath/alltrees.tree")
+
trees=read.tree("./alltrees.tree")
supertrees<-mrp.supertree(trees,rearrangements="SPR", start="NJ")
supertrees<-mrp.supertree(trees,rearrangements="SPR", start="NJ")
</pre>
</pre>
Vous avez obtenu les super-arbres les plus parcimonieux. Sauvez-les en utilisant la fonction write.tree de R.
Vous avez obtenu les super-arbres les plus parcimonieux. Sauvez-les en utilisant la fonction write.tree de R.
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
write.tree(supertrees, file = "MonPath/superTrees.tree")
+
write.tree(supertrees, file = "./superTrees.tree")
quit()
quit()
</pre>
</pre>
Line 2,107: Line 2,613:
Pour cela restez sur le nœud et tapez :
Pour cela restez sur le nœud et tapez :
<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">
-
module load bioinfo/iqtree-1.6.7
+
module load bioinfo/iqtree-2.0.6
iqtree -con -t alltrees.tree -nt 1
iqtree -con -t alltrees.tree -nt 1
</pre>
</pre>
Line 2,129: Line 2,635:
Commentez ce réseau par rapport aux autres arbres obtenus. Qu’en pensez-vous ?
Commentez ce réseau par rapport aux autres arbres obtenus. Qu’en pensez-vous ?
</pre>
</pre>
 +
 +
'''ASTRAL'''
 +
 +
* [https://github.com/smirarab/ASTRAL ASTRAL]
 +
* [http://bioinfo.genotoul.fr/index.php/how-to-use/?software=How_to_use_SLURM_ASTRAL How_to_use_SLURM_ASTRAL]
 +
Nous pouvons utiliser entré du logiciel le fichier des arbres gènes/protéines concaténés.
 +
 +
Un exemple de script de soumission:
 +
 +
/home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/Astral/astral.sh
===Comparaison des arbres===
===Comparaison des arbres===
-
Concaténez maintenant les deux arbres de super-matrice (celui sur les codons et celui sur les protéines) ainsi que les deux super-arbres (le consensus et le MRP).
+
Concaténez maintenant les deux arbres de super-matrice (celui sur les codons que vous avez lancé toute à l'heure et celui sur les protéines) ainsi que les deux super-arbres (le consensus et le MRP).
Si vous avez eu des difficultés à obtenir l'arbre à partir de l'alignement en codon il est disponible ici : /home/formation/work/ProchlorococcusSynechococcus/phyloG/alignment_0.4_70_31.fas*.
Si vous avez eu des difficultés à obtenir l'arbre à partir de l'alignement en codon il est disponible ici : /home/formation/work/ProchlorococcusSynechococcus/phyloG/alignment_0.4_70_31.fas*.
 +
Attention marquez quelques part l'ordre avec lequel vous les avez concaténés pour créer le fichier d'arbres à comparer afin de vous en souvenir ensuite.
Lancer ensuite le calcul de la distance de Robinson and Foulds sur ce fichier avec iqtree entre les 4 arbres 2 à 2.
Lancer ensuite le calcul de la distance de Robinson and Foulds sur ce fichier avec iqtree entre les 4 arbres 2 à 2.
-
Attention à faire le module load bioinfo/iqtree-1.6.7
+
Attention à faire le module load bioinfo/iqtree-2.0.6
Et à rajouter -nt 1 dans les options.
Et à rajouter -nt 1 dans les options.
 +
Restez sur le nœud ou faites un sbatch, mais ne lancez rien sur le nœud maître.
<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">
Line 2,146: Line 2,664:
Commentez les résultats. Quel est l’arbre le plus différent des autres ? Qu’est-ce qui pourrait l’expliquer ?
Commentez les résultats. Quel est l’arbre le plus différent des autres ? Qu’est-ce qui pourrait l’expliquer ?
</pre>
</pre>
 +
==Analyse des liens phylogénétiques des gènes du OG5 de PortMCL==
==Analyse des liens phylogénétiques des gènes du OG5 de PortMCL==
 +
<!--
Éditez un fichier avec la liste des gènes à étudier.
Éditez un fichier avec la liste des gènes à étudier.
<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">
Line 2,154: Line 2,674:
</pre>
</pre>
Réalisez l'analyse phylogénétique avec le logiciel de votre choix. Reportez sur l'arbre obtenu les différents évènements de gain/pert/HT de gènes.
Réalisez l'analyse phylogénétique avec le logiciel de votre choix. Reportez sur l'arbre obtenu les différents évènements de gain/pert/HT de gènes.
 +
-->
==Reconstruction d'états ancestraux==
==Reconstruction d'états ancestraux==
Line 2,168: Line 2,689:
Ces deux questions sont étroitement liées. En effet l'impact de la phylogénie sur la distribution des caractères dépend non seulement de la phylogénie mais aussi de la façon dont ces caractères évoluent.
Ces deux questions sont étroitement liées. En effet l'impact de la phylogénie sur la distribution des caractères dépend non seulement de la phylogénie mais aussi de la façon dont ces caractères évoluent.
 +
Suivre : [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Etats_ancestraux Etats ancestraux]
 +
<!--
===Répertoire===
===Répertoire===
Nous allons travailler dans un nouveau répertoire:  
Nous allons travailler dans un nouveau répertoire:  
Line 2,179: Line 2,702:
Choisissez l'arbre que vous allez utiliser comme référence et copiez le dans le nouveau répertoire.
Choisissez l'arbre que vous allez utiliser comme référence et copiez le dans le nouveau répertoire.
 +
Comme alternative, vous pouvez aussi copier celui-ci:
<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">
-
cp ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31_nuc_GTR+F+R4_rooted.treefile ~/work/ProchlorococcusSynechococcus/Ancestral_Characters/species_tree.ph
+
cp /home/formation//work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31_nuc_GTR+F+R4_rooted.treefile ~/work/ProchlorococcusSynechococcus/Ancestral_Characters/species_tree.ph
</pre>
</pre>
Line 2,255: Line 2,779:
Ajout des noms des colonnes et réordonnement des lignes de ''strains_gc'' en fonction des feuilles de l'arbre ''tr''.
Ajout des noms des colonnes et réordonnement des lignes de ''strains_gc'' en fonction des feuilles de l'arbre ''tr''.
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/length_GC.pdf", paper="a4r")
colnames(data) <- c('Length', 'GC')
colnames(data) <- c('Length', 'GC')
data<- data[tr$tip.label,]
data<- data[tr$tip.label,]
plot(data$Length, data$GC, pch=20, ylim=c(0,1), main="Length/GC")
plot(data$Length, data$GC, pch=20, ylim=c(0,1), main="Length/GC")
 +
dev.off()
</pre>
</pre>
 +
Number of genes
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
for file in ~/work/Prochlorococcus/prokka/Aaa*/*.txt ~/work/Synechococcus/prokka/Aaa*/*.txt
 +
do
 +
prefix=$(basename $file .txt)
 +
awk -v pf=$prefix '{
 +
  if (match($0,"gene:")) {
 +
  printf("%s\t%d\n", pf, $2);
 +
  }
 +
}' $file >> ~/work/ProchlorococcusSynechococcus/Ancestral_Characters/all_genes.txt
 +
done
 +
</pre>
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
strains_genes_file <-"~/work/ProchlorococcusSynechococcus/Ancestral_Characters/all_genes.txt"
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/length_genes.pdf", paper="a4r")
 +
genes <- read.table(file=strains_genes_file, header=F,sep="\t", row.names=1)
 +
genes<- genes[tr$tip.label,]
 +
plot(data$Length, genes, pch=20, ylim=c(0,3000), main="Length/#genes", xlab="Length", ylab="#genes")
 +
dev.off()
 +
</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">
Question 6.1:
Question 6.1:
Line 2,273: Line 2,821:
names(ln) <- rownames(data)
names(ln) <- rownames(data)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/length_GC_length.pdf", paper="a4r")
XX <- contMap(tr, gc, sig=2, outline=F, lwd=5, lims=c(0.3,0.6))
XX <- contMap(tr, gc, sig=2, outline=F, lwd=5, lims=c(0.3,0.6))
-
XX <- contMap(tr, ln, sig=2, outline=F, lwd=5, main ="Lengh")
+
XX <- contMap(tr, ln, sig=2, outline=F, lwd=5)
 +
dev.off()
</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">
Line 2,291: Line 2,841:
obj<-cbind(aceML$ace,fAnc$ace,ancML$ace)
obj<-cbind(aceML$ace,fAnc$ace,ancML$ace)
colnames(obj)<-c("ace(method=\"ML\")","fastAnc","anc.ML")
colnames(obj)<-c("ace(method=\"ML\")","fastAnc","anc.ML")
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/ML_fastAnc_anc.pdf", paper="a4r")
pairs(obj,pch=21,bg="grey",cex=1.5)
pairs(obj,pch=21,bg="grey",cex=1.5)
 +
dev.off()
</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">
Line 2,299: Line 2,851:
Tracé de l'arbre
Tracé de l'arbre
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/tree_aceML.pdf", paper="a4r")
plotTree(tr)
plotTree(tr)
nodelabels(pie=aceML$ace,cex=0.5)
nodelabels(pie=aceML$ace,cex=0.5)
 +
dev.off()
</pre>
</pre>
Line 2,312: Line 2,866:
pic.lns <- pic(lns, tr)
pic.lns <- pic(lns, tr)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/tree_contrasts.pdf", paper="a4r")
plot(tr)
plot(tr)
nodelabels(round(gc, 2), adj = c(0, -0.5), frame = "n")
nodelabels(round(gc, 2), adj = c(0, -0.5), frame = "n")
Line 2,317: Line 2,872:
tiplabels(round(gc, 2), adj = c(-1, -0.5), frame = "n")
tiplabels(round(gc, 2), adj = c(-1, -0.5), frame = "n")
tiplabels(round(lns,2), adj = c(-1, 1), frame = "n")
tiplabels(round(lns,2), adj = c(-1, 1), frame = "n")
 +
dev.off()
</pre>
</pre>
Lien entre les pairs de contrastes
Lien entre les pairs de contrastes
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">plot(pic.lns, pic.gc)
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">plot(pic.lns, pic.gc)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/tree_pairs_contrasts.pdf", paper="a4r")
plot(pic.lns, pic.gc, xlim=c(-0.15,0.15), ylim=c(-0.15,0.15))
plot(pic.lns, pic.gc, xlim=c(-0.15,0.15), ylim=c(-0.15,0.15))
abline(a = 0, b = 1, lty = 2) # x = y line
abline(a = 0, b = 1, lty = 2) # x = y line
Line 2,325: Line 2,882:
cor(pic.gc, pic.lns)
cor(pic.gc, pic.lns)
lm(pic.lns ~ pic.gc)
lm(pic.lns ~ pic.gc)
 +
dev.off()
</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">
Question 6.4:
Question 6.4:
-
Existe-t-il un lien entre la taille du génome et son contenu en GC? Commentez.
+
Existe-t-il un lien entre la taille du génome et son contenu en GC (coefficients de la régression)? Commentez.
</pre>
</pre>
Remarque, faire la régression entre les PICs en passant par l'origine est justifiée si les caractères évoluent sous un modèle de mouvement brownien et s'il existe une relation linéaire entre eux.
Remarque, faire la régression entre les PICs en passant par l'origine est justifiée si les caractères évoluent sous un modèle de mouvement brownien et s'il existe une relation linéaire entre eux.
===Autocorrélation phylogénétique===
===Autocorrélation phylogénétique===
 +
masquée
 +
Comme les espèces ne sont pas indépendantes par leurs relations phylogénétiques,
Comme les espèces ne sont pas indépendantes par leurs relations phylogénétiques,
nous pouvons utiliser cette dépendance pour quantifier l'association entre les variables observées au niveau des espèce. Gittleman et Kot[109] propose une méthode basée sur
nous pouvons utiliser cette dépendance pour quantifier l'association entre les variables observées au niveau des espèce. Gittleman et Kot[109] propose une méthode basée sur
Line 2,347: Line 2,907:
*la P-valeur de l'hypothèse nulle.
*la P-valeur de l'hypothèse nulle.
-
La fonction ''gearymoran'' d'''ade4'' calcule le coefficient de Moran et teste sa signification à l'aide d'une procédure de randomisation. L'option ''nrepet'' spécifie le nombre de réplications de la randomisation (999 par défaut).  
+
La fonction ''gearymoran'' d'''ade4'' calcule le coefficient de Moran et test sa signification à l'aide d'une procédure de randomisation. L'option ''nrepet'' spécifie le nombre de réplications de la randomisation (999 par défaut).  
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 2,357: Line 2,917:
Existe-t-il un lien entre l'évolution des caractères (taille du génome et contenu en GC) et l'évolution des souches? Commentez.
Existe-t-il un lien entre l'évolution des caractères (taille du génome et contenu en GC) et l'évolution des souches? Commentez.
</pre>
</pre>
 +
===Habitats===
===Habitats===
Line 2,371: Line 2,932:
names(dp) <- rownames(strains_info_d)
names(dp) <- rownames(strains_info_d)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/Habitats_profondeur.pdf", paper="a4r")
XX <- contMap(tr_d, dp)
XX <- contMap(tr_d, dp)
 +
dev.off()
</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">
Question 6.7:
Question 6.7:
Existe-t-il un lien entre profondeur et l'évolution des souches (voir Biller et al., 2015)? Commentez.
Existe-t-il un lien entre profondeur et l'évolution des souches (voir Biller et al., 2015)? Commentez.
 +
</pre>
</pre>
Line 2,390: Line 2,954:
Reconstruction des états du caractère aux nœuds de l'arbre:
Reconstruction des états du caractère aux nœuds de l'arbre:
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/Ecotypes.pdf", paper="a4r")
eco_er <- ace(ecotypes, tr, type="discrete", CI=T, model="ER")
eco_er <- ace(ecotypes, tr, type="discrete", CI=T, model="ER")
plot(tr, label.offset=0.2, show.node.label=F, cex=1, tip.color=tipcol)
plot(tr, label.offset=0.2, show.node.label=F, cex=1, tip.color=tipcol)
Line 2,395: Line 2,960:
nodelabels(pie=eco_er$lik.anc,cex=0.5)
nodelabels(pie=eco_er$lik.anc,cex=0.5)
add.scale.bar(length=0.1)
add.scale.bar(length=0.1)
 +
dev.off()
</pre>
</pre>
Vous pouvez utiliser toutes l'information des ecotype et refaire l'inférence des états du caractère aux nœuds de l'arbre.
Vous pouvez utiliser toutes l'information des ecotype et refaire l'inférence des états du caractère aux nœuds de l'arbre.
Line 2,400: Line 2,966:
ecotypes <- strains_info$Light
ecotypes <- strains_info$Light
</pre>
</pre>
 +
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/Ecotypes_full.pdf", paper="a4r")
 +
eco_er <- ace(ecotypes, tr, type="discrete", CI=T, model="ER")
 +
plot(tr, label.offset=0.2, show.node.label=F, cex=1, tip.color=tipcol)
 +
tiplabels(strains_info$Light, bg='white', col='black', frame='n', adj=c(-0.5, 0.5), cex=1)
 +
nodelabels(pie=eco_er$lik.anc,cex=0.5)
 +
add.scale.bar(length=0.1)
 +
dev.off()
 +
</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">
Question 6.8:
Question 6.8:
Line 2,517: Line 3,094:
Exemple
Exemple
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/plus_parcimonieuse.pdf", paper="a4r")
nb <- 3
nb <- 3
pattern <- names(motifs)[nb]
pattern <- names(motifs)[nb]
Line 2,524: Line 3,102:
tiplabels(motifs[[pattern]]$sring, bg='white', col='black', frame='n', adj=c(-0.5, 0.5), cex=1)
tiplabels(motifs[[pattern]]$sring, bg='white', col='black', frame='n', adj=c(-0.5, 0.5), cex=1)
nodelabels(paste("[", mrp[, 1], ",", mrp[, 2], "]", sep = ""))
nodelabels(paste("[", mrp[, 1], ",", mrp[, 2], "]", sep = ""))
 +
dev.off()
</pre>
</pre>
=====Tracé MPR pour chaque motif=====
=====Tracé MPR pour chaque motif=====
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/plus_parcimonieuse_all.pdf", paper="a4r")
nb <- nb_start
nb <- nb_start
 +
nb_end < 10
while (nb < nb_end ) {
while (nb < nb_end ) {
Line 2,539: Line 3,120:
       nodelabels(paste("[", mrp[, 1], ",", mrp[, 2], "]", sep = ""), bg="white", col="purple")
       nodelabels(paste("[", mrp[, 1], ",", mrp[, 2], "]", sep = ""), bg="white", col="purple")
-
       cat ("Press [enter] to continue")
+
       #cat ("Press [enter] to continue")
-
       line <- readline()
+
       #line <- readline()
   }
   }
   nb <- nb+1
   nb <- nb+1
}
}
 +
dev.off()
 +
nb_end <- length(motifs)
</pre>
</pre>
Line 2,557: Line 3,140:
</pre>
</pre>
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/marquage_stochastique.pdf", paper="a4r")
nb <- 3
nb <- 3
pattern <- names(motifs)[nb]
pattern <- names(motifs)[nb]
Line 2,563: Line 3,147:
cols<-setNames(c("blue","red"),c(0,1))
cols<-setNames(c("blue","red"),c(0,1))
plotSimmap(ms_er_trees[[1]], cols)
plotSimmap(ms_er_trees[[1]], cols)
 +
dev.off()
</pre>
</pre>
Calculons maintenant les fréquences d'état à partir des marquages stochastiques pour chaque noeud interne. Ce sont nos probabilités postérieures pour les noeuds.
Calculons maintenant les fréquences d'état à partir des marquages stochastiques pour chaque noeud interne. Ce sont nos probabilités postérieures pour les noeuds.
Line 2,577: Line 3,162:
Apliquer la fonction à tous les arbres et tracer l'arbre et les probabilités postérieures aux nœuds.
Apliquer la fonction à tous les arbres et tracer l'arbre et les probabilités postérieures aux nœuds.
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/probabilites_posterieures.pdf", paper="a4r")
AA <- sapply(ms_er_trees, map_states)
AA <- sapply(ms_er_trees, map_states)
piesA <- t(apply(AA,1,function(x,levels,Nsim) summary(factor(x,levels))/Nsim,levels=c(0,1), Nsim=100))
piesA <- t(apply(AA,1,function(x,levels,Nsim) summary(factor(x,levels))/Nsim,levels=c(0,1), Nsim=100))
Line 2,583: Line 3,169:
tiplabels(motifs[[pattern]]$sring, bg='white', col='black', frame='n', adj=c(-0.5, 0.5), cex=1)
tiplabels(motifs[[pattern]]$sring, bg='white', col='black', frame='n', adj=c(-0.5, 0.5), cex=1)
nodelabels(pie=piesA, cex=0.5, piecol=cols)
nodelabels(pie=piesA, cex=0.5, piecol=cols)
 +
dev.off()
</pre>
</pre>
Line 2,603: Line 3,190:
motif 3 ("0000001100101111")
motif 3 ("0000001100101111")
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/ML3.pdf", paper="a4r")
nb <- 3
nb <- 3
pattern <- names(motifs)[nb]
pattern <- names(motifs)[nb]
Line 2,614: Line 3,202:
nodelabels(pie=sym$lik.anc, cex=0.3, adj=c(0.53, 0.5))
nodelabels(pie=sym$lik.anc, cex=0.3, adj=c(0.53, 0.5))
nodelabels(pie=ard$lik.anc, cex=0.3, adj=c(0.56, 0.5))
nodelabels(pie=ard$lik.anc, cex=0.3, adj=c(0.56, 0.5))
 +
dev.off()
</pre>
</pre>
La sortie du modèle ER correspond à celle du modèle SYM. Pour un caractère binaire, ces modèles sont identiques, bien qu'ils soient distincts pour les caractères à trois états ou plus. Pour un caractère à trois états, ER est un modèle à un paramètre, SYM un modèle à trois paramètres et ARD un modèle à six paramètres.  
La sortie du modèle ER correspond à celle du modèle SYM. Pour un caractère binaire, ces modèles sont identiques, bien qu'ils soient distincts pour les caractères à trois états ou plus. Pour un caractère à trois états, ER est un modèle à un paramètre, SYM un modèle à trois paramètres et ARD un modèle à six paramètres.  
Line 2,837: Line 3,426:
La mise en œuvre de ce logiciel est complexe et ne sera pas traitée dans le cadre de cd TP.
La mise en œuvre de ce logiciel est complexe et ne sera pas traitée dans le cadre de cd TP.
 +
-->
==Liens utiles==
==Liens utiles==

Current revision as of 15:19, 11 November 2023

Contents

Matériel pédagogique

Support de cours : Quest for Orthologs

Support de cours : Alignements de génomes

Support de cours' : Phylogénomique

Support de cours : Reconstruction des états ancestraux des caractères

anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia iris jacinthe

Références

Logiciels à installer sur vos postes de travail

  • seaview : Multiplatform GUI for molecular phylogeny
  • mauve : Multiple genome alignment
  • Artemis : Genome browser and annotation tool
  • Artemis Comparison Tool : Java application for displaying pairwise comparisons between two or more DNA sequences
  • splitstree The aim of SplitsTree4 is to provide a framework for evolutionary analysis using both trees and networks.
  • FigTree is designed as a graphical viewer of phylogenetic trees and as a program for producing publication-ready figures.

Artemis (art et act) et figtree peuvent être installés avec conda/mamba.

Mauve, mauveAligner et progressiveMauve peuvent être installés avec conda mais une erreur peut survenir avec Mauve. En effet, vous pouvez avoir une version trop récente de java (https://edwards.sdsu.edu/research/running-mauve-with-java-10/). Pour y remédier, chercher une "vieille" version de java et remplacer "java" par le chemin de cette version dans le fichier Mauve (ligne JAVA_CMD=java).

Atelier système

Ressources informatiques

Nous allons utiliser les ressources de GenoToul.

Vous avez dans les FAQ, les réponses à toutes vos questions concernant l'utilisation de la ressource.

Sortcuts

Vous allez vous connecter avec un compte fleur:

ssh -Y <login>@genologin.toulouse.inra.fr 

Vous pouvez ouvrir deux connections afin de pouvoir lancer qlogin de façon indépendante.

Échange de fichiers:

scp file <login>@genologin.toulouse.inra.fr:~/work

Logiciels disponibles

ou

ou plus directement

ls /usr/local/bioinfo/src/

La documentation est disponible sur le site WEB et dans le répertoire correspondant au logiciel (fichiers How_to_use and/or Readme).

Soumission de jobs avec SLURM

Seminar_cluster_SLURM

Lancer le job avec sbatch et un script du type "myscript.sh" (les chemins sont à changer).

to submit the job, use the sbatch command line as following
  • sbatch (qsub): submit a batch job to slurm (default workq partition()
sbatch myscript.sh
  • sarray (qarray): submit a batch job-array to slurm
  • scancel (qdel): kill the specified job
INTERACTIVE
  • srun [--pty bash] (qrsh): submit an interactive session with a compute node (default workq partition).
  • runVisuSession.sh (qlogin): submit a TurboVNC / VirtualGL session with the graphical node (interq partition). Just for graphics jobs.
Pour controler les jobs
  • sinfo (qhost): display nodes, partitions, reservations
  • squeue (qstat): display jobs and state
  • scontrol show : get informations on jobs, nodes, partitions
  • sstat (qstat -j): show status of running jobs
  • sview (qmon): graphical user interface
  • sacct (qacct) : display accounting data
  • scancel (qdel) : kill the specified job

Utiliser R sur le cluster

Tutoriel expliquant comment utiliser R (et compiler des fichiers Rmd) sur le cluster (slurm) de la PF Bioinformatique de Toulouse (Gaëlle Lefort et Nathalie Vialaneix):

tutoR_cluster.pdf

Utiliser awk_et sed

awk_sed_Genotoul2019

Scripts

Aide pour les scripts en bash :https://www.tutorialkart.com/bash-shell-scripting

Des scripts perl ont été écrits pour faciliter certaines étapes du TP. Ils sont disponibles dans le répertoire:

/home/formation/public_html/M2_Phylogenomique/scripts

Vous pouvez les copier dans votre espace de travail et les modifier à votre convenance.

mkdir ~/work/scripts
cp /home/formation/public_html/M2_Phylogenomique/scripts/* ~/work/scripts

Copie des fichiers

Rsync (Remote Sync) est une commande couramment utilisée pour copier et synchroniser des fichiers et des répertoires à distance ainsi que localement dans les systèmes Linux/Unix. Avec rsync, vous pouvez copier et synchroniser vos données à distance et localement à travers des répertoires, des disques et des réseaux, effectuer des sauvegardes de données et des mises en miroir entre deux machines Linux.

Nous allons utiliser cette commande pour copier les fichiers de <user>@genologin.toulouse.inra.fr à votre machine.

Exemple:

  • Créez un répertoire sur votre machine correspondant à l'atelier.
  • Placez vous dans ce répertoire.
rsync --archive --itemize-changes --stats -h -e ssh <user>@genologin.toulouse.inra.fr:/home/<user>/work/Prochlorococcus work

Pour information:

ls -l /home/$USER
save -> /save/$USER
work -> /work/$USER

Disponibilité des génomes

Caractéristiques des souches étudiées

Table modifiée à partir de la Table 1 de (Kettler et al., 2007).

Cyanobacterium	Isolate	        Light   Length(bp)      GC%     Number  Isol.   Region          Date           Accession   Code
                                Adap.                           Genes   Depth

Prochlorococcus	MED4	 	HL(I)	1,657,990	30.8	1,929	5m	Med. Sea	Jan. 1989	BX548174   Aaab
	        MIT9515	 	HL(I)	1,704,176	30.8	1,908	15m	Eq. Pacific	Jun. 1995	CP000552   Aaag
	        MIT9301	 	HL(II)	1,642,773	31.4	1,907	90m	Sargasso Sea	Jul. 1993	CP000576   Aaaj
	        AS9601	 	HL(II)	1,669,886	31.3	1,926	50m	Arabian Sea	Nov. 1995	CP000551   Aaaf
	        MIT9215	 	HL(II)	1,738,790	31.1	1,989	5m	Eq. Pacific	Oct. 1992	CP000825   Aaak
	        MIT9312	 	HL(II)	1,709,204	31.2	1,962	135m	Gulf Stream	Jul. 1993	CP000111   Aaae
	        NATL1A	 	LL(I)	1,864,731	35.1	2,201	30m	N. Atlantic	Apr. 1990	CP000553   Aaai
	        NATL2A	 	LL(I)	1,842,899	35	2,158	10m	N. Atlantic	Apr. 1990	CP000095   Aaad
	        CCMP1375/SS120	LL(II)	1,751,080	36.4	1,925	120m	Sargasso Sea	May 1988	AE017126   Aaaa
	        MIT9211	 	LL(III)1,688,963	38	1,855	83m	Eq. Pacific	Apr. 1992	CP000878   Aaah
	        MIT9303	 	LL(IV)	2,682,807	50.1	3,022	100m	Sargasso Sea	Jul. 1992	CP000554   Aaal
	        MIT9313	 	LL(IV)	2,410,873	50.7	2,843	135m	Gulf Stream	Jul. 1992	BX548175   Aaac
Synechococcus	CC9311	 	Syn.	2,606,748	52.5	3017	95m	Calif.		Current 1993    CP000435   Aaao
	        CC9902	 	Syn.	2,234,828	54.2	2504	5m	Calif. 		Current 1999	CP000097   Aaam
	        WH8102	 	Syn.	2,434,428	59.4	2787		Sargasso Sea	Mar. 1981	BX548020   Aaap
	        CC9605	 	Syn.	2,510,659	59.2	2991	51m	Calif.		Current 1996    CP000110   Aaan

Prochlorococcus

NCBI

Génomes de Prochlorococcus disponibles au NCBI browse

Accessions des génomes utilisés dans Kettler et al., PLoS Genet. 2007:

  • accession "BX548174,CP000552,CP000576,CP000551,CP000825,CP000111,CP000553,CP000095,AE017126,CP000878,CP000554,BX548175"

Les fichiers GenBank peuvent être obtenus avec la commande wget en utilisant les chemins enregistrés dans le fichier: accession_file.lst

Pour des raisons de compatibilité avec les programmes, les génomes sont renommés en utilisant un code à quatre lettres. accession_labels_file.lst

GenBank

Les fichiers GenBank renommés sont disponibles dans le répertoire: GenBank

DNA

Les séquences ADN ont été extraites des fichiers GenBank : DNA

Annotation

Prokka

Les réplicons des génomes sont annotés avec le logiciel prokka.

Suivre Prokka

Nous allons copier les fichiers peptides dans un répertoire de travail:

mkdir -p ~/work/Prochlorococcus/peptide
cp ~/work/Prochlorococcus/prokka/Aaa*/*.faa ~/work/Prochlorococcus/peptide/.
 
ls -l ~/work/Prochlorococcus/peptide

Conservation de séquence entre souches de Prochlorococcus

Suivre Conservation entre souches

Groupes de gènes orthologues

Question 1.4:
Quelle méthode ont utilisé Kettler et al., 2007 pour identifier les groupes de gènes orthologues?

eggNOG

See software documentation for more informations.

Location: /usr/local/bioinfo/src/eggNOG-mapper

ll /usr/local/bioinfo/src/eggNOG-mapper/example_on_cluster/test_eggnog-mapper-2.0.1.sh

emapper.py -i ~/work/Prochlorococcus/peptide/Aaaa.faa --cpu 4 --output Aaaa_NOG -m diamond

cp /usr/local/bioinfo/src/eggNOG-mapper/example_on_cluster/test_eggnog-mapper-2.0.1.sh eggnog-mapper-2.0.1.sh

module load devel/python/Python-2.7.18; module load bioinfo/eggNOG-mapper/2.0.1; emapper.py -i p53.fa --cpu 4 --output p53_maNOG -m diamond ~

-i FILE                 input FASTA file containing query sequences (proteins by default)
--data_dir DIR          Specify a path to the eggNOG-mapper databases. By default, data/ folder or the one specified by the EGGNOG_DATA_DIR environment variable. 
-m MODE                 Search options, Default is -m diamond
--target_orthologs      one2one|many2one|one2many|many2many|all defines what type of orthologs (in relation to the seed ortholog) should be used for functional transfer. Default: all 
--report_orthologs      as a first step in functional annotation, eggNOG-mapper identifies the orthologs of each query, using seed orthologs from the search stage as an anchoring or starting point. A list of these orthologs is not reported by default. 
--output,-o FILE_PREFIX base name for output files
--output_dir DIR        where output files should be written. default is current working directory.
--decorate_gff no|yes|FILE  Option to create/decorate a GFF file with emapper hits and/or annotations. Default is no.

Output files

Search hits (prefix.emapper.hits)A file with the results from the search phase, from HMMER, Diamond or MMseqs2.
Seed orthologs (prefix.emapper.seed_orthologs) A file with the results from parsing the hits. Each row links a query with a seed ortholog. 
Annotations (prefix.emapper.annotations) A file with the results from the annotation phase. 
if [[ -e eggnog-mapper.sh]]; then
  rm eggnog-mapper.sh
fi
 
for file in ~/work/Zhang/PEP/Pr*.faa; 
do
  prefix=$(basename $file .faa)
  output="${prefix}.emapper.annotations"
  if [[ -f "$output" ]]; then
    echo "skip $output" 
  else
    echo "module load devel/python/Python-2.7.18; module load bioinfo/eggNOG-mapper/2.0.1; emapper.py -i $file --cpu 4 --output $prefix -m diamond" 1>> eggnog-mapper.sh
  fi
done
 
cat eggnog-mapper.sh
sarray -J eggNOG -o %j.out -e %j.err -t 04:00:00 --cpus-per-task=4 eggnog-mapper.sh
squeue -l -u $USER

les résultats sont dans : /home/formation/work/Prochlorococcus/eggNOG

OrthoFinder

OrthoFinder est une plateforme rapide, précise et complète pour la génomique comparative. Il trouve des orthogroupes et des orthologues, déduit des arbres de gènes enracinés pour tous les orthogroupes et identifie tous les événements de duplication de gènes dans ces arbres.

Il déduit également un arbre des espèces enraciné pour l'espèce analysée et fait correspondre les événements de duplication de gènes des arbres génétiques aux branches de l'arbre des espèces.

OrthoFinder fournit également des statistiques complètes pour les analyses génomiques comparatives.

Suivre OrthoFinder]!

Préliminaires

Question 1.5:
Selon vous qu'est-ce qui guide le choix du type de séquences à utiliser dans les comparaisons (peptides ou nucléotidiques)?

Blast All-vs-All

PorthoMCL

MSK

Panaroo

panaroo

PanOCT

Pan-genome Ortholog Clustering Tool, est un programme écrit en PERL pour l'analyse pan-génomique d'espèces ou de souches procaryotes étroitement apparentées. Contrairement aux programmes traditionnels de détection d'orthologues basés sur des graphes, il utilise la micro-synténie ou le voisinage de gènes conservés (CGN) en plus de l'homologie pour placer avec précision les protéines dans des groupes orthologues.

panoct project

Suivre PanOCT

Analyses pan-génomiques

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

Suivre: Analyses pan-génomiques

Alignement et comparaison de génomes complets

Suivre : Alignement Genomes

Analyses phylogénomiques

Comme dans Kettler et al., 2007, nous allons utiliser quatre génomes de Synechococcus comme groupe externe dans nos analyses.

Suivre Analyses phylogénomiques

Phylogénie basée sur les séquences des ARNr

Question 4.1:
Quel-est l’intérêt de réaliser des arbres avec les séquences de l'ARNr? Quels-sont les ARNr présents dans les génomes de procaryotes? A quelle(s) sous-unité(s) ribosomique sont-ils associés?

Suivre : Phylogénie ARNr

Arbre espèces: préparation des fichiers

Support de cours 1 : supports

Support de cours 2 : supports

Nous allons utiliser un sous ensemble de gènes concervés chez Prochlorococcus et Synechococcus pour expérimenter les différentes méthodes de reconstruction phylogénomiques. Nous nous initierons à la comparaison d’arbres.

Suivre : Arbre espèces

Super-alignement (Jeudi)

Comme dans l’article publié en 2018 de Yan et al., nous utiliserons 31 gènes du core genome tirés au hasard. Nous partirons des arbres effectués sur le super-alignement protéique de ces gènes et sur celui retranscrits en nucléotides.

Question 5.8: 
Proposez une méthode pour obtenir le super-alignement protéique de ces 31 gènes concaténés.

Concaténation de 31 alignements

mkdir ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments
 
~/work/scripts/concat_aligments.pl  --alignments ~/work/ProchlorococcusSynechococcus/OG/good_alignments/SCORE1000.lst --outfile ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments/alignments.fas  -nb_ali 31

Liste des alignements retenus:

~/work/ProchlorococcusSynechococcus/OG/good_alignments/SCORE1000.lst

Aller regarder le fichier de sortie. Est-il conforme à l'attendu ?


IQ-TREE

genologin softwares : iq-tree

FAQ : http://www.iqtree.org/doc/Frequently-Asked-Questions

Documentation : http://www.iqtree.org/doc/

Documentation : "Substitution-Models"

mkdir ~/work/ProchlorococcusSynechococcus/phyloG/
cd ~/work/ProchlorococcusSynechococcus/phyloG/
cp ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments/alignments.fas .

Nous allons inférer un arbre à partir du super-alignement en codons: Créer le fichier condTree.sh contenant les lignes suivantes. Lancez le, puis répondez aux questions suivantes car cela va être assez long, vous y reviendrez ensuite. Surtout faites un sbatch --cpus-per-task=4 à partir de genologin pour le lancer car nous avons demandé 4 slots de calcul. N'oubliez pas de spécifier le modèle dans la ligne de commande vous gagnerez 8 heures de calcul ;-)

Bonne pratique pour quand vous travaillerez : prenez l'habitude de vérifier la version la plus récente installée sur genologin. Pensez à vérifier si elle doit être mise à jour, si oui, demander la mise à jour. Si non, utilisez la dernière version.

#!/bin/bash
module load bioinfo/iqtree-2.1.3
iqtree -s alignments.fas -redo -bb 1000 -alrt 1000 -st CODON -nt 4 -m KOSI07+F

Pour vous, nous avons inféré un arbre à partir du super-alignement protéique, la ligne de commande lancée était :

iqtree -s all_pep.fas  -bb 1000 -alrt 1000 -nt 4
Best-fit model according to BIC: LG+F+R4


Vous trouverez les fichiers générés ici : /home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/all_pep.fas.*. Vous pouvez les copier dans votre répertoire ~/work/ProchlorococcusSynechococcus/phyloG/.

Question 5.10: 
Pouvez-vous m’expliquer ce qu’on a demandé à IQTREE dans les deux cas ? Quels ont été les modèles choisis ? Pouvez-vous les expliquer ?
Ceci peut vous aider : 
http://www.iqtree.org/doc/Substitution-Models
Question 5.11:
Comparez les deux arbres (*.treefile) visuellement avec figtree par exemple (ou avec des outils en ligne tels que : phylo.io, PhyD3, iTOL...).
Pour afficher les valeurs de bootstraps, il est nécessaire que figtree les charge comme « labels », ainsi dans la rubrique « node labels » il vous faudra sélectionner « labels » dans le menu déroulant « display ».
Mettez l'arbre généré dans le rapport de TP.
Quelles sont les principales différences ? Que pensez-vous de ces arbres ? Leurs supports ? Leurs congruences ? Les grands clades connus sont-ils retrouvés ? Comparer avec les arbres des articles ou revues suivant(e)s :
La revue de Biller et al : Prochlorococcus  : the structure and function of collective diversity
L’article de Kettler et al. : Patterns and implications of gene gain and loss in the evolution of Prochlorococcus et celui de Yan et al. : Genome rearrangement shapes Prochlorococcus ecological adaptation.
N’oubliez pas de commenter les valeurs de support des nœuds. Pensez à enraciner les arbres en utilisant l’outgroup Synechococcus.

NB: Les noms des espèces et les informations des clades correspondants sont disponibles dans le fichier /home/formation/work/ProchlorococcusSynechococcus/Ancestral_Characters/Strains_info.txt ou dans le tableau ici.

Super-arbres

Nous allons utiliser les arbres individuels protéiques ainsi que celui reconstruit à partir de la petite sous-unité de l’rRNA. Sur genologin le script ssuTree.sh était celui-là :

#!/bin/bash
iqtree -s ./ssu_renamed_simplified.aln -nt 1 -AIC -bb 1000 -alrt 1000 -redo

Et on a tapé :

module load bioinfo/iqtree-2.0.6
sbatch --mem=20G ssuTree.sh

Voici l’arbre obtenu :

/home/formation/work/ProchlorococcusSynechococcus/phyloG/ssu_renamed_simplified.aln.treefile

A vous :

Loguez-vous sur genologin.

Lançons les arbres protéiques. Pour cela faire un seul script que vous appellerez ind_pep_trees.sh et qui écrira toutes les commandes en bouclant sur chaque fichier d’entrée. Le but étant d’obtenir une ligne par commande iqtree sur un fichier d’alignement protéique. Les fichiers d’input sont :

/home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/*_renamed.fas

Il vous faut les copier dans votre work car sinon iqtree écrira les fichiers d'output sur le répertoire du compte de formation et pas dans le votre...

Pour vous aider inspirez vous de la réponse à la question "How to generate an sarray command file with bash for single (fastq) file ?" sur la page http://bioinfo.genotoul.fr/index.php/faq/bioinfo_tips_faq/.

Attention à bien spécifier -nt 1. Si vous souhaitez utiliser plus d’un CPU il faut le réserver avec l’option --cpus-per-task dans la commande sbatch / sarray. Pas besoin d’augmenter la RAM pour les protéines. Pensez aussi à mettre -AIC comme critère de sélection de modèle.

Regarder le contenu de ind_pep_trees.sh. Est-il correct ?

Remarque, il n'est pas toujours utile de tester l'ensemble des modèles, vous pouvez faire une pré-sélection avec l'option -mset et/ou -madd. Exemple -mset WAG,JTT,LG.

Rajouter la première ligne obligatoire sur genologin avec vi par exemple :

#!/bin/bash 

Pour le lancer en parallèle sur plusieurs nœuds du cluster :

module load bioinfo/iqtree-2.0.6
sarray ind_pep_trees.sh

Pour monitorer votre job :

squeue -l -u <login>

Pour le killer si besoin :

scancel jobid

Quand tous vos jobs sont terminés, vérifiez que les fichiers de sorties ne soient pas vides et que ça s’est bien passé en faisant par exemple :

tail *_renamed.fas.log

Vous pouvez aussi regarder les modèles sélectionnés :

grep 'Best-fit model:' *_renamed.fas.log

Concaténer tous les arbres (les 31 arbres protéiques et l’arbre ARNr obtenu hier) avec la commande cat. Nommez le fichier alltrees.tree.

Test de plusieurs méthodes de super-arbres :

Commençons par la méthode la plus répandue : le MRP.

Pour aller sur un nœud :

srun --pty bash

puis taper :

module load system/R-3.5.1
R
library(phytools)
trees=read.tree("./alltrees.tree")
supertrees<-mrp.supertree(trees,rearrangements="SPR", start="NJ")

Vous avez obtenu les super-arbres les plus parcimonieux. Sauvez-les en utilisant la fonction write.tree de R.

write.tree(supertrees, file = "./superTrees.tree")
quit()

Nous sommes sortis de R.

Dans notre cas, nous avons un seul arbre le plus parcimonieux, mais nous aurions pu en obtenir plusieurs.

Utiliser iqtree pour obtenir le consensus des 32 arbres avec la règle majoritaire étendue.

Pour cela restez sur le nœud et tapez :

module load bioinfo/iqtree-2.0.6
iqtree -con -t alltrees.tree -nt 1
Question 5.12:
D’après vous que signifie les valeurs aux nœuds sur cet arbre consensus ?

Lancez aussi l’arbre consensus en réseau :

iqtree -net -t alltrees.tree -nt 1

Et visualisez-le avec splitstree en local.

https://software-ab.informatik.uni-tuebingen.de/download/splitstree5/welcome.html

Question 5.13:
Commentez ce réseau par rapport aux autres arbres obtenus. Qu’en pensez-vous ?

ASTRAL

Nous pouvons utiliser entré du logiciel le fichier des arbres gènes/protéines concaténés.

Un exemple de script de soumission:

/home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/Astral/astral.sh

Comparaison des arbres

Concaténez maintenant les deux arbres de super-matrice (celui sur les codons que vous avez lancé toute à l'heure et celui sur les protéines) ainsi que les deux super-arbres (le consensus et le MRP).

Si vous avez eu des difficultés à obtenir l'arbre à partir de l'alignement en codon il est disponible ici : /home/formation/work/ProchlorococcusSynechococcus/phyloG/alignment_0.4_70_31.fas*.

Attention marquez quelques part l'ordre avec lequel vous les avez concaténés pour créer le fichier d'arbres à comparer afin de vous en souvenir ensuite. Lancer ensuite le calcul de la distance de Robinson and Foulds sur ce fichier avec iqtree entre les 4 arbres 2 à 2.

Attention à faire le module load bioinfo/iqtree-2.0.6

Et à rajouter -nt 1 dans les options. Restez sur le nœud ou faites un sbatch, mais ne lancez rien sur le nœud maître.

Question 5.14: 
Commentez les résultats. Quel est l’arbre le plus différent des autres ? Qu’est-ce qui pourrait l’expliquer ?

Analyse des liens phylogénétiques des gènes du OG5 de PortMCL

Reconstruction d'états ancestraux

Introduction

Si certaines combinaisons de caractères sont systématiquement associées à plusieurs espèces, cela pourrait suggérer que des forces évolutives, comme la sélection, ont façonné ces associations. Toutefois, les associations non aléatoires de certains traits chez certaines espèces peuvent être dues à l'héritage commun de leurs ancêtres et, par conséquent, les changements concomitants dans le temps ne peuvent être déduits.

Si les caractères ont évolué de façon aléatoire sans association, les espèces plus étroitement apparentées sont plus susceptibles d'être semblables que les autres, créant ainsi des relations apparentes entre les caractères.

Il est donc nécessaire de considérer les relations phylogénétiques entre les espèces lors de l'analyse de leurs caractères.

Deux questions peuvent être abordées lors de l'intégration de la phylogénie dans les données comparatives :

  • prise en compte de la non-indépendance inter-espèces dans l'étude des caractères et de leurs relations,
  • estimation des paramètres d'évolution des caractères.

Ces deux questions sont étroitement liées. En effet l'impact de la phylogénie sur la distribution des caractères dépend non seulement de la phylogénie mais aussi de la façon dont ces caractères évoluent.

Suivre : Etats ancestraux

Liens utiles

Mesquite

Mesquite: A modular system for evolutionary analysis