barplot - 频率应基于列和比率(x轴)的模式

时间:2012-12-12 22:50:54

标签: r

让我快速解释一下这个问题。想象一下像这样的数据集

data<- data.frame("Amino.acid" = c("TRPPS;PNSTED", "ERDDS", "PSRND", "SDEEN", "GSRTN"), 
                   "log2.ratio"=c(2.4,0,-1,-2,-1))

实际上我的列表要长得多12000行。我真正想做的是获得特定氨基酸模式的频率,然后绘制密度与log2比率的关系。因此,例如,应在氨基酸列中检测模式R-X-X-S,有时序列由“;”分隔。并且应该对两者进行模式分析。

我可以考虑像gsub和子集函数这样丑陋的东西来获得很多log2比率,但是应该有一个优雅的解决方案。 (可能有密度函数??)

最后,我想获得密度(y)与log2raito(x)的特定模式和除了这种特定氨基酸序列模式之外的所有其他模式的图。

1 个答案:

答案 0 :(得分:0)

我厌恶将数据帧命名为“data”,因此将其命名为“pdat”:

 barplot( table(pdat[ grep("R[A-Z]{2}S", pdat$Amino.acid), "log2.ratio"] ))

这与我可以通过这个小数据集获得的具体情况相同。 grepping模式不会注册“AARP; SNORE”:

> grep("R[A-Z]{2}S","AARP;SNORE")
integer(0)

这是互补行的图(仅作为减号):

barplot( table(pdat[ -grep("R[A-Z]{2}S", pdat$Amino.acid), "log2.ratio"] ))

这不是密度,因此达到hte密度函数会使你的努力失去作用。