diff --git a/prepare_negative_dataset.py b/prepare_negative_dataset.py new file mode 100644 index 0000000..50daa50 --- /dev/null +++ b/prepare_negative_dataset.py @@ -0,0 +1,71 @@ +import sys +import numpy as np +import pandas as pd +import os +import gc +import progressbar +import random +from read_data import read_data_homology,read_data_genome + +arg=sys.argv +arg=arg[1:] + +nos=int(arg[0]) +seed=int(arg[1]) +random.seed(seed) + +a_h,d_h=read_data_homology("data_homology") +a=[] +d={} +a,d=read_data_genome("data",a,d) +assert(len(a)==len(d)) +indexes_gd=[list(df.index.values) for df in a] +d=list(d.keys()) + +gmap={} +indexes_hd=[] +for df in progressbar.progressbar(a_h): + indexes_hd.append(list(df.index.values)) + hgids=df.homology_gene_stable_id.unique() + for h in hgids: + gmap[h]=1 + + + +col_names=["gid","species","hgid","h_species"] +nohd=len(a_h) +nogd=len(a) +rows=[] +for i in progressbar.progressbar(range(nos)): + while(1): + try: + slh=random.randrange(nohd) + slg=random.randrange(nogd) + slgd=a[slg] + n1=d[slg] + indexes=indexes_gd[slg] + ind=random.randrange(len(indexes)) + try: + _=gmap[slgd.loc[indexes[ind]].gene_id] + continue + except: + slhd=a_h[slh] + lid=indexes_hd[slh] + ind_1=random.randrange(len(slhd)) + row=slhd.loc[lid[ind_1]] + r={} + r["gene_stable_id"]=row.gene_stable_id + r["species"]=row.species + r["homology_gene_stable_id"]=slgd.loc[indexes[ind]].gene_id + r["homology_species"]=n1 + rows.append(r) + break + except: + continue + +a_h=[] +gc.collect() + +ndf=pd.DataFrame(rows) +print(ndf[0:10]) +ndf.to_hdf("negative_dataset.h5",key="ndf",mode="w") diff --git a/read_negative_dataset.py b/read_negative_dataset.py new file mode 100644 index 0000000..c8ba596 --- /dev/null +++ b/read_negative_dataset.py @@ -0,0 +1,6 @@ +import pandas as pd + +df=pd.read_hdf("negative_dataset.h5",key="ndf") + +print(df.info()) +print(df.loc[33333:33433]) \ No newline at end of file