Skip to content

add cyto batch int results #379

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .github/workflows/quarto_netlify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,13 @@ jobs:
dir: '_site'
alias: "${{ env.BRANCH_NAME }}"
message: 'Deploy preview ${{ github.ref }}'

- name: Upload artifact
if: failure()
uses: actions/upload-artifact@v4
id: upload-artifact
with:
name: _site

- name: Comment on PR (success)
uses: thollander/actions-comment-pull-request@v2
Expand All @@ -122,6 +129,8 @@ jobs:
with:
message: |
[![Deploy: failure](https://img.shields.io/badge/Deploy-failure-critical)](${{ steps.deploy_preview.outputs.logs }})

Artifacts are available for download [here](${{ steps.upload-artifact.outputs.artifact_url }})
comment_tag: deploy_status

- name: Comment on PR (actions failure)
Expand All @@ -130,5 +139,6 @@ jobs:
with:
message: |
[![Deploy: failure](https://img.shields.io/badge/Deploy-failure-critical)](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}/jobs/${{github.job}})

Artifacts are available for download [here](${{ steps.upload-artifact.outputs.artifact_url }})
comment_tag: deploy_status

2 changes: 1 addition & 1 deletion _publish.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
- source: project
netlify:
- id: 397b6416-708f-4133-afe9-9a07ed2e03bf
url: 'https://openproblems.bio'
url: 'https://openproblems.netlify.app'
12 changes: 12 additions & 0 deletions results/cyto_batch_integration/data/dataset_info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[
{
"dataset_id": "leomazzi_cyto_spleen",
"dataset_name": "Leomazzi Spleen Cytometry",
"dataset_summary": "Flow cytometry data of spleens of 8 mice. For each mouse, aliquotes of the same original sample were divided into 2 batches and measured with 2 different instrument settings to allow the creation of sample-paired replicates for benchmarking purposes.",
"dataset_description": "Flow cytometry data of spleens from 4 WT (IKK2 fl/fl CD11c-cre +/+) and 4 KO (IKK2 fl/fl CD11c-cre Tg/+) B6 mice, measured with a 22-color panel and 2 different instrument settings. Data has been preprocessed (compensated with a batch-specific compensation matrix, logicle transformed, cleaned with PeacoQC and pregated on live single CD45+ cells).",
"data_reference": null,
"data_url": "https://saeyslab.sites.vib.be/en",
"date_created": "23-05-2025",
"file_size": 489781536
}
]
194 changes: 194 additions & 0 deletions results/cyto_batch_integration/data/method_info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
[
{
"task_id": "control_methods",
"method_id": "shuffle_integration",
"method_name": "Shuffle integration",
"method_summary": "Integrations are randomly permuted",
"method_description": "Integrations are randomly permuted",
"is_baseline": true,
"references_doi": null,
"references_bibtex": null,
"code_url": "https://github.com/openproblems-bio/task_cyto_batch_integration",
"documentation_url": null,
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/control_methods/shuffle_integration:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/control_methods/shuffle_integration",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "control_methods",
"method_id": "shuffle_integration_by_batch",
"method_name": "Shuffle integration by batch",
"method_summary": "Integrations are randomly permuted within each batch",
"method_description": "Integrations are randomly permuted within each batch",
"is_baseline": true,
"references_doi": null,
"references_bibtex": null,
"code_url": "https://github.com/openproblems-bio/task_cyto_batch_integration",
"documentation_url": null,
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/control_methods/shuffle_integration_by_batch:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/control_methods/shuffle_integration_by_batch",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "control_methods",
"method_id": "shuffle_integration_by_cell_type",
"method_name": "Shuffle integration by cell type",
"method_summary": "Integrations are randomly permuted within each cell type",
"method_description": "Integrations are randomly permuted within each cell type",
"is_baseline": true,
"references_doi": null,
"references_bibtex": null,
"code_url": "https://github.com/openproblems-bio/task_cyto_batch_integration",
"documentation_url": null,
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/control_methods/shuffle_integration_by_cell_type:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/control_methods/shuffle_integration_by_cell_type",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "methods",
"method_id": "harmonypy",
"method_name": "Harmonypy",
"method_summary": "Harmonypy is a port of the harmony R package",
"method_description": "Harmony is a general-purpose R package with an efficient algorithm for integrating multiple data sets. \nIt is especially useful for large single-cell datasets such as single-cell RNA-seq.\n",
"is_baseline": false,
"references_doi": "10.1038/s41592-019-0619-0",
"references_bibtex": null,
"code_url": "https://github.com/slowkow/harmonypy",
"documentation_url": "https://portals.broadinstitute.org/harmony",
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/methods/harmonypy:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/methods/harmonypy",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "methods",
"method_id": "limma_remove_batch_effect",
"method_name": "Limma removeBatchEffect",
"method_summary": "Uses a linear model and matrix decomposition to remove batch effects from a dataset",
"method_description": "Limma removeBatchEffect is a method that uses a linear model and matrix\ndecomposition to remove batch effects from a dataset. It first fits a linear\nmodel to the data, then decomposes the model matrix into a set of orthogonal\ncomponents. The batch effect is then removed by subtracting the component\ncorresponding to the batch effect from the data.\n",
"is_baseline": false,
"references_doi": "10.1093/nar/gkv007",
"references_bibtex": null,
"code_url": "https://github.com/bioc/limma",
"documentation_url": "https://bioinf.wehi.edu.au/limma",
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/methods/limma_remove_batch_effect:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/methods/limma_remove_batch_effect",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "control_methods",
"method_id": "no_integration",
"method_name": "No Integration",
"method_summary": "Control method returning the unintegrated data without performing batch correction.",
"method_description": "The component works by reading and writing back the 'unintegrated' data without performing any operation. \n",
"is_baseline": true,
"references_doi": null,
"references_bibtex": null,
"code_url": "https://github.com/openproblems-bio/task_cyto_batch_integration",
"documentation_url": null,
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/control_methods/no_integration:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/control_methods/no_integration",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "control_methods",
"method_id": "perfect_integration_horizontal",
"method_name": "Perfect Integration Horizontal",
"method_summary": "Positive control method for horizontal metrics which reprsents perfect batch integration.",
"method_description": "The method actually just return the validation data but just changing the batch\nand sample ID to those that are in the unintegrated_censored.\nBecause the marker expression is the exactly same as the validation data, there won't\nbe any batch effect present when computing horizontal metrics.\nBatch effect will be present when computing vertical metrics as the validation data\ncontain samples from different batches, unintegrated.\n",
"is_baseline": true,
"references_doi": null,
"references_bibtex": null,
"code_url": "https://github.com/openproblems-bio/task_cyto_batch_integration",
"documentation_url": null,
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/control_methods/perfect_integration_horizontal:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/control_methods/perfect_integration_horizontal",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "control_methods",
"method_id": "perfect_integration_vertical",
"method_name": "Perfect Integration Vertical",
"method_summary": "Positive control method for vertical metrics reflecting a scenario in which all samples belong to the same batch",
"method_description": "This control method return all samples from batch 1. \nBecause the samples all came from one batch, we do not expect to see any technical\nvariation caused by batch effects, but we still expect a sample-level effect due to the \nunderlying differences in biology of the samples.\nThe vertical metrics should return a good score.\nHowever, poor scores are expected for horizontal metrics because some samples (those\nfrom unintegrated data) will be compared against the validation data, which still \ncontains variation due to batch effect.\n",
"is_baseline": true,
"references_doi": null,
"references_bibtex": null,
"code_url": "https://github.com/openproblems-bio/task_cyto_batch_integration",
"documentation_url": null,
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/control_methods/perfect_integration_vertical:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/control_methods/perfect_integration_vertical",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "methods",
"method_id": "combat",
"method_name": "Combat",
"method_summary": "ComBat batch correction for single-cell data, implemented in the scanpy package",
"method_description": "Corrects for batch effects by fitting linear models, gains statistical power via an EB framework where information is borrowed across genes. \nThis uses the implementation combat.py\n",
"is_baseline": false,
"references_doi": "10.1093/biostatistics/kxj037",
"references_bibtex": null,
"code_url": "https://github.com/brentp/combat.py",
"documentation_url": "https://scanpy.readthedocs.io/en/latest/api/generated/scanpy.pp.combat.html",
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/methods/combat:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/methods/combat",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "methods",
"method_id": "cycombine_nocontrols",
"method_name": "cyCombine (no-controls)",
"method_summary": "cyCombine perform batch correction by using self-organizing maps and ComBat.",
"method_description": "cyCombine perform batch integration by first using self-organizing maps (SOM) to \ngroup similar cells, then applies a ComBat-based method to correct batch effects within \neach group of similar cells. \n\nHere, we run cyCombine without control samples (replicates in cyCombine terminology).\n",
"is_baseline": false,
"references_doi": "10.1038/s41467-022-29383-5",
"references_bibtex": null,
"code_url": "https://github.com/biosurf/cyCombine",
"documentation_url": "https://biosurf.org/cyCombine.html",
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/methods/cycombine_nocontrols:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/methods/cycombine_nocontrols",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "methods",
"method_id": "gaussnorm",
"method_name": "GaussNorm",
"method_summary": "Batch effect correction using a per‐channel basis normalization method (gaussNorm)",
"method_description": "This method batch-normalizes a set of cytometry data samples by identifying and aligning the high density regions (landmarks or peaks) for each channel.\nThe data of each channel is shifted in such a way that the identified high density regions are moved to fixed locations called base landmarks.\nNormalization is achieved in three phases:\n1. identifying high-density regions (landmarks) for each flowFrame in the flowSet for a single channel\n2. computing the best matching between the landmarks and a set of fixed reference landmarks for each channel called base landmarks\n3. manipulating the data of each channel in such a way that each landmark is moved to its matching base landmark. Please note that this normalization is on a channel-by-channel basis\n\nNOTE: The default implementation uses `max.lms=2`, although for some channels it is not possible to compute 2 landmarks, resulting in an error.\nIn order to fully automate the batch normalization process, this implementation checks whether it is possible to compute 2 landmarks, and if not, it sets `max.lms=1` for that channel.\n",
"is_baseline": false,
"references_doi": "10.1002/cyto.a.20823",
"references_bibtex": null,
"code_url": "https://github.com/RGLab/flowStats",
"documentation_url": "https://rdrr.io/bioc/flowStats/src/R/gaussNorm.R",
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/methods/gaussnorm:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/methods/gaussnorm",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
},
{
"task_id": "methods",
"method_id": "cytonorm_controls",
"method_name": "CytoNorm with controls",
"method_summary": "CytoNorm Batch normalization algorithm which uses shared controls across batches.",
"method_description": "CytoNorm corrects batch effects by using reference control samples (aliquots of one sample, \ntechnical replicates) included with each batch. \nIt clusters cells, then trains a model on the control samples to learn how marker \nexpression distributions differ across batches for each population.\nIt then uses splines to align these distributions to a common reference (either the mean\nof batches or to a single batch).\nIn this CytoNorm version, batches are aligned to the mean of the batches.\nClustering was performed by FlowSOM, using the default parameters provided by CytoNorm.\n",
"is_baseline": false,
"references_doi": "10.1002/cyto.a.23904",
"references_bibtex": null,
"code_url": "https://github.com/saeyslab/CytoNorm",
"documentation_url": "https://github.com/saeyslab/CytoNorm",
"image": "https://ghcr.io/openproblems-bio/task_cyto_batch_integration/methods/cytonorm_controls:build_main",
"implementation_url": "https://github.com/openproblems-bio/task_cyto_batch_integration/blob/37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f/src/methods/cytonorm_controls",
"code_version": "build_main",
"commit_sha": "37dcf0c34b0aa64c16d7d82bc631ff6684e37c5f"
}
]
Loading
Loading