几个月来我一直在尝试弄清楚如何做到这一点,所以希望有人能给我一些澄清。我创建了一个 R 脚本,它显示了我的数据库基因表中的所有值。所以它给出了每个基因的长度(以核苷酸为单位),我将它水平放置。
主要思想是从另一个名为 QGRS 的表中获取值,其中包含每个 QGRS 的长度。我遇到的问题是一个基因上有很多 QGRS,所以我不知道如何使用 R 来显示这一点。可能有更好的方法,但我的想法是让水平基因长度条为一种颜色,并让 QGRS 长度以不同颜色出现在这些条上,以突出 QGRS 在基因上的位置。这适用于所有基因。我不明白如何在单个条上获取多个值,然后如何正确叠加两个图。
我希望这是有道理的。这是我所拥有的:
############## Setup for Chromosome Lengths ##############
quartz() #for mac
genes<-read.delim("genes_plot.out", header=FALSE)
sortmat<-genes[order(genes$V2),]
#qgrs<-read.delim("qgrs_plot.out", header=FALSE)
############## Generate Horizontal Genes Plot ##############
par(bg = "darkseagreen1")
png("genes_plot.png", height=1500, width=1000)
barplot( sortmat[,3], names.arg=sortmat[,1], col="red", #genes
horiz=TRUE,
las='1',
main="Human QGRS by Genes",
ylab="",
space=30,
xlab="Length of Gene [# of nucleotides]", )
mtext("Gene ID [RefSeq]", side=0, line=2)
############## Include QGRS over Genes Plot ##############
#par(new=TRUE) #to superimpose the two barplots
#barplot( qgrs[,1] ) #qgrs
############## End ##############
dev.off()
这是它输出的内容[长图!]:
** 注意,左边的数字被剪掉了一点,我不知道为什么......但它们是直接来自 NCBI 的基因 ID,只是将它们标记为的参考。
如果需要更多信息,请告诉我。请,任何帮助我将不胜感激。我真的试图寻找答案几个月(整个过去的学期),但我认为我在这方面不是很胜任。这对我来说太复杂了。
现在我知道我可以为 QGRS 制作另一个图表,但如果以同样的方式,它们每个都会出现在不同的线上!所以这没有帮助。
另外,我的基因表是这样工作的。对于人类基因组中的所有染色体,我每个染色体有 5 个基因(如果分别计算 X 和 Y,则为 24 个)。因此,如果需要,基因图也可以组合成只有 24 行,每行由 5 个基因组成,但我怀疑这是否有帮助。
- - - - 编辑 - - - - - -
这是来自基因表的样本数据,即 1 号和 2 号染色体的 5 个基因:
GeneID Chromosome Length [nucleotides]
8682 1 10037
10623 1 18364
441878 1 858
645382 1 2986
650901 1 917
841 2 54268
28949 2 38
80303 2 76724
729992 2 1072
100873329 2 106
这是来自 QGRS 表的示例数据 [Gene '8682' 的几行 [上述示例数据中的第一行]
Start End Chromosome
389 391 1
524 526 1
739 741 1
834 836 1
904 906 1