- FastAPI main application (
app/main.py) - Pydantic configuration management (
app/core/config.py) - Structured logging with JSON output (
app/core/logging.py) - Celery task configuration (
app/core/tasks.py) - CORS middleware setup
- Exception handlers and error responses
- Job models (
app/models/job.py)- JobBase, JobCreate, JobUpdate, JobResponse
- JobListResponse, JobLogResponse, JobCancellationResponse
- Dataset models (
app/models/dataset.py)- DatasetBase, DatasetCreate, DatasetResponse
- DatasetListResponse, DatasetPreview, DatasetSchema
- Result models (
app/models/result.py)- ResultBase, ResultResponse, ResultListResponse
- NetworkComparison, ResultSummary, ResultMetrics
- Dataset service (
app/services/datasets_service.py)- Register, list, get, delete datasets
- Dataset metadata management
- Preview functionality
- Schema validation
- Job service (
app/services/jobs_service.py)- Job submission and lifecycle
- Status tracking
- Log retrieval
- Job cancellation
- Inference service (
app/services/inference_service.py)- Algorithm execution orchestration
- Docker and Python command preparation
- Output validation
- Metrics computation
- Dataset endpoints (
app/api/datasets.py)- POST /register - Register new dataset
- GET / - List datasets with pagination
- GET /{dataset_id} - Get dataset details
- GET /{dataset_id}/preview - Preview dataset
- PATCH /{dataset_id} - Update metadata
- DELETE /{dataset_id} - Delete dataset
- Job endpoints (
app/api/jobs.py)- POST / - Submit job
- GET / - List jobs with filters
- GET /{job_id} - Get job status
- GET /{job_id}/logs - Get logs
- DELETE /{job_id} - Cancel job
- Result endpoints (
app/api/results.py)- GET /job/{job_id} - Get result
- GET /job/{job_id}/summary - Get summary
- POST /compare - Compare networks
- GET /job/{job_id}/network/download - Download network
- POST /job/{job_id}/export - Export results
- Base runner class (
app/services/runners/utils.py)- BaseRunner abstract class
- Input/output validation
- Expression data loading
- Network file saving
- Correlation and MI computation
- Generic GRN runner (
app/services/runners/generic_runner.py)- Extensible base for all algorithms
- Correlation-based inference
- Parameter handling
- Runner utilities for algorithm integration
- Celery configuration (
app/core/tasks.py)- Broker and backend setup
- Queue configuration
- Task scheduling
- Task definitions (
app/workers/tasks.py)- run_inference_job - Main inference execution
- compare_networks - Network comparison
- compute_metrics - Metrics calculation
- export_results - Multi-format export
- cleanup_old_results - Scheduled cleanup
- Dockerfile with multi-stage build
- docker-compose.yml with all services
- FastAPI backend
- Celery worker
- Celery beat scheduler
- Flower monitoring
- Redis
- Environment file template (
.env.example) - Production startup script (
run.py) - Development setup script (
setup-dev.sh) - Configuration management via environment variables
- Pytest configuration (
tests/conftest.py)- Test client fixture
- Sample dataset fixture
- Sample network fixture
- Mock data fixtures
- API tests (
tests/test_api.py)- Health check
- Root endpoint
- Algorithm listing
- Dataset CRUD
- Job submission
- Job filtering
- Comprehensive README
- API documentation (Swagger/OpenAPI auto-generated)
- Frontend integration guide (
FRONTEND_INTEGRATION.md) - Installation and setup instructions
- Usage examples with curl/code
- Troubleshooting guide
- Configuration documentation
- Docker deployment guide
- requirements.txt with pinned versions
- pyproject.toml with project metadata
- Development dependencies defined
- Tool configurations (black, isort, mypy, pytest)
- Support for all 14 Beeline algorithms
- SCODE, SCNS, SINCERITIES, PIDC, GRNVBEM
- GENIE3, GRNBOOST2, LEAP, JUMP3
- PPCOR, GRISLI, SINGE, SCRIBE, SCSGL
- Algorithm listing endpoint
- Docker image registry configuration
- Algorithm parameter handling
- Multiple dataset sources (local, HuggingFace, S3)
- Dataset schema validation
- Dataset metadata persistence
- Dataset preview functionality
- CSV, TSV, h5ad format support
- Asynchronous job submission via Celery
- Job status tracking (pending, running, completed, failed, cancelled)
- Real-time progress updates
- Job cancellation support
- Comprehensive job logging
- Job filtering by status, dataset, algorithm
- Network file storage
- Automatic metrics computation
- Network comparison functionality
- Multi-format export (JSON, GraphML, CSV)
- Result caching and retrieval
- Result summaries
- Structured JSON logging
- Log level configuration
- Flower dashboard integration
- Health check endpoint
- Task status tracking via Celery
- CORS configuration
- RESTful API design
- Comprehensive API documentation
- Example API client implementations
- Frontend integration guide
- TypeScript/React component examples
- SQLAlchemy ORM support
- Alembic migration setup
- Support for SQLite, PostgreSQL, MySQL