-
Notifications
You must be signed in to change notification settings - Fork 0
/
04_recount3.Rmd
127 lines (93 loc) · 6.34 KB
/
04_recount3.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Datos de RNA-seq a través de recount3
## Procesar datos crudos (FASTQ)
<img src="http://research.libd.org/SPEAQeasy/images/4_workflow.png" width="800px"/>
* Pre-print de diciembre 2020 https://www.biorxiv.org/content/10.1101/2020.12.11.386789v1
* Documentación del software http://research.libd.org/SPEAQeasy/
* Ejemplo de como usar el software y analizar los datos http://research.libd.org/SPEAQeasy-example/
* Taller de 3 días (aprox 6 horas en total) sobre expresión diferencial usando estos datos https://lcolladotor.github.io/bioc_team_ds/differential-expression-analysis.html
## Proyectos recount
* `ReCount`: datos de unos 20 estudios
- http://bowtie-bio.sourceforge.net/recount/index.shtml
- Artículo del 2011 https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-12-449
* `recount`: 70 mil muestras de RNA-seq uniformemente procesadas
- https://jhubiostatistics.shinyapps.io/recount/
- Documentación con `pkgdown`: http://leekgroup.github.io/recount/
- Documentación en Bioconductor: http://bioconductor.org/packages/recount
- Artículo principal de 2017 http://www.nature.com/nbt/journal/v35/n4/full/nbt.3838.html
- Artículo que explica porque las cuentas (_counts_) son diferentes a las usuales https://f1000research.com/articles/6-1558/v1
- Algunos análisis ejemplo que hicimos http://leekgroup.github.io/recount-analyses/
* `recount3`: 700 mil muestras de RNA-seq de humano y ratón
- http://research.libd.org/recount3-docs/
- Documentación con `pkgdown`: http://research.libd.org/recount3/
- Documentación en Bioconductor: http://bioconductor.org/packages/recount3
- Artículo: en unas semanas estará el pre-print
* Ayuda a que todxs podamos analizar los datos sin importar quien tiene acceso a _high performance computing_ (HPC) (clústers para procesar datos).
* Es como democratizar el acceso a los datos ^^
## Usar recount3
_Check the original documentation in English [here](http://research.libd.org/recount3-docs/docs/quick-access.html#quick-recount3) and [here](http://research.libd.org/recount3-docs/docs/bioconductor.html#recount3)._
Primero cargamos el paquete de R que automáticamente carga todas las dependencias incluyendo a `SummarizedExperiment`.
```{r 'start', message=FALSE}
## Load recount3 R package
library("recount3")
```
Después tenemos que identificar un estudio de interes y determinar si queremos accesar la información a nivel de genes, exones, etc. Sabiendo el estudio de interes, podemos descargar los datos usando la función `create_rse()` como mostramos a continuación. `create_rse()` tiene argumentos con los cuales podemos especificar la **anotación** que queremos usar (las opciones dependen del organismo).
```{r 'quick_example'}
## Revisemos todos los proyectos con datos de humano en recount3
human_projects <- available_projects()
## Encuentra tu proyecto de interés. Aquí usaremos
## SRP009615 de ejemplo
proj_info <- subset(
human_projects,
project == "SRP009615" & project_type == "data_sources"
)
## Crea un objetio de tipo RangedSummarizedExperiment (RSE)
## con la información a nivel de genes
rse_gene_SRP009615 <- create_rse(proj_info)
## Explora el objeto RSE
rse_gene_SRP009615
```
De forma interactiva también podemos escoger nuestro estudio de interés usando el siguiente código o vía [el explorar de estudios](http://research.libd.org/recount3-docs/docs/index.html#study-explorer) que creamos.
```{r "interactive_display", eval = FALSE}
## Explora los proyectos disponibles de forma interactiva
proj_info_interactive <- interactiveDisplayBase::display(human_projects)
## Selecciona un solo renglón en la tabla y da click en "send".
## Aquí verificamos que solo seleccionaste un solo renglón.
stopifnot(nrow(proj_info_interactive) == 1)
## Crea el objeto RSE
rse_gene_interactive <- create_rse(proj_info_interactive)
```
Una vez que tenemos las cuentas, podemos usar `transform_counts()` o `compute_read_counts()` para convertir en los formatos esperados por otras herramientas. Revisen el artículo de 2017 del `recountWorkflow` para [más detalles](https://f1000research.com/articles/6-1558/v1).
```{r "tranform_counts"}
## Convirtamos las cuentas por nucleotido a cuentas por lectura
## usando compute_read_counts().
## Para otras transformaciones como RPKM y TPM, revisa transform_counts().
assay(rse_gene_SRP009615, "counts") <- compute_read_counts(rse_gene_SRP009615)
```
```{r "expand_attributes"}
## Para este estudio en específico, hagamos más fácil de usar la
## información del experimento
rse_gene_SRP009615 <- expand_sra_attributes(rse_gene_SRP009615)
colData(rse_gene_SRP009615)[
,
grepl("^sra_attribute", colnames(colData(rse_gene_SRP009615)))
]
```
Ahora estamos listos para usar otras herramientas para el análisis de los datos.
## Ejercicio
* Utiliza `iSEE` para reproducir la siguiente imagen
<img src="images/iSEE_SRP009615.PNG" width="500px" />
* Pistas:
- Utiliza el _dynamic feature selection_
- Utiliza información de las columnas para el eje X
- Utiliza información de las columnas para los colores
* (opcional) Crea tu cuenta gratis de https://www.shinyapps.io/ y comparte tu visualiación de los datos usando `iSEE` de esa forma. Ejemplos reales: https://github.com/LieberInstitute/10xPilot_snRNAseq-human#explore-the-data-interactively.
## Comunidad
* Autores de recount2 y 3 en Twitter:
- https://twitter.com/chrisnwilks
- https://twitter.com/BenLangmead
- https://twitter.com/KasperDHansen
- https://twitter.com/AbhiNellore
- https://twitter.com/Shannon_E_Ellis
- https://twitter.com/jtleek
* Más sobre los tipos de cuentas:
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">If I'm using recount2 data for a differential analysis in DEseq2, should I be using the original counts, or the scaled counts?<a href="https://twitter.com/mikelove?ref_src=twsrc%5Etfw">@mikelove</a> <a href="https://twitter.com/lcolladotor?ref_src=twsrc%5Etfw">@lcolladotor</a> <a href="https://twitter.com/hashtag/rstats?src=hash&ref_src=twsrc%5Etfw">#rstats</a> <a href="https://twitter.com/hashtag/Bioconductor?src=hash&ref_src=twsrc%5Etfw">#Bioconductor</a></p>— Dr. Robert M Flight, PhD (@rmflight) <a href="https://twitter.com/rmflight/status/1354981737525366786?ref_src=twsrc%5Etfw">January 29, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>