Process samples

A pipeline to analyse multiple multiomics samples.

Info

ID: process_samples
Namespace: workflows/multiomics

Example commands

You can run the pipeline using nextflow run.

View help

You can use --help as a parameter to get an overview of the possible parameters.

nextflow run openpipelines-bio/openpipeline \
  -r 2.1.0 -latest \
  -main-script target/nextflow/workflows/multiomics/process_samples/main.nf \
  --help

Run command

Example of params.yaml
# Inputs
id: # please fill in - example: "foo"
input: # please fill in - example: "input.h5mu"
# rna_layer: "foo"
# prot_layer: "foo"
# gdo_layer: "foo"

# Outputs
# output: "$id.$key.output.h5mu"

# Sample ID options
add_id_to_obs: true
add_id_obs_output: "sample_id"
add_id_make_observation_keys_unique: true

# RNA filtering options
# rna_min_counts: 200
# rna_max_counts: 5000000
# rna_min_genes_per_cell: 200
# rna_max_genes_per_cell: 1500000
# rna_min_cells_per_gene: 3
# rna_min_fraction_mito: 0.0
# rna_max_fraction_mito: 0.2
# rna_min_fraction_ribo: 0.0
# rna_max_fraction_ribo: 0.2

# CITE-seq filtering options
# prot_min_counts: 3
# prot_max_counts: 5000000
# prot_min_proteins_per_cell: 200
# prot_max_proteins_per_cell: 100000000
# prot_min_cells_per_protein: 3

# GDO filtering options
# gdo_min_counts: 3
# gdo_max_counts: 5000000
# gdo_min_guides_per_cell: 200
# gdo_max_guides_per_cell: 100000000
# gdo_min_cells_per_guide: 3

# Highly variable features detection
highly_variable_features_var_output: "filter_with_hvg"
highly_variable_features_obs_batch_key: "sample_id"

# Mitochondrial & Ribosomal Gene Detection
# var_gene_names: "gene_symbol"
# var_name_mitochondrial_genes: "foo"
# obs_name_mitochondrial_fraction: "foo"
mitochondrial_gene_regex: "^[mM][tT]-"
# var_name_ribosomal_genes: "foo"
# obs_name_ribosomal_fraction: "foo"
ribosomal_gene_regex: "^[Mm]?[Rr][Pp][LlSs]"

# QC metrics calculation options
# var_qc_metrics: ["ercc,highly_variable"]
top_n_vars: [50, 100, 200, 500]

# PCA options
pca_overwrite: false

# CLR options
clr_axis: 0

# RNA Scaling options
rna_enable_scaling: false
rna_scaling_output_layer: "scaled"
rna_scaling_pca_obsm_output: "scaled_pca"
rna_scaling_pca_loadings_varm_output: "scaled_pca_loadings"
rna_scaling_pca_variance_uns_output: "scaled_pca_variance"
rna_scaling_umap_obsm_output: "scaled_umap"
# rna_scaling_max_value: 123.0
rna_scaling_zero_center: true

# Nextflow input-output arguments
publish_dir: # please fill in - example: "output/"
# param_list: "my_params.yaml"

# Arguments
nextflow run openpipelines-bio/openpipeline \
  -r 2.1.0 -latest \
  -profile docker \
  -main-script target/nextflow/workflows/multiomics/process_samples/main.nf \
  -params-file params.yaml
Note

Replace -profile docker with -profile podman or -profile singularity depending on the desired backend.

Argument groups

Inputs

Name Description Attributes
--id ID of the sample. string, required, example: "foo"
--input Path to the sample. file, required, example: "input.h5mu"
--rna_layer Input layer for the gene expression modality. If not specified, .X is used. string
--prot_layer Input layer for the antibody capture modality. If not specified, .X is used. string
--gdo_layer Input layer for the guide-derived oligonucleotide (GDO) data. If not specified, .X is used. string

Outputs

Name Description Attributes
--output Destination path to the output. file, required, example: "output.h5mu"

Sample ID options

Options for adding the id to .obs on the MuData object. Having a sample id present in a requirement of several components for this pipeline.

Name Description Attributes
--add_id_to_obs Add the value passed with –id to .obs. boolean, default: TRUE
--add_id_obs_output .Obs column to add the sample IDs to. Required and only used when –add_id_to_obs is set to ‘true’ string, default: "sample_id"
--add_id_make_observation_keys_unique Join the id to the .obs index (.obs_names). Only used when –add_id_to_obs is set to ‘true’. boolean, default: TRUE

RNA filtering options

Name Description Attributes
--rna_min_counts Minimum number of counts captured per cell. integer, example: 200
--rna_max_counts Maximum number of counts captured per cell. integer, example: 5000000
--rna_min_genes_per_cell Minimum of non-zero values per cell. integer, example: 200
--rna_max_genes_per_cell Maximum of non-zero values per cell. integer, example: 1500000
--rna_min_cells_per_gene Minimum of non-zero values per gene. integer, example: 3
--rna_min_fraction_mito Minimum fraction of UMIs that are mitochondrial. double, example: 0
--rna_max_fraction_mito Maximum fraction of UMIs that are mitochondrial. double, example: 0.2
--rna_min_fraction_ribo Minimum fraction of UMIs that are mitochondrial. double, example: 0
--rna_max_fraction_ribo Maximum fraction of UMIs that are mitochondrial. double, example: 0.2

CITE-seq filtering options

Name Description Attributes
--prot_min_counts Minimum number of counts per cell. integer, example: 3
--prot_max_counts Minimum number of counts per cell. integer, example: 5000000
--prot_min_proteins_per_cell Minimum of non-zero values per cell. integer, example: 200
--prot_max_proteins_per_cell Maximum of non-zero values per cell. integer, example: 100000000
--prot_min_cells_per_protein Minimum of non-zero values per protein. integer, example: 3

