Как я могу выделить специфические c гены в Bioconductor Enhancedvolcano? - PullRequest
0 голосов
/ 09 апреля 2020

Мне нравится пакет EnhancedVolcano. Мои данные RNAseq, и я анализирую их с помощью DESeq2. Я хочу представить результаты в виде вулканоплота, где я выделю список генов по своему выбору selected_genes . Мне удалось изменить pointSize, и я использую SelectLab, чтобы выделить, но когда я хочу дать выбранным генам другой цвет, я застреваю. Я добавил логический вектор в свой файл результатов, указав, какие гены нужно выделить. Я пробовал

col = ifelse... 

Не работает, все точки серые.

EnhancedVolcano(res_complete,
                lab = res_complete$gene_name,
                x = "log2FoldChange",
                y = "pvalue",
                pCutoff = 10e-3,
                FCcutoff = 1,
                xlim = c(-10, 10),
                ylim = c(0, -log10(10e-12)),
                col = (ifelse(res_complete$picked_genes == T, "forestgreen", "grey60")),
                pointSize = (ifelse(res_complete$picked_genes == T, 5, 0.5)),
                labSize = 2.5,
                selectLab = picked_genes,
                shape =  16,
                shade = res_complete$picked_genes == T,
                shadeFill = "forestgreen",
                shadeSize = 5,
                shadeLabel = res_complete$picked_genes,
                boxedLabels = TRUE,
                title = "DESeq2 results",
                subtitle = "Differential expression HC vs RA",
                caption = "FC cutoff, 1; p-value cutoff, 10e-3",
                legendPosition = "right",
                legendLabSize = 14,
                colAlpha = 0.9,
                drawConnectors = TRUE,
                hline = c(10e-8),
                widthConnectors = 0.2)

Я также пробовал:

colCustom =ifelse...

Но я получаю сообщение об ошибке ...

Ошибка: эстетика должна быть либо длины 1, либо соответствовать данным (58735): цвет

EnhancedVolcano(res_complete,
                lab = res_complete$gene_name,
                x = "log2FoldChange",
                y = "pvalue",
                pCutoff = 10e-3,
                FCcutoff = 1,
                xlim = c(-10, 10),
                ylim = c(0, -log10(10e-12)),
                colCustom = (ifelse(res_complete$picked_genes == T, "forestgreen", "grey60")),
                pointSize = (ifelse(res_complete$picked_genes == T, 5, 0.5)),
                labSize = 2.5,
                selectLab = picked_genes,
                shape =  16,
                shade = res_complete$picked_genes == T,
                shadeFill = "forestgreen",
                shadeSize = 5,
                shadeLabel = res_complete$picked_genes,
                boxedLabels = TRUE,
                title = "DESeq2 results",
                subtitle = "Differential expression HC vs RA",
                caption = "FC cutoff, 1; p-value cutoff, 10e-3",
                legendPosition = "right",
                legendLabSize = 14,
                colAlpha = 0.9,
                drawConnectors = TRUE,
                hline = c(10e-8),
                widthConnectors = 0.2)

Может кто-нибудь придумать решение этой проблемы?

1 Ответ

0 голосов
/ 14 апреля 2020

Я нашел это, наконец, я понял это. colCustom нужна пара для каждой точки, цвет и имя. Я создал матрицу keyvals

keyvals <- ifelse(
  res_complet$picked_genes < T, 'grey60',
           'forestgreen')
names(keyvals)[keyvals == 'forestgreen'] <- 'picked'
names(keyvals)[keyvals == 'grey60'] <- 'rest'

`Чем я использовал его для замены col =

`

EnhancedVolcano(res_complete,
                lab = res_complete$gene_name,
                x = "log2FoldChange",
                y = "pvalue",
                pCutoff = 10e-3,
                FCcutoff = 1,
                xlim = c(-10, 10),
                ylim = c(0, -log10(10e-12)),
                pointSize = (ifelse(res_complete$picked_genes == T, 5, 0.5)),
                labSize = 2.5,
                shape = c(19, 19, 19, 19),
                selectLab = picked_genes,
                boxedLabels = TRUE,
                title = "DESeq2 results",
                subtitle = "Differential expression HC vs RA",
                caption = "FC cutoff, 1; p-value cutoff, 10e-3",
                legendPosition = "right",
                legendLabSize = 14,
                colCustom = keyvals,
                colAlpha = 0.9,
                drawConnectors = TRUE,
                hline = c(10e-8),
                widthConnectors = 0.2)

`

Для того, чтобы чтобы все точки были видны, я отсортировал данные по фрейму результатов после логического столбца res_complete $ pick_genes и снова создал вулкан. Вуаля

...