美文网首页
提取最长转录本

提取最长转录本

作者: 花生学生信 | 来源:发表于2024-03-11 10:26 被阅读0次

    由于可变剪切一个基因得到好多个序列长度不同的转录本,应该挑选出序列最长的最长转录本作为数据的分析


    看一下有规律的蛋白文件命名,一般是以下形式


    前面是基因,P后面是转录本

    写个脚本提取

    import sys
    import re
    
    
    filename = sys.argv[1]
    
    seqlist = {}
    
    i = 0
    with open(filename,'r') as r:
      lines=r.readlines()
      for l in lines:
        i += 1
        linecontent = l.strip()
    
        if linecontent.startswith(">"):
            if i > 1:
                name = linecontent[1:]
                id = name[0: name.rfind(".",1)]
                if id not in seqlist.keys():
                    seqlist[id] = {}
                seqlist[id][name] = ""
    
            elif i == 1:
                name = linecontent[1:]
                id = name[0: name.rfind(".",1)]
                seqlist[id] = {}
                seqlist[id][name] = ""
        else:
            seqlist[id][name] = seqlist[id][name] + linecontent
    
    maxseq = {}
    
    for k,v in seqlist.items():
        d=0
        for k1,v1 in v.items():
            d +=1
            
            if d ==1:
                maxseq[k1] = v1
                maxlen = len(v1)
                k_last = k1
            else:
                if len(v1) > maxlen:
                    maxseq[k1] = v1
                    del maxseq[k_last]
                    k_last = k1
     
            
    #生成结果
    result1 = filename + ".max"
    result2 = filename + ".max.list"
    result3 = filename + ".max.len"
    with open(result1,'w') as w1:
        with open(result2,'w') as w2:
            with open(result3,'w') as w3:
                for key,value in maxseq.items():
                    w1.write(">" + key + "\n" + value + "\n")
                    w2.write(key + "\n")
                    w3.write(key + "\t" + str(len(value))  +"\n")
    
    这个是提取的结果每个蛋白的长度信息

    使用TransDecoder软件

    最长转录本(Longest Transcript)指的是一个基因所产生的RNA分子中最长的那个。这个RNA分子可能是mRNA(信使RNA),也可能是其他类型的RNA,比如pre-mRNA(前体mRNA)、snRNA(小核RNA)或miRNA(微小RNA)等。最长转录本的长度取决于基因的转录调控和剪接等机制。
    最长ORF(Open Reading Frame)指的是一个RNA分子中具有最长的连续未被中断的编码区域,一般指的是可以被翻译成蛋白质的区域。ORF通常从起始密码子(start codon)开始,一直延伸到终止密码子(stop codon)结束。在一个RNA分子中可能存在多个ORF,而其中最长的ORF通常被认为是最可能被翻译成蛋白质的部分。
    因此,最长转录本和最长ORF的区别在于,前者指的是RNA分子中整体长度最长的那个,而后者指的是RNA分子中具有最长编码潜力的连续区域。最长转录本可以包含一个或多个ORF,但最长ORF不一定完全重叠于最长转录本中。研究这两个概念可以帮助科学家更好地理解基因的转录和翻译过程,以及基因产物(蛋白质)的功能。

    需要准备文件·pep.fasta

    TransDecoder通过运行一个包含目的转录本序列的fasta文件来实现功能。简单的用法如下:
    提取最长的开放阅读框
    TransDecoder.LongOrfs -t trans_wild12.fa 
    
    
    运行界面
    预测可能的编码区
    TransDecoder.Predict -t trans_wild12.fa
    

    候选编码区的最终集合可以在文件.transdecoder中找到。扩展名包括.pep,.cds,.gff3和.bed。

    从有参考基因组的转录结果GTF文件预测编码区域:

    1、需要有参转录组比对后拼接的转录本的GTF文件以及参考基因组序列:
    2、将GTF文件转化为GFF3文件
    3、提取、预测
    4、最后生成一个基于有参基因组的编码区域注释文件:

    /public/home/fengting/tools/TransDecoder-v5.5.0/util/gtf_genome_to_cdna_fasta.pl sbam/$id.gtf /public/home/fengting/task/5.12anno/masked/${id}.fa.masked > tra/transcripts.${id}.fasta
    
    /public/home/fengting/tools/TransDecoder-v5.5.0/util/gtf_to_alignment_gff3.pl sbam/$id.gtf > tra/transcripts.${id}.gff3
    
    TransDecoder.LongOrfs -t tra/transcripts.${id}.fasta
    TransDecoder.Predict -t tra/transcripts.${id}.fasta
    
    /public/home/fengting/tools/TransDecoder-v5.5.0/util/cdna_alignment_orf_to_genome_orf.pl \
         trans_wild12.fa.transdecoder.gff3 \
         transcripts.wild12.gff3 \
         trans_wild12.fasta > out/trs.${id}.gff3
    

    输出结果:
    longest_orfs.pep : 所有达到最小长度标准的ORF, 不管是否编码
    longest_orfs.gff3 : 在目的转录本中发现的所有ORF的位置
    longest_orfs.cds : 所有检测到的ORF的核酸编码序列
    longest_orfs.cds.top_500_longest : 前500个最长的ORF,用于训练一个编码序列的马尔科夫模型
    hexamer.scores : 每个k-mer的对数似然得分 (coding/random)
    longest_orfs.cds.scores : 每个ORF同6个阅读框间对数似然得分的总和
    longest_orfs.cds.scores.selected : 根据得分标准所选出的ORF
    longest_orfs.cds.best_candidates.gff3 : 转录本中选出的ORF的位置

    最后的输出文件在你当前的工作目录中。
    transcripts.fasta.transdecoder.pep : 最终候选ORF的蛋白质序列;所有较长ORF中的较短的候选序列已被移除。
    transcripts.fasta.transdecoder.cds : 最终候选ORF的编码区的核酸序列。
    transcripts.fasta.transdecoder.gff3 : 最终被选中的ORF在目的转录本中的位置
    transcripts.fasta.transdecoder.bed : 用来描述ORF位置的bed格式文件

    相关文章

      网友评论

          本文标题:提取最长转录本

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