Build branch openpipeline_spatial/allow-compressed-output-bundles with version allow-compressed-output-bundles to openpipeline_spatial on branch allow-compressed-output-bundles (6504133)
Build pipeline: vsh-ci-build-template-q2kf4
Source commit: 65041334be
Source message: trigger ci
This commit is contained in:
13
_viash.yaml
13
_viash.yaml
@@ -1,27 +1,22 @@
|
||||
viash_version: 0.9.4
|
||||
|
||||
source: src
|
||||
target: target
|
||||
|
||||
name: openpipeline_spatial
|
||||
organization: openpipelines-bio
|
||||
|
||||
organization: vsh
|
||||
links:
|
||||
repository: https://github.com/openpipelines-bio/openpipeline_spatial
|
||||
docker_registry: ghcr.io
|
||||
|
||||
repositories:
|
||||
- name: openpipeline
|
||||
repo: openpipeline
|
||||
type: vsh
|
||||
tag: v3.0.0
|
||||
|
||||
info:
|
||||
test_resources:
|
||||
- type: s3
|
||||
path: s3://openpipelines-bio/openpipeline_spatial/resources_test
|
||||
dest: resources_test
|
||||
|
||||
config_mods: |
|
||||
config_mods: |-
|
||||
.resources += {path: '/src/workflows/utils/labels.config', dest: 'nextflow_labels.config'}
|
||||
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
|
||||
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
|
||||
version: allow-compressed-output-bundles
|
||||
|
||||
@@ -173,27 +173,29 @@ def retrieve_input_data(cells2stats_output_bundle):
|
||||
# │ └── RawCellStats.parquet
|
||||
# └── Panel.json
|
||||
|
||||
required_files = ["Panel.json", "Cytoprofiling/Instrument/RawCellStats.parquet"]
|
||||
required_file_patterns = {
|
||||
"target_panel": "**/Panel.json",
|
||||
"count_matrix": "**/Cytoprofiling/Instrument/RawCellStats.parquet",
|
||||
}
|
||||
|
||||
if zipfile.is_zipfile(cells2stats_output_bundle):
|
||||
cells2stats_output_bundle = extract_selected_files_from_zip(
|
||||
cells2stats_output_bundle, members=required_files
|
||||
cells2stats_output_bundle, members=required_file_patterns.values()
|
||||
)
|
||||
else:
|
||||
cells2stats_output_bundle = Path(cells2stats_output_bundle)
|
||||
|
||||
assert os.path.isdir(cells2stats_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
input_dir = Path(cells2stats_output_bundle)
|
||||
input_data = dict(
|
||||
zip(
|
||||
["target_panel", "count_matrix"],
|
||||
[input_dir / file for file in required_files],
|
||||
)
|
||||
)
|
||||
|
||||
assert all([file.exists() for file in input_data.values()]), (
|
||||
f"Not all required input files are found. Make sure that {par['input']} contains {input_data.values()}."
|
||||
)
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(cells2stats_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, (
|
||||
f"Expected exactly one file matching pattern {pattern}, found {len(file)}."
|
||||
)
|
||||
input_data[key] = file[0]
|
||||
|
||||
return input_data
|
||||
|
||||
|
||||
@@ -56,7 +56,9 @@ def test_compressed_input(run_component, tmp_path):
|
||||
output = tmp_path / "aviti.h5mu"
|
||||
zipped_input = tmp_path / "aviti.zip"
|
||||
|
||||
subprocess.run(["zip", "-r", str(zipped_input), "."], cwd=input, check=True)
|
||||
subprocess.run(
|
||||
["zip", "-r", str(zipped_input), "aviti"], cwd=meta["resources_dir"], check=True
|
||||
)
|
||||
|
||||
# run component
|
||||
run_component(
|
||||
|
||||
@@ -2,8 +2,8 @@ import sys
|
||||
import os
|
||||
import squidpy as sq
|
||||
import mudata as mu
|
||||
import glob
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
## VIASH START
|
||||
par = {
|
||||
@@ -22,44 +22,33 @@ from unzip_archived_folder import extract_selected_files_from_zip
|
||||
logger = setup_logger()
|
||||
|
||||
|
||||
def find_cosmx_files(cosmx_output_bundle, suffix):
|
||||
pattern = os.path.join(cosmx_output_bundle, f"*{suffix}")
|
||||
files = glob.glob(pattern)
|
||||
assert len(files) == 1, (
|
||||
f"Only one file matching pattern {pattern} should be present"
|
||||
)
|
||||
return files[0]
|
||||
|
||||
|
||||
def retrieve_input_data(cosmx_output_bundle):
|
||||
# Expected folder structure (showing only relevant files):
|
||||
# ├── *_exprMat_file.csv
|
||||
# ├── *_fov_positions_file.csv
|
||||
# └── *_metadata_file.csv
|
||||
|
||||
expected_file_patterns = [
|
||||
"exprMat_file.csv",
|
||||
"fov_positions_file.csv",
|
||||
"metadata_file.csv",
|
||||
]
|
||||
required_file_patterns = {
|
||||
"counts_file": "**/*exprMat_file.csv",
|
||||
"fov_file": "**/*fov_positions_file.csv",
|
||||
"meta_file": "**/*metadata_file.csv",
|
||||
}
|
||||
if zipfile.is_zipfile(cosmx_output_bundle):
|
||||
cosmx_output_bundle = extract_selected_files_from_zip(
|
||||
cosmx_output_bundle, members=["*" + file for file in expected_file_patterns]
|
||||
cosmx_output_bundle, members=required_file_patterns.values()
|
||||
)
|
||||
else:
|
||||
cosmx_output_bundle = Path(cosmx_output_bundle)
|
||||
|
||||
assert os.path.isdir(cosmx_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
|
||||
input_data = dict(
|
||||
zip(
|
||||
["counts_file", "fov_file", "meta_file"],
|
||||
[
|
||||
find_cosmx_files(cosmx_output_bundle, glob_pattern)
|
||||
for glob_pattern in expected_file_patterns
|
||||
],
|
||||
)
|
||||
)
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(cosmx_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, f"Expected one file for {key}, found {len(file)}."
|
||||
input_data[key] = file[0]
|
||||
|
||||
return input_data
|
||||
|
||||
|
||||
@@ -56,10 +56,13 @@ def test_simple_execution(run_component, tmp_path):
|
||||
|
||||
def test_compressed_input(run_component, tmp_path):
|
||||
output = tmp_path / "cosmx_tiny.h5mu"
|
||||
zipped_input = tmp_path / "xenium_tiny.zip"
|
||||
input = meta["resources_dir"] + "/Lung5_Rep2_tiny"
|
||||
zipped_input = tmp_path / "Lung5_Rep2_tiny.zip"
|
||||
|
||||
subprocess.run(["zip", "-r", str(zipped_input), "."], cwd=input, check=True)
|
||||
subprocess.run(
|
||||
["zip", "-r", str(zipped_input), "Lung5_Rep2_tiny"],
|
||||
cwd=meta["resources_dir"],
|
||||
check=True,
|
||||
)
|
||||
|
||||
run_component(
|
||||
[
|
||||
|
||||
@@ -18,25 +18,32 @@ meta <- list(
|
||||
|
||||
source(paste0(meta$resources_dir, "/unzip_archived_folder.R"))
|
||||
|
||||
cat("Reading input data...")
|
||||
if (tools::file_ext(par$input) == "zip") {
|
||||
expected_file_patterns <- c(
|
||||
"*.csv",
|
||||
"*.parquet"
|
||||
)
|
||||
tmp_dir <- extract_selected_files(
|
||||
par$input,
|
||||
members = expected_file_patterns
|
||||
)
|
||||
cosmx_output_bundle <- file.path(
|
||||
tmp_dir,
|
||||
tools::file_path_sans_ext(basename(par$input))
|
||||
)
|
||||
} else {
|
||||
cosmx_output_bundle <- par$input
|
||||
}
|
||||
|
||||
cat("Setting parameters...")
|
||||
if (par$add_polygon_path == FALSE && par$add_tx_path == FALSE) {
|
||||
add_parquet_paths <- FALSE
|
||||
} else {
|
||||
add_parquet_paths <- TRUE
|
||||
}
|
||||
|
||||
cosmx_output_bundle <- par$input
|
||||
if (grepl("\\.zip$", cosmx_output_bundle)) {
|
||||
expected_file_patterns <- c(
|
||||
"*.csv",
|
||||
"*.parquet"
|
||||
)
|
||||
|
||||
cosmx_output_bundle <- extract_selected_files(
|
||||
cosmx_output_bundle,
|
||||
members = expected_file_patterns
|
||||
)
|
||||
}
|
||||
|
||||
cat("Converting to SpatialExperiment...")
|
||||
spe <- readCosmxSXE(
|
||||
dirName = cosmx_output_bundle,
|
||||
returnType = "SPE",
|
||||
@@ -51,4 +58,5 @@ spe <- readCosmxSXE(
|
||||
altExps = par$alternative_experiment_features
|
||||
)
|
||||
|
||||
cat("Saving output...")
|
||||
saveRDS(spe, file = par$output)
|
||||
|
||||
@@ -74,12 +74,14 @@ cat("> Checking execution with compressed input\n")
|
||||
spe <- paste0(meta[["resources_dir"]], "/Lung5_Rep2_tiny")
|
||||
out_rds <- "output.rds"
|
||||
|
||||
create_folder_archive <- function(folder_path, archive = "temp_dir.zip") {
|
||||
create_folder_archive <- function(
|
||||
folder_path,
|
||||
archive = "Lung5_Rep2_tiny.zip") {
|
||||
old_wd <- getwd()
|
||||
on.exit(setwd(old_wd))
|
||||
setwd(folder_path)
|
||||
system2("zip", c("-r", archive, "."))
|
||||
paste0(folder_path, "/", archive)
|
||||
setwd(meta$resources_dir)
|
||||
system2("zip", c("-r", archive, "Lung5_Rep2_tiny"))
|
||||
paste0(meta$resources_dir, "/", archive)
|
||||
}
|
||||
|
||||
zipped_spe <- create_folder_archive(spe)
|
||||
|
||||
@@ -33,33 +33,33 @@ def _retrieve_input_data(xenium_output_bundle):
|
||||
# ├── experiment.xenium
|
||||
# └── metrics_summary.csv
|
||||
|
||||
required_files = [
|
||||
"cell_feature_matrix.h5",
|
||||
"cells.parquet",
|
||||
"experiment.xenium",
|
||||
"metrics_summary.csv",
|
||||
]
|
||||
required_file_patterns = {
|
||||
"count_matrix": "**/cell_feature_matrix.h5",
|
||||
"cells_metadata": "**/cells.parquet",
|
||||
"experiment": "**/experiment.xenium",
|
||||
"metrics_summary": "**/metrics_summary.csv",
|
||||
}
|
||||
|
||||
if zipfile.is_zipfile(xenium_output_bundle):
|
||||
xenium_output_bundle = extract_selected_files_from_zip(
|
||||
xenium_output_bundle, members=required_files
|
||||
xenium_output_bundle,
|
||||
members=[pattern for pattern in required_file_patterns.values()],
|
||||
)
|
||||
else:
|
||||
xenium_output_bundle = Path(xenium_output_bundle)
|
||||
|
||||
assert os.path.isdir(xenium_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
input_dir = Path(xenium_output_bundle)
|
||||
|
||||
input_data = dict(
|
||||
zip(
|
||||
["count_matrix", "cells_metadata", "experiment", "metrics_summary"],
|
||||
[input_dir / file for file in required_files],
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(xenium_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, (
|
||||
f"Expected exactly one file matching pattern {pattern}, found {len(file)}."
|
||||
)
|
||||
)
|
||||
input_data[key] = file[0]
|
||||
|
||||
assert all([file.exists() for file in input_data.values()]), (
|
||||
f"Not all required input files are found. Make sure that {par['input']} contains {input_data.values()}."
|
||||
)
|
||||
return input_data
|
||||
|
||||
|
||||
|
||||
@@ -67,7 +67,11 @@ def test_compressed_input(run_component, tmp_path):
|
||||
output = tmp_path / "xenium.h5mu"
|
||||
zipped_input = tmp_path / "xenium_tiny.zip"
|
||||
|
||||
subprocess.run(["zip", "-r", str(zipped_input), "."], cwd=input, check=True)
|
||||
subprocess.run(
|
||||
["zip", "-r", str(zipped_input), "xenium_tiny"],
|
||||
cwd=meta["resources_dir"],
|
||||
check=True,
|
||||
)
|
||||
|
||||
# run component
|
||||
run_component(
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import sys
|
||||
from spatialdata_io import xenium
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
## VIASH START
|
||||
par = {
|
||||
"input": "./resources_test/xenium_tiny",
|
||||
"input": "xenium_tiny.zip",
|
||||
"output": "./test/xenium_tiny.zarr",
|
||||
"cells_boundaries": True,
|
||||
"nucleus_boundaries": True,
|
||||
@@ -30,9 +31,20 @@ logger = setup_logger()
|
||||
logger.info("Reading in Xenium data...")
|
||||
|
||||
if zipfile.is_zipfile(par["input"]):
|
||||
required_file_patterns = [
|
||||
"**/experiment.xenium",
|
||||
"**/nucleus_boundaries.parquet",
|
||||
"**/cell_boundaries.parquet",
|
||||
"**/transcripts.parquet",
|
||||
"**/cell_feature_matrix.h5",
|
||||
"**/cells.parquet",
|
||||
"**/morphology_mip.ome.tif",
|
||||
"**/morphology_focus.ome.tif",
|
||||
]
|
||||
xenium_output_bundle = unzip_archived_folder(par["input"])
|
||||
else:
|
||||
xenium_output_bundle = par["input"]
|
||||
xenium_output_bundle = Path(par["input"])
|
||||
|
||||
sdata = xenium(
|
||||
xenium_output_bundle,
|
||||
cells_boundaries=par["cells_boundaries"],
|
||||
|
||||
@@ -34,10 +34,13 @@ def test_simple_execution(run_component, tmp_path):
|
||||
|
||||
def test_compressed_input(run_component, tmp_path):
|
||||
output_sd_path = tmp_path / "sd"
|
||||
input = meta["resources_dir"] + "/xenium_tiny"
|
||||
zipped_input = tmp_path / "xenium_tiny.zip"
|
||||
|
||||
subprocess.run(["zip", "-r", str(zipped_input), "."], cwd=input, check=True)
|
||||
subprocess.run(
|
||||
["zip", "-r", str(zipped_input), "xenium_tiny"],
|
||||
cwd=meta["resources_dir"],
|
||||
check=True,
|
||||
)
|
||||
run_component(
|
||||
[
|
||||
"--input",
|
||||
|
||||
@@ -2,7 +2,7 @@ library(SpatialExperimentIO)
|
||||
|
||||
### VIASH START
|
||||
par <- list(
|
||||
input = "resources_test/xenium/xenium_tiny",
|
||||
input = "resources_test/xenium/temp_dir.zip",
|
||||
add_experiment_xenium = TRUE,
|
||||
add_parquet_paths = TRUE,
|
||||
alternative_experiment_features = c(
|
||||
@@ -18,20 +18,26 @@ meta <- list(
|
||||
|
||||
source(paste0(meta$resources_dir, "/unzip_archived_folder.R"))
|
||||
|
||||
xenium_output_bundle <- par$input
|
||||
if (grepl("\\.zip$", xenium_output_bundle)) {
|
||||
expected_file_patterns <- c(
|
||||
"cell_feature_matrix.h5",
|
||||
"*.parquet",
|
||||
"experiment.xenium"
|
||||
cat("Reading input data...")
|
||||
if (tools::file_ext(par$input) == "zip") {
|
||||
required_file_patterns <- c(
|
||||
"**/cell_feature_matrix.h5",
|
||||
"**/*.parquet",
|
||||
"**/experiment.xenium"
|
||||
)
|
||||
|
||||
xenium_output_bundle <- extract_selected_files(
|
||||
xenium_output_bundle,
|
||||
members = expected_file_patterns
|
||||
tmp_dir <- extract_selected_files(
|
||||
par$input,
|
||||
members = required_file_patterns
|
||||
)
|
||||
xenium_output_bundle <- file.path(
|
||||
tmp_dir,
|
||||
tools::file_path_sans_ext(basename(par$input))
|
||||
)
|
||||
} else {
|
||||
xenium_output_bundle <- par$input
|
||||
}
|
||||
|
||||
cat("Converting to SpatialExperiment")
|
||||
spe <- readXeniumSXE(
|
||||
dirName = xenium_output_bundle,
|
||||
returnType = "SPE",
|
||||
@@ -43,4 +49,5 @@ spe <- readXeniumSXE(
|
||||
altExps = par$alternative_experiment_features
|
||||
)
|
||||
|
||||
cat("Saving output...")
|
||||
saveRDS(spe, file = par$output)
|
||||
|
||||
@@ -71,7 +71,6 @@ dim_input <- dim(input)
|
||||
expect_equal(dim_rds, dim_input)
|
||||
|
||||
|
||||
|
||||
cat("> Checking execution with compressed input\n")
|
||||
|
||||
spe <- paste0(
|
||||
@@ -80,12 +79,12 @@ spe <- paste0(
|
||||
)
|
||||
out_rds <- "output.rds"
|
||||
|
||||
create_folder_archive <- function(folder_path, archive = "temp_dir.zip") {
|
||||
create_folder_archive <- function(folder_path, archive = "xenium_tiny.zip") {
|
||||
old_wd <- getwd()
|
||||
on.exit(setwd(old_wd))
|
||||
setwd(folder_path)
|
||||
system2("zip", c("-r", archive, "."))
|
||||
paste0(folder_path, "/", archive)
|
||||
setwd(meta$resources_dir)
|
||||
system2("zip", c("-r", archive, "xenium_tiny"))
|
||||
paste0(meta$resources_dir, "/", archive)
|
||||
}
|
||||
|
||||
zipped_spe <- create_folder_archive(spe)
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -296,7 +296,7 @@ build_info:
|
||||
output: "target/executable/convert/from_cells2stats_to_h5mu"
|
||||
executable: "target/executable/convert/from_cells2stats_to_h5mu/from_cells2stats_to_h5mu"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_cells2stats_to_h5mu"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:08Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:11Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
@@ -1433,27 +1433,29 @@ def retrieve_input_data(cells2stats_output_bundle):
|
||||
# │ └── RawCellStats.parquet
|
||||
# └── Panel.json
|
||||
|
||||
required_files = ["Panel.json", "Cytoprofiling/Instrument/RawCellStats.parquet"]
|
||||
required_file_patterns = {
|
||||
"target_panel": "**/Panel.json",
|
||||
"count_matrix": "**/Cytoprofiling/Instrument/RawCellStats.parquet",
|
||||
}
|
||||
|
||||
if zipfile.is_zipfile(cells2stats_output_bundle):
|
||||
cells2stats_output_bundle = extract_selected_files_from_zip(
|
||||
cells2stats_output_bundle, members=required_files
|
||||
cells2stats_output_bundle, members=required_file_patterns.values()
|
||||
)
|
||||
else:
|
||||
cells2stats_output_bundle = Path(cells2stats_output_bundle)
|
||||
|
||||
assert os.path.isdir(cells2stats_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
input_dir = Path(cells2stats_output_bundle)
|
||||
input_data = dict(
|
||||
zip(
|
||||
["target_panel", "count_matrix"],
|
||||
[input_dir / file for file in required_files],
|
||||
)
|
||||
)
|
||||
|
||||
assert all([file.exists() for file in input_data.values()]), (
|
||||
f"Not all required input files are found. Make sure that {par['input']} contains {input_data.values()}."
|
||||
)
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(cells2stats_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, (
|
||||
f"Expected exactly one file matching pattern {pattern}, found {len(file)}."
|
||||
)
|
||||
input_data[key] = file[0]
|
||||
|
||||
return input_data
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -231,7 +231,7 @@ build_info:
|
||||
output: "target/executable/convert/from_cosmx_to_h5mu"
|
||||
executable: "target/executable/convert/from_cosmx_to_h5mu/from_cosmx_to_h5mu"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -459,9 +459,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen, Weiwei Schultz"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_cosmx_to_h5mu"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:09Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:11Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
@@ -1113,8 +1113,8 @@ import sys
|
||||
import os
|
||||
import squidpy as sq
|
||||
import mudata as mu
|
||||
import glob
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
## VIASH START
|
||||
# The following code has been auto-generated by Viash.
|
||||
@@ -1157,44 +1157,33 @@ from unzip_archived_folder import extract_selected_files_from_zip
|
||||
logger = setup_logger()
|
||||
|
||||
|
||||
def find_cosmx_files(cosmx_output_bundle, suffix):
|
||||
pattern = os.path.join(cosmx_output_bundle, f"*{suffix}")
|
||||
files = glob.glob(pattern)
|
||||
assert len(files) == 1, (
|
||||
f"Only one file matching pattern {pattern} should be present"
|
||||
)
|
||||
return files[0]
|
||||
|
||||
|
||||
def retrieve_input_data(cosmx_output_bundle):
|
||||
# Expected folder structure (showing only relevant files):
|
||||
# ├── *_exprMat_file.csv
|
||||
# ├── *_fov_positions_file.csv
|
||||
# └── *_metadata_file.csv
|
||||
|
||||
expected_file_patterns = [
|
||||
"exprMat_file.csv",
|
||||
"fov_positions_file.csv",
|
||||
"metadata_file.csv",
|
||||
]
|
||||
required_file_patterns = {
|
||||
"counts_file": "**/*exprMat_file.csv",
|
||||
"fov_file": "**/*fov_positions_file.csv",
|
||||
"meta_file": "**/*metadata_file.csv",
|
||||
}
|
||||
if zipfile.is_zipfile(cosmx_output_bundle):
|
||||
cosmx_output_bundle = extract_selected_files_from_zip(
|
||||
cosmx_output_bundle, members=["*" + file for file in expected_file_patterns]
|
||||
cosmx_output_bundle, members=required_file_patterns.values()
|
||||
)
|
||||
else:
|
||||
cosmx_output_bundle = Path(cosmx_output_bundle)
|
||||
|
||||
assert os.path.isdir(cosmx_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
|
||||
input_data = dict(
|
||||
zip(
|
||||
["counts_file", "fov_file", "meta_file"],
|
||||
[
|
||||
find_cosmx_files(cosmx_output_bundle, glob_pattern)
|
||||
for glob_pattern in expected_file_patterns
|
||||
],
|
||||
)
|
||||
)
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(cosmx_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, f"Expected one file for {key}, found {len(file)}."
|
||||
input_data[key] = file[0]
|
||||
|
||||
return input_data
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -234,7 +234,7 @@ build_info:
|
||||
output: "target/executable/convert/from_cosmx_to_spatialexperiment"
|
||||
executable: "target/executable/convert/from_cosmx_to_spatialexperiment/from_cosmx_to_spatialexperiment"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -457,9 +457,9 @@ RUN Rscript -e 'options(warn = 2); if (!requireNamespace("BiocManager", quietly
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_cosmx_to_spatialexperiment"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:08Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:10Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
@@ -1223,25 +1223,32 @@ rm(.viash_orig_warn)
|
||||
|
||||
source(paste0(meta\$resources_dir, "/unzip_archived_folder.R"))
|
||||
|
||||
cat("Reading input data...")
|
||||
if (tools::file_ext(par\$input) == "zip") {
|
||||
expected_file_patterns <- c(
|
||||
"*.csv",
|
||||
"*.parquet"
|
||||
)
|
||||
tmp_dir <- extract_selected_files(
|
||||
par\$input,
|
||||
members = expected_file_patterns
|
||||
)
|
||||
cosmx_output_bundle <- file.path(
|
||||
tmp_dir,
|
||||
tools::file_path_sans_ext(basename(par\$input))
|
||||
)
|
||||
} else {
|
||||
cosmx_output_bundle <- par\$input
|
||||
}
|
||||
|
||||
cat("Setting parameters...")
|
||||
if (par\$add_polygon_path == FALSE && par\$add_tx_path == FALSE) {
|
||||
add_parquet_paths <- FALSE
|
||||
} else {
|
||||
add_parquet_paths <- TRUE
|
||||
}
|
||||
|
||||
cosmx_output_bundle <- par\$input
|
||||
if (grepl("\\\\.zip\$", cosmx_output_bundle)) {
|
||||
expected_file_patterns <- c(
|
||||
"*.csv",
|
||||
"*.parquet"
|
||||
)
|
||||
|
||||
cosmx_output_bundle <- extract_selected_files(
|
||||
cosmx_output_bundle,
|
||||
members = expected_file_patterns
|
||||
)
|
||||
}
|
||||
|
||||
cat("Converting to SpatialExperiment...")
|
||||
spe <- readCosmxSXE(
|
||||
dirName = cosmx_output_bundle,
|
||||
returnType = "SPE",
|
||||
@@ -1256,6 +1263,7 @@ spe <- readCosmxSXE(
|
||||
altExps = par\$alternative_experiment_features
|
||||
)
|
||||
|
||||
cat("Saving output...")
|
||||
saveRDS(spe, file = par\$output)
|
||||
VIASHMAIN
|
||||
Rscript "\$tempscript" &
|
||||
|
||||
@@ -224,7 +224,7 @@ build_info:
|
||||
output: "target/executable/convert/from_h5mu_to_spatialexperiment"
|
||||
executable: "target/executable/convert/from_h5mu_to_spatialexperiment/from_h5mu_to_spatialexperiment"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -458,9 +458,9 @@ RUN Rscript -e 'options(warn = 2); if (!requireNamespace("remotes", quietly = TR
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_h5mu_to_spatialexperiment"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:08Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:11Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -220,7 +220,7 @@ build_info:
|
||||
output: "target/executable/convert/from_spatialdata_to_h5mu"
|
||||
executable: "target/executable/convert/from_spatialdata_to_h5mu/from_spatialdata_to_h5mu"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -459,9 +459,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen, Weiwei Schultz"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_spatialdata_to_h5mu"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:08Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:11Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -239,7 +239,7 @@ build_info:
|
||||
output: "target/executable/convert/from_xenium_to_h5mu"
|
||||
executable: "target/executable/convert/from_xenium_to_h5mu/from_xenium_to_h5mu"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_xenium_to_h5mu"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:08Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:10Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
@@ -1208,33 +1208,33 @@ def _retrieve_input_data(xenium_output_bundle):
|
||||
# ├── experiment.xenium
|
||||
# └── metrics_summary.csv
|
||||
|
||||
required_files = [
|
||||
"cell_feature_matrix.h5",
|
||||
"cells.parquet",
|
||||
"experiment.xenium",
|
||||
"metrics_summary.csv",
|
||||
]
|
||||
required_file_patterns = {
|
||||
"count_matrix": "**/cell_feature_matrix.h5",
|
||||
"cells_metadata": "**/cells.parquet",
|
||||
"experiment": "**/experiment.xenium",
|
||||
"metrics_summary": "**/metrics_summary.csv",
|
||||
}
|
||||
|
||||
if zipfile.is_zipfile(xenium_output_bundle):
|
||||
xenium_output_bundle = extract_selected_files_from_zip(
|
||||
xenium_output_bundle, members=required_files
|
||||
xenium_output_bundle,
|
||||
members=[pattern for pattern in required_file_patterns.values()],
|
||||
)
|
||||
else:
|
||||
xenium_output_bundle = Path(xenium_output_bundle)
|
||||
|
||||
assert os.path.isdir(xenium_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
input_dir = Path(xenium_output_bundle)
|
||||
|
||||
input_data = dict(
|
||||
zip(
|
||||
["count_matrix", "cells_metadata", "experiment", "metrics_summary"],
|
||||
[input_dir / file for file in required_files],
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(xenium_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, (
|
||||
f"Expected exactly one file matching pattern {pattern}, found {len(file)}."
|
||||
)
|
||||
)
|
||||
input_data[key] = file[0]
|
||||
|
||||
assert all([file.exists() for file in input_data.values()]), (
|
||||
f"Not all required input files are found. Make sure that {par['input']} contains {input_data.values()}."
|
||||
)
|
||||
return input_data
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -320,7 +320,7 @@ build_info:
|
||||
output: "target/executable/convert/from_xenium_to_spatialdata"
|
||||
executable: "target/executable/convert/from_xenium_to_spatialdata/from_xenium_to_spatialdata"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen, Weiwei Schultz"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_xenium_to_spatialdata"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:08Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:11Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
@@ -1341,6 +1341,7 @@ cat > "\$tempscript" << 'VIASHMAIN'
|
||||
import sys
|
||||
from spatialdata_io import xenium
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
## VIASH START
|
||||
# The following code has been auto-generated by Viash.
|
||||
@@ -1394,9 +1395,20 @@ logger = setup_logger()
|
||||
logger.info("Reading in Xenium data...")
|
||||
|
||||
if zipfile.is_zipfile(par["input"]):
|
||||
required_file_patterns = [
|
||||
"**/experiment.xenium",
|
||||
"**/nucleus_boundaries.parquet",
|
||||
"**/cell_boundaries.parquet",
|
||||
"**/transcripts.parquet",
|
||||
"**/cell_feature_matrix.h5",
|
||||
"**/cells.parquet",
|
||||
"**/morphology_mip.ome.tif",
|
||||
"**/morphology_focus.ome.tif",
|
||||
]
|
||||
xenium_output_bundle = unzip_archived_folder(par["input"])
|
||||
else:
|
||||
xenium_output_bundle = par["input"]
|
||||
xenium_output_bundle = Path(par["input"])
|
||||
|
||||
sdata = xenium(
|
||||
xenium_output_bundle,
|
||||
cells_boundaries=par["cells_boundaries"],
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -224,7 +224,7 @@ build_info:
|
||||
output: "target/executable/convert/from_xenium_to_spatialexperiment"
|
||||
executable: "target/executable/convert/from_xenium_to_spatialexperiment/from_xenium_to_spatialexperiment"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -457,9 +457,9 @@ RUN Rscript -e 'options(warn = 2); if (!requireNamespace("BiocManager", quietly
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component convert from_xenium_to_spatialexperiment"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:07Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:10Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
@@ -1197,20 +1197,26 @@ rm(.viash_orig_warn)
|
||||
|
||||
source(paste0(meta\$resources_dir, "/unzip_archived_folder.R"))
|
||||
|
||||
xenium_output_bundle <- par\$input
|
||||
if (grepl("\\\\.zip\$", xenium_output_bundle)) {
|
||||
expected_file_patterns <- c(
|
||||
"cell_feature_matrix.h5",
|
||||
"*.parquet",
|
||||
"experiment.xenium"
|
||||
cat("Reading input data...")
|
||||
if (tools::file_ext(par\$input) == "zip") {
|
||||
required_file_patterns <- c(
|
||||
"**/cell_feature_matrix.h5",
|
||||
"**/*.parquet",
|
||||
"**/experiment.xenium"
|
||||
)
|
||||
|
||||
xenium_output_bundle <- extract_selected_files(
|
||||
xenium_output_bundle,
|
||||
members = expected_file_patterns
|
||||
tmp_dir <- extract_selected_files(
|
||||
par\$input,
|
||||
members = required_file_patterns
|
||||
)
|
||||
xenium_output_bundle <- file.path(
|
||||
tmp_dir,
|
||||
tools::file_path_sans_ext(basename(par\$input))
|
||||
)
|
||||
} else {
|
||||
xenium_output_bundle <- par\$input
|
||||
}
|
||||
|
||||
cat("Converting to SpatialExperiment")
|
||||
spe <- readXeniumSXE(
|
||||
dirName = xenium_output_bundle,
|
||||
returnType = "SPE",
|
||||
@@ -1222,6 +1228,7 @@ spe <- readXeniumSXE(
|
||||
altExps = par\$alternative_experiment_features
|
||||
)
|
||||
|
||||
cat("Saving output...")
|
||||
saveRDS(spe, file = par\$output)
|
||||
VIASHMAIN
|
||||
Rscript "\$tempscript" &
|
||||
|
||||
@@ -227,7 +227,7 @@ build_info:
|
||||
output: "target/executable/filter/subset_cosmx"
|
||||
executable: "target/executable/filter/subset_cosmx/subset_cosmx"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dorien Roosen, Weiwei Schultz"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component filter subset_cosmx"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:07Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:10Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -426,7 +426,7 @@ build_info:
|
||||
output: "target/executable/mapping/spaceranger_count"
|
||||
executable: "target/executable/mapping/spaceranger_count/spaceranger_count"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -453,9 +453,9 @@ apt upgrade -y && apt install -y procps && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
LABEL org.opencontainers.image.authors="Jakub Majercik"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component mapping spaceranger_count"
|
||||
LABEL org.opencontainers.image.created="2025-08-28T07:09:07Z"
|
||||
LABEL org.opencontainers.image.created="2025-09-03T05:47:10Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
LABEL org.opencontainers.image.revision="56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
LABEL org.opencontainers.image.revision="65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
LABEL org.opencontainers.image.version="allow-compressed-output-bundles"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -296,7 +296,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_cells2stats_to_h5mu"
|
||||
executable: "target/nextflow/convert/from_cells2stats_to_h5mu/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3393,7 +3393,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_cells2stats_to_h5mu",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
@@ -3642,27 +3642,29 @@ def retrieve_input_data(cells2stats_output_bundle):
|
||||
# │ └── RawCellStats.parquet
|
||||
# └── Panel.json
|
||||
|
||||
required_files = ["Panel.json", "Cytoprofiling/Instrument/RawCellStats.parquet"]
|
||||
required_file_patterns = {
|
||||
"target_panel": "**/Panel.json",
|
||||
"count_matrix": "**/Cytoprofiling/Instrument/RawCellStats.parquet",
|
||||
}
|
||||
|
||||
if zipfile.is_zipfile(cells2stats_output_bundle):
|
||||
cells2stats_output_bundle = extract_selected_files_from_zip(
|
||||
cells2stats_output_bundle, members=required_files
|
||||
cells2stats_output_bundle, members=required_file_patterns.values()
|
||||
)
|
||||
else:
|
||||
cells2stats_output_bundle = Path(cells2stats_output_bundle)
|
||||
|
||||
assert os.path.isdir(cells2stats_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
input_dir = Path(cells2stats_output_bundle)
|
||||
input_data = dict(
|
||||
zip(
|
||||
["target_panel", "count_matrix"],
|
||||
[input_dir / file for file in required_files],
|
||||
)
|
||||
)
|
||||
|
||||
assert all([file.exists() for file in input_data.values()]), (
|
||||
f"Not all required input files are found. Make sure that {par['input']} contains {input_data.values()}."
|
||||
)
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(cells2stats_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, (
|
||||
f"Expected exactly one file matching pattern {pattern}, found {len(file)}."
|
||||
)
|
||||
input_data[key] = file[0]
|
||||
|
||||
return input_data
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -231,7 +231,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_cosmx_to_h5mu"
|
||||
executable: "target/nextflow/convert/from_cosmx_to_h5mu/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3342,7 +3342,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_cosmx_to_h5mu",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
@@ -3396,8 +3396,8 @@ import sys
|
||||
import os
|
||||
import squidpy as sq
|
||||
import mudata as mu
|
||||
import glob
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
## VIASH START
|
||||
# The following code has been auto-generated by Viash.
|
||||
@@ -3440,44 +3440,33 @@ from unzip_archived_folder import extract_selected_files_from_zip
|
||||
logger = setup_logger()
|
||||
|
||||
|
||||
def find_cosmx_files(cosmx_output_bundle, suffix):
|
||||
pattern = os.path.join(cosmx_output_bundle, f"*{suffix}")
|
||||
files = glob.glob(pattern)
|
||||
assert len(files) == 1, (
|
||||
f"Only one file matching pattern {pattern} should be present"
|
||||
)
|
||||
return files[0]
|
||||
|
||||
|
||||
def retrieve_input_data(cosmx_output_bundle):
|
||||
# Expected folder structure (showing only relevant files):
|
||||
# ├── *_exprMat_file.csv
|
||||
# ├── *_fov_positions_file.csv
|
||||
# └── *_metadata_file.csv
|
||||
|
||||
expected_file_patterns = [
|
||||
"exprMat_file.csv",
|
||||
"fov_positions_file.csv",
|
||||
"metadata_file.csv",
|
||||
]
|
||||
required_file_patterns = {
|
||||
"counts_file": "**/*exprMat_file.csv",
|
||||
"fov_file": "**/*fov_positions_file.csv",
|
||||
"meta_file": "**/*metadata_file.csv",
|
||||
}
|
||||
if zipfile.is_zipfile(cosmx_output_bundle):
|
||||
cosmx_output_bundle = extract_selected_files_from_zip(
|
||||
cosmx_output_bundle, members=["*" + file for file in expected_file_patterns]
|
||||
cosmx_output_bundle, members=required_file_patterns.values()
|
||||
)
|
||||
else:
|
||||
cosmx_output_bundle = Path(cosmx_output_bundle)
|
||||
|
||||
assert os.path.isdir(cosmx_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
|
||||
input_data = dict(
|
||||
zip(
|
||||
["counts_file", "fov_file", "meta_file"],
|
||||
[
|
||||
find_cosmx_files(cosmx_output_bundle, glob_pattern)
|
||||
for glob_pattern in expected_file_patterns
|
||||
],
|
||||
)
|
||||
)
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(cosmx_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, f"Expected one file for {key}, found {len(file)}."
|
||||
input_data[key] = file[0]
|
||||
|
||||
return input_data
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -234,7 +234,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_cosmx_to_spatialexperiment"
|
||||
executable: "target/nextflow/convert/from_cosmx_to_spatialexperiment/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3326,7 +3326,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_cosmx_to_spatialexperiment",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
@@ -3424,25 +3424,32 @@ rm(.viash_orig_warn)
|
||||
|
||||
source(paste0(meta\\$resources_dir, "/unzip_archived_folder.R"))
|
||||
|
||||
cat("Reading input data...")
|
||||
if (tools::file_ext(par\\$input) == "zip") {
|
||||
expected_file_patterns <- c(
|
||||
"*.csv",
|
||||
"*.parquet"
|
||||
)
|
||||
tmp_dir <- extract_selected_files(
|
||||
par\\$input,
|
||||
members = expected_file_patterns
|
||||
)
|
||||
cosmx_output_bundle <- file.path(
|
||||
tmp_dir,
|
||||
tools::file_path_sans_ext(basename(par\\$input))
|
||||
)
|
||||
} else {
|
||||
cosmx_output_bundle <- par\\$input
|
||||
}
|
||||
|
||||
cat("Setting parameters...")
|
||||
if (par\\$add_polygon_path == FALSE && par\\$add_tx_path == FALSE) {
|
||||
add_parquet_paths <- FALSE
|
||||
} else {
|
||||
add_parquet_paths <- TRUE
|
||||
}
|
||||
|
||||
cosmx_output_bundle <- par\\$input
|
||||
if (grepl("\\\\\\\\.zip\\$", cosmx_output_bundle)) {
|
||||
expected_file_patterns <- c(
|
||||
"*.csv",
|
||||
"*.parquet"
|
||||
)
|
||||
|
||||
cosmx_output_bundle <- extract_selected_files(
|
||||
cosmx_output_bundle,
|
||||
members = expected_file_patterns
|
||||
)
|
||||
}
|
||||
|
||||
cat("Converting to SpatialExperiment...")
|
||||
spe <- readCosmxSXE(
|
||||
dirName = cosmx_output_bundle,
|
||||
returnType = "SPE",
|
||||
@@ -3457,6 +3464,7 @@ spe <- readCosmxSXE(
|
||||
altExps = par\\$alternative_experiment_features
|
||||
)
|
||||
|
||||
cat("Saving output...")
|
||||
saveRDS(spe, file = par\\$output)
|
||||
VIASHMAIN
|
||||
Rscript "$tempscript"
|
||||
|
||||
@@ -224,7 +224,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_h5mu_to_spatialexperiment"
|
||||
executable: "target/nextflow/convert/from_h5mu_to_spatialexperiment/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3332,7 +3332,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_h5mu_to_spatialexperiment",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
|
||||
@@ -220,7 +220,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_spatialdata_to_h5mu"
|
||||
executable: "target/nextflow/convert/from_spatialdata_to_h5mu/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3330,7 +3330,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_spatialdata_to_h5mu",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
|
||||
@@ -239,7 +239,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_xenium_to_h5mu"
|
||||
executable: "target/nextflow/convert/from_xenium_to_h5mu/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3342,7 +3342,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_xenium_to_h5mu",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
@@ -3451,33 +3451,33 @@ def _retrieve_input_data(xenium_output_bundle):
|
||||
# ├── experiment.xenium
|
||||
# └── metrics_summary.csv
|
||||
|
||||
required_files = [
|
||||
"cell_feature_matrix.h5",
|
||||
"cells.parquet",
|
||||
"experiment.xenium",
|
||||
"metrics_summary.csv",
|
||||
]
|
||||
required_file_patterns = {
|
||||
"count_matrix": "**/cell_feature_matrix.h5",
|
||||
"cells_metadata": "**/cells.parquet",
|
||||
"experiment": "**/experiment.xenium",
|
||||
"metrics_summary": "**/metrics_summary.csv",
|
||||
}
|
||||
|
||||
if zipfile.is_zipfile(xenium_output_bundle):
|
||||
xenium_output_bundle = extract_selected_files_from_zip(
|
||||
xenium_output_bundle, members=required_files
|
||||
xenium_output_bundle,
|
||||
members=[pattern for pattern in required_file_patterns.values()],
|
||||
)
|
||||
else:
|
||||
xenium_output_bundle = Path(xenium_output_bundle)
|
||||
|
||||
assert os.path.isdir(xenium_output_bundle), (
|
||||
"Input is expected to be a (compressed) directory."
|
||||
)
|
||||
input_dir = Path(xenium_output_bundle)
|
||||
|
||||
input_data = dict(
|
||||
zip(
|
||||
["count_matrix", "cells_metadata", "experiment", "metrics_summary"],
|
||||
[input_dir / file for file in required_files],
|
||||
input_data = {}
|
||||
for key, pattern in required_file_patterns.items():
|
||||
file = list(xenium_output_bundle.glob(pattern))
|
||||
assert len(file) == 1, (
|
||||
f"Expected exactly one file matching pattern {pattern}, found {len(file)}."
|
||||
)
|
||||
)
|
||||
input_data[key] = file[0]
|
||||
|
||||
assert all([file.exists() for file in input_data.values()]), (
|
||||
f"Not all required input files are found. Make sure that {par['input']} contains {input_data.values()}."
|
||||
)
|
||||
return input_data
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -320,7 +320,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_xenium_to_spatialdata"
|
||||
executable: "target/nextflow/convert/from_xenium_to_spatialdata/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3436,7 +3436,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_xenium_to_spatialdata",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
@@ -3489,6 +3489,7 @@ cat > "$tempscript" << VIASHMAIN
|
||||
import sys
|
||||
from spatialdata_io import xenium
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
## VIASH START
|
||||
# The following code has been auto-generated by Viash.
|
||||
@@ -3542,9 +3543,20 @@ logger = setup_logger()
|
||||
logger.info("Reading in Xenium data...")
|
||||
|
||||
if zipfile.is_zipfile(par["input"]):
|
||||
required_file_patterns = [
|
||||
"**/experiment.xenium",
|
||||
"**/nucleus_boundaries.parquet",
|
||||
"**/cell_boundaries.parquet",
|
||||
"**/transcripts.parquet",
|
||||
"**/cell_feature_matrix.h5",
|
||||
"**/cells.parquet",
|
||||
"**/morphology_mip.ome.tif",
|
||||
"**/morphology_focus.ome.tif",
|
||||
]
|
||||
xenium_output_bundle = unzip_archived_folder(par["input"])
|
||||
else:
|
||||
xenium_output_bundle = par["input"]
|
||||
xenium_output_bundle = Path(par["input"])
|
||||
|
||||
sdata = xenium(
|
||||
xenium_output_bundle,
|
||||
cells_boundaries=par["cells_boundaries"],
|
||||
|
||||
@@ -20,7 +20,7 @@ def unzip_archived_folder(archived_folder: Union[str, Path]) -> Union[str, Path]
|
||||
with zipfile.ZipFile(archived_folder, "r") as archive:
|
||||
archive.extractall(temp_dir)
|
||||
|
||||
return temp_dir
|
||||
return temp_dir / Path(archived_folder).stem
|
||||
|
||||
|
||||
def extract_selected_files_from_zip(
|
||||
|
||||
@@ -224,7 +224,7 @@ build_info:
|
||||
output: "target/nextflow/convert/from_xenium_to_spatialexperiment"
|
||||
executable: "target/nextflow/convert/from_xenium_to_spatialexperiment/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3315,7 +3315,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/convert/from_xenium_to_spatialexperiment",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
@@ -3412,20 +3412,26 @@ rm(.viash_orig_warn)
|
||||
|
||||
source(paste0(meta\\$resources_dir, "/unzip_archived_folder.R"))
|
||||
|
||||
xenium_output_bundle <- par\\$input
|
||||
if (grepl("\\\\\\\\.zip\\$", xenium_output_bundle)) {
|
||||
expected_file_patterns <- c(
|
||||
"cell_feature_matrix.h5",
|
||||
"*.parquet",
|
||||
"experiment.xenium"
|
||||
cat("Reading input data...")
|
||||
if (tools::file_ext(par\\$input) == "zip") {
|
||||
required_file_patterns <- c(
|
||||
"**/cell_feature_matrix.h5",
|
||||
"**/*.parquet",
|
||||
"**/experiment.xenium"
|
||||
)
|
||||
|
||||
xenium_output_bundle <- extract_selected_files(
|
||||
xenium_output_bundle,
|
||||
members = expected_file_patterns
|
||||
tmp_dir <- extract_selected_files(
|
||||
par\\$input,
|
||||
members = required_file_patterns
|
||||
)
|
||||
xenium_output_bundle <- file.path(
|
||||
tmp_dir,
|
||||
tools::file_path_sans_ext(basename(par\\$input))
|
||||
)
|
||||
} else {
|
||||
xenium_output_bundle <- par\\$input
|
||||
}
|
||||
|
||||
cat("Converting to SpatialExperiment")
|
||||
spe <- readXeniumSXE(
|
||||
dirName = xenium_output_bundle,
|
||||
returnType = "SPE",
|
||||
@@ -3437,6 +3443,7 @@ spe <- readXeniumSXE(
|
||||
altExps = par\\$alternative_experiment_features
|
||||
)
|
||||
|
||||
cat("Saving output...")
|
||||
saveRDS(spe, file = par\\$output)
|
||||
VIASHMAIN
|
||||
Rscript "$tempscript"
|
||||
|
||||
@@ -227,7 +227,7 @@ build_info:
|
||||
output: "target/nextflow/filter/subset_cosmx"
|
||||
executable: "target/nextflow/filter/subset_cosmx/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3333,7 +3333,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/filter/subset_cosmx",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
|
||||
@@ -426,7 +426,7 @@ build_info:
|
||||
output: "target/nextflow/mapping/spaceranger_count"
|
||||
executable: "target/nextflow/mapping/spaceranger_count/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
package_config:
|
||||
name: "openpipeline_spatial"
|
||||
|
||||
@@ -3548,7 +3548,7 @@ meta = [
|
||||
"engine" : "docker|native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/mapping/spaceranger_count",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
|
||||
@@ -640,7 +640,7 @@ build_info:
|
||||
output: "target/nextflow/workflows/multiomics/spatial_process_samples"
|
||||
executable: "target/nextflow/workflows/multiomics/spatial_process_samples/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
dependencies:
|
||||
- "target/dependencies/vsh/vsh/openpipeline/v3.0.0/nextflow/workflows/multiomics/process_samples"
|
||||
|
||||
@@ -3807,7 +3807,7 @@ meta = [
|
||||
"engine" : "native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/workflows/multiomics/spatial_process_samples",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
|
||||
@@ -387,7 +387,7 @@ build_info:
|
||||
output: "target/nextflow/workflows/qc/spatial_qc"
|
||||
executable: "target/nextflow/workflows/qc/spatial_qc/main.nf"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "56c413edcb8630cf4e6df89a39589c44dbb53d53"
|
||||
git_commit: "65041334be24bd2fa911a5ae85121c09aefeaec0"
|
||||
git_remote: "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
dependencies:
|
||||
- "target/dependencies/vsh/vsh/openpipeline/v3.0.0/nextflow/workflows/qc/qc"
|
||||
|
||||
@@ -3505,7 +3505,7 @@ meta = [
|
||||
"engine" : "native",
|
||||
"output" : "/workdir/root/repo/target/nextflow/workflows/qc/spatial_qc",
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "56c413edcb8630cf4e6df89a39589c44dbb53d53",
|
||||
"git_commit" : "65041334be24bd2fa911a5ae85121c09aefeaec0",
|
||||
"git_remote" : "https://github.com/openpipelines-bio/openpipeline_spatial"
|
||||
},
|
||||
"package_config" : {
|
||||
|
||||
Reference in New Issue
Block a user