Scvi leiden

Run scvi integration followed by neighbour calculations, leiden clustering and run umap on the result.

Info

ID: scvi_leiden
Namespace: workflows/integration

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/integration/scvi_leiden/main.nf \
  --help

Run command

Example of params.yaml
# Inputs
id: # please fill in - example: "foo"
input: # please fill in - example: "dataset.h5mu"
# layer: "foo"
modality: "rna"

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

# Neighbour calculation
uns_neighbors: "scvi_integration_neighbors"
obsp_neighbor_distances: "scvi_integration_distances"
obsp_neighbor_connectivities: "scvi_integration_connectivities"

# Scvi integration options
obs_batch: # please fill in - example: "foo"
obsm_output: "X_scvi_integrated"
# var_input: "foo"
# early_stopping: true
early_stopping_monitor: "elbo_validation"
early_stopping_patience: 45
early_stopping_min_delta: 0.0
# max_epochs: 123
reduce_lr_on_plateau: true
lr_factor: 0.6
lr_patience: 30.0

# Clustering options
obs_cluster: "scvi_integration_leiden"
leiden_resolution: [1.0]

# Umap options
obsm_umap: "X_scvi_umap"

# 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/integration/scvi_leiden/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: "dataset.h5mu"
--layer use specified layer for expression values instead of the .X object from the modality. string
--modality Which modality to process. string, default: "rna"

Outputs

Name Description Attributes
--output Destination path to the output. file, required, example: "output.h5mu"
--output_model Folder where the state of the trained model will be saved to. file, required, example: "output_dir"

Neighbour calculation

Name Description Attributes
--uns_neighbors In which .uns slot to store various neighbor output objects. string, default: "scvi_integration_neighbors"
--obsp_neighbor_distances In which .obsp slot to store the distance matrix between the resulting neighbors. string, default: "scvi_integration_distances"
--obsp_neighbor_connectivities In which .obsp slot to store the connectivities matrix between the resulting neighbors. string, default: "scvi_integration_connectivities"

Scvi integration options

Name Description Attributes
--obs_batch Column name discriminating between your batches. string, required
--obsm_output In which .obsm slot to store the resulting integrated embedding. string, default: "X_scvi_integrated"
--var_input .var column containing highly variable genes. By default, do not subset genes. string
--early_stopping Whether to perform early stopping with respect to the validation set. boolean
--early_stopping_monitor Metric logged during validation set epoch. string, default: "elbo_validation"
--early_stopping_patience Number of validation epochs with no improvement after which training will be stopped. integer, default: 45
--early_stopping_min_delta Minimum change in the monitored quantity to qualify as an improvement, i.e. an absolute change of less than min_delta, will count as no improvement. double, default: 0
--max_epochs Number of passes through the dataset, defaults to (20000 / number of cells) * 400 or 400; whichever is smallest. integer
--reduce_lr_on_plateau Whether to monitor validation loss and reduce learning rate when validation set lr_scheduler_metric plateaus. boolean, default: TRUE
--lr_factor Factor to reduce learning rate. double, default: 0.6
--lr_patience Number of epochs with no improvement after which learning rate will be reduced. double, default: 30

Clustering options

Name Description Attributes
--obs_cluster Prefix for the .obs keys under which to add the cluster labels. Newly created columns in .obs will be created from the specified value for ‘–obs_cluster’ suffixed with an underscore and one of the resolutions resolutions specified in ‘–leiden_resolution’. string, default: "scvi_integration_leiden"
--leiden_resolution Control the coarseness of the clustering. Higher values lead to more clusters. List of double, default: 1, multiple_sep: ";"

Umap options

Name Description Attributes
--obsm_umap In which .obsm slot to store the resulting UMAP embedding. string, default: "X_scvi_umap"

Authors

  • Dries Schaumont (author)

Visualisation

