Atelier Phylogénomique PorthoMCL
From silico.biotoul.fr
m (→PorthoMCL) |
m |
||
Line 50: | Line 50: | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for i in ~/work/Prochlorococcus/peptide/*.faa; | for i in ~/work/Prochlorococcus/peptide/*.faa; | ||
Line 72: | Line 73: | ||
done | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | --> | |
=====Modifier le nom des protéines dans les fichiers blast et fasta===== | =====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. | 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. | ||
Line 79: | Line 80: | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for file in ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab | for file in ~/work/Prochlorococcus/PorthoMCL/3.blastres/*.tab | ||
Line 88: | Line 90: | ||
<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 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> | ||
- | + | --> | |
et dans les fichiers ~/work/Prochlorococcus/peptide/*.faa | et dans les fichiers ~/work/Prochlorococcus/peptide/*.faa | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for file in ~/work/Prochlorococcus/peptide/*.faa | for file in ~/work/Prochlorococcus/peptide/*.faa | ||
Line 99: | Line 102: | ||
done | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | --> | |
=====Changer le format des fichier blastp===== | =====Changer le format des fichier blastp===== | ||
<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 118: | Line 121: | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for file in ~/work/Prochlorococcus/peptide/*.faa | for file in ~/work/Prochlorococcus/peptide/*.faa | ||
Line 125: | Line 129: | ||
done | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | --> | |
Vérifiez les fichiers obtenus. | Vérifiez les fichiers obtenus. | ||
Line 149: | Line 153: | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for num in {1..12} | for num in {1..12} | ||
Line 155: | Line 160: | ||
done | done | ||
</syntaxhighlight> | </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. | 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. | ||
Line 171: | Line 176: | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for num in {1..12} | for num in {1..12} | ||
Line 177: | Line 183: | ||
done | done | ||
</syntaxhighlight> | </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 214: | Line 220: | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for num in {1..12} | for num in {1..12} | ||
Line 220: | Line 227: | ||
done | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | --> | |
====Step 8: 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"> | ||
Line 249: | Line 256: | ||
MSK | MSK | ||
+ | <!-- | ||
<pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap"> | <pre style="color:blue;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap"> | ||
awk 'BEGIN { | awk 'BEGIN { | ||
Line 259: | Line 267: | ||
}' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group > ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group_class_size.tab | }' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group > ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group_class_size.tab | ||
</pre> | </pre> | ||
- | + | --> | |
Taux de paralogie (avec ''awk'' mais en vous inspirant du [http://silico.biotoul.fr/p/M1_BBS_Graphes_TP_Recherche_de_communaut%C3%A9s_dans_les_graphes TP5] de M1): | 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 | 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 '{ | awk '{ | ||
Line 284: | Line 293: | ||
}' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group | }' ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group | ||
</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"> | ||
Que pensez-vous de la distribution des taille des OG? Quelle-est la taille maximum attendue? | Que pensez-vous de la distribution des taille des OG? Quelle-est la taille maximum attendue? | ||
Line 358: | Line 367: | ||
MSK | MSK | ||
+ | <!-- | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
library(igraph) | library(igraph) | ||
Line 370: | Line 380: | ||
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 sur la taille des OG===== | ||
<!-- | <!-- |
Current revision as of 10:23, 26 November 2021
Contents |
Liens
PorthoMCL: Parallel orthology prediction using MCL for the realm of massive genome availability Ehsan Tabari and Zhengchang Su Big Data Analytics 2017 2:4 DOI: 10.1186/s41044-016-0019-8
Il s'inspire d'orthoMCL
Question 1.8: Rappelez les différentes étapes réalisées par le logiciel. Précisez les paramètres utilisés pour identifier les paires de gènes orthologues.
Mise en oeuvre
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.
MSK
Step 4: Parse BLAST results
Comme les différents blastp ont déjà été réalisés, nous passons directement à l'étape 4.
Mais nous devons:
Concaténer les fichiers de résultats blastp par souche:
mkdir -p ~/work/Prochlorococcus/PorthoMCL/3.blastres
MSK
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 et dans les fichiers ~/work/Prochlorococcus/peptide/*.faa
MSK
Changer le format des fichier blastp
mkdir -p ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq
Exemple pour une souche:
/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
head ~/work/Prochlorococcus/PorthoMCL/4.splitSimSeq/Aaaa.ss.tsv
Format de sortie:
query hit evalueMant evalueExp percentMatch
- 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
Appliquez à toutes les souches.
MSK Vérifiez les fichiers obtenus.
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.
mkdir -p ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp mkdir -p ~/work/Prochlorococcus/PorthoMCL/5.besthit
Créer un fichier avec la liste des taxon
ls -1 ~/work/Prochlorococcus/peptide/*faa | sed -r 's/.+([A-Z][a-z]{3}).faa/\1/' > ~/work/Prochlorococcus/PorthoMCL/taxon_list
Test avec une souche:
/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 1
head ~/work/Prochlorococcus/PorthoMCL/5.paralogTemp/Aaaa.pt.tsv head ~/work/Prochlorococcus/PorthoMCL/5.besthit/Aaaa.bh.tsv
Boucle sur les souches:
MSK
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.
mkdir -p ~/work/Prochlorococcus/PorthoMCL/6.orthologs
Test avec une souche:
/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
head ~/work/Prochlorococcus/PorthoMCL/6.orthologs/Aaaa.ort.tsv
Boucle sur les souches:
MSK
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.
Pour trouver les paralogues, nous devons extraire tous les gènes qui ont une relation orthologique dans chaque génome. Ceci peut être réalisé en utilisant un ensemble de commandes bash comme suit.
mkdir -p ~/work/Prochlorococcus/PorthoMCL/7.ogenes cd ~/work/Prochlorococcus/PorthoMCL
genes in the second column
awk -F'[|\t]' '{print $4 >> ("7.ogenes/"$3".og.tsv")}' 6.orthologs/*.ort.tsv
genes in the first column
awk -F'[|\t]' '{print $2 >> ("7.ogenes/"$1".og.tsv")}' 6.orthologs/*.ort.tsv
Avec ces fichiers (fichiers og) en main, nous pouvons normaliser les relations inparalogiques :
Le résultat de cette étape est l'ensemble des gènes paralogues avec des scores normalisés.
mkdir -p ~/work/Prochlorococcus/PorthoMCL/7.paralogs
Test avec la première souche:
/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 1
head ~/work/Prochlorococcus/PorthoMCL/7.paralogs/Aaaa.par.tsv
Boucle sur les souches:
MSK
Step 8: MCL
Question 1.10: Rappelez le principe de MCL et les paramètres utilisés. Quel est l'effet de ces paramètres?
C'est exactement comme la dernière étape d'OrthoMCL. Il suffit d'exécuter MCL sur les sorties du script :
Notez que -t définit le nombre de processeurs que vous devez utiliser pour MCL.
Location: /usr/local/bioinfo/src/MCL
srun --pty bash #Load modules module load bioinfo/mcl-14-137 cat ~/work/Prochlorococcus/PorthoMCL/6.orthologs/*.tsv >> ~/work/Prochlorococcus/PorthoMCL/8.all.ort.tsv mcl ~/work/Prochlorococcus/PorthoMCL/8.all.ort.tsv --abc -I 1.5 -t 4 -o ~/work/Prochlorococcus/PorthoMCL/8.all.ort.group
Taille des OG:
Vous pouvez utiliser awk avec NF qui est le nombre de champs de l'enregistrement courant.
MSK Taux de paralogie (avec awk mais en vous inspirant du TP5 de M1):
MSK
Que pensez-vous de la distribution des taille des OG? Quelle-est la taille maximum attendue?
Paralogs
cat 7.paralogs/*.tsv >> 8.all.par.tsv mcl 8.all.par.tsv --abc -I 1.5 -t 4 -o 8.all.par.group
Visualisation des OG
srun --pty bash module load system/R-3.5.1
Vision globale avec genoplotR
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_all.pdf
Question 1.11: Analysez la figure obtenue. Comparez-là avec celle réalisée avec les blastn.
Restreindre aux OG sans paralogues
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
Question 1.12: Comparez les deux figures, avec et sans les paralogues. Comment se répartissent les régions peu denses en gènes orthologues?
Restreindre à un seul OG
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_OG5.pdf
Liste des membres du groupe 5
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
Extraction du sous-graphe correspondant à ces gènes:
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
Tracez le graphe de ces gènes avec la librairie igraph (c.f. TP5 de M1).
MSK