from rpy2.robjects import r import rpy2.robjects as ro import rpy2.robjects.numpy2ri import rpy2.rpy_classic as rpy import h5py try: filename = sys.argv[1] projectname = sys.argv[2] except Exception: print "USAGE:\npython rundecomp.py matrixfile projectname" print "Filename: " + filename + "\nProject: " + projectname mat = NamedMatrix.readfromfile(filename, nullvalue="-1", header=True, rownames=True, separator="\t", skip=0) NamedMatrixHDF5.writeNamedMatrix(mat, projectname, "/freqs", overwrite=True) sigfn = lambda x: str(",".join(map(lambda y: str(y), (x != float("inf")) * 1))) setnames = np.apply_along_axis(sigfn, 1, mat.matrix) unq_subs = np.unique(setnames) colfn = lambda x: np.array(map(lambda y: y != str(0), x.split(","))) cols = map(colfn, unq_subs) h5 = h5py.File(projectname) h5.create_group("subsets") hndl = h5["/subsets"] hndl.create_dataset("names", data=unq_subs) hndl.create_dataset("columns", data=cols)
def readfromfile(hdf5file, url, *args, **kwargs): mat = nm.readfromfile(*args, **kwargs) nmat = writeNamedMatrix( mat, hdf5file, url, overwrite=True) return nmat