CytoPy: A Cytometry Analysis Framework for Python

CytoPy: Cytometry Analysis Framework
Application
🔬
CytoPy offers a powerful and user-friendly framework for cytometry data analysis, making complex bioinformatics accessible to researchers.
Contributors
👥
Developed by Ross Burton and the Eberl Lab at Cardiff University, with contributions from the open-source community.
Contact
✉️
Free Download
💻
Access CytoPy on GitHub.
Progress
📈
CytoPy is actively maintained with a growing community focused on enhancements and new features.
Resources
🔗

Cytometry data analysis has rapidly evolved in recent years, leading to the emergence of numerous tools within the open-source community. Many of these tools rely on R, which can be challenging for newcomers to cytometry and bioinformatics. CytoPy offers an alternative solution in Python, a programming language known for its user-friendly syntax. This framework provides a structured approach to managing complex cytometry projects.

CytoPy features an object-oriented design built on mongoengine, allowing for flexible database structures suitable for any project. It comes equipped with data structures for representing cell populations identified in your cytometry data while encouraging the use of various analysis techniques.

Key Features

  • Dynamic Document-Based Data Repository: Centralized storage for your cytometry data.
  • Automated Gating: Includes hyperparameter search and local normalization to tackle batch effects.
  • Global Batch Effect Correction: Utilizes the Harmony algorithm to improve data consistency.
  • Supervised Classification: Supports classifiers from the Scikit-Learn ecosystem.
  • High-Dimensional Clustering: Implements clustering techniques such as FlowSOM and Phenograph.
  • Feature Extraction and Selection: Tools for summarizing and analyzing cell populations.
  • Utilities for Data Transformation: Offers sampling methods, transformations (logicle, arcsine, hyperlog), and dimension reduction techniques (PHATE, UMAP, t-SNE, PCA, KernelPCA).

For more information and installation instructions, visit the documentation.

Quickstart with Docker

To simplify setup, CytoPy recommends using Docker due to its complex dependencies. Here’s how to get started:

  1. Clone the repository (optional):bashCopy codegit clone https://github.com/burtonrj/CytoPy.git
  2. Navigate to the directory:bashCopy codecd CytoPy
  3. Run Docker Compose:bashCopy codedocker-compose up

This command launches the CytoPy and MongoDB containers, with data stored locally for easy access.

Release Notes

  • 2.0.2 (stable): Updated FlowUtils to v0.9.3 and fixed a bug in GatingStrategy.
  • 2.0.1 (stable): Addressed issues and increased test coverage.
  • 2.0.0 (stable): A major redesign of the framework with expanded methods.
  • 1.0.1 (premature): Fixed significant errors in the flow.clustering module.
  • 1.0.0 (premature): The first major release featuring fundamental changes to data management.

Contributors and Future Directions

We invite open-source contributors to assist with:

Creating CytoPySQL: a lightweight version using PeeWee ORM for those unable to use MongoDB.

Developing a graphical user interface with Electron JS for users without Python training.

Expanding test coverage for version 2.0.0.

Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *