Consignes

Le devoir est consitué de 3 parties.

À moins d’indication contraire, les fichiers nécessaires pour répondre aux questions de ce devoir se retrouvent dans le répertoire suivant: /home/public/bif4004/devoir3/

Toutes les commandes utilisées doivent être présentées soit dans des balises de code pour les commandes en R ou dans des balises de formatage pour les commandes en bash.

Vous devez remettre la version html (tricoté) du rmarkdown dans la boîte de dépot.

Partie 1: Rmarkdown

Veuillez copier le fichier /home/public/bif4004/devoir3/consignes.Rmd dans votre répertoire personnel et inscrire vos réponse directement dans ce document dans les sections appropriées.

Pour chaque question de cette partie qui demande de créer du code en R, il vous faudra créer une balise de code (voir exemple dans la question 1 et voir les notes de cours). Toutes les balises devront être nommées questionXX où XX correspond au numéro de la question.

Question 1.1

Quelle est la différence entre:

```r
a <- 2 + 3
a
```

```
## [1] 5
```

et:

```r
a <- 2 + 3
a
```

Donnez ensuite un exemple de situation où on doit privilégier la première approche.

Dans le premier cas, nous avons ajouté une balise de code R, ce qui fait que d’en plus d’être affiché, notre code sera aussi exécuté et le résultat apparaîtra dans le HTML tricotté. Ce qui n’est pas le cas pour le deuxième cas où on se contente seulement d’afficher le code.

On peut s’imaginer des cas où le résultat du code ne nous intéresse pas et où l’on choisi seulement de montrer le code.

Question 1.2

Dans un terminal, affichez le contenu de votre home (~). Copier la ligne qui contient la commande et le résultat et utilisez la balise appropriée pour afficher correctement la syntaxe bash.

tiol@MacBookeOlivier ~ % ls
Desktop     Downloads   Movies      Pictures
Documents   Library     Music       Public

Question 1.3

Dans l’en-tête du document Rmarkdown à remettre, remplacez le nom de l’auteur par votre nom. Ajoutez également la date à laquelle le document a été produit. Vous pouvez vous inspirer de la documentation du format Rmarkdown de Rstudio: http://rmarkdown.rstudio.com/markdown_document_format.html

Bonus: Trouvez une manière pour que la date soit automatiquement mise à jour lorsque le document est tricoté.

Question 1.4

Ajoutez une table des matières à votre document (voir le lien donné à la question précédente).

Question 1.5

Modifiez l’en-tête pour ajuster l’apparance générale du document (themes). Voir la documentation suivante: http://rmarkdown.rstudio.com/html_document_format.html#appearance_and_style

Partie 2 - Bioconductor

Dans cette partie, vous répondez aux questions en mettant les commandes R dans les encadrés prévus.

Question 2.1

En utilisant une fonction du paquet TxDb.Hsapiens.UCSC.hg19.knownGene, aller chercher le GRanges qui décrit la position de tous les gènes chez l’humain et sauvegarder cette information dans la variable genes.

library(TxDb.Hsapiens.UCSC.hg19.knownGene)
## Loading required package: GenomicFeatures
## Loading required package: BiocGenerics
## 
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:stats':
## 
##     IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
## 
##     anyDuplicated, aperm, append, as.data.frame, basename, cbind,
##     colnames, dirname, do.call, duplicated, eval, evalq, Filter, Find,
##     get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply,
##     match, mget, order, paste, pmax, pmax.int, pmin, pmin.int,
##     Position, rank, rbind, Reduce, rownames, sapply, setdiff, sort,
##     table, tapply, union, unique, unsplit, which.max, which.min
## Loading required package: S4Vectors
## Loading required package: stats4
## 
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:utils':
## 
##     findMatches
## The following objects are masked from 'package:base':
## 
##     expand.grid, I, unname
## Loading required package: IRanges
## Loading required package: GenomeInfoDb
## Loading required package: GenomicRanges
## Loading required package: AnnotationDbi
## Loading required package: Biobase
## Welcome to Bioconductor
## 
##     Vignettes contain introductory material; view with
##     'browseVignettes()'. To cite Bioconductor, see
##     'citation("Biobase")', and for packages 'citation("pkgname")'.
genes <- genes(TxDb.Hsapiens.UCSC.hg19.knownGene)
##   403 genes were dropped because they have exons located on both strands
##   of the same reference sequence or on more than one reference sequence,
##   so cannot be represented by a single genomic range.
##   Use 'single.strand.genes.only=FALSE' to get all the genes in a
##   GRangesList object, or use suppressMessages() to suppress this message.

Question 2.2

Aller chercher les 6 premiers identifiants ENSEMBL retrouvés dans le paquet org.Hs.eg.db et sauvegarder le résultat dans une variable nommée ensembl.

Toujours en utilisant le paquet org.Hs.eg.db, trouvez la correspondance entre les identifiants ENSEMBL et le symbole du gène (SYMBOL).

library(org.Hs.eg.db)
## 
# Aller chercher les 6 premiers identifiants ENSEMBL
ensembl <- head(keys(org.Hs.eg.db, keytype = "ENSEMBL"))

