1  Importazione dei dati

Il dataset che useremo in questo corso è disponibile presso il Gene Expression Omnibus (GEO), con numero di accesso GSE96870.

1.1 Descrizione del dataset

Stato: Pubblico dal 14 giugno 2017
Titolo: L’effetto dell’infezione delle vie respiratorie superiori sui cambiamenti trascrittomici nel SNC
Organismo: Mus musculus (topo domestico)
Tipo di esperimento: Profilo di espressione mediante sequenziamento ad alta produttività

Sommario:

  • Scopo: L’obiettivo di questo studio era determinare l’effetto di un’infezione delle vie respiratorie superiori sui cambiamenti nella trascrizione dell’RNA che si verificano nel cervelletto e nel midollo spinale dopo l’infezione.
  • Metodi: Topi C57BL/6 di otto settimane di età, appaiati per sesso, sono stati inoculati con soluzione salina o con Influenza A (Puerto Rico/8/34; PR8, 1.0 HAU) per via intranasale e i cambiamenti trascrittomici nei tessuti del cervelletto e del midollo spinale sono stati valutati mediante RNA-seq (letture paired-end da 100 bp) ai giorni 0 (non infetti), 4 e 8.
  • Risultati: Dopo il trimming e l’esclusione delle letture multi-mapping, una media del 92,07% (cervelletto) e del 91,71% (midollo spinale) dei geni sono stati mappati in modo univoco a un gene. Il numero medio di letture single-end per campione era 36,42 e 37 milioni rispettivamente per il midollo spinale e il cervelletto. L’infezione ha causato cambiamenti significativi al trascrittoma di ciascun tessuto, che sono stati più evidenti al giorno 8 dopo l’infezione.
  • Conclusione: Questo studio è il primo a utilizzare la tecnologia RNA-seq per valutare l’effetto dell’infezione periferica da influenza A sui cambiamenti nell’espressione genica del cervelletto e del midollo spinale.

Disegno complessivo: Topi C57BL/6 di otto settimane di età, appaiati per sesso, sono stati inoculati con soluzione salina o con Influenza A (Puerto Rico/8/34; PR8, 1.0 HAU) per via intranasale e i cambiamenti trascrittomici nei tessuti del cervelletto e del midollo spinale sono stati valutati mediante RNA-seq (letture paired-end da 100 bp) ai giorni 0 (non infetti), 4 e 8.

1.2 Lista dei campioni

Mostra il codice R
# downloading raw data
if(!fs::dir_exists("data")){
  fs::dir_create("data")
}

# The dataset is available at Gene Expression Omnibus (GEO), under the accession number GSE96870. 
if(!fs::file_exists("data/GSE96870_counts_cerebellum.csv")){
  download.file(
  url = "https://github.com/carpentries-incubator/bioc-rnaseq/raw/main/episodes/data/GSE96870_counts_cerebellum.csv", 
  destfile = "data/GSE96870_counts_cerebellum.csv"
)
}

if(!fs::file_exists("data/GSE96870_coldata_all.csv")){
  download.file(
  url = "https://github.com/carpentries-incubator/bioc-rnaseq/raw/main/episodes/data/GSE96870_coldata_all.csv", 
  destfile = "data/GSE96870_coldata_all.csv"
  )
}

if(!fs::file_exists("data/GSE96870_rowranges.tsv")){
  download.file(
  url = "https://github.com/carpentries-incubator/bioc-rnaseq/raw/main/episodes/data/GSE96870_rowranges.tsv", 
  destfile = "data/GSE96870_rowranges.tsv"
)
}

# read all data description
coldata_all <- read_csv("data/GSE96870_coldata_all.csv")

datatable(coldata_all |> select(sample, sex, infection, time, tissue),
  options = list(
  columnDefs = list(list(className = 'dt-center', targets = 5)),
  pageLength = 10,
  lengthMenu = c(10, 20, 30, 40 , 50)
))

1.3 Summary dei campioni

Mostra il codice R
datatable(coldata_all |> dplyr::count(sex, infection, time, tissue),
  options = list(
  columnDefs = list(list(className = 'dt-center', targets = 5)),
  pageLength = 12
))

1.4 Summarized experiment

