silico.biotoul.fr
 

Atelier Phylogénomique PorthoMCL

From silico.biotoul.fr

Revision as of 10:23, 26 November 2021 by Quentin (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.

How to use SLURM 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 

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 

8.all.ort.group_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 

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

Tester l'effet de l'IF sur la taille des OG
Tester l'effet de l'IF sur la paralogie