stem-bio-ai / scripts /ca_detection_scan.sh
Codex
sync hf space snapshot
6a1cba7
#!/usr/bin/env bash
# STEM BIO-AI Clinical Adjacency Detection Scan
# Usage: bash ca_detection_scan.sh /path/to/repo
# Output: detected triggers with severity classification
set -euo pipefail
REPO_PATH="${1:-.}"
print_help() {
echo "STEM BIO-AI Clinical Adjacency Detection Scan"
echo ""
echo "Usage: bash ca_detection_scan.sh [REPO_PATH]"
echo ""
echo " REPO_PATH Path to local repository clone (default: current directory)"
echo ""
echo "Scans import statements, dependencies, and README for clinical"
echo "adjacency triggers. Classifies as CA-DIRECT / CA-INDIRECT / CA-PLANNED."
}
if [ "${1:-}" = "--help" ] || [ "${1:-}" = "-h" ]; then
print_help
exit 0
fi
if [ ! -d "$REPO_PATH" ]; then
echo "ERROR: Directory not found: $REPO_PATH"
exit 1
fi
echo "=== STEM BIO-AI Clinical Adjacency Detection ==="
echo "Target: $REPO_PATH"
echo "Date: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo ""
HIGHEST_SEVERITY="none"
TRIGGER_COUNT=0
check_import() {
local pattern="$1"
local label="$2"
local severity="$3"
FOUND=$(grep -rln "$pattern" --include="*.py" "$REPO_PATH" 2>/dev/null || true)
if [ -n "$FOUND" ]; then
echo " [${severity}] ${label}"
echo " Files: $(echo "$FOUND" | tr '\n' ' ')"
TRIGGER_COUNT=$((TRIGGER_COUNT + 1))
case "$severity" in
CA-DIRECT) HIGHEST_SEVERITY="CA-DIRECT" ;;
CA-INDIRECT)
[ "$HIGHEST_SEVERITY" != "CA-DIRECT" ] && HIGHEST_SEVERITY="CA-INDIRECT" ;;
CA-PLANNED)
[ "$HIGHEST_SEVERITY" = "none" ] && HIGHEST_SEVERITY="CA-PLANNED" ;;
esac
fi
}
check_readme() {
local pattern="$1"
local label="$2"
local severity="$3"
README_FILES=$(find "$REPO_PATH" -maxdepth 2 -iname "readme*" -o -iname "SKILL.md" 2>/dev/null || true)
for readme in $README_FILES; do
if grep -qil "$pattern" "$readme" 2>/dev/null; then
echo " [${severity}] ${label} (README: $readme)"
TRIGGER_COUNT=$((TRIGGER_COUNT + 1))
case "$severity" in
CA-DIRECT) HIGHEST_SEVERITY="CA-DIRECT" ;;
CA-INDIRECT)
[ "$HIGHEST_SEVERITY" != "CA-DIRECT" ] && HIGHEST_SEVERITY="CA-INDIRECT" ;;
CA-PLANNED)
[ "$HIGHEST_SEVERITY" = "none" ] && HIGHEST_SEVERITY="CA-PLANNED" ;;
esac
break
fi
done
}
echo "--- CODE_PATH: Import/Dependency Scan ---"
# Medical imaging
check_import "import pydicom\|from pydicom" "pydicom (DICOM imaging)" "CA-INDIRECT"
check_import "import SimpleITK\|from SimpleITK" "SimpleITK (medical imaging)" "CA-INDIRECT"
check_import "import monai\|from monai" "MONAI (medical AI)" "CA-INDIRECT"
check_import "import pathml\|from pathml" "PathML (pathology)" "CA-INDIRECT"
# Drug discovery
check_import "import autodock\|AutoDock\|autodock_vina" "AutoDock Vina (docking)" "CA-INDIRECT"
check_import "import deepchem\|from deepchem" "DeepChem (drug discovery)" "CA-INDIRECT"
check_import "REINVENT\|reinvent" "REINVENT (molecular generation)" "CA-INDIRECT"
# Genomics
check_import "ClinVar\|clinvar" "ClinVar (clinical genomics)" "CA-INDIRECT"
check_import "CPIC\|cpic\|PharmGx\|pharmacogenomic" "Pharmacogenomics (CPIC/PharmGx)" "CA-DIRECT"
check_import "DPYD\|CYP2D6\|CYP2C19\|allele" "Pharmacogene alleles" "CA-DIRECT"
check_import "gnomAD\|gnomad" "gnomAD (population genomics)" "CA-INDIRECT"
check_import "GATK\|gatk" "GATK (diagnostic pipeline)" "CA-INDIRECT"
# Clinical NLP
check_import "import ctakes\|cTAKES" "cTAKES (clinical NLP)" "CA-INDIRECT"
check_import "import medspacy\|from medspacy" "MedSpaCy (clinical NLP)" "CA-INDIRECT"
check_import "ClinicalBERT\|clinicalbert" "ClinicalBERT" "CA-INDIRECT"
# Direct clinical output
check_import "AVOID\|contraindicated\|dosage_adjustment\|treatment_recommendation" "Direct clinical output patterns" "CA-DIRECT"
check_import "patient.*risk.*score\|diagnostic.*classif\|survival.*analysis" "Patient-facing analysis" "CA-DIRECT"
echo ""
echo "--- TEXT_PATH: README Keyword Scan ---"
check_readme "clinical trial" "Clinical trial reference" "CA-INDIRECT"
check_readme "patient data" "Patient data reference" "CA-INDIRECT"
check_readme "FDA clearance\|CE mark\|SaMD" "Regulatory reference" "CA-DIRECT"
check_readme "hospital deployment" "Hospital deployment" "CA-DIRECT"
check_readme "treatment recommendation" "Treatment recommendation" "CA-DIRECT"
check_readme "planned.*clinical\|future.*clinical\|roadmap.*clinical" "Planned clinical capability" "CA-PLANNED"
echo ""
echo "=== Summary ==="
echo "Triggers found: $TRIGGER_COUNT"
echo "Highest severity: $HIGHEST_SEVERITY"
echo ""
if [ "$HIGHEST_SEVERITY" = "none" ]; then
echo "CLINICAL_ADJACENT: false"
else
echo "CLINICAL_ADJACENT: true"
echo "CA_SEVERITY: $HIGHEST_SEVERITY"
fi