Skip to main content

3D shape analysis using deep learning

Project description

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Python Version PyPI Downloads Wheel Development Status Tests Coverage Status Code style: black

Cellshape logo by Matt De Vries


Cellshape-cluster is an easy-to-use tool to analyse the cluster cells by their shape using deep learning and, in particular, deep-embedded-clustering. The tool provides the ability to train popular graph-based or convolutional autoencoders on point cloud or voxel data of 3D single cell masks as well as providing pre-trained networks for inference.

To install

pip install cellshape-cluster

Usage

Basic usage:

import torch
from cellshape_cloud import CloudAutoEncoder
from cellshape_cluster import DeepEmbeddedClustering

autoencoder = CloudAutoEncoder(
    num_features=128, 
    k=20, 
    encoder_type="dgcnn"
)

model = DeepEmbeddedClustering(autoencoder=autoencoder, 
                               num_clusters=10,
                               alpha=1.0)

points = torch.randn(1, 2048, 3)

recon, features, clusters = model(points)

To load a trained graph-based autoencoder and perform deep embedded clustering:

import torch
from torch.utils.data import DataLoader

import cellshape_cloud as cloud
import cellshape_cluster as cluster
from cellshape_cloud.vendor.chamfer_distance import ChamferDistance

dataset_dir = "path/to/pointcloud/dataset/"
autoencoder_model = "path/to/autoencoder/model.pt"
num_features = 128
k = 20
encoder_type = "dgcnn"
num_clusters = 10
num_epochs = 1
learning_rate = 0.00001
gamma = 1
divergence_tolerance = 0.01
output_dir = "path/to/output/"


autoencoder = CloudAutoEncoder(
    num_features=128, 
    k=20, 
    encoder_type="dgcnn"
)

checkpoint = torch.load(autoencoder_model)

autoencoder.load_state_dict(checkpoint['model_state_dict']

model = DeepEmbeddedClustering(autoencoder=autoencoder, 
                               num_clusters=10,
                               alpha=1.0)

dataset = cloud.PointCloudDataset(dataset_dir)

dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=False) # it is very important that shuffle=False here!
dataloader_inf = DataLoader(dataset, batch_size=1, shuffle=False) # it is very important that batch_size=1 and shuffle=False here!

optimizer = torch.optim.Adam(
    model.parameters(),
    lr=learning_rate * 16 / batch_size,
    betas=(0.9, 0.999),
    weight_decay=1e-6,
)

reconstruction_criterion = ChamferDistance()
cluster_criterion = nn.KLDivLoss(reduction="sum")

train(
    model,
    dataloader,
    dataloader_inf,
    num_epochs,
    optimizer,
    reconstruction_criterion,
    cluster_criterion,
    update_interval,
    gamma,
    divergence_tolerance,
    output_dir
)

Parameters

  • autoencoder: CloudAutoEncoder or VoxelAutoEncoder.
    Instance of autoencoder class from cellshape-cloud or cellshape-voxel
  • num_clusters: int.
    The number of clusters to use in deep embedded clustering algorithm.
  • alpha: float.
    Degrees of freedom for the Student's t-distribution. Xie et al. (ICML, 2016) let alpha=1 for all experiments.

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

cellshape-cluster-0.0.15.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

cellshape_cluster-0.0.15-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file cellshape-cluster-0.0.15.tar.gz.

File metadata

  • Download URL: cellshape-cluster-0.0.15.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for cellshape-cluster-0.0.15.tar.gz
Algorithm Hash digest
SHA256 ec3e8bb04ad258cd675ef91976c04401c5efffc05e11a508c0d7b125e9fc24d0
MD5 0097850ab7e429fce551b88e7f40a41d
BLAKE2b-256 bd94266166ca054820127886df9d80bf0e887c4ec8a39f953c3ef3de769243a1

See more details on using hashes here.

File details

Details for the file cellshape_cluster-0.0.15-py3-none-any.whl.

File metadata

File hashes

Hashes for cellshape_cluster-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 9693ec2d7d867ea8fece6f84da6b0069f743720680f97c28f38177f8209c5fbf
MD5 b00a2c68c5ef179c61006b2cd5622dc6
BLAKE2b-256 4bc0f416c8a7925639222abd125cf9200fc37e87ecd512f93fab27403374f70b

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