Skip to content

Commit a3bbf1e

Browse files
authored
PD-2863: Optimus with one Starsolo instance (#1499)
1 parent f3af13f commit a3bbf1e

File tree

16 files changed

+179
-186
lines changed

16 files changed

+179
-186
lines changed

beta-pipelines/skylab/slidetags/SlideTags.wdl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ workflow SlideTags {
1818

1919
# Optimus Inputs
2020
String cloud_provider = "gcp"
21-
Boolean is_slidetags = true
2221
String input_id
2322
Int expected_cells = 3000 ## copied from Multiome ?
2423
String counting_mode = "sn_rna"
@@ -51,7 +50,6 @@ workflow SlideTags {
5150
call optimus.Optimus as Optimus {
5251
input:
5352
cloud_provider = cloud_provider,
54-
#disk_starsolo = disk_starsolo,
5553
counting_mode = counting_mode,
5654
r1_fastq = gex_r1_fastq,
5755
r2_fastq = gex_r2_fastq,
@@ -70,8 +68,7 @@ workflow SlideTags {
7068
star_strand_mode = star_strand_mode,
7169
count_exons = count_exons,
7270
soloMultiMappers = soloMultiMappers,
73-
gex_expected_cells = expected_cells,
74-
is_slidetags = is_slidetags
71+
gex_expected_cells = expected_cells
7572
}
7673
7774
call SpatialCount.count as spatial_count {

pipeline_versions.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ ReblockGVCF 2.4.1 2025-02-21
1616
UltimaGenomicsJointGenotyping 1.2.2 2024-11-04
1717
JointGenotyping 1.7.2 2024-11-04
1818
BuildIndices 4.0.0 2025-01-17
19-
SlideSeq 3.4.9 2025-02-25
20-
PairedTag 1.10.2 2025-02-25
21-
MultiSampleSmartSeq2SingleNucleus 2.0.8 2025-02-25
19+
SlideSeq 3.5.0 2025-02-25
20+
PairedTag 2.0.0 2025-03-19
21+
MultiSampleSmartSeq2SingleNucleus 2.1.0 2025-03-19
2222
atac 2.7.1 2025-02-25
2323
snm3C 4.0.4 2024-08-06
24-
Optimus 7.9.2 2025-02-25
25-
Multiome 5.11.0 2025-02-25
24+
Optimus 8.0.0 2025-03-19
25+
Multiome 6.0.0 2025-03-19

pipelines/skylab/multiome/Multiome.changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 6.0.0
2+
2025-03-19 (Date of Last Commit)
3+
* Refactored the STAR alignment step (STARsoloFastq) in Optimus and removed tasks FastqProcessing and MergeSortBamFiles; we are no longer sharding. We are now running one instance of STAR
4+
15
# 5.11.0
26
2025-02-25 (Date of Last Commit)
37

pipelines/skylab/multiome/Multiome.wdl

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import "../../../tasks/broad/Utilities.wdl" as utils
88
99
workflow Multiome {
1010

11-
String pipeline_version = "5.11.0"
11+
String pipeline_version = "6.0.0"
1212

1313
input {
1414
String cloud_provider
@@ -177,13 +177,15 @@ workflow Multiome {
177177
File gene_metrics_gex = Optimus.gene_metrics
178178
File? cell_calls_gex = Optimus.cell_calls
179179
File h5ad_output_file_gex = JoinBarcodes.gex_h5ad_file
180-
Array[File?] multimappers_EM_matrix = Optimus.multimappers_EM_matrix
181-
Array[File?] multimappers_Uniform_matrix = Optimus.multimappers_Uniform_matrix
182-
Array[File?] multimappers_Rescue_matrix = Optimus.multimappers_Rescue_matrix
183-
Array[File?] multimappers_PropUnique_matrix = Optimus.multimappers_PropUnique_matrix
180+
File? multimappers_EM_matrix = Optimus.multimappers_EM_matrix
181+
File? multimappers_Uniform_matrix = Optimus.multimappers_Uniform_matrix
182+
File? multimappers_Rescue_matrix = Optimus.multimappers_Rescue_matrix
183+
File? multimappers_PropUnique_matrix = Optimus.multimappers_PropUnique_matrix
184184
File? gex_aligner_metrics = Optimus.aligner_metrics
185185
File? library_metrics = Optimus.library_metrics
186186
File? mtx_files = Optimus.mtx_files
187+
188+
# cellbender outputs
187189
File? cell_barcodes_csv = Optimus.cell_barcodes_csv
188190
File? checkpoint_file = Optimus.checkpoint_file
189191
Array[File]? h5_array = Optimus.h5_array

pipelines/skylab/optimus/Optimus.changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# 8.0.0
2+
2025-03-19 (Date of Last Commit)
3+
4+
* Removed boolean variable is_slidetags; no longer needed with new updates
5+
* Refactored the STAR alignment step and removed tasks FastqProcessing and MergeSortBamFiles; we are no longer sharding. We are now running one instance of STAR
6+
* Added parameters for STARsoloFastq task, including cpu_platform_star, mem_size_star, cpu_star, disk_star, limitBAMsortRAM_star, and outBAMsortingBinsN_star, for dynamic allocation of resources depending on input size
7+
18
# 7.9.2
29
2025-02-25 (Date of Last Commit)
310

pipelines/skylab/optimus/Optimus.wdl

Lines changed: 31 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import "https://raw.githubusercontent.com/broadinstitute/CellBender/v0.3.0/wdl/c
1414
workflow Optimus {
1515
meta {
1616
description: "The optimus 3' pipeline processes 10x genomics sequencing data based on the v2 chemistry. It corrects cell barcodes and UMIs, aligns reads, marks duplicates, and returns data as alignments in BAM format and as counts in sparse matrix exchange format."
17+
allowNestedInputs: true
1718
}
1819

1920
input {
@@ -75,12 +76,10 @@ workflow Optimus {
7576
# for example: `"Optimus.StarAlign.preemptible": 3` will let the StarAlign task, which by default disables the
7677
# usage of preemptible machines, attempt to request for preemptible instance up to 3 times.
7778
78-
# Set to true if slide-tags calls optimus, other wise set to false
79-
Boolean is_slidetags = false
8079
}
8180

8281
# version of this pipeline
83-
String pipeline_version = "7.9.2"
82+
String pipeline_version = "8.0.0"
8483

8584
# this is used to scatter matched [r1_fastq, r2_fastq, i1_fastq] arrays
8685
Array[Int] indices = range(length(r1_fastq))
@@ -120,7 +119,7 @@ workflow Optimus {
120119
# choose docker prefix based on cloud provider
121120
String docker_prefix = if cloud_provider == "gcp" then gcr_docker_prefix else acr_docker_prefix
122121

123-
# make sure either gcp or azr is supplied as cloud_provider input
122+
# make sure either gcp or azr is supplied as cloud_provider
124123
if ((cloud_provider != "gcp") && (cloud_provider != "azure")) {
125124
call utils.ErrorWithMessage as ErrorMessageIncorrectInput {
126125
input:
@@ -166,45 +165,25 @@ workflow Optimus {
166165
ubuntu_docker_path = ubuntu_docker_prefix + ubuntu_docker
167166
}
168167
169-
call FastqProcessing.FastqProcessing as SplitFastq {
170-
input:
171-
i1_fastq = i1_fastq,
172-
r1_fastq = r1_fastq,
173-
r2_fastq = r2_fastq,
174-
whitelist = whitelist,
175-
chemistry = tenx_chemistry_version,
176-
sample_id = input_id,
177-
read_struct = read_struct,
178-
warp_tools_docker_path = docker_prefix + warp_tools_docker
179-
}
180-
181-
scatter(idx in range(length(SplitFastq.fastq_R1_output_array))) {
182-
call StarAlign.STARsoloFastq as STARsoloFastq {
168+
call StarAlign.STARsoloFastq as STARsoloFastq {
183169
input:
184-
r1_fastq = [SplitFastq.fastq_R1_output_array[idx]],
185-
r2_fastq = [SplitFastq.fastq_R2_output_array[idx]],
170+
r1_fastq = r1_fastq,
171+
r2_fastq = r2_fastq,
186172
star_strand_mode = star_strand_mode,
187173
white_list = whitelist,
188174
tar_star_reference = tar_star_reference,
189175
chemistry = tenx_chemistry_version,
190176
counting_mode = counting_mode,
191177
count_exons = count_exons,
192-
output_bam_basename = output_bam_basename + "_" + idx,
178+
input_id = input_id,
179+
output_bam_basename = output_bam_basename,
193180
soloMultiMappers = soloMultiMappers,
194-
samtools_star_docker_path = docker_prefix + samtools_star,
195-
is_slidetags = is_slidetags
181+
samtools_star_docker_path = docker_prefix + samtools_star
196182
}
197-
}
198-
call Merge.MergeSortBamFiles as MergeBam {
199-
input:
200-
bam_inputs = STARsoloFastq.bam_output,
201-
output_bam_filename = output_bam_basename + ".bam",
202-
sort_order = "coordinate",
203-
picard_cloud_docker_path = docker_prefix + picard_cloud_docker
204-
}
183+
205184
call Metrics.CalculateGeneMetrics as GeneMetrics {
206185
input:
207-
bam_input = MergeBam.output_bam,
186+
bam_input = STARsoloFastq.bam_output,
208187
mt_genes = mt_genes,
209188
original_gtf = annotations_gtf,
210189
input_id = input_id,
@@ -213,7 +192,7 @@ workflow Optimus {
213192
214193
call Metrics.CalculateCellMetrics as CellMetrics {
215194
input:
216-
bam_input = MergeBam.output_bam,
195+
bam_input = STARsoloFastq.bam_output,
217196
mt_genes = mt_genes,
218197
original_gtf = annotations_gtf,
219198
input_id = input_id,
@@ -222,13 +201,13 @@ workflow Optimus {
222201
223202
call StarAlign.MergeStarOutput as MergeStarOutputs {
224203
input:
225-
barcodes = STARsoloFastq.barcodes,
226-
features = STARsoloFastq.features,
227-
matrix = STARsoloFastq.matrix,
228-
cell_reads = STARsoloFastq.cell_reads,
229-
summary = STARsoloFastq.summary,
230-
align_features = STARsoloFastq.align_features,
231-
umipercell = STARsoloFastq.umipercell,
204+
barcodes = [STARsoloFastq.barcodes],
205+
features = [STARsoloFastq.features],
206+
matrix = [STARsoloFastq.matrix],
207+
cell_reads = [STARsoloFastq.cell_reads],
208+
summary = [STARsoloFastq.summary],
209+
align_features = [STARsoloFastq.align_features],
210+
umipercell = [STARsoloFastq.umipercell],
232211
input_id = input_id,
233212
counting_mode = counting_mode,
234213
star_merge_docker_path = docker_prefix + star_merge_docker,
@@ -272,15 +251,15 @@ workflow Optimus {
272251
if (count_exons && counting_mode=="sn_rna") {
273252
call StarAlign.MergeStarOutput as MergeStarOutputsExons {
274253
input:
275-
barcodes = STARsoloFastq.barcodes_sn_rna,
276-
features = STARsoloFastq.features_sn_rna,
277-
matrix = STARsoloFastq.matrix_sn_rna,
278-
cell_reads = STARsoloFastq.cell_reads_sn_rna,
254+
barcodes = [STARsoloFastq.barcodes_sn_rna],
255+
features = [STARsoloFastq.features_sn_rna],
256+
matrix = [STARsoloFastq.matrix_sn_rna],
257+
cell_reads = [STARsoloFastq.cell_reads_sn_rna],
279258
input_id = input_id,
280259
counting_mode = "sc_rna",
281-
summary = STARsoloFastq.summary_sn_rna,
282-
align_features = STARsoloFastq.align_features_sn_rna,
283-
umipercell = STARsoloFastq.umipercell_sn_rna,
260+
summary = [STARsoloFastq.summary_sn_rna],
261+
align_features = [STARsoloFastq.align_features_sn_rna],
262+
umipercell = [STARsoloFastq.umipercell_sn_rna],
284263
star_merge_docker_path = docker_prefix + star_merge_docker,
285264
gex_nhash_id = gex_nhash_id
286265
}
@@ -351,7 +330,7 @@ workflow Optimus {
351330
# version of this pipeline
352331
String pipeline_version_out = pipeline_version
353332
File genomic_reference_version = ReferenceCheck.genomic_ref_version
354-
File bam = MergeBam.output_bam
333+
File bam = STARsoloFastq.bam_output
355334
File matrix = MergeStarOutputs.sparse_counts
356335
File matrix_row_index = MergeStarOutputs.row_index
357336
File matrix_col_index = MergeStarOutputs.col_index
@@ -363,12 +342,11 @@ workflow Optimus {
363342
File? mtx_files = MergeStarOutputs.mtx_files
364343
File? filtered_mtx_files = MergeStarOutputs.filtered_mtx_files
365344

366-
Array[File?] multimappers_EM_matrix = STARsoloFastq.multimappers_EM_matrix
367-
Array[File?] multimappers_Uniform_matrix = STARsoloFastq.multimappers_Uniform_matrix
368-
Array[File?] multimappers_Rescue_matrix = STARsoloFastq.multimappers_Rescue_matrix
369-
Array[File?] multimappers_PropUnique_matrix = STARsoloFastq.multimappers_PropUnique_matrix
345+
File? multimappers_EM_matrix = STARsoloFastq.multimappers_EM_matrix
346+
File? multimappers_Uniform_matrix = STARsoloFastq.multimappers_Uniform_matrix
347+
File? multimappers_Rescue_matrix = STARsoloFastq.multimappers_Rescue_matrix
348+
File? multimappers_PropUnique_matrix = STARsoloFastq.multimappers_PropUnique_matrix
370349

371-
372350
# h5ad
373351
File h5ad_output_file = final_h5ad_output
374352

pipelines/skylab/paired_tag/PairedTag.changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 2.0.0
2+
2025-03-19 (Date of Last Commit)
3+
* Refactored the STAR alignment step in Optimus and removed tasks FastqProcessing and MergeSortBamFiles; we are no longer sharding. We are now running one instance of STAR
4+
15
# 1.10.2
26
2025-02-25 (Date of Last Commit)
37

pipelines/skylab/paired_tag/PairedTag.wdl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import "../../../tasks/broad/Utilities.wdl" as utils
88

99
workflow PairedTag {
1010

11-
String pipeline_version = "1.10.2"
12-
11+
String pipeline_version = "2.0.0"
1312

1413
input {
1514
String input_id
@@ -178,10 +177,12 @@ workflow PairedTag {
178177
File? cell_calls_gex = Optimus.cell_calls
179178
File h5ad_output_file_gex = Optimus.h5ad_output_file
180179
File? library_metrics = Optimus.library_metrics
181-
Array[File?] multimappers_EM_matrix = Optimus.multimappers_EM_matrix
182-
Array[File?] multimappers_Uniform_matrix = Optimus.multimappers_Uniform_matrix
183-
Array[File?] multimappers_Rescue_matrix = Optimus.multimappers_Rescue_matrix
184-
Array[File?] multimappers_PropUnique_matrix = Optimus.multimappers_PropUnique_matrix
180+
File? multimappers_EM_matrix = Optimus.multimappers_EM_matrix
181+
File? multimappers_Uniform_matrix = Optimus.multimappers_Uniform_matrix
182+
File? multimappers_Rescue_matrix = Optimus.multimappers_Rescue_matrix
183+
File? multimappers_PropUnique_matrix = Optimus.multimappers_PropUnique_matrix
184+
185+
# cellbender outputs
185186
File? cell_barcodes_csv = Optimus.cell_barcodes_csv
186187
File? checkpoint_file = Optimus.checkpoint_file
187188
Array[File]? h5_array = Optimus.h5_array

pipelines/skylab/slideseq/SlideSeq.changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 3.5.0
2+
2025-02-25 (Date of Last Commit)
3+
* Refactored the STAR alignment step (STARsoloFastq ) in Optimus and removed tasks FastqProcessing and MergeSortBamFiles; we are no longer sharding. We are now running one instance of STAR; this does not affect the outputs of the pipeline
4+
15
# 3.4.9
26
2025-02-25 (Date of Last Commit)
37
* Updated the warp-tools docker image to include an update to the GroupQCs function in sctools; this does not affect the outputs of the pipeline

pipelines/skylab/slideseq/SlideSeq.wdl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import "../../../tasks/broad/Utilities.wdl" as utils
2525

2626
workflow SlideSeq {
2727

28-
String pipeline_version = "3.4.9"
28+
String pipeline_version = "3.5.0"
2929

3030
input {
3131
Array[File] r1_fastq

0 commit comments

Comments
 (0)