forked from eliasventre/cardamom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Draw_GRN.py
51 lines (41 loc) · 1.35 KB
/
Draw_GRN.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
# Draw the final GRN
import os
import numpy as np
import matplotlib.pyplot as plt
from harissa.utils import build_pos, plot_network
from sys import argv
Time_Line=1
# Time_Line: draw a GRN per time point
# The corresponding matrix have been generated by infer_network.py
# And thresholded by carda.py
D=argv[1]
P=argv[2]
T=argv[3]
cwd=argv[4]
def pgr(datamatrixarray,i):
with open('../Data/Genenames.txt') as f:
Genenames = f.read().splitlines()
Genenames=np.asarray(Genenames)
# Node positions and names
pos = build_pos(datamatrixarray)
# scale to the number of genes
pos *= 8
# Figure
fig = plt.figure(figsize=(5,5))
ax = fig.gca()
# Draw the network
plot_network(datamatrixarray, pos, axes=ax, names=Genenames, scale=2, hide_isolated_genes=True, hide_stimulus_leaves=True)
# Export the figure
os.chdir(str(cwd)+"/OG"+str(D)+"/"+str(P)+"/Results")
ti='GRN.OG'+str(D)+'_'+str(P)+'_'+'Threshold='+str(T)+'_Time='+str(i)+'.pdf'
fig.savefig(ti, bbox_inches='tight')
os.chdir(str(cwd)+"/OG"+str(D)+"/"+str(P)+"/cardamom")
datamatrixarray = np.load('inter.npy')
pgr(datamatrixarray,"all")
if Time_Line:
os.chdir(str(cwd)+"/OG"+str(D)+"/"+str(P)+"/cardamom")
dim=np.load('inter_t.npy')
for i in range(0, len(dim)):
os.chdir(str(cwd)+"/OG"+str(D)+"/"+str(P)+"/cardamom")
datamatrixarray = np.load('inter_{}.npy'.format(i))
pgr(datamatrixarray,i)