GDO filtering options

Name Description Attributes
--gdo_min_counts Minimum number of counts per cell. integer, example: 3
--gdo_max_counts Minimum number of counts per cell. integer, example: 5000000
--gdo_min_guides_per_cell Minimum of non-zero values per cell. integer, example: 200
--gdo_max_guides_per_cell Maximum of non-zero values per cell. integer, example: 100000000
--gdo_min_cells_per_guide Minimum of non-zero values per guide. integer, example: 3

Highly variable features detection

Name Description Attributes
--highly_variable_features_var_output In which .var slot to store a boolean array corresponding to the highly variable genes. string, default: "filter_with_hvg"
--highly_variable_features_obs_batch_key If specified, highly-variable genes are selected within each batch separately and merged. This simple process avoids the selection of batch-specific genes and acts as a lightweight batch correction method. string, default: "sample_id"

Mitochondrial & Ribosomal Gene Detection

Name Description Attributes
--var_gene_names .var column name to be used to detect mitochondrial/ribosomal genes instead of .var_names (default if not set). Gene names matching with the regex value from –mitochondrial_gene_regex or –ribosomal_gene_regex will be identified as mitochondrial or ribosomal genes, respectively. string, example: "gene_symbol"
--var_name_mitochondrial_genes In which .var slot to store a boolean array corresponding the mitochondrial genes. string
--obs_name_mitochondrial_fraction When specified, write the fraction of counts originating from mitochondrial genes (based on –mitochondrial_gene_regex) to an .obs column with the specified name. Requires –var_name_mitochondrial_genes. string
--mitochondrial_gene_regex Regex string that identifies mitochondrial genes from –var_gene_names. By default will detect human and mouse mitochondrial genes from a gene symbol. string, default: "^[mM][tT]-"
--var_name_ribosomal_genes In which .var slot to store a boolean array corresponding the ribosomal genes. string
--obs_name_ribosomal_fraction When specified, write the fraction of counts originating from ribosomal genes (based on –ribosomal_gene_regex) to an .obs column with the specified name. Requires –var_name_ribosomal_genes. string
--ribosomal_gene_regex Regex string that identifies ribosomal genes from –var_gene_names. By default will detect human and mouse ribosomal genes from a gene symbol. string, default: "^[Mm]?[Rr][Pp][LlSs]"

QC metrics calculation options

Name Description Attributes
--var_qc_metrics Keys to select a boolean (containing only True or False) column from .var. For each cell, calculate the proportion of total values for genes which are labeled ‘True’, compared to the total sum of the values for all genes. Defaults to the combined values specified for –var_name_mitochondrial_genes and –highly_variable_features_var_output. List of string, example: "ercc,highly_variable", multiple_sep: ","
--top_n_vars Number of top vars to be used to calculate cumulative proportions. If not specified, proportions are not calculated. --top_n_vars 20,50 finds cumulative proportion to the 20th and 50th most expressed vars. List of integer, default: 50, 100, 200, 500, multiple_sep: ","

PCA options

Name Description Attributes
--pca_overwrite Allow overwriting slots for PCA output. boolean_true

CLR options

Name Description Attributes
--clr_axis Axis to perform the CLR transformation on. integer, default: 0

RNA Scaling options

Options for enabling scaling of the log-normalized data to unit variance and zero mean. The scaled data will be output a different layer and representation with reduced dimensions will be created and stored in addition to the non-scaled data.

Name Description Attributes
--rna_enable_scaling Enable scaling for the RNA modality. boolean_true
--rna_scaling_output_layer Output layer where the scaled log-normalized data will be stored. string, default: "scaled"
--rna_scaling_pca_obsm_output Name of the .obsm key where the PCA representation of the log-normalized and scaled data is stored. string, default: "scaled_pca"
--rna_scaling_pca_loadings_varm_output Name of the .varm key where the PCA loadings of the log-normalized and scaled data is stored. string, default: "scaled_pca_loadings"
--rna_scaling_pca_variance_uns_output Name of the .uns key where the variance and variance ratio will be stored as a map. The map will contain two keys: variance and variance_ratio respectively. string, default: "scaled_pca_variance"
--rna_scaling_umap_obsm_output Name of the .obsm key where the UMAP representation of the log-normalized and scaled data is stored. string, default: "scaled_umap"
--rna_scaling_max_value Clip (truncate) data to this value after scaling. If not specified, do not clip. double
--rna_scaling_zero_center If set, omit zero-centering variables, which allows to handle sparse input efficiently.” boolean_false

Authors

  • Dries Schaumont (author, maintainer)

Visualisation

