cell-data-loader 0.0.43__tar.gz → 0.0.46__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/PKG-INFO +5 -5
  2. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/pyproject.toml +4 -4
  3. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/requirements.txt +1 -0
  4. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/src/cell_data_loader/__init__.py +1 -1
  5. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/src/cell_data_loader/cell_data_loader.py +208 -34
  6. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/src/cell_data_loader/util.py +35 -1
  7. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/.gitattributes +0 -0
  8. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/.github/workflows/publish-to-pypi.yml +0 -0
  9. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/README.md +0 -0
  10. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/3368914_4_non_tumor/ny=45056_nx=35840.jpg +0 -0
  11. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/4173633_5.svs +0 -0
  12. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=0_nx=0.jpg +0 -0
  13. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=15872.jpg +0 -0
  14. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=16384.jpg +0 -0
  15. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=16896.jpg +0 -0
  16. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=17920.jpg +0 -0
  17. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=18432.jpg +0 -0
  18. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=18944.jpg +0 -0
  19. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=19456.jpg +0 -0
  20. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=19968.jpg +0 -0
  21. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=20480.jpg +0 -0
  22. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=20992.jpg +0 -0
  23. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=21504.jpg +0 -0
  24. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=22016.jpg +0 -0
  25. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=22528.jpg +0 -0
  26. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=23040.jpg +0 -0
  27. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=23552.jpg +0 -0
  28. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=24064.jpg +0 -0
  29. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=25088.jpg +0 -0
  30. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10240_nx=25600.jpg +0 -0
  31. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=15360.jpg +0 -0
  32. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=15872.jpg +0 -0
  33. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=16384.jpg +0 -0
  34. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=16896.jpg +0 -0
  35. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=17408.jpg +0 -0
  36. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=17920.jpg +0 -0
  37. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=18432.jpg +0 -0
  38. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=18944.jpg +0 -0
  39. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=19456.jpg +0 -0
  40. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=19968.jpg +0 -0
  41. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=20480.jpg +0 -0
  42. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=20992.jpg +0 -0
  43. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=21504.jpg +0 -0
  44. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=22016.jpg +0 -0
  45. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=22528.jpg +0 -0
  46. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=23040.jpg +0 -0
  47. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=23552.jpg +0 -0
  48. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=24576.jpg +0 -0
  49. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=25088.jpg +0 -0
  50. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=10752_nx=25600.jpg +0 -0
  51. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=15360.jpg +0 -0
  52. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=15872.jpg +0 -0
  53. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=16384.jpg +0 -0
  54. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=16896.jpg +0 -0
  55. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=17920.jpg +0 -0
  56. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=18432.jpg +0 -0
  57. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=18944.jpg +0 -0
  58. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=19456.jpg +0 -0
  59. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=19968.jpg +0 -0
  60. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=20480.jpg +0 -0
  61. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=20992.jpg +0 -0
  62. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=21504.jpg +0 -0
  63. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=22016.jpg +0 -0
  64. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=23040.jpg +0 -0
  65. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=23552.jpg +0 -0
  66. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=25088.jpg +0 -0
  67. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11264_nx=25600.jpg +0 -0
  68. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=14848.jpg +0 -0
  69. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=15360.jpg +0 -0
  70. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=17920.jpg +0 -0
  71. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=18432.jpg +0 -0
  72. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=18944.jpg +0 -0
  73. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=19456.jpg +0 -0
  74. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=19968.jpg +0 -0
  75. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=20480.jpg +0 -0
  76. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=20992.jpg +0 -0
  77. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=21504.jpg +0 -0
  78. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=22016.jpg +0 -0
  79. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=22528.jpg +0 -0
  80. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=23040.jpg +0 -0
  81. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=23552.jpg +0 -0
  82. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=24576.jpg +0 -0
  83. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=25088.jpg +0 -0
  84. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=25600.jpg +0 -0
  85. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=11776_nx=26624.jpg +0 -0
  86. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=14848.jpg +0 -0
  87. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=16896.jpg +0 -0
  88. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=17920.jpg +0 -0
  89. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=18432.jpg +0 -0
  90. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=18944.jpg +0 -0
  91. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=19456.jpg +0 -0
  92. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=19968.jpg +0 -0
  93. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=20480.jpg +0 -0
  94. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=20992.jpg +0 -0
  95. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=22016.jpg +0 -0
  96. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=23040.jpg +0 -0
  97. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=23552.jpg +0 -0
  98. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=24064.jpg +0 -0
  99. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=24576.jpg +0 -0
  100. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=25088.jpg +0 -0
  101. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=25600.jpg +0 -0
  102. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=26112.jpg +0 -0
  103. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=26624.jpg +0 -0
  104. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=27136.jpg +0 -0
  105. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=27648.jpg +0 -0
  106. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12288_nx=28160.jpg +0 -0
  107. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=13824.jpg +0 -0
  108. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=14848.jpg +0 -0
  109. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=15360.jpg +0 -0
  110. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=16384.jpg +0 -0
  111. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=16896.jpg +0 -0
  112. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=17408.jpg +0 -0
  113. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=17920.jpg +0 -0
  114. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=18432.jpg +0 -0
  115. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=19456.jpg +0 -0
  116. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=19968.jpg +0 -0
  117. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=20480.jpg +0 -0
  118. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=22016.jpg +0 -0
  119. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=23552.jpg +0 -0
  120. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=24064.jpg +0 -0
  121. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=24576.jpg +0 -0
  122. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=25088.jpg +0 -0
  123. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=25600.jpg +0 -0
  124. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=26112.jpg +0 -0
  125. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=26624.jpg +0 -0
  126. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=12800_nx=27136.jpg +0 -0
  127. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=14848.jpg +0 -0
  128. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=15360.jpg +0 -0
  129. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=16384.jpg +0 -0
  130. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=16896.jpg +0 -0
  131. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=18432.jpg +0 -0
  132. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=18944.jpg +0 -0
  133. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=19456.jpg +0 -0
  134. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=22016.jpg +0 -0
  135. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=23552.jpg +0 -0
  136. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=24064.jpg +0 -0
  137. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=24576.jpg +0 -0
  138. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=25088.jpg +0 -0
  139. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=25600.jpg +0 -0
  140. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=26112.jpg +0 -0
  141. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=26624.jpg +0 -0
  142. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13312_nx=27136.jpg +0 -0
  143. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=14848.jpg +0 -0
  144. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=15360.jpg +0 -0
  145. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=15872.jpg +0 -0
  146. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=16896.jpg +0 -0
  147. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=18944.jpg +0 -0
  148. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=19456.jpg +0 -0
  149. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=19968.jpg +0 -0
  150. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=20480.jpg +0 -0
  151. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=21504.jpg +0 -0
  152. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=22016.jpg +0 -0
  153. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=22528.jpg +0 -0
  154. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=23040.jpg +0 -0
  155. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=23552.jpg +0 -0
  156. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=24064.jpg +0 -0
  157. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=24576.jpg +0 -0
  158. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=25088.jpg +0 -0
  159. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=25600.jpg +0 -0
  160. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=26112.jpg +0 -0
  161. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=26624.jpg +0 -0
  162. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=27136.jpg +0 -0
  163. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=28160.jpg +0 -0
  164. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=29696.jpg +0 -0
  165. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=31232.jpg +0 -0
  166. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=31744.jpg +0 -0
  167. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=32256.jpg +0 -0
  168. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=13824_nx=32768.jpg +0 -0
  169. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=14848.jpg +0 -0
  170. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=15360.jpg +0 -0
  171. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=15872.jpg +0 -0
  172. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=18944.jpg +0 -0
  173. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=19456.jpg +0 -0
  174. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=19968.jpg +0 -0
  175. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=20480.jpg +0 -0
  176. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=20992.jpg +0 -0
  177. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=22016.jpg +0 -0
  178. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=22528.jpg +0 -0
  179. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=23040.jpg +0 -0
  180. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=23552.jpg +0 -0
  181. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=24064.jpg +0 -0
  182. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=24576.jpg +0 -0
  183. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=25088.jpg +0 -0
  184. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=26112.jpg +0 -0
  185. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=27648.jpg +0 -0
  186. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=30720.jpg +0 -0
  187. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=31232.jpg +0 -0
  188. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=31744.jpg +0 -0
  189. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=32256.jpg +0 -0
  190. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=32768.jpg +0 -0
  191. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14336_nx=5120.jpg +0 -0
  192. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=19968.jpg +0 -0
  193. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=20992.jpg +0 -0
  194. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=21504.jpg +0 -0
  195. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=22016.jpg +0 -0
  196. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=22528.jpg +0 -0
  197. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=23040.jpg +0 -0
  198. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=23552.jpg +0 -0
  199. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=24064.jpg +0 -0
  200. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=32256.jpg +0 -0
  201. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=32768.jpg +0 -0
  202. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=33280.jpg +0 -0
  203. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=34816.jpg +0 -0
  204. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=14848_nx=35328.jpg +0 -0
  205. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=10240.jpg +0 -0
  206. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=18944.jpg +0 -0
  207. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=19456.jpg +0 -0
  208. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=19968.jpg +0 -0
  209. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=20480.jpg +0 -0
  210. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=20992.jpg +0 -0
  211. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=21504.jpg +0 -0
  212. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=22016.jpg +0 -0
  213. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=22528.jpg +0 -0
  214. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=23040.jpg +0 -0
  215. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=23552.jpg +0 -0
  216. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=24064.jpg +0 -0
  217. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=31744.jpg +0 -0
  218. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=32256.jpg +0 -0
  219. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=32768.jpg +0 -0
  220. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=33280.jpg +0 -0
  221. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=33792.jpg +0 -0
  222. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=34304.jpg +0 -0
  223. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=34816.jpg +0 -0
  224. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15360_nx=35328.jpg +0 -0
  225. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=1536_nx=56832.jpg +0 -0
  226. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=18944.jpg +0 -0
  227. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=19968.jpg +0 -0
  228. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=20480.jpg +0 -0
  229. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=21504.jpg +0 -0
  230. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=22016.jpg +0 -0
  231. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=22528.jpg +0 -0
  232. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=23040.jpg +0 -0
  233. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=23552.jpg +0 -0
  234. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=24064.jpg +0 -0
  235. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=31744.jpg +0 -0
  236. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=32256.jpg +0 -0
  237. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=33280.jpg +0 -0
  238. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=33792.jpg +0 -0
  239. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=34304.jpg +0 -0
  240. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=15872_nx=34816.jpg +0 -0
  241. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=19456.jpg +0 -0
  242. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=20480.jpg +0 -0
  243. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=20992.jpg +0 -0
  244. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=21504.jpg +0 -0
  245. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=22016.jpg +0 -0
  246. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=22528.jpg +0 -0
  247. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=23552.jpg +0 -0
  248. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=25088.jpg +0 -0
  249. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=25600.jpg +0 -0
  250. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=28672.jpg +0 -0
  251. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=30208.jpg +0 -0
  252. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16384_nx=33280.jpg +0 -0
  253. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=20480.jpg +0 -0
  254. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=20992.jpg +0 -0
  255. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=22016.jpg +0 -0
  256. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=22528.jpg +0 -0
  257. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=23040.jpg +0 -0
  258. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=23552.jpg +0 -0
  259. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=24064.jpg +0 -0
  260. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=24576.jpg +0 -0
  261. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=25088.jpg +0 -0
  262. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=25600.jpg +0 -0
  263. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=26112.jpg +0 -0
  264. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=26624.jpg +0 -0
  265. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=27136.jpg +0 -0
  266. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=27648.jpg +0 -0
  267. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=28160.jpg +0 -0
  268. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=28672.jpg +0 -0
  269. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=16896_nx=29184.jpg +0 -0
  270. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=20480.jpg +0 -0
  271. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=20992.jpg +0 -0
  272. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=21504.jpg +0 -0
  273. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=22016.jpg +0 -0
  274. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=23040.jpg +0 -0
  275. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=23552.jpg +0 -0
  276. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=24064.jpg +0 -0
  277. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=25088.jpg +0 -0
  278. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=25600.jpg +0 -0
  279. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=26112.jpg +0 -0
  280. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=26624.jpg +0 -0
  281. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=27136.jpg +0 -0
  282. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=27648.jpg +0 -0
  283. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=28160.jpg +0 -0
  284. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=28672.jpg +0 -0
  285. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=29184.jpg +0 -0
  286. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17408_nx=40960.jpg +0 -0
  287. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=19968.jpg +0 -0
  288. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=20480.jpg +0 -0
  289. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=20992.jpg +0 -0
  290. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=22016.jpg +0 -0
  291. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=22528.jpg +0 -0
  292. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=23040.jpg +0 -0
  293. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=23552.jpg +0 -0
  294. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=24064.jpg +0 -0
  295. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=25088.jpg +0 -0
  296. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=25600.jpg +0 -0
  297. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=26112.jpg +0 -0
  298. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=26624.jpg +0 -0
  299. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=17920_nx=27136.jpg +0 -0
  300. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=19968.jpg +0 -0
  301. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=21504.jpg +0 -0
  302. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=22016.jpg +0 -0
  303. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=22528.jpg +0 -0
  304. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=23040.jpg +0 -0
  305. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=23552.jpg +0 -0
  306. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=24064.jpg +0 -0
  307. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=24576.jpg +0 -0
  308. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=25088.jpg +0 -0
  309. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=25600.jpg +0 -0
  310. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=26112.jpg +0 -0
  311. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=26624.jpg +0 -0
  312. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18432_nx=27136.jpg +0 -0
  313. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=19968.jpg +0 -0
  314. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=20480.jpg +0 -0
  315. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=20992.jpg +0 -0
  316. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=21504.jpg +0 -0
  317. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=22016.jpg +0 -0
  318. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=22528.jpg +0 -0
  319. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=23040.jpg +0 -0
  320. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=24064.jpg +0 -0
  321. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=25088.jpg +0 -0
  322. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=25600.jpg +0 -0
  323. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=18944_nx=54784.jpg +0 -0
  324. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19456_nx=20480.jpg +0 -0
  325. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19456_nx=20992.jpg +0 -0
  326. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19456_nx=23552.jpg +0 -0
  327. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19456_nx=24064.jpg +0 -0
  328. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19456_nx=24576.jpg +0 -0
  329. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19456_nx=25088.jpg +0 -0
  330. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19456_nx=54784.jpg +0 -0
  331. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=14336.jpg +0 -0
  332. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=14848.jpg +0 -0
  333. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=15360.jpg +0 -0
  334. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=18944.jpg +0 -0
  335. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=20480.jpg +0 -0
  336. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=20992.jpg +0 -0
  337. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=54784.jpg +0 -0
  338. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=19968_nx=55296.jpg +0 -0
  339. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=13824.jpg +0 -0
  340. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=14848.jpg +0 -0
  341. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=15360.jpg +0 -0
  342. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=15872.jpg +0 -0
  343. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=16384.jpg +0 -0
  344. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=19456.jpg +0 -0
  345. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=19968.jpg +0 -0
  346. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=20480.jpg +0 -0
  347. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=29184.jpg +0 -0
  348. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=54784.jpg +0 -0
  349. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20480_nx=55296.jpg +0 -0
  350. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=14336.jpg +0 -0
  351. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=14848.jpg +0 -0
  352. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=15360.jpg +0 -0
  353. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=15872.jpg +0 -0
  354. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=16384.jpg +0 -0
  355. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=16896.jpg +0 -0
  356. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=18944.jpg +0 -0
  357. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=19456.jpg +0 -0
  358. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=19968.jpg +0 -0
  359. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=20480.jpg +0 -0
  360. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=54784.jpg +0 -0
  361. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=20992_nx=55296.jpg +0 -0
  362. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=15872.jpg +0 -0
  363. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=16384.jpg +0 -0
  364. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=16896.jpg +0 -0
  365. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=19456.jpg +0 -0
  366. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=19968.jpg +0 -0
  367. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=53760.jpg +0 -0
  368. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=54272.jpg +0 -0
  369. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=54784.jpg +0 -0
  370. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=21504_nx=55296.jpg +0 -0
  371. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22016_nx=53248.jpg +0 -0
  372. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22016_nx=53760.jpg +0 -0
  373. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22016_nx=54272.jpg +0 -0
  374. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22016_nx=54784.jpg +0 -0
  375. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22016_nx=55296.jpg +0 -0
  376. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22528_nx=50688.jpg +0 -0
  377. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22528_nx=51200.jpg +0 -0
  378. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22528_nx=51712.jpg +0 -0
  379. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22528_nx=53248.jpg +0 -0
  380. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22528_nx=53760.jpg +0 -0
  381. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22528_nx=54272.jpg +0 -0
  382. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=22528_nx=54784.jpg +0 -0
  383. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=23040_nx=50688.jpg +0 -0
  384. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=23040_nx=51200.jpg +0 -0
  385. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=23040_nx=51712.jpg +0 -0
  386. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=28160_nx=18432.jpg +0 -0
  387. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=28160_nx=7680.jpg +0 -0
  388. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=29184_nx=8192.jpg +0 -0
  389. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=30720_nx=12288.jpg +0 -0
  390. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=32768_nx=13824.jpg +0 -0
  391. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=3584_nx=2048.jpg +0 -0
  392. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=3584_nx=512.jpg +0 -0
  393. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=7168_nx=17920.jpg +0 -0
  394. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=7168_nx=18432.jpg +0 -0
  395. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=7680_nx=17408.jpg +0 -0
  396. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=7680_nx=17920.jpg +0 -0
  397. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=7680_nx=18432.jpg +0 -0
  398. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=7680_nx=18944.jpg +0 -0
  399. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=7680_nx=19456.jpg +0 -0
  400. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8192_nx=18432.jpg +0 -0
  401. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8192_nx=18944.jpg +0 -0
  402. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8192_nx=19456.jpg +0 -0
  403. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8192_nx=27136.jpg +0 -0
  404. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8192_nx=31744.jpg +0 -0
  405. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8704_nx=17408.jpg +0 -0
  406. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8704_nx=17920.jpg +0 -0
  407. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8704_nx=18432.jpg +0 -0
  408. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8704_nx=18944.jpg +0 -0
  409. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8704_nx=19456.jpg +0 -0
  410. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=8704_nx=19968.jpg +0 -0
  411. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=17408.jpg +0 -0
  412. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=17920.jpg +0 -0
  413. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=18432.jpg +0 -0
  414. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=19456.jpg +0 -0
  415. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=19968.jpg +0 -0
  416. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=20480.jpg +0 -0
  417. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=20992.jpg +0 -0
  418. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=21504.jpg +0 -0
  419. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=22016.jpg +0 -0
  420. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=22528.jpg +0 -0
  421. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9216_nx=23040.jpg +0 -0
  422. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=15872.jpg +0 -0
  423. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=16384.jpg +0 -0
  424. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=16896.jpg +0 -0
  425. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=17920.jpg +0 -0
  426. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=18432.jpg +0 -0
  427. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=18944.jpg +0 -0
  428. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=19456.jpg +0 -0
  429. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=19968.jpg +0 -0
  430. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=20480.jpg +0 -0
  431. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=20992.jpg +0 -0
  432. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=21504.jpg +0 -0
  433. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=22016.jpg +0 -0
  434. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=22528.jpg +0 -0
  435. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=23040.jpg +0 -0
  436. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=23552.jpg +0 -0
  437. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/back/ny=9728_nx=24064.jpg +0 -0
  438. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=10240_nx=17408.jpg +0 -0
  439. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=10240_nx=24576.jpg +0 -0
  440. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=11264_nx=17408.jpg +0 -0
  441. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=11776_nx=15872.jpg +0 -0
  442. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=11776_nx=16384.jpg +0 -0
  443. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=11776_nx=16896.jpg +0 -0
  444. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=11776_nx=17408.jpg +0 -0
  445. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=11776_nx=33792.jpg +0 -0
  446. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=12288_nx=15872.jpg +0 -0
  447. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=12288_nx=16384.jpg +0 -0
  448. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=13312_nx=29184.jpg +0 -0
  449. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=13824_nx=27648.jpg +0 -0
  450. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=14336_nx=28160.jpg +0 -0
  451. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=14848_nx=18432.jpg +0 -0
  452. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=14848_nx=18944.jpg +0 -0
  453. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=14848_nx=19456.jpg +0 -0
  454. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=15872_nx=19456.jpg +0 -0
  455. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=16384_nx=19968.jpg +0 -0
  456. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=16384_nx=26112.jpg +0 -0
  457. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=18944_nx=23552.jpg +0 -0
  458. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=18944_nx=41472.jpg +0 -0
  459. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=20480_nx=14336.jpg +0 -0
  460. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=8192_nx=17408.jpg +0 -0
  461. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=8192_nx=17920.jpg +0 -0
  462. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=9216_nx=18944.jpg +0 -0
  463. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=9728_nx=17408.jpg +0 -0
  464. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=9728_nx=24576.jpg +0 -0
  465. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/4173633_5/tumor/ny=9728_nx=29184.jpg +0 -0
  466. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/CSV_labels/AF647-1.tif +0 -0
  467. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/CSV_labels/AF647-2.tif +0 -0
  468. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/CSV_labels/AF647-3.tif +0 -0
  469. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/CSV_labels/For_DL_AF647-1.csv +0 -0
  470. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/CSV_labels/For_DL_AF647-2.csv +0 -0
  471. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/CSV_labels/For_DL_AF647-3.csv +0 -0
  472. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15309.czi +0 -0
  473. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15310.czi +0 -0
  474. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15311.czi +0 -0
  475. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15312.czi +0 -0
  476. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15313.czi +0 -0
  477. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15314.czi +0 -0
  478. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15315.czi +0 -0
  479. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15316.czi +0 -0
  480. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15317.czi +0 -0
  481. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15318.czi +0 -0
  482. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/Snap-15319.czi +0 -0
  483. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15309.tif +0 -0
  484. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15310.tif +0 -0
  485. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15311.tif +0 -0
  486. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15312.tif +0 -0
  487. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15313.tif +0 -0
  488. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15314.tif +0 -0
  489. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15315.tif +0 -0
  490. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15316.tif +0 -0
  491. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15317.tif +0 -0
  492. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15318.tif +0 -0
  493. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15319.tif +0 -0
  494. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15319_combine.jpg +0 -0
  495. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15319_combine.tif +0 -0
  496. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/data/H6-13_Mars1+dapi/tiff/Snap-15319_combine_1.jpg +0 -0
  497. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/example/CellDataLoaderPlayground.ipynb +0 -0
  498. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/src/cell_data_loader/base_dataset.py +0 -0
  499. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/tests/__init__.py +0 -0
  500. {cell_data_loader-0.0.43 → cell_data_loader-0.0.46}/tests/unit_tests.py +0 -0
