cell-data-loader 0.0.18__tar.gz → 0.0.21__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.
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/PKG-INFO +14 -2
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/README.md +11 -0
- cell_data_loader-0.0.21/example/CellDataLoaderPlayground.ipynb +312 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/pyproject.toml +4 -3
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/src/cell_data_loader/__init__.py +1 -1
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/src/cell_data_loader/cell_data_loader.py +1 -2
- cell_data_loader-0.0.18/example/CellDataLoaderPlayground.ipynb +0 -213
- cell_data_loader-0.0.18/example/example_numpy.py +0 -71
- cell_data_loader-0.0.18/example/example_torch.py +0 -88
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/.gitattributes +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/.github/workflows/publish-to-pypi.yml +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/3368914_4_non_tumor/ny=45056_nx=35840.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/4173633_5.svs +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=0_nx=0.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10240_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=10752_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11264_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=11776_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=27648.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12288_nx=28160.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=13824.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=12800_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13312_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=28160.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=29696.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=31232.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=31744.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=32256.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=13824_nx=32768.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=27648.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=30720.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=31232.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=31744.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=32256.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=32768.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14336_nx=5120.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=32256.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=32768.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=33280.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=34816.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=14848_nx=35328.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=10240.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=31744.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=32256.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=32768.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=33280.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=33792.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=34304.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=34816.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15360_nx=35328.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=1536_nx=56832.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=31744.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=32256.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=33280.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=33792.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=34304.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=15872_nx=34816.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=28672.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=30208.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16384_nx=33280.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=27648.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=28160.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=28672.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=16896_nx=29184.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=27648.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=28160.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=28672.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=29184.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17408_nx=40960.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=17920_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=26624.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18432_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=25600.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=18944_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19456_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19456_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19456_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19456_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19456_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19456_nx=25088.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19456_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=14336.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=19968_nx=55296.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=13824.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=29184.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20480_nx=55296.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=14336.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=14848.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=15360.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=20992_nx=55296.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=53760.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=54272.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=21504_nx=55296.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22016_nx=53248.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22016_nx=53760.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22016_nx=54272.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22016_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22016_nx=55296.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22528_nx=50688.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22528_nx=51200.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22528_nx=51712.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22528_nx=53248.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22528_nx=53760.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22528_nx=54272.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=22528_nx=54784.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=23040_nx=50688.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=23040_nx=51200.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=23040_nx=51712.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=28160_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=28160_nx=7680.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=29184_nx=8192.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=30720_nx=12288.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=32768_nx=13824.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=3584_nx=2048.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=3584_nx=512.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=7168_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=7168_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=7680_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=7680_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=7680_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=7680_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=7680_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8192_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8192_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8192_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8192_nx=27136.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8192_nx=31744.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8704_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8704_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8704_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8704_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8704_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=8704_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9216_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=20480.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=20992.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=21504.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=22016.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=22528.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=23040.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/back/ny=9728_nx=24064.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=10240_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=10240_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=11264_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=11776_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=11776_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=11776_nx=16896.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=11776_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=11776_nx=33792.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=12288_nx=15872.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=12288_nx=16384.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=13312_nx=29184.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=13824_nx=27648.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=14336_nx=28160.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=14848_nx=18432.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=14848_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=14848_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=15872_nx=19456.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=16384_nx=19968.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=16384_nx=26112.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=18944_nx=23552.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=18944_nx=41472.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=20480_nx=14336.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=8192_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=8192_nx=17920.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=9216_nx=18944.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=9728_nx=17408.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=9728_nx=24576.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/4173633_5/tumor/ny=9728_nx=29184.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15309.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15310.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15311.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15312.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15313.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15314.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15315.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15316.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15317.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15318.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/Snap-15319.czi +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15309.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15310.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15311.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15312.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15313.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15314.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15315.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15316.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15317.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15318.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15319.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15319_combine.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15319_combine.tif +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/data/H6-13_Mars1+dapi/tiff/Snap-15319_combine_1.jpg +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/requirements.txt +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/src/cell_data_loader/base_dataset.py +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/src/cell_data_loader/util.py +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/tests/__init__.py +0 -0
- {cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/tests/unit_tests.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: cell_data_loader
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.21
|
|
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
6
|
Author-email: Matt Leming <mleming@mgh.harvard.edu>
|
|
@@ -8,6 +8,7 @@ Maintainer-email: Matt Leming <mleming@mgh.harvard.edu>
|
|
|
8
8
|
License: MIT License
|
|
9
9
|
Keywords: biomedical,cell,cell image,cellpose,csz,dataloader
|
|
10
10
|
Requires-Python: >=3.8
|
|
11
|
+
Requires-Dist: cell-data-loader
|
|
11
12
|
Requires-Dist: numpy==1.22.0
|
|
12
13
|
Requires-Dist: opencv-python>=4.5.4
|
|
13
14
|
Requires-Dist: pillow
|
|
@@ -15,7 +16,7 @@ Requires-Dist: scikit-image
|
|
|
15
16
|
Requires-Dist: scipy
|
|
16
17
|
Requires-Dist: slideio==2.4.1
|
|
17
18
|
Requires-Dist: torch>=2.0.0
|
|
18
|
-
Requires-Dist: torchvision
|
|
19
|
+
Requires-Dist: torchvision==0.14.0
|
|
19
20
|
Description-Content-Type: text/markdown
|
|
20
21
|
|
|
21
22
|
Cell Data Loader
|
|
@@ -25,10 +26,21 @@ Cell Data Loader is a simple AI support tool in Python that can take in images o
|
|
|
25
26
|
|
|
26
27
|
It can also be used for normal computer vision research, which is why CellPose is not a strict dependency.
|
|
27
28
|
|
|
29
|
+
Quick Start
|
|
30
|
+
-----------
|
|
31
|
+
|
|
28
32
|
To install Cell Data Loader, simply type into a standard UNIX terminal
|
|
29
33
|
|
|
30
34
|
pip install cell-data-loader
|
|
31
35
|
|
|
36
|
+
To use a quick Jupyter Notebook example, navigate to [example/CellDataLoaderPlayground.ipynb](https://github.com/mleming/CellDataLoader/blob/main/example/CellDataLoaderPlayground.ipynb), download it, and run it in [Jupyter Notebook](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html). On a Mac, that may be run with the following command:
|
|
37
|
+
|
|
38
|
+
python3 -m jupyterlab ~/Downloads/CellDataLoaderPlayground.ipynb
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
Python
|
|
42
|
+
------
|
|
43
|
+
|
|
32
44
|
The simplest way to use Cell Data Loader is to instantiate a dataloader as such:
|
|
33
45
|
|
|
34
46
|
~~~python
|
|
@@ -5,10 +5,21 @@ Cell Data Loader is a simple AI support tool in Python that can take in images o
|
|
|
5
5
|
|
|
6
6
|
It can also be used for normal computer vision research, which is why CellPose is not a strict dependency.
|
|
7
7
|
|
|
8
|
+
Quick Start
|
|
9
|
+
-----------
|
|
10
|
+
|
|
8
11
|
To install Cell Data Loader, simply type into a standard UNIX terminal
|
|
9
12
|
|
|
10
13
|
pip install cell-data-loader
|
|
11
14
|
|
|
15
|
+
To use a quick Jupyter Notebook example, navigate to [example/CellDataLoaderPlayground.ipynb](https://github.com/mleming/CellDataLoader/blob/main/example/CellDataLoaderPlayground.ipynb), download it, and run it in [Jupyter Notebook](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html). On a Mac, that may be run with the following command:
|
|
16
|
+
|
|
17
|
+
python3 -m jupyterlab ~/Downloads/CellDataLoaderPlayground.ipynb
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Python
|
|
21
|
+
------
|
|
22
|
+
|
|
12
23
|
The simplest way to use Cell Data Loader is to instantiate a dataloader as such:
|
|
13
24
|
|
|
14
25
|
~~~python
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "code",
|
|
5
|
+
"execution_count": 3,
|
|
6
|
+
"metadata": {
|
|
7
|
+
"colab": {
|
|
8
|
+
"base_uri": "https://localhost:8080/"
|
|
9
|
+
},
|
|
10
|
+
"id": "RcU4j0yvYQo5",
|
|
11
|
+
"outputId": "bf38507e-b5ca-4b15-f07f-c399ae53a388"
|
|
12
|
+
},
|
|
13
|
+
"outputs": [
|
|
14
|
+
{
|
|
15
|
+
"name": "stdout",
|
|
16
|
+
"output_type": "stream",
|
|
17
|
+
"text": [
|
|
18
|
+
"Requirement already satisfied: cell-data-loader in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (0.0.18)\n",
|
|
19
|
+
"\n",
|
|
20
|
+
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
|
|
21
|
+
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
|
|
22
|
+
"\u001b[31mERROR: Could not find a version that satisfies the requirement tkinter (from versions: none)\u001b[0m\u001b[31m\n",
|
|
23
|
+
"\u001b[0m\u001b[31mERROR: No matching distribution found for tkinter\u001b[0m\u001b[31m\n",
|
|
24
|
+
"\u001b[0m\n",
|
|
25
|
+
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
|
|
26
|
+
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"source": [
|
|
31
|
+
"!pip3 install --no-deps cell-data-loader\n",
|
|
32
|
+
"!pip3 install tkinter"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"cell_type": "code",
|
|
37
|
+
"execution_count": 33,
|
|
38
|
+
"metadata": {
|
|
39
|
+
"colab": {
|
|
40
|
+
"base_uri": "https://localhost:8080/",
|
|
41
|
+
"height": 385
|
|
42
|
+
},
|
|
43
|
+
"id": "mqEfUykaam6g",
|
|
44
|
+
"outputId": "d4a384a1-27e3-43a9-a7fb-3f1956a0c799"
|
|
45
|
+
},
|
|
46
|
+
"outputs": [],
|
|
47
|
+
"source": [
|
|
48
|
+
"from cell_data_loader import CellDataloader\n",
|
|
49
|
+
"import torch,os,glob\n",
|
|
50
|
+
"from torchvision.models import resnet50 #, ResNet50_Weights\n",
|
|
51
|
+
"import tkinter as tk\n",
|
|
52
|
+
"import tkinter.filedialog"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"cell_type": "code",
|
|
57
|
+
"execution_count": 34,
|
|
58
|
+
"metadata": {},
|
|
59
|
+
"outputs": [
|
|
60
|
+
{
|
|
61
|
+
"name": "stdout",
|
|
62
|
+
"output_type": "stream",
|
|
63
|
+
"text": [
|
|
64
|
+
"Working directory to save model: /Users/mleming/Desktop/CellDataLoader_playground\n",
|
|
65
|
+
"Location of train data: /Users/mleming/Desktop/CellDataLoader_playground/dropbox_downloads/train\n",
|
|
66
|
+
"Location of test data: /Users/mleming/Desktop/CellDataLoader_playground/dropbox_downloads/test\n"
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"source": [
|
|
71
|
+
"### CHANGE THESE LINES\n",
|
|
72
|
+
"wd = '/Users/mleming/Desktop/CellDataLoader_playground'\n",
|
|
73
|
+
"train_folder_name = os.path.join(wd,'dropbox_downloads','train')\n",
|
|
74
|
+
"test_folder_name = os.path.join(wd,'dropbox_downloads','test')\n",
|
|
75
|
+
"use_tkinter = True\n",
|
|
76
|
+
"root = tk.Tk()\n",
|
|
77
|
+
"if use_tkinter:\n",
|
|
78
|
+
" print(\"Select your working directory to save the model\")\n",
|
|
79
|
+
" wd = tk.filedialog.askdirectory(parent=root,title=\"Please select the directory to save the model\")\n",
|
|
80
|
+
" print(\"Select the directory with the cell data\")\n",
|
|
81
|
+
" train_folder_name = tk.filedialog.askdirectory(title=\"Please select the directory with training cell data\")\n",
|
|
82
|
+
" test_folder_name = tk.filedialog.askdirectory(title=\"Please select the directory with test cell data\")\n",
|
|
83
|
+
"print(f\"Working directory to save model: {wd}\")\n",
|
|
84
|
+
"print(f\"Location of train data: {train_folder_name}\")\n",
|
|
85
|
+
"print(f\"Location of test data: {test_folder_name}\")\n",
|
|
86
|
+
"\n",
|
|
87
|
+
"## These strings are used to match between the files with one label and those with another\n",
|
|
88
|
+
"## In this case, if some folders have the word \"blurry\" and others have the word \"clear\",\n",
|
|
89
|
+
"## they will have labels 1 and 2. Note that CellDataLoader pushes a warning if any given\n",
|
|
90
|
+
"## path matches both strings (i.e., \"/this/path/is/Blurry/and/Clear/img.png\")\n",
|
|
91
|
+
"\n",
|
|
92
|
+
"label_regex_strings = [\"Blurry\",\"Clear\"]"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"cell_type": "code",
|
|
97
|
+
"execution_count": 35,
|
|
98
|
+
"metadata": {},
|
|
99
|
+
"outputs": [],
|
|
100
|
+
"source": [
|
|
101
|
+
"os.makedirs(wd, exist_ok = True)\n",
|
|
102
|
+
"\n",
|
|
103
|
+
"# Checkpoints\n",
|
|
104
|
+
"model_folder = os.path.join(wd,'checkpoints')\n",
|
|
105
|
+
"os.makedirs(model_folder,exist_ok=True)\n",
|
|
106
|
+
"model_file = os.path.join(model_folder,'torch_model.pt')"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"cell_type": "code",
|
|
111
|
+
"execution_count": 39,
|
|
112
|
+
"metadata": {
|
|
113
|
+
"id": "LgDYXyklF9BX"
|
|
114
|
+
},
|
|
115
|
+
"outputs": [],
|
|
116
|
+
"source": [
|
|
117
|
+
"def train_torch(model,\n",
|
|
118
|
+
" dataloader,\n",
|
|
119
|
+
" model_file = None,\n",
|
|
120
|
+
" epochs = 50,\n",
|
|
121
|
+
" gpu_ids = None,\n",
|
|
122
|
+
" verbose = True):\n",
|
|
123
|
+
"\n",
|
|
124
|
+
" if gpu_ids is not None:\n",
|
|
125
|
+
" model.to(gpu_ids)\n",
|
|
126
|
+
"\n",
|
|
127
|
+
" # Train\n",
|
|
128
|
+
"\n",
|
|
129
|
+
" model.train()\n",
|
|
130
|
+
" #loss_fn = torch.nn.CrossEntropyLoss()\n",
|
|
131
|
+
" loss_fn = torch.nn.NLLLoss()\n",
|
|
132
|
+
" optimizer = torch.optim.Adam(model.parameters(), lr=1e-5)\n",
|
|
133
|
+
" if verbose: print(\"Beginning training\")\n",
|
|
134
|
+
" for epoch in range(epochs):\n",
|
|
135
|
+
" loss_total,count = 0,0\n",
|
|
136
|
+
" for image,y in dataloader_train:\n",
|
|
137
|
+
" y_pred = model(image)\n",
|
|
138
|
+
" y_pred = y_pred[:,:y.size()[1]]\n",
|
|
139
|
+
" loss = loss_fn(y_pred, torch.argmax(y,1))\n",
|
|
140
|
+
" loss_total += float(loss)\n",
|
|
141
|
+
" count += 1\n",
|
|
142
|
+
" optimizer.zero_grad()\n",
|
|
143
|
+
" loss.backward()\n",
|
|
144
|
+
" optimizer.step()\n",
|
|
145
|
+
" if model_file is not None:\n",
|
|
146
|
+
" torch.save(model,model_file)\n",
|
|
147
|
+
" if verbose:\n",
|
|
148
|
+
" print(\n",
|
|
149
|
+
" \"Epoch {epoch:d}/{epochs:d}: loss: {loss:.5f}\".format(\n",
|
|
150
|
+
" epoch=epoch,epochs=epochs,loss=loss_total/count)\n",
|
|
151
|
+
" )\n",
|
|
152
|
+
"\n",
|
|
153
|
+
"def test_torch(model,\n",
|
|
154
|
+
" dataloader,\n",
|
|
155
|
+
" gpu_ids = None,\n",
|
|
156
|
+
" verbose=True):\n",
|
|
157
|
+
" \n",
|
|
158
|
+
" model.eval()\n",
|
|
159
|
+
" total_images = 0\n",
|
|
160
|
+
" sum_accuracy = 0\n",
|
|
161
|
+
" for image,y in dataloader:\n",
|
|
162
|
+
" total_images += image.size()[0]\n",
|
|
163
|
+
" y_pred = model(image)\n",
|
|
164
|
+
" y_pred = y_pred[:,:y.size()[1]]\n",
|
|
165
|
+
" sum_accuracy += torch.sum(torch.argmax(y_pred,axis=1) == \\\n",
|
|
166
|
+
" torch.argmax(y,axis=1))\n",
|
|
167
|
+
" accuracy = sum_accuracy / total_images\n",
|
|
168
|
+
" if verbose: print(\"Final accuracy: %.4f\" % accuracy)\n"
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"cell_type": "code",
|
|
173
|
+
"execution_count": 40,
|
|
174
|
+
"metadata": {
|
|
175
|
+
"colab": {
|
|
176
|
+
"base_uri": "https://localhost:8080/",
|
|
177
|
+
"height": 35
|
|
178
|
+
},
|
|
179
|
+
"id": "YxPqQuvcZMYJ",
|
|
180
|
+
"outputId": "cb3a8158-b807-48cb-a68f-bed0fb022ebc"
|
|
181
|
+
},
|
|
182
|
+
"outputs": [],
|
|
183
|
+
"source": [
|
|
184
|
+
"# Get a pretrained model from torchvision\n",
|
|
185
|
+
"if os.path.isfile(model_file):\n",
|
|
186
|
+
" print(\"Loading %s\" % model_file)\n",
|
|
187
|
+
" model = torch.load(model_file)\n",
|
|
188
|
+
"else:\n",
|
|
189
|
+
" # Download a pretrained resnet and edit its outputs to be compatible with cross entropy loss\n",
|
|
190
|
+
" model = resnet50(pretrained=True)\n",
|
|
191
|
+
" #model.fc = torch.nn.Sequential(\n",
|
|
192
|
+
" # torch.nn.Dropout(0.5),\n",
|
|
193
|
+
" # torch.nn.Linear(2048, 1000)\n",
|
|
194
|
+
" #)\n",
|
|
195
|
+
"\n",
|
|
196
|
+
"dataloader_train = CellDataloader(train_folder_name,label_regex=label_regex_strings,\n",
|
|
197
|
+
" dtype = \"torch\",\n",
|
|
198
|
+
" verbose = False,\n",
|
|
199
|
+
" batch_size = 64,\n",
|
|
200
|
+
" gpu_ids = None,\n",
|
|
201
|
+
" n_channels=3)\n",
|
|
202
|
+
"\n",
|
|
203
|
+
"dataloader_test = CellDataloader(test_folder_name,label_regex=label_regex_strings,\n",
|
|
204
|
+
" dtype = \"torch\",\n",
|
|
205
|
+
" verbose = False,\n",
|
|
206
|
+
" batch_size = 64,\n",
|
|
207
|
+
" gpu_ids = None,\n",
|
|
208
|
+
" n_channels=3)"
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"cell_type": "code",
|
|
213
|
+
"execution_count": null,
|
|
214
|
+
"metadata": {},
|
|
215
|
+
"outputs": [
|
|
216
|
+
{
|
|
217
|
+
"name": "stdout",
|
|
218
|
+
"output_type": "stream",
|
|
219
|
+
"text": [
|
|
220
|
+
"Beginning training\n",
|
|
221
|
+
"Epoch 0/50: loss: 1.03203\n",
|
|
222
|
+
"Epoch 1/50: loss: 0.88285\n",
|
|
223
|
+
"Epoch 2/50: loss: 0.80278\n",
|
|
224
|
+
"Epoch 3/50: loss: 0.67617\n",
|
|
225
|
+
"Epoch 4/50: loss: 0.70672\n",
|
|
226
|
+
"Epoch 5/50: loss: 0.50680\n",
|
|
227
|
+
"Epoch 6/50: loss: 0.44564\n",
|
|
228
|
+
"Epoch 7/50: loss: 0.28783\n",
|
|
229
|
+
"Epoch 8/50: loss: 0.39078\n",
|
|
230
|
+
"Epoch 9/50: loss: 0.16406\n",
|
|
231
|
+
"Epoch 10/50: loss: 0.19954\n"
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
],
|
|
235
|
+
"source": [
|
|
236
|
+
"train_torch(model,dataloader_train,model_file)"
|
|
237
|
+
]
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"cell_type": "code",
|
|
241
|
+
"execution_count": 32,
|
|
242
|
+
"metadata": {},
|
|
243
|
+
"outputs": [
|
|
244
|
+
{
|
|
245
|
+
"name": "stdout",
|
|
246
|
+
"output_type": "stream",
|
|
247
|
+
"text": [
|
|
248
|
+
"tensor([[ 2.0775, -0.3837, -2.3550, ..., -0.5430, 1.8986, -0.2228],\n",
|
|
249
|
+
" [ 2.0775, -0.3837, -2.3550, ..., -0.5430, 1.8986, -0.2228],\n",
|
|
250
|
+
" [ 2.0775, -0.3837, -2.3550, ..., -0.5430, 1.8986, -0.2228],\n",
|
|
251
|
+
" ...,\n",
|
|
252
|
+
" [ 2.0775, -0.3837, -2.3550, ..., -0.5430, 1.8986, -0.2228],\n",
|
|
253
|
+
" [ 2.0775, -0.3837, -2.3550, ..., -0.5430, 1.8986, -0.2228],\n",
|
|
254
|
+
" [ 2.0775, -0.3837, -2.3550, ..., -0.5430, 1.8986, -0.2228]],\n",
|
|
255
|
+
" grad_fn=<AddmmBackward0>)\n",
|
|
256
|
+
"tensor([[ 2.3903, -1.0563, -2.1164, ..., -0.8507, 1.2689, -0.6499],\n",
|
|
257
|
+
" [ 2.3903, -1.0563, -2.1164, ..., -0.8507, 1.2689, -0.6499],\n",
|
|
258
|
+
" [ 2.3903, -1.0563, -2.1164, ..., -0.8507, 1.2689, -0.6499],\n",
|
|
259
|
+
" ...,\n",
|
|
260
|
+
" [ 2.3903, -1.0563, -2.1164, ..., -0.8507, 1.2689, -0.6499],\n",
|
|
261
|
+
" [ 2.3903, -1.0563, -2.1164, ..., -0.8507, 1.2689, -0.6499],\n",
|
|
262
|
+
" [ 2.3903, -1.0563, -2.1164, ..., -0.8507, 1.2689, -0.6499]],\n",
|
|
263
|
+
" grad_fn=<AddmmBackward0>)\n",
|
|
264
|
+
"tensor([[ 0.0843, -0.1752, -5.3073, ..., -2.1159, -1.4730, -0.1893],\n",
|
|
265
|
+
" [ 0.0843, -0.1752, -5.3073, ..., -2.1159, -1.4730, -0.1893],\n",
|
|
266
|
+
" [ 0.0843, -0.1752, -5.3073, ..., -2.1159, -1.4730, -0.1893],\n",
|
|
267
|
+
" ...,\n",
|
|
268
|
+
" [ 0.0843, -0.1752, -5.3073, ..., -2.1159, -1.4730, -0.1893],\n",
|
|
269
|
+
" [ 0.0843, -0.1752, -5.3073, ..., -2.1159, -1.4730, -0.1893],\n",
|
|
270
|
+
" [ 0.0843, -0.1752, -5.3073, ..., -2.1159, -1.4730, -0.1893]],\n",
|
|
271
|
+
" grad_fn=<AddmmBackward0>)\n",
|
|
272
|
+
"Final accuracy: 0.9375\n"
|
|
273
|
+
]
|
|
274
|
+
}
|
|
275
|
+
],
|
|
276
|
+
"source": [
|
|
277
|
+
"test_torch(model,dataloader_test)"
|
|
278
|
+
]
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"cell_type": "code",
|
|
282
|
+
"execution_count": null,
|
|
283
|
+
"metadata": {},
|
|
284
|
+
"outputs": [],
|
|
285
|
+
"source": []
|
|
286
|
+
}
|
|
287
|
+
],
|
|
288
|
+
"metadata": {
|
|
289
|
+
"colab": {
|
|
290
|
+
"provenance": []
|
|
291
|
+
},
|
|
292
|
+
"kernelspec": {
|
|
293
|
+
"display_name": "Python 3 (ipykernel)",
|
|
294
|
+
"language": "python",
|
|
295
|
+
"name": "python3"
|
|
296
|
+
},
|
|
297
|
+
"language_info": {
|
|
298
|
+
"codemirror_mode": {
|
|
299
|
+
"name": "ipython",
|
|
300
|
+
"version": 3
|
|
301
|
+
},
|
|
302
|
+
"file_extension": ".py",
|
|
303
|
+
"mimetype": "text/x-python",
|
|
304
|
+
"name": "python",
|
|
305
|
+
"nbconvert_exporter": "python",
|
|
306
|
+
"pygments_lexer": "ipython3",
|
|
307
|
+
"version": "3.8.0"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"nbformat": 4,
|
|
311
|
+
"nbformat_minor": 4
|
|
312
|
+
}
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
name = "cell_data_loader"
|
|
4
4
|
|
|
5
|
-
version = "0.0.
|
|
5
|
+
version = "0.0.21"
|
|
6
6
|
|
|
7
7
|
dependencies = [
|
|
8
8
|
"numpy==1.22.0",
|
|
9
9
|
"scipy",
|
|
10
10
|
"torch>=2.0.0",
|
|
11
|
-
"torchvision
|
|
11
|
+
"torchvision==0.14.0",
|
|
12
12
|
"opencv-python>=4.5.4",
|
|
13
13
|
"slideio==2.4.1",
|
|
14
14
|
"scikit-image",
|
|
15
|
-
"pillow"
|
|
15
|
+
"pillow",
|
|
16
|
+
"cell_data_loader"
|
|
16
17
|
]
|
|
17
18
|
requires-python = ">=3.8"
|
|
18
19
|
|
{cell_data_loader-0.0.18 → cell_data_loader-0.0.21}/src/cell_data_loader/cell_data_loader.py
RENAMED
|
@@ -12,9 +12,8 @@ from scipy.ndimage.interpolation import map_coordinates
|
|
|
12
12
|
from scipy.ndimage.filters import gaussian_filter
|
|
13
13
|
from .base_dataset import BaseDataset
|
|
14
14
|
import torch,torchvision
|
|
15
|
-
torchvision.disable_beta_transforms_warning()
|
|
15
|
+
#torchvision.disable_beta_transforms_warning()
|
|
16
16
|
from .util import *
|
|
17
|
-
import warnings
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
#import openslide
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nbformat": 4,
|
|
3
|
-
"nbformat_minor": 0,
|
|
4
|
-
"metadata": {
|
|
5
|
-
"colab": {
|
|
6
|
-
"provenance": []
|
|
7
|
-
},
|
|
8
|
-
"kernelspec": {
|
|
9
|
-
"name": "python3",
|
|
10
|
-
"display_name": "Python 3"
|
|
11
|
-
},
|
|
12
|
-
"language_info": {
|
|
13
|
-
"name": "python"
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"cells": [
|
|
17
|
-
{
|
|
18
|
-
"cell_type": "code",
|
|
19
|
-
"execution_count": 2,
|
|
20
|
-
"metadata": {
|
|
21
|
-
"colab": {
|
|
22
|
-
"base_uri": "https://localhost:8080/"
|
|
23
|
-
},
|
|
24
|
-
"id": "RcU4j0yvYQo5",
|
|
25
|
-
"outputId": "bf38507e-b5ca-4b15-f07f-c399ae53a388"
|
|
26
|
-
},
|
|
27
|
-
"outputs": [
|
|
28
|
-
{
|
|
29
|
-
"output_type": "stream",
|
|
30
|
-
"name": "stdout",
|
|
31
|
-
"text": [
|
|
32
|
-
"Requirement already satisfied: cell-data-loader==0.0.17 in /usr/local/lib/python3.10/dist-packages (0.0.17)\n"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
"source": [
|
|
37
|
-
"!pip3 install --no-deps cell-data-loader"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"cell_type": "code",
|
|
42
|
-
"source": [
|
|
43
|
-
"from cell_data_loader import CellDataloader\n",
|
|
44
|
-
"\n",
|
|
45
|
-
"imfolder = '../data'\n",
|
|
46
|
-
"\n",
|
|
47
|
-
"dataloader = CellDataloader(imfolder)\n"
|
|
48
|
-
],
|
|
49
|
-
"metadata": {
|
|
50
|
-
"colab": {
|
|
51
|
-
"base_uri": "https://localhost:8080/",
|
|
52
|
-
"height": 385
|
|
53
|
-
},
|
|
54
|
-
"id": "mqEfUykaam6g",
|
|
55
|
-
"outputId": "d4a384a1-27e3-43a9-a7fb-3f1956a0c799"
|
|
56
|
-
},
|
|
57
|
-
"execution_count": 3,
|
|
58
|
-
"outputs": [
|
|
59
|
-
{
|
|
60
|
-
"output_type": "stream",
|
|
61
|
-
"name": "stderr",
|
|
62
|
-
"text": [
|
|
63
|
-
"/usr/local/lib/python3.10/dist-packages/cell_data_loader/util.py:19: UserWarning: Working Cellpose not installed -- cell segmentation not possible\n",
|
|
64
|
-
" warnings.warn(\"Working Cellpose not installed -- cell segmentation not\"+\\\n"
|
|
65
|
-
]
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"output_type": "error",
|
|
69
|
-
"ename": "Exception",
|
|
70
|
-
"evalue": "Invalid string input: /path/to/my/images",
|
|
71
|
-
"traceback": [
|
|
72
|
-
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
73
|
-
"\u001b[0;31mException\u001b[0m Traceback (most recent call last)",
|
|
74
|
-
"\u001b[0;32m<ipython-input-3-0452ef4833b3>\u001b[0m in \u001b[0;36m<cell line: 5>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mimfolder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'/path/to/my/images'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mdataloader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mCellDataloader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimfolder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
|
75
|
-
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/cell_data_loader/cell_data_loader.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, label_regex, label_file, segment_image, augment_image, dim, batch_size, verbose, dtype, gpu_ids, label_balance, cell_box_regex, cell_box_filelist, n_channels, channels_first, match_labels, normalize, *image_folders)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[0mduplicate_test\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mimg\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mimage_folders\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 251\u001b[0;31m \u001b[0mflist\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_file_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 252\u001b[0m \u001b[0mflist_set\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mflist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mflist_set\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mintersection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mduplicate_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
|
76
|
-
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/cell_data_loader/util.py\u001b[0m in \u001b[0;36mget_file_list\u001b[0;34m(obj, allow_list_of_list)\u001b[0m\n\u001b[1;32m 856\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_file_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mallow_list_of_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 857\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 858\u001b[0;31m \u001b[0mobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_file_list_from_str\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 859\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 860\u001b[0m \u001b[0mobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_file_list_from_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
|
77
|
-
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/cell_data_loader/util.py\u001b[0m in \u001b[0;36mget_file_list_from_str\u001b[0;34m(obj)\u001b[0m\n\u001b[1;32m 833\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mall_filename_list\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 834\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 835\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Invalid string input: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 836\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 837\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_file_list_from_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mallow_list_of_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
|
78
|
-
"\u001b[0;31mException\u001b[0m: Invalid string input: /path/to/my/images"
|
|
79
|
-
]
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"cell_type": "code",
|
|
85
|
-
"source": [
|
|
86
|
-
"from torchvision.models import resnet50 #, ResNet50_Weights\n",
|
|
87
|
-
"import torch\n",
|
|
88
|
-
"import os\n",
|
|
89
|
-
"import glob"
|
|
90
|
-
],
|
|
91
|
-
"metadata": {
|
|
92
|
-
"id": "rIUibEMEF98J"
|
|
93
|
-
},
|
|
94
|
-
"execution_count": 4,
|
|
95
|
-
"outputs": []
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"cell_type": "code",
|
|
99
|
-
"source": [
|
|
100
|
-
"def example_torch(gpu_ids = None,verbose=True):\n",
|
|
101
|
-
"\n",
|
|
102
|
-
"\t\"\"\"\n",
|
|
103
|
-
"\tReplace these folders with whatever folders of cells you may have. Note that\n",
|
|
104
|
-
"\tthe test/train folders in this script are the same -- you would need to\n",
|
|
105
|
-
"\thave a separate train/test set in your own implementation\n",
|
|
106
|
-
"\t\"\"\"\n",
|
|
107
|
-
"\n",
|
|
108
|
-
"\twd = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))\n",
|
|
109
|
-
"\tmodel_folder = os.path.join(wd,'checkpoints')\n",
|
|
110
|
-
"\tos.makedirs(model_folder,exist_ok=True)\n",
|
|
111
|
-
"\tmodel_file = os.path.join(model_folder,'torch_model.pt')\n",
|
|
112
|
-
"\n",
|
|
113
|
-
"\t# Training data folders\n",
|
|
114
|
-
"\timfolder1_train = os.path.join(wd,'data',\n",
|
|
115
|
-
"\t\t'3368914_4_non_tumor')\n",
|
|
116
|
-
"\timfolder2_train = os.path.join(wd,'data',\n",
|
|
117
|
-
"\t\t'4173633_5')\n",
|
|
118
|
-
"\n",
|
|
119
|
-
"\t# Test data folders\n",
|
|
120
|
-
"\timfolder1_test = os.path.join(wd,'data','3368914_4_non_tumor')\n",
|
|
121
|
-
"\timfolder2_test = os.path.join(wd,'data','4173633_5')\n",
|
|
122
|
-
"\n",
|
|
123
|
-
"\t# Get a pretrained model from torchvision\n",
|
|
124
|
-
"\tif os.path.isfile(model_file):\n",
|
|
125
|
-
"\t\tif verbose: print(\"Loading %s\" % model_file)\n",
|
|
126
|
-
"\t\tmodel = torch.load(model_file)\n",
|
|
127
|
-
"\telse:\n",
|
|
128
|
-
"\t\tmodel = resnet50(pretrained=True)\n",
|
|
129
|
-
"\n",
|
|
130
|
-
"\tif gpu_ids is not None:\n",
|
|
131
|
-
"\t\tmodel.to(gpu_ids)\n",
|
|
132
|
-
"\n",
|
|
133
|
-
"\t# Train\n",
|
|
134
|
-
"\n",
|
|
135
|
-
"\tmodel.train()\n",
|
|
136
|
-
"\tloss_fn = torch.nn.MSELoss(reduction='sum')\n",
|
|
137
|
-
"\toptimizer = torch.optim.Adam(model.parameters(), lr=1e-5)\n",
|
|
138
|
-
"\tdataloader_train = CellDataloader(imfolder1_train,imfolder2_train,\n",
|
|
139
|
-
"\t\tdtype=\"torch\",\n",
|
|
140
|
-
"\t\tverbose=False, gpu_ids=gpu_ids)\n",
|
|
141
|
-
"\tif verbose: print(\"Beginning training\")\n",
|
|
142
|
-
"\tn_epochs = 1\n",
|
|
143
|
-
"\tfor epoch in range(n_epochs):\n",
|
|
144
|
-
"\t\tl = 0\n",
|
|
145
|
-
"\t\tc = 0\n",
|
|
146
|
-
"\t\tfor image,y in dataloader_train:\n",
|
|
147
|
-
"\t\t\ty_pred = model(image)\n",
|
|
148
|
-
"\t\t\ty_pred = y_pred[:,:y.size()[1]]\n",
|
|
149
|
-
"\t\t\tloss = loss_fn(y_pred, y)\n",
|
|
150
|
-
"\t\t\tl += float(loss)\n",
|
|
151
|
-
"\t\t\tc += 1\n",
|
|
152
|
-
"\t\t\toptimizer.zero_grad()\n",
|
|
153
|
-
"\t\t\tloss.backward()\n",
|
|
154
|
-
"\t\t\toptimizer.step()\n",
|
|
155
|
-
"\t\ttorch.save(model,model_file)\n",
|
|
156
|
-
"\t\tif verbose:\n",
|
|
157
|
-
"\t\t\tprint(\n",
|
|
158
|
-
"\t\t\t\t\"Epoch {epoch:d}/{n_epochs:d}: loss: {loss:.5f}\".format(\n",
|
|
159
|
-
"\t\t\t\t\tepoch=epoch,n_epochs=n_epochs,loss=l/c)\n",
|
|
160
|
-
"\t\t\t)\n",
|
|
161
|
-
"\t# Test\n",
|
|
162
|
-
"\n",
|
|
163
|
-
"\tmodel.eval()\n",
|
|
164
|
-
"\n",
|
|
165
|
-
"\tdataloader_test = CellDataloader(imfolder1_test,imfolder2_test,\n",
|
|
166
|
-
"\t\tdtype=\"torch\",verbose=False, gpu_ids = gpu_ids)\n",
|
|
167
|
-
"\ttotal_images = 0\n",
|
|
168
|
-
"\tsum_accuracy = 0\n",
|
|
169
|
-
"\tfor image,y in dataloader_test:\n",
|
|
170
|
-
"\t\ttotal_images += image.size()[0]\n",
|
|
171
|
-
"\t\ty_pred = model(image)\n",
|
|
172
|
-
"\t\ty_pred = y_pred[:,:y.size()[1]]\n",
|
|
173
|
-
"\t\tsum_accuracy += torch.sum(torch.argmax(y_pred,axis=1) == \\\n",
|
|
174
|
-
"\t\t\ttorch.argmax(y,axis=1))\n",
|
|
175
|
-
"\taccuracy = sum_accuracy / total_images\n",
|
|
176
|
-
"\tif verbose: print(\"Final accuracy: %.4f\" % accuracy)\n"
|
|
177
|
-
],
|
|
178
|
-
"metadata": {
|
|
179
|
-
"id": "LgDYXyklF9BX"
|
|
180
|
-
},
|
|
181
|
-
"execution_count": 5,
|
|
182
|
-
"outputs": []
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
"cell_type": "code",
|
|
186
|
-
"source": [],
|
|
187
|
-
"metadata": {
|
|
188
|
-
"colab": {
|
|
189
|
-
"base_uri": "https://localhost:8080/",
|
|
190
|
-
"height": 35
|
|
191
|
-
},
|
|
192
|
-
"id": "YxPqQuvcZMYJ",
|
|
193
|
-
"outputId": "cb3a8158-b807-48cb-a68f-bed0fb022ebc"
|
|
194
|
-
},
|
|
195
|
-
"execution_count": null,
|
|
196
|
-
"outputs": [
|
|
197
|
-
{
|
|
198
|
-
"output_type": "execute_result",
|
|
199
|
-
"data": {
|
|
200
|
-
"text/plain": [
|
|
201
|
-
"'0.14.1+cu117'"
|
|
202
|
-
],
|
|
203
|
-
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
204
|
-
"type": "string"
|
|
205
|
-
}
|
|
206
|
-
},
|
|
207
|
-
"metadata": {},
|
|
208
|
-
"execution_count": 6
|
|
209
|
-
}
|
|
210
|
-
]
|
|
211
|
-
}
|
|
212
|
-
]
|
|
213
|
-
}
|