silico.biotoul.fr
 

Atelier Phylogénomique

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Logiciels à installer sur vos postes de travail)
m (eggNOG)
 
(785 intermediate revisions not shown)
Line 1: Line 1:
==Matériel pédagogique==
==Matériel pédagogique==
-
<!--
+
'''Support de cours''' : Quest for Orthologs
-
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Quest4orthologs.pdf Présentation] 'Quest for Orthologs'.
+
*[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]
-
 
+
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus_2020.pdf Prochlorococcus]
 +
'''Support de cours''' : Alignements de génomes
 +
*[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
 +
*[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]
-
-->
 
-
<!--
 
-
==''Wolbachia''==
 
-
Les ''Wolbachia'' infectent les arthropodes (environ 60% des espèces) et certaines espèces de nématodes. Cette large répartition en fait donc un des symbiotes les plus répandus du monde animal. Ces bactéries au mode de vie intracellulaire sont localisées au sein du cytoplasme des cellules de leurs hôtes. Elles se retrouvent en proportion importante dans l'appareil reproducteur (principalement les cellules germinales) et l’épithélium du système génital des arthropodes et nématodes.
 
-
La transmission des Wolbachia est essentiellement verticale : elles sont transmises de mère à descendants via le cytoplasme des ovocytes. Le spermatozoïde ne transmettant que son noyau lors de la fécondation, les mâles sont incapables de transmettre les bactéries à leur descendance. C'est pour cette raison que les Wolbachia ont pour particularité de manipuler la reproduction de leurs hôtes : la fitness des femelles infectées est augmentée par différents effets, ce qui maximise la probabilité de transmission de Wolbachia.
+
*[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]
-
Wolbachia pourrait également, dans certaines conditions, se transmettre de manière horizontale, d’une espèce à une autre. Par exemple, des drosophiles infectées par Wolbachia pourraient transmettre le parasite aux larves de la guêpe parasitoïde Nasonia vitripennis. Celle-ci dépose ses œufs dans une pupe de mouche, et la larve se contaminerait à l’intérieur de la mouche. Chez les crustacés isopodes terrestres, des études ont montré que les transferts horizontaux de Wolbachia peuvent s'effectuer par contacts infectieux. Via une blessure, l'hémolymphe d'un individu infecté peut être vecteur de Wolbachia et entraîner la contamination d'un individu auparavant sain3.
+
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 21: Line 27:
*[https://www.ncbi.nlm.nih.gov/pubmed/18159947 Kettler et al., PLoS Genet. 2007 Dec;3(12):e231] Patterns and implications of gene gain and loss in the evolution of ''Prochlorococcus''.
*[https://www.ncbi.nlm.nih.gov/pubmed/18159947 Kettler et al., PLoS Genet. 2007 Dec;3(12):e231] Patterns and implications of gene gain and loss in the evolution of ''Prochlorococcus''.
 +
*[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://reader.elsevier.com/reader/sd/C251F9CB859E86C382E1B41B51421D6C186BBF3C7319564E18163E2D250AB198EF21DD8741687AC0603D5CF9DFB70823 Chisholm Current Biology 27, R431–R510] ''Prochlorococcus''.
+
*[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''.
 +
 
 +
*[http://application.sb-roscoff.fr/cyanorak/welcome.html Cyanorak Information system]
-
<!--
 
-
*[https://www.ncbi.nlm.nih.gov/pubmed/23960254 Comandatore et al., 2013] Phylogenomics and analysis of shared genes suggest a single transition to mutualism in Wolbachia of nematodes.
 
-
*[https://www.ncbi.nlm.nih.gov/pubmed/25283608 Gerth et al., 2014] Phylogenomic analyses uncover origin and spread of the Wolbachia pandemic.
 
-
*[https://www.ncbi.nlm.nih.gov/pubmed/26631376 Comandatore et al., 2015] Supergroup C Wolbachia, mutualist symbionts of filarial nematodes, have a distinct genome structure.
 
-
-->
 
==Logiciels à installer sur vos postes de travail==
==Logiciels à installer sur vos postes de travail==
*[http://doua.prabi.fr/software/seaview seaview] : Multiplatform GUI for molecular phylogeny
*[http://doua.prabi.fr/software/seaview seaview] : Multiplatform GUI for molecular phylogeny
Line 35: 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
+
*[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.
-
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 43: Line 55:
Vous avez dans les [http://bioinfo.genotoul.fr/index.php/faq/ FAQ], les réponses à toutes vos questions concernant l'utilisation de la ressource.  
Vous avez dans les [http://bioinfo.genotoul.fr/index.php/faq/ FAQ], les réponses à toutes vos questions concernant l'utilisation de la ressource.  
-
 
+
===Sortcuts===
-
Ask for Install
+
Vous allez vous connecter avec un compte fleur:
 +
<!--
<pre>
<pre>
-
trimal
 
-
Gblocks
 
-
PhyML
 
-
IQ-tree
 
</pre>
</pre>
-
===Sortcuts===
+
2019 : anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia iris jacinthe jonquille
-
Vous allez vous connecter avec un compte fleur:
+
 
 +
<pre>
 +
</pre>
 +
-->
  ssh -Y <login>@genologin.toulouse.inra.fr  
  ssh -Y <login>@genologin.toulouse.inra.fr  
Line 63: Line 75:
Logiciels disponibles
Logiciels disponibles
*[http://bioinfo.genotoul.fr/index.php/faq/software_faq/ software_faq]
*[http://bioinfo.genotoul.fr/index.php/faq/software_faq/ software_faq]
 +
ou
 +
*[http://bioinfo.genotoul.fr/index.php/resources-2/softwares/ softwares]
ou plus directement
ou plus directement
  ls /usr/local/bioinfo/src/
  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).
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=====
-
====SLURM cluster softwares====
+
-
[http://bioinfo.genotoul.fr/index.php/resources-2/softwares/ softwares]
+
-
 
+
-
=====soumission de jobs=====
+
[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 92: 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 129: 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 135: 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
+
-
29: 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 176: Line 152:
Exemple:
Exemple:
 +
*Créez un répertoire sur votre machine correspondant à l'atelier.
 +
*Placez vous dans ce répertoire.
<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">
rsync --archive --itemize-changes --stats -h -e ssh <user>@genologin.toulouse.inra.fr:/home/<user>/work/Prochlorococcus work
rsync --archive --itemize-changes --stats -h -e ssh <user>@genologin.toulouse.inra.fr:/home/<user>/work/Prochlorococcus work
</pre>
</pre>
 +
Pour information:
 +
ls -l /home/$USER
 +
save -> /save/$USER
 +
work -> /work/$USER
==Disponibilité des génomes==
==Disponibilité des génomes==
===Caractéristiques des souches étudiées===
===Caractéristiques des souches étudiées===
-
Table modifiée à partir de la Table 1 de ([https://www.ncbi.nlm.nih.gov/pubmed/18159947 Kettler et ''al.'', 2007).
+
Table modifiée à partir de la Table 1 de ([https://www.ncbi.nlm.nih.gov/pubmed/18159947 Kettler et ''al.'', 2007]).
<pre>
<pre>
Cyanobacterium Isolate         Light  Length(bp)      GC%    Number  Isol.  Region          Date          Accession  Code
Cyanobacterium Isolate         Light  Length(bp)      GC%    Number  Isol.  Region          Date          Accession  Code
Line 207: Line 189:
===''Prochlorococcus''===
===''Prochlorococcus''===
-
<!--
 
-
===JGI===
 
-
====Genome Portal====
 
-
[https://genome.jgi.doe.gov/portal/ Genome Portal]
 
-
 
-
[https://genome.jgi.doe.gov/portal/?core=genome&query=59919&searchIn=Anything&searchType=Keyword&showAll=false&externallySequenced=true&sortBy=displayNameStr&showRestricted=true&showOnlyPublished=false&showSuperseded=true&sortOrder=asc&rawQuery=false&showFungalOnly=false&activateHighlights=false&programName=all&programYear=all&superkingdom=--any--&status=--any--&scientificProgram=--any--&productCategory=--any--&start=0&rows=50&page=1]
 
-
<pre>
 
-
LOCUS      organism                                                  taxon ID  Prefix
 
-
AE017126  ''Prochlorococcus marinus'' subsp. marinus str. CCMP1375    167539  Aaaa
 
-
BX548174  ''Prochlorococcus marinus'' subsp. pastoris str. CCMP1986    59919  Aaab
 
-
BX548175  ''Prochlorococcus marinus'' str. MIT 9313                    74547  Aaac
 
-
CP000095  ''Prochlorococcus marinus'' str. NATL2A                      59920  Aaad  2606217240
 
-
CP000111  ''Prochlorococcus marinus'' str. MIT 9312                    74546  Aaae
 
-
CP000551  ''Prochlorococcus marinus'' str. AS9601                      146891  Aaaf
 
-
CP000552  ''Prochlorococcus marinus'' str. MIT 9515                    167542  Aaag
 
-
CP000878  ''Prochlorococcus marinus'' str. MIT 9211                    93059  Aaah
 
-
CP000553  ''Prochlorococcus marinus'' str. NATL1A                      167555  Aaai
 
-
CP000576  ''Prochlorococcus marinus'' str. MIT 9301                    167546  Aaaj
 
-
CP000825  ''Prochlorococcus marinus'' str. MIT 9215                    93060  Aaak
 
-
CP000554  ''Prochlorococcus marinus'' str. MIT 9303                    59922  Aaal
 
-
</pre>
 
-
sed -r s'/>([0-9]+)/>Aaad|\1/' 2606217240/2606217240.genes.faa
 
-
 
-
====Find and Examine Genomes====
 
-
[https://img.jgi.doe.gov/ https://img.jgi.doe.gov/]
 
-
Genomes in IMG can be selected by browsing through the list of genomes in IMG with
 
-
the Genome Browser or by using Genome Search.
 
-
<pre>
 
-
Find Genomes
 
-
    -> Genome Search
 
-
        Prochlorococcus
 
-
        Search by Name:
 
-
            all fields
 
-
</pre>
 
-
631 entries Loaded
 
-
 
-
Genomes can be selected or de-selected individually or collectively. You can
 
-
click on the name of an individual genome to view the associated Organism Details.
 
-
<pre>
 
-
        -> Filter column: Sequencing Status
 
-
        -> Filter text: Finished
 
-
</pre>
 
-
 
-
Cell Shape, Ecotype, Phenotype
 
-
 
-
You can save genomes selected with the Genome Browser by clicking the checkmark
 
-
box next to each genome, and then clicking on "Save Selections." You also have the
 
-
option to “Select All” of the genomes or “Clear All” of the selections.
 
-
 
-
The genome selections you save define the set of genomes for the IMG analysis tools
 
-
such as Gene Search, Gene Ortholog Neighborhoods, Phylogenetic Profiler, Genome
 
-
Statistics, and for highlighting in ortholog and homolog lists.
 
-
-->
 
-
 
===NCBI===
===NCBI===
Génomes de ''Prochlorococcus'' disponibles au NCBI [https://www.ncbi.nlm.nih.gov/genome/browse/?report=2# browse]
Génomes de ''Prochlorococcus'' disponibles au NCBI [https://www.ncbi.nlm.nih.gov/genome/browse/?report=2# browse]
Line 278: 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].
<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">
-
Pourquoi pensez-vous qu'il soit nécessaire d'annoter les génomes?
+
Question 1.1:
-
Quelles sont les annotations réalisées?
+
Pourquoi pensez-vous qu'il soit nécessaire d'annoter les génomes téléchargés du NCBI?
-
Quelles sont les logiciels utilisés?
+
Quelles sont les annotations réalisées par Prokka?
 +
Quels sont les logiciels utilisés pour réaliser ces annotations ?
</pre>
</pre>
 +
====Exemple d'utilisation====
====Exemple d'utilisation====
-
<pre>
+
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">
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 (~/work/Prochlorococcus/prokka/Aaaa), dont:
-
Le programme génère plusieurs fichiers pour chaque réplicon, 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 302: 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
-
/home/formation/public_html/M2_Phylogenomique/scripts/prokka_loop.pl --sample Prochlorococcus
+
~/work/scripts/prokka_loop.pl --sample Prochlorococcus
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 c'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''.
-
<!--
+
-
=====Peptides=====
+
-
Pour chaque génome les peptides de chaque replicon sont assemblés dans un seul fichier: [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/peptide peptide].
+
-
-->
+
<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">
-
Comparez globalement les résultats obtenus avec ceux reportés dans la publication.
+
Question 1.2:
-
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 341: Line 283:
art ~/work/Prochlorococcus/prokka/Aaaa/Aaaa.gff
art ~/work/Prochlorococcus/prokka/Aaaa/Aaaa.gff
</pre>
</pre>
 +
-->
-
==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====
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>
-
Nous allons utiliser l'option ''BLAST-2-Sequences'' de blastn.
+
Les résultats sont dans le repertoire:
-
 
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Exemple avec une paire:
+
mkdir ~/work/Prochlorococcus/BlastN
-
<pre>
+
-
srun -n1 -l 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
+
</pre>
</pre>
 +
Nous allons utiliser l'option ''BLAST-2-Sequences'' de blastn en précisant -subject <File_In>.
 +
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">
 +
search_module blast
-
<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
-
mkdir ~/work/Prochlorococcus/BlastN
+
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 ~/work/Prochlorococcus/BlastN/Aaab_vs_Aaag.tab
 +
</pre>
 +
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.
-
~/work/scripts/blastn_genome_pair.pl
+
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>
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>
 +
====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 386: 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">
 
-
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==
<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.4:
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">
-
Selon vous qu'est-ce qui guide le choix du type de séquences à utiliser dans les comparaisons (peptides ou nucléotidique)?
+
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)?
</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 415: 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 421: 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">
+
Exemple:
-
cd ~/work/Prochlorococcus/peptide
+
<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.6.0+
+
module load bioinfo/ncbi-blast-2.7.1+
srun -n1 -l makeblastdb -in Aaaa.faa -dbtype prot
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.
 +
 
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/Prochlorococcus/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">
<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;
+
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 makeblastdb.sh
-
do     
+
squeue -l -u <user>
-
srun -n1 -l makeblastdb -in $i  -dbtype prot;
+
-
done
+
</pre>
</pre>
-
 
=====Intra genomes=====
=====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 447: Line 509:
</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">
-
Explicitez les paramètres de blast utilisés.
+
Question 1.6:
 +
Explicitez les paramètres de blast utilisés dans le script blastp_intra.pl.
Combien de fichiers attendez-vous?
Combien de fichiers attendez-vous?
</pre>
</pre>
-
<!--
+
 
-
<div style="height: 150px; overflow:auto; border: thin solid blue; background: grey">
+
=====Paire de genomes=====
-
<pre>
+
<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>
</pre>
-
</div>
 
-
-->
 
-
=====Inter genomes=====
+
=====Boucle sur les 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).
+
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 468: 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:
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 481: 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]
-
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">  
+
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">  
 +
Question 1.8:
Rappelez les différentes étapes réalisées par le logiciel.  
Rappelez les différentes étapes réalisées par le logiciel.  
Précisez les paramètres utilisés pour identifier les paires de gènes orthologues.
Précisez les paramètres utilisés pour identifier les paires de gènes orthologues.
</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 498: 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 505: Line 608:
</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">  
-
Editez le script et donnez une description des différentes taches réalisées.
+
Question 1.9:
 +
Editez le script et donnez une description des différentes tâches réalisées.
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 567: 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 577: 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 602: 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 620: 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 667: 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:
Rappelez le principe de MCL et les paramètres utilisés.
Rappelez le principe de MCL et les paramètres utilisés.
Quel est l'effet de ces paramètres?
Quel est l'effet de ces paramètres?
Line 693: 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>
 +
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">
 +
awk 'BEGIN {
 +
n=1;
 +
printf("class\tsize\n");
 +
}
 +
{
 +
printf(n"\t"NF"\n");
 +
n = n+1;
 +
}' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group > ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group_class_size.tab
 +
</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">
 +
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
module load system/R-3.5.1
module load system/R-3.5.1
</pre>
</pre>
-
=====Global view=====
+
=====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:
Analysez la figure obtenue.
Analysez la figure obtenue.
Comparez-là avec celle réalisée avec les blastn.
Comparez-là avec celle réalisée avec les blastn.
</pre>
</pre>
-
=====Restrict view to OG without paralogs=====
+
=====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:
Comparez les deux figures, avec et sans les paralogues.
Comparez les deux figures, avec et sans les paralogues.
Comment se répartissent les régions peu denses en gènes orthologues?
Comment se répartissent les régions peu denses en gènes orthologues?
</pre>
</pre>
-
=====Restrict view to one 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 920:
Aaal.g_00941 Aaal.g_00943 Aaal.g_02214
Aaal.g_00941 Aaal.g_00943 Aaal.g_02214
</pre>
</pre>
 +
Extraction du sous-graphe correspondant à ces gènes:
 +
<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 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
 +
grep $i ~/work/Prochlorococcus/PorthoMCL/8.all.ort.tsv
 +
done | sort | uniq > ~/work/Prochlorococcus/PorthoMCL/G5.gr
 +
</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:
Commentez ces résultats.
Commentez ces résultats.
-
Pouvez vous formuler des hypothèses sur l'évolution de ces gènes.
+
Pouvez vous formuler des hypothèses sur l'évolution de ces gènes?
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 765: Line 951:
evince ~/work/Prochlorococcus/images/8.all.ort.group_IF.pdf
evince ~/work/Prochlorococcus/images/8.all.ort.group_IF.pdf
</pre>
</pre>
-
 
+
Code couleurs:
 +
<pre>
 +
bleu :  tous les OG
 +
rouge :  OG sans paralogues
 +
vert :  OG constitués uniquement d'orthologues 1:1
 +
orange : OG avec au moins un paralogue(s)
 +
</pre>
=====Tester l'effet de l'IF sur la paralogie=====
=====Tester l'effet de l'IF sur la paralogie=====
-
<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">
Rscript ~/work/scripts/MCL_OG_paralogy.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_paralogs.pdf
Rscript ~/work/scripts/MCL_OG_paralogy.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_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
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 819: 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 845: 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 880: 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 889: 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 900: 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 924: Line 1,125:
Un résumé des résultats se trouve dans la fichier: ~/work/Prochlorococcus/panoct/overview_stats.txt
Un résumé des résultats se trouve dans la fichier: ~/work/Prochlorococcus/panoct/overview_stats.txt
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Commentez les résultats obtenus. Comparez ces résultats à ceux de [https://www.ncbi.nlm.nih.gov/pubmed/18159947 Kettler et ''al.'', 2007].
+
Question 1.14:
 +
Commentez les résultats obtenus. Comparez ces résultats à ceux de Kettler et al., 2007.
</pre>
</pre>
Line 936: Line 1,138:
</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 1.15:
Après avoir indiqué sur la figure, le génome cœur, le génome accessoire, les singletons et le pan génome commentez les résultats obtenus.
Après avoir indiqué sur la figure, le génome cœur, le génome accessoire, les singletons et le pan génome commentez les résultats obtenus.
-
 
Quels sont les choix méthodologiques qui peuvent influencer la taille du génome cœur (argumentez)?
Quels sont les choix méthodologiques qui peuvent influencer la taille du génome cœur (argumentez)?
</pre>
</pre>
===Taille du pan génome===
===Taille du pan génome===
-
La taille du pan génome à tendance à augmenter avec le nombre de génomes comparés. Estimer sa taille est un exemple d'une classe générale de mesures où, étant donné une collection d’entités et leurs attributs, le nombre d'attributs distincts observés est fonction du nombre d'entités considérées. C’est par exemple le cas de l’analyse du langage naturel, où les entités sont les textes et les attributs sont les mots. Dans ce contexte, l’augmentation du nombre ''n'' d'attributs distincts en fonction du nombre ''N'' d'entités considérées suit la loi de Heaps (https://en.wikipedia.org/wiki/Heaps%27_law Heaps 'law).  Elle peut être représentée par la formule :  
+
La taille du pan génome à tendance à augmenter avec le nombre de génomes comparés (pour une revue: [https://www.ncbi.nlm.nih.gov/pubmed/19086349/ Tettelin et al., 2008]). Estimer sa taille est un exemple d'une classe générale de mesures où, étant donné une collection d’entités et leurs attributs, le nombre d'attributs distincts observés est fonction du nombre d'entités considérées. C’est par exemple le cas de l’analyse du langage naturel, où les entités sont les textes et les attributs sont les mots. Dans ce contexte, l’augmentation du nombre ''n'' d'attributs distincts en fonction du nombre ''N'' d'entités considérées suit la loi de Heaps ([https://en.wikipedia.org/wiki/Heaps%27_law Heaps 'law]).  Elle peut être représentée par la formule :  
n=k*N-α,  
n=k*N-α,  
Line 969: 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
 +
evince ~/work/Prochlorococcus/images/pangenome.pdf  
evince ~/work/Prochlorococcus/images/pangenome.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.16:
 +
Décrire la figure obtenue.
 +
Comment sont obtenus les différents points gris?
 +
A quoi correspondent les triangles et les carrés de couleurs et les deux courbes associées?
 +
Comparez cette figure à la Figure 1 de Kettler et al., 2007.
</pre>
</pre>
Line 982: Line 1,190:
evince ~/work/Prochlorococcus/images/newgenome.pdf
evince ~/work/Prochlorococcus/images/newgenome.pdf
</pre>
</pre>
-
<!--
+
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.17:
 +
Décrire cette figure.
 +
Que représente le 'a' (alpha)?
 +
Comparez la valeur obtenue avec celle reportée dans Tettelin et al., 2008.
 +
Que pourrait être l'effet de l'ajout de nouveaux génomes sur la taille du pan-génome (voir Biller et al., 2015)?
 +
Que pouvez-vous en conclure?
 +
</pre>
====run_panoct.pl====
====run_panoct.pl====
<pre>
<pre>
Line 1,000: Line 1,215:
<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.18:
Après avoir indiqué sur la figure, le génome cœur, le génome accessoire, les singletons et le pan génome commentez les résultats obtenus.
Après avoir indiqué sur la figure, le génome cœur, le génome accessoire, les singletons et le pan génome commentez les résultats obtenus.
-
 
Quels sont les choix méthodologiques qui peuvent influencer la taille du génome cœur (argumentez)?
Quels sont les choix méthodologiques qui peuvent influencer la taille du génome cœur (argumentez)?
</pre>
</pre>
Line 1,028: Line 1,243:
cat(pdf_file, "\n")
cat(pdf_file, "\n")
</pre>
</pre>
 +
 +
===PanOCT classification des proteins de l'OG 5 de PorthoMCL===
 +
Nous avons vu que le OG 5 de PorthoMCL renfermait 36 séquences. Comment se distribuent ces protéines avec panOCT?
 +
 +
MSK
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
if [ -f ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt ];
 +
then
 +
  echo "rm ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt"
 +
fi
 +
 +
for i in Aaaa.g_00266 Aaaa.g_00937 Aaaa.g_01196 Aaab.g_00239 Aaab.g_00820 Aaab.g_00825 Aaac.g_01231 Aaac.g_01233 Aaac.g_02086 Aaad.g_00743 Aaad.g_00747 Aaad.g_00909 Aaae.g_00242 Aaae.g_00786 Aaae.g_00791 Aaaf.g_00249 Aaaf.g_00782 Aaaf.g_00787 Aaag.g_00262 Aaag.g_00862 Aaag.g_00867 Aaah.g_00255 Aaah.g_00856 Aaah.g_01180 Aaai.g_00757 Aaai.g_00761 Aaai.g_00954 Aaaj.g_00252 Aaaj.g_00786 Aaaj.g_00791 Aaak.g_00251 Aaak.g_00834 Aaak.g_00839 Aaal.g_00941 Aaal.g_00943 Aaal.g_02214
 +
do
 +
awk -v var=$i '{
 +
  pattern=var;
 +
  if (match($0,pattern)) {
 +
  printf("%s\t%d\n", var,$1);
 +
  }
 +
}' ~/work/Prochlorococcus/panoct/all_clusters_members.txt >> ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt
 +
done
 +
 +
sort -nk 2 ~/work/Prochlorococcus/panoct/OG5_clusters_members.txt
 +
</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.18:
 +
Commentez le résultat obtenu.
 +
Que pouvez-vous en conclure?
 +
</pre>
 +
 +
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==
==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,046: 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 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,059: 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:
Regardez les différents fichiers résultats.
Regardez les différents fichiers résultats.
Regardez la couverture et le pourcentage d’identité des alignements et commentez les valeurs obtenues.
Regardez la couverture et le pourcentage d’identité des alignements et commentez les valeurs obtenues.
Line 1,065: Line 1,328:
</pre>
</pre>
-
:'''Construire un arbre de Neighbor-Joining basé sur le ANI avec l’outil 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.
 +
 
 +
<syntaxhighlight lang="python">
 +
id_file <- "work/Alignement_genomes/genomes_ANIm_output/ANIm_percentage_identity.tab"
 +
id_data <- read.table(file=id_file, header=T, row.names=1)
 +
heatmap(as.matrix(id_data), scale="none", symm=T, main="ANIm_percentage_identity")
 +
 
 +
co_file <- "work/Alignement_genomes/genomes_ANIm_output/ANIm_alignment_coverage.tab"
 +
co_data <- read.table(file=co_file, header=T, row.names=1)
 +
heatmap(as.matrix(co_data), scale="none", symm=T, main="ANIm_alignment_coverage")
 +
 
 +
id_nj <- nj(as.matrix(1-id_data))
 +
plot(id_nj, main="ANIm_percentage_identity")
 +
 
 +
co_nj <- nj(as.matrix(1-co_data))
 +
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:
Interprétez les résultats.
Interprétez les résultats.
</pre>
</pre>
Line 1,076: Line 1,357:
<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.3:
Citez les.
Citez les.
</pre>
</pre>
=====Distance Mash entre les génomes=====
=====Distance Mash entre les génomes=====
-
 
+
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,086: Line 1,368:
En mode intéractif:
En mode intéractif:
-
<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">
srun --pty bash
srun --pty bash
module load system/R-3.4.3 compiler/gcc-7.2.0
module load system/R-3.4.3 compiler/gcc-7.2.0
Line 1,095: Line 1,377:
Les résultats se trouvent dans le répertoire data_MashSketches/.
Les résultats se trouvent dans le répertoire data_MashSketches/.
-
<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">
~/work/scripts/Mash_dist_allpairs.sh data_MashSketches/
~/work/scripts/Mash_dist_allpairs.sh data_MashSketches/
</pre>
</pre>
Line 1,106: Line 1,388:
* 3ème colonne : distance Mash (estimation du taux de mutation selon un modèle d'évolution simple)
* 3ème colonne : distance Mash (estimation du taux de mutation selon un modèle d'évolution simple)
-
<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:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 2.4:
Interprétez les résultats.  
Interprétez les résultats.  
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,117: Line 1,399:
=====Alignements Mauve d'un sous-ensemble de 6 génomes=====
=====Alignements Mauve d'un sous-ensemble de 6 génomes=====
 +
<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
 +
</pre>
 +
======Concaténer les 6 génomes sélectionnés à la question précédente dans un fichier multifasta======
 +
<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
 +
do
 +
echo $i
 +
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/cat_genomes_prochlo/6GC_Prochlorococcus.gbk
 +
cat ~/work/Prochlorococcus/prokka/$i/$i.gff >> ~/work/Alignement_genomes/cat_genomes_prochlo/6GC_Prochlorococcus.gff
 +
done
 +
</syntaxhighlight>
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for i in Aaax  Aaay Aaaz
 +
do
 +
echo $i
 +
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/cat_genomes_prochlo/6GC_Prochlorococcus.gbk
 +
done
-
:'''Concaténer les 6 génomes sélectionnés à la question précédente dans un fichier multifasta'''
+
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">
-
cat ~/work/Alignement_genomes/genomes_prochlo/<génome>.fas >> ~/work/Alignement_genomes/genomes_prochlo/6GC_Prochlorococcus.fna
+
mkdir ~/work/Alignement_genomes/Mauve
 +
cd ~/work/Alignement_genomes
 +
</pre>
 +
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">
 +
sbatch RunSLURM_Mauve_6GProchlo.csh
 +
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">
 +
mkdir ~/work/Alignement_genomes/Mauve
 +
cd ~/work/Alignement_genomes
 +
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
 +
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
 +
</pre>
 +
Soumission du job (vérifiez que vous êtes bien sur '''genologin2'''!):
 +
<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
</pre>
</pre>
-
:'''Lancement de l’alignement des 6 génomes sur le cluster SLURM'''
 
-
 
-
Exemple de script "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
#!/bin/bash
Line 1,144: Line 1,470:
</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:
 +
*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.
 +
*lien entre le code et le nom de souche: [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/data/Prochlorococcus/NCBI/species_strain_names.txt species_strain_names.txt]
 +
<pre>
 +
#FormatVersion Mauve1
 +
#Sequence1File cat_genomes_prochlo/6GC_Prochlorococcus.gbk
 +
#Sequence1Entry 1
 +
#Sequence1Format GenBank
 +
#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 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">
-
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 ?
+
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 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>
-
=====Alignement Progressive Mauve de l’ensemble complet des 12 génomes=====
+
=====Alignement Progressive Mauve de l’ensemble complet des 6 génomes=====
-
 
+
Afin de comparer les logiciels Mauve et ProgressiveMauve nous allons analyser l'ensemble de 6 génomes avec  ProgressiveMauve.
-
'''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">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
cat /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/*.fas >> 12GC_Prochlorococcus.fna
+
ls
 +
mkdir ~/work/Alignement_genomes/ProgressiveMauve
 +
cd ~/work/Alignement_genomes
 +
</pre>
 +
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:
 +
<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 cat_genomes_prochlo/6GC_Prochlorococcus.gbk
 +
</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"
 +
>mkdir ~/work/Alignement_genomes/ProgressiveMauve
 +
srun --pty bash
 +
module load bioinfo/mauve_2.4.0
 +
progressiveMauve --output=ProgressiveMauve/6GC_Prochlorococcus_PMauve.xmfa cat_genomes_prochlo/6GC_Prochlorococcus.gbk
 +
</pre>
 +
<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:
 +
Comparez et interprétez les résultats obtenus.
</pre>
</pre>
-
'''Lancer l’alignement ProgressiveMauve des 12 génomes sur le cluster SLURM'''
+
=====Alignement Progressive Mauve de l’ensemble complet des 12 génomes=====
 +
Concaténer les 12 génomes dans un fichier multifasta
 +
 
 +
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
 +
do
 +
echo $i
 +
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
-
Exemple de script "RunSLURM_PMauve_12GProchlo.csh" (les chemins sont à changer):
+
grep -c '>' ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.fna
 +
grep -c 'LOCUS' ~/work/Alignement_genomes/cat_genomes_prochlo/12GC_Prochlorococcus.gbk
 +
</syntaxhighlight>
 +
======Lancer l’alignement ProgressiveMauve des 12 génomes sur le cluster SLURM======
 +
Exemple de script "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/RunSLURM_PMauve_12GProchlo.csh 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">
<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_PMauve_12GProchlo.csh
-
#SBATCH --time=02:00:00 #job time limit
+
squeue -l -u <user>
-
#SBATCH -J Pmauve
+
</pre>
-
#SBATCH -o RunSLURM_PMauve_12GProclo.out
+
[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/Mauve Mauve]
-
#SBATCH -e RunSLURM_PMauve_12GProclo.err
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
#SBATCH --mem=8G
+
mkdir ~/work/Alignement_genomes/ProgressiveMauve
-
#SBATCH --cpus-per-task=4 #ncpu on the same node
+
cd ~/work/Alignement_genomes
-
#SBATCH --mail-type=BEGIN,END,FAIL (email address is LDAP accounts)
+
srun --pty bash
-
#Purge any previous modules
+
-
module purge
+
-
#Load the application
+
module load bioinfo/mauve_2.4.0
module load bioinfo/mauve_2.4.0
-
# My command lines I want to run on the cluster
+
progressiveMauve --output=ProgressiveMauve/12GC_Prochlorococcus_PMauve.xmfa genomes_prochlo/12GC_Prochlorococcus.fna
-
progressiveMauve --output=/home/hchiapello/work/TP_M2_BIOINFO/TP_2018/12GC_Prochlorococcus_PMauve.xmfa /home/hchiapello/work/TP_M2_BIOINFO/TP_2018/12GC_Prochlorococcus.fna
+
</pre>
</pre>
Line 1,180: 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">
 +
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 style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
Mauve 12GC_Prochlorococcus_pmauve.xmfa
+
</pre>
</pre>
 +
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.
===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 le fichier 12GC_Prochlorococcus_pmauve.permutation'''
+
:'''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!)
 +
*12GC_Prochlorococcus_pmauve.permutation
NB1: Il n’est pas possible de lancer ProgressiveMauve directement avec l’option –permutation-matrix (ne fonctionne qu’avec Mauve).
NB1: Il n’est pas possible de lancer ProgressiveMauve directement avec l’option –permutation-matrix (ne fonctionne qu’avec Mauve).
Line 1,198: Line 1,580:
</pre>
</pre>
-
Le fichier doit avoir le format suivant
+
Le fichier doit avoir le format suivant  
<pre>
<pre>
>Aaaa
>Aaaa
Line 1,207: Line 1,589:
</pre>
</pre>
-
:'''Utiliser l’outil MLGO pour inférer l’histoire évolutive des réarrangements à partir de la matrice de permutation modifiée (n'oubliez pas de calculer les bootstraps ).'''
+
:'''Utiliser le logiciel MLGO pour inférer l’histoire évolutive des réarrangements à partir de la matrice de permutation modifiée (n'oubliez pas de calculer les bootstraps ).'''
Lien vers [http://www.geneorder.org/server.php MLGO]
Lien vers [http://www.geneorder.org/server.php MLGO]
<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">
-
Visualiser les arbres produits par MLGO en utilisant l’outil de votre choix (par exemple FigTree) et interpréter les résultats en fonction des écotypes.
+
Question 2.6:
 +
Visualiser les arbres produits par MLGO en utilisant l’outil de votre choix (par exemple FigTree ou iTOL) et interpréter les résultats en fonction des écotypes.
</pre>
</pre>
Line 1,228: Line 1,611:
(Aaab:0.00038261697365918421,(((Aaal:0.00110779153484151733,Aaac:0.00045702512028280982)100:0.01128794608013189253,((Aaah:0.00195679558538791641,Aaaa:0.00249248732070895488)98:0.00170192911132310224,(Aaad:0.00000001574704787426,Aaai:0.00000001574704787426)100:0.00384727219137918474)65:0.00019414433073579879)100:0.00328248641555709160,(Aaaj:0.00000001574704787426,(Aaaf:0.00000001574704787426,(Aaae:0.00000001574704787426,Aaak:0.00000001574704787426)34:0.00000001574704787426)33:0.00000001574704787426)98:0.00056868823569016999)50:0.00018460659686999882,Aaag:0.00040691005233194506);
(Aaab:0.00038261697365918421,(((Aaal:0.00110779153484151733,Aaac:0.00045702512028280982)100:0.01128794608013189253,((Aaah:0.00195679558538791641,Aaaa:0.00249248732070895488)98:0.00170192911132310224,(Aaad:0.00000001574704787426,Aaai:0.00000001574704787426)100:0.00384727219137918474)65:0.00019414433073579879)100:0.00328248641555709160,(Aaaj:0.00000001574704787426,(Aaaf:0.00000001574704787426,(Aaae:0.00000001574704787426,Aaak:0.00000001574704787426)34:0.00000001574704787426)33:0.00000001574704787426)98:0.00056868823569016999)50:0.00018460659686999882,Aaag:0.00040691005233194506);
</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.
 +
-->
==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!
 +
<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
 +
</pre>
===''Synechococcus''===
===''Synechococcus''===
====Génomes et annotations====
====Génomes et annotations====
Line 1,249: Line 1,641:
mkdir -p ~/work/Synechococcus/prokka
mkdir -p ~/work/Synechococcus/prokka
cd ~/work/Synechococcus
cd ~/work/Synechococcus
-
/home/formation/public_html/M2_Phylogenomique/scripts/prokka_loop.pl --sample Synechococcus
+
~/work/scripts/prokka_loop.pl --sample Synechococcus
squeue -l -u <user>
squeue -l -u <user>
Line 1,257: Line 1,649:
ls -l ~/work/Synechococcus/prokka/Aaa*/*.faa
ls -l ~/work/Synechococcus/prokka/Aaa*/*.faa
</pre>
</pre>
 +
====''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,266: Line 1,662:
ls -l ~/work/Synechococcus/peptide
ls -l ~/work/Synechococcus/peptide
</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">
<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+
+
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">
 +
module load bioinfo/ncbi-blast-2.7.1+
for i in *.faa;  
for i in *.faa;  
do       
do       
Line 1,274: 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,307: Line 1,743:
ls -l ~/work/ProchlorococcusSynechococcus/BlastP/.
ls -l ~/work/ProchlorococcusSynechococcus/BlastP/.
</pre>
</pre>
-
====Compléter les paires de comparisons====
+
====Compléter les paires de comparaisons====
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
MSK
-
cd ~/work/ProchlorococcusSynechococcus
+
<syntaxhighlight lang="bash">
-
~/work/scripts/blastp_inter.pl
+
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">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
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,326: 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,336: 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,344: 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,351: 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,368: 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>
-
Heatmap des groupes de gènes orthologues
+
 
-
<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:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
srun --pty bash
+
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! 
 +
</pre>
 +
Heatmap des groupes de gènes orthologues avec le fichier ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable_0_1.txt
 +
 
 +
MSK
 +
<syntaxhighlight lang="python">
 +
srun --pty bash # si nécessaire!
module load system/R-3.5.1;
module load system/R-3.5.1;
R
R
Line 1,391: Line 1,858:
dev.off()
dev.off()
cat(pdf_file, "\n")
cat(pdf_file, "\n")
 +
</syntaxhighlight>
 +
 +
<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:
 +
Décrivez la figure obtenue.
 +
Quelles informations vous apporte-t-elle?
</pre>
</pre>
====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,408: 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,417: 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>
-
Quelles sont les fonctions de ces gènes?
+
 
 +
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 >> 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'':=====
=====Gènes trouvés chez toutes les souches de ''Synechococcus'' mais dans aucune de ''Prochlorococcus'':=====
-
A vous de jouer!
 
-
====Extraction des séquences nucléotidiques des gènes orthologues====
+
MSK
-
Créer un fichier avec toutes les séquences nucléotidiques:
+
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">
 +
Question 3.3:
 +
Analysez ces résultats et les confronter à ceux disponibles dans la littérature.
 +
</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>
 +
-->
 +
 
 +
==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">
 +
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?
 +
</pre>
 +
<!--
 +
    La grande sous-unité ribosomique 50S des procaryotes contient les ARNr suivants :
 +
        ARNr 23S (2904 nucléotides chez E. coli1) ;
 +
        ARNr 5S ; il n'est pas lié à l'ARNr 23S.
 +
 
 +
    La petite sous-unité ribosomique 30S contient l'ARNr suivant :
 +
        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.
 +
 
 +
<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">
 +
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Synechococcus/prokka --model ssu
 +
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Prochlorococcus/prokka --model ssu
 +
</pre>
 +
 
 +
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">
 +
ls -l ~/work/*/prokka/Aaa*/Aaa*su*.rrna
 +
</pre>
 +
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">
 +
mkdir ~/work/ProchlorococcusSynechococcus/rRNA
 +
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*lsu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*lsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/lsu.fas
 +
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*ssu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*ssu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/ssu.fas
 +
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*tsu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*tsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/tsu.fas
 +
</pre>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 4.2:
 +
Combien de gènes codant pour les gènes d'ARNr sont prédits dans les différentes souches?
 +
Commentez.
 +
</pre>
 +
 
 +
===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.
 +
 
 +
ssu
 +
<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
 +
module load bioinfo/mafft-7.313
 +
mafft  --globalpair ~/work/ProchlorococcusSynechococcus/rRNA/ssu.fas > ~/work/ProchlorococcusSynechococcus/rRNA/ssu.aln
 +
</pre>
 +
lsu
 +
<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
 +
module load bioinfo/mafft-7.313
 +
mafft  --globalpair --thread 1 ~/work/ProchlorococcusSynechococcus/rRNA/lsu.fas > ~/work/ProchlorococcusSynechococcus/rRNA/lsu.aln
 +
</pre>
 +
tsu
 +
<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
 +
module load bioinfo/mafft-7.313
 +
mafft --globalpair ~/work/ProchlorococcusSynechococcus/rRNA/tsu.fas > ~/work/ProchlorococcusSynechococcus/rRNA/tsu.aln
 +
</pre>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 4.3:
 +
Pensez-vous que les alignements auraient été de meilleure qualité avec mafft-qinsi et l'option --maxiterate 1000?
 +
</pre>
 +
 
 +
===Arbre avec seaview===
 +
Utilisez le logiciel seaview pour calculer les arbres avec les trois types ARNr.
 +
 
 +
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">
 +
Question 4.4:
 +
Comparez les résultats obtenus.
 +
</pre>
 +
Éditez les fichiers pour ne retenir qu'une seule copie de chaque gènes par souche.
 +
Renommer les séquences par le code à quatre lettres.
 +
 
 +
Concaténez les trois types d'ARNr et calculer l'arbre avec la méthode de votre choix.
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Discutez ces résultats.
 +
</pre>
 +
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">
 +
library('phytools')
 +
ta <-read.tree(file='all_mod-PhyML_tree.ph')
 +
tl <-read.tree(file='lsu_mod-PhyML_tree.ph')
 +
ts <-read.tree(file='ssu_mod-PhyML_tree.ph')
 +
 
 +
plot.cophylo(cophylo(ta,tl,rotate=TRUE),fsize=0.7, link.type="curved", link.col="blue")
 +
plot.cophylo(cophylo(ta,ts,rotate=TRUE),fsize=0.7, link.type="curved", link.col="blue")
 +
</pre>
 +
 
 +
===Arbre SSU avec IQ-TREE===
 +
[http://www.iqtree.org/doc/ IQ-tree] doc.
 +
 
 +
IQ-TREE utilise ModelFinder ([https://www.nature.com/articles/nmeth.4285 Kalyaanamoorthy et al., 2017]) pour sélectionner le meilleur modèle adaptés aux données.
 +
 
 +
Pour seulement trouver le modèle le mieux adapté sans faire de reconstruction d'arbre, utilisez :
 +
<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
 +
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy  -m MF -redo -AIC
 +
</pre>
 +
Les résultats sont dans le fichier : ssu_renamed_simplified.phy.iqtree.
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
grep 'Best-fit model' ssu_renamed_simplified.phy.iqtree
 +
</pre>
 +
lsu
 +
ssu GTR+F+R2
 +
tsu K2P+G4
 +
 
 +
[http://www.iqtree.org/doc/Substitution-Models#dna-models dna-models]
 +
 
 +
====É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">
 +
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy  -pre ssuGTRFR2bb1000bnni -m GTR+F+R2 -bb 1000 -redo -bnni -nt AUTO"
 +
</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 :====
 +
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">
 +
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy -pre ssuGTRFR2bbalrt -m GTR+F+R2 -bb 1000 -alrt 1000 -redo -nt AUTO"
 +
</pre>
 +
 
 +
====É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">
 +
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy -pre ssuGTRFR2alrtb -m GTR+F+R2 -alrt 1000 -b 100 -redo -nt AUTO"
 +
</pre>
 +
 
 +
===Arbre SSU avec FastTree===
 +
[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.
 +
 
 +
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===
 +
Créer un fichier avec toutes les séquences nucléotidiques (cds):
 +
 
 +
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/DNA
+
mkdir -p ~/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
<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
 +
</pre>
 +
Créer le fihier suivant commande.sh
 +
<pre>
 +
#!/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
</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">
grep -c '>' ~/work/ProchlorococcusSynechococcus/OG/DNA/*fas
grep -c '>' ~/work/ProchlorococcusSynechococcus/OG/DNA/*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">
 +
Question 5.1:
 +
A quoi correspond ce quorum. Pourquoi utiliser un seuil de 16?
 +
Combien de fichiers avez-vous obtenus?
 +
Est-ce pertinent dans les situations où vous avez un grand nombre de souches?
 +
Et quand les espèces étudiées sont très éloignées phylogénétiquement parlant ?
 +
</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,450: Line 2,268:
<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/OG/alignment
mkdir ~/work/ProchlorococcusSynechococcus/OG/alignment
-
 
+
</pre>
-
~/work/scripts/aa_to_dna_aln.pl -dna ~/work/ProchlorococcusSynechococcus/OG/DNA/OG_1471.fas --outdir ~/work/ProchlorococcusSynechococcus/OG/alignment
+
Attention à faire un script et le lancer en sbatch ou en srun --pty bash
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap"> ~/work/scripts/aa_to_dna_aln.pl -dna ~/work/ProchlorococcusSynechococcus/OG/DNA/OG_1471.fas --outdir ~/work/ProchlorococcusSynechococcus/OG/alignment
</pre>
</pre>
Line 1,463: Line 2,282:
</pre>
</pre>
Le programme suivant réalise le traitement pour un sous ensemble de ''sample'' fichiers tirés au hasard.  
Le programme suivant réalise le traitement pour un sous ensemble de ''sample'' fichiers tirés au hasard.  
 +
 +
Il soumet sur le cluster donc, merci de vous remettre sur genologin pour lancer la commande ci-dessous.
 +
 +
Pour monitorer vos jobs : squeue -u "Mon_Login"
<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">
~/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>
 +
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">
 +
Question 5.2:
 +
Quelle est la raison de passer par un alignement des peptides pour obtenir l'alignement en nucléotides?
 +
Pour quelle raison allons nous travailler sur un sous ensemble d'alignements?
 +
Est-il pertinent de réaliser un échantillonnage des alignements par tirage aléatoire? Quelles autres approches pouvez-vous envisager?
 +
Serait-il pertinent de réaliser plusieurs tirages? Quel usage pourriez-vous en faire?
</pre>
</pre>
===Construction des arbres des groupes de gènes orthologues===
===Construction des arbres des groupes de gènes orthologues===
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5.3:
 +
Quels sont les traitements réalisés par le logiciel trimal?
 +
Quelles sont les options possibles pour réaliser ces traitements ? Ne pas lister toutes les options, les regrouper par type de traitement!
 +
Connaissez-vous d'autres logiciels réalisant un traitement comparable des alignements multiples?
 +
</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====
-
Trimer les alignements avec trimal (pas sur genologin!). Nous pouvons utiliser les résultats de trimal pour identifier des alignements de mauvaise qualité.
+
MSK
 +
 
 +
Trimer les alignements avec trimal. Nous pouvons utiliser les résultats de trimal pour identifier des alignements de mauvaise qualité.
 +
 
 +
genologin softwares : [http://bioinfo.genotoul.fr/index.php/resources-2/softwares/?searchll=trimal trimal]
<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
 +
module load bioinfo/trimal-1.4.1
 +
n=1
for i in ~/work/ProchlorococcusSynechococcus/OG/alignment/ali_dna_OG_*.fas
for i in ~/work/ProchlorococcusSynechococcus/OG/alignment/ali_dna_OG_*.fas
-
do    
+
do
 +
echo -e "Nb:" $n
 +
echo -e "Alignement:" $i "\n"
dir=$(dirname $i)
dir=$(dirname $i)
prefix=$(basename $i .fas)
prefix=$(basename $i .fas)
-
/usr/local/bioinfo/bin/trimal -in $dir/$prefix.fas -out $dir/$prefix.trim.aln -sident -sgt -automated1
+
trimal -in $dir/$prefix.fas -out $dir/$prefix.trim.aln -sident -sgt
 +
((n++))
done > ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.txt
done > ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.txt
</pre>
</pre>
-
=====Pour chaque alignement, extraction des % de sites avec des indels et de la conservation moyenne des alignements=====
+
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5.4:
 +
Editez le fichier de résultats et analysez son contenu.
 +
</pre>
 +
=====Pour chaque alignement, extraction des % de sites sans indels et de la conservation moyenne des alignements=====
<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 {
-
i=1;
+
        i=1;
-
col[""]=0;
+
        col[""]=0;
}
}
{  
{  
-
if ( $5==0)  
+
        if ( $5==0)  
-
{
+
        {
-
col[i "," 1]=$2
+
        col[i "," 1]=$2
-
}  
+
        }  
-
else  
+
        else  
-
if ( $2=="AverageIdentity" && $3!="Average")  
+
        if ( $2=="AverageIdentity" && $3!="Average")  
-
{
+
        {
-
col[i "," 2]=$3
+
        col[i "," 2]=$3
-
i = i+1;
+
        i = i+1;
-
}  
+
        }  
}  
}  
END {
END {
-
max = i
+
        max = i
-
i=1;
+
        i=1;
-
while (i < max) {
+
        while (i < max) {
-
print i "\t" col[i "," 1] "\t" col[i "," 2];
+
        print i "\t" col[i "," 1] "\t" col[i "," 2];
-
i = i+1;
+
        i = i+1;
-
}
+
        }
}' < ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.txt > ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.tab
}' < ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.txt > ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.tab
</pre>
</pre>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5.5:
 +
Vérifiez que vous avez extrait les informations attendues.
 +
</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,515: Line 2,395:
</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 meuilleurs alignements
+
Tracé de la distribution des deux paramètres pour définir des seuils permettant de retenir les meilleurs alignements
<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">
 +
module load system/R-3.6.1
R
R
pdf_file <- '~/work/ProchlorococcusSynechococcus/images/alignment_statistics.pdf'
pdf_file <- '~/work/ProchlorococcusSynechococcus/images/alignment_statistics.pdf'
Line 1,525: Line 2,406:
dev.off()
dev.off()
cat(pdf_file, "\n")
cat(pdf_file, "\n")
 +
quit()
 +
</pre>
 +
 +
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">
 +
Question 5.6:
 +
Éditez les alignements de plus mauvaises qualités.
 +
Commentez.
</pre>
</pre>
=====Sélection des meilleurs alignements=====
=====Sélection des meilleurs alignements=====
-
Sélection des meilleurs alignements à partir de la distribution du nombre de sites sans indels et de la conservation moyenne des alignements
+
Sélection des meilleurs alignements à partir de la distribution du nombre de sites sans indels et de la conservation moyenne des alignements.
 +
 
 +
Choisir --gap dans {0,100} et --identity dans {0, 1}:
<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">
-
~/work/scripts/trimal_selection.pl --alignment ~/work/ProchlorococcusSynechococcus/OG/alignment -gap 70 --identity 0.4
+
~/work/scripts/trimal_selection.pl --alignment ~/work/ProchlorococcusSynechococcus/OG/alignment --gap {0,100} --identity {0, 1}
</pre>
</pre>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5.7:
 +
Combien d'alignements avez-vous retenu?
 +
</pre>
 +
-->
-
===Phylogénie des souches===
+
==Super-alignement (Jeudi)==
-
====Super Matrice====
+
 
-
=====Concaténation de 31 alignements=====
+
Comme dans l’article publié en 2018 de Yan et al., nous utiliserons 31 gènes du core genome tirés au hasard.
-
<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/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
+
Nous partirons des arbres effectués sur le super-alignement protéique de ces gènes et sur celui retranscrits en nucléotides.
 +
 
 +
<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:
 +
Proposez une méthode pour obtenir le super-alignement protéique de ces 31 gènes concaténés.
</pre>
</pre>
 +
<!--
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5.9 :
 +
De la même façon comment obtenons nous la « rétro-traduction » en codons ? Dans quels cas cela peut-il être intéressant d’effectuer l’alignement en nucléotides de cette manière ?
 +
</pre>
 +
-->
 +
====Concaténation de 31 alignements====
 +
<source lang='bash'>
 +
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
 +
</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 ?
-
=====IQ-TREE=====
+
<!--
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
/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
-
/usr/local/bioinfo/src/IQ-TREE/iqtree-1.6.3-Linux/bin/iqtree -s ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31 -redo -bb 1000 -alrt 1000 -nt AUTO
+
-->
-
</pre>
+
 
 +
====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
 +
 
 +
Documentation : http://www.iqtree.org/doc/
 +
 
 +
Documentation : [http://www.iqtree.org/doc/Substitution-Models "Substitution-Models"]
 +
<source lang='bash'>
 +
mkdir ~/work/ProchlorococcusSynechococcus/phyloG/
 +
cd ~/work/ProchlorococcusSynechococcus/phyloG/
 +
cp ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments/alignments.fas .
 +
</source>
 +
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.
 +
<source lang='bash'>
 +
#!/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]
<pre>
<pre>
-
Input data: 16 sequences with 32355 nucleotide sites
+
Akaike Information Criterion:           KOSI07+F+R7
-
Number of constant sites: 10622 (= 32.8295% of all sites)
+
Corrected Akaike Information Criterion: KOSI07+F+R7
-
Number of invariant (constant or ambiguous constant) sites: 10622 (= 32.8295% of all sites)
+
Bayesian Information Criterion:         KOSI07+F+R6
-
Number of parsimony informative sites: 20377
+
Best-fit model: KOSI07+F+R6 chosen according to BIC
-
Number of distinct site patterns: 16346
+
</pre>
 +
Empirical codon model ([https://academic.oup.com/mbe/article/24/7/1464/986344 Kosiol et al., 2007]).
 +
-->
 +
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
-
ModelFinder
+
Best-fit model according to BIC: LG+F+R4
-
-----------
+
-
Best-fit model according to BIC: GTR+F+R4
 
-
Total CPU time used: 2936.33161 seconds (0h:48m:56s)
+
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/.
-
Total wall-clock time used: 459.9323409 seconds (0h:7m:39s)
+
 
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
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
</pre>
</pre>
-
=====Enraciner l'arbre=====
 
-
~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31_nuc_GTR+F+R4_rooted.treefile
 
-
===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">
-
Nous utilisons rnammer pour annoter les ARNr (lsu, ssu, tsu) dans les génomes.
+
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.
 +
</pre>
 +
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 [http://www.m2p-bioinfo.ups-tlse.fr/p/Atelier_Phylog%C3%A9nomique#Disponibilit.C3.A9_des_g.C3.A9nomes 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 :
<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">
-
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Synechococcus/prokka --model ssu
+
module load bioinfo/iqtree-2.0.6
-
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Prochlorococcus/prokka --model ssu
+
sarray ind_pep_trees.sh
</pre>
</pre>
-
Vérifiez que les fichier de sortie ne sont pas vide!
+
 
 +
Pour monitorer votre 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">
-
ls -l /home/yquentin/work/*/prokka/Aaa*/Aaa*ssu*.rrna
+
squeue -l -u <login>
</pre>
</pre>
-
Changer le motif pour obtenir les deux autres ARNr:
+
 
 +
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 :
<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 /home/yquentin/work/*/prokka/Aaa*/Aaa*lsu*.rrna
+
tail *_renamed.fas.log
-
ls -l /home/yquentin/work/*/prokka/Aaa*/Aaa*tsu*.rrna
+
</pre>
</pre>
-
Concaténer les fichiers:  
+
 
 +
Vous pouvez aussi regarder les modèles sélectionnés :
<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
+
grep 'Best-fit model:' *_renamed.fas.log
-
cat /home/yquentin/work/*/prokka/Aaa*/Aaa*lsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/lsu.fas
+
-
cat /home/yquentin/work/*/prokka/Aaa*/Aaa*ssu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/ssu.fas
+
-
cat /home/yquentin/work/*/prokka/Aaa*/Aaa*tsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/tsu.fas
+
</pre>
</pre>
-
====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 néanmoins la version ''mafft-qinsi''.
 
-
ssu
+
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 :
<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
-
module load bioinfo/mafft-7.313
 
-
mafft-qinsi  --maxiterate 1000 --globalpair ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.fas > ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.aln
 
-
trimal -in ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.aln -automated1 -phylip -out ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified_trimed.phy
 
</pre>
</pre>
-
lsu
+
puis taper :
-
<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: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
-
module load bioinfo/mafft-7.313
+
R
-
mafft-qinsi  --maxiterate 1000 --globalpair --thread -1 ~/work/ProchlorococcusSynechococcus/rRNA/lsu_renamed_simplified.fas > ~/work/ProchlorococcusSynechococcus/rRNA/lsu_renamed_simplified.aln
+
library(phytools)
-
trimal -in ~/work/ProchlorococcusSynechococcus/rRNA/lsu_renamed_simplified.aln -automated1 -phylip -out ~/work/ProchlorococcusSynechococcus/rRNA/lsu_renamed_simplified_trimed.phy
+
trees=read.tree("./alltrees.tree")
 +
supertrees<-mrp.supertree(trees,rearrangements="SPR", start="NJ")
</pre>
</pre>
-
tsu
+
Vous avez obtenu les super-arbres les plus parcimonieux. Sauvez-les en utilisant la fonction write.tree de R.
-
<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:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
srun --pty bash
+
write.tree(supertrees, file = "./superTrees.tree")
-
module load bioinfo/mafft-7.313
+
quit()
-
mafft-qinsi  --maxiterate 1000 --globalpair ~/work/ProchlorococcusSynechococcus/rRNA/tsu_renamed_simplified.fas > ~/work/ProchlorococcusSynechococcus/rRNA/tsu_renamed_simplified.aln
+
-
trimal -in ~/work/ProchlorococcusSynechococcus/rRNA/tsu_renamed_simplified.aln -automated1 -phylip -out ~/work/ProchlorococcusSynechococcus/rRNA/tsu_renamed_simplified_trimed.phy
+
</pre>
</pre>
 +
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.
-
====Arbre SSU====
+
Pour cela restez sur le nœud et tapez :
-
=====Arbre SSU avec PhyML=====
+
<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">
-
qsub -V -b Y -N phymlRNAn -l h_vmem=20G -l mem=18G "/usr/local/bioinfo/src/PhyML/current/PhyML-3.1_linux64 -i ~/work/ProchlorococcusSynechococcus/rRNA/ssu_trimed.phy -n 1 -b -1 -m GTR -v e -c 4 -a e -o n --quiet"
+
module load bioinfo/iqtree-2.0.6
 +
iqtree -con -t alltrees.tree -nt 1
</pre>
</pre>
-
Vous pouvez observer que des génomes codent pour plusieurs copies du gènes codant pour l'ARN 16S. A l'aide de l'arbre et des scores de rnammer simplifier votre fichier. Il est également utilie de modifier le nom des séquences. Après ces modifications, vous relancez l'alignement, l'édition de l'alignement et le calcule de l'arbre avec des options plus poussées.
 
-
<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:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
qsub -V -b Y -N phymlRNAtlr -l h_vmem=20G -l mem=18G "/usr/local/bioinfo/src/PhyML/current/PhyML-3.1_linux64 -i ~/work/ProchlorococcusSynechococcus/rRNA/ssu_trimed.phy -n 1 -b -1 -m GTR -v e -c 4 -a e -o tlr --quiet"
+
Question 5.12:
 +
D’après vous que signifie les valeurs aux nœuds sur cet arbre consensus ?
</pre>
</pre>
-
=====Arbre SSU avec IQ-TREE=====
+
 
-
Pour seulement trouver le modèle le mieux adapté sans faire de reconstruction d'arbre, utilisez :
+
Lancez aussi l’arbre consensus en réseau :  
<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">
-
qsub -V -b Y -N IQTreeSSUm -l h_vmem=20G -l mem=18G "/usr/local/bioinfo/src/IQ-TREE/iqtree-1.6.3-Linux/bin/iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified_trimed.phy  -m MF -redo -AIC"
+
iqtree -net -t alltrees.tree -nt 1
</pre>
</pre>
-
Les résultats sont dans le fichier : ssu_renamed_simplified_trimed.phy.iqtree.
+
 
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
Et visualisez-le avec splitstree en local.
-
grep 'Best-fit model' ssu_renamed_simplified_trimed.phy.iqtree
+
 
 +
https://software-ab.informatik.uni-tuebingen.de/download/splitstree5/welcome.html
 +
 
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5.13:
 +
Commentez ce réseau par rapport aux autres arbres obtenus. Qu’en pensez-vous ?
</pre>
</pre>
-
lsu
 
-
ssu GTR+F+R2
 
-
tsu K2P+G4
 
-
[http://www.iqtree.org/doc/Substitution-Models#dna-models dna-models]
+
'''ASTRAL'''
-
======Évaluation des supports de branches avec approximation bootstrap ultra-rapide :======
+
* [https://github.com/smirarab/ASTRAL ASTRAL]
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
* [http://bioinfo.genotoul.fr/index.php/how-to-use/?software=How_to_use_SLURM_ASTRAL How_to_use_SLURM_ASTRAL]
-
qsub -V -b Y -N ssuIQTreeSSUbb -l h_vmem=20G -l mem=18G "/usr/local/bioinfo/src/IQ-TREE/iqtree-1.6.3-Linux/bin/iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified_trimed.phy  -pre ssuGTRFR2bb1000bnni -m GTR+F+R2 -bb 1000 -redo -bnni -nt AUTO"
+
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.
 +
 
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5.14:
 +
Commentez les résultats. Quel est l’arbre le plus différent des autres ? Qu’est-ce qui pourrait l’expliquer ?
</pre>
</pre>
-
======É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).  
+
==Analyse des liens phylogénétiques des gènes du OG5 de PortMCL==
 +
<!--
 +
É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">
-
qsub -V -b Y -N ssuIQTreeSSUbbalrt -l h_vmem=20G -l mem=18G "/usr/local/bioinfo/src/IQ-TREE/iqtree-1.6.3-Linux/bin/iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified_trimed.phy -pre ssuGTRFR2bbalrt -m GTR+F+R2 -bb 1000 -alrt 1000 -redo -nt AUTO"
+
~/work/scripts/extract_sequences_from_list.pl -fasta ~/work/ProchlorococcusSynechococcus/DNA/combined_dna.ffn --outname ~/work/ProchlorococcusSynechococcus/OG5/OG5_genes.faa --list ~/work/ProchlorococcusSynechococcus/OG5_gene_list.txt
-
</pre>
+
 
-
======Évaluation des supports de branche avec un bootstrap non paramétrique standard :======
+
~/work/scripts/aa_to_dna_aln.pl -dna ~/work/ProchlorococcusSynechococcus/OG5/OG5_genes.faa --outdir ~/work/ProchlorococcusSynechococcus/OG5
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
qsub -V -b Y -N ssuIQTreeSSUalrtb -l h_vmem=20G -l mem=18G "/usr/local/bioinfo/src/IQ-TREE/iqtree-1.6.3-Linux/bin/iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified_trimed.phy -pre ssuGTRFR2alrtb -m GTR+F+R2 -alrt 1000 -b 100 -redo -nt AUTO"
+
</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.
 +
-->
==Reconstruction d'états ancestraux==
==Reconstruction d'états ancestraux==
Line 1,663: 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.
-
===Copier l'arbre espèce de référence===
+
Suivre : [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Etats_ancestraux Etats ancestraux]
 +
<!--
 +
===Répertoire===
Nous allons travailler dans un nouveau répertoire:  
Nous allons travailler dans un nouveau répertoire:  
<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/Ancestral_Characters  
mkdir ~/work/ProchlorococcusSynechococcus/Ancestral_Characters  
cd ~/work/ProchlorococcusSynechococcus/Ancestral_Characters
cd ~/work/ProchlorococcusSynechococcus/Ancestral_Characters
 +
cp /home/formation/work/ProchlorococcusSynechococcus/Ancestral_Characters/Strains_info.txt ~/work/ProchlorococcusSynechococcus/Ancestral_Characters
</pre>
</pre>
===Copier l'arbre espèce de référence===
===Copier l'arbre espèce de référence===
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 1,679: Line 2,710:
Comme caractère continue, nous allons étudier l'évolution de la composition en G+C des génomes. Le taux de GC est calculé avec ''gc_freq.pl''.  
Comme caractère continue, nous allons étudier l'évolution de la composition en G+C des génomes. Le taux de GC est calculé avec ''gc_freq.pl''.  
-
Sur génotoul:
 
<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">
for i in ~/work/Prochlorococcus/prokka/Aaa*/Aaa*.fna
for i in ~/work/Prochlorococcus/prokka/Aaa*/Aaa*.fna
Line 1,724: Line 2,754:
tipcol[5:16] <- 'blue'
tipcol[5:16] <- 'blue'
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/species_tree.pdf", paper="a4r")
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)
nodelabels(tr$node, bg='white', col='purple', frame='n', adj=c(1,-1), cex=0.5)
nodelabels(tr$node, bg='white', col='purple', frame='n', adj=c(1,-1), cex=0.5)
tiplabels(strains_info$Light, bg='white', col='black', frame='n', adj=c(-0.2, 0.5), cex=1)
tiplabels(strains_info$Light, bg='white', col='black', frame='n', adj=c(-0.2, 0.5), cex=1)
add.scale.bar(length=0.1)
add.scale.bar(length=0.1)
 +
dev.off()
 +
</pre>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
evince ~/work/ProchlorococcusSynechococcus/images/species_tree.pdf
</pre>
</pre>
Line 1,741: Line 2,777:
data <- read.table(file=strains_gc_file, header=F,sep="\t", row.names=1)
data <- read.table(file=strains_gc_file, header=F,sep="\t", row.names=1)
</pre>
</pre>
-
Ajouter les noms des colonnes et réordonner les 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:
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? Commentez.
 +
Existe-t-il un lien entre la taille du génome et son contenu en gènes?
</pre>
</pre>
Line 1,759: 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 style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 6.2:
 +
Commentez les figures obtenues.
</pre>
</pre>
Line 1,773: 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">
 +
Question 6.3:
Que peut on conclure de cette analyse?
Que peut on conclure de cette analyse?
</pre>
</pre>
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 1,793: 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 1,798: 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 1,806: 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">
-
Existe-t-il un lien entre la taille du génome et son contenu en GC? Commentez.
+
Question 6.4:
 +
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 1,827: 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 1,834: Line 2,914:
</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.5:
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===
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 6.6:
 +
Rappelez d'ou proviennent les différents isolats analysés et expliquez comment ont été défini les écotypes.
 +
</pre>
 +
Nous allons maintenant nous intéresser à la profondeur à laquelle les organismes vivent. Cette information est absente pour la souche aaap. Nous allons donc supprimer cette feuille à l'arbre.
Nous allons maintenant nous intéresser à la profondeur à laquelle les organismes vivent. Cette information est absente pour la souche aaap. Nous allons donc supprimer cette feuille à 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">
Line 1,845: 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">
-
Existe-t-il un lien entre profondeur et l'évolution des souches? Commentez.
+
Question 6.7:
 +
Existe-t-il un lien entre profondeur et l'évolution des souches (voir Biller et al., 2015)? Commentez.
 +
 
</pre>
</pre>
Line 1,863: 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 1,868: 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 1,873: 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:
Sur quelles branches de l'arbre placez vous les transitions d'écotypes? Commentez.
Sur quelles branches de l'arbre placez vous les transitions d'écotypes? Commentez.
</pre>
</pre>
Line 1,958: Line 3,063:
names(pat_size) <- pat_name
names(pat_size) <- pat_name
pat_sort <- sort(pat_size, decreasing=T)
pat_sort <- sort(pat_size, decreasing=T)
 +
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/taille_des_motifs.pdf", paper="a4r")
par(mar=c(5,10,1,1))
par(mar=c(5,10,1,1))
-
barplot(pat_sort, horiz=T, cex.names = 1, las=1)
+
barplot(pat_sort, horiz=T, cex.names = 0.6, las=1, cex=1)
 +
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.9:
Quel sera l'usage de ce calcul?
Quel sera l'usage de ce calcul?
</pre>
</pre>
Line 1,985: 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 1,992: 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,007: 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,025: 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,031: 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,045: 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,051: 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,071: 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,082: 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,261: Line 3,382:
</pre>
</pre>
======Gains et pertes de gènes======
======Gains et pertes de gènes======
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">plot(tr, label.offset=0.2, show.node.label=F, cex=1)
+
<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/gains_pertes_genes.pdf", paper="a4r")
 +
plot(tr, label.offset=0.2, show.node.label=F, cex=1)
tiplabels(motifs[[pattern]]$sring, bg=bgcol, col='black', frame='c',cex=0.5)
tiplabels(motifs[[pattern]]$sring, bg=bgcol, col='black', frame='c',cex=0.5)
nodelabels(pie=motifs[[pattern]]$er$lik.anc,cex=0.5, piecol=mycolors)
nodelabels(pie=motifs[[pattern]]$er$lik.anc,cex=0.5, piecol=mycolors)
Line 2,267: Line 3,390:
edgelabels(text=loss, frame="n", col='red', bg='white', adj=c(0,1.5),cex=0.8)
edgelabels(text=loss, frame="n", col='red', bg='white', adj=c(0,1.5),cex=0.8)
add.scale.bar(length=0.1)
add.scale.bar(length=0.1)
 +
dev.off()
</pre>
</pre>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
evince ~/work/ProchlorococcusSynechococcus/images/gains_pertes_genes.pdf
 +
</pre>
 +
======Flux de gènes======
======Flux de gènes======
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">plot(tr, label.offset=0.2, show.node.label=F, cex=1)
+
<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/flux_genes.pdf", paper="a4r")
 +
plot(tr, label.offset=0.2, show.node.label=F, cex=1)
flux <- gain + loss
flux <- gain + loss
plot(tr, label.offset=0.2, show.node.label=F, cex=1)
plot(tr, label.offset=0.2, show.node.label=F, cex=1)
Line 2,276: Line 3,407:
edgelabels(text=flux, frame="n", col='black', bg='white', adj=c(0,-0.5),cex=0.8)
edgelabels(text=flux, frame="n", col='black', bg='white', adj=c(0,-0.5),cex=0.8)
add.scale.bar(length=0.1)
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">
 +
Question 6.10:
 +
Commentez les figures obtenues.
 +
Comparez ces résultats avec ceux de Sun et Blanchard, 2014)
 +
</pre>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
evince ~/work/ProchlorococcusSynechococcus/images/flux_genes.pdf
</pre>
</pre>
Line 2,285: 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==
===Mesquite===
===Mesquite===
[http://www.mesquiteproject.org/ Mesquite]: A modular system for evolutionary analysis
[http://www.mesquiteproject.org/ Mesquite]: A modular system for evolutionary analysis
 +
 +
<!--
 +
==TP Phylogénomique du 25 octobre==
 +
 +
'''Support de cours :''' [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2018_supports/ supports]
 +
 +
Aujourd’hui nous utiliserons certains gènes de Prochlorococcus et de Synechococcus pour expérimenter les différentes méthodes de reconstruction phylogénomiques. Nous nous initierons à la comparaison d’arbres.
 +
 +
 +
'''Attention : sur le cluster genotoul :''' toujours utiliser qsub ou qrsh et configurer les jobs pour qu'ils écrivent dans le /work de votre compte fleur.
 +
 +
'''Sur le cluster genologin :''' toujours utiliser sbatch ou srun et écrire sur le /work de votre compte fleur.
 +
 +
Rappel des comptes fleur : mdp : f1o2r3 !
 +
 +
anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia
 +
 +
 +
'''Lien utile pour l’utilisation du cluster :''' [http://bioinfo.genotoul.fr/index.php/faq/ FAQ]
 +
 +
'''Lien vers la doc de IQTREE :''' [http://www.iqtree.org/doc/ IQTREE]
 +
 +
===I) Super-alignement===
 +
 +
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.
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1 : Proposez une méthode pour obtenir l’alignement protéique de ces 31 gènes concaténés
 +
</pre>
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 2 : De la même façon comment obtenons nous la « rétro-traduction » en codons ? Dans quels cas cela peut-il être intéressant d’effectuer l’alignement en nucléotides de cette manière ?
 +
</pre>
 +
 +
Vous trouverez l’arbre inféré à partir du super-alignement protéique ici :
 +
/home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/all_pep.fas.treefile.
 +
 +
La ligne de commande lancée était :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
/usr/local/bioinfo/src/IQ-TREE/iqtree-1.6.3-Linux/bin/iqtree -s all_pep.fas  -bb 1000 -alrt 1000 -nt 4
 +
</pre>
 +
Et celui inféré à partir du super-alignement en codons ici :
 +
/home/formation/work/ProchlorococcusSynechococcus/phyloG/alignment_0.4_70_31.fas.treefile.
 +
 +
La ligne de commande lancée était :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
/usr/local/bioinfo/src/IQ-TREE/iqtree-1.6.3-Linux/bin/iqtree -s alignment_0.4_70_31  -bb 1000 -alrt 1000 -st codon -nt 4
 +
</pre>
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 2 : 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 ?
 +
</pre>
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 3 : comparez les deux arbres visuellement avec figtree par exemple (ou avec des outils en ligne tels que : phylo.io, PhyD3, iTOL...).
 +
Pour utiliser figtree sur le cluster pensez à se loguer en -XY. Sinon il s’installe assez facilement en local du moment qu’on a le plugin java. 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 ».
 +
Les noms des espèces et les informations des clades correspondantes sont disponibles dans le fichiers /home/formation/work/ProchlorococcusSynechococcus/Ancestral_Characters/Strains_info.txt.
 +
</pre>
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 4 : 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. Et pensez à raciner les arbres en utilisant l’outgroup Synechococcus.
 +
</pre>
 +
 +
===II) Super-arbres===
 +
 +
Nous allons utiliser les arbres individuels protéiques ainsi que celui reconstruits à partir de la petite sous-unité de l’rRNA.
 +
Sur genologin le script était celui-là :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
#!/bin/bash
 +
iqtree -s ./ssu_renamed_simplified.aln -nt 1 -AIC -bb 1000 -alrt 1000 -redo
 +
</pre>
 +
Et on a tapé :
 +
<pre style="color:purple;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
 +
sbatch --mem=20G ssuTree.sh
 +
</pre>
 +
 +
Voici l’arbre obtenu : /home/formation/work/ProchlorococcusSynechococcus/phyloG /ssu_renamed_simplified.aln.treefile
 +
 +
'''A vous :''' 
 +
Loguez-vous sur genologin (et pas genotoul).
 +
 +
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
 +
 +
'''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 ?
 +
 +
Rajouter la première ligne obligatoire sur genologin avec vi par exemple :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
#!/bin/bash
 +
</pre>
 +
 +
Pour le lancer en parallèle sur plusieurs nœuds du cluster :
 +
<pre style="color:purple;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
 +
sarray ind_pep_trees.sh
 +
</pre>
 +
 +
Pour monitorer votre job :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
squeue –u login
 +
</pre>
 +
 +
Pour le killer si besoin :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
scancel jobid
 +
</pre>
 +
 +
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 :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
tail *_renamed.fas.log
 +
</pre>
 +
 +
Vous pouvez aussi regarder les modèles sélectionnés :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
grep 'Best-fit model:' *_renamed.fas.log
 +
</pre>
 +
 +
Concaténer tous les arbres (les 31 arbres protéiques et l’arbre ARNr) 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 :
 +
<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
 +
</pre>
 +
puis taper :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
module load system/R-3.5.1
 +
R
 +
library(phytools)
 +
trees=read.tree("MonPath/alltrees.tree ")
 +
supertrees<-mrp.supertree(trees,rearrangements="SPR", start="NJ")
 +
</pre>
 +
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">
 +
write.tree(supertrees, file = MonPath/superTrees.tree")
 +
quit()
 +
</pre>
 +
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 :
 +
<pre style="color:purple;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
 +
iqtree -con -t alltrees.tree -nt 1
 +
</pre>
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 5 : D’après vous que signifie les valeurs aux nœuds sur cet arbre consensus ?
 +
</pre>
 +
 +
Lancez aussi l’arbre consensus en réseau :
 +
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
iqtree -net -t alltrees.tree -nt 1
 +
</pre>
 +
 +
Et visualisez-le avec splitstree en local.
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 6 : Commentez ce réseau par rapport aux autres arbres obtenus. Qu’en pensez-vous ?
 +
</pre>
 +
 +
===III) 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).
 +
 +
Lancer ensuite le calcul de la distance de Robinson and Foulds sur ce fichier avec iqtree.
 +
 +
Attention à faire le module load bioinfo/iqtree-1.6.7
 +
 +
Et à rajouter -nt 1 dans les options.
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 7 : Commentez les résultats. Quel est l’arbre le plus différent des autres ? Qu’est-ce qui pourrait l’expliquer ?
 +
</pre>
 +
 +
Fin du TP du 25 octobre 2018
 +
-->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
<!--
<!--
==old stuff==
==old stuff==

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