Making a circos plot to show expression for a gene set rather than whole genome
2
0
Entering edit mode
Peter.Wood • 0
@peterwood-7181
Last seen 6.7 years ago
Australia

Hello,

I am a new user to the OmicCircos package and the R code. For a little while I have been trying to create a circos plot to show the expression of a gene set. However, after constructing data frames with gene names and segment sizes, the segAnglePo and sim.circos functions consistently revert to the hg19/hg18 genome to form the anchor of the figure. If someone please explain how to construct an anchor for the circos plot using a set of genes rather than the entire human genome it would be much appreciated.

Kind regards,

Peter.

Gene set gene set analysis omiccircos • 2.6k views
ADD COMMENT
2
Entering edit mode
@hu-ying-nihnci-e-6375
Last seen 5.5 years ago
United States

You maybe wanted one gene on one segment. Please try the code as the following. 

The output file is at https://www.dropbox.com/s/pvudjol3s0wkde1/BioC_support01.pdf?dl=0

NOTE: Please use the updated version http://master.bioconductor.org/packages/3.1/bioc/html/OmicCircos.html

rm(list=ls());
library(OmicCircos);

gene.n  <- 200;
chr     <- paste0("Gene", 1:gene.n);
val     <- rnorm(gene.n);
seg.dat <- data.frame(chr=chr, start=rep(1, gene.n), end=rep(1,gene.n)+1, name=chr, value=val);
seg.c   <- segAnglePo(seg.dat, seg=chr);

cols    <- rainbow(10, alpha=0.8);

pdf("BioC_support01.pdf", 8,8);
par(mar=c(2, 2, 2, 2))
plot(c(1,800), c(1,800), type="n", axes=FALSE, xlab="", ylab="");

circos(R=350, type="chr", cir=seg.c, print.chr.lab=TRUE, W=8)
circos(R=270, cir=seg.c, W=80, mapping=seg.dat, type="s", col.v=5, col=cols, B=T, cex=abs(seg.dat[,5])*1.5);
circos(R=190, cir=seg.c, W=80, mapping=seg.dat, type="b", col.v=5, col=cols, B=F, lwd=abs(seg.dat[,5])*1.5);
circos(R=110, cir=seg.c, W=80, mapping=seg.dat, type="b2", col.v=5, col=cols[c(1,7)], cutoff=0, B=T, lwd=2);

dev.off();

ADD COMMENT
0
Entering edit mode

Hello Ying:

I had some difficulty to create a cir object with segAnglePo() function.

My dataframe is like this one, but I always got error as

> segAnglePo(seg.dat=seg.f, seg=seg.name)

Error in names(x) <- value :  'names' attribute [5] must be the same length as the vector [3]

Not sure what I missed, and I appreciate your advice on this issue.
Thanks a lot!
Yifang

ADD REPLY
0
Entering edit mode
yifangt ▴ 20
@yifangt-9770
Last seen 2.7 years ago
Canada/NRC

Moved to comments
 

ADD COMMENT

Login before adding your answer.

Traffic: 151 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6