Skip to content

Commit 24533e8

Browse files
author
Qwen Code
committed
updated
1 parent 223ac44 commit 24533e8

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

drift/signaling.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ def step(self, state, inhibition):
111111

112112
def _custom_step(self, state, inhibition):
113113
"""Step using a custom drift function provided in the topology."""
114+
if self.topology.drift_fn is None:
115+
# Fallback if drift_fn is None
116+
return self._generic_step(state, inhibition)
117+
114118
drift = self.topology.drift_fn(state, self.topology.parameters, inhibition)
115119
diffusion = np.random.normal(0, self.noise_scale, size=len(state)) * np.sqrt(self.dt)
116120
new_state = state + drift * self.dt + diffusion

drift/topology.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@ def __init__(
1616
parameters: Dict[str, float],
1717
drift_fn: Optional[Callable] = None,
1818
name: str = "custom_topology",
19+
inhibited_species: Optional[str] = None,
1920
):
2021
self.species = species
2122
self.parameters = parameters
2223
self.drift_fn = drift_fn
2324
self.name = name
25+
self.inhibited_species = inhibited_species
2426

2527
@classmethod
2628
def from_json(cls, json_path: str):
@@ -75,13 +77,12 @@ def from_sbml(cls, sbml_path: str, inhibited_species: Optional[str] = None):
7577
name = model.getName() or model.getId() or "sbml_topology"
7678
logger.info(f"Imported SBML model: {name}")
7779

78-
topology = cls(
80+
return cls(
7981
species=species,
8082
parameters=parameters,
81-
name=name
83+
name=name,
84+
inhibited_species=inhibited_species
8285
)
83-
topology.inhibited_species = inhibited_species
84-
return topology
8586

8687
def get_initial_state(self) -> np.ndarray:
8788
"""Returns a default initial state (all 0.5 for normalized)."""

0 commit comments

Comments
 (0)