-
Notifications
You must be signed in to change notification settings - Fork 0
/
mix_DMDI.py
56 lines (45 loc) · 1.36 KB
/
mix_DMDI.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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env python3
'''
Author: Daniel Del Hoyo Gomez
Script that mixes the DDI and the DMI databases in an unic file and
gives a arbitrary probability to DMIs.
Sort the pairs
Input: python3 mix_DMDI.py <DDI_file> <DMI_file> <DMI_score>
[out_name=DMDI_database.tsv]
'''
from sys import argv,exit
import subprocess as sbp
import os
def parse_DDI(ddi_file,outname):
'''Add DDI interactions to file
'''
f=open(outname,'w')
with open(ddi_file) as filex:
for line in filex:
line=line.split()
pair=[line[0],line[1]]
pair.sort()
f.write('{}\t{}\t{}\n'.format(pair[0],pair[1],line[2]))
f.close()
def parse_DMI(dmi_file,dmi_score,outname):
'''Add DMI interactions to file with the arbitrary score
'''
f=open(outname,'a')
with open(dmi_file) as filex:
for line in filex:
line=line.split()
pair=[line[0],line[2]]
pair.sort()
f.write('{}\t{}\t{}\n'.format(pair[0],pair[1],dmi_score))
f.close()
if __name__=="__main__":
ddi_file=argv[1]
dmi_file=argv[2]
dmi_score=argv[3]
if len(argv)>4:
outname=argv[4]
else:
outname='DMDI_{}_database.tsv'.format(dmi_score)
parse_DDI(ddi_file,outname)
if dmi_file!='0':
parse_DMI(dmi_file,dmi_score,outname)