我不认为CDS开始一般可以作为TSS,只有在成绩单没有5' UTR的情况下才可以。
以下是如何提取UCSC已知基因hg38轨道中所有转录本的TSS:
1.从UCSC knownGene轨道提取hg38的所有转录本:
library(TxDb.Hsapiens.UCSC.hg38. knowngene) tx <- transcripts(TxDb.Hsapiens.UCSC.hg38. txt)knownGene列= c(“tx_name”、“gene_id”)与247541年)tx #农庄对象范围和2元数据列:# seqnames范围链| tx_name gene_id # < Rle > < IRanges > < Rle > | <人物> < CharacterList > # [1] chr1 11869 - 14409 + | ENST00000456328.2 100287102 # [2] chr1 12010 - 13670 + | ENST00000450305.2 100287102 # [3] chr1 29554 - 31097 + | ENST00000473358.1 # [4] chr1 30267 - 31109 + | ENST00000469289.1 # [5] chr1 30366 - 30503 + | ENST00000607096.1 100302278 # ... ... ... ... . ... ...# [247537] chrUn_GL000220v1 155997-156149 + | enst00000620272v1 380608-380726 + | ENST00000620265.1 # [247539] chrUn_KI270442v1 217250-217401 - | ENST00000611690.1 # [247540] chrUn_KI270744v1 51009-51114 - | ENST00000616830.1 # [247541] chrUn_KI270750v1 148668-148843 + | ENST00000612925.1 # ------- # seqinfo: hg38基因组595序列(1个循环)
的gene_id
metadata列是一个CharacterList对象,将每个转录本链接到0或1个基因:
mcols(tx)$gene_id #字符长度247541 #[[1]]100287102 #[[2]]100287102 #[[3]]字符(0)#[[4]]字符(0)#[[5]]100302278 #[[6]]字符(0)#[[7]]字符(0)#[[8]]字符(0)#[[9]]字符(0)#[[10]]79501 #…# <247531更多元素>表(长度(mcols(tx)$gene_id)) # 01 # 50159 197382
实际上,将这个映射表示为字符向量可能会更方便:
mcols (tx)美元gene_id < as.character (mcols (tx) gene_id美元)tx #农庄组织与247541年对象范围和2元数据列:# seqnames范围链| tx_name gene_id # < Rle > < IRanges > < Rle > | <人物> <人物> # [1]chr1 11869 + | ENST00000456328.2 100287102 # [2] chr1 12010 + | ENST00000450305.2 100287102 # [3] chr1 29554 + | ENST00000473358.1 < NA > # [4] chr1 30267 + | ENST00000469289.1 < NA > # [5] chr1 30366 + | ENST00000607096.1 100302278 # ... ... ... ... . ... ...# [247537] chrUn_GL000220v1 155997 + | ENST00000619779.1 109864274 # [247538] chrUn_KI270442v1 380608 + | ENST00000620265.1 # [247539] chrUn_KI270442v1 217401 - | ENST00000611690.1 # [247540] chrUn_KI270744v1 51114 - | ENST00000616830.1 # [247541] chrUn_KI270750v1 148668 + | ENST00000612925.1 # ------- # seqinfo: hg38基因组的595个序列(1个循环)
2.将基因名称/符号添加到'tx'作为另一个元数据列:
TxDb.Hsapiens.UCSC.hg38中没有保存基因名称/符号。knownGene包,所以我们不能做成绩单(TxDb.Hsapiens.UCSC.hg38。knownGene, columns=c("tx_name", "gene_id", "SYMBOL"))
来获得这一信息。相反,我们从org.Hs.eg.db包中获取它:
library(org. hs . exe .db) ENTREZID2SYMBOL <- select(org. hs . exe .db, mcols(tx)$gene_id, c("ENTREZID", "SYMBOL")) # 'select()'返回many:1键和列之间的映射stopifnot(相同(ENTREZID2SYMBOL$ENTREZID, mcols(tx)$gene_id)) mcols(tx)$SYMBOL <- ENTREZID2SYMBOL$SYMBOL .
请注意,上面的另一种选择是使用Homo。sapiens包,它捆绑TxDb.Hsapiens.UCSC.hg19。knownGene和org.Hs.eg.db一起:
库(Homo.sapiens)。#包含GODb对象:GO.db ##包含关于:基因本体的数据##包含OrgDb对象:org.Hs.eg.db ##关于:智人的基因数据##分类Id: 9606 ##包含TxDb对象:TxDb. hsapiens . ucsc .hg19。knownGene ##关于智人的转录组数据##基于基因组:hg19 ## OrgDb基因id ENTREZID映射到TxDb基因id GENEID。成绩单(Homo。sapiens, columns=c("ENTREZID", "SYMBOL")) # 'select()'返回键和列之间的1:1映射# GRanges对象有82960个范围和2个元数据列:# seqnames ranges strand b| SYMBOL ENTREZID # | # [1] chr1 11874-14409 + | DDX11L1 100287102 # [3] chr1 11874-14409 + | DDX11L1 100287102 # [4] chr1 69091-70008 + | OR4F5 79501 # [5] chr1 321084-321115 + | # ... ... ... ... . ... ...# [82956] chrUn_gl000237 1-2686 - | # [82957] chrUn_gl000241 20433-36875 - | # [82958] chrUn_gl000243 11501-11530 + | # [82959] chrUn_gl000243 13608-13637 + | # [82960] chrUn_gl000247 5787-5816 - | # ------- # seqinfo: hg19基因组93个序列(1个循环)
注意Homo的原因。sapiens的转录本比TxDb.Hsapiens.UCSC.hg38少。knownGene是默认的Homo。Sapiens基于hg19而不是hg38。可以通过以下方法进行更改:
TxDb(Homo.sapiens) <- TxDb. hsapiens . ucsc .hg38. knowngene
3.使用发起人()
获得发起人或TSS:
我们使用上游= 0
而且下游= 1
以获得TSS(见?推动者
在基因组特征包中获取更多信息):
tss <- promoters(tx, upstream=0, downstream=1) tss # GRanges对象,包含247541个范围和3个元数据列:# seqnames ranges strand | tx_name gene_id SYMBOL # | # [1] chr1 11869 + | ENST00000456328.2 100287102 DDX11L1 # [2] chr1 12010 + | ENST00000450305.2 100287102 DDX11L1 # [3] chr1 29554 + | ENST00000473358.1 # [4] chr1 30267 + | ENST00000469289.1 # [5] chr1 30366 + | ENST00000607096.1 100302278 MIR1302-2 # ... ... ... ... . ... ... ...# [247537] chrUn_GL000220v1 155997 + | ENST00000619779.1 109864274 RNA5-8SN4 # [247538] chrUn_KI270442v1 380608 + | ENST00000620265.1 # [247539] chrUn_KI270442v1 217401 - | ENST00000611690.1 # [247540] chrUn_KI270744v1 51114 - | ENST00000616830.1 # [247541] chrUn_KI270750v1 148668 + | ENST00000612925.1 # ------- # seqinfo:来自hg38基因组的595个序列(1个循环)
H。
应该指出的是
Homo.sapiens
包默认包含TxDb.Hsapiens.UCSC.hg19.knownGene
,所以你必须先替换hg38版本。谢谢吉姆。关于这一点,我在最初的回答中添加了注释。H。