You need to sign in or sign up before continuing.
Newer
Older
fadwael.khaddar_ird.fr
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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)