silico.biotoul.fr
 

Atelier Phylogénomique

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
(III) Comparaison des arbres)
m (eggNOG)
 
(578 intermediate revisions not shown)
Line 1: Line 1:
==Matériel pédagogique==
==Matériel pédagogique==
'''Support de cours''' : Quest for Orthologs
'''Support de cours''' : Quest for Orthologs
-
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Quest4orthologs_2018.pdf Présentation].
+
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Quest4orthologs_2020.pdf Présentation].
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/references_QfO.pdf Références]
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/references_QfO.pdf Références]
-
'''Support de cours''' : Alignements de génomes et Phylogénomique  
+
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Prochlorococcus_2020.pdf Prochlorococcus]
-
*[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2018_supports/ supports]
+
'''Support de cours''' : Alignements de génomes
-
<!--
+
*[http://silico.biotoul.fr/enseignement/m2BBS/Phylogenomic/Genome_alignments_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]
 +
 +
*[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2022_supports/Reconstruction_etats_ancestraux.html Reconstruction_etats_ancestraux.html]
 +
*[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2022_supports/Reconstruction_etats_ancestraux.Rmd Reconstruction_etats_ancestraux.Rmd]
 +
 +
anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia iris jacinthe
 +
<!--
 +
décrivant l'installation des logiciels pour les différents ateliers : http://silico.biotoul.fr/p/M2BBS_-_Atelier_Syst%C3%A8me
-->
-->
Line 16: Line 29:
*[https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0088837 Sun and Blanchard, 2014] Strong Genome-Wide Selection Early in the Evolution of Prochlorococcus Resulted in a Reduced Genome through the Loss of a Large Number of Small Effect Genes
*[https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0088837 Sun and Blanchard, 2014] Strong Genome-Wide Selection Early in the Evolution of Prochlorococcus Resulted in a Reduced Genome through the Loss of a Large Number of Small Effect Genes
*[https://www.ncbi.nlm.nih.gov/pubmed/29915114 Yan et al., Appl Environ Microbiol. 2018] Genome rearrangement shapes ''Prochlorococcus'' ecological adaptation.
*[https://www.ncbi.nlm.nih.gov/pubmed/29915114 Yan et al., Appl Environ Microbiol. 2018] Genome rearrangement shapes ''Prochlorococcus'' ecological adaptation.
 +
*[https://pubmed.ncbi.nlm.nih.gov/35285694/  Yan et al., mBio 2022] Diverse Subclade Differentiation Attributed to the Ubiquity of Prochlorococcus High-Light-Adapted Clade II
*[http://scope.soest.hawaii.edu/pubs/2015Biller_NatRevMicro.pdf Biller et al., Nat. Rev. Microbiol. 2015 13(1) 13-27] ''Prochlorococcus'': the structure and function of collective diversity.
*[http://scope.soest.hawaii.edu/pubs/2015Biller_NatRevMicro.pdf Biller et al., Nat. Rev. Microbiol. 2015 13(1) 13-27] ''Prochlorococcus'': the structure and function of collective diversity.
 +
*[https://www.annualreviews.org/doi/10.1146/annurev-marine-120308-081034 Partensky and Laurence Garczarek Annual Review of Marine Science 2010] Prochlorococcus: Advantages and Limits of Minimalism. 
 +
*[https://www.cell.com/current-biology/fulltext/S0960-9822(17)30213-0?code=cell-site Prochlorococcus] ''Prochlorococcus''.
*[https://www.cell.com/current-biology/fulltext/S0960-9822(17)30213-0?code=cell-site Prochlorococcus] ''Prochlorococcus''.
 +
 +
*[http://application.sb-roscoff.fr/cyanorak/welcome.html Cyanorak Information system]
==Logiciels à installer sur vos postes de travail==
==Logiciels à installer sur vos postes de travail==
Line 24: Line 42:
*[http://www.sanger.ac.uk/science/tools/artemis Artemis] : Genome browser and annotation tool
*[http://www.sanger.ac.uk/science/tools/artemis Artemis] : Genome browser and annotation tool
*[http://www.sanger.ac.uk/science/tools/artemis-comparison-tool-act Artemis Comparison Tool] : Java application for displaying pairwise comparisons between two or more DNA sequences
*[http://www.sanger.ac.uk/science/tools/artemis-comparison-tool-act Artemis Comparison Tool] : Java application for displaying pairwise comparisons between two or more DNA sequences
-
*[http://ab.inf.uni-tuebingen.de/data/software/splitstree4/download/welcome.html splitstree] The aim of SplitsTree4 is to provide a framework for evolutionary analysis using both trees and networks.
+
*[https://software-ab.cs.uni-tuebingen.de/download/splitstree4/welcome.html splitstree] The aim of SplitsTree4 is to provide a framework for evolutionary analysis using both trees and networks.
*[http://tree.bio.ed.ac.uk/software/figtree/ FigTree] is designed as a graphical viewer of phylogenetic trees and as a program for producing publication-ready figures.
*[http://tree.bio.ed.ac.uk/software/figtree/ FigTree] is designed as a graphical viewer of phylogenetic trees and as a program for producing publication-ready figures.
 +
 +
''Artemis'' (''art'' et ''act'') et ''figtree'' peuvent être installés avec [http://www.m2p-bioinfo.ups-tlse.fr/p/M2BBS_-_Atelier_Syst%C3%A8me#Atelier_Phylog.C3.A9nomique conda/mamba].
 +
 +
''Mauve'', ''mauveAligner'' et ''progressiveMauve'' peuvent être installés avec ''conda'' mais une erreur peut survenir avec Mauve. En effet, vous pouvez avoir une version trop récente de java (https://edwards.sdsu.edu/research/running-mauve-with-java-10/). Pour y remédier, chercher une "vieille" version de java et remplacer "java" par le chemin de cette version dans le fichier Mauve (ligne JAVA_CMD=java).
 +
 +
[http://silico.biotoul.fr/p/M2BBS_-_Atelier_Syst%C3%A8me#Atelier_Phylog.C3.A9nomique Atelier système]
==Ressources informatiques==
==Ressources informatiques==
Line 33: Line 57:
===Sortcuts===
===Sortcuts===
Vous allez vous connecter avec un compte fleur:
Vous allez vous connecter avec un compte fleur:
 +
<!--
<pre>
<pre>
-
anemone BIRBES CLEMENT
 
-
arome BOUCHIBA YOUNES
 
-
aster BURNARD CALLUM
 
-
bleuet DECAESTECKER JULIEN
 
-
camelia JEREMIE MARIE
 
-
capucine KURYLO CYRIL
 
-
chardon LATOUR JUSTINE
 
-
clematite LEGUET MANON
 
-
cobee LUDWIG CORALIE
 
-
coquelicot MARICOURT PIERRE-LOUIS
 
-
cosmos PÜZIN WILLIAM
 
-
cyclamen QUELLERY ELISABETH
 
-
dahlia SIMON CHRIS
 
-
digitale TIHIC EDI
 
-
geranium VAN BLERK SEBASTIAN
 
-
gerbera YLMAZ FULYA
 
-
glaieul
 
-
hortensia
 
</pre>
</pre>
 +
 +
2019 : anemone arome aster bleuet camelia capucine chardon clematite cobee coquelicot cosmos cyclamen dahlia digitale geranium gerbera glaieul hortensia iris jacinthe jonquille
 +
 +
<pre>
 +
</pre>
 +
-->
  ssh -Y <login>@genologin.toulouse.inra.fr  
  ssh -Y <login>@genologin.toulouse.inra.fr  
Line 68: Line 81:
La documentation est disponible sur le site WEB et dans le répertoire correspondant au logiciel (fichiers How_to_use and/or Readme).
La documentation est disponible sur le site WEB et dans le répertoire correspondant au logiciel (fichiers How_to_use and/or Readme).
-
=====soumission de jobs=====
+
=====Soumission de jobs avec SLURM=====
[http://bioinfo.genotoul.fr/wp-content/uploads/Seminar_cluster_SLURM_15_03_18.pdf Seminar_cluster_SLURM]
[http://bioinfo.genotoul.fr/wp-content/uploads/Seminar_cluster_SLURM_15_03_18.pdf Seminar_cluster_SLURM]
<!--
<!--
Editer un fichier (ex myscript.sh) contenant les lignes de commandes suivantes :  
Editer un fichier (ex myscript.sh) contenant les lignes de commandes suivantes :  
-
<pre>
+
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
qsub en batch
qsub en batch
qlogin interactive
qlogin interactive
Line 89: 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 126: 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 132: 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 178: Line 157:
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==
Line 223: 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">
Question 1.1:
Question 1.1:
-
Pourquoi pensez-vous qu'il soit nécessaire d'annoter les génomes?
+
Pourquoi pensez-vous qu'il soit nécessaire d'annoter les génomes téléchargés du NCBI?
-
Quelles sont les annotations réalisées?
+
Quelles sont les annotations réalisées par Prokka?
-
Quels sont les logiciels utilisés?
+
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 248: 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''.
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 1.2:
Question 1.2:
-
Comparez globalement les résultats obtenus avec ceux reportés dans la publication.
+
Comparez le nombre de gènes obtenus avec ceux reportés dans la publication (Table 1) et commentez les différences observées.
-
Commentez les différences observées.
+
Comment faire pour comparer les annotations de ''prokka'' avec celles des fichiers GenBank?
-
Pensez-vous que prokka soit la meilleure méthode d'annotation?  
+
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 284: 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 329: Line 369:
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
evince work/Prochlorococcus/images/genoplot_blastn_links.pdf
evince work/Prochlorococcus/images/genoplot_blastn_links.pdf
-
</pre>
 
-
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
Question 1.3:
 
-
Commentez le résultat obtenu.
 
-
Que pensez-vous de la conservation des séquences des génomes?
 
</pre>
</pre>
====ACT====
====ACT====
-
Il est également possible d'utiliser le logiciel act ([ftp://ftp.sanger.ac.uk/pub/resources/software/act/act.pdf documentation]).
+
Il est également possible d'utiliser le logiciel ''act'' ([ftp://ftp.sanger.ac.uk/pub/resources/software/act/act.pdf documentation]).
Copier les fichiers sur votre porte de travail en P0 et lancer :
Copier les fichiers sur votre porte de travail en P0 et lancer :
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
act prokka/Aaab/Aaab.gbk BlastN/Aaab_vs_Aaag.tab prokka/Aaag/Aaag.gbk
+
act work/Prochlorococcus/prokka/Aaab/Aaab.gbk work/Prochlorococcus/BlastN/Aaab_vs_Aaag.tab work/Prochlorococcus/prokka/Aaag/Aaag.gbk
</pre>
</pre>
Vous pouvez aussi utiliser les fichiers en format gff.
Vous pouvez aussi utiliser les fichiers en format gff.
 +
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
act work/Prochlorococcus/prokka/Aaab/Aaab.gff work/Prochlorococcus/BlastN/Aaab_vs_Aaag.tab work/Prochlorococcus/prokka/Aaag/Aaag.gff work/Prochlorococcus/BlastN/Aaag_vs_Aaaj.tab work/Prochlorococcus/prokka/Aaaj/Aaaj.gff work/Prochlorococcus/BlastN/Aaaj_vs_Aaaf.tab work/Prochlorococcus/prokka/Aaaf/Aaaf.gff work/Prochlorococcus/BlastN/Aaaf_vs_Aaak.tab work/Prochlorococcus/prokka/Aaak/Aaak.gff
 +
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.3:
 +
Commentez les résultats obtenus avec genoplotR.
 +
Que pensez-vous de la conservation des séquences des génomes?
 +
</pre>
 +
-->
==Groupes de gènes orthologues==
==Groupes de gènes orthologues==
Line 350: Line 394:
Quelle méthode ont utilisé Kettler et al., 2007 pour identifier les groupes de gènes orthologues?
Quelle méthode ont utilisé Kettler et al., 2007 pour identifier les groupes de gènes orthologues?
</pre>
</pre>
 +
=== eggNOG ===
 +
*[https://github.com/eggnogdb/eggnog-mapper eggnog-mapper]
 +
See software documentation for more informations.
 +
Location: /usr/local/bioinfo/src/eggNOG-mapper
 +
 +
*[https://github.com/eggnogdb/eggnog-mapper/wiki/eggNOG-mapper-v2.1.5-to-v2.1.8#Basic_usage Basic_usage]
 +
 +
ll /usr/local/bioinfo/src/eggNOG-mapper/example_on_cluster/test_eggnog-mapper-2.0.1.sh
 +
 +
emapper.py -i ~/work/Prochlorococcus/peptide/Aaaa.faa --cpu 4 --output Aaaa_NOG -m diamond
 +
 +
cp /usr/local/bioinfo/src/eggNOG-mapper/example_on_cluster/test_eggnog-mapper-2.0.1.sh eggnog-mapper-2.0.1.sh
 +
 +
module load devel/python/Python-2.7.18; module load bioinfo/eggNOG-mapper/2.0.1; emapper.py -i p53.fa --cpu 4 --output p53_maNOG -m diamond
 +
~
 +
 +
-i FILE                input FASTA file containing query sequences (proteins by default)
 +
--data_dir DIR          Specify a path to the eggNOG-mapper databases. By default, data/ folder or the one specified by the EGGNOG_DATA_DIR environment variable.
 +
-m MODE                Search options, Default is -m diamond
 +
--target_orthologs      one2one|many2one|one2many|many2many|all defines what type of orthologs (in relation to the seed ortholog) should be used for functional transfer. Default: all
 +
--report_orthologs      as a first step in functional annotation, eggNOG-mapper identifies the orthologs of each query, using seed orthologs from the search stage as an anchoring or starting point. A list of these orthologs is not reported by default.
 +
--output,-o FILE_PREFIX base name for output files
 +
--output_dir DIR        where output files should be written. default is current working directory.
 +
--decorate_gff no|yes|FILE  Option to create/decorate a GFF file with emapper hits and/or annotations. Default is no.
 +
Output files
 +
Search hits (prefix.emapper.hits)A file with the results from the search phase, from HMMER, Diamond or MMseqs2.
 +
Seed orthologs (prefix.emapper.seed_orthologs) A file with the results from parsing the hits. Each row links a query with a seed ortholog.
 +
Annotations (prefix.emapper.annotations) A file with the results from the annotation phase.
 +
 +
<syntaxhighlight lang="bash">
 +
if [[ -e eggnog-mapper.sh]]; then
 +
  rm eggnog-mapper.sh
 +
fi
 +
 +
for file in ~/work/Zhang/PEP/Pr*.faa;
 +
do
 +
  prefix=$(basename $file .faa)
 +
  output="${prefix}.emapper.annotations"
 +
  if [[ -f "$output" ]]; then
 +
    echo "skip $output"
 +
  else
 +
    echo "module load devel/python/Python-2.7.18; module load bioinfo/eggNOG-mapper/2.0.1; emapper.py -i $file --cpu 4 --output $prefix -m diamond" 1>> eggnog-mapper.sh
 +
  fi
 +
done
 +
 +
cat eggnog-mapper.sh
 +
</syntaxhighlight>
 +
 +
<source lang='bash'>
 +
sarray -J eggNOG -o %j.out -e %j.err -t 04:00:00 --cpus-per-task=4 eggnog-mapper.sh
 +
squeue -l -u $USER
 +
</source>
 +
 +
les résultats sont dans : /home/formation/work/Prochlorococcus/eggNOG
 +
 +
=== OrthoFinder ===
 +
'''OrthoFinder''' est une plateforme rapide, précise et complète pour la génomique comparative. Il trouve des '''orthogroupes''' et des orthologues, déduit des arbres de gènes enracinés pour tous les orthogroupes et identifie tous les événements de duplication de gènes dans ces arbres.
 +
 +
Il déduit également un arbre des espèces enraciné pour l'espèce analysée et fait correspondre les événements de duplication de gènes des arbres génétiques aux branches de l'arbre des espèces.
 +
 +
OrthoFinder fournit également des statistiques complètes pour les analyses génomiques comparatives.
 +
 +
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_OrthoFinder OrthoFinder]]!
 +
===Préliminaires===
===Préliminaires===
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 355: Line 463:
Selon vous qu'est-ce qui guide le choix du type de séquences à utiliser dans les comparaisons (peptides ou nucléotidiques)?
Selon vous qu'est-ce qui guide le choix du type de séquences à utiliser dans les comparaisons (peptides ou nucléotidiques)?
</pre>
</pre>
 +
[http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_Blast Blast All-vs-All]
 +
<!--
====Blast All-All====
====Blast All-All====
Nous allons utiliser [http://bioinfo.genotoul.fr/index.php/how-to-use/?software=How_to_use_SLURM_NCBI_Blast%2B NCBI_Blast+].
Nous allons utiliser [http://bioinfo.genotoul.fr/index.php/how-to-use/?software=How_to_use_SLURM_NCBI_Blast%2B NCBI_Blast+].
Line 361: 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 367: 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.
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
-
for i in *.faa;  
+
MSK
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/Prochlorococcus/peptide/*.faa;  
do       
do       
-
srun -n1 -l makeblastdb -in $i  -dbtype prot;  
+
  echo "module load bioinfo/ncbi-blast-2.7.1+; makeblastdb -in $i  -dbtype prot;"
-
done
+
done > makeblastdb.sh
-
</pre>
+
-
=====Intra genomes=====
+
cat makeblastdb.sh
 +
</syntaxhighlight>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 makeblastdb.sh
 +
squeue -l -u <user>
 +
</pre>
 +
=====Intra genomes=====
Nous vous proposons un script perl pour réaliser les ''blastp'' de l'ensemble des génomes avec '''sbatch''':
Nous vous proposons un script perl pour réaliser les ''blastp'' de l'ensemble des génomes avec '''sbatch''':
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
mkdir -p ~/work/Prochlorococcus/BlastP
mkdir -p ~/work/Prochlorococcus/BlastP
-
cd ~/work/Prochlorococcus
+
 
~/work/scripts/blastp_intra.pl
~/work/scripts/blastp_intra.pl
Line 394: Line 510:
<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.6:
Question 1.6:
-
Explicitez les paramètres de blast utilisés.
+
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>
-
=====Inter 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).
 
 +
=====Paire de genomes=====
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
mkdir -p ~/work/Prochlorococcus/BlastP
 +
</pre>
 +
Exemple :
 +
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
module load bioinfo/ncbi-blast-2.7.1+
 +
srun -n1 -l blastp -query ~/work/Prochlorococcus/peptide/Aaaa.faa -db ~/work/Prochlorococcus/peptide/Aaaa.faa -seg yes -dbsize 100000000 -evalue 1e-5 -outfmt 6 -num_threads 1 -out ~/work/Prochlorococcus/BlastP/Aaaa_Aaaa.tab
 +
</pre>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 1.6:
 +
Explicitez et justifiez les paramètres de blast utilisés dans votre script.
 +
</pre>
 +
 +
=====Boucle sur les genomes=====
 +
Utilisez ''sarray'' pour réaliser les ''blast'' en toutes les paires de génomes.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
evalue=1e-5
 +
dbsize=100000000
 +
for i in ~/work/Prochlorococcus/peptide/*.faa;
 +
do
 +
  ip=$(basename $i .faa)   
 +
  for j in ~/work/Prochlorococcus/peptide/*.faa; 
 +
  do
 +
    jp=$(basename $j .faa)   
 +
    outfile="~/work/Prochlorococcus/BlastP/"$ip"_"$jp".tab"
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastp -query $i -db $j -seg yes -dbsize $dbsize -evalue $evalue -outfmt 6 -num_threads 1 -out $outfile;"
 +
  done
 +
done > blast_allall.sh
 +
 +
cat blast_allall.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
 +
squeue -l -u <user>
 +
</pre>
 +
 +
Pour les blastp inter génomes, nous allons utiliser un script similaire au précédent, mais avec une double boucle (sur -query et -db).
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
cd ~/work/Prochlorococcus
cd ~/work/Prochlorococcus
Line 408: Line 563:
ls BlastP | wc -l
ls BlastP | wc -l
</pre>
</pre>
 +
vérifiez que les fichiers de sorties de blast sont présents et non vides.
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 1.7:
Question 1.7:
Combien de fichiers attendez-vous?
Combien de fichiers attendez-vous?
</pre>
</pre>
 +
-->
===PorthoMCL===
===PorthoMCL===
 +
MSK
 +
<!--
[https://github.com/etabari/PorthoMCL PorthoMCL]
[https://github.com/etabari/PorthoMCL PorthoMCL]
Line 422: Line 581:
Il s'inspire d'[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC403725/ orthoMCL]
Il s'inspire d'[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC403725/ orthoMCL]
 +
Suivre [http://silico.biotoul.fr/p/Atelier_Phylog%C3%A9nomique_PorthoMCL PorthoMCL]
 +
-->
 +
<!--
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -o-pre-wrap">  
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -o-pre-wrap">  
Question 1.8:
Question 1.8:
Line 428: Line 590:
</pre>
</pre>
-
Disponible: /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master.
+
Le logiciel est disponible ici: /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master. Il est basé sur l'enchainement de programmes ''python''. Ils peuvent être lancés séparément ou automatiquement à l'aide d'un script shell.  
-
Le logiciel est basé sur l'enchainement de programmes python. Ils peuvent être lancés séparément ou automatiquement à l'aide d'un script shell.
+
MSK
-
 
+
-
Version automatique (que nous n'utiliserons pas car nous avons déjà réalisé les blastp):
+
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">  
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">  
mkdir -p ~/work/Prochlorococcus/PorthoMCL_auto12/0.input_faa
mkdir -p ~/work/Prochlorococcus/PorthoMCL_auto12/0.input_faa
Line 440: 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 451: Line 612:
Que proposeriez-vous pour l'améliorer?
Que proposeriez-vous pour l'améliorer?
</pre>
</pre>
-
<!--
 
-
====old stuff====
 
====Step 4: Parse BLAST results====
====Step 4: Parse BLAST results====
Comme les différents blastp ont déjà été réalisés, nous passons directement à l'étape 4.
Comme les différents blastp ont déjà été réalisés, nous passons directement à l'étape 4.
Mais nous devons:
Mais nous devons:
-
=====Créer un fichier avec la liste des taxon=====
 
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
mkdir -p ~/work/Prochlorococcus/PorthoMCL
 
-
 
-
ls -1 ~/work/Prochlorococcus/peptide/*pep | sed -r 's/.+([A-Z][a-z]{3}).pep/\1/' > ~/work/Prochlorococcus/PorthoMCL/taxon_list
 
-
</pre>
 
=====Concaténer les fichiers de résultats blastp par souche:=====
=====Concaténer les fichiers de résultats blastp par souche:=====
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
mkdir -p ~/work/Prochlorococcus/PorthoMCL/3.blastres
mkdir -p ~/work/Prochlorococcus/PorthoMCL/3.blastres
</pre>
</pre>
-
Test pour une souche:
+
 
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
MSK
-
/home/formation/public_html/M2_Phylogenomique/scripts/cat_blast_resutls.pl --query Aaaa --taxonlist ~/work/Prochlorococcus/PorthoMCL/taxon_list --blast_dir ~/work/Prochlorococcus/BlastP --out_dir ~/work/Prochlorococcus/PorthoMCL/3.blastres
+
<syntaxhighlight lang="bash">
-
</pre>
+
for i in ~/work/Prochlorococcus/peptide/*.faa;
-
Boucle sur les souches
+
do
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
  ip=$(basename $i .faa)   
-
for file in ~/work/Prochlorococcus/peptide/*.pep
+
  outfile=~/work/Prochlorococcus/PorthoMCL/3.blastres/$ip.tab; 
 +
  if [ -f $outfile ]; then
 +
    echo "rm $outfile"
 +
    rm $outfile
 +
  fi
 +
  for j in ~/work/Prochlorococcus/peptide/*.faa;
 +
  do
 +
    jp=$(basename $j .faa)   
 +
    infile=~/work/Prochlorococcus/BlastP/$ip"_"$jp".tab"
 +
    if [ -f $infile ]; then
 +
      echo "$infile"
 +
      cat $infile >> $outfile
 +
    else
 +
      echo "Error $infile not found"
 +
    fi
 +
  done
 +
done
 +
</syntaxhighlight>
 +
 
 +
=====Modifier le nom des protéines dans les fichiers blast et fasta=====
 +
Pour que les programmes suivants identifient le nom de souche et le nom de gène, il est nécessaire de rajouter un séparateur ('|') dans les noms des protéines: Aaaa.g_00001 devient Aaaa|.g_00001. Pour cela, nous pouvons utiliser la commande sed.
 +
 
 +
Dans les fichiers ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab
 +
 
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for file in ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab
do
do
-
    prefix=$(basename "$file" .pep)
+
  prefix=$(basename "$file")
-
    /home/formation/public_html/M2_Phylogenomique/scripts/cat_blast_resutls.pl --query $prefix --taxonlist ~/work/Prochlorococcus/PorthoMCL/taxon_list --blast_dir ~/work/Prochlorococcus/BlastP --out_dir ~/work/Prochlorococcus/PorthoMCL/3.blastres
+
  sed -i -r 's/([A-Z][a-z]{3})(\w*\.)/\1|\2/g' $file
done
done
 +
</syntaxhighlight>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">mkdir -p ~/work/Prochlorococcus/PorthoMCL/compliantFasta
</pre>
</pre>
-
=====Modifier le nom des souches=====
 
-
======fichiers fasta======
 
-
Il est nécessaire d'ajouter le caractère '|' après le nom de souche.
 
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
mkdir -p ~/work/Prochlorococcus/PorthoMCL/compliantFasta
 
-
for file in ~/work/Prochlorococcus/peptide/*.pep
+
et dans les fichiers  ~/work/Prochlorococcus/peptide/*.faa
 +
 
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for file in ~/work/Prochlorococcus/peptide/*.faa
do
do
     prefix=$(basename $file .pep)
     prefix=$(basename $file .pep)
     sed -r 's/([A-Z][a-z]{3})/\1|/g' $file > ~/work/Prochlorococcus/PorthoMCL/compliantFasta/$prefix.fasta
     sed -r 's/([A-Z][a-z]{3})/\1|/g' $file > ~/work/Prochlorococcus/PorthoMCL/compliantFasta/$prefix.fasta
done
done
-
</pre>
+
</syntaxhighlight>
-
Vérifier que le changement des noms a été effectué:
+
-
grep '>' ~/work/Prochlorococcus/PorthoMCL/compliantFasta/Aaaa.fasta | head
+
-
 
+
-
======fichiers blasp======
+
-
La même opération doit être réalisée avec les fichiers résultats de blastp.
+
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
for file in ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab
+
-
do
+
-
    prefix=$(basename "$file")
+
-
    sed -i -r 's/([A-Z][a-z]{3})A/\1|A/g' $file
+
-
done
+
-
</pre>
+
-
Vérifier les changements de noms:
+
-
head ~/work/Prochlorococcus/PorthoMCL/3.blastres/Aaaa.tab
+
=====Changer le format des fichier blastp=====
=====Changer le format des fichier blastp=====
Line 510: 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 520: 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 545: 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 563: 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 610: Line 784:
</pre>
</pre>
Boucle sur les souches:
Boucle sur les souches:
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
 +
MSK
 +
<syntaxhighlight lang="bash">
for num in {1..12}
for num in {1..12}
do
do
-
    /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsInParalogs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -q ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp -o ~/work/Prochlorococcus/PorthoMCL/7.ogenes -p ~/work/Prochlorococcus/PorthoMCL/7.paralogs -x $num
+
  /home/formation/public_html/M2_Phylogenomique/PorthoMCL-master/porthomclPairsInParalogs.py -t ~/work/Prochlorococcus/PorthoMCL/taxon_list -q ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp -o ~/work/Prochlorococcus/PorthoMCL/7.ogenes -p ~/work/Prochlorococcus/PorthoMCL/7.paralogs -x $num
done
done
-
</pre>
+
</syntaxhighlight>
-
-->
+
-
===Running MCL===
+
====Step 8: MCL====
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 1.10:
Question 1.10:
Line 637: 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:
Question 1.11:
Line 663: Line 884:
</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:
Question 1.12:
Line 675: Line 897:
</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 696: 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:
Question 1.13:
Line 702: Line 942:
Comment vérifier ces hypothèses?
Comment vérifier ces hypothèses?
</pre>
</pre>
-
 
+
=====Tester l'effet de l'IF sur la taille des OG=====
-
=====Tester l'effet de l'IF surla taille des OG=====
+
Lancer MCL avec différents IF (respecter la syntaxe des noms!)
Lancer MCL avec différents IF (respecter la syntaxe des noms!)
Line 719: Line 958:
orange : OG avec au moins un paralogue(s)
orange : OG avec au moins un paralogue(s)
</pre>
</pre>
-
 
=====Tester l'effet de l'IF sur la paralogie=====
=====Tester l'effet de l'IF sur la paralogie=====
-
<pre style="color: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 773: 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 799: 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 834: 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 843: 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 854: 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,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>
Line 942: Line 1,188:
<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/new_genes_plot.R
Rscript /home/formation/public_html/M2_Phylogenomique/scripts/new_genes_plot.R
-
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">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 952: Line 1,198:
Que pouvez-vous en conclure?
Que pouvez-vous en conclure?
</pre>
</pre>
-
<!--
 
====run_panoct.pl====
====run_panoct.pl====
<pre>
<pre>
Line 998: 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,016: 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,029: Line 1,316:
</pre>
</pre>
 +
Exemple de script "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/RunSLURM_ANI.csh RunSLURM_ANI.csh]" (les chemins sont à changer):
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sbatch RunSLURM_ANI.csh
 +
squeue -l -u <user>
 +
</pre>
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 2.1:
Question 2.1:
Line 1,037: Line 1,329:
:'''Construire un arbre de Neighbor-Joining basé sur le ANI (ANIm_percentage_identity et ANIm_alignment_coverage) avec le logiciel de votre choix'''
:'''Construire un arbre de Neighbor-Joining basé sur le ANI (ANIm_percentage_identity et ANIm_alignment_coverage) avec le logiciel de votre choix'''
-
Vous pourrez par exemple utiliser la fonction ''nj'' du package R ''ape''. Notez que la commande ''nj'' prend en entrée une matrice de distance. La fonction ''heatmap'' peut être utile pour visualiser les relations entre les souches.  
+
Vous pourrez par exemple utiliser la fonction ''nj'' du package R ''ape''. Notez que la commande ''nj'' prend en entrée une matrice de distance. La fonction ''heatmap'' ([https://www.r-graph-gallery.com/index.html r-graph-gallery]) peut être utile pour visualiser les relations entre les souches.  
-
<!--
+
 
 +
<syntaxhighlight lang="python">
id_file <- "work/Alignement_genomes/genomes_ANIm_output/ANIm_percentage_identity.tab"
id_file <- "work/Alignement_genomes/genomes_ANIm_output/ANIm_percentage_identity.tab"
id_data <- read.table(file=id_file, header=T, row.names=1)
id_data <- read.table(file=id_file, header=T, row.names=1)
Line 1,047: Line 1,340:
heatmap(as.matrix(co_data), scale="none", symm=T, main="ANIm_alignment_coverage")
heatmap(as.matrix(co_data), scale="none", symm=T, main="ANIm_alignment_coverage")
-
id_nj <- nj(as.matrix(id_data))
+
id_nj <- nj(as.matrix(1-id_data))
-
plot(id_nj)
+
plot(id_nj, main="ANIm_percentage_identity")
co_nj <- nj(as.matrix(1-co_data))
co_nj <- nj(as.matrix(1-co_data))
-
plot(co_nj)
+
plot(co_nj, main="ANIm_alignment_coverage")
-
-->
+
</syntaxhighlight>
-
<!--
 
On pourra par exemple utiliser le site [http://www.phylogeny.fr/one_task.cgi?task_type=bionj phylogeny.fr] dans lequel on importera le fichier genomes_ANIm_output/ANIm_percentage_identity.tab (modifié en enlevant la 1ère ligne et en la remplaçant par le nombre de séquences 12).
On pourra par exemple utiliser le site [http://www.phylogeny.fr/one_task.cgi?task_type=bionj phylogeny.fr] dans lequel on importera le fichier genomes_ANIm_output/ANIm_percentage_identity.tab (modifié en enlevant la 1ère ligne et en la remplaçant par le nombre de séquences 12).
-
-->
+
 
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 2.2:
Question 2.2:
Line 1,070: Line 1,362:
=====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,076: 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,085: 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,096: 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:
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,108: 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
-
:'''Concaténer les 6 génomes sélectionnés à la question précédente dans un fichier multifasta'''
+
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
 +
 
 +
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,135: 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">
Question 2.5:
Question 2.5:
-
Combien y’a-t-il de LCB dans l’alignement ? Quel est leur poids minimal ? Y’a–t-il des réarrangements dans l’alignement et si oui lesquels ? Décrire la structure de l’alignement. Que se passe-t-il si on fait varier le poids des LCB ?
+
Combien y’a-t-il de LCB dans l’alignement ? Quel est leur poids minimal ? Y’a–t-il des réarrangements globaux dans l’alignement et si oui lesquels ? Décrire la structure de l’alignement. Que se passe-t-il si on fait varier le poids des LCB ?
 +
Qu'avez-vous appris de l'analyse du contexte génomique des gènes.
</pre>
</pre>
-
=====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>
</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">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
cat ~/work/Prochlorococcus/prokka/*/*gbk >> 12GC_Prochlorococcus.gbk
+
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
-
Exemple de script "RunSLURM_PMauve_12GProchlo.csh" (les chemins sont à changer):
+
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
 +
 
 +
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,176: 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,194: 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,203: 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]
Line 1,209: Line 1,595:
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 2.6:
Question 2.6:
-
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.
+
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,225: 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!
Mise à jour des scripts!
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
cp /home/formation/public_html/M2_Phylogenomique/scripts/* ~/work/scripts
cp /home/formation/public_html/M2_Phylogenomique/scripts/* ~/work/scripts
</pre>
</pre>
Line 1,251: 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,259: 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,268: 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,276: 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,310: Line 1,744:
</pre>
</pre>
====Compléter les paires de comparaisons====
====Compléter les paires de comparaisons====
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
evalue=1e-5
 +
dbsize=100000000
 +
for i in ~/work/Synechococcus/peptide/*.faa;
 +
do
 +
  ip=$(basename $i .faa)   
 +
  for j in ~/work/Prochlorococcus/peptide/*.faa; 
 +
  do
 +
    jp=$(basename $j .faa)   
 +
    outfile="~/work/ProchlorococcusSynechococcus/BlastP/"$ip"_"$jp".tab"
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastp -query $i -db $j -seg yes -dbsize $dbsize -evalue $evalue -outfmt 6 -num_threads 1 -out $outfile;"
 +
 +
    outfile="~/work/ProchlorococcusSynechococcus/BlastP/"$jp"_"$ip".tab"
 +
    echo "module load bioinfo/ncbi-blast-2.7.1+; blastp -query $j -db $i -seg yes -dbsize $dbsize -evalue $evalue -outfmt 6 -num_threads 1 -out $outfile;"
 +
done
 +
done > blast_allall.sh
 +
 +
cat blast_allall.sh
 +
</syntaxhighlight>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
cd ~/work/ProchlorococcusSynechococcus
+
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
-
~/work/scripts/blastp_inter.pl
+
-
 
+
squeue -l -u <user>
squeue -l -u <user>
-
 
-
ls BlastP | wc -l
 
</pre>
</pre>
 +
Vérifiez que vous avez bien le nombre de fichiers attendus!
-
===Groupes de gènes orthologues===
+
===Groupes de gènes orthologues avec PanOCT===
====Préparation des fichiers combined====
====Préparation des fichiers combined====
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 1,328: 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,338: 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,346: 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,353: 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,370: Line 1,822:
====run panOCT Prochlorococcus vs Synechococcus====
====run panOCT Prochlorococcus vs Synechococcus====
 +
Exemple de script "[http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/scripts/panoct_PS.csh panoct_PS.csh]" (les chemins sont à changer).
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
cd ~/work/ProchlorococcusSynechococcus/panoct
cd ~/work/ProchlorococcusSynechococcus/panoct
mkdir ~/work/ProchlorococcusSynechococcus/images
mkdir ~/work/ProchlorococcusSynechococcus/images
 +
</pre>
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sbatch panoct_PS.csh
 +
squeue -l -u <user>
 +
</pre>
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/panoct.pl -b results -t combined.blast -f genomes.list -g combined.att -P combined.fasta -S yes -L 1 -M Y -H Y -V Y -N Y -F 1.33 -G y -c 0,50,95,100 -T
/home/formation/public_html/M2_Phylogenomique/PanGenomePipeline/PanGenomePipeline-master/pangenome/bin/panoct.pl -b results -t combined.blast -f genomes.list -g combined.att -P combined.fasta -S yes -L 1 -M Y -H Y -V Y -N Y -F 1.33 -G y -c 0,50,95,100 -T
</pre>
</pre>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 3.1:
Question 3.1:
Résumez dans une figure les différentes étapes réalisées jusqu'à l’obtention des groupes de gènes orthologues. N'oubliez pas la légende!   
Résumez dans une figure les différentes étapes réalisées jusqu'à l’obtention des groupes de gènes orthologues. N'oubliez pas la légende!   
</pre>
</pre>
-
Heatmap des groupes de gènes orthologues
+
Heatmap des groupes de gènes orthologues avec le fichier ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable_0_1.txt
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
 
-
srun --pty bash
+
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,397: Line 1,858:
dev.off()
dev.off()
cat(pdf_file, "\n")
cat(pdf_file, "\n")
-
</pre>
+
</syntaxhighlight>
 +
 
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 3.2:
Question 3.2:
Line 1,406: Line 1,868:
====Gènes espèces spécifique====
====Gènes espèces spécifique====
=====Gènes trouvés chez toutes les souches de ''Prochlorococcus'' mais dans aucune de ''Synechococcus'':=====
=====Gènes trouvés chez toutes les souches de ''Prochlorococcus'' mais dans aucune de ''Synechococcus'':=====
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
Vous allez utiliser un script ''awk'' pour réaliser ce filtrage.
 +
 
 +
*Editez le fichier matchtable.txt pour comprendre sa structure.
 +
*Que représente chaque ligne?
 +
*Comment sont organisées les colonnes?
 +
*Identifiez le motif signalant l'absence d'un gène dans un OG.
 +
*Pour chaque OG:
 +
**Compter le nombre de gènes présents chez les''Prochlorococcus''.
 +
**Compter le nombre de gènes absents chez les''Synechococcus''.
 +
**Editer la ligne si elle remplit les conditions
 +
 
 +
MSK
 +
<syntaxhighlight lang="awk">
awk 'BEGIN {
awk 'BEGIN {
     h=0;
     h=0;
-
          }
+
}
{
{
       mp=0
       mp=0
Line 1,419: 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,428: 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 >>  ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific_annotations.txt")}' < ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt
awk '{ system("grep "$3"  ~/work/Prochlorococcus/prokka/Aaaa/Aaaa.gff >>  ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific_annotations.txt")}' < ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt
</pre>
</pre>
 +
 +
=====Gènes trouvés chez toutes les souches de ''Synechococcus'' mais dans aucune de ''Prochlorococcus'':=====
 +
 +
MSK
 +
awk 'BEGIN {
 +
    h=0;
 +
}
 +
{
 +
      mp=0
 +
      for (i=2; i<=13; i++) {
 +
          if( $i !~ /-/ ) mp++
 +
      }
 +
      sp=0
 +
      for (i=14; i<=17; i++) {
 +
          if( $i !~ /-/ ) sp++
 +
      }
 +
      if ( mp==0 && sp ==4  ) {
 +
          h++;
 +
          printf("%d\t%d", h, $1);
 +
          for (i=2; i<=17; i++) {
 +
                  if( $i !~ /-/ ) printf("\t%s", $i);
 +
            }
 +
            printf("\n");
 +
      }
 +
}' < ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt<syntaxhighlight lang="awk">
 +
</syntaxhighlight>
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Question 3.3:
Question 3.3:
Analysez ces résultats et les confronter à ceux disponibles dans la littérature.  
Analysez ces résultats et les confronter à ceux disponibles dans la littérature.  
</pre>
</pre>
 +
Vous pouvez vous inspirer des articles de Kettler et al. (2007), Garczarek et al. 2007,  et  Partensky and Garczarek (2010).
 +
 +
====Comparaison des résultats de PanOCT avec et sans les génomes de ''Synechococcus''====
 +
Ces pairs sont à extraire des fichiers:
 +
*~/work/Prochlorococcus/panoct/results/matchtable.txt
 +
*~/work/ProchlorococcusSynechococcus/panoct/results/matchtable.txt
 +
 +
A laide d'un script ''awk'', pour les deux fichiers
 +
*pour chaque OG,
 +
**sélectionner les gènes de Prochlorococcus,
 +
**les assembler par paires et les imprimer.
 +
 +
MSK
 +
<syntaxhighlight lang="awk">
 +
awk '
 +
{
 +
col[""]=0;
 +
j=0;
 +
for (i=2; i<=13; i++) {
 +
  if( $i !~ /-/ ) {
 +
  j++;
 +
  col[j]=$i;
 +
  }
 +
}
 +
ncol=j;
 +
if ( ncol > 1 ) {
 +
  #printf("%d\n", $1);
 +
  for (k=1; k<=ncol; k++) {
 +
  for (m=k+1; m<=ncol; m++) {
 +
    printf("%s%s\n", col[k], col[m]);
 +
  }
 +
  }
 +
}
 +
delete col #printf("\n");
 +
}' ~/work/Prochlorococcus/panoct/results/matchtable.txt > ~/work/ProchlorococcusSynechococcus/Ppairs.txt
 +
 +
awk '
 +
{
 +
col[""]=0;
 +
j=0;
 +
for (i=2; i<=13; i++) {
 +
  if( $i !~ /-/ ) {
 +
  j++;
 +
  col[j]=$i;
 +
  }
 +
}
 +
ncol=j;
 +
if ( ncol > 1 ) {
 +
  #printf("%d\n", $1);
 +
  for (k=1; k<=ncol; k++) {
 +
  for (m=k+1; m<=ncol; m++) {
 +
    printf("%s%s\n", col[k], col[m]);
 +
  }
 +
  }
 +
}
 +
delete col
 +
#printf("\n");
 +
}' ~/work/ProchlorococcusSynechococcus//panoct/results/matchtable.txt > ~/work/ProchlorococcusSynechococcus/PSpairs.txt
 +
</syntaxhighlight>
 +
 +
La comparaison peut être réalisée graphiquement avec un digramme de Venn.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
library('gplots')
 +
 +
Ppairs <- read.table('work/ProchlorococcusSynechococcus/Ppairs.txt')
 +
PSpairs <- read.table('work/ProchlorococcusSynechococcus/PSpairs.txt')
 +
input <- list(P=Ppairs, PS=PSpairs)
 +
venn(input)
 +
 +
a<-venn(input, show.plot=FALSE)
 +
intersections <- attr(a,"intersections")
 +
intersections$P
 +
intersections$PS
 +
</syntaxhighlight>
 +
 +
====Comparaison des résultats de PanOCT avec PorthoMCL====
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
awk '
 +
{
 +
j=0;
 +
for (i=1; i<=NF; i++) {
 +
  j++;
 +
  col[j]=$i;
 +
}
 +
ncol=j;
 +
if ( ncol > 1 ) {
 +
  for (k=1; k<=ncol; k++) {
 +
  for (m=k+1; m<=ncol; m++) {
 +
    printf("%s%s\n", col[k], col[m]);
 +
  }
 +
  }
 +
}
 +
delete col
 +
}' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group > ~/work/Prochlorococcus/PorthoMCL/8.all.ort.pairs.txt
 +
sed -i -r 's/\|//g' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.pairs.txt
 +
</syntaxhighlight>
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
library('gplots')
 +
 +
PorthoMCL <- read.table('work/Prochlorococcus/PorthoMCL/8.all.ort.pairs.txt')
 +
panoct <- read.table('work/ProchlorococcusSynechococcus/Ppairs.txt')
 +
input <- list(PorthoMCL=PorthoMCL, panoct=panoct)
 +
venn(input)
 +
</syntaxhighlight>
 +
-->
-
=====Gènes trouvés chez toutes les souches de ''Synechococcus'' mais dans aucune de ''Prochlorococcus'':=====
 
-
A vous de jouer!
 
==Phylogénie basée sur les séquences des ARNr==
==Phylogénie basée sur les séquences des ARNr==
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 3.4:
+
Question 4.1:
-
Quel-est l’intérêt de réaliser des arbres avec les séquences de l'ARNr?
+
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>
</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.
Nous utilisons le logiciel ''rnammer'' pour annoter les ARNr (lsu, ssu, tsu) dans les génomes.
 +
 +
<pre style="color:green;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
search_module rnammer
 +
srun --pty bash
 +
module load bioinfo/rnammer-1.2
 +
rnammer -S bac -m ssu -f ~/work/Prochlorococcus/prokka/Aaaa/Aaaa_ssu.rrna < /home/formation/public_html/M2_Phylogenomique/data/Prochlorococcus/DNA/Aaaa.fas
 +
</pre>
 +
Vous allez procéder comme précédemment, avec un script donné à ''sarray'', pour réaliser le rnammer sur tous les fichiers et les trois types d'ARNr.
 +
 +
MSK
 +
<syntaxhighlight lang="bash">
 +
for s in Prochlorococcus Synechococcus
 +
do
 +
  for t in ssu lsu tsu
 +
  do 
 +
    for i in /home/formation/public_html/M2_Phylogenomique/data/$s/DNA/*.fas
 +
    do 
 +
      genome=$(basename "$i" .fas)
 +
      output="~/work/$s/prokka/"$genome"/"$genome"_"$t".rrna"
 +
      echo "module load bioinfo/rnammer-1.2; rnammer -S bac -m $t -f $output < $i;"
 +
    done
 +
  done
 +
done > rnammer.sh
 +
cat rnammer.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 rnammer.sh
 +
squeue -l -u <user>
 +
</pre>
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 1,452: Line 2,104:
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Prochlorococcus/prokka --model ssu
/home/formation/public_html/M2_Phylogenomique/scripts/rnammer_loop.pl --prokka_dir ~/work/Prochlorococcus/prokka --model ssu
</pre>
</pre>
 +
Vérifiez que les fichiers de sortie ne sont pas vide!
Vérifiez que les fichiers de sortie ne sont pas vide!
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
ls -l ~/work/*/prokka/Aaa*/Aaa*ssu*.rrna
+
ls -l ~/work/*/prokka/Aaa*/Aaa*su*.rrna
-
</pre>
+
-
Changer le motif pour obtenir les deux autres ARNr:
+
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
ls -l ~/work/*/prokka/Aaa*/Aaa*lsu*.rrna
+
-
ls -l ~/work/*/prokka/Aaa*/Aaa*tsu*.rrna
+
</pre>
</pre>
Concaténer les fichiers:  
Concaténer les fichiers:  
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
mkdir ~/work/ProchlorococcusSynechococcus/rRNA
mkdir ~/work/ProchlorococcusSynechococcus/rRNA
-
cat ~/work/*/prokka/Aaa*/Aaa*lsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/lsu.fas
+
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*lsu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*lsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/lsu.fas
-
cat ~/work/*/prokka/Aaa*/Aaa*ssu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/ssu.fas
+
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*ssu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*ssu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/ssu.fas
-
cat ~/work/*/prokka/Aaa*/Aaa*tsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/tsu.fas
+
cat ~/work/Prochlorococcus/prokka/Aaa*/Aaa*tsu.rrna ~/work/Synechococcus/prokka/Aaa*/Aaa*tsu.rrna > ~/work/ProchlorococcusSynechococcus/rRNA/tsu.fas
</pre>
</pre>
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 3.5:
+
Question 4.2:
Combien de gènes codant pour les gènes d'ARNr sont prédits dans les différentes souches?
Combien de gènes codant pour les gènes d'ARNr sont prédits dans les différentes souches?
Commentez.
Commentez.
</pre>
</pre>
 +
===Alignements des  ARNr===
===Alignements des  ARNr===
Mafft comporte deux options, Q-INS-i et X-INS-i, dans lesquelles les informations de structure secondaire de l'ARN sont prises en compte. Ces méthodes sont adaptées à un alignement global de séquences d'ARNc très divergentes. Pour les ARN relativement conservés, tels que les ARNr SSU et LSU, l'avantage de ces méthodes est faible ([https://academic.oup.com/mbe/article/30/4/772/1073398 Katoh ''et al.,'' 2103]). Nous utilisons la version ''mafft'' pour des raisons de rapidités.
Mafft comporte deux options, Q-INS-i et X-INS-i, dans lesquelles les informations de structure secondaire de l'ARN sont prises en compte. Ces méthodes sont adaptées à un alignement global de séquences d'ARNc très divergentes. Pour les ARN relativement conservés, tels que les ARNr SSU et LSU, l'avantage de ces méthodes est faible ([https://academic.oup.com/mbe/article/30/4/772/1073398 Katoh ''et al.,'' 2103]). Nous utilisons la version ''mafft'' pour des raisons de rapidités.
Line 1,495: Line 2,144:
</pre>
</pre>
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 3.6:
+
Question 4.3:
Pensez-vous que les alignements auraient été de meilleure qualité avec mafft-qinsi et l'option --maxiterate 1000?
Pensez-vous que les alignements auraient été de meilleure qualité avec mafft-qinsi et l'option --maxiterate 1000?
</pre>
</pre>
-
==Arbre ARNr==
 
===Arbre avec seaview===
===Arbre avec seaview===
-
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 
-
Question 3.7:
 
Utilisez le logiciel seaview pour calculer les arbres avec les trois types ARNr.
Utilisez le logiciel seaview pour calculer les arbres avec les trois types ARNr.
 +
Expérimentez plusieurs méthodes avec différents paramètres.
Expérimentez plusieurs méthodes avec différents paramètres.
 +
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
Question 4.4:
Comparez les résultats obtenus.
Comparez les résultats obtenus.
-
 
+
</pre>
Éditez les fichiers pour ne retenir qu'une seule copie de chaque gènes par souche.
É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.
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.
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.
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>
</pre>
===Arbre SSU avec IQ-TREE===
===Arbre SSU avec IQ-TREE===
[http://www.iqtree.org/doc/ IQ-tree] doc.
[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 :
Pour seulement trouver le modèle le mieux adapté sans faire de reconstruction d'arbre, utilisez :
Line 1,532: Line 2,194:
[http://www.iqtree.org/doc/Substitution-Models#dna-models dna-models]
[http://www.iqtree.org/doc/Substitution-Models#dna-models dna-models]
-
====Évaluation des supports de branches avec approximation bootstrap ultra-rapide :====
+
====Évaluation des supports de branches avec approximation bootstrap ultra-rapide (UFBoot):====
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy  -pre ssuGTRFR2bb1000bnni -m GTR+F+R2 -bb 1000 -redo -bnni -nt AUTO"
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy  -pre ssuGTRFR2bb1000bnni -m GTR+F+R2 -bb 1000 -redo -bnni -nt AUTO"
</pre>
</pre>
 +
NOTE: les valeurs de support de l'UFBoot ont des interprétations différentes de celles du bootstrap non paramétrique. Suivez le lien [http://www.iqtree.org/doc/Frequently-Asked-Questions#how-do-i-interpret-ultrafast-bootstrap-ufboot-support-values UFBoot support values interpretation] pour plus d'information.
 +
====Évaluer les supports de branche avec des tests de branche simple :====
====Évaluer les supports de branche avec des tests de branche simple :====
-
IQ-TREE propose le test du rapport approximatif de vraisemblance de type SH (Guindon et al., 2010).  
+
IQ-TREE propose le test du rapport approximatif de vraisemblance de type SH ([https://academic.oup.com/sysbio/article/59/3/307/1702850 Guindon et al., 2010]).  
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy -pre ssuGTRFR2bbalrt -m GTR+F+R2 -bb 1000 -alrt 1000 -redo -nt AUTO"
iqtree -s ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy -pre ssuGTRFR2bbalrt -m GTR+F+R2 -bb 1000 -alrt 1000 -redo -nt AUTO"
</pre>
</pre>
 +
====Évaluation des supports de branche avec un bootstrap non paramétrique standard :====
====Évaluation des supports de branche avec un bootstrap non paramétrique standard :====
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 1,546: Line 2,211:
</pre>
</pre>
-
==Arbre espèces==
+
===Arbre SSU avec FastTree===
-
'''Support de cours :''' [http://genoweb.toulouse.inra.fr/~formation/M2_Phylogenomique/2018_supports/ supports]
+
[http://www.microbesonline.org/fasttree/ FastTree] doc.
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
module load bioinfo/FastTree-2.1.10
 +
fasttree -nt -gtr < ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified.phy > ~/work/ProchlorococcusSynechococcus/rRNA/ssu_renamed_simplified_fasttree.ph
 +
</pre>
 +
Comparez et commentez les résultats obtenus avec IQ-TREE et FastTree.
 +
-->
-
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.
+
==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===
===Extraction des séquences nucléotidiques des gènes orthologues===
-
Créer un fichier avec toutes les séquences nucléotidiques:
+
Créer un fichier avec toutes les séquences nucléotidiques (cds):
 +
 
 +
Si le répertoire n'existe pas déjà, le créer.
<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">
Line 1,570: Line 2,257:
</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 4.1:
+
Question 5.1:
A quoi correspond ce quorum. Pourquoi utiliser un seuil de 16?  
A quoi correspond ce quorum. Pourquoi utiliser un seuil de 16?  
-
Combien d'alignements avez-vous obtenu?
+
Combien de fichiers avez-vous obtenus?
Est-ce pertinent dans les situations où vous avez un grand nombre de souches?
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>
</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,581: 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,594: 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>
</pre>
 +
Comptez les nombre d'alignements obtenus.
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 4.2:
+
Question 5.2:
Quelle est la raison de passer par un alignement des peptides pour obtenir l'alignement en nucléotides?
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?  
Pour quelle raison allons nous travailler sur un sous ensemble d'alignements?  
Line 1,607: Line 2,300:
===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">
<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:
+
Question 5.3:
Quels sont les traitements réalisés par le logiciel trimal?  
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!
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?
Connaissez-vous d'autres logiciels réalisant un traitement comparable des alignements multiples?
</pre>
</pre>
 +
====Evaluation des alignements avec t_coffee====
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/ProchlorococcusSynechococcus/OG/alignment/ali_dna_OG_*.fas
 +
do
 +
  ip=$(basename $i .aln)   
 +
  outfile="~/work/ProchlorococcusSynechococcus/OG/alignment/"$ip".ali"
 +
  echo "module load  bioinfo/T-COFFEE_11.00.8cbe486; t_coffee -infile $i -output score_ascii, aln, score_html -outfile $outfile;"
 +
done > OG_t_coffee_TCS.sh
 +
</syntaxhighlight>
 +
 +
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 OG_t_coffee_TCS.sh
 +
squeue -l -u $USER
 +
</pre>
 +
 +
Sélection alignements avec un SCORE=1000.
 +
<syntaxhighlight lang="bash">
 +
for i in ~/work/ProchlorococcusSynechococcus/OG/alignment/*.ali;
 +
do
 +
ip=$(basename $i .aln)   
 +
grep -H 'SCORE=1000' $i
 +
done
 +
</syntaxhighlight>
 +
====Edition des alignements avec trimal====
====Edition des alignements avec trimal====
-
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]  
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
module load bioinfo/trimal-1.4.1
n=1
n=1
Line 1,631: Line 2,351:
</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 4.4:
+
Question 5.4:
Editez le fichier de résultats et analysez son contenu.
Editez le fichier de résultats et analysez son contenu.
</pre>
</pre>
Line 1,662: Line 2,382:
</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 4.5:
+
Question 5.5:
Vérifiez que vous avez extrait les informations attendues.
Vérifiez que vous avez extrait les informations attendues.
</pre>
</pre>
-
<!--
+
 
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:grey;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
awk 'BEGIN { min = max = "NaN" }
awk 'BEGIN { min = max = "NaN" }
Line 1,674: Line 2,394:
END { print min, max }' < ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.tab
END { print min, max }' < ~/work/ProchlorococcusSynechococcus/OG/alignment/statistics.tab
</pre>
</pre>
-
-->
 
-
 
=====Tracé de la distribution des deux paramètres=====
=====Tracé de la distribution des deux paramètres=====
Tracé de la distribution des deux paramètres pour définir des seuils permettant de retenir les meilleurs alignements
Tracé de la distribution des deux paramètres pour définir des seuils permettant de retenir les meilleurs alignements
<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,687: Line 2,406:
dev.off()
dev.off()
cat(pdf_file, "\n")
cat(pdf_file, "\n")
 +
quit()
</pre>
</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">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 4.6:
+
Question 5.6:
Éditez les alignements de plus mauvaises qualités.
Éditez les alignements de plus mauvaises qualités.
Commentez.
Commentez.
Line 1,702: Line 2,425:
</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 4.7:
+
Question 5.7:
Combien d'alignements avez-vous retenu?
Combien d'alignements avez-vous retenu?
</pre>
</pre>
 +
-->
-
===Super-alignement===
+
==Super-alignement (Jeudi)==
Comme dans l’article publié en 2018 de Yan et al., nous utiliserons 31 gènes du core genome tirés au hasard.
Comme dans l’article publié en 2018 de Yan et al., nous utiliserons 31 gènes du core genome tirés au hasard.
Line 1,712: Line 2,436:
<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 4.8:  
+
Question 5.8:  
-
Proposez une méthode pour obtenir l’alignement protéique de ces 31 gènes concaténés  
+
Proposez une méthode pour obtenir le super-alignement protéique de ces 31 gènes concaténés.
</pre>
</pre>
<!--
<!--
<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 :  
+
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 ?
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>
</pre>
-->
-->
-
=====Concaténation de 31 alignements=====
+
====Concaténation de 31 alignements====
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
<source lang='bash'>
-
~/work/scripts/concat_aligments.pl  --alignments ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70.lst --outfile ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31 -nb_ali 31
+
mkdir ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments
-
</pre>
+
 
 +
~/work/scripts/concat_aligments.pl  --alignments ~/work/ProchlorococcusSynechococcus/OG/good_alignments/SCORE1000.lst --outfile ~/work/ProchlorococcusSynechococcus/OG/31_good_alignments/alignments.fas  -nb_ali 31
 +
</source>
Liste des alignements retenus:
Liste des alignements retenus:
-
  ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31.lst
+
  ~/work/ProchlorococcusSynechococcus/OG/good_alignments/SCORE1000.lst
 +
Aller regarder le fichier de sortie. Est-il conforme à l'attendu ?
-
=====IQ-TREE=====
+
<!--
 +
/home/formation/work/scripts/concat_aligments.pl  --alignments /home/formation/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70.lst  --outfile ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31 -nb_ali 31
 +
-->
 +
 
 +
====IQ-TREE====
genologin softwares : [http://bioinfo.genotoul.fr/index.php/resources-2/softwares/?searchll=iq-tree iq-tree]  
genologin softwares : [http://bioinfo.genotoul.fr/index.php/resources-2/softwares/?searchll=iq-tree iq-tree]  
-
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
FAQ : http://www.iqtree.org/doc/Frequently-Asked-Questions
-
module load bioinfo/iqtree-1.6.7
+
-
iqtree -s ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31 -redo  -bb 1000 -alrt 1000 -nt AUTO
+
-
</pre>
+
-
<pre>
+
-
Input data: 16 sequences with 32355 nucleotide sites
+
-
Number of constant sites: 10622 (= 32.8295% of all sites)
+
-
Number of invariant (constant or ambiguous constant) sites: 10622 (= 32.8295% of all sites)
+
-
Number of parsimony informative sites: 20377
+
-
Number of distinct site patterns: 16346
+
-
ModelFinder
+
Documentation : http://www.iqtree.org/doc/
-
-----------
+
-
Best-fit model according to BIC: GTR+F+R4
+
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 ;-)
-
Total CPU time used: 2936.33161 seconds (0h:48m:56s)
+
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.
-
Total wall-clock time used: 459.9323409 seconds (0h:7m:39s)
+
<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>
 +
Akaike Information Criterion:           KOSI07+F+R7
 +
Corrected Akaike Information Criterion: KOSI07+F+R7
 +
Bayesian Information Criterion:        KOSI07+F+R6
 +
Best-fit model: KOSI07+F+R6 chosen according to BIC
</pre>
</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
-
=====Enraciner l'arbre=====
+
  Best-fit model according to BIC: LG+F+R4
-
  ~/work/ProchlorococcusSynechococcus/OG/alignment/alignment_0.4_70_31_nuc_GTR+F+R4_rooted.treefile
+
-
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 :
+
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/.
-
<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">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 4.9:  
+
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 ?
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>
<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 4.10:  
+
Question 5.11:
-
Comparez les deux arbres visuellement avec figtree par exemple (ou avec des outils en ligne tels que : phylo.io, PhyD3, iTOL...).
+
Comparez les deux arbres (*.treefile) 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 ».
+
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 ».
-
</pre>
+
Mettez l'arbre généré dans le rapport de TP.
-
 
+
-
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].
+
-
 
+
-
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
-
Question 4.11:
+
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 :
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
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.
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 à enraciner les arbres en utilisant l’outgroup Synechococcus.
+
N’oubliez pas de commenter les valeurs de support des nœuds. Pensez à enraciner les arbres en utilisant l’outgroup Synechococcus.
</pre>
</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===
===Super-arbres===
-
Nous allons utiliser les arbres individuels protéiques ainsi que celui reconstruits à partir de la petite sous-unité de l’rRNA.
+
Nous allons utiliser les arbres individuels protéiques ainsi que celui reconstruit à partir de la petite sous-unité de l’rRNA.
-
Sur genologin le script était celui-là :
+
Sur genologin le script ssuTree.sh était celui-là :
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
#!/bin/bash
-
#!/bin/bash
+
iqtree -s ./ssu_renamed_simplified.aln -nt 1 -AIC -bb 1000 -alrt 1000 -redo
-
iqtree -s ./ssu_renamed_simplified.aln -nt 1 -AIC -bb 1000 -alrt 1000 -redo
+
 
-
</pre>
+
Et on a tapé :
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-2.0.6
-
module load bioinfo/iqtree-1.6.7
+
sbatch --mem=20G ssuTree.sh
-
sbatch --mem=20G ssuTree.sh
+
-
</pre>
+
-
Voici l’arbre obtenu : /home/formation/work/ProchlorococcusSynechococcus/phyloG /ssu_renamed_simplified.aln.treefile
+
Voici l’arbre obtenu :
-
'''A vous :'''   
+
'''/home/formation/work/ProchlorococcusSynechococcus/phyloG/ssu_renamed_simplified.aln.treefile'''
-
Loguez-vous sur genologin (et pas genotoul).
+
 
 +
'''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.   
Lançons les arbres protéiques. Pour cela faire un seul script que vous appellerez ind_pep_trees.sh et qui écrira toutes les commandes en bouclant sur chaque fichier d’entrée. Le but étant d’obtenir une ligne par commande iqtree sur un fichier d’alignement protéique.   
-
Les fichiers d’input sont /home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/*_renamed.fas
+
Les fichiers d’input sont :
-
'''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.'''
+
'''/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 ?
Regarder le contenu de ind_pep_trees.sh. Est-il correct ?
 +
 +
Remarque, il n'est pas toujours utile de tester l'ensemble des modèles, vous pouvez faire une pré-sélection avec l'option -mset et/ou -madd. Exemple '''-mset WAG,JTT,LG'''.
Rajouter la première ligne obligatoire sur genologin avec vi par exemple :  
Rajouter la première ligne obligatoire sur genologin avec vi par exemple :  
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
#!/bin/bash  
-
#!/bin/bash  
+
-
</pre>
+
Pour le lancer en parallèle sur plusieurs nœuds du cluster :
Pour le lancer en parallèle sur plusieurs nœuds du cluster :
-
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
module load bioinfo/iqtree-1.6.7
+
module load bioinfo/iqtree-2.0.6
sarray ind_pep_trees.sh
sarray ind_pep_trees.sh
</pre>
</pre>
Pour monitorer votre job :
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">
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
squeue –u login
+
squeue -l -u <login>
</pre>
</pre>
Pour le killer si besoin :  
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
-
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 :
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">
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
tail *_renamed.fas.log
tail *_renamed.fas.log
</pre>
</pre>
Vous pouvez aussi regarder les modèles sélectionnés :
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">
+
<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:' *_renamed.fas.log
grep 'Best-fit model:' *_renamed.fas.log
</pre>
</pre>
-
Concaténer tous les arbres (les 31 arbres protéiques et l’arbre ARNr) avec la commande cat.
+
Concaténer tous les arbres (les 31 arbres protéiques et l’arbre ARNr obtenu hier) avec la commande cat.
Nommez le fichier alltrees.tree.
Nommez le fichier alltrees.tree.
Line 1,855: Line 2,589:
Pour aller sur un nœud :
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">
+
<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
</pre>
</pre>
Line 1,863: Line 2,597:
R
R
library(phytools)
library(phytools)
-
trees=read.tree("MonPath/alltrees.tree ")
+
trees=read.tree("./alltrees.tree")
supertrees<-mrp.supertree(trees,rearrangements="SPR", start="NJ")
supertrees<-mrp.supertree(trees,rearrangements="SPR", start="NJ")
</pre>
</pre>
Vous avez obtenu les super-arbres les plus parcimonieux. Sauvez-les en utilisant la fonction write.tree de R.
Vous avez obtenu les super-arbres les plus parcimonieux. Sauvez-les en utilisant la fonction write.tree de R.
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
write.tree(supertrees, file = MonPath/superTrees.tree")
+
write.tree(supertrees, file = "./superTrees.tree")
quit()
quit()
</pre>
</pre>
Line 1,878: Line 2,612:
Pour cela restez sur le nœud et tapez :
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">
+
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
module load bioinfo/iqtree-1.6.7
+
module load bioinfo/iqtree-2.0.6
iqtree -con -t alltrees.tree -nt 1
iqtree -con -t alltrees.tree -nt 1
</pre>
</pre>
<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 4.12:
+
Question 5.12:
D’après vous que signifie les valeurs aux nœuds sur cet arbre consensus ?
D’après vous que signifie les valeurs aux nœuds sur cet arbre consensus ?
</pre>
</pre>
Lancez aussi l’arbre consensus en réseau :  
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">
+
<pre style="color:blue;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
iqtree -net -t alltrees.tree -nt 1
</pre>
</pre>
Et visualisez-le avec splitstree en local.  
Et visualisez-le avec splitstree en local.  
 +
 +
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">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 4.13:
+
Question 5.13:
Commentez ce réseau par rapport aux autres arbres obtenus. Qu’en pensez-vous ?
Commentez ce réseau par rapport aux autres arbres obtenus. Qu’en pensez-vous ?
</pre>
</pre>
 +
 +
'''ASTRAL'''
 +
 +
* [https://github.com/smirarab/ASTRAL ASTRAL]
 +
* [http://bioinfo.genotoul.fr/index.php/how-to-use/?software=How_to_use_SLURM_ASTRAL How_to_use_SLURM_ASTRAL]
 +
Nous pouvons utiliser entré du logiciel le fichier des arbres gènes/protéines concaténés.
 +
 +
Un exemple de script de soumission:
 +
 +
/home/formation/work/ProchlorococcusSynechococcus/phyloG/proteine/Astral/astral.sh
===Comparaison des arbres===
===Comparaison des arbres===
-
Concaténez maintenant les deux arbres de super-matrice (celui sur les codons et celui sur les protéines) ainsi que les deux super-arbres (le consensus et le MRP).
+
Concaténez maintenant les deux arbres de super-matrice (celui sur les codons que vous avez lancé toute à l'heure et celui sur les protéines) ainsi que les deux super-arbres (le consensus et le MRP).
 +
 
 +
Si vous avez eu des difficultés à obtenir l'arbre à partir de l'alignement en codon il est disponible ici : /home/formation/work/ProchlorococcusSynechococcus/phyloG/alignment_0.4_70_31.fas*.
-
Lancer ensuite le calcul de la distance de Robinson and Foulds sur ce fichier avec iqtree.
+
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-1.6.7
+
Attention à faire le module load bioinfo/iqtree-2.0.6
Et à rajouter -nt 1 dans les options.
Et à rajouter -nt 1 dans les options.
 +
Restez sur le nœud ou faites un sbatch, mais ne lancez rien sur le nœud maître.
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 4.14:  
+
Question 5.14:  
Commentez les résultats. Quel est l’arbre le plus différent des autres ? Qu’est-ce qui pourrait l’expliquer ?
Commentez les résultats. Quel est l’arbre le plus différent des autres ? Qu’est-ce qui pourrait l’expliquer ?
</pre>
</pre>
 +
 +
==Analyse des liens phylogénétiques des gènes du OG5 de PortMCL==
 +
<!--
 +
É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">
 +
~/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
 +
 +
~/work/scripts/aa_to_dna_aln.pl -dna ~/work/ProchlorococcusSynechococcus/OG5/OG5_genes.faa --outdir ~/work/ProchlorococcusSynechococcus/OG5
 +
</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,928: 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,944: 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,995: Line 2,760:
add.scale.bar(length=0.1)
add.scale.bar(length=0.1)
dev.off()
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 2,008: 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 5.1:
+
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?
Existe-t-il un lien entre la taille du génome et son contenu en gènes?
Line 2,028: Line 2,821:
names(ln) <- rownames(data)
names(ln) <- rownames(data)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/length_GC_length.pdf", paper="a4r")
XX <- contMap(tr, gc, sig=2, outline=F, lwd=5, lims=c(0.3,0.6))
XX <- contMap(tr, gc, sig=2, outline=F, lwd=5, lims=c(0.3,0.6))
-
XX <- contMap(tr, ln, sig=2, outline=F, lwd=5, main ="Lengh")
+
XX <- contMap(tr, ln, sig=2, outline=F, lwd=5)
 +
dev.off()
</pre>
</pre>
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 5.2:
+
Question 6.2:
Commentez les figures obtenues.
Commentez les figures obtenues.
</pre>
</pre>
Line 2,046: 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 5.3:
+
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 2,067: Line 2,866:
pic.lns <- pic(lns, tr)
pic.lns <- pic(lns, tr)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/tree_contrasts.pdf", paper="a4r")
plot(tr)
plot(tr)
nodelabels(round(gc, 2), adj = c(0, -0.5), frame = "n")
nodelabels(round(gc, 2), adj = c(0, -0.5), frame = "n")
Line 2,072: Line 2,872:
tiplabels(round(gc, 2), adj = c(-1, -0.5), frame = "n")
tiplabels(round(gc, 2), adj = c(-1, -0.5), frame = "n")
tiplabels(round(lns,2), adj = c(-1, 1), frame = "n")
tiplabels(round(lns,2), adj = c(-1, 1), frame = "n")
 +
dev.off()
</pre>
</pre>
Lien entre les pairs de contrastes
Lien entre les pairs de contrastes
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">plot(pic.lns, pic.gc)
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">plot(pic.lns, pic.gc)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/tree_pairs_contrasts.pdf", paper="a4r")
plot(pic.lns, pic.gc, xlim=c(-0.15,0.15), ylim=c(-0.15,0.15))
plot(pic.lns, pic.gc, xlim=c(-0.15,0.15), ylim=c(-0.15,0.15))
abline(a = 0, b = 1, lty = 2) # x = y line
abline(a = 0, b = 1, lty = 2) # x = y line
Line 2,080: Line 2,882:
cor(pic.gc, pic.lns)
cor(pic.gc, pic.lns)
lm(pic.lns ~ pic.gc)
lm(pic.lns ~ pic.gc)
 +
dev.off()
</pre>
</pre>
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 5.4:
+
Question 6.4:
-
Existe-t-il un lien entre la taille du génome et son contenu en GC? Commentez.
+
Existe-t-il un lien entre la taille du génome et son contenu en GC (coefficients de la régression)? Commentez.
</pre>
</pre>
Remarque, faire la régression entre les PICs en passant par l'origine est justifiée si les caractères évoluent sous un modèle de mouvement brownien et s'il existe une relation linéaire entre eux.
Remarque, faire la régression entre les PICs en passant par l'origine est justifiée si les caractères évoluent sous un modèle de mouvement brownien et s'il existe une relation linéaire entre eux.
===Autocorrélation phylogénétique===
===Autocorrélation phylogénétique===
 +
masquée
 +
Comme les espèces ne sont pas indépendantes par leurs relations phylogénétiques,
Comme les espèces ne sont pas indépendantes par leurs relations phylogénétiques,
nous pouvons utiliser cette dépendance pour quantifier l'association entre les variables observées au niveau des espèce. Gittleman et Kot[109] propose une méthode basée sur
nous pouvons utiliser cette dépendance pour quantifier l'association entre les variables observées au niveau des espèce. Gittleman et Kot[109] propose une méthode basée sur
Line 2,102: Line 2,907:
*la P-valeur de l'hypothèse nulle.
*la P-valeur de l'hypothèse nulle.
-
La fonction ''gearymoran'' d'''ade4'' calcule le coefficient de Moran et teste sa signification à l'aide d'une procédure de randomisation. L'option ''nrepet'' spécifie le nombre de réplications de la randomisation (999 par défaut).  
+
La fonction ''gearymoran'' d'''ade4'' calcule le coefficient de Moran et test sa signification à l'aide d'une procédure de randomisation. L'option ''nrepet'' spécifie le nombre de réplications de la randomisation (999 par défaut).  
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
Line 2,109: 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 5.5:
+
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">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 5.6:
+
Question 6.6:
Rappelez d'ou proviennent les différents isolats analysés et expliquez comment ont été défini les écotypes.
Rappelez d'ou proviennent les différents isolats analysés et expliquez comment ont été défini les écotypes.
</pre>
</pre>
Line 2,126: Line 2,932:
names(dp) <- rownames(strains_info_d)
names(dp) <- rownames(strains_info_d)
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/Habitats_profondeur.pdf", paper="a4r")
XX <- contMap(tr_d, dp)
XX <- contMap(tr_d, dp)
 +
dev.off()
</pre>
</pre>
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:red;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
-
Question 5.7:
+
Question 6.7:
Existe-t-il un lien entre profondeur et l'évolution des souches (voir Biller et al., 2015)? Commentez.
Existe-t-il un lien entre profondeur et l'évolution des souches (voir Biller et al., 2015)? Commentez.
 +
</pre>
</pre>
Line 2,145: Line 2,954:
Reconstruction des états du caractère aux nœuds de l'arbre:
Reconstruction des états du caractère aux nœuds de l'arbre:
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/Ecotypes.pdf", paper="a4r")
eco_er <- ace(ecotypes, tr, type="discrete", CI=T, model="ER")
eco_er <- ace(ecotypes, tr, type="discrete", CI=T, model="ER")
plot(tr, label.offset=0.2, show.node.label=F, cex=1, tip.color=tipcol)
plot(tr, label.offset=0.2, show.node.label=F, cex=1, tip.color=tipcol)
Line 2,150: Line 2,960:
nodelabels(pie=eco_er$lik.anc,cex=0.5)
nodelabels(pie=eco_er$lik.anc,cex=0.5)
add.scale.bar(length=0.1)
add.scale.bar(length=0.1)
 +
dev.off()
</pre>
</pre>
Vous pouvez utiliser toutes l'information des ecotype et refaire l'inférence des états du caractère aux nœuds de l'arbre.
Vous pouvez utiliser toutes l'information des ecotype et refaire l'inférence des états du caractère aux nœuds de l'arbre.
Line 2,155: 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 5.8:
+
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 2,248: Line 3,070:
</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 5.9:
+
Question 6.9:
Quel sera l'usage de ce calcul?
Quel sera l'usage de ce calcul?
</pre>
</pre>
Line 2,272: Line 3,094:
Exemple
Exemple
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
<pre style="color:purple;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap">
 +
pdf(file="~/work/ProchlorococcusSynechococcus/images/plus_parcimonieuse.pdf", paper="a4r")
nb <- 3
nb <- 3
pattern <- names(motifs)[nb]
pattern <- names(motifs)[nb]
Line 2,279: 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,294: 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,312: 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,318: 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,332: 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,338: 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,358: 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,369: 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,395: Line 3,229:
       er <- ace(motifs[[pattern]]$sring, tr, type="discrete", model="ER")
       er <- ace(motifs[[pattern]]$sring, tr, type="discrete", model="ER")
       motifs[[pattern]]$er <- er
       motifs[[pattern]]$er <- er
-
       # ard <- ace(motifs[[pattern]]$sring, tr, type="discrete", model="ARD")
+
       ard <- ace(motifs[[pattern]]$sring, tr, type="discrete", model="ARD")
-
       # amotifs[[pattern]]$er <- ard
+
       motifs[[pattern]]$er <- ard
-
       # aml_test <- 1-pchisq(2*abs(er$loglik - ard$loglik), 1)
+
       ml_test <- 1-pchisq(2*abs(er$loglik - ard$loglik), 1)
-
       # aif ( ml_test < 0.01 ) {
+
       if ( ml_test < 0.01 ) {
-
      # a  cat(nb, pattern, er$loglik, ard$loglik, ml_test, "\n")
+
        cat(nb, pattern, er$loglik, ard$loglik, ml_test, "\n")
-
       # a}
+
       }
   }
   }
   nb <- nb+1
   nb <- nb+1
Line 2,557: Line 3,391:
add.scale.bar(length=0.1)
add.scale.bar(length=0.1)
dev.off()
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/gains_pertes_genes.pdf
</pre>
</pre>
Line 2,572: Line 3,410:
</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 5.10:
+
Question 6.10:
Commentez les figures obtenues.
Commentez les figures obtenues.
Comparez ces résultats avec ceux de Sun et Blanchard, 2014)
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,584: Line 3,426:
La mise en œuvre de ce logiciel est complexe et ne sera pas traitée dans le cadre de cd TP.
La mise en œuvre de ce logiciel est complexe et ne sera pas traitée dans le cadre de cd TP.
 +
-->
==Liens utiles==
==Liens utiles==

Current revision as of 15:19, 11 November 2023

Contents

Matériel pédagogique

Support de cours : Quest for Orthologs

Support de cours : Alignements de génomes

Support de cours' : Phylogénomique

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

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

Références

Logiciels à installer sur vos postes de travail

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

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

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

Atelier système

Ressources informatiques

Nous allons utiliser les ressources de GenoToul.

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

Sortcuts

Vous allez vous connecter avec un compte fleur:

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

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

Échange de fichiers:

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

Logiciels disponibles

ou

ou plus directement

ls /usr/local/bioinfo/src/

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

Soumission de jobs avec SLURM

Seminar_cluster_SLURM

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

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

Utiliser R sur le cluster

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

tutoR_cluster.pdf

Utiliser awk_et sed

awk_sed_Genotoul2019

Scripts

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

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

/home/formation/public_html/M2_Phylogenomique/scripts

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

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

Copie des fichiers

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

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

Exemple:

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

Pour information:

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

Disponibilité des génomes

Caractéristiques des souches étudiées

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

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

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

Prochlorococcus

NCBI

Génomes de Prochlorococcus disponibles au NCBI browse

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

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

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

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

GenBank

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

DNA

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

Annotation

Prokka

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

Suivre Prokka

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

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

Conservation de séquence entre souches de Prochlorococcus

Suivre Conservation entre souches

Groupes de gènes orthologues

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

eggNOG

See software documentation for more informations.

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

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

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

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

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

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

Output files

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

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

OrthoFinder

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

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

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

Suivre OrthoFinder]!

Préliminaires

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

Blast All-vs-All

PorthoMCL

MSK

Panaroo

panaroo

PanOCT

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

panoct project

Suivre PanOCT

Analyses pan-génomiques

Les analyses pan-génomiques fournissent un cadre pour déterminer la diversité génomique de l'ensemble des gènomes analysés, mais aussi pour prédire, par extrapolation, combien de séquences génomiques supplémentaires seraient nécessaires pour caractériser l'ensemble du pan-génome ou répertoire génétique.

Inside the Pan-genome - Methods and Software Overview

Suivre: Analyses pan-génomiques

Alignement et comparaison de génomes complets

Suivre : Alignement Genomes

Analyses phylogénomiques

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

Suivre Analyses phylogénomiques

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

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

Suivre : Phylogénie ARNr

Arbre espèces: préparation des fichiers

Support de cours 1 : supports

Support de cours 2 : supports

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

Suivre : Arbre espèces

Super-alignement (Jeudi)

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

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

Concaténation de 31 alignements

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

Liste des alignements retenus:

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

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


IQ-TREE

genologin softwares : iq-tree

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

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

Documentation : "Substitution-Models"

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

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

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

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

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

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


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

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

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

Super-arbres

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

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

Et on a tapé :

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

Voici l’arbre obtenu :

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

A vous :

Loguez-vous sur genologin.

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

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

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

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

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

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

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

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

#!/bin/bash 

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

module load bioinfo/iqtree-2.0.6
sarray ind_pep_trees.sh

Pour monitorer votre job :

squeue -l -u <login>

Pour le killer si besoin :

scancel jobid

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

tail *_renamed.fas.log

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

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

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

Test de plusieurs méthodes de super-arbres :

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

Pour aller sur un nœud :

srun --pty bash

puis taper :

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

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

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

Nous sommes sortis de R.

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

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

Pour cela restez sur le nœud et tapez :

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

Lancez aussi l’arbre consensus en réseau :

iqtree -net -t alltrees.tree -nt 1

Et visualisez-le avec splitstree en local.

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

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

ASTRAL

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

Un exemple de script de soumission:

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

Comparaison des arbres

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

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

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

Attention à faire le module load bioinfo/iqtree-2.0.6

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

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

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

Reconstruction d'états ancestraux

Introduction

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

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

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

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

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

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

Suivre : Etats ancestraux

Liens utiles

Mesquite

Mesquite: A modular system for evolutionary analysis