Думаю, если вы попытаетесь последовать этому простому примеру, это, по крайней мере, поможет вам решить вашу реальную проблему.
Мы должны начать с подготовки фиктивного набора данных (пожалуйста, прочитайте как создать минимальный воспроизводимый пример ):
Создать набор данных treatment
:
library(tidyverse)
set.seed(56154455)
treatment <- data.frame(
geneName = LETTERS,
cts = sample(0:1000, 26)
)
head(treatment)
# geneName cts
# 1 A 834
# 2 B 860
# 3 C 950
# 4 D 302
# 5 E 979
# 6 F 159
Создать набор данных control
:
set.seed(56154455)
control <- treatment[sample(1:26, 26), ]
control[, 1] <- treatment[, 1]
head(control)
# geneName cts
# 3 A 950
# 23 B 41
# 15 C 889
# 20 D 629
# 14 E 398
# 4 F 302
Присоединяйтесь к treatment
и control
geneName
cts <- full_join(treatment, control, by = 'geneName') %>%
rename('treatment' = cts.x, 'control' = cts.y) %>%
column_to_rownames('geneName') %>%
as.matrix
head(cts)
# treatment control
# A 331 737
# B 914 676
# C 161 161
# D 592 769
# E 946 74
# F 813 314
Подготовьте свой coldata
стол
Помните, это всего лишь пустышка * 1025Например, ваш реальный coldata
может содержать любое количество столбцов, что отражает план вашего эксперимента .Однако количество строк в ваших coldata
, должно быть равным количеству столбцов в ваших экспериментальных данных (здесь это cts
).Пожалуйста, прочитайте документацию для класса SummarizedExperiment , где вы можете найти подробное объяснение.Еще один замечательный ресурс - книга Рафы
coldata <- matrix(c("DMSO", "1xPBS"), dimnames = list(colnames(cts), 'treatment'))
coldata
# treatment
# treatment "DMSO"
# control "1xPBS"
Наконец, создайте DESeqDataSet
:
dds <- DESeq2::DESeqDataSetFromMatrix(
countData = cts,
colData = coldata,
design = ~treatment
)
Где:
countData
- ваши экспериментальные данные, подготовленные как указано выше; colData
- ваша coldata
матрица с экспериментальными метаданными; ~treatment
- формула, описывающая экспериментальная модель вы тестируете в своем эксперименте.Это может быть что-нибудь вроде ~ treatment + sex * age
и т. Д.
☠
dds
# class: DESeqDataSet
# dim: 26 2
# metadata(1): version
# assays(1): counts
# rownames(26): A B ... Y Z
# rowData names(0):
# colnames(2): treatment control
# colData names(1): treatment