#!/bin/bash # =====# Create output directory and set proper permissions echo "📁 Setting up output directories and permissions..." docker exec cana_pipeline mkdir -p /app/demofolder/output docker exec cana_pipeline mkdir -p /app/demofolder/output/CaNA_expanded_150_output docker exec cana_pipeline chmod 777 /app/demofolder/output/CaNA_expanded_150_output # CaNA Expanded Processing Pipeline # Docker Container Activation # ============================ echo "Starting CaNA (Cancer Analysis) Docker container..." cd "$(dirname "$0")" # Go to script directory # Remove existing container if it exists docker rm -f cana_pipeline 2>/dev/null || true # Start container using the PiNS medical imaging image echo "Launching ft42/pins:latest container..." docker run -d --name cana_pipeline \ -v "$(pwd):/app" \ -w /app \ ft42/pins:latest \ tail -f /dev/null # Create output directory and set proper permissions echo "Setting up output directories and permissions..." docker exec cana_pipeline mkdir -p /app/demofolder/output/CaNA_expanded_150_output docker exec cana_pipeline mkdir -p /app/demofolder/output/ docker exec cana_pipeline chmod 777 /app/demofolder/output/CaNA_expanded_150_output docker exec cana_pipeline chmod 777 /app/demofolder/output/ # Install additional dependencies if needed echo "Installing missing Python packages if needed..." docker exec cana_pipeline pip install nibabel scikit-image > /dev/null 2>&1 || echo "⚠️ Some packages may already be installed" echo "Docker container is running with all dependencies" # ============================ # Run CaNA Processing Pipeline # ============================ echo "🧠 Running CaNA (Cancer Analysis) lung nodule expansion processing..." docker exec cana_pipeline python CaNA_LungNoduleSize_expanded.py \ --json_path ./demofolder/data/Experiments_DLCSD24_512xy_256z_771p25m_dataset.json \ --dict_to_read "training" \ --data_root ./demofolder/data/ \ --lunglesion_lbl 23 \ --scale_percent 50 \ --mode grow \ --save_dir /app/demofolder/output/CaNA_expanded_150_output \ --random_seed 42 \ --prefix Aug23e150_ \ --log_file /app/demofolder/output/CaNA_expansion_150.log # ============================ # Cleanup and Results # ============================ if [ $? -eq 0 ]; then echo "✅ CaNA processing completed successfully!" echo "📊 Check ./demofolder/output/ directory for results:" echo " - Processing log: CaNA_expansion_150.log" echo " - Expanded masks: CaNA_expanded_150_output/" echo " - File prefix: Aug23e150_" else echo "❌ CaNA processing failed. Check the logs above for errors." fi # Stop and remove container echo " Cleaning up Docker container..." docker stop cana_pipeline > /dev/null 2>&1 docker rm cana_pipeline > /dev/null 2>&1 echo "CaNA pipeline execution complete!"