Extension Configs¤
Artifex configures extension composition through typed frozen dataclasses. The
canonical protein surface is ProteinExtensionsConfig, which bundles the
optional protein-aware extensions that can be attached to a model.
Public Imports¤
from artifex.configs import (
ProteinExtensionConfig,
ProteinExtensionsConfig,
ProteinMixinConfig,
get_protein_extensions_config,
)
Shipped Protein Bundle¤
The retained default protein extension bundle lives at
src/artifex/configs/defaults/extensions/protein.yaml and loads as a real typed
config object:
from artifex.configs import get_protein_extensions_config
bundle = get_protein_extensions_config("protein")
Programmatic Composition¤
from artifex.configs import (
ProteinExtensionConfig,
ProteinExtensionsConfig,
ProteinMixinConfig,
)
bundle = ProteinExtensionsConfig(
name="protein_extensions",
bond_length=ProteinExtensionConfig(
name="bond_length",
weight=1.0,
bond_length_weight=1.0,
ideal_bond_lengths={"N-CA": 1.45, "CA-C": 1.52, "C-N": 1.33},
),
bond_angle=ProteinExtensionConfig(
name="bond_angle",
weight=0.5,
bond_angle_weight=0.5,
ideal_bond_angles={"CA-C-N": 2.025, "C-N-CA": 2.11, "N-CA-C": 1.94},
),
mixin=ProteinMixinConfig(
name="protein_mixin",
embedding_dim=16,
num_aa_types=21,
),
)
Runtime Materialization¤
from flax import nnx
from artifex.generative_models.extensions.protein import create_protein_extensions
extensions = create_protein_extensions(bundle, rngs=nnx.Rngs(0))
Current Config Types¤
ExtensionConfigConstraintExtensionConfigProteinExtensionConfigProteinExtensionsConfigProteinMixinConfigArchitectureExtensionConfigSamplingExtensionConfigLossExtensionConfigEvaluationExtensionConfig