Our workflow is set up to allow everyone to contribute "modules" in their preferred programming language (.. as long as that is either R or Python). A module can either be a dataset, a computational method, or an evaluation metric.
This repository contains some templates and examples of how to implement your module so that it interfaces seamlessly with other modules in the workflow. For example, if you want to implement a new method, you do not need to worry about input data or evaluation metrics as long as you follow the template for reading input and writing output - if you correctly adhere to the input and output guidelines, you should be able to interface with our default data modules and default evaluation metrics modules. The default modules are:
- data: LIBD Visium DLPFC dataset (4 samples, each with 3 replicates)
- methods: BayesSpace and SpaGCN
- evaluation metrics: ARI and V
Module contribution will be managed via GitHub. The steps to contribute a module are:
- Create or claim a GitHub issue from the SpaceHack issue board. that describes the module you want to implement. There are currently 90 issues to claim, but if you come up with a new idea, please create a new issue, add the appropriate tags, and assign the task to yourself.
- Add metadata to our metadata spreadsheet. Please fill in as much as you can as metadata is helpful! If you feel the need, please also add new columns or add additional notes. The metadata should be added to the appropriate tabs:
- Now you are ready to create a new git branch. Try to give your new branch an intuitive prefix such as
data_...
,method_...
ormetric_..
. You can create a new branch in several ways: (i) create a branch directly from the issue board and thengit checkout
that branch, or (ii) via the command line:
# clone the template repository
git clone https://github.com/SpatialHackathon/SpaceHack2023.git
# create and switch to a new branch for your e.g. method "X"
git branch method_x_naveedishaque # try to make the branch name unique!
git checkout method_x_naveedishaque
# link the branch to the issue via the issue board: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue
- Modify the files, filenames, and code in
template/
, referring to the examples in thedata
,method
, ormetric
subfolder. If your method requires a specific type or preprocessing, please reach out to the organisers! - Test. We are currently working on validators and automatic testing scripts... but this is tricky. Reach out to Niklas Muller-Botticher when you are ready to test!
- Create a pull request
- Code review (by whom?) and merge your contributed module into the GitHub main branch!
Easy!
We have adopted the "MIT No Attribution" (MIT-0) License. It is currently attributed to the "SpaceHack organizers", but please also make sure to add your name to your contributions. More on MIT-0 here