I have sorted out how to do this - by much trial an error (a comment
from Deepayan in a post some years ago pointed which way to go, though
it took a lot of searching to find even where to start with it:
I've bound the two sets of data together, making the relevant part an
ordered factor. It's probably not the nicest way to do it, but it works.
hits<-cbind(hits,chromosomes$name[hits$Chromosome])
names(hits)[5]<-'name'
hits$name<-factor(hits$name,ordered(chromosomes$name[1:dim(chromosomes)[1]]))
xyplot(weighted~bin|name,data=hits)
On Fri, 2009-11-20 at 12:16 +1030, Dan Kortschak wrote:> > chromosomes
> id refseq name length
> 1 0 NC_000001.9 Homo sapiens chromosome 1 247249719
> 2 1 NC_000002.10 Homo sapiens chromosome 2 242951149
> 3 2 NC_000003.10 Homo sapiens chromosome 3 199501827
> 4 3 NC_000004.10 Homo sapiens chromosome 4 191273063
> 5 4 NC_000005.8 Homo sapiens chromosome 5 180857866
> 6 5 NC_000006.10 Homo sapiens chromosome 6 170899992
> 7 6 NC_000007.12 Homo sapiens chromosome 7 158821424
> 8 7 NC_000008.9 Homo sapiens chromosome 8 146274826
> 9 8 NC_000009.10 Homo sapiens chromosome 9 140273252
> 10 9 NC_000010.9 Homo sapiens chromosome 10 135374737
> 11 10 NC_000011.8 Homo sapiens chromosome 11 134452384
> 12 11 NC_000012.10 Homo sapiens chromosome 12 132349534
> 13 12 NC_000013.9 Homo sapiens chromosome 13 114142980
> 14 13 NC_000014.7 Homo sapiens chromosome 14 106368585
> 15 14 NC_000015.8 Homo sapiens chromosome 15 100338915
> 16 15 NC_000016.8 Homo sapiens chromosome 16 88827254
> 17 16 NC_000017.9 Homo sapiens chromosome 17 78774742
> 18 17 NC_000018.8 Homo sapiens chromosome 18 76117153
> 19 18 NC_000019.8 Homo sapiens chromosome 19 63811651
> 20 19 NC_000020.9 Homo sapiens chromosome 20 62435964
> 21 20 NC_000021.7 Homo sapiens chromosome 21 46944323
> 22 21 NC_000022.9 Homo sapiens chromosome 22 49691432
> 23 22 NC_001807.4 Homo sapiens mitochondrion 16571
> 24 23 NC_000023.9 Homo sapiens chromosome X 154913754
> 25 24 NC_000024.8 Homo sapiens chromosome Y 57772954
> >
xyplot(hits~bin|chromosomes$name[Chromosome+1],data=hits,horizontal=FALSE,origin=0,lab=c(3,10),pch=20,cex=0.01,layout=c(1,5,5),strip=strip.custom(style=3,bg="grey90",par.strip.text=list(cex=0.5)),as.table=TRUE)
>
>
> I am wondering how to reorder the panels such that they are plotted in
> the order of chromosomes$id rather than chromosomes$name. I am sure that
> this has been answered in the past, but I am finding it difficult to
> understand (I have looked at factor and reorder.factor).
>
> (I've had a look at strip.custom to see if I can get what I want with
> that, and it looks like I should be able to, but I can't figure out
> how).
>
> thanks
> Dan