Skip to content
This repository has been archived by the owner on Apr 19, 2023. It is now read-only.

Commit

Permalink
Merge pull request #45 from aertslab/hotfixes
Browse files Browse the repository at this point in the history
Hotfixes

Former-commit-id: 840d5d3
  • Loading branch information
dweemx authored Nov 18, 2019
2 parents 039e4da + 492402d commit a82a728
Show file tree
Hide file tree
Showing 22 changed files with 146 additions and 128 deletions.
2 changes: 1 addition & 1 deletion nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ manifest {
name = 'aertslab/SingleCellTxBenchmark'
description = 'A repository of pipelines for single-cell data in Nextflow DSL2'
homePage = 'https://github.com/aertslab/SingleCellTxBenchmark'
version = '0.3.3'
version = '0.3.4'
mainScript = 'main.nf'
defaultBranch = 'master'
nextflowVersion = '!19.09.0-edge' // with ! prefix, stop execution if current version does not match required version.
Expand Down
15 changes: 9 additions & 6 deletions src/scanpy/processes/adjust.nf
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/files.nf'
if(!params.containsKey("test")) {
binDir = "${workflow.projectDir}/src/scanpy/bin/"
} else {
binDir = ""
}

params.normalizationVariablesToRegressOut = ['n_counts','percent_mito']
normalizationVariablesToRegressOutAsArguments = params.normalizationVariablesToRegressOut.collect({ '--variable-to-regress-out' + ' ' + it }).join(' ')
Expand All @@ -11,16 +15,15 @@ process SC__SCANPY__ADJUSTMENT {
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__ADJUSTMENT.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__ADJUSTMENT.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/adjust/sc_adjustment.py \
${binDir}adjust/sc_adjustment.py \
${(params.containsKey('adjustmentMethod')) ? '--method ' + params.adjustmentMethod : ''} \
${(params.containsKey('normalizationVariablesToRegressOut')) ? normalizationVariablesToRegressOutAsArguments : ''} \
$f \
"${getBaseName(f)}.SC__SCANPY__ADJUSTMENT.${params.off}"
"${id}.SC__SCANPY__ADJUSTMENT.${params.off}"
"""
}

15 changes: 9 additions & 6 deletions src/scanpy/processes/batch_effect_correct.nf
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/processes/files.nf'
if(!params.containsKey("test")) {
binDir = "${workflow.projectDir}/src/scanpy/bin/"
} else {
binDir = ""
}

process SC__SCANPY__BATCH_EFFECT_CORRECTION {

container params.sc.scanpy.container
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${params.project_name}.SC__SCANPY__BATCH_EFFECT_CORRECTION.${params.off}" //#"${getBaseName(f).get()}.SC__SCANPY__BATCH_EFFECT_CORRECTION.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__BATCH_EFFECT_CORRECTION.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/aggregate/sc_batch_effect_correction.py \
${binDir}aggregate/sc_batch_effect_correction.py \
${(params.containsKey('batchEffectCorrectionMethod')) ? '--method ' + params.batchEffectCorrectionMethod : ''} \
--output-file "${params.project_name}.SC__SCANPY__BATCH_EFFECT_CORRECTION.${params.off}" \
--output-file "${id}.SC__SCANPY__BATCH_EFFECT_CORRECTION.${params.off}" \
${(params.containsKey('key')) ? '--key ' + params.key : ''} \
${(params.containsKey('batchKey')) ? '--batch-key ' + params.batchKey : ''} \
${(params.containsKey('nPcs')) ? '--n-pcs ' + params.nPcs : ''} \
Expand All @@ -28,4 +32,3 @@ process SC__SCANPY__BATCH_EFFECT_CORRECTION {
$f
"""
}

15 changes: 9 additions & 6 deletions src/scanpy/processes/cluster.nf
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/processes/files.nf'
if(!params.containsKey("test")) {
binDir = "${workflow.projectDir}/src/scanpy/bin/"
} else {
binDir = ""
}

process SC__SCANPY__CLUSTERING {

container params.sc.scanpy.container
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__CLUSTERING.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__CLUSTERING.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/cluster/sc_clustering.py \
${binDir}cluster/sc_clustering.py \
${(params.containsKey('clusteringMethod')) ? '--method ' + params.clusteringMethod : ''} \
${(params.containsKey('resolution')) ? '--resolution ' + params.resolution : ''} \
$f \
"${getBaseName(f)}.SC__SCANPY__CLUSTERING.${params.off}"
"${id}.SC__SCANPY__CLUSTERING.${params.off}"
"""
}

14 changes: 9 additions & 5 deletions src/scanpy/processes/dim_reduction.nf
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/processes/files.nf'
if(!params.containsKey("test")) {
binDir = "${workflow.projectDir}/src/scanpy/bin/"
} else {
binDir = ""
}

process SC__SCANPY__DIM_REDUCTION {

container params.sc.scanpy.container
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__DIM_REDUCTION_${method}.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__DIM_REDUCTION_${method}.${params.off}")
script:
method = params.dimReductionMethod.replaceAll('-','').toUpperCase()
"""
${workflow.projectDir}/src/scanpy/bin/dim_reduction/sc_dim_reduction.py \
${binDir}dim_reduction/sc_dim_reduction.py \
${(params.containsKey('dimReductionMethod')) ? '--method ' + params.dimReductionMethod : ''} \
${(params.containsKey('svdSolver')) ? '--svd-solver ' + params.svdSolver : ''} \
${(params.containsKey('nNeighbors')) ? '--n-neighbors ' + params.nNeighbors : ''} \
Expand All @@ -23,7 +27,7 @@ process SC__SCANPY__DIM_REDUCTION {
${(params.containsKey('nJobs')) ? '--n-jobs ' + params.nJobs : ''} \
${(params.containsKey('useFastTsne') && !params.useFastTsne) ? '' : '--use-fast-tsne'} \
$f \
"${getBaseName(f)}.SC__SCANPY__DIM_REDUCTION_${method}.${params.off}"
"${id}.SC__SCANPY__DIM_REDUCTION_${method}.${params.off}"
"""
}

14 changes: 9 additions & 5 deletions src/scanpy/processes/feature_selection.nf
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/processes/files.nf'
if(!params.containsKey("test")) {
binDir = "${workflow.projectDir}/src/scanpy/bin/"
} else {
binDir = ""
}

process SC__SCANPY__FEATURE_SELECTION {

container params.sc.scanpy.container
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__FEATURE_SELECTION.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__FEATURE_SELECTION.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/feature_selection/sc_select_variable_genes.py \
${binDir}feature_selection/sc_select_variable_genes.py \
--method $params.featureSelectionMethod \
${(params.containsKey('featureSelectionMinMean')) ? '--min-mean ' + params.featureSelectionMinMean : ''} \
${(params.containsKey('featureSelectionMaxMean')) ? '--max-mean ' + params.featureSelectionMaxMean : ''} \
${(params.containsKey('featureSelectionMinDisp')) ? '--min-disp ' + params.featureSelectionMinDisp : ''} \
${(params.containsKey('featureSelectionMaxDisp')) ? '--max-disp ' + params.featureSelectionMaxDisp : ''} \
$f \
"${getBaseName(f)}.SC__SCANPY__FEATURE_SELECTION.${params.off}"
"${id}.SC__SCANPY__FEATURE_SELECTION.${params.off}"
"""
}

34 changes: 18 additions & 16 deletions src/scanpy/processes/filter.nf
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/processes/files.nf'

if(!params.containsKey("test")) {
binDir = "${workflow.projectDir}/src/scanpy/bin/"
} else {
binDir = ""
}

process SC__SCANPY__COMPUTE_QC_STATS {

container params.sc.scanpy.container

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__COMPUTE_QC_STATS.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__COMPUTE_QC_STATS.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/filter/sc_cell_gene_filtering.py \
${binDir}filter/sc_cell_gene_filtering.py \
compute \
$f \
${getBaseName(f)}.SC__SCANPY__COMPUTE_QC_STATS.${params.off} \
${id}.SC__SCANPY__COMPUTE_QC_STATS.${params.off} \
${(params.containsKey('cellFilterMinNCounts')) ? '--min-n-counts ' + params.cellFilterMinNCounts : ''} \
${(params.containsKey('cellFilterMaxNCounts')) ? '--max-n-counts ' + params.cellFilterMaxNCounts : ''} \
${(params.containsKey('cellFilterMinNGenes')) ? '--min-n-genes ' + params.cellFilterMinNGenes : ''} \
Expand All @@ -33,16 +36,16 @@ process SC__SCANPY__GENE_FILTER {
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__GENE_FILTER.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__GENE_FILTER.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/filter/sc_cell_gene_filtering.py \
${binDir}filter/sc_cell_gene_filtering.py \
genefilter \
$f \
${getBaseName(f)}.SC__SCANPY__GENE_FILTER.${params.off} \
${(params.containsKey('geneFilterMinNCells')) ? '--min-number-cells ' + params.geneFilterMinNCells : ''} \
${id}.SC__SCANPY__GENE_FILTER.${params.off} \
${(params.containsKey('geneFilterMinNCells')) ? '--min-number-cells ' + params.geneFilterMinNCells : ''}
"""
}

Expand All @@ -53,20 +56,19 @@ process SC__SCANPY__CELL_FILTER {
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__CELL_FILTER.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__CELL_FILTER.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/filter/sc_cell_gene_filtering.py \
${binDir}filter/sc_cell_gene_filtering.py \
cellfilter \
$f \
${getBaseName(f)}.SC__SCANPY__CELL_FILTER.${params.off} \
${id}.SC__SCANPY__CELL_FILTER.${params.off} \
${(params.containsKey('cellFilterMinNCounts')) ? '--min-n-counts ' + params.cellFilterMinNCounts : ''} \
${(params.containsKey('cellFilterMaxNCounts')) ? '--max-n-counts ' + params.cellFilterMaxNCounts : ''} \
${(params.containsKey('cellFilterMinNGenes')) ? '--min-n-genes ' + params.cellFilterMinNGenes : ''} \
${(params.containsKey('cellFilterMaxNGenes')) ? '--max-n-genes ' + params.cellFilterMaxNGenes : ''} \
${(params.containsKey('cellFilterMaxPercentMito')) ? '--max-percent-mito ' + params.cellFilterMaxPercentMito : ''}
"""
}

14 changes: 9 additions & 5 deletions src/scanpy/processes/marker_genes.nf
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/processes/files.nf'
if(!params.containsKey("test")) {
binDir = "${workflow.projectDir}/src/scanpy/bin/"
} else {
binDir = ""
}

process SC__SCANPY__MARKER_GENES {

container params.sc.scanpy.container
publishDir "${params.outdir}/data/intermediate", mode: 'symlink', overwrite: true

input:
file(f)
tuple val(id), file(f)
output:
file "${getBaseName(f)}.SC__SCANPY__MARKER_GENES.${params.off}"
tuple val(id), file("${id}.SC__SCANPY__MARKER_GENES.${params.off}")
script:
"""
${workflow.projectDir}/src/scanpy/bin/cluster/sc_marker_genes.py \
${binDir}cluster/sc_marker_genes.py \
${(params.containsKey('method')) ? '--method ' + params.method : ''} \
${(params.containsKey('groupby')) ? '--groupby ' + params.groupby : ''} \
${(params.containsKey('ngenes')) ? '--ngenes ' + params.ngenes : ''} \
$f \
"${getBaseName(f)}.SC__SCANPY__MARKER_GENES.${params.off}"
"${id}.SC__SCANPY__MARKER_GENES.${params.off}"
"""
}

18 changes: 6 additions & 12 deletions src/scanpy/processes/reports.nf
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
nextflow.preview.dsl=2

include getBaseName from '../../utils/processes/files.nf'

/* general reporting function:
takes a template ipynb and adata as input,
outputs ipynb named by the value in ${report_title}
Expand All @@ -13,15 +11,14 @@ process SC__SCANPY__GENERATE_REPORT {

input:
file ipynb
file adata
tuple val(id), file(adata)
val report_title

output:
file("${getBaseName(adata)}.${report_title}.ipynb")
file("${id}.${report_title}.ipynb")
script:
"""
papermill ${ipynb} \
${getBaseName(adata)}.${report_title}.ipynb \
${id}.${report_title}.ipynb \
-p FILE $adata
"""
}
Expand All @@ -34,16 +31,14 @@ process SC__SCANPY__FILTER_QC_REPORT {

input:
file(ipynb)
file(unfiltered)
file(filtered)
tuple val(id), file(unfiltered), file(filtered)
val report_title

output:
file("${getBaseName(unfiltered)}.${report_title}.ipynb")
file("${id}.${report_title}.ipynb")
script:
"""
papermill ${ipynb} \
${getBaseName(unfiltered)}.${report_title}.ipynb \
${id}.${report_title}.ipynb \
-p FILE1 $unfiltered -p FILE2 $filtered
"""
}
Expand All @@ -57,7 +52,6 @@ process SC__SCANPY__REPORT_TO_HTML {

input:
file ipynb

output:
file "*.html"
script:
Expand Down
Loading

0 comments on commit a82a728

Please sign in to comment.