flowchart TB
    v0(Channel.fromList)
    v2(filter)
    v10(filter)
    v18(scvi)
    v25(cross)
    v35(cross)
    v41(filter)
    v195(concat)
    v50(filter)
    v65(cross)
    v75(cross)
    v84(branch)
    v111(concat)
    v96(cross)
    v106(cross)
    v115(branch)
    v142(concat)
    v127(cross)
    v137(cross)
    v146(branch)
    v173(concat)
    v158(cross)
    v168(cross)
    v180(cross)
    v190(cross)
    v202(cross)
    v209(cross)
    v221(cross)
    v228(cross)
    v232(Output)
    subgraph group_neighbors_leiden_umap [neighbors_leiden_umap]
        v58(find_neighbors)
        v89(leiden)
        v120(move_obsm_to_obs)
        v151(umap)
    end
    v84-->v111
    v115-->v142
    v146-->v173
    v0-->v2
    v2-->v10
    v10-->v18
    v18-->v25
    v10-->v25
    v10-->v35
    v41-->v50
    v50-->v58
    v58-->v65
    v50-->v65
    v50-->v75
    v84-->v89
    v89-->v96
    v84-->v96
    v84-->v106
    v106-->v111
    v115-->v120
    v120-->v127
    v115-->v127
    v115-->v137
    v137-->v142
    v146-->v151
    v151-->v158
    v146-->v158
    v146-->v168
    v168-->v173
    v173-->v180
    v41-->v180
    v41-->v190
    v190-->v195
    v195-->v202
    v2-->v202
    v202-->v209
    v2-->v209
    v2-->v221
    v221-->v228
    v2-->v228
    v228-->v232
    v35-->v41
    v18-->v35
    v58-->v75
    v75-->v84
    v89-->v106
    v111-->v115
    v120-->v137
    v142-->v146
    v151-->v168
    v173-->v190
    v195-->v221
    style group_neighbors_leiden_umap fill:#F0F0F0,stroke:#969696;
    style v0 fill:#e3dcea,stroke:#7a4baa;
    style v2 fill:#e3dcea,stroke:#7a4baa;
    style v10 fill:#e3dcea,stroke:#7a4baa;
    style v18 fill:#e3dcea,stroke:#7a4baa;
    style v25 fill:#e3dcea,stroke:#7a4baa;
    style v35 fill:#e3dcea,stroke:#7a4baa;
    style v41 fill:#e3dcea,stroke:#7a4baa;
    style v195 fill:#e3dcea,stroke:#7a4baa;
    style v50 fill:#e3dcea,stroke:#7a4baa;
    style v58 fill:#e3dcea,stroke:#7a4baa;
    style v65 fill:#e3dcea,stroke:#7a4baa;
    style v75 fill:#e3dcea,stroke:#7a4baa;
    style v84 fill:#e3dcea,stroke:#7a4baa;
    style v111 fill:#e3dcea,stroke:#7a4baa;
    style v89 fill:#e3dcea,stroke:#7a4baa;
    style v96 fill:#e3dcea,stroke:#7a4baa;
    style v106 fill:#e3dcea,stroke:#7a4baa;
    style v115 fill:#e3dcea,stroke:#7a4baa;
    style v142 fill:#e3dcea,stroke:#7a4baa;
    style v120 fill:#e3dcea,stroke:#7a4baa;
    style v127 fill:#e3dcea,stroke:#7a4baa;
    style v137 fill:#e3dcea,stroke:#7a4baa;
    style v146 fill:#e3dcea,stroke:#7a4baa;
    style v173 fill:#e3dcea,stroke:#7a4baa;
    style v151 fill:#e3dcea,stroke:#7a4baa;
    style v158 fill:#e3dcea,stroke:#7a4baa;
    style v168 fill:#e3dcea,stroke:#7a4baa;
    style v180 fill:#e3dcea,stroke:#7a4baa;
    style v190 fill:#e3dcea,stroke:#7a4baa;
    style v202 fill:#e3dcea,stroke:#7a4baa;
    style v209 fill:#e3dcea,stroke:#7a4baa;
    style v221 fill:#e3dcea,stroke:#7a4baa;
    style v228 fill:#e3dcea,stroke:#7a4baa;
    style v232 fill:#e3dcea,stroke:#7a4baa;