Merge branch 'CW-7332' into 'dev'
IGV tracks mismatch index when there is one BAM per sample [CW-7332,CW-7349] Closes CW-7332 See merge request epi2melabs/workflows/wf-transcriptomes!332
This commit is contained in:
commit
f698102333
@ -12,7 +12,7 @@ variables:
|
|||||||
PYTEST_TESTS_PATH: "bin/workflow_glue/tests/common"
|
PYTEST_TESTS_PATH: "bin/workflow_glue/tests/common"
|
||||||
RTEST_CONTAINER_NAME: "wf-transcriptomes-core"
|
RTEST_CONTAINER_NAME: "wf-transcriptomes-core"
|
||||||
RTEST_CONTAINER_CONFIG_KEY: "container_sha"
|
RTEST_CONTAINER_CONFIG_KEY: "container_sha"
|
||||||
WF_TEMPLATE_ENFORCEMENT_REF: "v6.1.0-rc1"
|
WF_TEMPLATE_ENFORCEMENT_REF: "v6.1.0-rc2"
|
||||||
EKS_RUNNER_SIZE: "xlarge-highio"
|
EKS_RUNNER_SIZE: "xlarge-highio"
|
||||||
|
|
||||||
pytest_wfcontainer:
|
pytest_wfcontainer:
|
||||||
|
|||||||
@ -15,6 +15,7 @@ Users of wf-transcriptomes v2.0.0 who have encountered issues during discovery a
|
|||||||
- "unable to find an inherited method for function 'rowData'" encountered during `runJointBambuDiscover` when providing many samples. The workflow now correctly handles data spilled to disk by bambu discover.
|
- "unable to find an inherited method for function 'rowData'" encountered during `runJointBambuDiscover` when providing many samples. The workflow now correctly handles data spilled to disk by bambu discover.
|
||||||
- Volcano plot class counts incorrect when `log2FoldChange` or `padj` columns contained NA values.
|
- Volcano plot class counts incorrect when `log2FoldChange` or `padj` columns contained NA values.
|
||||||
- Adjusted p-values below 0.001 in the volcano selection table are now shown in scientific notation instead of being rounded to 0.000.
|
- Adjusted p-values below 0.001 in the volcano selection table are now shown in scientific notation instead of being rounded to 0.000.
|
||||||
|
- IGV track not correctly loading in EPI2ME Desktop when a sample consists of a single input BAM.
|
||||||
|
|
||||||
## [v2.0.0]
|
## [v2.0.0]
|
||||||
|
|
||||||
|
|||||||
@ -480,14 +480,15 @@ def xam_ingress(Map arguments, aln_ref_ch = null)
|
|||||||
output_xam_fmt,
|
output_xam_fmt,
|
||||||
margs
|
margs
|
||||||
)
|
)
|
||||||
// Update meta is unaligned
|
// Update meta for newly aligned inputs
|
||||||
mm2_aln_final = mm2_aln.alignment.map{
|
mm2_aln_final = mm2_aln.alignment.map{
|
||||||
meta, xam, xai, stats ->
|
meta, xam, xai, stats ->
|
||||||
// remove alignment routing metadata that is no longer required
|
// remove alignment routing metadata that is no longer required
|
||||||
def newmeta = meta.findAll {
|
def newmeta = meta.findAll {
|
||||||
k, v -> !(k in ['has_reads', 'requires_alignment'])
|
k, v -> !(k in ['has_reads', 'requires_alignment'])
|
||||||
}
|
}
|
||||||
[newmeta + [is_unaligned: false], xam, xai, stats]
|
// flip is_unaligned marker and drop references to input xam
|
||||||
|
[newmeta + [is_unaligned: false, src_xam: null, src_xai: null], xam, xai, stats]
|
||||||
}
|
}
|
||||||
// Process BAM files that do not require realignment by passing them through the standard downstream steps (merging, sorting, indexing, etc.)
|
// Process BAM files that do not require realignment by passing them through the standard downstream steps (merging, sorting, indexing, etc.)
|
||||||
ch_result_tmp = alignment_fork.noalign.map{
|
ch_result_tmp = alignment_fork.noalign.map{
|
||||||
|
|||||||
23
main.nf
23
main.nf
@ -177,8 +177,9 @@ workflow wf {
|
|||||||
.collect()
|
.collect()
|
||||||
|
|
||||||
// meta.src_xam is non-null if BAMs are "passed through"
|
// meta.src_xam is non-null if BAMs are "passed through"
|
||||||
|
// while meta.src_xai can be null if xam are provided without index
|
||||||
generated_alignment_outputs = reads
|
generated_alignment_outputs = reads
|
||||||
.filter { meta, bam, bai, stats -> meta.src_xam == null }
|
.filter { meta, bam, bai, stats -> meta.src_xam == null || meta.src_xai == null }
|
||||||
.flatMap { meta, bam, bai, stats ->
|
.flatMap { meta, bam, bai, stats ->
|
||||||
def outdir = "samples/${meta.alias}/alignment"
|
def outdir = "samples/${meta.alias}/alignment"
|
||||||
[
|
[
|
||||||
@ -343,7 +344,6 @@ workflow {
|
|||||||
] + ingress_args, ref_genome)
|
] + ingress_args, ref_genome)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sample_sheet_aliases = sample_sheet == OPTIONAL_FILE ?
|
sample_sheet_aliases = sample_sheet == OPTIONAL_FILE ?
|
||||||
null :
|
null :
|
||||||
sample_sheet
|
sample_sheet
|
||||||
@ -359,7 +359,6 @@ workflow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
analysis_samples = samples
|
analysis_samples = samples
|
||||||
.filter { meta, xam, xai, stats ->
|
.filter { meta, xam, xai, stats ->
|
||||||
boolean is_excluded = false
|
boolean is_excluded = false
|
||||||
@ -387,7 +386,6 @@ workflow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
processed_samples = analysis_samples
|
processed_samples = analysis_samples
|
||||||
|
|
||||||
pipeline_run = wf(processed_samples, sample_sheet, ref_genome, ref_annotation)
|
pipeline_run = wf(processed_samples, sample_sheet, ref_genome, ref_annotation)
|
||||||
results = pipeline_run.results
|
results = pipeline_run.results
|
||||||
|
|
||||||
@ -417,11 +415,18 @@ workflow {
|
|||||||
.map { [ it[0], "reference" ] }
|
.map { [ it[0], "reference" ] }
|
||||||
|
|
||||||
igv_alignment_paths = processed_samples
|
igv_alignment_paths = processed_samples
|
||||||
.map { meta, bam, bai, stat -> [
|
.map { meta, bam, bai, stat ->
|
||||||
meta.src_xam ?: "${meta.alias},samples/${meta.alias}/alignment/reads.bam",
|
// Fall back to the published BAM/BAI pair whenever either source path is missing.
|
||||||
meta.src_xai ?: "${meta.alias},samples/${meta.alias}/alignment/reads.bam.bai"
|
def use_published_alignment = (meta.src_xam == null || meta.src_xai == null)
|
||||||
] }
|
[
|
||||||
.flatten()
|
use_published_alignment
|
||||||
|
? "${meta.alias},samples/${meta.alias}/alignment/reads.bam"
|
||||||
|
: "${meta.alias},${meta.src_xam}",
|
||||||
|
use_published_alignment
|
||||||
|
? "${meta.alias},samples/${meta.alias}/alignment/reads.bam.bai"
|
||||||
|
: "${meta.alias},${meta.src_xai}",
|
||||||
|
]
|
||||||
|
}.flatten()
|
||||||
|
|
||||||
// convert [alias0, [bw00...bw0N]] to [alias0, bw00] ... [aliasN, bwNN]
|
// convert [alias0, [bw00...bw0N]] to [alias0, bw00] ... [aliasN, bwNN]
|
||||||
// allowing for [aliasM, bwM0] if only one bw is output because ... nextflow
|
// allowing for [aliasM, bwM0] if only one bw is output because ... nextflow
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user