@@ -1,15 +1,15 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: cell_data_loader
3
- Version: 0.0.43
3
+ Version: 0.0.46
4
4
  Summary: Converts general images of cells into formats and labels for deep learning pipelines
5
5
  Project-URL: Homepage, https://github.com/mleming/CellDataLoader
6
- Author-email: Matt Leming <mleming@mgh.harvard.edu>
7
- Maintainer-email: Matt Leming <mleming@mgh.harvard.edu>
6
+ Author-email: Matt Leming <mleming@surescaneds.com>
7
+ Maintainer-email: Matt Leming <mleming@surescaneds.com>
8
8
  License: MIT License
9
9
  Keywords: biomedical,cell,cell image,cellpose,csz,dataloader
10
10
  Requires-Python: >=3.8
11
11
  Requires-Dist: cellpose==3.1.0
12
- Requires-Dist: hashlib
12
+ Requires-Dist: nibabel
13
13
  Requires-Dist: numpy>=1.22.0
14
14
  Requires-Dist: opencv-python>=4.5.4
15
15
  Requires-Dist: pillow
@@ -2,7 +2,7 @@
2
2
 
3
3
  name = "cell_data_loader"
4
4
 
5
- version = "0.0.43"
5
+ version = "0.0.46"
6
6
 
7
7
 
