4e97a66a0e7013279c1726f581fdd5dab079a023
kent
  Sat Jan 2 19:41:33 2021 -0800
Some experiments with hdf5 files from heartcellatlas.org

diff --git src/hg/oneShot/freen/freen.c src/hg/oneShot/freen/freen.c
index e208ceb..745564a 100644
--- src/hg/oneShot/freen/freen.c
+++ src/hg/oneShot/freen/freen.c
@@ -30,39 +30,47 @@
          "usage:  freen input\n");
 }
 
 #define FULLDATASET         "obs/__categories/cell_type"
 #define DIM0            4
 
 hid_t  h5dOpen(hid_t parent, char *name)
 /* Open up a subpart or die trying */
 {
 hid_t ret = H5Dopen(parent, name, H5P_DEFAULT);
 if (ret < 0)
    errAbort("Couldn't find %s in parent", name);
 return ret;
 }
 
+hid_t h5fOpen(char *fileName,  int accessType)
+{
+hid_t ret = H5Fopen(fileName, accessType, H5P_DEFAULT);
+if (ret < 0)
+   errAbort("Couldn't open %s", fileName);
+return ret;
+}
+
 void freen(char *fileName)
 /* Test something */
 {
 
 /*
  * Open file, dataset, and attribute.
  */
-hid_t file = H5Fopen (fileName, H5F_ACC_RDONLY, H5P_DEFAULT);
-hid_t dset = h5dOpen (file, FULLDATASET);
+hid_t file = h5fOpen (fileName, H5F_ACC_RDONLY);
+hid_t dset = h5dOpen (file, "obs/__categories");
 
 /*
  * Get the datatype.
  */
 hid_t filetype = H5Dget_type (dset);
 uglyf("filetype = %d\n", filetype);
 
 /*
  * Get dataspace and allocate memory for read buffer.
  */
 hid_t space = H5Dget_space (dset);
 hsize_t     dims[1] = {DIM0};
 int ndims = H5Sget_simple_extent_dims (space, dims, NULL);
 uglyf("Got %d ndims\n", ndims);
 char **rdata = (char **) malloc (dims[0] * sizeof (char *));