{"name":"in-silico-fate-mapping","display_name":"In Silico Fate Mapping","visibility":"public","icon":"","categories":[],"schema_version":"0.2.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"in-silico-fate-mapping.get_reader","title":"Open .csv tracking data","python_name":"in_silico_fate_mapping._reader:napari_get_reader","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"in-silico-fate-mapping.write_tracks","title":"Write tracking data to .csv","python_name":"in_silico_fate_mapping._writer:napari_write_tracks","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"in-silico-fate-mapping.make_fate_map","title":"Fate Mapping","python_name":"in_silico_fate_mapping._widget:FateMappingWidget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":[{"command":"in-silico-fate-mapping.get_reader","filename_patterns":["*.csv"],"accepts_directories":false}],"writers":[{"command":"in-silico-fate-mapping.write_tracks","layer_types":["tracks"],"filename_extensions":[".csv"],"display_name":""}],"widgets":[{"command":"in-silico-fate-mapping.make_fate_map","display_name":"Fate Mapping","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.1","name":"in-silico-fate-mapping","version":"0.1.2","dynamic":null,"platform":null,"supported_platform":null,"summary":"TODO","description":"# in silico fate mapping\n\n[![License BSD-3](https://img.shields.io/pypi/l/in-silico-fate-mapping.svg?color=green)](https://github.com/royerlab/in-silico-fate-mapping/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/in-silico-fate-mapping.svg?color=green)](https://pypi.org/project/in-silico-fate-mapping)\n[![Python Version](https://img.shields.io/pypi/pyversions/in-silico-fate-mapping.svg?color=green)](https://python.org)\n[![tests](https://github.com/royerlab/in-silico-fate-mapping/workflows/tests/badge.svg)](https://github.com/royerlab/in-silico-fate-mapping/actions)\n[![codecov](https://codecov.io/gh/royerlab/in-silico-fate-mapping/branch/main/graph/badge.svg)](https://codecov.io/gh/royerlab/in-silico-fate-mapping)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/in-silico-fate-mapping)](https://napari-hub.org/plugins/in-silico-fate-mapping)\n\n\nInteractive in silico fate mapping from tracking data.\n\nThis napari plugin estimates the cell fates from tracking data by building a radial regression model per time point. The user can select an area of interest using a `Points` layer; the algorithm will advent the probed coordinates forward (or backward) in time, showing the estimated fate.\n\nVideo example below:\n\nhttps://user-images.githubusercontent.com/21022743/216478216-89c1c35f-2ce4-44e8-adb8-9aeea75b5833.mp4\n\n## Installation\n\nWe suggest you create a fresh conda environment to avoid conflicts with your existing package.\nTo do this, you need to:\n\n conda create -n fatemap python=3.11\n conda activate fatemap\n\nAnd then, you can install `in-silico-fate-mapping` via [pip] and other additional useful packages:\n\n pip install ultrack napari-ome-zarr napari[all] in-silicio-fate-mapping\n\nTo install the latest development version :\n\n pip install git+https://github.com/royerlab/in-silico-fate-mapping.git\n\n\n## IO file format\n\nThis plugin does not depend on a specific file format, the only requirement is using a `Track` layer from napari.\n\nDespite this, we ship a reader and writer interface. It supports `.csv` files with the following reader `TrackID, t, (z), y, x`, `z` is optional.\nSuch that each tracklet has a unique `TrackID` and it's composed of a sequence o time and spatial coordinates.\n\nThis is extremely similar to how napari store tracks, more information can be found [here](https://napari.org/stable/howtos/layers/tracks.html).\n\nDivisions are not supported at the moment.\n\n## Usage Example\n\n### Minimal example\n\nMinimal example using a track file following the convention described above.\n\n```python3\nimport napari\nimport pandas as pd\nfrom in_silico_fate_mapping.fate_mapping import FateMapping\n\ntracks = pd.read_csv(\"tracks.csv\")\n\nfate_map = FateMapping(radius=5, n_samples=25, bind_to_existing=False, sigma=1)\nfate_map.data = tracks[[\"TrackID\", \"t\", \"z\", \"y\", \"x\"]]\n\nsource = tracks[tracks[\"t\"] == 0].sample(n=1)\n\ntracks = fate_map(source[[\"t\", \"z\", \"y\", \"x\"]])\n\nnapari.view_tracks(tracks)\nnapari.run()\n```\n\n### Zebrahub example\n\nZebrafish embryo tail example. This example requires the package `napari-ome-zarr`.\n\n```python3\nimport napari\nimport pandas as pd\nfrom in_silico_fate_mapping import FateMappingWidget\n\nimage_path = \"http://public.czbiohub.org/royerlab/zebrahub/imaging/single-objective/ZSNS001_tail.ome.zarr\"\ntracks_path = \"http://public.czbiohub.org/royerlab/zebrahub/imaging/single-objective/ZSNS001_tail_tracks.csv\"\n\nviewer = napari.Viewer()\nviewer.window.add_dock_widget(FateMappingWidget(viewer))\n\nviewer.open(image_path, plugin=\"napari-ome-zarr\")\n\ntracks = pd.read_csv(tracks_path)\nviewer.add_tracks(tracks[[\"TrackID\", \"t\", \"z\", \"y\", \"x\"]])\nviewer.add_points(name=\"Markers\", ndim=4)\n\nnapari.run()\n```\n\n## Citing\n\nIf used please cite:\n\n```\n@article{lange2023zebrahub,\n title={Zebrahub-Multimodal Zebrafish Developmental Atlas Reveals the State Transition Dynamics of Late Vertebrate Pluripotent Axial Progenitors},\n author={Lange, Merlin and Granados, Alejandro and VijayKumar, Shruthi and Bragantini, Jordao and Ancheta, Sarah and Santhosh, Sreejith and Borja, Michael and Kobayashi, Hirofumi and McGeever, Erin and Solak, Ahmet Can and others},\n journal={bioRxiv},\n pages={2023--03},\n year={2023},\n publisher={Cold Spring Harbor Laboratory}\n}\n```\n\n## Issues\n\nIf you encounter any problems, please [file an issue] along with a detailed description.\n\n[napari]: https://github.com/napari/napari\n[Cookiecutter]: https://github.com/audreyr/cookiecutter\n[@napari]: https://github.com/napari\n[MIT]: http://opensource.org/licenses/MIT\n[BSD-3]: http://opensource.org/licenses/BSD-3-Clause\n[GNU GPL v3.0]: http://www.gnu.org/licenses/gpl-3.0.txt\n[GNU LGPL v3.0]: http://www.gnu.org/licenses/lgpl-3.0.txt\n[Apache Software License 2.0]: http://www.apache.org/licenses/LICENSE-2.0\n[Mozilla Public License 2.0]: https://www.mozilla.org/media/MPL/2.0/index.txt\n[cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin\n\n[file an issue]: https://github.com/royerlab/in-silico-fate-mapping/issues\n\n[napari]: https://github.com/napari/napari\n[tox]: https://tox.readthedocs.io/en/latest/\n[pip]: https://pypi.org/project/pip/\n[PyPI]: https://pypi.org/\n","description_content_type":"text/markdown","keywords":null,"home_page":"https://github.com/royerlab/in-silico-fate-mapping","download_url":null,"author":"Jordao Bragantini","author_email":"jordao.bragantini@czbiohub.org","maintainer":null,"maintainer_email":null,"license":"BSD-3-Clause","classifier":["Development Status :: 2 - Pre-Alpha","Framework :: napari","Intended Audience :: Developers","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: 3.10","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["numpy","pandas","scikit-learn","zarr","magicgui","qtpy","napari","click","tox ; extra == 'testing'","pytest ; extra == 'testing'","pytest-cov ; extra == 'testing'","pytest-qt ; extra == 'testing'","pyqt5 ; extra == 'testing'"],"requires_python":">=3.8","requires_external":null,"project_url":["Bug Tracker, https://github.com/royerlab/in-silico-fate-mapping/issues","Documentation, https://github.com/royerlab/in-silico-fate-mapping#README.md","Source Code, https://github.com/royerlab/in-silico-fate-mapping","User Support, https://github.com/royerlab/in-silico-fate-mapping/issues"],"provides_extra":["testing"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}