8
8
  dependencies = [
@@ -15,15 +15,15 @@ dependencies = [
15
15
  "scikit-image",
16
16
  "pillow",
17
17
  "cellpose==3.1.0",
18
- "hashlib"
18
+ "nibabel"
19
19
  ]
20
20
  requires-python = ">=3.8"
21
21
 
22
22
  authors = [
23
- {name = "Matt Leming", email = "mleming@mgh.harvard.edu"}
23
+ {name = "Matt Leming", email = "mleming@surescaneds.com"}
24
24
  ]
25
25
  maintainers = [
26
- {name = "Matt Leming", email = "mleming@mgh.harvard.edu"}
26
+ {name = "Matt Leming", email = "mleming@surescaneds.com"}
27
27
  ]
28
28
 
29
29
  description = "Converts general images of cells into formats and labels for deep learning pipelines"
@@ -6,3 +6,4 @@ slideio==2.4.1
6
6
  scipy
7
7
  scikit-image
8
8
  pillow
9
+ nibabel
@@ -1,3 +1,3 @@
1
- __version__ = "0.0.43"
1
+ __version__ = "0.0.46"
2
2
 
3
3
  from .cell_data_loader import *
@@ -16,6 +16,7 @@ import torch,torchvision
16
16
  from .util import *
17
17
  import torchvision.transforms as transforms
18
18
  import gc, hashlib
19
+ import nibabel as nb
19
20
  #import openslide
20
21
  #import czifile
21
22
  try:
@@ -34,6 +35,27 @@ def hash_det(input_string: str) -> int:
34
35
  # 3. Convert hex string to base-10 integer
35
36
  return int(hex_digest, 16)
36
37
 
38
+ def _load_nifti(path):
39
+ """Reads a NIfTI as a float array, including RGB24/RGBA32 files.
40
+
41
+ RGB NIfTIs store each voxel as an (R,G,B[,A]) record, which get_fdata()
42
+ can't convert to float. Those come back with a trailing channel axis,
43
+ e.g. (256,256,28) RGB -> (256,256,28,3).
44
+ """
45
+ img = nb.load(path)
46
+ if img.get_data_dtype().names is not None:
47
+ from numpy.lib import recfunctions as rfn
48
+ return rfn.structured_to_unstructured(
49
+ np.asanyarray(img.dataobj)).astype(np.float32)
50
+ return img.get_fdata()
51
+
52
+ def _nifti_header_layout(path):
53
+ """(channels per voxel, number of spatial axes) from the header alone"""
54
+ img = nb.load(path) # lazy: reads the header, not the image data
55
+ dt = img.get_data_dtype()
56
+ k = len(dt.names) if dt.names is not None else 1 # RGB24/RGBA32 records
57
+ return k * int(np.prod(img.shape[3:])), min(len(img.shape), 3)
58
+
37
59
  class ImageLabelObject(BaseDataset):
38
60
  def __init__(self,
39
61
  filename,
@@ -53,7 +75,8 @@ class ImageLabelObject(BaseDataset):
53
75
  C_dim : tuple = (16,32),
54
76
  y_nums : list = None,
55
77
  c_nums : list = None,
56
- file_to_label_regex : tuple = None):
78
+ file_to_label_regex : tuple = None,
79
+ volumetric : bool = False):
57
80
 
