如果把一组数据表组成一个列表(list),panel.fun则迭代用于各个数据表。再随机生成一个list来观察它的结构:
bedlist = list(
bed01=generateRandomBed(nc=1,nr=200), bed02=generateRandomBed(nc=1,nr=200)
)
这里用nc和nr控制一下列和行的数量,不要像上面那样1万多行做出个密恐图。nc是指除了前三列之外的数值型列数;但nr就比较随缘,最后生成的行数可能并不是我们设的200,对此,circlize包的作者也只是提醒,并没有解释。就这样吧,反正除了做练习,应该也不大会用到随机生成数据的方法。
就这样,bed01和bed02是互有联系的两个数据框,它们的第1列也有相同的内容。还可以观察到两个表每行的起止点并不一样,这是因为起止点不是对第1列负责,而是对应后面的数值。然后再生成点图:
circos.genomicTrackPlotRegion(
bedlist,track.height=0.1,ylim = c(-1,1),
panel.fun = function(region, value, ...) {
i = getI(...)
circos.genomicPoints(
region, value,pch = 16, cex = 0.1,col = i, ...)
})
</