美文网首页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