3D shape analysis using deep learning
Project description
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-voxelnum_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
Release history Release notifications | RSS feed
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.20.tar.gz
(11.4 kB
view details)
Built Distribution
File details
Details for the file cellshape-cluster-0.0.20.tar.gz
.
File metadata
- Download URL: cellshape-cluster-0.0.20.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa8b8ca4be21efbd6843fa798197d8a427ca987770e8bd8b6d96379e1c6c753 |
|
MD5 | 04e44a72c3a7680e2641e9a1e87b5a1a |
|
BLAKE2b-256 | e9a8896f3fea7637ef0eea2b1396158c51b771513823949a37e69463ca439195 |
File details
Details for the file cellshape_cluster-0.0.20-py3-none-any.whl
.
File metadata
- Download URL: cellshape_cluster-0.0.20-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d09bb48ded2bf3480baac7619987e7f49967a2330ff5cc550a6ff903b730edbd |
|
MD5 | 2117c00ebd313d727a09bd9b9340575e |
|
BLAKE2b-256 | 4f6c1e39faa74e6fe04e497928411dc6f30276dc697f722fca6ea2e0a34c158c |