Skip to content
Snippets Groups Projects
wig2bed.py 1.18 KiB
Newer Older
import sys
import pandas as pd
import wiggelen
import argparse


parser = argparse.ArgumentParser(description=" Script to generate tsv ")
plus = parser.add_argument('-plus', type=str, help="Path to plus file" )
minus = parser.add_argument('-minus', type=str, help='Path to the minus file ')
output = parser.add_argument('-output', type=str, help='Path to the output directory ')
args = parser.parse_args()

plus = args.plus
minus = args.minus
output = args.output
# Positive strand
r=[]
p=[]
v=[]

with open(plus,'r') as fh:
    for region, position, value in wiggelen.walk(fh):
        r.append(region)
        p.append(position)
        v.append(value)
    d_plus = pd.DataFrame(list(zip(r,p,v)), columns =['names', 'start','values'])
    d_plus["strand"]="+"

# Negative strand
r_m=[]
p_m=[]
v_m=[]

with open(minus,'r') as fh:
    for region, position, value in wiggelen.walk(fh):
        r_m.append(region)
        p_m.append(position)
        v_m.append(value)
    d_minus = pd.DataFrame(list(zip(r_m,p_m,v_m)), columns =['names', 'start','values'])
    d_minus["strand"]="-"
d=pd.concat([d_plus, d_minus])
d.sort_values(["names","start"], inplace=True)

d.to_csv(output,sep="\t", header=True, index=False)