{"name":"napari-molecular-cartography-viewer","display_name":"Molecular Cartography Viewer","visibility":"public","icon":"","categories":[],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-molecular-cartography-viewer.make_widget","title":"Open Molecular Cartography Viewer panel","python_name":"napari_molecular_cartography_viewer._widget:make_molecular_cartography_viewer_widget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-molecular-cartography-viewer.make_widget","display_name":"Molecular Cartography Viewer","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"napari-molecular-cartography-viewer","version":"0.1.1","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"A simple plugin to use Molecular Cartography Viewer within napari","description":"# napari-molecular-cartography-viewer\n\nA napari dock widget to **visualize exported molecular coordinate tables (CSV)** as transcript points.\nIt supports **multi-gene overlay**, value thresholding, and an optional gray background layer showing all transcripts.\n\n> This plugin is intended for **exported/parsed coordinate tables** (CSV).\n> It does **not** require or reverse-engineer any proprietary file formats.\n\n## Compatibility\n\n- **Python:** 3.10–3.13 (tested on 3.11)\n- **napari:** 0.6.x (tested on 0.6.6)\n\n## CSV format requirements\n\nThe plugin auto-detects **4 required fields**. Column names may vary, but must match one of the accepted names below.\n\n### Required columns\n\n| Field | Meaning | Accepted column names |\n|------|---------|------------------------|\n| `x`  | X coordinate (pixel) | `x`, `X` |\n| `y`  | Y coordinate (pixel) | `y`, `Y` |\n| `gene` | Gene / target name | `gene`, `Gene`, `target`, `ID` |\n| `val` | Numeric value (intensity/score/confidence) | `val`, `value`, `intensity`, `score`, `confidence`, `qc`, `V`, `v` |\n\nNotes:\n- napari points are rendered in **(y, x)** order internally.\n- `val` must be numeric; non-numeric/NaN rows are automatically dropped.\n- The CSV must contain a header row.\n\n### Minimal example\n\n```csv\nx,y,gene,val\n120.5,88.2,GLYMA_01G000100,12.3\n121.0,88.9,GLYMA_01G000100,8.1\n500.2,410.7,NOD26,30.0\n```\n\n## Usage\n\n1. Start napari.\n2. Open the viewer: **Plugins → Molecular Cartography Viewer**\n3. Click **Choose CSV…** and select your exported/parsed `.csv`.\n4. Search genes by substring, multi-select candidates, click **Add →**\n5. Click **Update display** to render selected genes.\n\n### New in v0.1.1\n\n- Added **Apply UI Color** button for active gene layers.\n- Workflow for manual color changes in napari:\n  1. Select a `GENE: ...` layer in the **Layers panel** (bottom-left).\n  2. Change **face color** in **layer controls** (top-left).\n  3. Click **Apply UI Color** in the plugin panel to apply the color to existing points.\n- Added transcript/point count display for the active/selected layer (shown in the lower-right status area).\n- Improved color update behavior for large transcript point layers.\n- Improved background transcript layer handling to reduce unnecessary heavy loading in common use.\n\n## Options\n\n- **Show gray background layer**: toggles `All_transcripts`\n- **Value threshold**: keep points with `val >= threshold` (unless “Ignore threshold” is checked)\n- **Ignore threshold**: show all points for selected genes\n- **Scale size by value**: point size mapped to `val`\n- **Opacity / Base size**: affects per-gene layers\n- All point layers are forced to render with **no borders** for clean visualization.\n\n## Installation\n\n### From PyPI\n\n```bash\npip install napari-molecular-cartography-viewer\n```\n\nIf you need a full napari install in a fresh environment:\n\n```bash\npip install \"napari[all]\" napari-molecular-cartography-viewer\n```\n\n## Notes\n\n### Reading LZW-compressed TIFF images (optional)\nIf your background image is a TIFF with **LZW compression**, install `imagecodecs`:\n\n```bash\nconda install -c conda-forge imagecodecs\n```\n\n## License\n\nBSD-3-Clause. See `LICENSE`.\n","description_content_type":"text/markdown","keywords":null,"home_page":null,"download_url":null,"author":"Yaohua Li","author_email":"liyaohua12345@foxmail.com","maintainer":null,"maintainer_email":null,"license":"BSD 3-Clause License\n\nCopyright (c) 2026, yaohualee1215-bit\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n   list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n   contributors may be used to endorse or promote products derived from\n   this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n","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.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["numpy","magicgui","qtpy","scikit-image","napari[all]; extra == \"all\""],"requires_python":">=3.10","requires_external":null,"project_url":null,"provides_extra":["all"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}