Exercices LINUX TP2 INTRODUCTION Les précédents exercices ont permis : - d introduire les commandes de base pour se déplacer dans l arborescence et la modifier - - de manipuler les fichiers de données, de filtrer des lignes d un fichier, de les trier de lier des commandes et de rediriger les sorties des commandes L objet de ce TP2 est d utiliser linux de manière plus avancée en utilisant les commandes sed, awk grep et en lançant quelques programmes bio- informatiques et scripts. Durant ce TP, vous allez réaliser en ligne de commande une partie des analyses réalisées via l application web Galaxy. Dans le répertoire NGS, vous avez les 2 fichiers issus d un séquençage RNA- seq de différents accessions sauvages et cultivés de riz (technologie illumina) ainsi que le fichier contenant la référence (qui va servir pour l étape de mapping ) et un fichier contenant les primers/adaptateurs (qui servira à l étape de cleaning ).
Exercice 1: Vérification rapide de la validité des séquences et du format 1. Visualiser le contenu des 2 fichiers de séquences dans le répertoire ~/Data/Illumina. 2. Quel est le format des fichiers? head tail 3. En observant les scores de qualité, quel est le format utilisé pour coder la qualité? Rappel sur le format FASTQ 4 lignes pour représenter une séquence : o @ puis identifiant de la séquence puis /1 ou /2 si paired end. o séquence. o + nom de la séquence éventuellement. o scores de la qualité. créé par Sanger Institute. utilisé par séquenceurs Illumina ou Solid. L'encodage de la qualité est différent selon la technologie utilisée. more http://en.wikipedia.org/wiki/fastq_format 4. Valider rapidement les 2 fichiers format fastq en vérifiant qu il y a le même nombre de lignes dans les 2 fichiers de séquences. Le transfert des fichiers de séquence sur le serveur bioinfo-inter.ird.fr s est il bien déroulé et a-t-il été complet? wc l 5. Compter rapidement le nombre de séquences dans chaque fichier echo $(( nombre_de_ligne / 4))
Exercice 2: Mise en place de l arborescence au niveau du dossier Illumina 1. Créer le répertoire 0_fastq et déplacer les 2 fichiers de séquences illumina dans ce nouveau répertoire mkdir, cp, rm 2. Créer le répertoire Bank et déplacer le fichier reference.fa dans ce répertoire mkdir, cp, rm Exercice 3: Contrôle qualité - logiciel fastqc 1. Créer le répertoire 1_fastqc mkdir 2. Lancer le logiciel fastqc Ligne de commande du logiciel fastqc fastqc -o 1_fastqc/ nom_fichier_fastq_a_analyser http://www.bioinformatics.babraham.ac.uk/projects/fastqc/ 3. Transférer le dossier 1_fastqc du serveur bioinfo- inter.ird.fr sur votre poste de travail et analyser les résultats du logiciel fastqc filezilla (protocole sftp) Quel est le nombre de séquence et la taille moyenne des sequences? Quel est le format utilisé pour encoder la qualité? présence résiduelle d'adaptateurs? des tags?
Exercice 4: Convertir les fichiers de séquences fastq au format d encodage sanger (format standard) - logiciel seqret EMBOSS 1. Utiliser le logiciel seqret de la suite EMBOSS pour créer dans le répertoire 0_fastq les nouveaux fichiers all_seq_1.sanger.fastq et all_seq_2.sanger.fastq Ligne de commande du logiciel seqret seqret fastq-illumina::nom-fichier-encodage-illumina.fastq fastqsanger::nom-fichier-encodage-sanger.fastq http://emboss.sourceforge.net/docs/themes/sequenceformats.html 2. Vérifier le nombre de lignes dans les fichiers générés Exercice 5: Traitement de la qualité/trimming - logiciel cutadapt 1. Créer le répertoire 2_cutadapt mkdir 2. Lister le contenu du fichier Solexa_mRNA_primers.txt less,cat 3. La première étape va être de générer le fichier de configuration qui sera placé en entrée du logical cutadapt. Ce fichier contiendra notamment les séquences des primers/adaptateurs qui seront recherchées par cutadapt dans les séquences brutes. a. Générer les séquences reverse complémentaire des primers - logiciel revseq (EMBOSS) Ligne de commande du logiciel revseq revseq -sequence adapters.txt -outseq adapters.txt.revers.compl - reverse Y -complement Y http://emboss.sourceforge.net/apps/release/6.1/emboss/apps/revseq.html
b. Générer le fichier cutadapt.conf dans le répertoire 2_cutadapt grep v, sed, > Le fichier cutadapt.conf doit contenir les séquences des primers (ainsi que les séquences reverse complémentaire) précedées de l option b de la façon suivante: -b GATCGTCGGACTGTAGAACTCTGAAC -b ACAGGTTCAGAGTTCTACAGTCCGAC -b CAAGCAGAAGACGGCATACGANN Ajouter à la fin du fichier les options suivantes -O 7 -m 20 -q 20 -e 0.1 The options mean: - b sequence1 : the first adapter to remove, - b sequence2 : the second adapater to remove etc. - q 20 : quality score - O 7: The overlap must be at least 7 base- pairs - m 20 : after trimming, reads less than 20 bp are thrown out - e 0.1 : allow a mismatch rate of 1 mismatch in ten bases between the read and the adapters c. Lancer le logiciel cutadapt dans le répertoire 2_cutadapt et créer les nouveaux fichiers all_seq_1.sanger.trim.fastq et all_seq_2.sanger.trim.fastq cutadapt $(<cutadapt.conf) sequence.sanger.fastq > sequences.sanger.trim.fastq https://code.google.com/p/cutadapt/
Exercice 6: Conversion de FASTQ vers FASTA pour vérifier rapidement la taille des sequences sans utiliser fastqc 1. Générer les fichiers fasta all_seq_1.sanger.trim.fasta et all_seq_2.sanger.trim.fasta dans le répertoire 2_cutadapt en une ligne de commande avec des en utilisant les commandes cat paste awk 2 Afficher le nombre de sequences, la longueur moyenne et le nombre total de paire de base de chaque fichier fasta infoseq (suite EMBOSS, awk) Ligne de commande du logiciel infoseq infoseq only name length nom-fichier-sequence.fasta http://emboss.sourceforge.net/apps/release/6.1/emboss/apps/infoseq.html Exercice 7: Séparation des reads single et pair-end suite à l analyse cutadapt Script francois.pl 1. Supprimer les fichiers fasta dans le repertoire 2_cutadapt rm 2. Lancer le script francois.pl (répertoire scripts) Ligne de commande du programme francois.pl ~/Scripts/francois.pl forward-read.fastq reverse-read.fastq http://emboss.sourceforge.net/apps/release/6.1/emboss/apps/infoseq.html 3. Regarder quels fichiers ont été créés par le script
4. Renommer les fichiers pair-end forward et reverse de la façon suivante: all_seq_1.mate.forward.fastq all_seq_2.mate.reverse.fastq cp, rm Exercice 8: Mapping des reads contre une référence - logiciel bwa 1. Aller dans le répertoire bank. La première étape va être de créer les fichiers index de la référence nécessaires à bwa. Ligne de commande du logiciel bwa index bwa index reference.fas 2. Lister le contenu du répertoire Bank. Que remarquez vous? ls -lt 3. Créer le répertoire 3_bwa dans le répertoire NGS mkdir 4. Lancer l analyse de mapping dans ce répertoire à l aide du logiciel bwa a) Lancer la commande bwa aln sur chaque fichier de read forward et reverse Cette première commande génère les alignements pour chaque read (indépendemment du read pairé ) contre la reference (fichier.sai généré). Ligne de commande du logiciel bwa aln bwa aln -f forward.sai reference.fas forward.fastq bwa aln -f reverse.sai reference.fas reverse.fastq b) Vérifier en listant le contenu du repertoire que les fichiers d extension.sai ont bien été créés et qu ils ne sont pas vides ls -lt
c) Lancer la commande bwa sampe Cette deuxième commande permet de pairer les deux reads et de produire l alignement dans le format SAM. Ligne de commande du logiciel bwa sampe bwa sampe -f all_seq.sam reference.fas forward.sai reverse.sai forward.fastq reverse.fastq d) Vérifier en listant le contenu du repertoire que le fichier d extension.sam a bien été créé et qu il n est pas vide ls l
Exercice 9: Manipulation des fichiers.sam - logiciel samtools http://samtools.sourceforge.net/samtools.shtml 1. Afficher les premières lignes du fichier.sam head Rappel sur le format sam Header section
ALIGNMENT SECTION Col Name Description 1 QNAME Query NAME of the read or the read pair 2 FLAG bitwise FLAG (pairing, strand, mate strand, etc.) 3 RNAME Reference sequence NAME 4 POS 1-based leftmost POSition of clipped alignment 5 MAPQ MAPping Quality (Phred-scaled) 6 CIGAR extended CIGAR string (operations: MIDNSHP) 7 NRNM Mate Reference NaMe (`=' if same as RNAME) 8 MPOS 1-based leftmost Mate POSition 9 ISIZE inferred Insert SIZE 10 SEQ query SEQuence on the same strand as the reference 11 QUAL query QUALity (ASCII-33=Phred base quality) FLAG EXPLANATION Flag Bitwise flags in the FLAG field Description 0x0001 0x0002 0x0004 0x0008 0x0010 0x0020 0x0040 0x0080 0x0100 0x0200 Paired in sequencing Mapped in proper read pair Query unmapped Mate unmapped Strand of the query (1 for reverse) Strand of the mate (1 for reverse) First read in the pair Second read in the pair Secondary alignment QC failure 0x0400 Optical or PCR duplicates
more http://picard.sourceforge.net/explain-flags.html more [BAM/SAM Specification]. more http://sourceforge.net/apps/mediawiki/samtools/?title=sam_protocol 1. On souhaite extraire du SAM uniquement les reads mappés correctement au niveau du forward ET reverse. Le logiciel samtools permet de filtrer sur la colonne 2 flag (cf. rappel format sam juste au dessus). Vérifier au niveau du site http://picard.sourceforge.net/explain-flags.html que le flag avec la valeur 0X2 est correct pour effectuer ce filtre. 2. Conversion du fichier SAM en fichier BAM (format compressé utilise par les logiciels) en séparant les reads mappés et non mappés samtools view Ligne de commande du logiciel samtools view samtools view S sortie-bwa.sam -F 0X2 b -o UNMAPPED-bwa.bam samtools view S sortie-bwa.sam -f 0X2 b o MAPPED-bwa.bam OPTIONS : -b output BAM -S input is SAM -f INT Only output alignments with all bits in INT present in the FLAG field. INT can be in hex in the format of /^0x[0-9A-F]+/ [0] -F INT Skip alignments with bits present in INT [0] 3. Vérifier en listant le contenu du repertoire que les 2 fichiers ont bien été créés et qu ils ne sont pas vides ls lt
Exercice 10 : Suppression des duplicates PCR samtools rmdump 1. Lancer le logiciel samtools rmdump Ligne de commande du logiciel samtools rmdup samtools rmdup -S <input bamfile> <output bamfile> 2. Vérifier en listant le contenu du repertoire que le fichier a bien été créé et qu il n est pas vide ls lt Exercice 11 : Tri du fichier bam Beaucoup de logiclels d analyses utilisant les fichiers bam demande un fichier sam trié. Nous allons réaliser cette étape avec le programme samtools sort. 1. Lancer le programme samtools sort sur notre fichier bam créé à l étape précédente Ligne de commande du logiciel samtools sort samtools sort <bamfile> <prefix of sorted bamfile> 2. Lister le contenu du répertoire et regarder si des nouveaux fichiers ont été créés. ls lt Exercice 12 : Création des indexes du fichier bam De nombreux logiclels d analyses utilisant les fichiers bam demandent également la création de fichiers index permettant d accéder aux informations relatives aux read plus rapidement. Nous allons réaliser cette étape avec le programme samtools index. 1. Lancer le programme samtools index sur notre fichier bam créé à l étape précédente
Ligne de commande du logiciel samtools index samtools index <sorted bamfile> 2. Lister le contenu du répertoire et regarder si des nouveaux fichiers ont été créés. ls lt Exercice 13 : Quelques statistiques sur le mapping samtools flagstat Ligne de commande du logiciel samtools flagstat samtools flagstat <bamfile> Exercice 14 : Recherche de SNP/Indel avec samtools mpileup 1. La première étape est de créer un index de la référence nécessaire pour la suite de l analyse. Ligne de commande du logiciel samtools faidx samtools faidx reference.fas 2. L étape suivante est de lancer samtools mpileup pour générer le fichier bcf (format vcf compressé). Ligne de commande du logiciel samtools mpileup samtools mpileup -u -f../bank/reference.fas all_seq-bwa-mapped- RMDUP.bam.sort.bam > all_seq-bwa-mapped-rmdup.bam.bcf
La dernière étape va être de générer le fichier vcf avec le logiciel bcftools Ligne de commande du logiciel samtools mpileup bcftools view - v - c - g all_seq-bwa-mapped-rmdup.bam.bcf > all_seq-bwa- MAPPED-RMDUP.bam.vcf & Regarder le contenu du fichier généré. Rappel sur le format VCF