根據(jù)GTF畫基因的多個轉(zhuǎn)錄本結(jié)構(gòu)

外顯子和內(nèi)含子是轉(zhuǎn)錄本上面的概念,是基于轉(zhuǎn)錄這個行為的定義。

而5端UTR區(qū)域和CDS區(qū)域,還有3端UTR區(qū)域,是基于翻譯這種行為的定義!

UTR(Untranslated Region),即非翻譯區(qū)。在分子遺傳學(xué)中,是指任意一個位于mRNA編碼序列兩端的片段。如果其位于5′端,則稱為5′非翻譯區(qū)(5‘-untranslated region,5’-UTR)(或“前導(dǎo)序列,leader”), 反之若位于3′端,則稱為3′非翻譯區(qū)(3'-untranslated region,3‘-UTR)(或“尾隨序列,trailer”)。

所謂CDS就是與蛋白質(zhì)序列一 一對應(yīng)的DNA序列,且該序列中間不含其它非該蛋白質(zhì)對應(yīng)的序列,不考慮mRNA加工等過程中的序列變化,總之,就是與蛋白質(zhì)的密碼子完全對應(yīng)。

一個基因的一個轉(zhuǎn)錄本的5'utr區(qū)域可以包括多個外顯子區(qū)域。

rm(list=ls())

## [url=http://www.broadinstitute.org/cancer/cga/sites/default/files/data/tools/rnaseqc/gencode.v7.annotation_goodContig.gtf.gz]http://www.broadinstitute.org/ca ... n_goodContig.gtf.gz[/url]

setwd('tmp')

gtf <- read.table('gencode.v7.annotation_goodContig.gtf.gz',stringsAsFactors = F,

? ? ? ? ? ? ? ? ? header = F,comment.char = "#",sep = '\t'

? ? ? ? ? ? ? ? ? )

table(gtf[,2])

gtf <- gtf[gtf[,2] =='HAVANA',]

gtf <- gtf[grepl('protein_coding',gtf[,9]),]

lapply(gtf[1:10,9], function(x){

? y=strsplit(x,';')

})

gtf$gene <- lapply(gtf[,9], function(x){

? y <- strsplit(x,';')[[1]][5]

? strsplit(y,'\\s')[[1]][3]

? }

)

draw_gene = 'TP53'

structure = gtf[gtf$gene==draw_gene,]


colnames(structure) =c(

? 'chr','db','record','start','end','tmp1','tmp2','tmp3','tmp4','gene'

)

gene_start <- min(c(structure$start,structure$end))

gene_end <- max(c(structure$start,structure$end))

tmp_min=min(c(structure$start,structure$end))

structure$new_start=structure$start-tmp_min

structure$new_end=structure$end-tmp_min

tmp_max=max(c(structure$new_start,structure$new_end))

num_transcripts=nrow(structure[structure$record=='transcript',])

tmp_color=rainbow(num_transcripts)

x=1:tmp_max;y=rep(num_transcripts,length(x))

#x=10000:17000;y=rep(num_transcripts,length(x))

plot(x,y,type = 'n',xlab='',ylab = '',ylim = c(0,num_transcripts+1))

title(main = draw_gene,sub = paste("chr",structure$chr,":",gene_start,"-",gene_end,sep=""))

j=0;

tmp_legend=c()

for (i in 1:nrow(structure)){

? tmp=structure[i,]

? if(tmp$record == 'transcript'){

? ? j=j+1

? ? tmp_legend=c(tmp_legend,paste("chr",tmp$chr,":",tmp$start,"-",tmp$end,sep=""))

? }

? if(tmp$record == 'exon') lines(c(tmp$new_start,tmp$new_end),c(j,j),col=tmp_color[j],lwd=4)

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容