OpenPipelines.bio v2.0.0
BREAKING CHANGES
-
velocity/scvelo: updatescveloto0.3.3, which also removes support for usingloominput files. The component now uses aMuDataobject as input. Several arguments were added to support selecting different inputs from the MuData file:counts_layer,modality,layer_spliced,layer_unspliced,layer_ambiguous. Anoutput_h5muargument was has been added (PR #932). -
src/annotate/onclassandsrc/annotate/celltypist: Input parameter for gene name layers of input datasets has been updated to--input_var_gene_namesandreference_var_gene_names(PR #919). -
Several components under
src/scgpt(cross_check_genes,tokenize_pad,binning) now processes the input (query) datasets differently. Instead of subsetting datasets based on genes in the model vocabulary and/or highly variable genes, these components require an input .var column with a boolean mask specifying this information. The results are written back to the original input data, preserving the dataset structure (PR #832). -
query/cellxgene_census: The default output layer has been changed from.layers["counts"]to.Xto be more aligned with the standard OpenPipelines format (PR #933).
Use argument--output_layer_counts countsto revert the behaviour to the previous default. -
Added cell multiplexing support to the
from_cellranger_multi_to_h5mucomponent and thecellranger_multiworkflow. For thefrom_cellranger_multi_to_h5mucomponent, theoutputargument now requires a value containing a wildcard character*, which will be replaced by the sample ID to form the final output file names. Additionally, asample_csvargument is added to thefrom_cellragner_multi_to_h5mucomponent which describes the sample name per output file. No change is required for theoutput_h5muargument from thecellranger_multiworkflow, the workflow will just emit multiple events in case of a multiplexed run, one for each sample. The id of the events (and default output file names) are set by--sample_ids(in case of cell multiplexing), or (as before) by the user providedidfor the input (PR #803 and PR #902). -
demux/bcl_convert: update BCL convert from 3.10 to 4.2 (PR #774). -
demux/cellranger_mkfastq,mapping/cellranger_count,mapping/cellranger_multiandreference/build_cellranger_reference: update cellranger to8.0.1(PR #774 and PR #811). -
Removed
--disable_library_compatibility_checkin favour of--check_library_compatibilityto themapping/cellranger_multicomponent and theingestion/cellranger_multiworkflow (PR #818). -
lianapy: bumped version to1.3.0(PR #827 and PR #862). Additionally,groupbyis now a required argument. -
concat: this component was deprecated and has now been removed, useconcatenate_h5muinstead (PR #796). -
The
workflowsfolder in the root of the project no longer contains symbolic links to the build workflows intarget.
Using any workflows that was previously linked in this directory will now result in an error which will indicate
the location of the workflow to be used instead (PR #796). -
XGBoost: bump version to2.0.3(PR #646). -
Several components: update anndata to
0.11.1and mudata to0.3.1(PR #645 and PR #901), and scanpy to1.10.4(PR #901). -
filter/filter_with_hvg: this component was deprecated and has now been removed. Usefeature_annotation/highly_variable_features_scanpyinstead (PR #843). -
dataflow/concat: this component was deprecated and has now been removed. Usedataflow/concatenate_h5muinstead (PR #857). -
convert/from_h5mu_to_seurat: bump seurat to latest version (PR #850). -
workflows/ingestion/bd_rhapsody: Upgrade BD Rhapsody 1.x to 2.x, thereby changing the interface of the workflow (PR #846). -
mapping/bd_rhapsody: Upgrade BD Rhapsody 1.x to 2.x, thereby changing the interface of the workflow (PR #846). -
reference/make_bdrhap_reference: Upgrade BD Rhapsody 1.x to 2.x, thereby changing the interface of the workflow (PR #846). -
reference/build_star_reference: Renamemapping/star_build_referencetoreference/build_star_reference(PR #846). -
reference/cellranger_mkgtf: Renamereference/mkgtftoreference/cellranger_mkgtf(PR #846). -
labels_transfer/xgboost: Align interface with new annotation workflow- Store label probabilities instead of uncertainties
- Take
.h5muformat as an input instead of.h5ad
-
reference/build_cellranger_arc_reference: a default value of "output" is now specified for the argument--genome, inline withreference/build_cellranger_referencecomponent. Additionally, providing a value for--organismis no longer required and its default value ofHomo Sapienshas been removed (PR #864).
NEW FUNCTIONALITY
Important
Workflows from the workflows/annotation and workflows/integration/scgpt_leiden namespaces, plus their newly implemented dependencies, are not yet considered to be part of the stable public API. Their functionality and interface may be subject to change.
-
velocyto_to_h5mu: now writes counts to.X(PR #932) -
qc/calculate_atac_qc_metrics: new component for calculating ATAC QC metrics (PR #868). -
workflows/annotation/scgpt_integration_knnworkflow: Cell-type annotation based on scGPT integration with KNN label transfer (PR #875). -
CI: Use
params.resources_testin test workflows in order to point to an alternative location (e.g. a cache) (PR #889). -
Added
demux/cellranger_atac_mkfastqcomponent: demultiplex raw sequencing data for ATAC experiments (PR #726). -
process_samples,process_batchesandrna_multisampleworkflows: added functionality to scale the log-normalized
gene expression data to unit variance and zero mean. The scaled data will be output to a different layer and the
representation with reduced dimensions will be created and stored in addition to the non-scaled data (PR #733). -
transform/scaling: add--input_layerand--output_layerarguments (PR #733). -
CI: added checking of mudata contents for multiple workflows (PR #783).
-
Added multiple arguments to the
cellranger_multiworkflow in order to maintain feature parity with themapping/cellranger_multicomponent (PR #803). -
convert/from_cellranger_to_h5mu: add support for antigen analysis. -
Added
demux/cellranger_atac_mkfastqcomponent: demultiplex raw sequencing data for ATAC experiments (PR #726). -
Added
reference/build_cellranger_referencecomponent: build reference file compatible with ATAC and ATAC+GEX experiments (PR #726). -
demux/bcl_convert: add support for no lane splitting (PR #804). -
reference/cellranger_mkgtfcomponent: Added cellranger mkgtf as a standalone component (PR #771). -
scgpt/cross_check_genescomponent: Added a gene-model cross check component for scGPT (PR #758). -
scgpt/embedding: component: Added scGPT embedding component (PR #761) -
scgpt/tokenize_pad: component: Added scGPT padding and tokenization component (PR #754). -
scgpt/binningcomponent: Added a scGPT pre-processing binning component (PR #765). -
workflows/integration/scgpt_leidenworkflow with scGPT integration followed by Leiden clustering (PR #794). -
scgpt/cell_type_annotationcomponent: Added scGPT cell type annotation component (PR #798). -
resources_test_scripts/scGPT.sh: Added script to include scGPT test resources (PR #800). -
transform/clrcomponent: Added the option to set theaxisalong which to apply CLR. Possible to override
on workflow level as well (PR #767). -
annotate/celltypistcomponent: Added a CellTypist annotation component (PR #825). -
dataflow/split_h5mucomponent: Added a component to split a single h5mu file into multiple h5mu files based on the values of an .obs column (PR #824). -
workflows/test_workflows/ingestioncomponents &workflows/ingestion: Added standalone components for integration testing of ingestion workflows (PR #801). -
workflows/ingestion/make_reference: Add additional arguments passed through to the STAR and BD Rhapsody reference components (PR #846). -
annotate/random_forest_annotationcomponent: Added a random forest cell type annotation component (PR #848). -
dataflow/concatenate_h5mu: data from.uns, both originating from the global and per-modality slots, is now retained in the final concatenated output object. Additionally, added theuns_merge_modeargument in order to tune the behavior when conflicting keys are detected across samples (PR #859). -
dimred/densmapcomponent: Added a densMAP dimensionality reduction component (PR #748). -
annotate/scanvicomponent: Added a component to annotate cells using scANVI (PR #833). -
transform/bpcells_regress_outcomponent: Added a component to regress out effects of confounding variables in the count matrix using BPCells (PR #863). -
transform/regress_out: Allow providing 'input' and 'output' layers for scanpy regress_out functionality (PR #863). -
workflows/ingestion/make_reference: add possibility to build CellRanger ARC references. Added--motifs_file,--non_nuclear_contigsand--output_cellranger_arcarguments (PR #864). -
Test resources (reference_gencodev41_chr1): switch reference genome for CellRanger to ARC variant (PR #864).
-
transform/bpcells_regress_outcomponent: Added a component to regress out effects of confounding variables in the count matrix using BPCells (PR #863). -
transform/regress_out: Allow providing 'input' and 'output' layers for scanpy regress_out functionality (PR #863). -
Added
transform/tfidfcomponent: normalize ATAC data with TF-IDF (PR #870). -
Added
dimred/lsicomponent (PR #552). -
metadata/duplicate_obscomponent: Added a component to make a copy from one .obs field or index to another .obs field within the same MuData object (PR #874, PR #899). -
annotate/onclass: component: Added a component to annotate cell types using OnClass (PR #844). -
annotate/svmcomponent: Added a component to annotate cell types using support vector machine (SVM) (PR #845). -
metadata/duplicate_varcomponent: Added a component to make a copy from one .var field or index to another .var field within the same MuData object (PR #877, PR #899). -
filter/subset_obspcomponent: Added a component to subset an .obsp matrix by column based on the value of an .obs field. The resulting subset is moved to an .obsm field (PR #888). -
labels_transfer/knncomponent: Enable using additional distance functions for KNN classification (PR #830) and allow to perform KNN classification based on a pre-calculated neighborhood graph (PR #890).
MAJOR CHANGES
- Bump popv to
0.4.2(PR #901)
MINOR CHANGES
-
Pin
scikit-learnforlabels_transfer/xgboostto<1.6(PR #931). -
filter/filter_with_scrublet: provide cleaner error message when running scrublet on an empty modality (PR #929). -
Several component (cleanup): remove workaround for using being able to use shared utility functions with Nextflow Fusion (PR #920).
-
scgpt/cell_type_annotationcomponent update: Added support for multi-processing (PR #832). -
Several annotation (
src/annotate/) components (onclass,celltypist,random_forest_annotation,scanvi,svm_annotation): Updated input parameteres to ensure uniformity across components, implemented functionality to cross-check the overlap of genes between query and reference (model) datasets and implemented logic to allow for subsetting of genes (PR #919). -
workflows/annotation/scgpt_annotationworkflow: Added a scGPT transformer-based cell type annotation workflow (PR #832). -
scgpt/cross_check_genescomponent update: Highly variable genes are now cross-checked based on the boolean mask invar_input. The filtering information is stored in the--output_var_filter.var field instead of subsetting the dataset (PR #832). -
scgpt/binningcomponent update: This component now requires the--var_inputparameter to provide gene filtering information. Binned data is written to the--output_obsm_binned_counts.obsm field in the original input data (PR #832). -
scgpt/pad_tokenizecomponent update: Genes are padded and tokenized based on filtering information in--var_inputand--input_obsm_binned_counts(PR #832). -
resources_test_scripts/scgpt.sh: Update scGPT test resources to avoid subsetting of datasets (PR #926). -
workflows/integration/scgpt_leidenworkflow update: Update workflow such that input dataset is not subsetted for HVG but uses boolean masks in .var field instead (PR #875). -
dataflow/split_h5mu: Optimize resource usage of the component (PR #913). -
Several components: bump python version (PR #901).
-
resources_test_scripts/cellranger_atac_tiny_bcl.shscript: generate counts from fastq files using CellRanger atac count (PR #726). -
cellbender_remove_background_v0_2: update base image tonvcr.io/nvidia/pytorch:23.12-py3(PR #646). -
Bump scvelo to
0.3.2(PR #828). -
Pin numpy<2 for several components (PR #815).
-
Added
resources_test_scripts/cellranger_atac_tiny_bcl.shscript: download tiny bcl file with an ATAC experiment, download a motifs file, demultiplex bcl files to reads in fastq format (PR #726). -
mapping/cellranger_multicomponent now outputs logs on failure of thecellranger multiprocess (PR #766). -
Bump
viash-actionstov6(PR #821). -
reference/make_reference: Do not try to extract genome fasta and transcriptome gtf if they are not gzipped (PR #856). -
Changes related to syncing the test resources (PR #867):
- Add
.info.test_resourcesto_viash.yamlto specify where test resources need to be synced from. download/sync_test_resources: Use.info.test_resourcesin_viash.yamlto detect where test resources need to be synced from.- Update CI to use
project/sync-and-cacheinstead ofproject/sync-and-cache-s3.
- Add
BUG FIXES
-
Fix failing tests for
ingestion/cellranger_postprocessing,ingestion/conversionandmultiomics/process_batches(PR #869). -
convert/from_10xh5_to_h5mu: add .uns slot to mdata root when metrics file is provided (PR #887). -
Fix ingestion components not working when optional arguments are unset (PR #894).
-
transform/normalize_totalcomponent: pass thetarget_sumargument tosc.pp.normalize_total()(PR #823). -
from_cellranger_multi_to_h5mu: fix missingpytestdependency (PR #897). -
scvi_leidenworkflow: fix the input layer argument of the workflow not being passed to the scVI component (PR #936 and PR #938).