Name | jump-portrait JSON |
Version |
0.0.24
JSON |
| download |
home_page | None |
Summary | Tools to fetch and visualize JUMP images |
upload_time | 2024-10-08 20:58:11 |
maintainer | None |
docs_url | None |
author | Alan Munoz |
requires_python | <3.12,>=3.10 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Table of Contents
Fetch, visualize and.or download images from the JUMP dataset.
## Workflow
### Workflow 1: Download all images for a given item and their controls
```python
item_name = "MYT1" # Item or Compound of interest - (GC)OI
# channels = ["bf"] # Standard channels are ER, AGP, Mito DNA and RNA
channels = ["DNA"] # Standard channels are ER, AGP, Mito DNA and RNA
corrections = ["Orig"] # Can also be "Illum"
controls = True # Fetch controls in plates alongside (GC)OI?
download_item_images(item_name, channels, corrections=corrections, controls=controls)
```
### Workflow 2: get images from explicit metadata
Fetch one image for a given item and a control
```python
from jump_portrait.fetch import get_jump_image, get_sample
from jump_portrait.save import download_item_images
sample = get_sample()
source, batch, plate, well, site, *rest = sample.row(0)
channel = "DNA"
correction = None # or "Illum"
img = get_jump_image(source, batch, plate, well, channel, site, correction)
```
Workflow 3: Fetch bright field channel
Note that this is hacky and may not work for all sources.
```python
from jump_portrait.fetch import get_jump_image, get_sample
from jump_portrait.save import download_item_images
sample = get_sample()
channel = "bf"
correction = None
source, batch, plate, well, site, *rest = sample.row(0)
img = get_jump_image(source, batch, plate, well, channel, site, correction)
```
### Developer
First, we Locate the images produced to a given perturbation.
```python
from jump_portrait.fetch import get_item_location_info
gene = "MYT1"
location_df = get_item_location_info(gene)
Returns a polars dataframe whose columns contain the metadata
alongside path and file locations
#┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐
#│ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ … ┆ PathName_ ┆ Metadata_ ┆ Metadata_ ┆ standard │
#│ Source ┆ Batch ┆ Plate ┆ Well ┆ ┆ OrigRNA ┆ PlateType ┆ JCP2022 ┆ _key │
#│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │
#│ str ┆ str ┆ str ┆ str ┆ ┆ str ┆ str ┆ str ┆ str │
#╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡
#│ source_13 ┆ 20220914_ ┆ CP-CC9-R1 ┆ B05 ┆ … ┆ s3://cell ┆ CRISPR ┆ JCP2022_8 ┆ MYT1 │
#│ ┆ Run1 ┆ -20 ┆ ┆ ┆ painting- ┆ ┆ 04400 ┆ │
#│ ┆ ┆ ┆ ┆ ┆ gallery/c ┆ ┆ ┆ │
#│ ┆ ┆ ┆ ┆ ┆ pg001… ┆ ┆ ┆ │
#│ source_13 ┆ 20220914_ ┆ CP-CC9-R1 ┆ B05 ┆ … ┆ s3://cell ┆ CRISPR ┆ JCP2022_8 ┆ MYT1 │
#│ ┆ Run1 ┆ -20 ┆ ┆ ┆ painting- ┆ ┆ 04400 ┆ │
#│ ┆ ┆ ┆ ┆ ┆ gallery/c ┆ ┆ ┆ │
#│ ┆ ┆ ┆ ┆ ┆ pg001… ┆ ┆ ┆ │
#│ source_13 ┆ 20220914_ ┆ CP-CC9-R1 ┆ B05 ┆ … ┆ s3://cell ┆ CRISPR ┆ JCP2022_8 ┆ MYT1 │
#│ ┆ Run1 ┆ -20 ┆ ┆ ┆ painting- ┆ ┆ 04400 ┆ │
#│ ┆ ┆ ┆ ┆ ┆ gallery/c ┆ ┆ ┆ │
#│ ┆ ┆ ┆ ┆ ┆ pg001… ┆ ┆ ┆ │
#│ source_13 ┆ 20220914_ ┆ CP-CC9-R1 ┆ B05 ┆ … ┆ s3://cell ┆ CRISPR ┆ JCP2022_8 ┆ MYT1 │
#│ ┆ Run1 ┆ -20 ┆ ┆ ┆ painting- ┆ ┆ 04400 ┆ │
#│ ┆ ┆ ┆ ┆ ┆ gallery/c ┆ ┆ ┆ │
#│ ┆ ┆ ┆ ┆ ┆ pg001… ┆ ┆ ┆ │
#│ source_13 ┆ 20220914_ ┆ CP-CC9-R1 ┆ B05 ┆ … ┆ s3://cell ┆ CRISPR ┆ JCP2022_8 ┆ MYT1 │
#│ ┆ Run1 ┆ -20 ┆ ┆ ┆ painting- ┆ ┆ 04400 ┆ │
#│ ┆ ┆ ┆ ┆ ┆ gallery/c ┆ ┆ ┆ │
#│ ┆ ┆ ┆ ┆ ┆ pg001… ┆ ┆ ┆ │
#└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘
```
The columns of these dataframes are:
```
Metadata_[Source/Batch/Plate/Well/Site]:
- Source: Source in the range 0-14.
- Plate: Plate containing a multitude of wells. It is a string.
- Batch: Collection of plates imaged at around the same time. It is a string.
- Well: Physical location wherein the experiment was performed and imaged. It is a string with format [SNN] where S={A-P} and NN={00-24}.
- Site: Foci or frame taken in a the well, these are 0-9 for the ORF and CRISPR datasets and 1-6 for the compounds dataset.
[File/Path]name_[Illum/Orig][Channel]
- Illum: Illumination correction
- Orig: Original File
Also, markers can be:
- DNA: Dna channel, generally Hoecsht.
- ER: Endoplasmatic Reticulum channel.
- Mito: Mitochondrial channel.
- RNA: RNA channel.
standard_key: Gene or compound queried
```
We can then feed this information to `jump_portrait.fetch.get_jump_image` to fetch the available images.
Raw data
{
"_id": null,
"home_page": null,
"name": "jump-portrait",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.12,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Alan Munoz",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/32/f7/1e79cee64af155be98a808711d9178a854251662b0560fc8efaebe469318/jump_portrait-0.0.24.tar.gz",
"platform": null,
"description": "# Table of Contents\n\nFetch, visualize and.or download images from the JUMP dataset.\n\n## Workflow\n\n### Workflow 1: Download all images for a given item and their controls\n\n```python\nitem_name = \"MYT1\" # Item or Compound of interest - (GC)OI\n# channels = [\"bf\"] # Standard channels are ER, AGP, Mito DNA and RNA\nchannels = [\"DNA\"] # Standard channels are ER, AGP, Mito DNA and RNA\ncorrections = [\"Orig\"] # Can also be \"Illum\"\ncontrols = True # Fetch controls in plates alongside (GC)OI?\n\ndownload_item_images(item_name, channels, corrections=corrections, controls=controls)\n```\n\n### Workflow 2: get images from explicit metadata\n\nFetch one image for a given item and a control\n```python\nfrom jump_portrait.fetch import get_jump_image, get_sample\nfrom jump_portrait.save import download_item_images\n\nsample = get_sample()\n\nsource, batch, plate, well, site, *rest = sample.row(0)\nchannel = \"DNA\"\ncorrection = None # or \"Illum\"\n\nimg = get_jump_image(source, batch, plate, well, channel, site, correction)\n```\n\n\nWorkflow 3: Fetch bright field channel\nNote that this is hacky and may not work for all sources.\n```python\nfrom jump_portrait.fetch import get_jump_image, get_sample\nfrom jump_portrait.save import download_item_images\n\nsample = get_sample()\n\nchannel = \"bf\"\ncorrection = None\n\nsource, batch, plate, well, site, *rest = sample.row(0)\nimg = get_jump_image(source, batch, plate, well, channel, site, correction)\n```\n\n### Developer\nFirst, we Locate the images produced to a given perturbation.\n\n```python \nfrom jump_portrait.fetch import get_item_location_info\n\ngene = \"MYT1\"\n\nlocation_df = get_item_location_info(gene)\nReturns a polars dataframe whose columns contain the metadata \nalongside path and file locations\n\n#\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n#\u2502 Metadata_ \u2506 Metadata_ \u2506 Metadata_ \u2506 Metadata_ \u2506 \u2026 \u2506 PathName_ \u2506 Metadata_ \u2506 Metadata_ \u2506 standard \u2502\n#\u2502 Source \u2506 Batch \u2506 Plate \u2506 Well \u2506 \u2506 OrigRNA \u2506 PlateType \u2506 JCP2022 \u2506 _key \u2502\n#\u2502 --- \u2506 --- \u2506 --- \u2506 --- \u2506 \u2506 --- \u2506 --- \u2506 --- \u2506 --- \u2502\n#\u2502 str \u2506 str \u2506 str \u2506 str \u2506 \u2506 str \u2506 str \u2506 str \u2506 str \u2502\n#\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n#\u2502 source_13 \u2506 20220914_ \u2506 CP-CC9-R1 \u2506 B05 \u2506 \u2026 \u2506 s3://cell \u2506 CRISPR \u2506 JCP2022_8 \u2506 MYT1 \u2502\n#\u2502 \u2506 Run1 \u2506 -20 \u2506 \u2506 \u2506 painting- \u2506 \u2506 04400 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 gallery/c \u2506 \u2506 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 pg001\u2026 \u2506 \u2506 \u2506 \u2502\n#\u2502 source_13 \u2506 20220914_ \u2506 CP-CC9-R1 \u2506 B05 \u2506 \u2026 \u2506 s3://cell \u2506 CRISPR \u2506 JCP2022_8 \u2506 MYT1 \u2502\n#\u2502 \u2506 Run1 \u2506 -20 \u2506 \u2506 \u2506 painting- \u2506 \u2506 04400 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 gallery/c \u2506 \u2506 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 pg001\u2026 \u2506 \u2506 \u2506 \u2502\n#\u2502 source_13 \u2506 20220914_ \u2506 CP-CC9-R1 \u2506 B05 \u2506 \u2026 \u2506 s3://cell \u2506 CRISPR \u2506 JCP2022_8 \u2506 MYT1 \u2502\n#\u2502 \u2506 Run1 \u2506 -20 \u2506 \u2506 \u2506 painting- \u2506 \u2506 04400 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 gallery/c \u2506 \u2506 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 pg001\u2026 \u2506 \u2506 \u2506 \u2502\n#\u2502 source_13 \u2506 20220914_ \u2506 CP-CC9-R1 \u2506 B05 \u2506 \u2026 \u2506 s3://cell \u2506 CRISPR \u2506 JCP2022_8 \u2506 MYT1 \u2502\n#\u2502 \u2506 Run1 \u2506 -20 \u2506 \u2506 \u2506 painting- \u2506 \u2506 04400 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 gallery/c \u2506 \u2506 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 pg001\u2026 \u2506 \u2506 \u2506 \u2502\n#\u2502 source_13 \u2506 20220914_ \u2506 CP-CC9-R1 \u2506 B05 \u2506 \u2026 \u2506 s3://cell \u2506 CRISPR \u2506 JCP2022_8 \u2506 MYT1 \u2502\n#\u2502 \u2506 Run1 \u2506 -20 \u2506 \u2506 \u2506 painting- \u2506 \u2506 04400 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 gallery/c \u2506 \u2506 \u2506 \u2502\n#\u2502 \u2506 \u2506 \u2506 \u2506 \u2506 pg001\u2026 \u2506 \u2506 \u2506 \u2502\n#\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\nThe columns of these dataframes are:\n```\nMetadata_[Source/Batch/Plate/Well/Site]:\n - Source: Source in the range 0-14.\n - Plate: Plate containing a multitude of wells. It is a string.\n - Batch: Collection of plates imaged at around the same time. It is a string.\n - Well: Physical location wherein the experiment was performed and imaged. It is a string with format [SNN] where S={A-P} and NN={00-24}.\n - Site: Foci or frame taken in a the well, these are 0-9 for the ORF and CRISPR datasets and 1-6 for the compounds dataset.\n[File/Path]name_[Illum/Orig][Channel] \n \n - Illum: Illumination correction \n - Orig: Original File\n Also, markers can be:\n - DNA: Dna channel, generally Hoecsht.\n - ER: Endoplasmatic Reticulum channel.\n - Mito: Mitochondrial channel.\n - RNA: RNA channel.\nstandard_key: Gene or compound queried\n\n```\n\nWe can then feed this information to `jump_portrait.fetch.get_jump_image` to fetch the available images.\n",
"bugtrack_url": null,
"license": null,
"summary": "Tools to fetch and visualize JUMP images",
"version": "0.0.24",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e0933cc9bec3225456a446d411406a085b7532b1b16ab5462d6821094616fecc",
"md5": "cb76573c2b866c83babdc9ecc4f11926",
"sha256": "7b2d34cba503a17a0e03d769f9a95b2884b232f678d55635bccf3d16717cf9be"
},
"downloads": -1,
"filename": "jump_portrait-0.0.24-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cb76573c2b866c83babdc9ecc4f11926",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.12,>=3.10",
"size": 12730,
"upload_time": "2024-10-08T20:58:10",
"upload_time_iso_8601": "2024-10-08T20:58:10.417091Z",
"url": "https://files.pythonhosted.org/packages/e0/93/3cc9bec3225456a446d411406a085b7532b1b16ab5462d6821094616fecc/jump_portrait-0.0.24-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "32f71e79cee64af155be98a808711d9178a854251662b0560fc8efaebe469318",
"md5": "4c77a7c6983b59259d132820c12d0204",
"sha256": "73e0de8b6390e0d44c5529fe57f3d4d99b786fd82e83e856e5a5fe34dccaeb3e"
},
"downloads": -1,
"filename": "jump_portrait-0.0.24.tar.gz",
"has_sig": false,
"md5_digest": "4c77a7c6983b59259d132820c12d0204",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.12,>=3.10",
"size": 11562,
"upload_time": "2024-10-08T20:58:11",
"upload_time_iso_8601": "2024-10-08T20:58:11.924453Z",
"url": "https://files.pythonhosted.org/packages/32/f7/1e79cee64af155be98a808711d9178a854251662b0560fc8efaebe469318/jump_portrait-0.0.24.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-08 20:58:11",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "jump-portrait"
}