silico.biotoul.fr
 

Atelier Phylogénomique Analyses phylogénomiques

From silico.biotoul.fr

Revision as of 11:34, 20 October 2021 by Quentin (Talk | contribs)
Jump to: navigation, search

Contents

Liens

Analyses phylogénomiques

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

Mise à jour des scripts!

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

Synechococcus

Génomes et annotations

  • accession "CP000435, CP000097, BX548020, CP000110"

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

Comme précédemment, les génomes sont renommés en utilisant un code à quatre lettres.

accession_labels_file.lst

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

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

Fichier avec les informations sur les souches: species_strain_names.txt

Nous allons utiliser la même procédure que pour les génomes de Prochlorococcus (Automatisation des annotations prokka sur l'ensemble des génomes)

mkdir -p ~/work/Synechococcus/prokka
cd ~/work/Synechococcus
~/work/scripts/prokka_loop.pl --sample Synechococcus

squeue -l -u $USER

Une fois les jobs terminés, vérifiez que les fichiers de sorties de prokka existent et ne sont pas vides.

ls -l ~/work/Synechococcus/prokka/Aaa*/*.faa

Synechococcus blastp All-All

Nous allons reproduire le même enchaînement de scipts utilisés avec Prochlorococcus (Atelier_Phylogénomique_Blast Préliminaires) en prenant soin de remplacer Prochlorococcus par Synechococcus dans les noms des répertoires.

Copiez les fichier *.faa de prokka dans ~/work/Synechococcus/peptide/

MSK

mkdir -p ~/work/Synechococcus/peptide
cd ~/work/Synechococcus/peptide
cp ~/work/Synechococcus/prokka/Aaa*/*.faa ~/work/Synechococcus/peptide/.

ls -l ~/work/Synechococcus/peptide

Créer la blast database.

MSK

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
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 makeblastdb.sh
squeue -l -u $USER

Boucle sur les genomes de Synechococcus.

MSK

mkdir  ~/work/Synechococcus/BlastP
 
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
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
squeue -l -u $USER


squeue -l -u $USER
ls ~/work/Synechococcus/BlastP | wc -l

Prochlorococcus versus Synechococcus

Liens symboliques sur les fichiers peptides

mkdir -p ~/work/ProchlorococcusSynechococcus/peptide
ln -s ~/work/Prochlorococcus/peptide/*.faa* ~/work/ProchlorococcusSynechococcus/peptide/.
ln -s ~/work/Synechococcus/peptide/*.faa* ~/work/ProchlorococcusSynechococcus/peptide/.

ls -l ~/work/ProchlorococcusSynechococcus/peptide/.

Liens symboliques sur les fichiers blastp

mkdir -p ~/work/ProchlorococcusSynechococcus/BlastP
ln -s ~/work/Prochlorococcus/BlastP/*.tab ~/work/ProchlorococcusSynechococcus/BlastP/.
ln -s ~/work/Synechococcus/BlastP/*.tab ~/work/ProchlorococcusSynechococcus/BlastP/.

ls -l ~/work/ProchlorococcusSynechococcus/BlastP/.

Compléter les paires de comparaisons

MSK

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
sarray -J mkdb -o %j.out -e %j.err -t 01:00:00 --cpus-per-task=1 blast_allall.sh
squeue -l -u $USER

Vérifiez que vous avez bien le nombre de fichiers attendus!

Groupes de gènes orthologues avec PanOCT

Préparation des fichiers combined

srun --pty bash
mkdir -p ~/work/Synechococcus/panoct/results
mkdir -p ~/work/ProchlorococcusSynechococcus/panoct/results

combined.att Créer un fichier avec les coordonnées, noms, fonction et souches des gènes.

cd ~/work/Synechococcus
for file in peptide/*.faa
do
 prefix=$(basename $file .faa)
 echo "~/work/scripts/prokkagff2panoct.pl --gffdir prokka/$prefix --output prokka/$prefix/$prefix.tab"
 ~/work/scripts/prokkagff2panoct.pl --gffdir prokka/$prefix --output panoct/results/$prefix.tab
done
squeue -l -u $USER
ls panoct/results/*.tab
cat ~/work/Prochlorococcus/panoct/results/*.tab ~/work/Synechococcus/panoct/results/*.tab> ~/work/ProchlorococcusSynechococcus/panoct/results/combined.att
head ~/work/ProchlorococcusSynechococcus/panoct/results/combined.att

genomes.list Liste des souches à analyser.

cd ~/work/ProchlorococcusSynechococcus/
for i in peptide/*.faa
do      
echo $(basename $i .faa)
done > panoct/results/genomes.list
more panoct/results/genomes.list

combined.fasta Concaténer les fichier peptides dans un seul fichier.

cat peptide/*.faa > panoct/results/combined.fasta

grep -c '>' panoct/results/combined.fasta

combined.blast Concaténer les résultats des blastp dans un seul fichier.

cat BlastP/*.tab > panoct/results/combined.blast

head panoct/results/combined.blast

run panOCT Prochlorococcus vs Synechococcus

Exemple de script "panoct_PS.csh" (les chemins sont à changer).

cd ~/work/ProchlorococcusSynechococcus/panoct
mkdir ~/work/ProchlorococcusSynechococcus/images
sbatch panoct_PS.csh
squeue -l -u $USER
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!  

Heatmap des groupes de gènes orthologues avec le fichier ~/work/ProchlorococcusSynechococcus/panoct/results/matchtable_0_1.txt

MSK

srun --pty bash # si nécessaire!
module load system/R-3.5.1;
R
pdf_file <- '~/work/ProchlorococcusSynechococcus/images/matchtable_heatmap.pdf'
strain_file <- '~/work/ProchlorococcusSynechococcus/panoct/results/genomes.list'
matchtable_0_1 <- '~/work/ProchlorococcusSynechococcus/panoct/results/matchtable_0_1.txt'
 
strains <- read.delim(file=strain_file, header=FALSE)
data <- read.delim(file=matchtable_0_1, , sep="\t", header=FALSE, row.names=1)
colnames(data) <- t(strains)
 
pdf(file=pdf_file, paper="a4r")
heatmap(t(as.matrix(data)), scale='none', col=c('white', 'darkblue'), xlab="Strains", labCol=NA)
dev.off()
cat(pdf_file, "\n")
Question 3.2:
Décrivez la figure obtenue.
Quelles informations vous apporte-t-elle?

Gènes espèces spécifique

Gènes trouvés chez toutes les souches de Prochlorococcus mais dans aucune de Synechococcus:

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

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==12 && sp ==0 ) {
           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 > ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt

Quelles-sont les fonctions des gènes retenus?

MSK

rm  ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific_annotations.txt
awk '{ system("grep "$3"  ~/work/Prochlorococcus/prokka/Aaaa/Aaaa.gff >>  ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific_annotations.txt")}' < ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific.txt
cat ~/work/ProchlorococcusSynechococcus/Prochlorococcus_specific_annotations.txt
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
Question 3.3:
Analysez ces résultats et les confronter à ceux disponibles dans la littérature. 

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

La comparaison peut être réalisée graphiquement avec un digramme de Venn.

MSK

Comparaison des résultats de PanOCT avec OrthoFinder

OrthoFinder File: ~/work/OrthoFinder/Prochlorococcus/OrthoFinder/Results_Pro/WorkingDirectory/OrthoFinder/Results_ProSyn/Phylogenetic_Hierarchical_Orthogroups/N0.tsv

MSK

MSK