Skip to content

Commit 92b3f19

Browse files
rcannoodmumichae
andauthored
Update/create task (#246)
* update gitignore * update notes on datsets * fix file paths for API section * minor fixes * update changelog --------- Co-authored-by: Michaela Mueller <michaela.mueller@helmholtz-muenchen.de>
1 parent d959fd6 commit 92b3f19

7 files changed

Lines changed: 36 additions & 33 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1+
.DS_Store
12
/.quarto/
23
/_site
34
/_freeze
4-
/.vscode
5+
/.vscode

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# openproblems.bio v2.2.1
22

3-
... nothing here yet ...
3+
## BUG FIX
4+
5+
* Minor fixes to the documentation pages (#246).
46

57
# openproblems.bio v2.2.0
68

documentation/create_task/design_api.qmd

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ In general, an API follows the structure of a viash component and can contain an
2929
It is up you to decide which directives you consider general-purpose for your specific components.
3030
An example could look like the following:
3131

32-
```{.yaml filename="api/component/generic_component.yaml"}
32+
```{.yaml filename="src/<task_id>/api/component/generic_component.yaml"}
3333
functionality:
34-
namespace: <task>/<category> # <1>
34+
namespace: <task_id>/<category> # <1>
3535
info: # <2>
3636
...
3737
arguments: # <3>
@@ -64,16 +64,16 @@ cat src/label_projection/api/comp_method.yaml
6464
```
6565
````
6666

67-
### Connecting the component API to a specific component
67+
### Applying the API to a specific component
6868

6969
A component can inherit from an API specification, which follows the basic viash component.
7070
The directive for inheriting from an API specification is `__merge__` at the topmost level of the component API.
7171
That way, all the specifications under the `functionality` directive of the API definition will be merged into the `functionality` component configuration.
7272
These specifications do not need to be defined again in the component config, unless you want to override them for select tasks.
7373
Note, that the API file path must be relative to the location of the `config.vsh.yaml` file.
7474

75-
```{.yaml filename="<task>/<category>/<subtask>/config.vsh.yaml"}
76-
__merge__: ../../api/component/<>.yaml # <1>
75+
```{.yaml filename="src/<task>/<category>/<component>/config.vsh.yaml"}
76+
__merge__: ../../api/component/generic_component.yaml # <1>
7777
functionality: # <2>
7878
name: ...
7979
description: ...
@@ -86,7 +86,7 @@ platforms: # <5>
8686
```
8787

8888
1. The generic component type API specification file.
89-
2. Specify any component-specific directives that are not in the generic API or overwrite directives if neeeded
89+
2. Specify any component-specific directives that are not in the generic API or overwrite directives if needed.
9090
3. The metadata of the component.
9191
4. Resource files of the component (typically a Python or an R script).
9292
5. Platform specification info (typically which Docker image to use and which Python/R packages to install on top of that).
@@ -100,7 +100,7 @@ While they can be defined in a viash config file or a component API directly, de
100100
When specifying the API file formats, you should describe the contents, structure, and any additional metadata required for the files. This information will be useful for developers to understand the expected file formats and components quickly. Use YAML to define the file formats, as shown below:
101101

102102

103-
```{.yaml filename="api/file/anndata_specification_1.yaml"}
103+
```{.yaml filename="src/<task_id>/api/file/anndata_specification_1.yaml"}
104104
type: file # <1>
105105
description: ... # <2>
106106
example: ... # <3>
@@ -148,10 +148,9 @@ cat src/label_projection/api/anndata_train.yaml
148148
```
149149
````
150150

151-
### Connecting the file API to a specific component
151+
### Applying the API to a specific component
152152

153-
The File API YAML files are best stored under the `api/file` of a task in `src/<task>/`.
154-
It can be used in a generic component API YAML or in the component configuration directly.
153+
The File API YAML files can be used in a generic component API YAML or in the component configuration directly.
155154
Note, that the API file path must be relative to the location of the corresponding component API or `config.vsh.yaml` file.
156155

157156
```{yaml}

documentation/create_task/index.qmd

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ description: Adding a new task from scratch
44
order: 30
55
---
66

7-
This chapter provides a step-by-step overview of the process, including understanding the typical structure of an OpenProblems task, defining a new task, selecting datasets, designing the API for files and components, adding components, and creating a workflow that ties everything together.
8-
9-
Here are the main sections of this guide, each represented by a file with headers:
7+
This chapter provides a step-by-step overview of the process of adding a new task. Here are the main sections:
108

119
1. **[Task Structure](task_structure.qmd)**: The structure of a typical OpenProblems task, including its components and file formats.
1210

@@ -19,5 +17,3 @@ Here are the main sections of this guide, each represented by a file with header
1917
5. **[Create Components](create_components.qmd)**: Dive into the process of adding components to your task, such as dataset loaders, methods, control methods, and metrics.
2018

2119
6. **[Create Workflow](create_workflow.qmd)**: Combine your components into a cohesive Nextflow workflow.
22-
23-
By following this guide, you'll gain a thorough understanding of the process and best practices for creating a new OpenProblems task from scratch.

documentation/create_task/select_datasets.qmd

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ This page is still under construction.
99
:::
1010

1111
:::{.content-hidden}
12-
* Which fields are required
13-
* Create split dataset component
1412

15-
workflow:
16-
17-
1. create API for processed datasets (starting from common data loader API)
18-
2. create component for processing datasets
13+
## Browse existing datasets
1914

2015
## Create a dataset processor
16+
17+
### Define the API
18+
* Which fields are required
19+
20+
### Create the viash component
21+
* Create split dataset component
22+
2123
:::
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
---
22
title: Fundamentals
3-
description: "..."
43
order: 10
54
---
65

7-
...
6+
This chapter introduces the main philosophy of the Openproblems project, key concepts, requirements, and a short getting started guide.
7+
8+
1. [Philosophy](philosophy.qmd): Introduces the main philosophy behind the OpenProblems project and its goals.
9+
2. [Concepts](concepts.qmd): Covers key concepts, such as the AnnData file format and Viash components.
10+
3. [Requirements](requirements.qmd): Provides a list of required software to start contributing to the OpenProblems project.
11+
4. [Getting Started](getting_started.qmd): A step-by-step guide to set up your environment and start contributing to OpenProblems.

documentation/index.qmd

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,21 @@ order: 1
55

66
Welcome to the OpenProblems documentation!
77

8-
OpenProblems is a library for machine learning scientists, computational biologists, and single-cell data analysts to benchmark and compare single-cell omics methods on a variety of tasks. We believe that improving reproducibility and transparency in research will accelerate progress in single-cell omics.
8+
OpenProblems is a framework for machine learning scientists, computational biologists, and single-cell data analysts to benchmark and compare single-cell omics methods on a variety of tasks. We believe that improving reproducibility and transparency in research will accelerate progress in single-cell omics.
99

10-
This documentation provides an overview of the library and how to contribute to it. It is organized into several sections, including:
10+
This documentation provides an overview of the framework and how to contribute to it. It is organized into several chapters, including:
1111

12-
* [Analyse results](analyze_results/): How to analyze the benchmarking results in Python and R.
13-
* [Contribute](contribute/): How to contribute datasets, methods, or metrics to OpenProblems.
14-
* [Create a new task](create_task/): How to create a new task.
12+
* [Fundamentals](fundamentals/): the main philosophy of the Openproblems project, key concepts, requirements, and a short getting started guide.
13+
* [Create components](create_component/): How to contribute datasets, methods, or metrics to OpenProblems.
14+
* [Create a new task](create_task/): A step-by-step overview of the process of adding a new task
15+
* [Reference](reference/): Reference documentation on the structure of the OpenProblems repositories.
1516
* [More information](more_information/): Additional information such as our code of conduct, frequently asked questions, and troubleshooting tips.
1617

17-
We encourage everyone who uses OpenProblems to contribute to the library in any way they can. This can include submitting a pull request to improve the documentation, answering queries on the issue tracker, investigating bugs, reviewing other developers' pull requests, or simply reporting issues and giving a "thumbs up" to relevant issues.
18+
We encourage everyone who uses OpenProblems to contribute to the framework in any way they can. This can include submitting a pull request to improve the documentation, answering queries on the issue tracker, investigating bugs, reviewing other developers' pull requests, or simply reporting issues and giving a "thumbs up" to relevant issues.
1819

1920
One simple but important way to contribute is to spread the word about the library by referencing it from your blog and articles, linking to it from your website, or starring it on GitHub to show that you use it. This not only helps us gain more visibility but also encourages others to try out the library and contribute to it.
2021

2122
[![](images/stargazers.png){width=500px}](https://github.com/openproblems-bio/openproblems-v2/stargazers)
2223

23-
To get started with contributing to the library, please see the "Contribute" section which provides information on the requirements, getting started, adding datasets, methods, and metrics, and running benchmarks. We also provide a detailed guide on how to create a new task in the "Create a new task" section.
24-
2524
Finally, we want to emphasize that OpenProblems is an inclusive community and we expect all members to adhere to our [code of conduct](more_information/code_of_conduct.qmd). We hope that this documentation helps you get started with OpenProblems and we look forward to your contributions.
2625

0 commit comments

Comments
 (0)