58
81
  super().__init__()
59
82
  self.filename = filename
@@ -81,6 +104,15 @@ class ImageLabelObject(BaseDataset):
81
104
  raise ValueError("Filetype can only have 2D image but tuple"+\
82
105
  " is 3D — check to make sure that channels is set in"+\
83
106
  " n_channels")
107
+ # volumetric=True: every axis in dim is spatial (e.g. 256x256x3 is a
108
+ # 3-slice volume, not an RGB image). Channels go on a trailing axis.
109
+ self.volumetric = volumetric
110
+ if self.volumetric:
111
+ if len(self.dim) != 3:
112
+ raise ValueError(f"volumetric=True needs a 3D dim, got {self.dim}")
113
+ if self.im_type() in ["czi","svs","regular"]:
114
+ raise ValueError(f"volumetric=True is not supported for "+\
115
+ f"{self.im_type()} files")
84
116
  self.slice_size = slice_size
85
117
  if self.mode == "sliced":
86
118
  if self.slice_size is None:
@@ -232,10 +264,27 @@ class ImageLabelObject(BaseDataset):
232
264
  if self.npy_file != get_dim_str(self.filename,self.dim):
233
265
  print("Error: %s != %s" % ( self.npy_file,get_dim_str(self.filename,self.dim)))
