A comprehensive computational pipeline for analyzing cellular responses to microwave stimulation across multiple modalities: morphology, calcium dynamics, cytotoxicity, Thermal profiling and transcriptomics.
This repository contains a complete analysis suite for studying cellular responses to microwave stimulation. The pipeline integrates data from:
- Morphological analysis (CellProfiler outputs)
- Calcium imaging (GCaMP fluorescence traces)
- Cytotoxicity assays (LDH measurements)
- Transcriptomics (Bulk RNA-seq data)
Each analysis module is designed to be modular, reproducible, and produces publication-ready visualizations.
microwave_analysis/
βββ README.md # This file
βββ LICENSE # License information
βββ .gitignore # Git ignore file
βββ setup_environment.R # Environment setup script
βββ morphological_analysis/ # Cell morphology analysis
β βββ Astrocyte_morphological_analysis.Rmd
β βββ Microglia_morphological_analysis.Rmd
β βββ GBM_morphological_analysis.Rmd
βββ calcium_imaging/ # Calcium dynamics analysis
β βββ Calcium_Signalling_Analysis.Rmd
βββ cytotoxicity_assay/ # LDH assay analysis
β βββ Ldh_Cytotoxicity_Analysis.Rmd
βββ transcriptomics/ # RNA-seq analysis
β βββ Transcriptomics_BulkSeq_Analysis.Rmd
β βββ msigdb_databases/ # Pathway databases
βββ Thermal Analysis/ # Temprature measurements
β βββ Thermal_analysis.Rmd
βββββ
- R (version 4.1.0 or higher)
- RStudio (recommended)
- Required system libraries:
- macOS:
brew install libpng cairo - Ubuntu:
sudo apt-get install libcurl4-openssl-dev libssl-dev libxml2-dev - Windows: Install Rtools
- macOS:
-
Clone the repository:
git clone https://github.com/yourusername/microwave-analysis.git cd microwave-analysis -
Set up R environment: Open R/RStudio and run:
# Run setup script source("setup_environment.R") # Or manually install packages install.packages(c("tidyverse", "ggplot2", "ggpubr", "patchwork", "rmarkdown"))
-
Test installation:
# Check if all required packages are installed source("utilities/check_installation.R")
For analyzing cell morphology from CellProfiler outputs:
- Place CellProfiler CSV outputs in a structured folder:
your_data/ βββ primary_objects.csv # Soma measurements βββ secondary_objects.csv # Whole cell measurements
For analyzing GCaMP calcium traces:
calcium_data/
βββ experiment1.csv
βββ experiment2.csv
βββ metadata.csv # Optional: experimental conditions
Edit the calcium analysis script:
# Set your parameters
data_folder <- "path/to/your/calcium/data"
results_folder <- "path/to/results"
recording_time_min <- 3 # Recording duration in minutes
cutoff_fixed <- 0.2 # Activity threshold
delta_multiplier <- 2 # Peak detection sensitivityFor analyzing LDH release data:
Create a CSV file with columns:
Condition(e.g., "G0", "G1", etc.)Lum_score(raw luminescence values)Replicate(optional)
Output includes:
- Normalized cytotoxicity values
- Statistical comparisons
- Dose-response visualizations
- Comparative analysis across cell types
For analyzing RNA-seq data:
- Count matrix (genes Γ samples)
- Metadata file (samples Γ conditions)
The pipeline produces:
- Differential expression results
- Volcano plots
- Pathway enrichment analysis
- Interactive visualizations
Map your experimental conditions to the analysis codes:
| Condition Code | MW Status | Exposure Time | Recovery Time |
|---|---|---|---|
| G0, A0, M0 | ON | 5 min | 0 h |
| G1, A1, M1 | OFF | 5 min | 0 h |
| G2, A2, M2 | ON | 30 min | 0 h |
| G3, A3, M3 | OFF | 30 min | 0 h |
| G4, A4, M4 | ON | 5 min | 24 h |
| G5, A5, M5 | OFF | 5 min | 24 h |
| G6, A6, M6 | ON | 30 min | 24 h |
| G7, A7, M7 | OFF | 30 min | 24 h |
Each analysis module has configurable parameters:
# In the R Markdown files, adjust:
company_colors <- c("#E50000", "#008A8A", ...) # Color palette
window_size <- 50 # Rolling window size
optimal_k <- 6 # Number of clusters
pval_threshold <- 0.05 # Statistical threshold# In calcium_imaging_analysis.Rmd:
recording_time_min <- 3 # Recording duration
cutoff_fixed <- 0.2 # Activity threshold
delta_multiplier <- 2 # Peak detection sensitivity
skip_correction <- TRUE # Skip baseline correction- Morphology: KS tests, Wilcoxon tests, Chi-square tests
- Calcium: Peak detection algorithms, firing rate calculations
- Cytotoxicity: t-tests, ANOVA, dose-response modeling
- Transcriptomics: limma-voom, DESeq2, GSEA
- Cell Density Plots: Normalized cell counts per condition
- Parameter Distributions: Box plots of morphological features
- Cluster Analysis: UMAP/t-SNE visualizations of phenotypes
- Phenotype Proportions: Bar plots of morphological classifications
- Trace Visualizations: Raw and processed calcium traces
- Event Detection: Raster plots of calcium events
- Firing Rate Analysis: Statistical comparisons of activity
- Waveform Analysis: Average calcium transient shapes
- * p < 0.05
- ** p < 0.01
- *** p < 0.001
- ns not significant
# If Bioconductor packages fail to install:
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(version = "3.16") # Specify version# Increase memory limit
memory.limit(size = 16000) # On Windows
# Use 64-bit R
# Filter data early in pipeline
# Process in chunks for large datasets# Use relative paths
data_path <- file.path("data", "your_file.csv")
# Check file existence
if (!file.exists(data_path)) {
stop("File not found: ", data_path)
}
# Set working directory properly
setwd("/full/path/to/your/project")# Check and install missing packages
required <- c("tidyverse", "ggplot2", "dplyr")
missing <- required[!(required %in% installed.packages()[,"Package"])]
if(length(missing)) install.packages(missing)- Run in stages: Test each analysis module separately
- Check data formats: Ensure CSV files are properly formatted
- Review log files: Check R console output for warnings/errors
- Use example data: Test with provided example datasets first
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use meaningful variable names
- Comment complex sections
- Follow tidyverse style guide
- Include example data for new features
- Update documentation accordingly
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or feature requests:
- Check the documentation: Review this README and inline documentation
- Search existing issues: Your question might already be answered
- Open a new issue: Provide a minimal reproducible example
- Contact maintainers: [Vatsal D. Jariwala]
If you use this software in your research, please cite:
@software{microwave_analysis_suite,
author = Vatsal D. Jariwala},
title = {Microwave Stimulation Analysis Suite},
year = {2025},
url = {https://github.com/VatsJari/NeuroWave}
}- Modular Design: Each analysis module works independently
- Reproducible: Complete documentation and version control
- Scalable: Handles datasets from small to large scale
- Customizable: Easily adjust parameters for specific needs
- Visualization-Rich: Publication-ready plots and figures
- Statistical Rigor: Multiple testing corrections and effect sizes
Happy Analyzing! π§¬π¬π
For best results, start with the example datasets and gradually replace them with your own data. Don't hesitate to open issues if you encounter problems or have suggestions for improvements.