Skip to main content

An image feature extractor with self-supervised learning

Project description

cytoself

Code style: black PyPI Python Version DOI License

Alt Text

cytoself is a self-supervised platform that we developed for learning features of protein subcellular localization from microscopy images. This model is described in detail in our recent preprint [2]. The representations derived from cytoself encapsulate highly specific features that can derive functional insights for proteins on the sole basis of their localization.

Applying cytoself to images of endogenously labeled proteins from the recently released OpenCell database creates a highly resolved protein localization atlas [1].

[1] Cho, Nathan H., et al. "OpenCell: proteome-scale endogenous tagging enables the cartography of human cellular organization." bioRxiv (2021). https://www.biorxiv.org/content/10.1101/2021.03.29.437595v1
[2] Kobayashi, Hirofumi, et al. "Self-Supervised Deep-Learning Encodes High-Resolution Features of Protein Subcellular Localization." bioRxiv (2021). https://www.biorxiv.org/content/10.1101/2021.03.29.437595v1

How cytoself works

cytoself uses images and its identity information as a label to learn the localization patterns of proteins. We used cell images where single protein is labeled and the ID of labeled protein as identity information.

Alt Text

What's in this repository

This repository offers three main components: DataManager, cytoself.models, and Analytics.

DataManager is a simple module to handle train, validate and test data. You may want to modify it to adapt to your own data structure. This module is in cytoself.data_loader.data_manager.

cytoself.models contains modules for three different variants of the cytoself model: a model without split-quantization, a model without the pretext task, and the 'full' model (refer to our preprint for details about these variants). There is a submodule for each model variant that provides methods for constructing, compiling, and training the models (which are built using tensorflow).

Analytics is a simple module to perform analytic processes such as dimension reduction and plotting. You may want to modify it too to perform your own analysis. This module is in cytoself.analysis.analytics. Open In Colab

Installation

Recommended: create a new environment and install cytoself on the environment from pypi

conda create -y -n cytoself python=3.7
conda activate cytoself
pip install cytoself

(Option) Install TensorFlow GPU

If your computer is equipped with GPUs that support Tensorflow 1.15, you can install Tensorflow-gpu to utilize GPUs. Install the following packages before cytoself, or uninstall the existing CPU versions and reinstall the GPU versions again with conda.

conda install -y h5py=2.10.0 tensorflow-gpu=1.15

For the developers

You can also install cytoself from this GitHub repository.

git clone https://github.com/royerlab/cytoself.git
pip install .

Troubleshooting

In case of getting errors in the installation, run the following code inside the cytoself folder to manually install the dependencies.

pip install -r requirements.txt

As a reference for a complete dependency, a snapshot of a working environment can be found in environment.yml

Example script

A minimal example script is in example/simple_training.py.

Test if this package runs in your computer with command

python examples/simple_example.py

Computation resources

It is highly recommended to use GPU to run cytoself. A full model with image shape (100, 100, 2) and batch size 64 can take ~9GB of GPU memory.

Tested Environment

Google Colab (CPU/GPU/TPU)

macOS 11.6.1, RAM 32GB (CPU)

Windows10 Pro 64bit, RAM 32GB (CPU)

Ubuntu 18.04.6 LTS, RTX 2080Ti, CUDA 11.2 (CPU/GPU)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cytoself-0.0.1.3.tar.gz (44.2 kB view details)

Uploaded Source

Built Distribution

cytoself-0.0.1.3-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

File details

Details for the file cytoself-0.0.1.3.tar.gz.

File metadata

  • Download URL: cytoself-0.0.1.3.tar.gz
  • Upload date:
  • Size: 44.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/29.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.55.1 importlib-metadata/4.11.1 keyring/23.0.1 rfc3986/1.4.0 colorama/0.4.4 CPython/3.7.11

File hashes

Hashes for cytoself-0.0.1.3.tar.gz
Algorithm Hash digest
SHA256 e30016f7723700b5b45d23080d17ffd3016491c7529e2425e7dc788ce0a0ec53
MD5 162d986c6fbad8926f6be9561a80596d
BLAKE2b-256 efb0191af50db510eddd0df62fba3602b2cfa4836337979384828c7a5842cfdf

See more details on using hashes here.

File details

Details for the file cytoself-0.0.1.3-py3-none-any.whl.

File metadata

  • Download URL: cytoself-0.0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 58.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/29.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.55.1 importlib-metadata/4.11.1 keyring/23.0.1 rfc3986/1.4.0 colorama/0.4.4 CPython/3.7.11

File hashes

Hashes for cytoself-0.0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c196d3df97e8af364f95a8409c2ae738a6380a20d0aefce1f66b15226ab30718
MD5 0bd685206d82d680f5051f15848b5440
BLAKE2b-256 c7d43a0557ea8b7ad454ef282831b9f890540678a9e15fd89e65a2435a071772

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page