寻找基因间区域

Finding intergenic regions

我想提取染色体的基因间坐标。我做了一大块代码,但由于我是这些包的新手,我不确定我是否遵循了正确的逻辑:

library(IRanges)
library(GenomicFeatures)
library(TxDb.Hsapiens.UCSC.hg19.knownGene)
txdb = transcriptsBy(TxDb.Hsapiens.UCSC.hg19.knownGene, by = "gene",use.names=TRUE)

#For example, only I am interested in intergenic coordinates in chromosome 1
seqlevels(txdb, force=TRUE) = c("chr1")

#Creates IRanges 

ir = IRanges(start=unlist(start(txdb)), end=unlist(end(txdb)), names=names(txdb)) 

# Reduce overlapping gene positions to continuous range
ir.red = reduce(ir) # Collapses ranges of overlapping genes to continuous range.

#Identify overlaps among the initial and reduced range data sets
overlap = findOverlaps(ir, ir.red) 

我必须处理“+”和“-”链吗?

最简单的方法是从 genes() 访问器开始,reduce() 并取补:

library(TxDb.Hsapiens.UCSC.hg19.knownGene)
genic <- genes(TxDb.Hsapiens.UCSC.hg19.knownGene)
genic <- reduce(genic, ignore.strand=T)
intergenic <- gaps(genic)
intergenic <- intergenic[strand(intergenic) == "*"] #This is important!!!

最后一步非常重要,否则每条染色体会额外获得 2 个条目(+ 和 - 各一个)。

虽然不是您问题的直接答案,但值得一提的是,您可以直接从 UCSC Table 浏览器 http://genome.ucsc.edu/cgi-bin/hgTables 获取这些数据。 table 浏览器允许您设置两条轨道或它们的互补轨道之间的交叉点,甚至可以将其返回到 table 浏览器中的自定义轨道以进行进一步操作,允许对多个轨道进行任意复杂的嵌套查询和table秒。针对您的目的的步骤如下...

1) Select 您感兴趣的基因组和组装。

2) 选择"Genes and Gene Predictions"作为组,"UCSC Genes"作为曲目,"knownGene"作为table。

3) 如果您想要单个染色体或染色体的一部分,请在 "region" 行的框中输入,否则将其设置为 "genome"

4) 单击 "intersection" 行 "create"

5) 进入下一页后,select group="Mapping and Sequencing"、track="Assembly"、table="Assembly (gold)",单击单选按钮"Base-pair-wise intersection (AND) of UCSC Genes and Assembly",勾选 "Complement UCSC Genes before base-pair-wise intersection/union",然后点击 "submit"。

6) 返回主 Table 浏览器屏幕,输入您想要的任何输出选项,然后点击 "get output" 检索基因间区域。

狩猎愉快!