美文网首页chipseq
根据GTF画基因的多个转录本结构

根据GTF画基因的多个转录本结构

作者: 白云梦_7 | 来源:发表于2018-06-05 11:19 被阅读0次

外显子和内含子是转录本上面的概念,是基于转录这个行为的定义。

而5端UTR区域和CDS区域,还有3端UTR区域,是基于翻译这种行为的定义!

UTR(Untranslated Region),即非翻译区。在分子遗传学中,是指任意一个位于mRNA编码序列两端的片段。如果其位于5′端,则称为5′非翻译区(5‘-untranslated region,5’-UTR)(或“前导序列,leader”), 反之若位于3′端,则称为3′非翻译区(3'-untranslated region,3‘-UTR)(或“尾随序列,trailer”)。

所谓CDS就是与蛋白质序列一 一对应的DNA序列,且该序列中间不含其它非该蛋白质对应的序列,不考虑mRNA加工等过程中的序列变化,总之,就是与蛋白质的密码子完全对应。

一个基因的一个转录本的5'utr区域可以包括多个外显子区域。

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)

}

相关文章

网友评论

    本文标题:根据GTF画基因的多个转录本结构

    本文链接:https://www.haomeiwen.com/subject/kodpsftx.html