234
266
  assert(self.npy_file == get_dim_str(self.filename,self.dim))
235
- if self.cache and os.path.isfile(os.path.realpath(self.npy_file)):
236
- self.image = np.load(os.path.realpath(self.npy_file))
267
+ cache_path = os.path.realpath(self.npy_file)
268
+ cache_is_source = cache_path == os.path.realpath(self.filename)
269
+ stale_cache = False
270
+ if self.cache and os.path.isfile(cache_path):
271
+ self.image = np.load(cache_path)
272
+ # Cache names collide across dims, e.g. (64,64) and (64,64,64)
273
+ # both map to *_resized_64.npy, so check the shape
274
+ if self.mode == "whole" and not cache_is_source and \
275
+ not self._cached_shape_ok(self.image):
276
+ expected = f"{tuple(self.dim)} plus a channel axis" \
277
+ if self.volumetric else f"{tuple(self.dim)}"
278
+ warnings.warn(f"Cached {self.npy_file} has shape "+\
279
+ f"{self.image.shape}, expected {expected} (made by a "+\
280
+ "run with a different dim or volumetric setting); "+\
281
+ "rebuilding it from the source file")
282
+ self.image = None
283
+ stale_cache = True
284
+ if self.image is not None:
285
+ pass
237
286
  elif self.im_type() == "nifti":
238
- self.image = nb.load(os.path.realpath(self.filename)).get_fdata()
287
+ self.image = _load_nifti(os.path.realpath(self.filename))
239
288
  elif self.im_type() == "npy":
240
289
  self.image = np.load(os.path.realpath(self.filename))
241
290
  elif self.im_type() == "dicom":
@@ -245,8 +294,12 @@ class ImageLabelObject(BaseDataset):
245
294
  print("Error in %s" % self.npy_file)
246
295
  raise Exception("Unsupported image type: %s"%self.im_type())
247
296
  if self.mode == "whole":
248
- self.image = resize_np(self.image,self.dim)
249
- if self.cache and not os.path.isfile(os.path.realpath(self.npy_file)):
297
+ if self.volumetric:
298
+ self.image = self._resize_volume(self.image)
299
+ else:
300
+ self.image = resize_np(self.image,self.dim)
301
+ if self.cache and not cache_is_source and \
302
+ (stale_cache or not os.path.isfile(cache_path)):
250
303
  np.save(self.npy_file,self.image)
251
304
  if self.database is not None:
252
305
  self.database.add_json(nifti_file=self.filename)
