Skip to content

Commit 5b028ec

Browse files
authored
Fix README links (#827)
* Fixes the navigation links * Turn mentioned code components into links (clickable is always better than non-clickable)] * Enables linkcheck for components pages * Make all existing links linkcheck-compatible
2 parents 812c050 + 13042ff commit 5b028ec

2 files changed

Lines changed: 64 additions & 53 deletions

File tree

README.md

Lines changed: 64 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
[![Logo](https://raw.githubusercontent.com/emdgroup/baybe/main/docs/_static/banner2.svg)](https://github.com/emdgroup/baybe/)
1616

1717
 
18-
<a href="https://emdgroup.github.io/baybe/">Homepage<a/>
18+
[Documentation](https://emdgroup.github.io/baybe/)
1919
&nbsp;&nbsp;
20-
<a href="https://emdgroup.github.io/baybe/stable/userguide/userguide.html">User Guide<a/>
20+
[API Reference](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.html)
2121
&nbsp;&nbsp;
22-
<a href="https://emdgroup.github.io/baybe/stable/_autosummary/baybe.html">Documentation<a/>
23-
&nbsp;&nbsp;
24-
<a href="https://emdgroup.github.io/baybe/stable/misc/contributing_link.html">Contribute<a/>
22+
[Contribute](https://emdgroup.github.io/baybe/stable/misc/contributing_link.html)
2523
&nbsp;
2624
</div>
2725

@@ -63,53 +61,50 @@ BayBE offers a range of ✨**built&#8209;in&nbsp;features**✨, including:
6361
🛠️ Flexible modeling options
6462
</summary>
6563
<div style="padding: 10px;">
66-
<ul>
67-
<li>Use both continuous and discrete parameters within a single <a href="https://emdgroup.github.io/baybe/stable/examples/Searchspaces/hybrid_space.html">hybrid search space</a>.</li>
68-
<li>Exclude undesired or impossible parameter configurations (e.g., to define a maximal number of mixture components) using <a href="https://emdgroup.github.io/baybe/stable/components/constraints.html">constraints</a>.</li>
69-
<li>Choose between different optimization strategies to balance exploration and exploitation of the search space:
70-
<ul>
71-
<li>Smartly acquire training data for model building via <a href="https://emdgroup.github.io/baybe/stable/concepts/active_learning.html">active learning</a>.</li>
72-
<li>Conduct AB testing via <a href="https://emdgroup.github.io/baybe/stable/examples/Multi_Armed_Bandit/Multi_Armed_Bandit.html">bandit models</a>.</li>
73-
</ul>
74-
</li>
75-
<li>Specify the desired target value via <a href="https://emdgroup.github.io/baybe/stable/components/transformations.html">target transformations</a>.</li>
76-
<li>Optimize multiple targets at the same time via <a href="https://emdgroup.github.io/baybe/stable/components/objectives.html#paretoobjective">Pareto optimization</a> or <a href="https://emdgroup.github.io/baybe/stable/components/objectives.html#desirabilityobjective">desirability scalarization</a>.</li>
77-
</ul>
64+
65+
- Use both continuous and discrete parameters within a single [hybrid search space](https://emdgroup.github.io/baybe/stable/examples/Searchspaces/hybrid_space.html).
66+
- Exclude undesired or impossible parameter configurations (e.g., to define a maximal number of mixture components) using [constraints](https://emdgroup.github.io/baybe/stable/components/constraints.html).
67+
- Choose between different optimization strategies to balance exploration and exploitation of the search space:
68+
- Smartly acquire training data for model building via [active learning](https://emdgroup.github.io/baybe/stable/concepts/active_learning.html).
69+
- Conduct AB testing via [bandit models](https://emdgroup.github.io/baybe/stable/examples/Multi_Armed_Bandit/Multi_Armed_Bandit.html).
70+
- Specify the desired target value via [target transformations](https://emdgroup.github.io/baybe/stable/components/transformations.html).
71+
- Optimize multiple targets at the same time via [Pareto optimization](https://emdgroup.github.io/baybe/stable/components/objectives.html#paretoobjective) or [desirability scalarization](https://emdgroup.github.io/baybe/stable/components/objectives.html#desirabilityobjective).
72+
7873
</div>
7974
</details>
8075
<details style="border:2px solid #535353; border-radius: 7px; margin: 5px;">
8176
<summary style="background-color: #535353; color: white; padding: 10px; border-radius: 5px; cursor: pointer;">
8277
📚 Mechanisms for leveraging additional information
8378
</summary>
8479
<div style="padding: 10px;">
85-
<ul>
86-
<li>Capture relationships between categories via <a href="https://emdgroup.github.io/baybe/stable/components/parameters.html#customdiscreteparameter">custom encodings for categorical</a> data.</li>
87-
<li>Use built-in <a href="https://emdgroup.github.io/baybe/stable/components/parameters.html#substanceparameter">chemical encodings</a> for chemistry-related parameters.</li>
88-
<li>Add mechanistic process understanding via <a href="https://emdgroup.github.io/baybe/stable/components/surrogates.html#using-custom-models">custom surrogate</a> models.</li>
89-
<li>Leverage additional data from similar campaigns to accelerate optimization via <a href="https://emdgroup.github.io/baybe/stable/concepts/transfer_learning.html">transfer learning</a>.</li>
90-
</ul>
80+
81+
- Capture relationships between categories via [custom encodings for categorical](https://emdgroup.github.io/baybe/stable/components/parameters.html#customdiscreteparameter) data.
82+
- Use built-in [chemical encodings](https://emdgroup.github.io/baybe/stable/components/parameters.html#substanceparameter) for chemistry-related parameters.
83+
- Add mechanistic process understanding via [custom surrogate](https://emdgroup.github.io/baybe/stable/components/surrogates.html#custom-surrogates) models.
84+
- Leverage additional data from similar campaigns to accelerate optimization via [transfer learning](https://emdgroup.github.io/baybe/stable/concepts/transfer_learning.html).
85+
9186
</div>
9287
</details>
9388
<details style="border:2px solid #535353; border-radius: 7px; margin: 5px;">
9489
<summary style="background-color: #535353; color: white; padding: 10px; border-radius: 5px; cursor: pointer;">
9590
🔗 Advanced optimization workflows
9691
</summary>
9792
<div style="padding: 10px;">
98-
<ul>
99-
<li>Run campaigns <a href="https://emdgroup.github.io/baybe/stable/concepts/async.html">asynchronously</a> with partial measurements and pending experiments.</li>
100-
<li>Store BayBE objects and use API wrappers with the <a href="https://emdgroup.github.io/baybe/stable/concepts/serialization.html">serialization</a> functionality.</li>
101-
</ul>
93+
94+
- Run campaigns [asynchronously](https://emdgroup.github.io/baybe/stable/concepts/async.html) with partial measurements and pending experiments.
95+
- Store BayBE objects and use API wrappers with the [serialization](https://emdgroup.github.io/baybe/stable/concepts/serialization.html) functionality.
96+
10297
</div>
10398
</details>
10499
<details style="border:2px solid #535353; border-radius: 7px; margin: 5px;">
105100
<summary style="background-color: #535353; color: white; padding: 10px; border-radius: 5px; cursor: pointer;">
106101
🔍 Performance evaluation tools
107102
</summary>
108103
<div style="padding: 10px;">
109-
<ul>
110-
<li>Gain <a href="https://emdgroup.github.io/baybe/stable/components/insights.html">insights</a> about the optimization campaigns by analyzing model behavior and feature importance.</li>
111-
<li>Conduct benchmarks to select between different Bayesian optimization settings via <a href="https://emdgroup.github.io/baybe/stable/concepts/simulation.html">backtesting</a>.</li>
112-
</ul>
104+
105+
- Gain [insights](https://emdgroup.github.io/baybe/stable/components/insights.html) about the optimization campaigns by analyzing model behavior and feature importance.
106+
- Conduct benchmarks to select between different Bayesian optimization settings via [backtesting](https://emdgroup.github.io/baybe/stable/concepts/simulation.html).
107+
113108
</div>
114109
</details>
115110

@@ -143,8 +138,10 @@ For more information on this step, see our
143138

144139
### Defining the Optimization Objective
145140

146-
In BayBE's language, the reaction yield can be represented as a `NumericalTarget`,
147-
which we wrap into a `SingleTargetObjective`:
141+
In BayBE's language, the reaction yield can be represented as a
142+
[`NumericalTarget`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.targets.numerical.NumericalTarget.html),
143+
which we wrap into a
144+
[`SingleTargetObjective`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.objectives.single.SingleTargetObjective.html):
148145

149146
```python
150147
from baybe.targets import NumericalTarget
@@ -153,18 +150,21 @@ from baybe.objectives import SingleTargetObjective
153150
target = NumericalTarget(name="Yield")
154151
objective = SingleTargetObjective(target=target)
155152
```
156-
In cases where we are confronted with multiple (potentially conflicting) targets
157-
(e.g., yield vs selectivity),
158-
the `ParetoObjective` or `DesirabilityObjective` can be used to define how the targets should be balanced.
159-
For more details, see the
153+
In cases where we are confronted with multiple (potentially conflicting) targets (e.g.,
154+
yield vs selectivity), the
155+
[`ParetoObjective`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.objectives.pareto.ParetoObjective.html)
156+
or
157+
[`DesirabilityObjective`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.objectives.desirability.DesirabilityObjective.html)
158+
can be used to define how the targets should be balanced. For more details, see the
160159
[objectives section](https://emdgroup.github.io/baybe/stable/components/objectives.html)
161160
of the user guide.
162161

163162
### Defining the Search Space
164163

165164
Next, we inform BayBE about the available "control knobs", that is, the underlying
166-
reaction parameters we can tune to optimize the yield.
167-
In this case we tune granularity, pressure and solvent, each being encoded as a `Parameter`.
165+
reaction parameters we can tune to optimize the yield. In this case we tune granularity,
166+
pressure and solvent, each being encoded as a
167+
[`Parameter`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.parameters.base.Parameter.html).
168168
We also need to specify which values individual parameters can take.
169169

170170
```python
@@ -208,7 +208,8 @@ relationships between our parameters. Details can be found in the
208208
In this example, we assume no further constraints.
209209

210210
With the parameter definitions at hand, we can now create our
211-
`SearchSpace` based on the Cartesian product of all possible parameter values:
211+
[`SearchSpace`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.searchspace.core.SearchSpace.html)
212+
based on the Cartesian product of all possible parameter values:
212213

213214
```python
214215
from baybe.searchspace import SearchSpace
@@ -226,7 +227,7 @@ As an optional step, we can specify details on how the optimization of the exper
226227
performed. If omitted, BayBE will choose a default Bayesian optimization setting.
227228

228229
For our example, we combine two recommenders via a so-called meta recommender named
229-
`TwoPhaseMetaRecommender`:
230+
[`TwoPhaseMetaRecommender`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.recommenders.meta.sequential.TwoPhaseMetaRecommender.html):
230231

231232
1. In cases where no measurements have been made prior to the interaction with BayBE,
232233
the parameters will be recommended with the `initial_recommender`.
@@ -252,7 +253,9 @@ of the user guide.
252253

253254
### The Optimization Loop
254255

255-
We can now construct a `Campaign` that performs the Bayesian optimization of the experimental configurations:
256+
We can now construct a
257+
[`Campaign`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.campaign.Campaign.html)
258+
that performs the Bayesian optimization of the experimental configurations:
256259

257260
```python
258261
from baybe import Campaign
@@ -288,7 +291,9 @@ measure the reaction yield.
288291
29 fine 5.0 Solvent B
289292
```
290293

291-
Next, we need to conduct the recommended experiments and record the corresponding `Target` values.
294+
Next, we need to conduct the recommended experiments and record the corresponding
295+
[`Target`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.targets.base.Target.html)
296+
values.
292297

293298
```python
294299
df["Yield"] = [
@@ -305,14 +310,17 @@ print(df)
305310
29 fine 5.0 Solvent B 59.4
306311
```
307312

308-
Now, we can add the newly measured `Target` values to the `Campaign`:
313+
Now, we can add the newly measured
314+
[`Target`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.targets.base.Target.html)
315+
values to the
316+
[`Campaign`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.campaign.Campaign.html):
309317

310318
```python
311319
campaign.add_measurements(df)
312320
```
313321

314322
With the newly provided data, BayBE can produce a refined recommendation for the next iteration.
315-
This loop typically continues until a desired `Target` value is achieved in the experiment.
323+
This loop typically continues until a desired [`Target`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.targets.base.Target.html) value is achieved in the experiment.
316324

317325
### Inspect the Progress of the Experimental Configuration Optimization
318326

@@ -322,14 +330,19 @@ by tuning the solvent, base and ligand
322330
Each line shows the best target value that was cumulatively achieved after a given number of experimental iterations.
323331

324332

325-
Different lines show outcomes of `Campaigns` with different settings.
333+
Different lines show outcomes of
334+
[`Campaign`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.campaign.Campaign.html)s
335+
with different settings.
326336

327337
![Substance Encoding Example](./examples/Backtesting/full_lookup_light.svg)
328338

329-
In particular, the five `Campaigns` differ in how molecules are encoded within
330-
each chemical `Parameter`. Instead of simply one-hot encoding each SMILES string,
331-
`SubstanceParameter` can be used to directly compute chemical fingerprints from
332-
the input SMILES.
339+
In particular, the five
340+
[`Campaign`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.campaign.Campaign.html)s
341+
differ in how molecules are encoded within each chemical
342+
[`Parameter`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.parameters.base.Parameter.html).
343+
Instead of simply one-hot encoding each SMILES string,
344+
[`SubstanceParameter`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.parameters.substance.SubstanceParameter.html)
345+
can be used to directly compute chemical fingerprints from the input SMILES.
333346
We can see that optimization is more efficient when
334347
using chemical encodings (e.g., *MORDRED*) rather than encoding categories with *one-hot* encoding. The latter is, in fact, no better than *randomly* suggesting parameter configurations at each experimental iteration.
335348

@@ -396,7 +409,7 @@ pip install 'baybe[chem,simulation]'
396409
The available groups are:
397410
- `extras`: Installs all dependencies required for optional features.
398411
- `benchmarking`: Required for running the benchmarking module.
399-
- `chem`: Cheminformatics utilities (e.g. for the `SubstanceParameter`).
412+
- `chem`: Cheminformatics utilities (e.g. for the [`SubstanceParameter`](https://emdgroup.github.io/baybe/stable/_autosummary/baybe.parameters.substance.SubstanceParameter.html)).
400413
- `docs`: Required for creating the documentation.
401414
- `examples`: Required for running the examples/streamlit.
402415
- `lint`: Required for linting and formatting.

docs/conf.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,6 @@
204204
linkcheck_ignore = [
205205
r"https://github.com/b-shields/edbo/blob*",
206206
r"https://doi.org/10.26434/chemrxiv.10001986/v2",
207-
# New components/ pages don't exist on stable yet; remove once released
208-
r"https://emdgroup\.github\.io/baybe/stable/components/.*",
209207
]
210208

211209

0 commit comments

Comments
 (0)