Объединить столбец с SummarizedExperiment из другого фрейма данных - PullRequest
0 голосов
/ 17 октября 2018

У меня есть SummarizedExperiment, который выглядит так:

class: RangedSummarizedExperiment dim: 483731 485 metadata(4): creationDate author BBMRIomicsVersion note assays(1): data rownames(483731): cg01707559 cg02004872 ... ch.22.47579720R ch.22.48274842R rowData names(10): addressA addressB ... probeEnd probeTarget colnames(485): 200397860027_R01C01 200397860027_R02C02 ... 200556930046_R03C01 200556930046_R06C02 colData names(946): STUDY_NUMBER SampleID ... Basename ID

И у меня есть кадр данных, который выглядит так:

STUDY_NUMBER UPID Testosterone Estradiol SHBG Sex 1 UPID01 NA NA NA male 3 UPID02 NA NA NA male 3 UPID03 10.02 62 49.6 male 4 UPID04 NA NA NA male 5 UPID05 NA NA NA female

Я хотел бы объединить эту таблицу (n строк = 3662), основываясь на STUDY_NUMBER.Поэтому я использовал следующий код:

colData(aems450k1.MvaluesQCIMPplaqueSE) <- merge(colData(aems450k1.MvaluesQCIMPplaqueSE), AEDB_Q1_20180223_sex, by.x = "STUDY_NUMBER", by.y = "STUDY_NUMBER", all.x = TRUE)

В результате получается следующий SummarizedExperiment объект:

class: RangedSummarizedExperiment dim: 483731 485 metadata(4): creationDate author BBMRIomicsVersion note assays(1): data rownames(483731): cg01707559 cg02004872 ... ch.22.47579720R ch.22.48274842R rowData names(10): addressA addressB ... probeEnd probeTarget colnames: NULL colData names(952): STUDY_NUMBER SampleID ... Sex T_E2

Вы будетеобратите внимание, что colnames теперь NULL.Поэтому мой вопрос:

Как я могу предотвратить это?

Мой второй вопрос:

Может ли это произойти, потому что порядок(на основе STUDY_NUMBER) из двух информационных фреймов не совпадают?

Большое спасибо,

Сандер

1 Ответ

0 голосов
/ 17 октября 2018

Мне кажется, я нашел ответ, также смотрите: https://support.bioconductor.org/p/114113/#114117.

Я думаю, проблема в том, что colData получает порядок, отличный от данных Assay, что не должно происходить.Но если я sort = с командой слияния, все в порядке, и я могу добавить имена в дальнейшем.Итак:

dim(aems450k1.MvaluesQCIMPplaqueSE) aems450k1.MvaluesQCIMPplaqueSE colData(aems450k1.MvaluesQCIMPplaqueSE) <- merge(colData(aems450k1.MvaluesQCIMPplaqueSE), AEDB_Q1_20180223_sex, by = "STUDY_NUMBER", sort = FALSE) colnames(aems450k1.MvaluesQCIMPplaqueSE) <- aems450k1.MvaluesQCIMPplaqueSE$ID dim(aems450k1.MvaluesQCIMPplaqueSE)

Что приводит к:

class: RangedSummarizedExperiment dim: 483731 485 metadata(4): creationDate author BBMRIomicsVersion note assays(1): data rownames(483731): cg01707559 cg02004872 ... ch.22.47579720R ch.22.48274842R rowData names(10): addressA addressB ... probeEnd probeTarget colnames(485): 8918692001_R01C01 8918692001_R02C01 ... 9221198166_R06C01 9221198166_R06C02 colData names(946): STUDY_NUMBER SampleID ... Basename ID

Какой правильный порядок в colnames.Хотя без sort = порядок имен будет выглядеть следующим образом: colnames(485): 9221198166_R06C02 9221198166_R06C01 ... 8918692001_R02C01 8918692001_R01C01.

Имеет ли это смысл?

...