前几天有个客户给过来一个需求,简单说就是一堆基因列表附带数值,需要将其按照数值不同涂色在KEGG pathway上。
这个活儿我还真没干过,记得KEGG官网上有工具,去看了一下,现在叫KEGG mapper,弄了半天居然没弄懂。
算了,换个别的工具吧。
记得clusterProfiler包里有涂色工具,去查了下,是来源于pathview包的,于是看了下后者,这个包其实主要就一个函数就叫pathview,大致研究了一下,连参数详情都没有遍览呢,反正不需要画compound什么的,试了几下画成功了,就把代码记录下来。
以后有更复杂的需求再研究一下这个包吧。
pathview包可以画(涂色)两类图,一类是KEGG pathway map,另一类是使用Gviz包画的图。Gviz我还没开始学习呢,先搁置,反正目前无此需求。
我的数据整理了一下,共两列。第一列为Entrez ID,第二列为基因数值,在此处它的范围是-90~90。物种为大鼠。
先以cell cycle这个pathway为例来画图吧,map id为04110。
pathview函数要求的输入数据为vector或者matrix,vector是单样本时的数据,元素名称就是gene ID。matrix适用于多样本情况下。
这里一个样本我照样用matrix吧。
代码如下:
>library(pathview)
>demo<-read.table(file="demo.txt",sep="\t",,header= TRUE)
#demo数据为两列,第一列为EntrezID,第二列为基因变化数据
>head(demo)
>rownames(demo)<-demo[,1]
#将行命名为EntrezID
>head(demo)
>demo.data<-data.matrix(demo)
>class(demo.data)
>pv.out<-pathview(gene.data=demo.data[,2],pathway.id="04110",species="rno",limit=list(gene=90),out.suffix="demo")
#limit = list(gene=90) 是指定色阶范围为-90~90,不指定时默认为-1~1。#若色阶范围是-100~50,则可以指定为limit = list(gene=c(-100,50)
这样,一个pathway的涂色就完成了,结果如图。
网上找到一篇很好的教程,地址是https://www.bioinfo-scrounger.com/archives/639/
今天先把这个活儿完成,以后有机会好好研究一下这个包,连同Gviz什么的一起搞定。