# Trouver la correspondance entre les identifiants ENSEMBL et le symbole du gène
symbols <- select(org.Hs.eg.db, keys = ensembl, column = "SYMBOL", keytype = "ENSEMBL")
## 'select()' returned 1:1 mapping between keys and columns

Partie 3 - RNA-Seq

Dans cette section, vous devrez analyser les données d’une expérience de RNA-Seq réalisée chez l’humain.

Vous aurez à analyser deux conditions (condition1 et condition2) d’un de 2 réplicat biologiques (rep1). Les séquences étant pairées, on retrouvera 4 fichiers bruts.

Vous trouverez ces fichiers dans le dossier suivant:

Question 3.1

Combien de séquences retrouve-t-on dans chacun de ces fichiers?

olbis7@FSG-BIF:~$ zcat /home/public/bif4004/devoir3/fastq/condition1_rep1_R2.fastq.gz | wc -l
18146972
olbis7@FSG-BIF:~$ zcat /home/public/bif4004/devoir3/fastq/condition2_rep1_R2.fastq.gz | wc -l
20983684

Puisque chaque séquence de RNA-Seq dans un fichier FASTQ est représentée par 4 lignes, on divise le total des lignes par 4 pour obtenir le nombre de séquences.

Question 3.2

Lisez attentivement la documentation de l’outil kallisto index (en entrant cette commande dans le terminal, vous aurez accès à cette documentation). En utilisant les paramètre par défaut, créez un index nommé Homo_sapiens_cdna.fa.gz.idx.

Le fichier de référence à indexer se trouve dans le dossier suivant:

  • /home/public/bif4004/devoir3/reference
olbis7@FSG-BIF:~$ kallisto index -i Homo_sapiens_cdna.fa.gz.idx /home/public/bif4004/devoir3/reference/Homo_sapiens_cdna.fa.gz

[build] loading fasta file /home/public/bif4004/devoir3/reference/Homo_sapiens_cdna.fa.gz
[build] k-mer length: 31
[build] warning: clipped off poly-A tail (longer than 10)
        from 653 target sequences
[build] warning: replaced 5 non-ACGUT characters in the input sequence
        with pseudorandom nucleotides
KmerStream::KmerStream(): Start computing k-mer cardinality estimations (1/2)
KmerStream::KmerStream(): Start computing k-mer cardinality estimations (1/2) KmerStream::KmerStream(): Finished
CompactedDBG::build(): Estimated number of k-mers occurring at least once: 81776829
CompactedDBG::build(): Estimated number of minimizer occurring at least once: 20165555
CompactedDBG::filter(): Processed 234536134 k-mers in 99312 reads
CompactedDBG::filter(): Found 81803061 unique k-mers
CompactedDBG::filter(): Number of blocks in Bloom filter is 559023
CompactedDBG::construct(): Extract approximate unitigs (1/2)
CompactedDBG::construct(): Extract approximate unitigs (2/2)
CompactedDBG::construct(): Closed all input files

CompactedDBG::construct(): Splitting unitigs (1/2)

CompactedDBG::construct(): Splitting unitigs (2/2)
CompactedDBG::construct(): Before split: 492783 unitigs
CompactedDBG::construct(): After split (1/1): 492783 unitigs
CompactedDBG::construct(): Unitigs split: 939
CompactedDBG::construct(): Unitigs deleted: 0

CompactedDBG::construct(): Joining unitigs
CompactedDBG::construct(): After join: 451130 unitigs
CompactedDBG::construct(): Joined 41750 unitigs
[build] building MPHF
[build] creating equivalence classes ... 
[build] target de Bruijn graph has k-mer length 31 and minimizer length 23
[build] target de Bruijn graph has 451130 contigs and contains 81875199 k-mers

Question 3.3

Tous les fichiers produits pour cette question doivent être directement sauvegardés dans des sous-répertoires retrouvés dans le répertoire analyses/quant/ (i.e.: vous ne devriez pas avoir à les déplacer à l’aide de la commande mv).

La structure finale du répertoire analyses/quant/ devrait être la suivante:

quant/
├── condition1_rep1/
│   ├── abundance.h5
│   ├── abundance.tsv
│   └── run_info.json
└── condition2_rep1/
    ├── abundance.h5
    ├── abundance.tsv
    └── run_info.json

Utilisez le programme kallisto quant pour quantifier les données fastq de la question 3.1 et l’index préparé à la question 3.2.

kallisto quant -i Homo_sapiens_cdna.fa.gz.idx -o analyses/quant/condition1_rep1 /home/public/bif4004/devoir3/fastq/condition1_rep1_R1.fastq.gz /home/public/bif4004/devoir3/fastq/condition1_rep1_R2.fastq.gz
kallisto quant -i Homo_sapiens_cdna.fa.gz.idx -o analyses/quant/condition2_rep1 /home/public/bif4004/devoir3/fastq/condition2_rep1_R1.fastq.gz /home/public/bif4004/devoir3/fastq/condition2_rep1_R2.fastq.gz