@@ -254,35 +307,59 @@ class ImageLabelObject(BaseDataset):
254
307
  raise Exception(f"No valid imtype for {self.filename}")
255
308
  assert self.image is not None, f"Image not read in: {self.filename}"
256
309
 
257
- if self.image.dtype != np.uint8:
258
- self.image = self.image.astype(np.uint8)
310
+ if self.im_type() in ["regular","czi","svs"]:
311
+ if self.image.dtype != np.uint8:
312
+ self.image = self.image.astype(np.uint8)
313
+ else:
314
+ # NIfTI/NPY/DICOM: resize_np scales to [0,1], so a uint8 cast
315
+ # here would truncate almost every voxel to 0. Keep floats.
316
+ self.image = self.image.astype(np.float32)
317
+ lo,hi = self.image.min(),self.image.max()
318
+ if lo < 0 or hi > 1:
319
+ self.image = (self.image - lo) / (hi - lo if hi > lo else 1)
259
320
  if self.mode == "whole" and self.im_type() == "regular":
260
321
  self.image = cv2.resize(self.image,self.dim[::-1])
261
322
  assert(not np.isnan(self.image[0,0,0]))
262
323
  elif self.mode == "whole" and self.im_type() in ["czi","svs"]:
263
324
  #self.image = resize(self.image,self.dim)
264
325
  self.image = cv2.resize(self.image,self.dim[::-1])
265
- if len(self.image.shape) < 3:
266
- self.image = np.expand_dims(self.image,axis=2)
267
- s = self.image.shape
268
- assert(len(s) == 3)
269
- if s[0] < s[1] and s[0] < s[2]:
270
- self.image = np.moveaxis(self.image,0,-1)
271
- if len(self.image.shape) != 3:
272
- self.image = np.expand_dims(self.image,axis=2)
273
- assert(len(self.image.shape) == 3)
274
- if read_filename_label:
275
- self.filename_label_channels = self.image.shape[2]
276
- elif self.n_channels is not None and \
277
- self.image.shape[2] != self.n_channels:
278
- self.image = resample(self.image,
279
- self.n_channels,axis=2)
326
+ if self.volumetric:
327
+ # All axes of dim are spatial; add a trailing channel axis
328
+ if self.image.ndim == len(self.dim):
329
+ self.image = self.image[...,np.newaxis]
330
+ if self.image.ndim != len(self.dim) + 1:
331
+ raise ValueError(f"{self.filename} has shape "+\
332
+ f"{self.image.shape}; expected {len(self.dim)} spatial "+\
333
+ "axes (+ optional channel axis). If it was loaded from a "+\
334
+ f"stale cache, delete {self.npy_file} and rerun.")
335
+ if read_filename_label:
336
+ self.filename_label_channels = self.image.shape[-1]
337
+ elif self.n_channels is not None and \
338
+ self.image.shape[-1] != self.n_channels:
339
+ raise ValueError(f"{self.filename} has "+\
340
+ f"{self.image.shape[-1]} channels, expected {self.n_channels}")
341
+ else:
342
+ if len(self.image.shape) < 3:
343
+ self.image = np.expand_dims(self.image,axis=2)
344
+ s = self.image.shape
345
+ assert(len(s) == 3)
346
+ if s[0] < s[1] and s[0] < s[2]:
347
+ self.image = np.moveaxis(self.image,0,-1)
348
+ if len(self.image.shape) != 3:
349
+ self.image = np.expand_dims(self.image,axis=2)
350
+ assert(len(self.image.shape) == 3)
351
+ if read_filename_label:
352
+ self.filename_label_channels = self.image.shape[2]
353
+ elif self.n_channels is not None and \
354
+ self.image.shape[2] != self.n_channels:
355
+ self.image = resample(self.image,
356
+ self.n_channels,axis=2)
280
357
  if self.mode == "whole":
281
358
  if self.dtype == "torch":
282
359
  self.image = torch.tensor(self.image)
283
- assert(len(self.image.size()) == 3)
360
+ assert(len(self.image.size()) == self._n_axes())
284
361
  elif self.dtype == "numpy":
285
- assert(len(self.image.shape) == 3)
362
+ assert(len(self.image.shape) == self._n_axes())
286
363
  else:
287
364
  raise Exception("Unimplemented dtype: %s" % self.dtype)
288
365
 
@@ -302,6 +379,32 @@ class ImageLabelObject(BaseDataset):
302
379
 
303
380
  return self.image
304
381
 
382
+ def _n_axes(self):
383
+ """Rank of a stored image: spatial axes + one channel axis"""
384
+ return len(self.dim) + 1 if self.volumetric else 3
385
+
386
+ def _cached_shape_ok(self,im):
387
+ """Whether a cached whole-mode array was made with this dim"""
388
+ n = len(self.dim)
389
+ if tuple(im.shape[:n]) != tuple(self.dim):
390
+ return False
391
+ if self.volumetric:
392
+ return im.ndim == n + 1
393
+ return im.ndim == n
394
+
395
+ def _resize_volume(self,im):
396
+ """Resizes each channel of a volume to self.dim; returns (*dim, C)"""
397
+ if im.ndim == len(self.dim) + 1:
398
+ # Scale all channels together first so resize_np doesn't stretch
399
+ # each one to [0,1] separately (which would distort RGB color)
400
+ im = im.astype(np.float32)
401
+ lo,hi = im.min(),im.max()
402
+ if lo < 0 or hi > 1:
403
+ im = (im - lo) / (hi - lo if hi > lo else 1)
404
+ return np.stack([resize_np(im[...,ch],self.dim)
405
+ for ch in range(im.shape[-1])],axis=-1)
406
+ return resize_np(im,self.dim)[...,np.newaxis]
407
+
305
408
  def get_mem(self) -> float:
306
409
  """Estimates the memory of the larger objects stored in ImageLabelObject"""
307
410
 
@@ -334,6 +437,7 @@ class ImageLabelObject(BaseDataset):
334
437
  if self.n_channels is not None:
335
438
  return self.n_channels
336
439
  s = self.get_orig_size()
440
+ if self.volumetric: return s[-1]
337
441
  if len(s) == 2: return 1
338
442
  s_sorted = sorted(s,reverse=True)
339
443
  return s_sorted[2]
@@ -357,8 +461,7 @@ class ImageLabelObject(BaseDataset):
357
461
  if self.mode == "whole":
