• R语言
  • R语言在多肽跨膜分布中的运用 绘图着色

根据Topology=o15-34i47-65o69-91i ,将下列肽段

MVEAILRSTLGARTTVMAALSYLSVLCFVPLLVDRDDEFVYFHAKQGLVIWMWGVLALFALHVPVLGKWIFGFSSMGVLVFSLLGLVSVVFQRAWKLPVVSWVADRI

用R语言着色(字母和背景都要着色)。

i代表膜内,o代表膜外,数值-数值是跨膜,膜外是黑色,跨膜是红色,膜内是绿色,就是说1-14是黑色,15-34是红色,35-46是绿色,47-65是红色,65-68是黑色,69-91是红色,92至最后是绿色。

请大神们指教啊![s:13]我刚学R,[s:12],前辈们搭把手啊![s:11]

回复 第1楼 的 alick101:

<br />
library(grid)<br />
'MVEAILRSTLGARTTVMAALSYLSVLCFVPLLVDRDDEFVYFHAKQGLVIWMWGVLALFALHVPVLGKWIFGFSSMGVLVFSLLGLVSVVFQRAWKLPVVSWVADRI'->todo<br />
#i代表膜内,<br />
#o代表膜外,<br />
matrix(c('1-14','gray','15-34','red','35-46','green','47-65','red','65-68','gray','69-91','red','92-107','green'), ncol=2,byrow=T)->mat<br />
rep(mat[,2],0-sapply(mat[,1],function(xxx) eval(parse(text=xxx[1]))))->inter.col<br />
head(seq(0,1,length.out=nchar(todo)+2)[-1],nchar(todo))->wei<br />
png('try.png', width=1200, height=400, type='cairo')<br />
grid.newpage()<br />
pushViewport(viewport())<br />
grid.rect(x=wei,width=1/nchar(todo),height=0.1,default='npc',gp=gpar(col=inter.col,fill=inter.col))<br />
grid.text(x=wei,label=unlist(strsplit(todo,NULL)),gp=gpar(fontface='bold'))<br />
dev.off()</p>
<p>
</p>

47-65是红色,65-68是黑色,改成:

47-65是红色,66-68是黑色

回复 第2楼 的 luzifer:谢谢luzifer前辈!matrix()函数这个只能针对一个多肽吧?我有很多个topology,对应很多多肽,那么怎么才可以将所有的都着上色呢?

请前辈指教啊![s:19][s:19]

崇拜楼上用grid包!

凑个热闹[s:11]

Asymptote代码乱入:https://github.com/JiangXD/cos_post/blob/master/protein-seq/protein-seq.asy

回复 第4楼 的 doctorjxd:回复 第4楼 的 doctorjxd:前辈,我不会用哎...[s:12][s:12][s:12]