diff recursive_agg_onefile.py @ 19:70d6350f982d draft

planemo upload commit 9e980862c8b763cf3dd0209be49f0d2d75a90614-dirty
author scottx611x
date Mon, 21 Nov 2016 10:45:17 -0500
parents e539ccf221fd
children 797818b4e2f6
line wrap: on
line diff
--- a/recursive_agg_onefile.py	Mon Nov 21 10:39:27 2016 -0500
+++ b/recursive_agg_onefile.py	Mon Nov 21 10:45:17 2016 -0500
@@ -36,7 +36,7 @@
         try:
             zoomLevel = str(n_zooms)
             src.copy('/', dest, zoomLevel)
-        except Exception as e:
+        except RuntimeWarning as e:
             print("Error: %s" % e)
         print(zoomLevel, file=sys.stderr)
 
@@ -49,37 +49,39 @@
 
         for i in range(n_zooms - 1, -1, -1):
             zoomLevel = str(i)
-
-            # aggregate
-            new_binsize = binsize * FACTOR
-            new_bins = cooler.util.binnify(chromsizes, new_binsize)
+            
+            try:
+                # aggregate
+                new_binsize = binsize * FACTOR
+                new_bins = cooler.util.binnify(chromsizes, new_binsize)
      
-            reader = CoolerAggregator(c, new_bins, chunksize)
-            
-            grp = f.create_group(zoomLevel)
-            f.attrs[zoomLevel] = new_binsize
-            cooler.io.create(grp, chroms, lengths, new_bins, reader)
+                reader = CoolerAggregator(c, new_bins, chunksize)
+                
+                grp = f.create_group(zoomLevel)
+                f.attrs[zoomLevel] = new_binsize
+                cooler.io.create(grp, chroms, lengths, new_bins, reader)
 
-            # balance
-            #with Pool(N_CPU) as pool:
-            too_close = 20000  # for HindIII
-            ignore_diags = max(int(np.ceil(too_close / new_binsize)), 3)
+                # balance
+                #with Pool(N_CPU) as pool:
+                too_close = 20000  # for HindIII
+                ignore_diags = max(int(np.ceil(too_close / new_binsize)), 3)
 
-            bias = cooler.ice.iterative_correction(
-                f, zoomLevel,
-                chunksize=chunksize,
-                min_nnz=10,
-                mad_max=3,
-                ignore_diags=ignore_diags,
-                map=map)
-            h5opts = dict(compression='gzip', compression_opts=6)
-            grp['bins'].create_dataset('weight', data=bias, **h5opts)
+                bias = cooler.ice.iterative_correction(
+                    f, zoomLevel,
+                    chunksize=chunksize,
+                    min_nnz=10,
+                    mad_max=3,
+                    ignore_diags=ignore_diags,
+                    map=map)
+                h5opts = dict(compression='gzip', compression_opts=6)
+                grp['bins'].create_dataset('weight', data=bias, **h5opts)
 
-            print(zoomLevel, file=sys.stderr)
+                print(zoomLevel, file=sys.stderr)
 
-            c = cooler.Cooler(grp)
-            binsize = new_binsize
-
+                c = cooler.Cooler(grp)
+                binsize = new_binsize
+            except RuntimeWarning:
+                pass
 
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(