358
462
  return 1
359
463
  elif self.mode == "sliced":
360
- x,y = self.get_scaled_dims()
361
- return x*y
464
+ return int(np.prod(self.get_scaled_dims()))
362
465
  elif self.mode == "cell":
363
466
  return len(self.get_cell_box_label())
364
467
  else:
@@ -366,6 +469,7 @@ class ImageLabelObject(BaseDataset):
366
469
 
367
470
  def get_orig_dims(self):
368
471
  s = self.get_orig_size()
472
+ if self.volumetric: return tuple(s[:-1])
369
473
  if len(s) == 3: return s
370
474
  s_sorted = sorted(s,reverse=True)
371
475
  x,y = s_sorted[0],s_sorted[1]
@@ -417,7 +521,10 @@ class ImageLabelObject(BaseDataset):
417
521
  x * self.slice_size[0]:(x+1)*self.slice_size[0],
418
522
  y * self.slice_size[1]:(y+1)*self.slice_size[1],
419
523
  z * self.slice_size[2]:(z+1)*self.slice_size[2],...]
420
- im = resize_np(im,self.dim)
524
+ if self.volumetric:
525
+ im = self._resize_volume(im)
526
+ else:
527
+ im = resize_np(im,self.dim)
421
528
  else:
422
529
  raise Exception("Invalid number of dimensions: %d" % len(d))
423
530
  if self.dtype == "torch":
@@ -794,7 +901,8 @@ class CellDataloader():#BaseDataset):
794
901
  return_filenames = False,
795
902
  sample_output_folder = None,
796
903
  save_ram = False,
797
- file_to_label_regex = None):
904
+ file_to_label_regex = None,
905
+ volumetric = False):
798
906
 
799
907
  self.verbose = verbose
800
908
  self.label_balance = label_balance
@@ -816,6 +924,10 @@ class CellDataloader():#BaseDataset):
816
924
  self.sample_output_folder = sample_output_folder
817
925
  self.save_ram = save_ram
818
926
  self.file_to_label_regex = file_to_label_regex
927
+ self.volumetric = volumetric
928
+ if self.volumetric and self.augment_image:
929
+ warnings.warn("volumetric=True: the 2D flip/elastic augmentations "+\
930
+ "are skipped for 3D batches")
819
931
 
820
932
  if self.augment_image and self.dtype == "torch":
821
933
  self.augment = transforms.Compose([
@@ -949,7 +1061,8 @@ class CellDataloader():#BaseDataset):
949
1061
  dtype=self.dtype,
950
1062
  dim=self.dim,
951
1063
  mode=self.segment_image,
952
- file_to_label_regex = self.file_to_label_regex)
1064
+ file_to_label_regex = self.file_to_label_regex,
1065
+ volumetric = self.volumetric)
953
1066
  if self.label_input_format == "Folder":
954
1067
  imlabel.label = j
955
1068
  elif self.label_input_format == "Regex":
@@ -966,6 +1079,9 @@ class CellDataloader():#BaseDataset):
966
1079
  # imlabel.file_to_label_regex = self.file_to_label_regex
967
1080
  if skip: continue
968
1081
  self.image_objects.append(imlabel)
1082
+ if self.volumetric:
1083
+ self.image_objects = self._drop_unusable_volumes(
1084
+ self.image_objects,n_channels)
969
1085
  random.shuffle(self.image_objects)
970
1086
  if self.match_labels:
971
1087
  self.sort_to_match_labels()
@@ -991,6 +1107,19 @@ class CellDataloader():#BaseDataset):
991
1107
  self.label_batch = torch.zeros((self.batch_size,self.n_labels),
992
1108
  device = self.gpu_ids)
993
1109
  sample = self.image_objects[0]
1110
+ if len(self.dim) == 3 and not self.volumetric and \
1111
+ sample.im_type() in ["nifti","npy","dicom","dicom_folder"]:
1112
+ if n_channels is not None and n_channels != self.dim[2]:
1113
+ # Without volumetric, the third axis is treated as channels and
1114
+ # resampled to n_channels, flattening each volume into 2D
1115
+ raise ValueError(f"dim={tuple(self.dim)} with n_channels="+\
1116
+ f"{n_channels} and volumetric=False would squash the third "+\
1117
+ f"axis ({self.dim[2]}) into {n_channels} channel(s), turning "+\
1118
+ "each volume into one 2D image. Pass volumetric=True to keep "+\
1119
+ "3D volumes, or use a 2D dim if you want 2D images.")
1120
+ warnings.warn(f"dim={tuple(self.dim)} has 3 entries but volumetric="+\
1121
+ "False, so the last axis will be treated as channels. Pass "+\
1122
+ "volumetric=True to keep it as a spatial (depth) axis.")
994
1123
  if n_channels is None:
995
1124
  self.n_channels = sample.get_n_channels()
996
1125
  else:
@@ -1004,11 +1133,13 @@ class CellDataloader():#BaseDataset):
1004
1133
  image_object.n_channels = self.n_channels
1005
1134
  if self.verbose:
1006
1135
  print("%d Channels Detected" % self.n_channels)
1136
+ # Batch is (B, *spatial, C); 2D keeps the old (B, H, W, C) layout
1137
+ spatial = tuple(self.dim) if self.volumetric else tuple(self.dim[:2])
1007
1138
  if self.dtype == "torch":
