Configuration Classes¤
DiffBio uses dataclasses for operator and pipeline configuration. All configurations inherit from Datarax's OperatorConfig base class.
Operator Configurations¤
Configuration classes for each operator are documented alongside their respective operators:
| Operator | Config | Documentation |
|---|---|---|
| Smith-Waterman | SmithWatermanConfig |
API Reference |
| Quality Filter | QualityFilterConfig |
API Reference |
| Pileup | PileupConfig |
API Reference |
| CNN Variant Classifier | CNNVariantClassifierConfig |
API Reference |
| CNV Segmentation | CNVSegmentationConfig |
API Reference |
| Soft K-Means | SoftClusteringConfig |
API Reference |
| Harmony | BatchCorrectionConfig |
API Reference |
| RNA Velocity | VelocityConfig |
API Reference |
Pipeline Configurations¤
| Pipeline | Config | Documentation |
|---|---|---|
| Variant Calling | VariantCallingPipelineConfig |
API Reference |
| Preprocessing | PreprocessingPipelineConfig |
API Reference |
| Differential Expression | DEPipelineConfig |
API Reference |
Training Configuration¤
The training configuration is documented in the training utilities:
| Config | Documentation |
|---|---|
TrainingConfig |
API Reference |
Configuration Patterns¤
Base Configuration¤
All operator configs inherit from OperatorConfig:
from dataclasses import dataclass
from datarax.core.config import OperatorConfig
@dataclass(frozen=True)
class MyOperatorConfig(OperatorConfig):
"""Configuration for MyOperator."""
my_param: float = 1.0
Nested Configuration¤
Pipelines can contain nested configs:
@dataclass(frozen=True)
class PipelineConfig:
preprocessing: PreprocessingPipelineConfig
alignment: AlignmentConfig
classification: ClassificationConfig
Configuration Validation¤
Add validation in __post_init__:
@dataclass(frozen=True)
class ValidatedConfig(OperatorConfig):
temperature: float = 1.0
def __post_init__(self) -> None:
if self.temperature <= 0:
raise ValueError("temperature must be positive")
Stochastic Operators¤
If an operator needs stochastic behavior, set stochastic and stream_name in
__post_init__ using object.__setattr__() (required because the dataclass is frozen):