GID-Flow / PDGrapher /data /scripts /GRN /GENIEppi-run.py
Boom5426's picture
Upload GID-Flow project snapshot (deduped: code + key artifacts)
07fcdfe verified
Raw
History Blame Contribute Delete
2.07 kB
from GENIE3 import *
import networkx as nx
import numpy as np
import os
import time
root = 'data/raw/'
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--cell_line', default=None, nargs='+')
parser.add_argument('--data_type', default='cmp', type=str) #cmp or gen for chemical or genetic
args = parser.parse_args()
data_type = args.data_type
celllines = args.cell_line
def run_GENIE():
for cn in celllines:
startTime=time.time()
d = root + 'xpr_matrices/{}_xpr_matrix_{}_nonpertsubset.txt'.format(cn, data_type)
data=loadtxt(d, skiprows=1)
f=open(d)
gene_names=f.readline()
f.close()
gene_names = gene_names.rstrip('\n').split('\t')
VIM = GENIE3(data, ntrees=100, nthreads=20)
outdir = root + 'processed/'
os.makedirs(outdir, exist_ok=True)
with open(outdir + "{}_{}_GENIE3arr.npy".format(cn, data_type), 'wb') as f:
np.save(f, VIM)
print("Cell Line: {} - ".format(cn)+str(time.time()-startTime))
def get_edgelist():
for cn in celllines:
outdir = root + 'processed/'
startTime=time.time()
d = root + 'xpr_matrices/{}_xpr_matrix_{}_nonpertsubset.txt'.format(cn, data_type)
arr = np.load(outdir + "{}_{}_GENIE3arr.npy".format(cn, data_type))
f=open(d)
gene_names=f.readline()
f.close()
gene_names = gene_names.rstrip('\n').split('\t')
reg_link_list=get_link_list(arr, gene_names=gene_names, file_name=outdir+"{}_{}_edgelist.txt".format(cn, data_type))
g = nx.DiGraph((x,y,{'weight': v}) for (x, y, v) in reg_link_list)
nx.write_weighted_edgelist(g, outdir+'{}_{}_nxEdgelist.txt'.format(cn, data_type), delimiter=' ')
#print(reg_link_list[0], type(reg_link_list[0]))
print("Cell Line: {} - ".format(cn)+str(time.time()-startTime))
if __name__ == "__main__":
#startTime=time.time()
run_GENIE()
get_edgelist()
#print(time.time()-startTime)