1008
- self.batch = torch.zeros(self.batch_size,self.dim[0],self.dim[1],
1139
+ self.batch = torch.zeros(self.batch_size,*spatial,
1009
1140
  self.n_channels,device=self.gpu_ids)
1010
1141
  elif self.dtype == "numpy":
1011
- self.batch = np.zeros((self.batch_size,self.dim[0],self.dim[1],
1142
+ self.batch = np.zeros((self.batch_size,*spatial,
1012
1143
  self.n_channels))
1013
1144
  else:
1014
1145
  raise Exception("Unimplemented dtype: %s" % self.dtype)
@@ -1019,6 +1150,44 @@ class CellDataloader():#BaseDataset):
1019
1150
  self.sample_output_folder)
1020
1151
  os.makedirs(self.sample_output_folder,exist_ok=True)
1021
1152
  self.imcount = 0
1153
+ def _drop_unusable_volumes(self,objs,n_channels):
1154
+ """Skips NIfTIs that can't be volumes with the expected channel count
1155
+
1156
+ Checks headers only, so it's fast. Catches files that would otherwise
1157
+ crash training partway through an epoch, like RGB secondary captures,
1158
+ 4D diffusion series and 2D images. If n_channels is None, the most
1159
+ common channel count among the NIfTIs is used.
1160
+ """
1161
+ layouts = {}
1162
+ for obj in objs:
1163
+ if obj.im_type() == "nifti":
1164
+ layouts[id(obj)] = _nifti_header_layout(obj.filename)
1165
+ if not layouts:
1166
+ return objs
1167
+ target = n_channels
1168
+ if target is None:
1169
+ counts = [ch for ch,_ in layouts.values()]
1170
+ target = max(set(counts),key=counts.count)
1171
+ keep,skipped = [],[]
1172
+ for obj in objs:
1173
+ if id(obj) not in layouts:
1174
+ keep.append(obj)
1175
+ continue
1176
+ ch,n_spatial = layouts[id(obj)]
1177
+ if n_spatial < len(self.dim):
1178
+ skipped.append(f" 2D image: {obj.filename}")
1179
+ elif ch != target:
1180
+ skipped.append(f" {ch} channels: {obj.filename}")
1181
+ else:
1182
+ keep.append(obj)
1183
+ if skipped:
1184
+ warnings.warn(f"Skipping {len(skipped)} file(s) that aren't "+\
1185
+ f"{target}-channel volumes:\n" + "\n".join(skipped))
1186
+ if not keep:
1187
+ raise ValueError(f"No {target}-channel volumes left after "+\
1188
+ "skipping incompatible files")
1189
+ return keep
1190
+
1022
1191
  def sort_to_match_labels(self):
1023
1192
  assert(self.match_labels)
1024
1193
  if not self.return_labels():
@@ -1161,14 +1330,19 @@ class CellDataloader():#BaseDataset):
1161
1330
  if not self.channels_first:
1162
1331
  b = torch.permute(b,[0,-1] + list(range(1,len(b.size())-1)))
1163
1332
  #print("b.size(): %s" % str(b.size()))
1164
- if self.n_channels <= 3 and self.augment_image:
1333
+ if self.n_channels <= 3 and self.augment_image and \
1334
+ not self.volumetric:
1165
1335
  b = self.augment(b)
1166
1336
  if self.dim[0] > 32 and self.dim[1] > 32:
1167
1337
  b = self.augment2(b)
1168
1338
  #print("b.size(): %s" % str(b.size()))
1169
1339
  #print([0]+list(range(2,len(b.size()))) + [1])
1170
1340
  if self.normalize:
1171
- b = self.normalizer(b)
1341
+ if self.volumetric:
1342
+ # Same as Normalize(0.5,0.5) but works on 5D tensors
1343
+ b = (b - 0.5) / 0.5
1344
+ else:
1345
+ b = self.normalizer(b)
1172
1346
  if not self.channels_first:
1173
1347
  b = torch.permute(b,[0]+list(range(2,len(b.size()))) + [1])
1174
1348
  #print("b.size(): %s" % str(b.size()))
@@ -281,7 +281,8 @@ def read_label_file(label_file):
281
281
 
282
282
  def is_image_file(filename):
283
283
  basename,ext = os.path.splitext(filename)
284
- return ext.lower() in [".jpg",".png",".jpeg",".czi",".svs",".tiff",".tif"]
284
+ _,ext2 = os.path.splitext(basename)
285
+ return ext.lower() in [".jpg",".png",".jpeg",".czi",".svs",".tiff",".tif",".nii"] or (ext.lower() == ".gz" and ext2.lower() == ".nii")
285
286
 
286
287
  def is_label_file(filename):
287
288
  return True
@@ -872,6 +873,39 @@ def get_folder_classification(folderpath,get_total=False,get_everything = False)
872
873
  all_results[r] = float(np.mean(all_results[r]))
873
874
  return all_results
874
875
 
876
+ # Resizes and standardizes 3d numpy arrays to normalized dimensions
877
+ def resize_np(nifti_data,dim):
878
+ if nifti_data.min() < 0 or nifti_data.max() > 1:
879
+ # Not in-place: callers may pass a view of a cached image
880
+ nifti_data = nifti_data - nifti_data.min()
881
+ m = nifti_data.max()
882
+ if m > 0: # constant images would otherwise become NaN
883
+ nifti_data = nifti_data / m
884
+ if nifti_data.dtype != np.float32:
885
+ nifti_data = nifti_data.astype(np.float32)
886
+ if len(nifti_data.shape) != len(dim):
887
+ nifti_data = np.squeeze(nifti_data)
888
+ if len(nifti_data.shape) < len(dim):
889
+ # Averaging would only make this worse (e.g. a stale 2D cache
890
+ # loaded for a 3D dim), so fail with a clear message instead.
891
+ raise ValueError(f"resize_np: array of shape {nifti_data.shape} "+\
892
+ f"has fewer axes than dim={tuple(dim)}. If it came from a "+\
893
+ "cached *_resized_*.npy file made with a different dim, "+\
894
+ "delete that file.")
895
+ if len(nifti_data.shape) > len(dim):
896
+ # This is where an (H,W,D) volume loses its last axis when dim is
897
+ # 2D: the last axis is treated like color channels and averaged.
898
+ warnings.warn(f"resize_np: array of shape {nifti_data.shape} has "+\
899
+ f"more axes than dim={tuple(dim)}; averaging over the last axis. "+\
900
+ "To keep it as a spatial axis, pass a dim with one entry per "+\
901
+ "axis (e.g. (H,W,D)) and volumetric=True.")
902
+ nifti_data = np.squeeze(np.mean(nifti_data,axis=-1))
903
+ assert len(nifti_data.shape) == len(dim), f"nifti data of shape ({nifti_data.shape}) cannot be reshaped to dim ({dim}); different number of dimensions"
904
+ if nifti_data.shape != tuple(dim):
905
+ zp = [dim[i]/nifti_data.shape[i] for i in range(len(dim))]
906
+ nifti_data = ndimage.zoom(nifti_data,zp)
907
+ return nifti_data
908
+
875
909
 
876
910
  def get_file_list_from_str(obj):
877
911
  assert(isinstance(obj, str))