From 8fccf4ad31ec3af7965aa2b08a9568eb362e1791 Mon Sep 17 00:00:00 2001 From: Ally Hawkins <54039191+allyhawkins@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:56:55 -0600 Subject: [PATCH 1/4] add process for converting to anndata --- merge.nf | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/merge.nf b/merge.nf index 5a611af2..d675fe25 100644 --- a/merge.nf +++ b/merge.nf @@ -31,6 +31,7 @@ if(param_error){ process merge_sce { container params.SCPCATOOLS_CONTAINER label 'mem_16' + tag "${project_id}" publishDir "${params.results_dir}/merged/${project_id}" input: tuple val(project_id), val(has_adt), val(library_ids), path(scpca_nf_file) @@ -85,6 +86,38 @@ process merge_report { """ } +process export_anndata{ + container params.SCPCATOOLS_CONTAINER + label 'mem_16' + tag "${project_id}" + publishDir "${params.results_dir}/merged/${merge_group}", mode: 'copy' + input: + tuple val(project_id), val(has_adt), path(merged_sce_file) + output: + tuple val(project_id), path("${project_id}_merged_*.hdf5") + script: + rna_hdf5_file = "${project_id}_merged_rna.hdf5" + feature_hdf5_file = "${project_id}_merged_adt.hdf5" + """ + sce_to_anndata.R \ + --input_sce_file ${sce_file} \ + --output_rna_h5 ${rna_hdf5_file} \ + --output_feature_h5 ${feature_hdf5_file} \ + ${has_adt ? "--feature_name adt" : ''} + + # move normalized counts to X in AnnData + move_counts_anndata.py --anndata_file ${rna_hdf5_file} + ${has_adt ? "move_counts_anndata.py --anndata_file ${feature_hdf5_file}" : ''} + """ + stub: + rna_hdf5_file = "${project_id}_merged_rna.hdf5" + feature_hdf5_file = "${project_id}_merged_adt.hdf5" + """ + touch ${rna_hdf5_file} + ${has_adt ? "touch ${feature_hdf5_file}" : ''} + """ +} + workflow { // grab project ids to run @@ -129,4 +162,7 @@ workflow { // TODO: generate merge report //merge_report(merge_sce.out, file(merge_template)) + + // export merged objects to AnnData + export_anndata(merge_sce.out) } From 9b745e6157c1498382e3b06d40a1d6cbc8965e68 Mon Sep 17 00:00:00 2001 From: Ally Hawkins <54039191+allyhawkins@users.noreply.github.com> Date: Thu, 14 Dec 2023 09:46:36 -0600 Subject: [PATCH 2/4] use correct include_altexp arg --- bin/merge_sces.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/merge_sces.R b/bin/merge_sces.R index acd7ffc0..690e0a47 100755 --- a/bin/merge_sces.R +++ b/bin/merge_sces.R @@ -29,7 +29,7 @@ option_list <- list( the default is n_hvg = 2000" ), make_option( - opt_str = c("--include_alt_exp"), + opt_str = c("--include_altexp"), action = "store_true", default = FALSE, help = "Keep any altExp present in the merged object." @@ -115,7 +115,7 @@ merged_sce <- scpcaTools::merge_sce_list( batch_column = "library_id", preserve_rowdata_cols = "gene_symbol", cell_id_column = "cell_id", - include_alt_exp = include_alt_exp + include_altexp = opt$include_altexp ) From ba9ae7be991653b559a4e69c9e8846a9476b151b Mon Sep 17 00:00:00 2001 From: Ally Hawkins <54039191+allyhawkins@users.noreply.github.com> Date: Thu, 14 Dec 2023 09:46:48 -0600 Subject: [PATCH 3/4] use scpcaTools:edge --- config/containers.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/containers.config b/config/containers.config index db56432a..dc6abd4c 100644 --- a/config/containers.config +++ b/config/containers.config @@ -1,5 +1,5 @@ // Docker container images -SCPCATOOLS_CONTAINER = 'ghcr.io/alexslemonade/scpca-tools:v0.3.1' +SCPCATOOLS_CONTAINER = 'ghcr.io/alexslemonade/scpca-tools:edge' ALEVINFRY_CONTAINER = 'quay.io/biocontainers/alevin-fry:0.7.0--h9f5acd7_1' BCFTOOLS_CONTAINER = 'quay.io/biocontainers/bcftools:1.14--h88f3f91_0' From b93c5d016cfadf9c0b7d1913cc0dc0b832bc7b73 Mon Sep 17 00:00:00 2001 From: Ally Hawkins <54039191+allyhawkins@users.noreply.github.com> Date: Thu, 14 Dec 2023 09:47:02 -0600 Subject: [PATCH 4/4] some missed syntax and merge_groups --- merge.nf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/merge.nf b/merge.nf index 71f55ab5..a9e663de 100644 --- a/merge.nf +++ b/merge.nf @@ -46,7 +46,7 @@ process merge_sce { --input_sce_files "${input_sces}" \ --output_sce_file "${merged_sce_file}" \ --n_hvg ${params.num_hvg} \ - "${has_adt ? "--include_alt_exp" : ''} \ + ${has_adt ? "--include_altexp" : ''} \ --threads ${task.cpus} """ stub: @@ -88,18 +88,18 @@ process merge_report { process export_anndata{ container params.SCPCATOOLS_CONTAINER label 'mem_16' - tag "${project_id}" + tag "${merge_group}" publishDir "${params.results_dir}/merged/${merge_group}", mode: 'copy' input: - tuple val(project_id), val(has_adt), path(merged_sce_file) + tuple val(merge_group), val(has_adt), path(merged_sce_file) output: - tuple val(project_id), path("${project_id}_merged_*.hdf5") + tuple val(merge_group), path("${merge_group}_merged_*.hdf5") script: - rna_hdf5_file = "${project_id}_merged_rna.hdf5" - feature_hdf5_file = "${project_id}_merged_adt.hdf5" + rna_hdf5_file = "${merge_group}_merged_rna.hdf5" + feature_hdf5_file = "${merge_group}_merged_adt.hdf5" """ sce_to_anndata.R \ - --input_sce_file ${sce_file} \ + --input_sce_file ${merged_sce_file} \ --output_rna_h5 ${rna_hdf5_file} \ --output_feature_h5 ${feature_hdf5_file} \ ${has_adt ? "--feature_name adt" : ''} @@ -109,8 +109,8 @@ process export_anndata{ ${has_adt ? "move_counts_anndata.py --anndata_file ${feature_hdf5_file}" : ''} """ stub: - rna_hdf5_file = "${project_id}_merged_rna.hdf5" - feature_hdf5_file = "${project_id}_merged_adt.hdf5" + rna_hdf5_file = "${merge_group}_merged_rna.hdf5" + feature_hdf5_file = "${merge_group}_merged_adt.hdf5" """ touch ${rna_hdf5_file} ${has_adt ? "touch ${feature_hdf5_file}" : ''}