[Py008] gff文件处理2

作者: 安哥生个信 | 来源:发表于2018-10-20 22:53 被阅读61次

    根据第三列的type,提取mRNA及相应exon的信息。

    [Py005]是一样的,但是这次换一种处理思路。

    思路:

    ​ 每次读取一行,拆分为list;

    ​ 将第三列的特征值追加到新命令的list(type)中;

    ​ 如果第三列的特征值为mRNA,打印该行;

    ​ 如果第三列的特征值为exon,并且通过true_exon函数判断符合“mRNA;exon;exon”之类的顺序,则打印该行。

    import re
    
    def true_exon(list):
        list = list[::-1]
        list = ";".join(list)
        if re.match(r'(?:exon;)+mRNA', list):
            return True
        else:
            return False
    
    type = []
    outGFF = open('out.gff', 'w')
    for line in open('in.gff'):
        line_list = line.strip().split('\t')
        type.append(line_list[2])
        if line_list[2] == 'mRNA':
            outGFF.write(line)
        if line_list[2] == 'exon' and true_exon(type):
            outGFF.write(line)
    outGFF.close()
    

    相关文章

      网友评论

        本文标题:[Py008] gff文件处理2

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