Module omniplot.scripts.gff2tss

Expand source code
import sys
import os 



def writetss(f):
    foname=os.path.splitext(f)[0]+"_tss.bed"
    
    tmp=[]
    with open(f) as fin, open(foname,"w") as fout:
        for l in fin:
            if l.startswith("#"):
                continue
            l=l.split()
            if l[2]=="transcript":
                chrom, s, e, name, ori=l[0],str(int(l[3])-1),l[4], l[8], l[6]
                tmp.append([chrom, int(s), int(e), name, ori])
        tmp = sorted(tmp, key = lambda x: (x[1], x[2]))
        for chrom, s, e, name, ori in tmp:
            fout.write("\t".join([chrom, str(s), str(e), name, ori+"\n"]))

def main(f):
    writetss(f)

if __name__=="__main__":
    f=sys.argv[1]
    main(f)

Functions

def main(f)
Expand source code
def main(f):
    writetss(f)
def writetss(f)
Expand source code
def writetss(f):
    foname=os.path.splitext(f)[0]+"_tss.bed"
    
    tmp=[]
    with open(f) as fin, open(foname,"w") as fout:
        for l in fin:
            if l.startswith("#"):
                continue
            l=l.split()
            if l[2]=="transcript":
                chrom, s, e, name, ori=l[0],str(int(l[3])-1),l[4], l[8], l[6]
                tmp.append([chrom, int(s), int(e), name, ori])
        tmp = sorted(tmp, key = lambda x: (x[1], x[2]))
        for chrom, s, e, name, ori in tmp:
            fout.write("\t".join([chrom, str(s), str(e), name, ori+"\n"]))