Nel mondo dell’analisi genomica, la gestione e l’organizzazione dei dati sono fondamentali. La classe SummarizedExperiment offre una soluzione robusta ed efficiente per archiviare e manipolare dati provenienti da esperimenti di sequenziamento e microarray, come RNA-Seq e ChIP-Seq.

Immagina un contenitore simile a una matrice in cui:

  • Le righe rappresentano le caratteristiche di interesse: geni, trascritti, esoni, o qualsiasi altra unità genomica che stai studiando.
  • Le colonne rappresentano i campioni: individui, tessuti, o condizioni sperimentali diverse.

All’interno di questo contenitore, SummarizedExperiment memorizza non solo i dati grezzi dell’esperimento (ad esempio, il conteggio delle reads per ogni gene in ogni campione), ma anche informazioni cruciali sui campioni e sulle caratteristiche stesse.

Ecco i componenti principali di un SummarizedExperiment:

  • Saggi (assays): Matrici contenenti i dati quantitativi dell’esperimento. Possono essere presenti più saggi all’interno dello stesso oggetto, ad esempio per memorizzare diverse tipologie di dati omici.
  • Metadati del campione (colData): Un data.frame che associa a ciascun campione informazioni aggiuntive come età, sesso, condizione di salute, o qualsiasi altra variabile rilevante per l’analisi.
  • Metadati delle caratteristiche (rowData): Un data.frame che descrive le caratteristiche, fornendo ad esempio ID genetici, annotazioni funzionali, o posizione genomica.

Vantaggi di SummarizedExperiment:

  • Coordinamento tra dati e metadati: SummarizedExperiment garantisce la sincronizzazione tra i dati sperimentali e i metadati. Se escludi un campione dai dati, le informazioni corrispondenti nei metadati vengono automaticamente rimosse, evitando errori e incongruenze.
  • Flessibilità: SummarizedExperiment può gestire diverse tipologie di dati e metadati, adattandosi a una vasta gamma di esperimenti genomici.
  • Efficienza: La struttura organizzata di SummarizedExperiment facilita l’accesso e la manipolazione dei dati, semplificando le analisi a valle.

1.4.1 Esempio:

In un esperimento di RNA-Seq, SummarizedExperiment potrebbe contenere:

  • Saggio: una matrice con i conteggi di reads per ogni gene (riga) in ciascun campione (colonna).
  • Metadati del campione: informazioni sul tessuto di origine di ciascun campione (es. cervello, fegato, ecc.).
  • Metadati delle caratteristiche: annotazioni funzionali dei geni (es. gene codificante per una proteina, gene non codificante, ecc.).

Il pacchetto airway contiene un dataset di esempio proveniente da un esperimento di RNA-Seq che misura il numero di reads per gene in cellule di muscolatura liscia delle vie aeree.

Mostra il codice R
library(SummarizedExperiment)
data(airway, package="airway")

airway
class: RangedSummarizedExperiment 
dim: 63677 8 
metadata(1): ''
assays(1): counts
rownames(63677): ENSG00000000003 ENSG00000000005 ... ENSG00000273492
  ENSG00000273493
rowData names(10): gene_id gene_name ... seq_coord_system symbol
colnames(8): SRR1039508 SRR1039509 ... SRR1039520 SRR1039521
colData names(9): SampleName cell ... Sample BioSample

Saggio:

Mostra il codice R
assay(airway)[1:20, 1:5]
                SRR1039508 SRR1039509 SRR1039512 SRR1039513 SRR1039516
ENSG00000000003        679        448        873        408       1138
ENSG00000000005          0          0          0          0          0
ENSG00000000419        467        515        621        365        587
ENSG00000000457        260        211        263        164        245
ENSG00000000460         60         55         40         35         78
ENSG00000000938          0          0          2          0          1
ENSG00000000971       3251       3679       6177       4252       6721
ENSG00000001036       1433       1062       1733        881       1424
ENSG00000001084        519        380        595        493        820
ENSG00000001167        394        236        464        175        658
ENSG00000001460        172        168        264        118        241
ENSG00000001461       2112       1867       5137       2657       2735
ENSG00000001497        524        488        638        357        676
ENSG00000001561         71         51        211        156         23
ENSG00000001617        555        394        905        415        727
ENSG00000001626         10          2          9          2         10
ENSG00000001629       1660       1251       2259       1079       2462
ENSG00000001630         59         54         66         23         84
ENSG00000001631        729        692        943        475       1034
ENSG00000002016        201        161        256         99        268

