Main Objectives#

This document outlines the primary objectives of the internship, emphasizing performance evaluation, simulation validation, and feature development for FlowCyPy.


Limit of Detection (LoD)#

Objective: Define, quantify, and evaluate the limit of detection in flow cytometry simulations.

  • Metric Definition: - Develop a robust methodology to define the limit of detection (LoD). - Incorporate signal-to-noise ratio (SNR) thresholds and statistical models.

  • Noise Impact: - Analyze the influence of noise sources (thermal, shot, and dark noise) on LoD. - Compare theoretical noise characteristics with simulated results.

\[\begin{split}\text{Shot Noise Variance} = 2 e I B R^2 \\[20pt] \text{Thermal Noise Variance} = \frac{4 k_B T B}{R}\end{split}\]
where:
  • \(e\): Elementary charge (C)

  • \(I\): Current (A)

  • \(B\): Bandwidth (Hz)

  • \(k_B\): Boltzmann constant (J/K)

  • \(T\): Temperature (K)

  • \(R\): Resistance (Ω)

Mini Objective

  • Create plots showcasing the relationship between noise levels and LoD.

  • Assess the LoD for particles of varying sizes and refractive indices.


Real-Life Data Validation#

Objective: Compare simulation outputs against experimental data for validation.

  • Use calibration bead datasets to benchmark the simulation.

  • Validate forward and side scatter signal distributions using experimental measurements.

  • Evaluate accuracy in detecting small particle populations under noisy conditions.

Mini Objective

  • Simulate experimental setups using real-world parameters.

  • Quantify the deviation between simulated and experimental results.


Software Profiling and Optimization#

Objective: Enhance the efficiency of FlowCyPy for large-scale simulations.

  • Profiling: - Identify bottlenecks in simulation workflows using tools like cProfile or line_profiler. - Measure memory consumption and execution time under various conditions.

  • Optimization: - Refactor core modules (e.g., scatterer.py, detector.py) for better performance. - Explore batch processing and parallelization techniques to handle datasets with (10^6) particles.

Mini Objective

  • Profile a simulation with large particle counts and document runtime.

  • Implement parallel processing and compare speed improvements.


Feature Development#

Objective: Expand FlowCyPy’s capabilities for advanced analyses.

  • Peak Detection: - Implement and test a new algorithm for detecting peaks in low-SNR signals. - Compare adaptive thresholding, wavelet transforms, and other methods.

  • Particle Population Dynamics: - Simulate datasets with a large number of very small particles and evaluate effects on signal characteristics.

  • Documentation: - Improve the README file for clarity and usability. - Enhance overall documentation to include detailed examples, use cases, and API references.

Mini Objective

  • Test the new peak detection algorithm on simulated low-SNR signals.

  • Simulate a bimodal distribution with very small particles and assess accuracy.


Expected Outcomes#

  • A clearly defined LoD metric with supporting simulations and theoretical validations.

  • Robust comparisons between simulated and experimental data.

  • Optimized simulation workflows capable of handling large datasets efficiently.

  • A well-documented and user-friendly FlowCyPy package with enhanced features.