-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdemux_atac.py
30 lines (28 loc) · 1013 Bytes
/
demux_atac.py
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
#! /usr/bin/python
import gzip
import io
import sys
def demux(r1,r2,r3,p):
i=0
end=p+16
with io.BufferedReader(gzip.open(r1,'rb')) as f1, io.BufferedReader(gzip.open(r2,'rb')) as f2, io.BufferedReader(gzip.open(r3,'rb')) as f3:
for line1,line2,line3 in zip(f1,f2,f3):
if i == 0:
store11=line1.decode()
store13=line3.decode()
i+=1
elif i==1:
store21 = line1.decode()
store23 = line3.decode()
bc = line2.decode()[p:end]
i+=1
elif i==2:
store31=line1.decode()
store33=line3.decode()
i+=1
elif i==3:
bcq = line2.decode()[p:end]
newlines=store11.split()[0]+' BC:Z:'+bc+bcq+'\n'+store21+store31+line1.decode()+store13.split()[0]+' BC:Z:'+bc+bcq+'\n'+store23+store33+line3.decode()
sys.stdout.write(newlines)
i=0
return 0