Metadati del campione:

Mostra il codice R
colData(airway)
DataFrame with 8 rows and 9 columns
           SampleName     cell      dex    albut        Run avgLength
             <factor> <factor> <factor> <factor>   <factor> <integer>
SRR1039508 GSM1275862  N61311     untrt    untrt SRR1039508       126
SRR1039509 GSM1275863  N61311     trt      untrt SRR1039509       126
SRR1039512 GSM1275866  N052611    untrt    untrt SRR1039512       126
SRR1039513 GSM1275867  N052611    trt      untrt SRR1039513        87
SRR1039516 GSM1275870  N080611    untrt    untrt SRR1039516       120
SRR1039517 GSM1275871  N080611    trt      untrt SRR1039517       126
SRR1039520 GSM1275874  N061011    untrt    untrt SRR1039520       101
SRR1039521 GSM1275875  N061011    trt      untrt SRR1039521        98
           Experiment    Sample    BioSample
             <factor>  <factor>     <factor>
SRR1039508  SRX384345 SRS508568 SAMN02422669
SRR1039509  SRX384346 SRS508567 SAMN02422675
SRR1039512  SRX384349 SRS508571 SAMN02422678
SRR1039513  SRX384350 SRS508572 SAMN02422670
SRR1039516  SRX384353 SRS508575 SAMN02422682
SRR1039517  SRX384354 SRS508576 SAMN02422673
SRR1039520  SRX384357 SRS508579 SAMN02422683
SRR1039521  SRX384358 SRS508580 SAMN02422677

Metadati delle caratteristiche:

Mostra il codice R
rowData(airway)
DataFrame with 63677 rows and 10 columns
                        gene_id     gene_name  entrezid   gene_biotype
                    <character>   <character> <integer>    <character>
ENSG00000000003 ENSG00000000003        TSPAN6        NA protein_coding
ENSG00000000005 ENSG00000000005          TNMD        NA protein_coding
ENSG00000000419 ENSG00000000419          DPM1        NA protein_coding
ENSG00000000457 ENSG00000000457         SCYL3        NA protein_coding
ENSG00000000460 ENSG00000000460      C1orf112        NA protein_coding
...                         ...           ...       ...            ...
ENSG00000273489 ENSG00000273489 RP11-180C16.1        NA      antisense
ENSG00000273490 ENSG00000273490        TSEN34        NA protein_coding
ENSG00000273491 ENSG00000273491  RP11-138A9.2        NA        lincRNA
ENSG00000273492 ENSG00000273492    AP000230.1        NA        lincRNA
ENSG00000273493 ENSG00000273493  RP11-80H18.4        NA        lincRNA
                gene_seq_start gene_seq_end              seq_name seq_strand
                     <integer>    <integer>           <character>  <integer>
ENSG00000000003       99883667     99894988                     X         -1
ENSG00000000005       99839799     99854882                     X          1
ENSG00000000419       49551404     49575092                    20         -1
ENSG00000000457      169818772    169863408                     1         -1
ENSG00000000460      169631245    169823221                     1          1
...                        ...          ...                   ...        ...
ENSG00000273489      131178723    131182453                     7         -1
ENSG00000273490       54693789     54697585 HSCHR19LRC_LRC_J_CTG1          1
ENSG00000273491      130600118    130603315          HG1308_PATCH          1
ENSG00000273492       27543189     27589700                    21          1
ENSG00000273493       58315692     58315845                     3          1
                seq_coord_system        symbol
                       <integer>   <character>
ENSG00000000003               NA        TSPAN6
ENSG00000000005               NA          TNMD
ENSG00000000419               NA          DPM1
ENSG00000000457               NA         SCYL3
ENSG00000000460               NA      C1orf112
...                          ...           ...
ENSG00000273489               NA RP11-180C16.1
ENSG00000273490               NA        TSEN34
ENSG00000273491               NA  RP11-138A9.2
ENSG00000273492               NA    AP000230.1
ENSG00000273493               NA  RP11-80H18.4