{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Input & Output" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This section contains the introduction of reading and writing files." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## File format " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Firstly, two typical types of Stereo-seq data, GEM and GEF, are shown below:" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "#### GEM" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "GEM file contains columns of geneID, x, y, MIDCount, ExonCount where x, y represent spatial positions of genes in the tissue section. MIDCount is the number of gene expression and ExonCount is the number of exon expression only in GEM file, which is generated by `spatial_RNA_visualization_v5` in SAP or SAW (version >= 5.1.3)." ] }, { "attachments": { "1672710347907.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvUAAAE9CAYAAACLEZ3JAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAE5SSURBVHhe7d3fbx3Vvfdx/gzfInGDelHu4NJI1VYtrPI4oiI+bUkUcqrgojYKkVuiHIH8HNr8QAmJCCAHygkJSlRj4JEjeo5DRQqJUcSmonFFjeLQAzZq5CTSlhJZjYT0fWbtNT/WzF6zf3nP3msx74uXBNk/bM9a3zWfWbNm5q5vv/1WAAAAAPiLUA8AAAB4Lg71X61+AwAAAMADZqBXCPUAAACAZ8xAr6RCvfkCsBF5HQ7uor38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1KMQDLz+ob38Qo2hjOj3gGarA0I9CsHA6x/ayy/UGMqIfg9otjog1A/AjYvTcmDfgdC0XLjR7HWLV2fk3PvnpLp8Q24bn3MJA69/aC+/uFJjqfHqhRlZrNnf19wNufCqMca9eyXz+hWZi15r5/UGR+Xk2XNy7uKirHb1+4VqV6T6lvp7d8m2HzwoD/5gm+wKvn/6rapc2cj3om1u9PtW/a3R3JLte/x1e7kqM6pmd28L6iCoha27gr9zWmY+vSK3/2X/DHrLVgeE+gFYPTUmd911V2hMTv5vs9dbuGdEJl44J6u3098xaG4MvOgE7eUXV2osO14N/eZcx5MNV14dSX3HXc9eyLzngkx18npTQ3Lv5qkgfNzIfEcT1y7I0e0PypD1+yJD8uDOk7KYmaRBb7nR7zvpb9rURdv3+OfGn4/KtuEh698YG3pQdp1alBuWz6N3bHVAqB+Anob6yD1jcvRSBzupgrkx8KITtJdfXKmxxvFqRKY7mZWsnZNdQ+bnA4WG+ogK4TNypcWs4o0/T8mD2d+vmaEROfDpbet3+eWGzD0ZhreG7T04bvT7Mob6G3LhP1sd2KYNjR6Q6nfhDNaNOZkIxwCX2tFWB4T6Aegs1D8oe86cqy+3Mc28ukcmfni38T7lgaDDubEzcWPgRSdoL7+4UmO2SYihHXNtz9JVn3+g4fMbDvXbjzaMmefOnpSju8fl3kxAH/rpSbmS+q7E7YtT8oDx3vr7h7fJnnAJpDJ36qjsesQYi4fGZSYzpvupKlPRtiLUZ7TR3zIWr9m+xxe35cKz2ToNDoq375Hpt6K/cU5OvrBLxu5J3jP00xlZtX6fZy5NxQczhHo06CzUN75uWn1/SkbMnVSwQzm5bH9vP7kx8KITtJdfXKkxW6i/66772ptguJbMgKVsNNQ3C6E3FuXkk+mA8kDw/oYlQw1nEB6Qibeya/kTN/56Mgj3Y3LAkYmVDVudkfHobyfUZ3TQ374Dbv/3rvQM/f0TMpObM27I4qkg3D9yQC58R64zWT0zHv/thHo06GWoV7KzSZ3MkhXFjYEXnaC9/OJKjdlDfeCRky1m6dTs3332z3Yc2jsNWVfk5E/NdcEPyIFP0++p7jN/tyEZP5Uf6L+Tgv1K/PcT6jPKFOqrcuD7xt/qyMRhP114Nvn7CfWdunFF5l6YkJHvmQPu3fLA1gMy0+p01o1FmXl2mzxofvaeB2TbszPWi5dW392lr9r+QXDUqYLzv1blXOpnD8m9oxMy3WKt+ur7R2XikQfk7vj31Z87+v6q/f09DvWNO8cO17QWYKAD778WZfqnql1Du+0HObcvHpCx6D2je2TO69OjGzfQMeDTozIetcUPtsnR3DXJt6X6/FjctuP/VbKgZRhojRlS49XeA0YAGJJd/91k1nppWkbiMWtMpp41vqfwUB/435MyZnwmdYHv7XOyx5yl/+F07hKddq1ePClTWx9MLf8Z+p660cGcXLFeXFuVo3FNPChHL1nec+lo/PqDPzgqVeO1bvdvN/42I9P79qQvhgz2o8nPyfld+sSNft9lqL82J3tGk+049mLV+r4rZyaS7f3TaVk0r/sIM9LY/ebyW5WRpuTkRXvmMPvS2PPVej+/8deZoD8auaWelYK+mLnG5Pb7e1Kz9COvbnTMvSFXzmYz011y9/3bZOrUBVm1XeOyOie7ou3xg10yt9r4nqS/B3bOGRMKqzK3M/z3HeFyoNVzcnTHSFKLQ/fKyI5pqabq8IYsqjtd7Q0ypVGzd98ffldduub6zVYHboX65RnZZqzHasU8Yrrx33uaX8xkuXjJ3BmNvRAMuLlXdN8t296yFEstCI9bs+va0x54MiiSzOd6H+oDnx6Q++LPBH/Pqbzi7o9BD7zpsxeWcJE6td4ifJTEYMeAVTn5SNQega0z9rNN14IxIm7XbTJT4gOxQddYJDVeBeHmxrsTSQi4/0DOTu+2nNudjLcPBEHjSuZ70u8vINSrC0F3GJ8ZmpIL0WvGGlpl21sbuAnBv67IyRb7CXW3kD3/nf0Z6b/JOkNozqbfZfz+gW73b+asZJ5Bzla60e+7DPWBK6fGjb5lmYBLHeymX2/nou27twYHAQ3LXszfd49Mn9qWCtSmoeGgZo276VX/0+w3GxxzbwS/R6s759yzTab/ltkfpw7A7ZkoNQ6lzhKa+5YxOfpfTbZh8LOT62EybWyVrrl+s9WBQ6H+ikz/MNlYDzw5Lef+tio3gqPSC68GR2CpI6Vtssu4H/LtYAA2A9yD24+Gs/pzcvLZsaTzDk2kZmPT4Vm7+4cTskfdV3bvhIyYBxhDe+Rc6raRqzJjnr69Zyw4ypzTZxHeSt/ySe2wks+1Du2tXre7IHvizwT2tj/IFGHwA+/tYDAy1s1+f4+xvu+2XNibnNm4L9hWrt7vv58GPQakZ4Ts/d689WE3t078Lhl8jWmp8aoebtJjuTUQf3ogGbPDcbnxe8zPtApR3YWsK/+VGWvDZQXpMfjBDZz5VAcOZoi5W0Z2qIsL1UWFmdlwdaODS2aYSf9NGwn1kXb2b+rMs7qv+oTRhncFn3Plnutu9PtMf/vNXJBVbtg13G46kx2CAJpM/AUHgMbkxph5JtKsmcDQ98aDHHRS5tRs8m4j56jXGi5QtQTUoXtlfLduz12b782Zjc9MtvxgI2esqnLgfuO76j9fPT9CnRlKX2DbcLF5z0J9RNeh+tv37BhJb7t4v6LObKntE9SK8frIjqQODuxrnLTtJ1sduBPql41G+37j7I65M0919MwOJP1a+FnjyPg+I2CnOoGaKTmbmd02f6fAnj8nr6UCSCowhmpBEcUdONhpGad10oNtr0J9sB1+EH0m0HI9a7GcGHhvV402CA6u/lOfdkzN4t8f7Ai/IxfzbNTgd5TptZuNp3nN1+9rWANdNk7UWCA1XoVhWtVYfObw+0GNpYJNOuiOvKLb2fY9iVahvdXrduoCwPgzgSg4p2cn2x2DG6UPVG13J8us7U8t80n/TRsK9R3u35TUjH2b27Mf3Oj3lpCcw3rW/H9nZNw4Uzx+Rr/HzCrpuzKlc47tjk3Zs9N73s8/QKzP5qeWmqQnuu76P9H3G3dAUjaQK1LPorCty09lJjNcB3oY6oeG9zQs30kf3Ad5znitrTocEFsduBPqzcHJ1nHM180Bxlx20jCbHrp9TnZF7zGONPM7QSQYcP9P+HogKc70adu8NWZXXnkwfo+5vCP1c3sW6jNHo4R6LTW7oXaqF4zZAnduAeoCF9orNfBnD+7NWu/BGmffuVJjqfEqHpvT41EU3JVU4DdniK3fE8mEqI5fz5EKxckOO70EpdtQr5YYGd+zO+fM0tK0PBj/LPNgtY0wkfr9m4T6jvZvGqG+mUx/ayJvKWxqmZqamf7UuBNUNvSm+kjemaNMf0vdMKONvvTnPcln476U+Tu7zhXpSccHjfHAlD7INiZDexjqre2ROsDNfn8b225AbHXgTqg3b59lm6l/JdnZR0e1Sqohvz+uTy02ME+fJANf60EvrzOkGzl9Oiax56fJka/ZkVI/t2ehPlN8A74DjhsDr5a6D/bQUDyQRjP3ts+UkRPtlbnWIZltCnZYv0lmNDe0xvk7wpUaS41XZvhLLbHZJefqZ8QyZ1bzxsU+hfr0WJsE6oZlOV2F+vQsp7nfau99bYSJDYX65mGHUN9Mpr9llieZpi/mjVXpM1ZDwb5J/3cycx8xb6morv3Iuzgz/33d9qX0gV/Xod7Md8HfN5V3oXXe+4oO9U2/v41tNyC2OnBoTX36wqm7HzkgM59ekRvLVZl7dcKyc9DSp0nb0YNQn+p47Sk81Gd+J3OZ0SC4MfBG0kGiznLgWHautFfqVoLRBbPm2ba8M3Il40qNpcarVPhrvBg2vWwxXYP536O0Cu2tXrdL7z+SmUE1i5r8e+PSlLaYfTaQHwbS+5lk7O42iGld799ChPpmuutvDWxPU7bcJMA86980WKf6g7nst9u+lLmYvGFpSptSZxqaZZr07znxbnhARKi3stWBQ6E+0OpuMveMNdzqrvq8EQCGt8mU5UjZNH32Sjw72/Wgpx4ZHH3urntlLLzYJNcLJ6Wae4Fub0L9jbe2GZ/JrqfrPzcG3pD1ATfZi9LgTHtZ7v5g9u/79g32gNUVrtRYarzKhhuzLYfGZTweT4eSHXao6fe0DFHdhKzM/bfNJV2pEJJZ39uu1H6i/VA/9J+E+mbc6Pfd9DeLzMWvddmLRAOpnNN2qA++J1473n1fSh1QdJstzKWTHYT6+IwFod7KVgduhfrgqLD6gr6Ke+h7xr1AH5mQAzn3L02dboov7mhP94Ne+nRpp7M4qZ/bk1CfuarcgVloNwZeJX2K84H7jaU4ubfbKyc32ku5ITNbwzYK3Pf8jHGmpZ16KAdXaiw1XjWEm5wHTFmuiWj+Pa1CVOchK7WmOZBe0pU9uxf0u44fuJP+nbIHMYn0wUWyn2kjTBDqB6Tz/tbI3G/fF+ybkv1U9gGSqbZssn9Pn2Ey+8MG+lJqkiUQ9KWOr2dKheYmNznIOxAm1FvZ6sCpUJ9cJDchc+3ekaTt0zqNuh/00hek3BcUdCezOKmfa/mdW72edkPO/cZ85HnjerxBcGPgzey475+S6rULssfYgWZvN1pmLrRXzJzZMa6DKPttLE2u1FhqvLKFm9SzBRT7cyGaf0+rENVZyLr9t2nj7iMBNTZklnRlQ3/9TlmpO4Y0Ug/VORmfTU4vXcjtu7mBJ/03WSePCPUD0ll/szGv9VK3oLySulgzcyYrNdOd/3DJC88ay8k6vVA2ty+lJ8aUB4K/t+k1e/9SD8g6KdU4x6UPXHMfYBX8DknNNblQ1nKAnd/fCfUDkt7wdz+yS45G931XLi7K6o0blkGx9a2eFPX0tKOvpjviRga91rcqC6gn+L16VGYyD1JI/dxuQ/2/bsuVi9OyK/Mgh7y/v9+cGHhTy26SNlJX2CdtN/in77pi8GOAyXIdRLMZnhJyosYCqfEqJ9ykLla3jrWtvqdViGovZN2+tihz+9L39M6/C1bmdpPKPWNy4Oyi3Mg+dfN/L8j0zgf1uDI0Hj88p+HZCw1hJHMrwdTZQ3U/8+izd1mep3FDqvuMu0UVGerz7twzAG70+w2G+tRF5MmdbswbgqSvH0yPh9ZnqzQ7KNhQqA8E3506CA6o6x7n/pY9+3RbVo1cMqSehhv+Dek7m1luA67qzeiP6bMV6dURDbcuDw4iZnbkLVHqbah36UGVtjpwaqY+dYFcHvXAgn3pcJ5++FTQGYa3yYH4QVBBBzMerDBmHCFubNDLPEDirrtlbPd08tArdced6GEKQQc+Z8zwtArt6deH5N5hYylS4IGcp+7evTUI9LZHLA/A4Afe9OxCehDMtB23R6xzYQwwpa8ToZ2yBl9jWvMwHqrP3KlrjKblQs4TKZt/T4eh/p4HUmPmg8Pph+vEhh6UqT/nLYsJZO6dbdKPi08/6l4bkpEXojtrZQ4Mgp+37YUZvW86e1KmHjGvIWs8uEgFIfW9vzkpc/X9WvoBh1pvQ336DkAPyMSrM8F+bZuMbM0+2Ki/3Oj3mf7WhiRIp5fLpgJq5tkqQ8bBVPo+9CpUT8nJsypvnJOZF7alHtDZOLmX/n07DvWB7M9P3C0PqBq733I95NBIch1ktpaaPLCz4ZaeanWEcfcz1R+jOpo7NZV+cJXS01CfuQPQ/RMy/dZJObB9RLYNeFWErQ4cu1A26NDDxsZrIrvk5cq7xh1y8mQG8I0Oeur3PTCaHVgbZcN2OrS3CvVtCP6uXacWm58O67NBD7ypU+e2WYHMg1dsDy0rGyfGANPtc7LH2FFxG8u0QddYpHkYb1/z78mEqFavt0HNNJ7LPITGqrYoJ6NZ+JaC8BuMxalZVBVmGgJ41t1BQLCMQZmQl/XAb/YYZyN7G+rTQcfUeJFzP7nR7zvvb1GQzp61yk5U3P7zHmOpzX2y58/Jgd6VM9ssB5FpQ8NBP2iYBU//vt2EeuX23042rA7IFYTfk5lVCt8uz8i2nEnJmMpptjNnqQd2ZQ3J+N49ydr/nob6JpksfBq2+d5+stWBO6HeaOwHfjNXX2oTP2Z5uWqZ1bB0utVzcjTzyN+6e4KjumdnMk9Q68GgV3dDFt+akvHvZTv6kNw7OiFH32/8TLqDdBfq6xcSb90VHDFWZdXB2/sNdOBdnbEuu8kyn95Xb4eOL4T7bhn8jjLDvN0bt7FsMNAaM6TGK6dDvZpRHJOJfSflXMOygdZuLM3V9y/32oJFuI8x73KWlrefCH6nrQdkbtk+RtXdqMrRzGP867Ocb6mDhxsytzPaL/Y41AduXDqamQXVv2/e2ZZ+cKPfdxnqc5bdpKmLy43gn52Uysk5Q98bkV2vVnMm93oT6rUb9WtHJkbtZ7/uvn9b0DeD3yNv1YBalvyCsZIhMnSvjOyeblJDgSAn7vph+oyAWplxtD5ZuyhHowOOHof6+lK38CYu0ffUaz6zaqTfbHXgSKg3Lygy762adUH2xBu1Wae7nRwQNByxFqiWHIikZmpKyI2BF51wrb3MpQfcxrIRNTY4t6P9i9LpwebtLvcT8eeaHAAUJPp7bzuwvJN+n4j7YT9zToqRtVT/sL6niTgzddinu/3cRv0r+nv7X4M2tjpwJNSbR1Lp002mG+8np6WGnhzsE1PRHAOvf5xqr9sXZCq+WwIXM9tQYygj+j2g2erAmeU36SUnd8vIjj2pBziZF7vmn7aCKxh4/eNSe5kXyZoXiyFBjaGM6PeAZqsDhy6UtaxZshga3iUzBHrnMfD6x532Sj+UhdtY2lFjKCP6PaDZ6sChUB9S9xF+dY9MPBLeiiy0Td0u8tNVZuw8wcDrH2faa3kuPkM3ffYKNZ+DGkMZ0e8BzVYH7oV6fCcw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OCPUoBAOvf2gvv1BjKCP6PaDZ6oBQj0Iw8PqH9vILNYYyot8Dmq0OUqEeAAAAgPvMQK8Q6gEAAADPmIFeSYX6W+vrQE9EHc72GtxEe/mFGkMZ0e8BTdWBGegVQj0KwcDrH9rLL9QYyoh+D2iqDsxArxDqUQgGXv/QXn6hxlBG9HtAU3VgBnqFUI9CMPD6h/byCzWGMqLfA5qqAzPQK4R6FIKB1z+0l1+oMZQR/R7QVB2YgV4h1KMQDLz+ob38Qo2hjOj3gKbqwAz0CqEehWDg9Q/t5RdqDGVEvwc0VQdmoFcI9SgEA69/aC+/UGMoI/o9oKk6MAO9QqhHIRh4/UN7+YUaQxnR7wFN1YEZ6BVCPQrBwOsf2ssv1BjKiH4PaKoOzECvEOpRCAZe/9BefqHGUEb0e0BTdWAGeoVQj0Iw8PqH9vILNYYyot8DmqoDM9ArhHoUgoHXP7SXX6gxlBH9HtBUHZiBXiHUoxAMvP6hvfxCjaGM6PeApurADPQKoR6FYOD1D+3lF2oMZUS/BzRVB2agVwj1KAQDr39oL79QYygj+j2gqTowA71CqEchGHj9Q3v5hRpDGdHvAU3VgRnoFUI9CsHA6x/ayy/UGMqIfg9oqg7MQK/4EepvLsknH3wob7/+vBw8pPxe3g7+/5Mvavb3f4d8/dcP5YPgb7247Nff6vLA29U2vVWTz/+S9MHX3g36Xzdtcn1JLgY/+4MPFuVr2+sD5Fx7Bdv86799LGfPvFLf5i+deU8u/q2D31GNG+/9QV5SY8br78gHf1mSm7cs78tx85tFufju71M/u5PPF83JGutVnQA5XN633Pp6sb5v+eDjL+Wm7XWgh1QdmIFecTrUL184Jc/8rCLDw8P5Rh6TZ84syjWHdra9cV0+e+NXUgn/zh1nvrS8x11uDrzdbdPP331WfjZi9DlD5d+Pygdf2z/X4Ov35blHo/78vFy0vWeAXGqvax+/Ijt+ZK/9yqN75Mxfr1s/V3drSd7+j81xO6eMPC5HPmzxd177WF769y5/dh+5VmM9qxOgCTf3LcGY9ddT8suo/+/4gyxb3gP0kqoDM9ArboZ6tVPeM5beMYyMyaP/tjkxlt7pVh79ncx/V3Yat76R+d+mQwmhfoO63KbLZ56IP1P52W55Ts36Bp779WPJdz0SBPTr9s9HUgN+HaE+z7ULz8tYuJ0qP3pCngm3+cFnn5CHKuH2qzwhZ5Ytn7/1pZz5RTQ2VORnv/6dvHTmHTnz8u9kd3xAVclv++sfy8FHop/xkOx4Vs02vyOvHXpWHo/bb0wOXhh8sHepxnpVJ0Arzu1bAl//z+/k0WhsUgj16ANVB2agV9wL9amdsp7hOZt3yv2bRTl75HG906jslrPfWN7jm+uL8sau8O+vVOIdIqF+A7rdpn85GobLIAS+udT4+henZEc4kD905NPG10PmgF8Jfn799yDU233znuwOt9XYwQ8bz8Bd+zAJ3bveaVjC9MmL4WRAEPpfy86o37ouF18Mx4sgmB/5i/Fa3TdydnfYPo882zhJYE42ODDeOFNjPaoToB1O7VtSZ3+DfUsU7An16ANVB2agVxwL9TW5eCiaoa/Io4csO3Wbf3wqF79w45T4hqjAEs0mjvxK3vjre3Kwvi0I9V3repvWZP7/hp+zhMfIZ9Ob9Xsq9pD++ZlkwH/0t+/LxTef0O8n1Ft9/sZjevv86Kh8klP7197bE27DJ+SMGby/eUd+Wf/3Zm37pZzZod/T0K6fHJWH6p9/SA5eyFkHfvNjOfgj/flBB1Q3aqw3dQK0y5l9y63r8sGh6OxvRX75xqKcPajHBkI9+kHVgRnoFbdC/Ren5Gf1AhmWyu73nLuQsFBqhjI6vR/PEgYBItwehPoubGibfipH6uGtIk+/1+SA8cLz+vtVwPyH+VpNPnk5WnpQkR2vLsq14N/VMgX9fkJ9o+tydrdum7HpRcvroX/8QXbUt+FwEL6Tf4+3rQqOTSYDbr7/bNgu6Ta7eDAMpy12yPGBR4ufUzQnamzDdQJ0xo1+/42c/XU4XgyPyTP/o3+fi4R69JGqAzPQK06F+k9efCgsksfkjS/s7+nKPz6WM0d2y+PxmvzHZff0e/L5Nct7g2Bx8Q21HvQVmQ93Ptf+/p689OvH4/X8j//6qLzd6mK5W1/KxTNHZfe/Rz9Tfe4VOfv3vM8FPzc46n9o1yn5LF53SqjfmI1v05s3W9y548PfhX12t5zN9qflP8gvf7RZngsHfIVQ34ZW23z5lDxe34YPGUtokgOC4d9+mH5/1s335Zn654dl91xUj1E4HZbH32zRL/7+e3m04ef3nxs1pm2oToAOuNLv1bU/j/5Inf1N9umEevSTqgMz0CsOhfolee3fel0Q1+WT6WgNrVKRsX8bS/6/kg5cWnJ6/pn3vjROr2VV5Jdv23f+1z55xbioblgqY5tlLP5/vQzj67Zm+Aj1vdfbbRofiP7b7+Vzy+tZhPqNuza3O9yGz8r8zejfO2nXpMYrhz7W/5Yz+29n/KyZwW0zd2usUad1AuRxud8T6tFPqg7MQK+4E+qvvSe7wx3lQy/2Zq1qfEeGyuNy8IMvk3tM36rJ8nvRxYuPyWt/Nz9n7PDVRY1B8H/6zKeyHIaHm8sfy0vRhbwVM1SEloNwUP/eijx+6ENZriWv3Vx+L76l4c9etVxQ1oBQ33s93KbG+uqfvdFOexLqN86oz//7fnIv6K87CeXr8sFv9XuHd79XXxZ16+PnrUty7L6UN7bpz/dqrOqGuzWW0UWdAHlc7veEevSTqgMz0CvuhHpjpqwnATa+aO4hee5D+5KXKGClwoERGqx3wFCMC/KS0/fKN/L2Lv3vD/32Qx0WsqK/03ZA0IBQ33u92qbGRd3qVn0t21Ij1G/M8kx0oJ4J3x3NtFt2vh2t+TbGiIPhTP8AuFtjpu7qBMjjcr8n1KOfVB2YgV7xM9Tfqsm1a9cbGTuM+GK2LafyT/fGa2vNgN3ODjtnpi6+0LfZNQE1mX9Wf/aZ/2n1pEVCfe/1Zpt+/T/PhrfxG5ODH7dqxwShvnvX/vr7+CzYjplM2xHqndRtnQB5XO73hHr0k6oDM9Arfob6eAecEe9gjYvmdv1eP7bZ6vfhjLu5I28v1Nvek6z1/ZW8Zv152mvhbH7rUEmo772Nb9Pk4UhBUMk5C5SHUN8lY1mb9V7ohHrnbKROgDwu93tCPfpJ1YEZ6BV3Qv2tD+W5+g7AuHgtzzfvy3PGXWXii1DjHayx021Lb0J9EtjaQ6gfhI1tUzOoPD3X+ecJ9V0wr1N58VP7sjbjjjatz4AlZ8uGnw2X3sV3tNmcucbGJrmo/9G2ro0phrs1tvE6AfK43O8J9egnVQdmoFfcCfXm7Lp68Iz1PXZxIVlC/eOvL9qX6qSYIaAHoX7b7+Uz689Jiy/czUWo773ut2kSVCryy+zyjzYR6jtkBPpHg4N9a6CvS25J2TpoJ6E8Xj5nXKjf8qDAekvM/nO1xnpRJ0Aed/cthHr0l6oDM9ArDoX6dfn63V/pggh2Bs+83/76y8ZQnxwgtJz1b9B9qI+X3/TsqYmE+t7rbpuaQWUjbUGo70Ac6IdlLKiz/ECvGLPv0R1t8sQXuleMpTqWoJ8nfvJsO0t1iuNijfWqToA87u5bCPXoL1UHZqBXnAr1t259KkceCYtC3SkhfmBQc42hfl0+fzV8LHnH90XuPtR3dgq/HYT63ut8m6qgom9/uvGgQqhvUxDofxkuq2sd6LXkSbG/kre/sb9Hidsgcweq+OJ6daYw9yxaLRhvwnuuN7sIvw9cq7Fe1gmQx919C6Ee/aXqwAz0iluhPpDM9AxLZdtRudjG0wdtoT65E03+LS3tNhDq15fkjS3633NvadkRQn3vdbZNU0HFdoFmhwj1bUgF+qCO2npQW0BNCoRLcHLr7/qH8lz4nrHsjLxxq9odeU+VXT4VXpBbkd1zg91eLtVYr+sEyOPuvoVQj/5SdWAGesW5UK8sz+2Jg716+NPu6ffks39kluPcqsnXf/tQzuwznhibCtjG/ZErT8hrxqOcI8sXTsnTj2ZnlTYS6tfl5sfG6edXFxsDyT8+ljf+Y7NUfhEUPWvqB6D9bZoKKq9/Kl9broswtb5GglDfkhnof/ueLH9j39aR7DZPJgXCh78Zr5sPf8s7E6jaR48nY/L0mXT9fv2XU/Hv1l79FsuVGiuiToA87u5bCPXoL1UHZqBXnAz1yrW//qEeuHUAaq3y6B45kw3ut4LwvSv5jsqPLHfMUTv/1B01NhbqleWZXyUHGpWH4p/56Jjxu2w7Kp9kQ8XX78jT0XvrxuLvMX935aVPMp91jDMDb7fb9ItT8ng9qLRvx0zj3/vJy+mf8eiPoj5QkTHz3//jHfk689l+G3h73fxQnovrsj22a2aSYK6E2zne7oGRX8mZ5fRnEteDHXM4GaCE9ZuMF8HPfLT9pYFFcqLGelQnQLuc2beoh03+hzGGm+OEud9XXh7ck6fx3aXqwAz0irOhvu5WTZYv/EGe+1USxFKCwvnZr4/KmQtNZlxvXZfP3v2d7DB36vFnX5Gzf8/O4G881CvX/vqOPPeLhzK/d0Ue2rJbXnpvyb6kwLjXdivt3It7kJwZeLvdphdynoXQhG3mP565acWBmZ2Bt1cHbRXrpP6Cmt+x7x35rI0lfcsfvCK7f5YZM0Yek93T6dn/QXKixnpUJ0C7nNm3mDmgldwsAXRP1YEZ6BW3Q33GzevGadzr7d8dJ1bbwGe7ZTz9tkynnd0ZeNGu72R7xfXXZc0PYsxoEzWGMqLfA5qqAzPQK16FeviDgdc/tJdfqDGUEf0e0FQdmIFeIdSjEAy8/qG9/EKNoYzo94Cm6sAM9AqhHoVg4PUP7eUXagxlRL8HNFUHZqBXCPUoBAOvf2gvv1BjKCP6PaCpOjADvUKoRyEYeP1De/mFGkMZ0e8BTdWBGegVQj0KwcDrH9rLL9QYyoh+D2iqDsxArxDqUQgGXv/QXn6hxlBG9HtAU3VgBnqFUI9CMPD6h/byCzWGMqLfA5qqAzPQK4R6FIKB1z+0l1+oMZQR/R7QVB2YgV4h1KMQDLz+ob38Qo2hjOj3gKbqwAz0CqEehWDg9Q/t5RdqDGVEvwc0VQdmoFcI9SgEA69/aC+/UGMoI/o9oKk6MAO9QqhHIRh4/UN7+YUaQxnR7wFN1YEZ6BVCPQrBwOsf2ssv1BjKiH4PaKoOzECvEOpRCAZe/9BefqHGUEb0e0BTdWAGeoVQj0Iw8PqH9vILNYYyot8DmqoDM9ArhHoUgoHXP7SXX6gxlBH9HtBUHZiBXiHUoxAMvP6hvfxCjaGM6PeApurADPQKoR6FYOD1D+3lF2oMZUS/BzRVB2agVwj1KAQDr39oL79QYygj+j2gqTowA71CqEchGHj9Q3v5hRpDGdHvAU3VgRnolVSoBwAAAOA+M9ArhHoAAADAM2agV1Kh3nwB2Ii8Dgd30V5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx34EepvXZXLHy3I3BuH5fAR5YTMBf9/+ct1+/t9d2dd1r6oyvzM8frfe3xmXqpfrNnf6yjnBt6NbtPg8yuLSR88cXaD/e+fS7IQ9OGFj5Zkzfb6ALg4BtjabP2O/b0N1LgxPyvH1ZjxxpwsLF5t/7OB9bUlqZ490d3P7gPnaiylJlerqn8vyNKa7XWgO073+2hcr67Iuu11oIdsdeB0qF+5dFqmHqvI8PBwvpEtMjWzJDWHdrYbUasel4mH7X9zZfNemf28Zv2ca1waeDe6TdcWjsn2kcbPRp+f+9L+uVx3LsuxH0ffcViqtvcMgEtjQO3zWdm7Oaf2R7bL8WqTNrtzVeaeGZdKzmePLbQ4mLtZleM/d78GXaqxlDtrcn5fsv0PX7K8B+iSq/2+9vlp2RntJ56YlRXLe4BestWBm6Fe7ZT3bkrtTIdHNsn4T8YTm9I73crm/XL+n5bv8kjt0mHZFP09D0/IlJphVKYmZLQS/q2VCZn9yv55l7gy8G50m67MTMThpOnnV+2fb1ST6iGzbxPqs8w2UwftkwfDbX5wUrbEB1eb5HDVcqbkzorMPhmNDRXZ8vR+OT4zJ7PT+2UyPkioyMTMSuNnlVpVDkcHXJVRmZhSZ2Xm5MSRKePALvjZlwYf7F2psZTakpx+Kj02E+rRSy72+7U/7ZfxaH+gEOrRB7Y6cC/Up3bKQZD6+TGZz1smsbYk8y9u16GrMinzPp/mXZuXyXBQ2HRoofHMw82FJGw8NefMko08Tgy8G92mq7MyoV4LQuD2l6uNn/8qeD38/spz59s63br2x0ndX9WBaf27CfUpt4JQ/bDeppv2zsnV7DY3Q/fW03LVfC1w+eXwgCk40DqRnVG/ExxQvRyOF0EwP7ZovFa3JvOT4djz46nGSQJzssGB8caJGjP987zsjw6cKhVm6lEIt/p9TZbe3Bn29aDPR8GeUI8+sNWBY6F+XapHolnMiowfsQQxm9XLUv3SjVPi3br65hb9dz98TC7n/M21+b3htpmQWcfPSrgw8G50m15+eVS/tvVEY7gMxT+j0kY4jw4C1Mz+wunwgIFQb6oFBz16ewahumZ/z/r5qXAnmmmztTnZWf/34fyZ+G9XZPYJ/Z6GA7nPjslo/fOjQRDNuV7COOgYffGy/T194kKNxb6cjZce1M+aVqP+TahHbznT7+/UZOFItMysIjvfXJL5Q7rPE+rRD7Y6cCvUf3latoQ7gsrkvPOz0b1Tk/lJ/Xdvem3J8noonjl2f0c5+IF3o9t0RU4/rv69IpN/bLIG+9Lh+mdbhvN4HX1FJt4OAmf8cwn1poV9ui02vdwkMMfbLr3sSS2VqreFOsBqMhmQOigwPl89FM4yt9ghpw7k2pl0KMjga0xbXzwuW6IzVk+ekCV1MObRWAW/uNHv12T+6WhFwSaZ+pPeR1QJ9egjWx04FerjmdHhLXK604sPm1mtyuyLk7I9XpO/XSZfm5erNy3vVWue31RreI/L+XCHX1uel+NPb4/X829/+pjMtbpY7s6KVGeOyeTPo5+pPndc5pebfO5Wi7upfHVatte3z6hl6YBb3Bh4AxvdpustPr+wX/dZdTbA9npdso5+06Gq1NS/EerztdrmcZtNynxcw8lB3PC+hfT7s26dl6n654eDA7aoHoODrnAGfvuZvFn+0PKJcOnUYOvQmRpTSyafGpXxfedlLTrIIdSjIK70e3Xtz/jDO+W0kQUI9egnWx04FOqvyomf9LoganL5tWgNrVKRTT/ZlPx/ZVz2h0fYieT0/NT8inF6LasiO/+ffedf++x46m4plU3jsin+/0p659eBeGnC8JScv2V/jytcGXhb2dg2rcn5KT1b02wpxsrb4cW2Pw4CfLSkhFDftauvhzPlqeUzVTlc357Nlt5EkhqvHKnqf+sohBo/6+0Wd9IpkNM1RqhHQVzu94R69JOtDtwJ9TfnZTLcCYw2O/XegfjOJZXtcvijleQe0+qe4/PR1epb5MSy+Tljh18JAlsQ/PfOXJaVMPCtf1WV49GFvGrdbzYIxhdPVmT7kQVZWU9eW/9qPr6QbMvrV9Ofa8n4vdq8KHOQXB54ExvYpuoi7SP6gLHy+DG5nLP+O+kPmX5GqO/c+opU39yr74zz470yb96x6J+dhchomc/w5Lw+c1I9HB68p5fk2EVLs3o3VnXD6Roj1KMgLvd7Qj36yVYH7oR6YyfQeqatDfFFc6Oyf8G+5CVag5sOdEnQs94BQzEuyEtO3ytrMveU/vfRfQs6LGRFf6ftgKCJeLa3o9snDo7LA2+k820atO8z4zIe3/NePSOhmn/WRV1UGa2jz/ZpQn3bLk8H2zy+he2oTLw8L1ezB1EdhsiGnW98bUR7oT4eIw6FM/0D4HSNEepREJf7PaEe/WSrAz9D/Z11qd2sNTJCcnwxm+W2d7F4ba0ZsNvZYefM1MUX+ja7JmBdzk/pz079qcXa4VDt8xPx7H/9IkvLe1zj8sCrdLdNjb4RUveuP/aR7fPJOnrrRd+E+rbFO8qI7YFzhHq3EOpREJf7PaEe/WSrAz9DfbwDzoh3sMZFc0+dCB/Hb3MinHE3d+TthXrbe5L12TvlhPXnaSfC2fy2zkgYy3kmznS6ZGdwXB54e7FN11eNZyRYZuLjpV/mOnoTob5j67Wr9eU30UNe4ouOFUK9Wwj1KIjL/Z5Qj36y1YE7of7OguwPdwLxxWt51s7LfuOuMvFFqPEOtnFGtbnehPr4lnptahnqjfC5/eXL9uU8jnJ24O3xNq39Kbo94k6Zix5GFP+MJk8eJdR3b/lEeEZsVI59Fv6bcUeb1mfAkrNlw1Ph0rv4jjbjmWtsbJKL+sc7vjamd5ytMYVQj4K43O8J9egnWx24E+rN2fWmtwdsFBeSJdRvf2PJvlQnxQwBPQj1j5+QJevPSYsv3LUxwud4cJDjU6BXnBx4i9imxsFoFCaTW7N2aMA7Ald3lI2S5W9JqE5uSdk6aCehPF4+Z1yo3/KgwHpLzP5zssYihHoUxOV+T6hHP9nqwKFQ/62snd2pCyIIXVPn21tvrjSG+uQAoeWsf4PuQ33yNMwNzr7G4TOzxMAjzg28XWzT9a8uS7XZcwXqGm+luP7RfhkNf1YnKtknnPaZE+21tiTVxVbL0mz1Z8y+R3e0yRNf6F4xAqcl6OeJnzzbzlKd4jhXYyZCPQricr8n1KOfbHXgVKhPnroZyFuLbNEY6tW9rMf1v/3kRP6Fslbdh/rOTuHnCMJn9Lh1XwO94tTA28U2VU8drbevuktRs37Y0bIPA8tvGhkXmjevH/vyl+RJscZSKIv4jFrmDlTxxfXqTGHuWbT1YLwJz8Q0uwi/D5yqsSxCPQricr8n1KOfbHXgVqgPqKe01e9DHVD3/65an/qaZgv1SUDIv6Wl3QZCfRA2Tm/V/557S8tmUuEz+Hyz5TmOc2bg7XabqttRhss5mh0IxA9CahEkGxDqLZK6qjwZ7BRz2iq5jsFYU6+oSYGwzXLrr7Yg+6N2zc7IG7eqnch7quxXp8N2q8jkHwf34CnFmRqzIdSjIC73e0I9+slWB86FemXlj+EDZpTKuEy+Ni9Lq5lZ0DvrsvbFgsweNJ4YmwrY61I9om8pqO5DfsJ4lHNk5dJp2bs5e+eSjYT6b2W9Gh2UBN/7eua2e8pqVU4/M94YWszwuW9eVtbs6/AjTdfjO8CJgXeD2zS+j33QlvUHiZmv31mRhfjuN5aA2Aqh3iqpn2Cb7p2VJfOg/k5NlmaSu9/YbhWaTAo0tpn58Le8M4HxXYuGN8nezG0z1xZPx/2p2UFHvzhRY3kI9SiIy/2eUI9+stWBk6FeqX0+Ww/c9QJpQ2XzXpnNBvcgeM0+lXxH5WHLHXPUzj91F5SNhXpl5e2dyYFGZTT+mckDdILfxXwK6a0F2R//Pu3p/FqB/hr4wNuTbZrca16ryOjmoB03jybtG9i0Nzhg6DTgEepzJcFaq2xS9bMp/W9NnuKb/nxFNqnaix8YFhjZKbPm02hTMm0e1m8yXgQ/e7P9gKDfBl5jps+OJ+OcYtSIbr/IXpmzPdAPaJM7/T58GKHR7+NxwtzvK9MdTvoAbbDVgbOhvu7OuqxcmpX9O9M79FhQOFuePiazl5pcWKdm987ulwlzpx5/9rjMN1wIufFQr9Q+n5P9T6bDXz0Ubp2U4/NXcx+c07bc380NAx94e7hNVz46JjuNA7JI5bGgLa0PnmoDob4pdVA/tTVbP8E2f3hC9p+1nAHLsNZfUPMTB+fSs/85Vj46LpOPZdp8ZItMvpY5YzNAA68xU96zQxoM9uJi+M+dfm/kgFYc31/DT7Y6cDvUZ6zXjOUStQ4uSoysb+Cz3TKefuv6kplecmfg7aGo/yjrltc952R7mU+PNi5qbVv8+S5rfhBjRpu+kzUGtEC/BzRbHXgV6uEPBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVAaEehWDg9Q/t5RdqDGVEvwc0Wx0Q6lEIBl7/0F5+ocZQRvR7QLPVQSrUAwAAAHCfGegVQj0AAADgGTPQK6lQf2t9HeiJqMPZXoObaC+/UGMoI/o9oKk6MAO9QqhHIRh4/UN7+YUaQxnR7wFN1YEZ6BVCPQrBwOsf2ssv1BjKiH4PaKoOzECvEOpRCAZe/9BefqHGUEb0e0BTdWAGeoVQj0Iw8PqH9vILNYYyot8DmqoDM9ArhHoUgoHXP7SXX6gxlBH9HtBUHZiBXiHUoxAMvP6hvfxCjaGM6PeApurADPQKoR6FYOD1D+3lF2oMZUS/BzRVB2agVwj1KAQDr39oL79QYygj+j2gqTowA71CqEchGHj9Q3v5hRpDGdHvAU3VgRnoFUI9CsHA6x/ayy/UGMqIfg9oqg7MQK8Q6lEIBl7/0F5+ocZQRvR7QFN1YAZ6hVCPQjDw+of28gs1hjKi3wOaqgMz0CuEehSCgdc/tJdfqDGUEf0e0FQdmIFeIdSjEAy8/qG9/EKNoYzo94Cm6sAM9AqhHoVg4PUP7eUXagxlRL8HNFUHZqBXCPUoBAOvf2gvv1BjKCP6PaCpOjADvUKoRyEYeP1De/mFGkMZ0e8BTdWBGegVQj0KwcDrH9rLL9QYyoh+D2iqDsxArxDqUQgGXv/QXn6hxlBG9HtAU3VgBnqFUI9CMPD6h/byCzWGMqLfA5qqAzPQK4R6FIKB1z+0l1+oMZQR/R7QVB2YgV4h1KMQDLz+ob38Qo2hjOj3gKbqwAz0CqEehWDg9Q/t5RdqDGVEvwc0VQdmoFcI9SgEA69/aC+/UGMoI/o9oKk6MAO9QqhHIRh4/UN7+YUaQxnR7wFN1YEZ6BVCPQrBwOsf2ssv1BjKiH4PaKoOzECvEOpRCAZe/9BefqHGUEb0e0BTdWAGeoVQj0Iw8PqH9vILNYYyot8DmqoDM9ArhHoUgoHXP7SXX6gxlBH9HtBUHZiBXiHUoxAMvP6hvfxCjaGM6PeApurADPQKoR6FYOD1D+3lF2oMZUS/BzRVB2agVwj1KAQDr39oL79QYygj+j2gqTowA71CqEchGHj9Q3v5hRpDGdHvAU3VgRnoFedC/c3r1+XmrZzXrnX3GvrPlYGX/tQ+xgC/uFJjys1rNeu/37pVk2vdvAbkcKbf167LtZrl35WbXb4GdEDVgRnoFYdCfU0uHhqT4eFhGX7kebl43Xztulw8qF+rPHpULt40X/tGzu6phK+9Ip+ULIi5avADL/2pU4wBfhl8jSlfyplfhNv+F3+QZXPb3zJe2/WOLJufu/WpvPRo+Nqe9+Rr8zWgCRf6/c2Pn5exoO8OD4/JwQvXU69duxC+VtksRz5OH7R+/d4eqYSvvfSX5N+Bbqg6MAO94lCo/1gO1otEO3ihzde+eUd+Gb9WkSOfGK9hYAY/8NKfOsUY4JfB11jgH3+QHfG2f0LO/KPN1z45qsNN3a/k7W+M14AmXOj3Fw9GfTdw8OM2X/tG3t6VvFY58qnxGtA5VQdmoFc8malPZuLqr6Vm6YzZIGbqnTH4gZf+1CnGAL8MvsaUZjP1xmy8es383M3gIO2RoC3Va8zUowMu9PtmM/XxbLx6LTNTvzzzBDP16BlVB2agV9xbU9/lmtkyroF2mQsDr0J/ah9jgF9cqTG9Nj5n27OmHj3mTL9Xa+NTkwsG1tSjD1QdmIFecS7U47vBmYEXbaO9/EKNoYzo94Cm6sAM9AqhHoVg4PUP7eUXagxlRL8HNFUHZqBXCPUoBAOvf2gvv1BjKCP6PaCpOjADvUKoRyEYeP1De/mFGkMZ0e8BTdWBGegVQj0KwcDrH9rLL9QYyoh+D2iqDsxArxDqUQgGXv/QXn6hxlBG9HtAU3VgBnqFUI9CMPD6h/byCzWGMqLfA5qqAzPQK4R6FIKB1z+0l1+oMZQR/R7QVB2YgV4h1KMQDLz+ob38Qo2hjOj3gKbqwAz0CqEehWDg9Q/t5RdqDGVEvwc0VQdmoFcI9SgEA69/aC+/UGMoI/o9oKk6MAO9QqhHIRh4/UN7+YUaQxnR7wFN1YEZ6BVCPQrBwOsf2ssv1BjKiH4PaKoOzECvEOpRCAZe/9BefqHGUEb0e0BTdWAGeoVQj0Iw8PqH9vILNYYyot8DmqoDM9ArhHoUgoHXP7SXX6gxlBH9HtBUHZiBXiHUoxAMvP6hvfxCjaGM6PeApurADPQKoR6FYOD1D+3lF2oMZUS/BzRVB2agVwj1KAQDr39oL79QYygj+j2gqTowA71CqEchGHj9Q3v5hRpDGdHvAU3VgRnoFUI9CsHA6x/ayy/UGMqIfg9oqg7MQK+kQj0AAAAA95mBXiHUAwAAAJ4xA72SCvXmC8BG5HU4uIv28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqgFCPQjDw+of28gs1hjKi3wOarQ4I9SgEA69/aC+/UGMoI/o9oNnqwI9Qf+uqXP5oQebeOCyHjygnZC74/8tfrtvfj4FzbuC9sy5rX1RlfuZ4vQ8dn5mX6hdr9vfaBJ9fWUz64ImzG+x//1yShaAPL3y0JGu21wfAxTHA1mbrd+zvbaDGjflZOa7GjDfmZGHxavufDayvLUn17InufnYfOFdjKTW5WlX9e0GW1myvA91xut9H43p1RdZtrwM9ZKsDp0P9yqXTMvVYRYaHh/ONbJGpmSWpObSzhVsDb616XCYetvejyua9Mvt5zfq5yNrCMdk+0vjZ6PNzX9o/l+vOZTn24+g7DkvV9p4BcGkMqH0+K3s359T+yHY5Xm3SZneuytwz41LJ+eyxhRYHczercvzn3feXfnGpxlLurMn5fcn2P3zJ8h6gS672+9rnp2VntJ94YlZWLO8BeslWB26GerVT3rsptTMdHtkk4z8ZT2xK73Qrm/fL+X9avgsD4crAW7t0WDZFfeThCZlSs7bK1ISMVsL+U5mQ2a/sn1+ZmYjDSdPPr9o/36gm1UNm3ybUZ5ltpg7aJw+G2/zgpGyJD642yeGq5UzJnRWZfTIaGyqy5en9cnxmTman98tkfJBQkYmZlcbPKrWqHI4OuCqjMjGlzsrMyYkjU8aBXfCzLw0+2LtSYym1JTn9VHpsJtSjl1zs92t/2i/j0f5AIdSjD2x14F6oT+2UgyD182Myn7dMYm1J5l/crkNXZVLmOc3rDCcG3rV5mQwH2k2HFhrP5txcSALcU3ONy2BWZ2Wi3g8rsv3lauPnvwpeD7+/8tz5tk63rv1xUvdXdWBa/25CfcqtIFQ/rLfppr1zcjW7zc3QvfW0XDVfC1x+OTxgCg60TmRn1O8EB1Qvh+NFEMyPLRqv1a3J/GQ49vx4qnGSwJxscGC8caLGTP88L/ujA6dKhZl6FMKtfl+TpTd3hn096PNRsCfUow9sdeBYqF+X6pFoFrMi40csQcxm9bJUv3TjlDg0Fwbeq29u0X3p4WNyOacf1eb3hv1tQmYzIe7yy6P6ta0nGsNlKP4ZlTbCeXQQoGb2F06HBwyEelMtOOjR2zMI1TX7e9bPT4U70Uybrc3Jzvq/D+fPxH+7IrNP6Pc0HMh9dkxG658fDYJozvUSxkHH6IuX7e/pExdqLPblbLz0oH7WtBr1b0I9esuZfn+nJgtHomVmFdn55pLMH9J9nlCPfrDVgVuh/svTsiXcEVQm5525gBCdG/zAW5P5Sd2XNr22ZHk9FM/GZ8PHipx+XP17RSb/2GQN9qXDehBvFc7jdfQVmXg7CJzxzyXUmxb26bbY9HKTwBxvu/SyJ7VUqt4W6gCryWRA6qDA+Hz1UDjL3GKHnDqQa2fSoSCDrzFtffG4bInOWD15QpbUwVhuXQEb40a/X5P5p6MVBZtk6k96H1El1KOPbHXgVKiPZ0aHt8jpTi8+bGa1KrMvTsr2eE3+dpl8bV6u3rS8V615flOt4T0u58Mdfm15Xo4/vT1ez7/96WMy1+piuTsrUp05JpM/j36m+txxmV/u/IzC1T/qNcWzi+Hsofp7Du6Mv3d855Sc+ChvZnIw3Bh4A7da3KHmq9Oyvd7nRi3LMQLrLT6/sF/3WXU2wPZ6XbKOftOhqtTUvxHq87Xa5nGbTcp8XMPJQdzwvoX0+7NunZep+ueHgwO2qB6Dg65wBn77mRa1tHwiXDqV02f6xJkaU0smnxqV8X3nZS06yCHUoyCu9Ht17c/4wzvltJEFCPXoJ1sdOBTqr8qJn/S6IGpy+bVoDa1SkU0/2ZT8f2Vc9odH2Ink9PzU/Ipxei2rIjv/n33nX/vseOpuKZVN47Ip/v9KeufXhmigGH99Sa7OROv3soLvfbHqzG20XBl4W4mXewxPyflb9vfkq8n5KT1b02wpxsrb4cW2Pw4CfLSkhFDftauvhzPlqeUzVTlc357Nlt5EkhqvHKnqf+sohBo/6+0Wd9IpkNM1RqhHQVzu94R69JOtDtwJ9TfnZTLcCYw2O/XegfjOJZXtcvijleQe0+qe4/PR1epb5MSy+Tljh18JAlsQ/PfOXJaVMPCtf1WV49GFvGrdbzYIxhdPVmT7kQVZWU9eW/9qPr6QbMvrV9OfayIeKOoXnwXf++KCXK2Fs5lrSzL3XHQdQo/PcGyAywNvwmjrNi90jamLtI/oA8bK48fkcs7676Q/ZPoZob5z6ytSfXOvvjPOj/fKvHnHon92FiKjZT7Dk/P6zEn1cHiwnF6SYxctzerdWNUNp2uMUI+CuNzvCfXoJ1sduBPqjZ1A65m2NsQXzY3K/gX7kpdoDW460CVBz3oHDMW4IC85fa+sydxT+t9H9y3osJAV/Z22A4IcSai33NFDUeu1o4v3BhgyTC4PvJF4Br3tW1IG7fvMuIzH97xXz0io5p91URdVRuvos32aUN+2y9PBNo9vYTsqEy/PBwe1mfd1GCIbdr7xtRHthfp4jDgUzvQPgNM1RqhHQVzu94R69JOtDvwM9XfWpXaz1sgIyfHFbJbb3sXitbVmwG5nh50zUxdf6Ntsxnxdzk/pz079qcXa4VA7A0XDzOOAuTzwKrXPT8RnVOoXrlre08joGyF17/pj1usZknX01ou+CfVti/t/xPbAOUK9Wwj1KIjL/Z5Qj36y1YGfoT7eAWfEO1jjormnToSP47c5Ec64mzvy9kK97T3J+uydcsL687QT4Wx+u2ck2hkoXBtMXB54zSVSE2faXwZlWl81npFgmYmPl36Z6+hNhPqOrdeu1pffRA95iS86Vgj1biHUoyAu93tCPfrJVgfuhPo7C7I/3AnEF6/lWTsv+427ysQXocY72MYZ1eZ6E+rjW+q1iVA/AOY1Dy9f3vBZjdqfotsj7pS56GFE8c9o8uRRQn33lk+EZ8RG5dhn4b8Zd7RpfQYsOVs2PBUuvYvvaDOeucbGJrmof7yDa2N6zdkaUwj1KIjL/Z5Qj36y1YE7od6cXW96e8BGcSFZQv32N5bsS3VSzBDQg1D/+AlZsv6ctPjC3RYI9T1iBPrx4MCxJ8uU7iQHo1GYTG7N2qEBt52rO8pGyfK3JFQn15W0DtpJKI+XzxkX6rc8KLDeErP/nKyxCKEeBXG53xPq0U+2OnAo1H8ra2d36oIIQtfU+fbWmyuNoT45QGg569+g+1CfPA2zt7OvhPoeiAN9ZtlGE+tfXZZqy+cKNN5Kcf2j/TIa/qxOVLJPOO0zJ9prbUmqi63OYNnqz5h9b3VdSXyhe8UInJagnyd+8mw7S3WK41yNmQj1KIjL/Z5Qj36y1YFToT556mYgby2yRWOoV/eyHtf/9pMT+RfKWnUf6js7hd8+Qv0GBYE+eoR924H+/JTenuouRc36YUfLPgwsv2lkXGjevH7sy1+SJ8UaS6Es4jNqmTtQxRfXqzOFuWfR1oNaC8/ENLsIvw+cqrEsQj0K4nK/J9Sjn2x14FaoD6intNXvQx1Q9/+uWp/6mmYL9UlAyL+lpd0GQn0QNk5v1f+ee0vLLhDqNyAV6IM2aXPJU/12lOFyjmYHAvGDkFoEyQaEeoukripPBv04p62S6xiMNfWKeWvXvPqrLcj+qF2zM/LGrWon8p4q+9XpsN0qMvnHwT14SnGmxmwI9SiIy/2eUI9+stWBc6FeWflj+IAZpTIuk6/Ny9JqZhb0zrqsfbEgsweNJ8amAva6VI+ED2XKub/7yqXTsndz9s4lGwn138p6NTooCb739cxt95TVqpx+ZrxpaMki1HfJDPT75mVlzX5tQyR7jUN8H/ugLesPEjNfv7MiC/HdbywBsRVCvVVSP8E23TsrS+ZB/Z2aLM0kd7+x3So0mRRobDPz4W95ZwLjuxYNb5K9mdtmri2ejvtTJ/VbFCdqLA+hHgVxud8T6tFPtjpwMtQrtc9n64G7XiBtqGzeK7PZ4B4Er9mnku+oPGy5Y47a+afugrKxUK+svL0zOdCojMY/M3mATvC7NHsKaQahvgu3FmR/3Mbtabz+IrnXvFaR0c1BO24eTdo3sGlvcMDQacAj1OdKgrVW2aTqZ1P635rUT/rzFdmkai9+YFhgZKfMmk+jTcm0eVi/yXgR/OzN9gOCfht4jZk+O56Mc4pRI7r9IntlzvZAP6BN7vT78GGERr+Pxwlzv69MdzjpA7TBVgfOhvq6O+uycmlW9u9M79BjQeFsefqYzF5qcmGdmt07u18mzJ16/NnjMt9wIeTGQ71S+3xO9j+ZDn/1ULh1Uo7PX21/GUiAUN8FY6awbTltufLRMdlpHJBFKo8FbWl98FQbCPVNqYP6qa3Z+gm2+cMTsv+s5QxYhrX+gpqfODiXnv3PsfLRcZl8LNPmI1tk8rXMGZsBGniNmfKeHdJgsBcXw3/u9HsjB7SSmyWA7tnqwO1Qn7FeM5ZL1Dq4KDGyvoHPdst4+m27t7D8LnBn4O2hqP8o65bXPedke5lPjzYuam1b/Pkua34QY0abvpM1BrRAvwc0Wx14FerhDwZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1QGhHoVg4PUP7eUXagxlRL8HNFsdEOpRCAZe/9BefqHGUEb0e0Cz1UEq1AMAAABwnxnolTjUAwAAAPAToR4AAADwHKEeAAAA8ByhHgAAAPDat/L/AYde56P9YAO8AAAAAElFTkSuQmCC" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![1672710347907.png](attachment:1672710347907.png)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "#### GEF (Square Bin)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Square bin type of GEF file, with the suffix of `.raw.gef`/`.gef`/`.tissue.gef` ([Square bin GEF details](https://www.processon.com/view/link/610cc49c7d9c087bbd1ab7ab#map))." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "#### GEF (Cell Bin)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ " Cell bin type of GEF file, with the suffix of `.cellbin.gef` ([Cell bin GEF details](https://www.processon.com/view/link/6274de9c0791290711fa418d#map))." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "More details about GEF files to see in format documents. Usually, we recommend using GEF whose speed of being read is much faster than GEM." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Other input files that Stereopy could support:" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "#### Stereo H5ad" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One type of h5ad file containing StereoExpData object which is generated by Stereopy." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "#### Anndata H5ad" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One type of h5ad file containing Anndata object which is generated by Scanpy." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "#### Seurat H5ad" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One type of h5ad file containing Anndata object which is generated by Seurat." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### GEM file" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the gem file\n", "data_path = './SS200000135TL_D1.cellbin.gem'\n", "data = st.io.read_gem(\n", " file_path=data_path,\n", " sep='\\t', \n", " bin_type='cell_bins', \n", " is_sparse=True,\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.read_gem`. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Attributes of GEF" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# get attributes from GEF file\n", "data_path = './SS200000135TL_D1.tissue.gef'\n", "gef_info = st.io.read_gef_info(file_path=data_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### GEF file (Square Bin)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the GEF file of square bin\n", "data_path = './SS200000135TL_D1.tissue.gef'\n", "data = st.io.read_gef(\n", " file_path=data_path,\n", " bin_type='bins',\n", " bin_size=100, \n", " is_sparse=True,\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.read_gef`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### GEF file (Cell Bin) " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the GEF file of cell bin\n", "data_path = './SS200000135TL_D1.cellbin.gef'\n", "data = st.io.read_gef(\n", " file_path=data_path,\n", " is_sparse=True,\n", " bin_type='cell_bins',\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.read_gef`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Stereo H5ad" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the Stereo h5ad file\n", "data_path = './SS200000141TL_B5_raw.h5ad'\n", "data = st.io.read_h5ad(\n", " file_path=data_path,\n", " flavor='stereopy',\n", " use_raw=True,\n", " use_result=True,\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.read_h5ad`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Anndata H5ad" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the Anndata h5ad file\n", "ann_h5ad = './DP8400013846TR_F5.anndata.h5ad'\n", "data = st.io.read_h5ad(\n", " file_path=ann_h5ad,\n", " flavor='scanpy',\n", " spatial_key='spatial', # the key to get spatial coordinates in obsm\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.read_h5ad`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Seurat H5ad" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the Seurat h5ad file\n", "seurat_h5ad = './SS200000003BR_B3.annotation.h5ad'\n", "data = st.io.read_seurat_h5ad(\n", " file_path=seurat_h5ad, \n", " use_raw=True,\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.read_seurat_h5ad`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Writing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After a series of processing, you could save the data into output files for subsequent analysis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GEF file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### New GEF" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You may use a method of lasso tool/gene list/region list to filter data and these steps can generate filtered StereoExpData object.Then processed data could be saved into a new GEF file." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the GEF file\n", "data_path = './SS200000135TL_D1.tissue.gef'\n", "data = st.io.read_gef(file_path=data_path, bin_size=50)\n", "\n", "# use a gene list for filtering\n", "data.tl.filter_genes(gene_list=['H2al2a','Gm6135'], inplace=True)\n", "\n", "# save the data, only the result after filtering\n", "st.io.write_mid_gef(\n", " data=data, \n", " output='./DP8400013846TR_F5.filtered.gef'\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.write_mid_h5ad`, and an example of using `lasso`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Existing GEF" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After preprocessing and clustering, you could add clustering information(from Leiden/Louvain... method) to input GEF file." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the GEF file\n", "data_path = './SS200000135TL_D1.cellbin.gef'\n", "data = st.io.read_gef(file_path=data_path, bin_type='cell_bins')\n", "\n", "# preprocessing\n", "data.tl.cal_qc()\n", "data.tl.raw_checkpoint()\n", "data.tl.sctransform(res_key='sctransform', inplace=True)\n", "\n", "# clustering\n", "data.tl.pca(use_highly_genes=False, n_pcs=30, res_key='pca')\n", "data.tl.neighbors(pca_res_key='pca', n_pcs=30, res_key='neighbors')\n", "data.tl.umap(pca_res_key='pca', neighbors_res_key='neighbors', res_key='umap')\n", "data.tl.leiden(neighbors_res_key='neighbors', res_key='leiden')\n", "\n", "# add the imformation of clustering groups stored in cluster_res_key to input GEF file.\n", "st.io.update_gef(\n", " data=data, \n", " gef_file=data_path, \n", " cluster_res_key='leiden',\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.update_gef`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Stereo H5ad" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the GEF file\n", "data_path = './SS200000135TL_D1.tissue.gef'\n", "data = st.io.read_gef(file_path=data_path, bin_size=50)\n", "\n", "# preprocessing\n", "data.tl.cal_qc()\n", "data.tl.raw_checkpoint()\n", "data.tl.sctransform(res_key='sctransform', inplace=True)\n", "\n", "# clustering\n", "data.tl.pca(use_highly_genes=False, n_pcs=30, res_key='pca')\n", "data.tl.neighbors(pca_res_key='pca', n_pcs=30, res_key='neighbors')\n", "data.tl.umap(pca_res_key='pca', neighbors_res_key='neighbors', res_key='umap')\n", "data.tl.leiden(neighbors_res_key='neighbors', res_key='leiden')\n", "data.tl.louvain(neighbors_res_key='neighbors', res_key='louvain')\n", "\n", "# data.tl.key_record is a dictionary created automatically while you running commands\n", "# keys in data.tl.key_record are set by Stereopy, values are set according to the res_key parameter in above commands\n", "print(data.tl.key_record)\n", "\n", "# write a new h5ad with StereoExpData, if key_record = None, it will use the res_key stored in data.tl.key_record)\n", "st.io.write_h5ad(\n", " data, \n", " use_raw=True, \n", " use_result=True, \n", " key_record=None,\n", " output='./DP8400013846TR_F5_I.h5ad',\n", " )\n", "\n", "# you could create a dictionary to get targeted result, format as:\n", "outkey_record = {'cluster':['leiden','louvain'],}\n", "\n", "st.io.write_h5ad(\n", " data, \n", " use_raw=True, \n", " use_result=True, \n", " key_record=outkey_record, \n", " output='./DP8400013846TR_F5_II.h5ad',\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More parameter details about `stereo.io.write_h5ad`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Anndata H5ad" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# read the GEF file\n", "data_path = './SS200000135TL_D1.tissue.gef'\n", "data = st.io.read_gef(file_path=data_path, bin_size=50)\n", "data.tl.raw_checkpoint()\n", "\n", "# conversion\n", "adata = st.io.stereo_to_anndata(data, flavor='seurat',output='out.h5ad')" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "[Work with scanpy/seurat](./Format_Conversion.html)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" }, "vscode": { "interpreter": { "hash": "70dbeb2a90198859cd91b6ea0f3adc73d66939fe301617b631d99dfc954c0323" } } }, "nbformat": 4, "nbformat_minor": 4 }