Skip to content

Commit 5f6b7b9

Browse files
authored
Merge pull request #1 from openproblems-bio/initial_setup
Initial setup
2 parents 98148ac + a3da64a commit 5f6b7b9

11 files changed

Lines changed: 164 additions & 212 deletions

CHANGELOG.md

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,18 @@
1-
# task_template x.y.z
1+
# task_spatial_trajectory_inference 1.0.0
22

33
## BREAKING CHANGES
44

55
<!-- * Restructured `src` directory (PR #3). -->
66

77
## NEW FUNCTIONALITY
88

9-
* Added `control_methods/true_labels` component (PR #5).
10-
11-
* Added `methods/logistic_regression` component (PR #5).
12-
13-
* Added `metrics/accuracy` component (PR #5).
149

1510
## MAJOR CHANGES
1611

17-
* Updated `api` files (PR #5).
18-
19-
* Updated configs, components and CI to the latest Viash version (PR #8).
20-
21-
* Updated to Viash 0.9.4 (PR #12).
22-
23-
* Use dependencies in `openproblems-bio/openproblems` (PR #12).
12+
* Updated `api` files and set the data processor (PR #1).
2413

2514
## MINOR CHANGES
2615

27-
* Updated `README.md` (PR #5).
28-
29-
* `run_benchmark`: write the commit the workflow ran from and the launch time into
30-
`task_info.yaml`, instead of publishing `_viash.yaml` verbatim (PR #18).
3116

3217
## BUGFIXES
3318

_viash.yaml

Lines changed: 50 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,28 @@
11
viash_version: 0.9.4
22

3-
# Step 1: Change the name of the task.
4-
# example: task_name_of_this_task
5-
name: task_template
3+
name: task_spatial_trajectory_inference
64
organization: openproblems-bio
75
version: dev
86

97
license: MIT
10-
# Step 2: Add keywords to describe the task.
11-
keywords: [single-cell, openproblems, benchmark]
12-
# Step 3: Update the `task_template` to the name of the task from step 1.
8+
keywords: [single-cell, openproblems, benchmark, spatial, trajectory inference]
139
links:
14-
issue_tracker: https://github.com/openproblems-bio/task_template/issues
15-
repository: https://github.com/openproblems-bio/task_template
10+
issue_tracker: https://github.com/openproblems-bio/task_spatial_trajectory_inference/issues
11+
repository: https://github.com/openproblems-bio/task_spatial_trajectory_inference
1612
docker_registry: ghcr.io
1713

1814

19-
# Step 4: Update the label, summary and description.
20-
# A unique, human-readable, short label. Used for creating summary tables and visualisations.
21-
label: Template
22-
summary: A one sentence summary of purpose and methodology. Used for creating an overview tables.
23-
description: |
24-
Provide a clear and concise description of your task, detailing the specific problem it aims
25-
to solve. Outline the input data types, the expected output, and any assumptions or constraints.
26-
Be sure to explain any terminology or concepts that are essential for understanding the task.
15+
label: Spatial Trajectory Inference
16+
summary: Predicting the spatial trajectory of cells in a tissue based on spatial transcriptomics data.
17+
description:
2718

28-
Explain the motivation behind your proposed task. Describe the biological or computational
29-
problem you aim to address and why it's important. Discuss the current state of research in
30-
this area and any gaps or challenges that your task could help address. This section
31-
should convince readers of the significance and relevance of your task.
19+
Spatial transcriptomics preserves each cell's physical position alongside its expression profile, enabling pseudotime prediction using 2D spatial context.
20+
Different methods make different assumptions about resolution, input format, and output, and are further complicated by spatial batch effects not present in dissociated single-cell data.
21+
While dynbenchmark resolved this comparison problem for non-spatial trajectory inference methods, no equivalent standardized benchmark exists for spatial pseudotime prediction, and existing method papers are validated only against each other or qualitative marker trends rather than tissues with independently known trajectories.
22+
23+
This task benchmarks pseudotime prediction methods on 2D tissue datasets with well-characterized ground-truth spatial axes.
24+
Input data consists of AnnData objects containing 2D spatial transcriptomics data with spatial coordinates.
25+
The output is a set of quantitative metric scores comparing each method's predicted pseudotime against ground truth, capturing both trajectory accuracy and preservation of relevant biological information.
3226

3327
# A list of references to relevant literature. Each reference should be a DOI or a bibtex entry
3428
references:
@@ -47,32 +41,51 @@ references:
4741

4842
info:
4943
image: The name of the image file to use for the component on the website.
50-
# Step 5: Replace the task_template to the name of the task.
5144
test_resources:
5245
- type: s3
5346
path: s3://openproblems-data/resources_test/common/
5447
dest: resources_test/common
5548
- type: s3
56-
path: s3://openproblems-data/resources_test/task_template/
57-
dest: resources_test/task_template
49+
path: s3://openproblems-data/resources_test/task_spatial_trajectory_inference/
50+
dest: resources_test/task_spatial_trajectory_inference
5851

59-
# Step 6: Update the authors of the task.
6052
authors:
61-
# Full name of the author, usually in the name of FirstName MiddleName LastName.
62-
- name: John Doe
63-
# Role of the author. Possible values:
64-
#
65-
# * `"author"`: Authors who have made substantial contributions to the component.
66-
# * `"maintainer"`: The maintainer of the component.
67-
# * `"contributor"`: Authors who have made smaller contributions (such as code patches etc.).
53+
- name: Chit Tong Lio
54+
roles: [ "author", "maintainer" ]
55+
info:
56+
github: yollct
57+
orcid: 0000-0003-2297-831X
58+
email: chit-tong.lio@tum.de
59+
- name: Seo Hyon Kim
60+
roles: [ "author", "maintainer" ]
61+
info:
62+
github: seohyonkim
63+
orcid: 0009-0007-3062-4681
64+
email: seohyon.l.kim@gmail.com
65+
- name: Wenjia Zhong
66+
roles: [ "author", "maintainer" ]
67+
info:
68+
github: Wenjia218
69+
orcid: 0009-0009-1594-8009
70+
email: wenjia.zhong@tum.de
71+
- name: Luisa Katharina Bender
72+
roles: [ "author", "maintainer" ]
73+
info:
74+
github: luisabender
75+
orcid: 0009-0001-8753-7307
76+
email: luisa.bender@tum.de
77+
- name: Florian Röckl
78+
roles: [ "author", "maintainer" ]
79+
info:
80+
github: floro5
81+
orcid: 0009-0009-6050-890X
82+
email: florian.roeckl@tum.de
83+
- name: Jonathan Unger
6884
roles: [ "author", "maintainer" ]
69-
# Additional information on the author
7085
info:
71-
github: johndoe
72-
orcid: 0000-0000-0000-0000
73-
email: john@doe.me
74-
twitter: johndoe
75-
linkedin: johndoe
86+
github: Jonique02
87+
orcid: 0009-0009-5022-2975
88+
email: jonathan.unger@tum.de
7689

7790
# Step 7: Remove all of the comments of the steps you completed
7891

src/api/comp_control_method.yaml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ info:
33
type: control_method
44
type_info:
55
label: Control Method
6-
summary: Quality control methods for verifying the pipeline.
6+
summary: Quality control methods for verifying the pipeline of the spatial TI task.
77
description: |
88
This folder contains control components for the task.
99
These components have the same interface as the regular methods
@@ -12,12 +12,8 @@ info:
1212
the task, and also as a quality control for the metrics defined
1313
in the task.
1414
arguments:
15-
- name: --input_train
16-
__merge__: file_train.yaml
17-
required: true
18-
direction: input
19-
- name: --input_test
20-
__merge__: file_test.yaml
15+
- name: --dataset
16+
__merge__: file_dataset.yaml
2117
required: true
2218
direction: input
2319
- name: "--input_solution"
@@ -33,5 +29,5 @@ test_resources:
3329
path: /common/component_tests/run_and_check_output.py
3430
- type: python_script
3531
path: /common/component_tests/check_config.py
36-
- path: /resources_test/task_template/cxg_mouse_pancreas_atlas
37-
dest: resources_test/task_template/cxg_mouse_pancreas_atlas
32+
- path: /resources_test/common/cxg_mouse_pancreas_atlas
33+
dest: resources_test/common/cxg_mouse_pancreas_atlas

src/api/comp_data_processor.yaml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,16 @@ info:
33
type: data_processor
44
type_info:
55
label: Data processor
6-
summary: A data processor.
7-
description: |
6+
summary: A data processor for the spatial TI task.
7+
description: | # better description TODO
88
A component for processing a Common Dataset into a task-specific dataset.
99
arguments:
1010
- name: "--input"
1111
__merge__: file_common_dataset.yaml
1212
direction: input
1313
required: true
14-
- name: "--output_train"
15-
__merge__: file_train.yaml
16-
direction: output
17-
required: true
18-
- name: "--output_test"
19-
__merge__: file_test.yaml
14+
- name: "--output_dataset"
15+
__merge__: file_dataset.yaml
2016
direction: output
2117
required: true
2218
- name: "--output_solution"

src/api/comp_method.yaml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,12 @@ info:
55
label: Method
66
summary: A method.
77
description: |
8-
A method to predict the task effects.
8+
A method for the spatial TI task.
99
arguments:
10-
- name: --input_train
11-
__merge__: file_train.yaml
10+
- name: --input
11+
__merge__: file_dataset.yaml
1212
required: true
1313
direction: input
14-
- name: "--input_test"
15-
__merge__: file_test.yaml
16-
direction: input
17-
required: true
1814
- name: --output
1915
__merge__: file_prediction.yaml
2016
required: true
@@ -24,5 +20,5 @@ test_resources:
2420
path: /common/component_tests/run_and_check_output.py
2521
- type: python_script
2622
path: /common/component_tests/check_config.py
27-
- path: /resources_test/task_template/cxg_mouse_pancreas_atlas
28-
dest: resources_test/task_template/cxg_mouse_pancreas_atlas
23+
- path: /resources_test/common/cxg_mouse_pancreas_atlas
24+
dest: resources_test/common/cxg_mouse_pancreas_atlas

src/api/comp_metric.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ info:
33
type: metric
44
type_info:
55
label: Metric
6-
summary: A task template metric.
6+
summary: A metric for spatial TI task.
77
description: |
8-
A metric for evaluating method predictions.
8+
A metric for evaluating spatial TI method predictions.
99
arguments:
1010
- name: "--input_solution"
1111
__merge__: file_solution.yaml
@@ -24,5 +24,5 @@ test_resources:
2424
path: /common/component_tests/run_and_check_output.py
2525
- type: python_script
2626
path: /common/component_tests/check_config.py
27-
- path: /resources_test/task_template/cxg_mouse_pancreas_atlas
28-
dest: resources_test/task_template/cxg_mouse_pancreas_atlas
27+
- path: /resources_test/common/cxg_mouse_pancreas_atlas
28+
dest: resources_test/common/cxg_mouse_pancreas_atlas
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
#TODO: Change to the required and/or optional fields of the anndata
21
type: file
3-
example: "resources_test/task_template/cxg_mouse_pancreas_atlas/train.h5ad"
4-
label: "Training data"
5-
summary: "The training data in h5ad format"
2+
example: "resources_test/task_spatial_trajectory_inference/cxg_mouse_pancreas_atlas/dataset.h5ad"
3+
label: "Input data"
4+
summary: "The input data for the spatial TI methods"
65
info:
76
format:
87
type: h5ad
9-
layers:
8+
layers:
109
- type: integer
1110
name: counts
1211
description: Raw counts
1312
required: true
1413
- type: double
1514
name: normalized
16-
description: Normalized counts
15+
description: Normalized expression values
1716
required: true
1817
obs:
1918
- type: string
20-
name: label
21-
description: Ground truth cell type labels
19+
name: cell_type
20+
description: Cell type information
2221
required: true
2322
- type: string
2423
name: batch
@@ -34,6 +33,10 @@ info:
3433
description: A ranking of the features by hvg.
3534
required: true
3635
obsm:
36+
- type: double
37+
name: X_spatial
38+
description: Spatial coordinates of each cell/spot.
39+
required: true
3740
- type: double
3841
name: X_pca
3942
description: The resulting PCA embedding.
@@ -46,4 +49,4 @@ info:
4649
- type: string
4750
name: normalization_id
4851
description: "Which normalization was used"
49-
required: true
52+
required: true

src/api/file_solution.yaml

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,32 @@
1-
#TODO: Change to the required and/or optional fields of the anndata
21
type: file
3-
example: "resources_test/task_template/cxg_mouse_pancreas_atlas/solution.h5ad"
2+
example: "resources_test/task_spatial_trajectory_inference/cxg_mouse_pancreas_atlas/solution.h5ad"
43
label: "Solution"
5-
summary: "The solution for the test data"
4+
summary: "The solution (ground truth) for the test data"
65
info:
76
format:
87
type: h5ad
9-
layers:
8+
layers:
109
- type: integer
1110
name: counts
1211
description: Raw counts
1312
required: true
14-
- type: double
15-
name: normalized
16-
description: Normalized counts
17-
required: true
1813
obs:
1914
- type: string
20-
name: label
21-
description: Ground truth cell type labels
15+
name: cell_type
16+
description: Cell type information
2217
required: true
2318
- type: string
2419
name: batch
2520
description: Batch information
2621
required: true
27-
var:
28-
- type: boolean
29-
name: hvg
30-
description: Whether or not the feature is considered to be a 'highly variable gene'
31-
required: true
3222
- type: double
33-
name: hvg_score
34-
description: A ranking of the features by hvg.
23+
name: pseudotime_true
24+
description: Ground truth pseudotime for each cell/spot.
3525
required: true
3626
obsm:
3727
- type: double
38-
name: X_pca
39-
description: The resulting PCA embedding.
28+
name: X_spatial
29+
description: Spatial coordinates of each cell/spot.
4030
required: true
4131
uns:
4232
- type: string
@@ -71,3 +61,7 @@ info:
7161
name: normalization_id
7262
description: "Which normalization was used"
7363
required: true
64+
- type: dataframe
65+
name: marker_genes
66+
description: "Marker genes per biological state, with expected ordering along the trajectory (columns: gene_name, biological_state, expected_order). Used by marker-based metrics when provided."
67+
required: false

0 commit comments

Comments
 (0)