Exercices LINUX TP2
Transcription
Exercices LINUX TP2
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. head tail head all_seq_1.fastq tail ~/Data/Illumina/all_seq_2.fastq 2. Quel est le format des fichiers? Format fastq 3. En observant les scores de qualité, quel est le format utilisé pour coder la qualité? Dans la qualité, il y a de nombreuses lettres en minuscules (a,d,e,f) qui correspond à un encodage en ASCII dans des valeurs décimales >100 donc à un encodage de technologie illumina (cf. image ci-dessous) Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 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 wc -l ~/Data/Illumina/*.fastq 221748 /home/formation1/Data/Illumina/all_seq_1.fastq 221748 /home/formation1/Data/Illumina/all_seq_2.fastq 443496 total 5. Compter rapidement le nombre de séquences dans chaque fichier echo $(( nombre_de_ligne / 4)) echo $(( 221748 / 4 ) 55437 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 ~/Data/Illumina/0_fastq Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil mkdir, cp, rm cp ~/Data/Illumina/*fastq ~/Data/Illumina/0_fastq rm ~/Data/Illumina/*fastq 2. Créer le répertoire Bank et déplacer le fichier reference.fa dans ce répertoire mkdir, cp, rm mkdir ~/Data/Illumina/Bank cp ~/Data/Illumina/reference.fas ~/Data/Illumina/Bank rm ~/Data/Illumina/reference.fas Exercice 3: Contrôle qualité - logiciel fastqc 1. Créer le répertoire 1_fastqc mkdir mkdir ~/Data/Illumina/1_fastqc 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/ cd ~/Data/Illumina/ fastqc -o 1_fastqc/ 0_fastq/all_seq_*fastq & ls 1_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 (55437) et la taille moyenne des sequences (76 pb)? Quel est le format utilisé pour encoder la qualité (Illumina 1.5)? présence résiduelle d'adaptateurs? des tags? Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 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 cd 0_fastq/ seqret fastq-illumina::all_seq_1.fastq sanger::all_seq_1.sanger.fastq & fastq- seqret fastq-illumina::all_seq_2.fastq sanger::all_seq_2.sanger.fastq fastq- ls –l total 66560 -rw-r--r-- 1 formation1 -rw-r--r-- 1 formation1 -rw-r--r-- 1 formation1 -rw-r--r-- 1 formation1 formation formation formation formation 11037350 11037350 11037350 11037350 11 11 11 11 sept. sept. sept. sept. 20:57 21:22 20:57 21:22 all_seq_1.fastq all_seq_1.sanger.fastq all_seq_2.fastq all_seq_2.sanger.fastq 2. Vérifier le nombre de lignes dans les fichiers générés wc -l ~/Data/Illumina/0_fastq/*sanger.fastq 221748 /home/formation1/Data/Illumina/0_fastq/all_seq_1.sanger.fastq 221748 /home/formation1/Data/Illumina/0_fastq/all_seq_2.sanger.fastq 443496 total Exercice 5: Traitement de la qualité/trimming - logiciel cutadapt 1. Créer le répertoire 2_cutadapt mkdir mkdir ~/Data/Illumina/2_cutadapt ls 2. Lister le contenu du fichier Solexa_mRNA_primers.txt Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 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 revseq -sequence Solexa_mRNA_primers.txt -outseq Solexa_mRNA_primers.txt.revers.compl -reverse Y -complement Y b. Générer le fichier cutadapt.conf dans le répertoire 2_cutadapt grep –v, sed, > a) 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 … grep -v ">" ~/Data/Illumina/Solexa_mRNA_primers.txt* grep -v -h ">" Solexa_mRNA_primers.txt* | sed 's/^\(.*\)$/-b \1/' > ~/Data/Illumina/2_cutadapt/cutadapt.conf less ~/Data/Illumina/2_cutadapt/cutadapt.conf b) Ajouter à la fin du fichier les options suivantes -O 7 -m 20 -q 20 Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil -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 (by default) nano ~/Data/Illumina/2_cutadapt/cutadapt.conf less ~/Data/Illumina/2_cutadapt/cutadapt.conf 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/ cd 2_cutadapt/ cutadapt $(<cutadapt.conf) all_seq_1.sanger.trim.fastq ../0_fastq/all_seq_1.sanger.fastq > cutadapt $(<cutadapt.conf) all_seq_2.sanger.trim.fastq ../0_fastq/all_seq_2.sanger.fastq > wc -l ~/Data/Illumina/2_cutadapt/*trim.fastq 181372 /home/formation1/Data/Illumina/2_cutadapt/all_seq_1.sanger.trim.fastq 180876 /home/formation1/Data/Illumina/2_cutadapt/all_seq_2.sanger.trim.fastq 362248 total Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 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 cat all_seq_1.sanger.trim.fastq | paste - - - - cat all_seq_1.sanger.trim.fastq ">"$1"\n"$2 }' | head | head | paste - - - - | awk ' {print cat all_seq_1.sanger.trim.fastq | paste - - - ">"$1"\n"$2 }’ > all_seq_1.sanger.trim.fasta | awk ' {print cat all_seq_2.sanger.trim.fastq | paste - - - ">"$1"\n"$2 }' > all_seq_2.sanger.trim.fasta | awk ' {print total 49156 -rw-r--r-- 1 formation1 formation 5599810 11 sept. 22:01 all_seq_1.sanger.trim.fasta -rw-r--r-- 1 formation1 formation 9012776 11 sept. 21:49 all_seq_1.sanger.trim.fastq -rw-r--r-- 1 formation1 formation 5617344 11 sept. 22:01 all_seq_2.sanger.trim.fasta -rw-r--r-- 1 formation1 formation 9053831 11 sept. 21:49 all_seq_2.sanger.trim.fastq -rw-r--r-- 1 formation1 formation 904 11 sept. 21:45 cutadapt.conf 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 infoseq -only -name -length all_seq_1.sanger.trim.fasta | awk '{ pb+= $2; } END { print "PB: "pb" pb; Nb: " NR " sequences, Avg: " pb/NR} ' Display basic information about sequences PB: 3322280 Nb: 45344Avg: 73.2683 Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil infoseq -only -name -length all_seq_2.sanger.trim.fasta | awk '{ pb+= $2; } END { print "PB: "pb" pb; Nb: " NR " sequences, Avg: " pb/NR} ' Display basic information about sequences PB: 3346049 Nb: 45220Avg: 73.9949 Exercice 7: Séparation des reads “single” et “pair-end” suite à l’analyse cutadapt Script francois.pl 4. Supprimer les fichiers fasta dans le repertoire 2_cutadapt rm 1. 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 ~/Scripts/francois.pl ~/Data/Illumina/2_cutadapt/all_seq_1.sanger.trim.fastq ~/Data/Illumina/2_cutadapt/all_seq_2.sanger.trim.fastq 2. Regarder quels fichiers ont été créés par le script ls -lt total 65604 -rw-r--r-- 1 formation1 formation 9037131 11 sept. 22:22 reverse.fast -rw-r--r-- 1 formation1 formation 8973637 11 sept. 22:22 forward.fast -rw-r--r-- 1 formation1 formation 55839 11 sept. 22:22 single.fast -rw-r--r-- 1 formation1 formation 9053831 11 sept. 21:49 all_seq_2.sanger.trim.fastq -rw-r--r-- 1 formation1 formation 9012776 11 sept. 21:49 all_seq_1.sanger.trim.fastq -rw-r--r-- 1 formation1 formation 904 11 sept. 21:45 cutadapt.conf Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 3. 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 forward.fast all_seq_1.mate.forward.fastq cp reverse.fast all_seq_2.mate.reverse.fastq rm *fast 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 bwa index reference.fas 2. Lister le contenu du répertoie Bank. Que remarquez vous? ls -lt total 32 -rw-r--r-- 1 formation1 formation 3336 11 sept. 22:29 reference.fas.sa -rw-r--r-- 1 formation1 formation 9 11 sept. 22:29 reference.fas.amb -rw-r--r-- 1 formation1 formation 121 11 sept. 22:29 reference.fas.ann -rw-r--r-- 1 formation1 formation 1645 11 sept. 22:29 reference.fas.pac -rw-r--r-- 1 formation1 formation 6656 11 sept. 22:29 reference.fas.bwt -rw-r--r-- 1 formation1 formation 6632 11 sept. 20:58 reference.fas 3. Créer le répertoire 3_bwa dans le répertoire NGS mkdir mkdir 3_bwa 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 Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 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 bwa aln -f all_seq_1.mate.forward.sai ../Bank/reference.fas ../2_cutadapt/all_seq_1.mate.forward.fastq bwa aln -f all_seq_2.mate.reverse.sai ../Bank/reference.fas ../2_cutadapt/all_seq_2.mate.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 ls -lt total 4096 -rw-r--r-- 1 formation1 formation 1261348 11 sept. 22:41 all_seq_2.mate.reverse.sai -rw-r--r-- 1 formation1 formation 1262404 11 sept. 22:39 all_seq_1.mate.forward.sai 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 forward.fastq reverse.fastq reverse.sai bwa sampe -f all_seq_1.mate.forward.sai all_seq.sam ../Bank/reference.fas all_seq_2.mate.reverse.sai Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil ../2_cutadapt/all_seq_1.mate.forward.fastq ../2_cutadapt/all_seq_2.mate.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 ls -lt total 36864 -rw-r--r-- 1 formation1 formation 28042138 11 sept. 22:44 all_seq.sam -rw-r--r-- 1 formation1 formation 1261348 11 sept. 22:41 all_seq_2.mate.reverse.sai -rw-r--r-- 1 formation1 formation 1262404 11 sept. 22:39 all_seq_1.mate.forward.sai du -h all_seq.sam 32M all_seq.sam Exercice 9 : Manipulation des fichiers .sam - logiciel samtools http://samtools.sourceforge.net/samtools.shtml 1. Afficher les premières lignes du fichier .sam head all_seq.sam Rappel sur le format sam Header section Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil head ALIGNMENT SECTION Col Name Description 1 QNAME 2 FLAG 3 RNAME 4 POS 5 MAPQ 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 10 SEQ Query NAME of the read or the read pair bitwise FLAG (pairing, strand, mate strand, etc.) Reference sequence NAME 1-based leftmost POSition of clipped alignment MAPping Quality (Phred-scaled) inferred Insert SIZE query SEQuence on the same strand as the Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil reference 11 QUAL query QUALity (ASCII-33=Phred base quality) FLAG EXPLANATION Bitwise flags in the FLAG field Flag Description 0x0001 Paired in sequencing 0x0002 Mapped in proper read pair 0x0004 Query unmapped 0x0008 Mate unmapped 0x0010 Strand of the query (1 for reverse) 0x0020 Strand of the mate (1 for reverse) 0x0040 First read in the pair 0x0080 Second read in the pair 0x0100 Secondary alignment 0x0200 QC failure 0x0400 Optical or PCR duplicates more http://picard.sourceforge.net/explain-flags.html [BAM/SAM Specification]. more 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. Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 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] samtools view -S all_seq.sam -F 02x -b -o all_seq-bwa-UNMAPPED.bam samtools view -S all_seq.sam -f 02x -b -o all_seq-bwa-MAPPED.bam 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 Exercice 10 : Suppression des duplicates PCR 1. Lancer le logiciel samtools rmdump Ligne de commande du logiciel samtools rmdup samtools rmdup -S <input bamfile> <output bamfile> Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil ls –lt samtools rmdump samtools rmdup -S all_seq-bwa-MAPPED.bam all_seq-bwa-MAPPED-RMDUP.bam 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 précédente sort sur notre fichier bam créé à l’étape Ligne de commande du logiciel samtools sort samtools sort <bamfile> <prefix of sorted bamfile> samtools sort all_seq-bwa-MAPPED-RMDUP.bam all_seq-bwa-MAPPED- RMDUP.bam.sort 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 Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil samtools index <sorted bamfile> samsamtools index all_seq-bwa-MAPPED-RMDUP.bam.sort.bam 2. Lister le contenu du répertoire et regarder si des nouveaux fichiers ont été créés. ls –lt .bai 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-MAPPEDRMDUP.bam.sort.bam > all_seq-bwa-MAPPED-RMDUP.bam.bcf Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil 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-bwaMAPPED-RMDUP.bam.vcf & Regarder le contenu du fichier généré. Rappel sur le format VCF Formation bio-informatique du 11-12/09/2013, Module Linux Bruno Granouillac, Christine Tranchant-‐Dubreuil