# Requires Python 3.10–3.12 (rdkit / numpy / pandas / pyarrow / scipy / scikit-learn / statsmodels pins ship cp310–cp312 wheels only). # See AGENTS.md §3 for the full coding-standards contract. # --- Web / API layer --- fastapi==0.115.0 uvicorn[standard]==0.30.6 pydantic==2.9.2 # --- Core data stack --- numpy==1.26.4 pandas==2.2.2 pyarrow==17.0.0 scipy==1.13.1 scikit-learn==1.5.1 # --- Modality: tabular / molecules (BBB pipeline) --- rdkit==2024.3.5 # --- Modality: signal (EEG pipeline) --- mne==1.7.1 # --- Modality: image (MRI pipeline) --- nibabel==5.2.1 neuroharmonize==2.4.5 # ComBat harmonization wrapper neuroCombat==0.2.12 # transitive dep of neuroharmonize; pinned for reproducibility statsmodels==0.14.6 # transitive dep of neuroharmonize; pinned for reproducibility # --- Experiment tracking --- mlflow==2.16.0 # --- Downstream ML / XAI (Day 5 decision layer) --- shap==0.46.0 joblib==1.4.2 onnxruntime==1.19.2 # MRI volumetric ONNX inference (external DL artifact) torch==2.4.1 # MRI 2D resnet18 inference (Plan: external-assets-integration) torchvision==0.19.1 # resnet18 + image transforms pillow==10.4.0 # image loading for 2D MRI inputs # --- Tooling / tests --- pytest==8.3.3 pytest-cov==5.0.0 httpx==0.27.2 # FastAPI test client # --- RAG (knowledge retrieval for agent feedback loop) --- fastembed==0.4.2 # ONNX-based embeddings, no torch dep faiss-cpu==1.8.0 # vector store pypdf==5.0.1 # PDF text extraction # --- Frontend (B2B dashboard) --- streamlit==1.39.0 # --- LLM provider (Day 7 explainer) --- openai==1.51.0 # OpenRouter SDK (Day-7 LLM explainer; deterministic-template fallback always available) python-dotenv==1.0.1 # Load OPENROUTER_API_KEY from local .env for API/agent demos