美文网首页Linux与生物信息生物信息可视化
生成用于circos的基因密度文件的python脚本

生成用于circos的基因密度文件的python脚本

作者: 王梓维 | 来源:发表于2021-01-13 10:14 被阅读0次

    最近在做circos图,由于我的重复序列的gff文件不是标准格式,无法用软件生成,只好自己写一个python脚本,本脚本可处理各种类似gff格式的文件,转化为适用于circos所用的基因密度文件。有需要可以拿去使用,改一下我用#注释的那些部分就行。

    import pandas as pd
    
    
    filename = "F:/circos/data/newEGL/XTJ.genome.fasta.out.gff"#文件名
    df =  pd.read_csv(filename,sep='\t',header=None)
    fileresult = filename + '.re'
    f = open(fileresult , "w")
    #区间
    bin = 100000
    for i in range(1,10):#染色体数
        cluster_name = 'cluster0' + str(i) #染色体名称
        chr_name = df.loc[df.iloc[:,0]== cluster_name]
        chr_end_name = chr_name.iloc[:, 4]#基因终止位置所在的列数减1,记得要减1
        right = 0
        while True:
            right += bin
            if right < chr_end_name.iloc[-1]:
                left = right - bin
    
            else:
                left = right - bin
                right = int(chr_end_name.iloc[-1])
                len(chr_end_name[chr_end_name<right])
                bool = chr_end_name < right
                less = chr_end_name[bool]
                f.write('chr0'+str(i) + '\t' + str(left) +'\t' +str(right)+'\t' + str(len(less[less >= left])) + '\n')
                break
    
            len(chr_end_name[chr_end_name<right])
            bool = chr_end_name < right
            less = chr_end_name[bool]
            f.write('chr0'+str(i) + '\t' + str(left) +'\t' +str(right)+'\t' + str(len(less[less >= left])) + '\n')
    print('finished')
    
    f.close()
    

    相关文章

      网友评论

        本文标题:生成用于circos的基因密度文件的python脚本

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