API Reference¶
Complete API documentation for Surfacia's Python modules and functions.
Overview¶
This section provides detailed API documentation for all Surfacia modules, classes, and functions. It's intended for developers who want to use Surfacia programmatically or extend its functionality.
Module Structure¶
Surfacia's API is organized into several key modules:
Core Module (surfacia.core)¶
The core module contains the fundamental workflow and processing functions:
Workflow Management: Main workflow orchestration
File Processing: Input/output handling and file management
Configuration: Parameter management and validation
Logging: Comprehensive logging and debugging support
Descriptors Module (surfacia.descriptors)¶
The descriptors module implements molecular surface descriptors:
Size and Shape: Geometric descriptors for molecular surfaces
Electronic Properties: Quantum mechanical surface properties
Surface Analysis: Advanced surface characterization methods
Custom Descriptors: Framework for implementing new descriptors
Machine Learning Module (surfacia.ml)¶
The ML module provides machine learning capabilities:
Feature Engineering: Automated feature selection and transformation
Model Training: Support for various ML algorithms
Cross-validation: Robust model validation techniques
Performance Metrics: Comprehensive evaluation metrics
Visualization Module (surfacia.visualization)¶
The visualization module handles all plotting and interactive displays:
SHAP Visualizations: Interpretable ML visualizations
Molecular Displays: 3D molecular structure rendering
Statistical Plots: Data analysis and results visualization
Interactive Dashboards: Web-based interactive interfaces
Utilities Module (surfacia.utils)¶
The utilities module contains helper functions and tools:
File Operations: Advanced file handling utilities
Data Processing: Data transformation and validation
System Integration: External software integration
Debugging Tools: Development and troubleshooting utilities
Usage Examples¶
Basic API Usage¶
import surfacia
from surfacia.core import workflow
from surfacia.descriptors import calculate_descriptors
# Run complete workflow
results = workflow.run_workflow(
input_file="molecule.xyz",
output_dir="results/",
config="config.yaml"
)
# Calculate specific descriptors
descriptors = calculate_descriptors(
surface_file="surface.wfn",
descriptor_types=["size_shape", "electronic"]
)
Advanced Usage¶
from surfacia.ml import MLAnalyzer
from surfacia.visualization import SHAPVisualizer
# Machine learning analysis
analyzer = MLAnalyzer(config="ml_config.yaml")
model = analyzer.train_model(features, targets)
predictions = analyzer.predict(test_features)
# SHAP visualization
visualizer = SHAPVisualizer(model=model)
visualizer.create_dashboard(features, predictions)
Function Reference¶
For detailed function signatures, parameters, and return values, see the individual module documentation pages linked above.
Development Guidelines¶
When extending Surfacia's API:
Follow the existing code structure and naming conventions
Include comprehensive docstrings with parameter descriptions
Add unit tests for new functionality
Update this documentation when adding new modules or functions
Ensure backward compatibility when modifying existing APIs
Error Handling¶
Surfacia uses a consistent error handling approach:
SurfaciaError: Base exception class for all Surfacia-specific errors
ConfigurationError: Configuration and parameter validation errors
ProcessingError: Data processing and calculation errors
FileError: File I/O and format errors
MLError: Machine learning and model-related errors
See individual module documentation for specific exception types and handling strategies.