flowchart TB
    v0(Channel.fromList)
    v2(filter)
    v15(filter)
    v20(add_id)
    v27(cross)
    v37(cross)
    v43(filter)
    v54(filter)
    v66(cross)
    v76(cross)
    v86(concat)
    v93(cross)
    v103(cross)
    v109(flatMap)
    v115(filter)
    v124(filter)
    v136(branch)
    v163(concat)
    v148(cross)
    v158(cross)
    v167(branch)
    v194(concat)
    v179(cross)
    v189(cross)
    v195(filter)
    v225(concat)
    v210(cross)
    v220(cross)
    v232(cross)
    v242(cross)
    v251(branch)
    v278(concat)
    v263(cross)
    v273(cross)
    v282(branch)
    v309(concat)
    v294(cross)
    v304(cross)
    v310(filter)
    v325(cross)
    v335(cross)
    v341(filter)
    v356(cross)
    v366(cross)
    v372(filter)
    v402(concat)
    v387(cross)
    v397(cross)
    v409(cross)
    v419(cross)
    v621(mix)
    v430(filter)
    v438(filter)
    v453(cross)
    v463(cross)
    v469(filter)
    v499(concat)
    v484(cross)
    v494(cross)
    v506(cross)
    v516(cross)
    v527(filter)
    v535(filter)
    v550(cross)
    v560(cross)
    v566(filter)
    v596(concat)
    v581(cross)
    v591(cross)
    v603(cross)
    v613(cross)
    v623(mix)
    v630(filter)
    v638(concatenate_h5mu)
    v645(cross)
    v655(cross)
    v664(filter)
    v1959(concat)
    v673(filter)
    v684(filter)
    v696(cross)
    v706(cross)
    v716(concat)
    v723(cross)
    v733(cross)
    v739(flatMap)
    v747(filter)
    v755(filter)
    v770(cross)
    v780(cross)
    v786(filter)
    v801(cross)
    v811(cross)
    v817(filter)
    v832(cross)
    v842(cross)
    v851(branch)
    v878(concat)
    v863(cross)
    v873(cross)
    v879(filter)
    v894(cross)
    v904(cross)
    v910(filter)
    v1033(concat)
    v922(branch)
    v949(concat)
    v934(cross)
    v944(cross)
    v953(branch)
    v980(concat)
    v965(cross)
    v975(cross)
    v981(filter)
    v1011(concat)
    v996(cross)
    v1006(cross)
    v1018(cross)
    v1028(cross)
    v1040(cross)
    v1050(cross)
    v1248(mix)
    v1061(filter)
    v1069(filter)
    v1084(cross)
    v1094(cross)
    v1100(filter)
    v1223(concat)
    v1112(branch)
    v1139(concat)
    v1124(cross)
    v1134(cross)
    v1143(branch)
    v1170(concat)
    v1155(cross)
    v1165(cross)
    v1171(filter)
    v1201(concat)
    v1186(cross)
    v1196(cross)
    v1208(cross)
    v1218(cross)
    v1230(cross)
    v1240(cross)
    v1250(mix)
    v1258(filter)
    v1273(cross)
    v1283(cross)
    v1293(branch)
    v1505(concat)
    v1298(filter)
    v1313(cross)
    v1323(cross)
    v1329(filter)
    v1483(concat)
    v1338(filter)
    v1353(cross)
    v1363(cross)
    v1372(branch)
    v1399(concat)
    v1384(cross)
    v1394(cross)
    v1403(branch)
    v1430(concat)
    v1415(cross)
    v1425(cross)
    v1434(branch)
    v1461(concat)
    v1446(cross)
    v1456(cross)
    v1468(cross)
    v1478(cross)
    v1490(cross)
    v1500(cross)
    v1509(branch)
    v1721(concat)
    v1514(filter)
    v1529(cross)
    v1539(cross)
    v1545(filter)
    v1699(concat)
    v1554(filter)
    v1569(cross)
    v1579(cross)
    v1588(branch)
    v1615(concat)
    v1600(cross)
    v1610(cross)
    v1619(branch)
    v1646(concat)
    v1631(cross)
    v1641(cross)
    v1650(branch)
    v1677(concat)
    v1662(cross)
    v1672(cross)
    v1684(cross)
    v1694(cross)
    v1706(cross)
    v1716(cross)
    v1725(branch)
    v1937(concat)
    v1730(filter)
    v1745(cross)
    v1755(cross)
    v1761(filter)
    v1915(concat)
    v1770(filter)
    v1785(cross)
    v1795(cross)
    v1804(branch)
    v1831(concat)
    v1816(cross)
    v1826(cross)
    v1835(branch)
    v1862(concat)
    v1847(cross)
    v1857(cross)
    v1866(branch)
    v1893(concat)
    v1878(cross)
    v1888(cross)
    v1900(cross)
    v1910(cross)
    v1922(cross)
    v1932(cross)
    v1944(cross)
    v1954(cross)
    v1966(cross)
    v1973(cross)
    v1985(cross)
    v1992(cross)
    v1996(Output)
    subgraph group_split_modalities_workflow [split_modalities_workflow]
        v59(split_modalities_component)
    end
    subgraph group_rna_singlesample [rna_singlesample]
        v141(grep_mitochondrial_genes)
        v172(grep_ribosomal_genes)
        v203(calculate_qc_metrics)
        v256(delimit_fraction)
        v287(delimit_fraction)
        v318(rna_filter_with_counts)
        v349(rna_do_filter)
        v380(filter_with_scrublet)
    end
    subgraph group_prot_singlesample [prot_singlesample]
        v446(prot_filter_with_counts)
        v477(prot_do_filter)
    end
    subgraph group_gdo_singlesample [gdo_singlesample]
        v543(gdo_filter_with_counts)
        v574(gdo_do_filter)
    end
    subgraph group_process_batches [process_batches]
        v689(split_modalities_component)
        v1266(merge)
        v1306(pca)
        v1522(pca)
        v1738(pca)
        subgraph group_rna_multisample [rna_multisample]
            v763(normalize_total)
            v794(log1p)
            v825(delete_layer)
            v856(scale)
            v887(highly_variable_features_scanpy)
            v927(grep_mitochondrial_genes)
            v958(grep_ribosomal_genes)
            v989(calculate_qc_metrics)
        end
        subgraph group_prot_multisample [prot_multisample]
            v1077(clr)
            v1117(grep_mitochondrial_genes)
            v1148(grep_ribosomal_genes)
            v1179(calculate_qc_metrics)
        end
        subgraph group_neighbors_leiden_umap [neighbors_leiden_umap]
            v1346(find_neighbors)
            v1377(leiden)
            v1408(move_obsm_to_obs)
            v1439(umap)
            v1562(find_neighbors)
            v1593(leiden)
            v1624(move_obsm_to_obs)
            v1655(umap)
            v1778(find_neighbors)
            v1809(leiden)
            v1840(move_obsm_to_obs)
            v1871(umap)
        end
    end
    v136-->v163
    v167-->v194
    v194-->v195
    v251-->v278
    v282-->v309
    v309-->v310
    v621-->v623
    v851-->v878
    v878-->v879
    v922-->v949
    v953-->v980
    v980-->v981
    v1112-->v1139
    v1143-->v1170
    v1170-->v1171
    v1248-->v1250
    v1293-->v1505
    v1372-->v1399
    v1403-->v1430
    v1434-->v1461
    v1509-->v1721
    v1588-->v1615
    v1619-->v1646
    v1650-->v1677
    v1725-->v1937
    v1804-->v1831
    v1835-->v1862
    v1866-->v1893
    v0-->v2
    v15-->v20
    v20-->v27
    v15-->v27
    v15-->v37
    v54-->v59
    v59-->v66
    v54-->v66
    v54-->v76
    v86-->v93
    v43-->v93
    v43-->v103
    v115-->v124
    v136-->v141
    v141-->v148
    v136-->v148
    v136-->v158
    v158-->v163
    v167-->v172
    v172-->v179
    v167-->v179
    v167-->v189
    v189-->v194
    v195-->v203
    v203-->v210
    v195-->v210
    v195-->v220
    v220-->v225
    v225-->v232
    v124-->v232
    v124-->v242
    v251-->v256
    v256-->v263
    v251-->v263
    v251-->v273
    v273-->v278
    v282-->v287
    v287-->v294
    v282-->v294
    v282-->v304
    v304-->v309
    v310-->v318
    v318-->v325
    v310-->v325
    v310-->v335
    v341-->v349
    v349-->v356
    v341-->v356
    v341-->v366
    v372-->v380
    v380-->v387
    v372-->v387
    v372-->v397
    v397-->v402
    v402-->v409
    v115-->v409
    v115-->v419
    v430-->v438
    v438-->v446
    v446-->v453
    v438-->v453
    v438-->v463
    v469-->v477
    v477-->v484
    v469-->v484
    v469-->v494
    v494-->v499
    v499-->v506
    v430-->v506
    v430-->v516
    v527-->v535
    v535-->v543
    v543-->v550
    v535-->v550
    v535-->v560
    v566-->v574
    v574-->v581
    v566-->v581
    v566-->v591
    v591-->v596
    v596-->v603
    v527-->v603
    v527-->v613
    v630-->v638
    v638-->v645
    v630-->v645
    v630-->v655
    v684-->v689
    v689-->v696
    v684-->v696
    v684-->v706
    v716-->v723
    v673-->v723
    v673-->v733
    v747-->v755
    v755-->v763
    v763-->v770
    v755-->v770
    v755-->v780
    v786-->v794
    v794-->v801
    v786-->v801
    v786-->v811
    v817-->v825
    v825-->v832
    v817-->v832
    v817-->v842
    v851-->v856
    v856-->v863
    v851-->v863
    v851-->v873
    v873-->v878
    v879-->v887
    v887-->v894
    v879-->v894
    v879-->v904
    v922-->v927
    v927-->v934
    v922-->v934
    v922-->v944
    v944-->v949
    v953-->v958
    v958-->v965
    v953-->v965
    v953-->v975
    v975-->v980
    v981-->v989
    v989-->v996
    v981-->v996
    v981-->v1006
    v1006-->v1011
    v1011-->v1018
    v910-->v1018
    v910-->v1028
    v1028-->v1033
    v1033-->v1040
    v747-->v1040
    v747-->v1050
    v1061-->v1069
    v1069-->v1077
    v1077-->v1084
    v1069-->v1084
    v1069-->v1094
    v1112-->v1117
    v1117-->v1124
    v1112-->v1124
    v1112-->v1134
    v1134-->v1139
    v1143-->v1148
    v1148-->v1155
    v1143-->v1155
    v1143-->v1165
    v1165-->v1170
    v1171-->v1179
    v1179-->v1186
    v1171-->v1186
    v1171-->v1196
    v1196-->v1201
    v1201-->v1208
    v1100-->v1208
    v1100-->v1218
    v1218-->v1223
    v1223-->v1230
    v1061-->v1230
    v1061-->v1240
    v1258-->v1266
    v1266-->v1273
    v1258-->v1273
    v1258-->v1283
    v1293-->v1298
    v1298-->v1306
    v1306-->v1313
    v1298-->v1313
    v1298-->v1323
    v1329-->v1338
    v1338-->v1346
    v1346-->v1353
    v1338-->v1353
    v1338-->v1363
    v1372-->v1377
    v1377-->v1384
    v1372-->v1384
    v1372-->v1394
    v1394-->v1399
    v1403-->v1408
    v1408-->v1415
    v1403-->v1415
    v1403-->v1425
    v1425-->v1430
    v1434-->v1439
    v1439-->v1446
    v1434-->v1446
    v1434-->v1456
    v1456-->v1461
    v1461-->v1468
    v1329-->v1468
    v1329-->v1478
    v1478-->v1483
    v1483-->v1490
    v1293-->v1490
    v1293-->v1500
    v1500-->v1505
    v1509-->v1514
    v1514-->v1522
    v1522-->v1529
    v1514-->v1529
    v1514-->v1539
    v1545-->v1554
    v1554-->v1562
    v1562-->v1569
    v1554-->v1569
    v1554-->v1579
    v1588-->v1593
    v1593-->v1600
    v1588-->v1600
    v1588-->v1610
    v1610-->v1615
    v1619-->v1624
    v1624-->v1631
    v1619-->v1631
    v1619-->v1641
    v1641-->v1646
    v1650-->v1655
    v1655-->v1662
    v1650-->v1662
    v1650-->v1672
    v1672-->v1677
    v1677-->v1684
    v1545-->v1684
    v1545-->v1694
    v1694-->v1699
    v1699-->v1706
    v1509-->v1706
    v1509-->v1716
    v1716-->v1721
    v1725-->v1730
    v1730-->v1738
    v1738-->v1745
    v1730-->v1745
    v1730-->v1755
    v1761-->v1770
    v1770-->v1778
    v1778-->v1785
    v1770-->v1785
    v1770-->v1795
    v1804-->v1809
    v1809-->v1816
    v1804-->v1816
    v1804-->v1826
    v1826-->v1831
    v1835-->v1840
    v1840-->v1847
    v1835-->v1847
    v1835-->v1857
    v1857-->v1862
    v1866-->v1871
    v1871-->v1878
    v1866-->v1878
    v1866-->v1888
    v1888-->v1893
    v1893-->v1900
    v1761-->v1900
    v1761-->v1910
    v1910-->v1915
    v1915-->v1922
    v1725-->v1922
    v1725-->v1932
    v1932-->v1937
    v1937-->v1944
    v664-->v1944
    v664-->v1954
    v1954-->v1959
    v1959-->v1966
    v2-->v1966
    v1966-->v1973
    v2-->v1973
    v2-->v1985
    v1985-->v1992
    v2-->v1992
    v1992-->v1996
    v2-->v15
    v37-->v43
    v20-->v37
    v103-->v109
    v43-->v54
    v76-->v86
    v59-->v76
    v86-->v103
    v109-->v115
    v419-->v621
    v124-->v136
    v141-->v158
    v163-->v167
    v172-->v189
    v203-->v220
    v225-->v242
    v242-->v251
    v256-->v273
    v278-->v282
    v287-->v304
    v335-->v341
    v318-->v335
    v366-->v372
    v349-->v366
    v380-->v397
    v402-->v419
    v109-->v430
    v516-->v621
    v463-->v469
    v446-->v463
    v477-->v494
    v499-->v516
    v109-->v527
    v613-->v621
    v560-->v566
    v543-->v560
    v574-->v591
    v596-->v613
    v109-->v623
    v623-->v630
    v638-->v655
    v655-->v664
    v664-->v673
    v733-->v739
    v673-->v684
    v706-->v716
    v689-->v706
    v716-->v733
    v739-->v747
    v1050-->v1248
    v780-->v786
    v763-->v780
    v811-->v817
    v794-->v811
    v825-->v842
    v842-->v851
    v856-->v873
    v904-->v910
    v887-->v904
    v910-->v922
    v927-->v944
    v949-->v953
    v958-->v975
    v989-->v1006
    v1011-->v1028
    v1033-->v1050
    v739-->v1061
    v1240-->v1248
    v1094-->v1100
    v1077-->v1094
    v1100-->v1112
    v1117-->v1134
    v1139-->v1143
    v1148-->v1165
    v1179-->v1196
    v1201-->v1218
    v1223-->v1240
    v739-->v1250
    v1250-->v1258
    v1266-->v1283
    v1283-->v1293
    v1323-->v1329
    v1306-->v1323
    v1346-->v1363
    v1363-->v1372
    v1377-->v1394
    v1399-->v1403
    v1408-->v1425
    v1430-->v1434
    v1439-->v1456
    v1461-->v1478
    v1483-->v1500
    v1505-->v1509
    v1539-->v1545
    v1522-->v1539
    v1562-->v1579
    v1579-->v1588
    v1593-->v1610
    v1615-->v1619
    v1624-->v1641
    v1646-->v1650
    v1655-->v1672
    v1677-->v1694
    v1699-->v1716
    v1721-->v1725
    v1755-->v1761
    v1738-->v1755
    v1778-->v1795
    v1795-->v1804
    v1809-->v1826
    v1831-->v1835
    v1840-->v1857
    v1862-->v1866
    v1871-->v1888
    v1893-->v1910
    v1915-->v1932
    v1937-->v1954
    v1959-->v1985
    style group_split_modalities_workflow fill:#F0F0F0,stroke:#969696;
    style group_rna_singlesample fill:#F0F0F0,stroke:#969696;
    style group_prot_singlesample fill:#F0F0F0,stroke:#969696;
    style group_gdo_singlesample fill:#F0F0F0,stroke:#969696;
    style group_process_batches fill:#F0F0F0,stroke:#969696;
    style group_rna_multisample fill:#D9D9D9,stroke:#737373;
    style group_prot_multisample fill:#D9D9D9,stroke:#737373;
    style group_neighbors_leiden_umap fill:#D9D9D9,stroke:#737373;
    style v0 fill:#e3dcea,stroke:#7a4baa;
    style v2 fill:#e3dcea,stroke:#7a4baa;
    style v15 fill:#e3dcea,stroke:#7a4baa;
    style v20 fill:#e3dcea,stroke:#7a4baa;
    style v27 fill:#e3dcea,stroke:#7a4baa;
    style v37 fill:#e3dcea,stroke:#7a4baa;
    style v43 fill:#e3dcea,stroke:#7a4baa;
    style v54 fill:#e3dcea,stroke:#7a4baa;
    style v59 fill:#e3dcea,stroke:#7a4baa;
    style v66 fill:#e3dcea,stroke:#7a4baa;
    style v76 fill:#e3dcea,stroke:#7a4baa;
    style v86 fill:#e3dcea,stroke:#7a4baa;
    style v93 fill:#e3dcea,stroke:#7a4baa;
    style v103 fill:#e3dcea,stroke:#7a4baa;
    style v109 fill:#e3dcea,stroke:#7a4baa;
    style v115 fill:#e3dcea,stroke:#7a4baa;
    style v124 fill:#e3dcea,stroke:#7a4baa;
    style v136 fill:#e3dcea,stroke:#7a4baa;
    style v163 fill:#e3dcea,stroke:#7a4baa;
    style v141 fill:#e3dcea,stroke:#7a4baa;
    style v148 fill:#e3dcea,stroke:#7a4baa;
    style v158 fill:#e3dcea,stroke:#7a4baa;
    style v167 fill:#e3dcea,stroke:#7a4baa;
    style v194 fill:#e3dcea,stroke:#7a4baa;
    style v172 fill:#e3dcea,stroke:#7a4baa;
    style v179 fill:#e3dcea,stroke:#7a4baa;
    style v189 fill:#e3dcea,stroke:#7a4baa;
    style v195 fill:#e3dcea,stroke:#7a4baa;
    style v225 fill:#e3dcea,stroke:#7a4baa;
    style v203 fill:#e3dcea,stroke:#7a4baa;
    style v210 fill:#e3dcea,stroke:#7a4baa;
    style v220 fill:#e3dcea,stroke:#7a4baa;
    style v232 fill:#e3dcea,stroke:#7a4baa;
    style v242 fill:#e3dcea,stroke:#7a4baa;
    style v251 fill:#e3dcea,stroke:#7a4baa;
    style v278 fill:#e3dcea,stroke:#7a4baa;
    style v256 fill:#e3dcea,stroke:#7a4baa;
    style v263 fill:#e3dcea,stroke:#7a4baa;
    style v273 fill:#e3dcea,stroke:#7a4baa;
    style v282 fill:#e3dcea,stroke:#7a4baa;
    style v309 fill:#e3dcea,stroke:#7a4baa;
    style v287 fill:#e3dcea,stroke:#7a4baa;
    style v294 fill:#e3dcea,stroke:#7a4baa;
    style v304 fill:#e3dcea,stroke:#7a4baa;
    style v310 fill:#e3dcea,stroke:#7a4baa;
    style v318 fill:#e3dcea,stroke:#7a4baa;
    style v325 fill:#e3dcea,stroke:#7a4baa;
    style v335 fill:#e3dcea,stroke:#7a4baa;
    style v341 fill:#e3dcea,stroke:#7a4baa;
    style v349 fill:#e3dcea,stroke:#7a4baa;
    style v356 fill:#e3dcea,stroke:#7a4baa;
    style v366 fill:#e3dcea,stroke:#7a4baa;
    style v372 fill:#e3dcea,stroke:#7a4baa;
    style v402 fill:#e3dcea,stroke:#7a4baa;
    style v380 fill:#e3dcea,stroke:#7a4baa;
    style v387 fill:#e3dcea,stroke:#7a4baa;
    style v397 fill:#e3dcea,stroke:#7a4baa;
    style v409 fill:#e3dcea,stroke:#7a4baa;
    style v419 fill:#e3dcea,stroke:#7a4baa;
    style v621 fill:#e3dcea,stroke:#7a4baa;
    style v430 fill:#e3dcea,stroke:#7a4baa;
    style v438 fill:#e3dcea,stroke:#7a4baa;
    style v446 fill:#e3dcea,stroke:#7a4baa;
    style v453 fill:#e3dcea,stroke:#7a4baa;
    style v463 fill:#e3dcea,stroke:#7a4baa;
    style v469 fill:#e3dcea,stroke:#7a4baa;
    style v499 fill:#e3dcea,stroke:#7a4baa;
    style v477 fill:#e3dcea,stroke:#7a4baa;
    style v484 fill:#e3dcea,stroke:#7a4baa;
    style v494 fill:#e3dcea,stroke:#7a4baa;
    style v506 fill:#e3dcea,stroke:#7a4baa;
    style v516 fill:#e3dcea,stroke:#7a4baa;
    style v527 fill:#e3dcea,stroke:#7a4baa;
    style v535 fill:#e3dcea,stroke:#7a4baa;
    style v543 fill:#e3dcea,stroke:#7a4baa;
    style v550 fill:#e3dcea,stroke:#7a4baa;
    style v560 fill:#e3dcea,stroke:#7a4baa;
    style v566 fill:#e3dcea,stroke:#7a4baa;
    style v596 fill:#e3dcea,stroke:#7a4baa;
    style v574 fill:#e3dcea,stroke:#7a4baa;
    style v581 fill:#e3dcea,stroke:#7a4baa;
    style v591 fill:#e3dcea,stroke:#7a4baa;
    style v603 fill:#e3dcea,stroke:#7a4baa;
    style v613 fill:#e3dcea,stroke:#7a4baa;
    style v623 fill:#e3dcea,stroke:#7a4baa;
    style v630 fill:#e3dcea,stroke:#7a4baa;
    style v638 fill:#e3dcea,stroke:#7a4baa;
    style v645 fill:#e3dcea,stroke:#7a4baa;
    style v655 fill:#e3dcea,stroke:#7a4baa;
    style v664 fill:#e3dcea,stroke:#7a4baa;
    style v1959 fill:#e3dcea,stroke:#7a4baa;
    style v673 fill:#e3dcea,stroke:#7a4baa;
    style v684 fill:#e3dcea,stroke:#7a4baa;
    style v689 fill:#e3dcea,stroke:#7a4baa;
    style v696 fill:#e3dcea,stroke:#7a4baa;
    style v706 fill:#e3dcea,stroke:#7a4baa;
    style v716 fill:#e3dcea,stroke:#7a4baa;
    style v723 fill:#e3dcea,stroke:#7a4baa;
    style v733 fill:#e3dcea,stroke:#7a4baa;
    style v739 fill:#e3dcea,stroke:#7a4baa;
    style v747 fill:#e3dcea,stroke:#7a4baa;
    style v755 fill:#e3dcea,stroke:#7a4baa;
    style v763 fill:#e3dcea,stroke:#7a4baa;
    style v770 fill:#e3dcea,stroke:#7a4baa;
    style v780 fill:#e3dcea,stroke:#7a4baa;
    style v786 fill:#e3dcea,stroke:#7a4baa;
    style v794 fill:#e3dcea,stroke:#7a4baa;
    style v801 fill:#e3dcea,stroke:#7a4baa;
    style v811 fill:#e3dcea,stroke:#7a4baa;
    style v817 fill:#e3dcea,stroke:#7a4baa;
    style v825 fill:#e3dcea,stroke:#7a4baa;
    style v832 fill:#e3dcea,stroke:#7a4baa;
    style v842 fill:#e3dcea,stroke:#7a4baa;
    style v851 fill:#e3dcea,stroke:#7a4baa;
    style v878 fill:#e3dcea,stroke:#7a4baa;
    style v856 fill:#e3dcea,stroke:#7a4baa;
    style v863 fill:#e3dcea,stroke:#7a4baa;
    style v873 fill:#e3dcea,stroke:#7a4baa;
    style v879 fill:#e3dcea,stroke:#7a4baa;
    style v887 fill:#e3dcea,stroke:#7a4baa;
    style v894 fill:#e3dcea,stroke:#7a4baa;
    style v904 fill:#e3dcea,stroke:#7a4baa;
    style v910 fill:#e3dcea,stroke:#7a4baa;
    style v1033 fill:#e3dcea,stroke:#7a4baa;
    style v922 fill:#e3dcea,stroke:#7a4baa;
    style v949 fill:#e3dcea,stroke:#7a4baa;
    style v927 fill:#e3dcea,stroke:#7a4baa;
    style v934 fill:#e3dcea,stroke:#7a4baa;
    style v944 fill:#e3dcea,stroke:#7a4baa;
    style v953 fill:#e3dcea,stroke:#7a4baa;
    style v980 fill:#e3dcea,stroke:#7a4baa;
    style v958 fill:#e3dcea,stroke:#7a4baa;
    style v965 fill:#e3dcea,stroke:#7a4baa;
    style v975 fill:#e3dcea,stroke:#7a4baa;
    style v981 fill:#e3dcea,stroke:#7a4baa;
    style v1011 fill:#e3dcea,stroke:#7a4baa;
    style v989 fill:#e3dcea,stroke:#7a4baa;
    style v996 fill:#e3dcea,stroke:#7a4baa;
    style v1006 fill:#e3dcea,stroke:#7a4baa;
    style v1018 fill:#e3dcea,stroke:#7a4baa;
    style v1028 fill:#e3dcea,stroke:#7a4baa;
    style v1040 fill:#e3dcea,stroke:#7a4baa;
    style v1050 fill:#e3dcea,stroke:#7a4baa;
    style v1248 fill:#e3dcea,stroke:#7a4baa;
    style v1061 fill:#e3dcea,stroke:#7a4baa;
    style v1069 fill:#e3dcea,stroke:#7a4baa;
    style v1077 fill:#e3dcea,stroke:#7a4baa;
    style v1084 fill:#e3dcea,stroke:#7a4baa;
    style v1094 fill:#e3dcea,stroke:#7a4baa;
    style v1100 fill:#e3dcea,stroke:#7a4baa;
    style v1223 fill:#e3dcea,stroke:#7a4baa;
    style v1112 fill:#e3dcea,stroke:#7a4baa;
    style v1139 fill:#e3dcea,stroke:#7a4baa;
    style v1117 fill:#e3dcea,stroke:#7a4baa;
    style v1124 fill:#e3dcea,stroke:#7a4baa;
    style v1134 fill:#e3dcea,stroke:#7a4baa;
    style v1143 fill:#e3dcea,stroke:#7a4baa;
    style v1170 fill:#e3dcea,stroke:#7a4baa;
    style v1148 fill:#e3dcea,stroke:#7a4baa;
    style v1155 fill:#e3dcea,stroke:#7a4baa;
    style v1165 fill:#e3dcea,stroke:#7a4baa;
    style v1171 fill:#e3dcea,stroke:#7a4baa;
    style v1201 fill:#e3dcea,stroke:#7a4baa;
    style v1179 fill:#e3dcea,stroke:#7a4baa;
    style v1186 fill:#e3dcea,stroke:#7a4baa;
    style v1196 fill:#e3dcea,stroke:#7a4baa;
    style v1208 fill:#e3dcea,stroke:#7a4baa;
    style v1218 fill:#e3dcea,stroke:#7a4baa;
    style v1230 fill:#e3dcea,stroke:#7a4baa;
    style v1240 fill:#e3dcea,stroke:#7a4baa;
    style v1250 fill:#e3dcea,stroke:#7a4baa;
    style v1258 fill:#e3dcea,stroke:#7a4baa;
    style v1266 fill:#e3dcea,stroke:#7a4baa;
    style v1273 fill:#e3dcea,stroke:#7a4baa;
    style v1283 fill:#e3dcea,stroke:#7a4baa;
    style v1293 fill:#e3dcea,stroke:#7a4baa;
    style v1505 fill:#e3dcea,stroke:#7a4baa;
    style v1298 fill:#e3dcea,stroke:#7a4baa;
    style v1306 fill:#e3dcea,stroke:#7a4baa;
    style v1313 fill:#e3dcea,stroke:#7a4baa;
    style v1323 fill:#e3dcea,stroke:#7a4baa;
    style v1329 fill:#e3dcea,stroke:#7a4baa;
    style v1483 fill:#e3dcea,stroke:#7a4baa;
    style v1338 fill:#e3dcea,stroke:#7a4baa;
    style v1346 fill:#e3dcea,stroke:#7a4baa;
    style v1353 fill:#e3dcea,stroke:#7a4baa;
    style v1363 fill:#e3dcea,stroke:#7a4baa;
    style v1372 fill:#e3dcea,stroke:#7a4baa;
    style v1399 fill:#e3dcea,stroke:#7a4baa;
    style v1377 fill:#e3dcea,stroke:#7a4baa;
    style v1384 fill:#e3dcea,stroke:#7a4baa;
    style v1394 fill:#e3dcea,stroke:#7a4baa;
    style v1403 fill:#e3dcea,stroke:#7a4baa;
    style v1430 fill:#e3dcea,stroke:#7a4baa;
    style v1408 fill:#e3dcea,stroke:#7a4baa;
    style v1415 fill:#e3dcea,stroke:#7a4baa;
    style v1425 fill:#e3dcea,stroke:#7a4baa;
    style v1434 fill:#e3dcea,stroke:#7a4baa;
    style v1461 fill:#e3dcea,stroke:#7a4baa;
    style v1439 fill:#e3dcea,stroke:#7a4baa;
    style v1446 fill:#e3dcea,stroke:#7a4baa;
    style v1456 fill:#e3dcea,stroke:#7a4baa;
    style v1468 fill:#e3dcea,stroke:#7a4baa;
    style v1478 fill:#e3dcea,stroke:#7a4baa;
    style v1490 fill:#e3dcea,stroke:#7a4baa;
    style v1500 fill:#e3dcea,stroke:#7a4baa;
    style v1509 fill:#e3dcea,stroke:#7a4baa;
    style v1721 fill:#e3dcea,stroke:#7a4baa;
    style v1514 fill:#e3dcea,stroke:#7a4baa;
    style v1522 fill:#e3dcea,stroke:#7a4baa;
    style v1529 fill:#e3dcea,stroke:#7a4baa;
    style v1539 fill:#e3dcea,stroke:#7a4baa;
    style v1545 fill:#e3dcea,stroke:#7a4baa;
    style v1699 fill:#e3dcea,stroke:#7a4baa;
    style v1554 fill:#e3dcea,stroke:#7a4baa;
    style v1562 fill:#e3dcea,stroke:#7a4baa;
    style v1569 fill:#e3dcea,stroke:#7a4baa;
    style v1579 fill:#e3dcea,stroke:#7a4baa;
    style v1588 fill:#e3dcea,stroke:#7a4baa;
    style v1615 fill:#e3dcea,stroke:#7a4baa;
    style v1593 fill:#e3dcea,stroke:#7a4baa;
    style v1600 fill:#e3dcea,stroke:#7a4baa;
    style v1610 fill:#e3dcea,stroke:#7a4baa;
    style v1619 fill:#e3dcea,stroke:#7a4baa;
    style v1646 fill:#e3dcea,stroke:#7a4baa;
    style v1624 fill:#e3dcea,stroke:#7a4baa;
    style v1631 fill:#e3dcea,stroke:#7a4baa;
    style v1641 fill:#e3dcea,stroke:#7a4baa;
    style v1650 fill:#e3dcea,stroke:#7a4baa;
    style v1677 fill:#e3dcea,stroke:#7a4baa;
    style v1655 fill:#e3dcea,stroke:#7a4baa;
    style v1662 fill:#e3dcea,stroke:#7a4baa;
    style v1672 fill:#e3dcea,stroke:#7a4baa;
    style v1684 fill:#e3dcea,stroke:#7a4baa;
    style v1694 fill:#e3dcea,stroke:#7a4baa;
    style v1706 fill:#e3dcea,stroke:#7a4baa;
    style v1716 fill:#e3dcea,stroke:#7a4baa;
    style v1725 fill:#e3dcea,stroke:#7a4baa;
    style v1937 fill:#e3dcea,stroke:#7a4baa;
    style v1730 fill:#e3dcea,stroke:#7a4baa;
    style v1738 fill:#e3dcea,stroke:#7a4baa;
    style v1745 fill:#e3dcea,stroke:#7a4baa;
    style v1755 fill:#e3dcea,stroke:#7a4baa;
    style v1761 fill:#e3dcea,stroke:#7a4baa;
    style v1915 fill:#e3dcea,stroke:#7a4baa;
    style v1770 fill:#e3dcea,stroke:#7a4baa;
    style v1778 fill:#e3dcea,stroke:#7a4baa;
    style v1785 fill:#e3dcea,stroke:#7a4baa;
    style v1795 fill:#e3dcea,stroke:#7a4baa;
    style v1804 fill:#e3dcea,stroke:#7a4baa;
    style v1831 fill:#e3dcea,stroke:#7a4baa;
    style v1809 fill:#e3dcea,stroke:#7a4baa;
    style v1816 fill:#e3dcea,stroke:#7a4baa;
    style v1826 fill:#e3dcea,stroke:#7a4baa;
    style v1835 fill:#e3dcea,stroke:#7a4baa;
    style v1862 fill:#e3dcea,stroke:#7a4baa;
    style v1840 fill:#e3dcea,stroke:#7a4baa;
    style v1847 fill:#e3dcea,stroke:#7a4baa;
    style v1857 fill:#e3dcea,stroke:#7a4baa;
    style v1866 fill:#e3dcea,stroke:#7a4baa;
    style v1893 fill:#e3dcea,stroke:#7a4baa;
    style v1871 fill:#e3dcea,stroke:#7a4baa;
    style v1878 fill:#e3dcea,stroke:#7a4baa;
    style v1888 fill:#e3dcea,stroke:#7a4baa;
    style v1900 fill:#e3dcea,stroke:#7a4baa;
    style v1910 fill:#e3dcea,stroke:#7a4baa;
    style v1922 fill:#e3dcea,stroke:#7a4baa;
    style v1932 fill:#e3dcea,stroke:#7a4baa;
    style v1944 fill:#e3dcea,stroke:#7a4baa;
    style v1954 fill:#e3dcea,stroke:#7a4baa;
    style v1966 fill:#e3dcea,stroke:#7a4baa;
    style v1973 fill:#e3dcea,stroke:#7a4baa;
    style v1985 fill:#e3dcea,stroke:#7a4baa;
    style v1992 fill:#e3dcea,stroke:#7a4baa;
    style v1996 fill:#e3dcea,stroke:#7a4baa;