Соответствие легенды для построения точек в R Manhattan Plots
Я создаю манхэттенский сюжет в R, где моя цель - выделить SNP, основываясь на признаке, к которому они относятся.
Вот хвост моего основного фрейма данных (gwas_plot):
SNP CHR BP P
58008 rs77855001 1 249213034 8.665e-01
58009 rs74322942 1 249218520 7.437e-01
58010 rs114152373 1 249222547 6.504e-02
58011 rs11205304 1 149906423 4.000e-23
58012 rs11205305 1 149906433 2.000e-16
58013 rs1061956 1 149914327 4.000e-06
У меня есть другой набор данных (gwascat_topsnp), который содержит подмножество SNP в gwas_plot, с включенным описанием. Это выглядит так:
SNP CHR BP P Description
1 rs11205301 1 149906412 4e-23 Height
2 rs11205301 1 149906412 2e-16 Height
3 rs1061954 1 149914353 4e-06 Obesity-related Traits
Я изменил исходный код для манхэттенского сюжета (оригинальный исходный код находится здесь: https://github.com/stephenturner/qqman/tree/master/R) в определенном разделе, который позволяет выделять конкретные SNP. Я изменил его так, чтобы pch был уникальным для каждой категории "Описание" (в приведенном выше кадре данных).
Это раздел, который я добавил:
keyword2=gwascat_topsnp$Description
# Highlight2: highlight snps from a second character vector
if (!is.null(highlight2)) {
if (any(!(highlight2 %in% d$SNP))) warning("You're trying to highlight SNPs that don't exist in your results.")
d.highlight2=d[which(d$SNP %in% highlight2), ]
with(d.highlight2, points(pos, logp, col="red1", pch=1:24[as.factor(keyword2)], ...))
}
Вот код, который я использую для построения манхэттенского сюжета:
par(xpd=T, mar=par()$mar+c(0,0,3,0))
manhattan_KB(gwas_plot,col=c("grey"),highlight=gwas_main[rownum,1],highlight2=gwascat_topsnp$SNP)
par(xpd=TRUE)
legend(0,40,legend=levels(as.factor(keyword2)),
col=c("red1"),pch=1:24[as.factor(keyword2)],
bty="n",cex=0.8,ncol=1,horiz=F)
par(mar=c(5,4,4,2) + 0.1)
Однако в выходных данных, показанных здесь, оба SNP с описанием, помеченным как "Высота", должны иметь один и тот же pch, однако они не имеют: у одного из них есть круг, а у одного - треугольник, а у другого - ремианы черты, немаркированные в легенда.
Может ли кто-нибудь помочь мне с тем, где я иду не так? Если вам нужна дополнительная информация, я буду рад предоставить ее.
Спасибо!