Skip to content
Snippets Groups Projects
Commit d1f94a03 authored by Jeremy Mathews's avatar Jeremy Mathews
Browse files

Add Cellranger v3.1.0

parent c5d45c28
Branches
Tags
2 merge requests!57Develop,!54Resolve "Add cellranger v 3.1.0"
Pipeline #4580 failed
...@@ -39,8 +39,8 @@ simple_1: ...@@ -39,8 +39,8 @@ simple_1:
- develop - develop
- master - master
script: script:
- nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/hu.v3s1r500/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/hu.v3s1r500/design.csv" --genome 'GRCh38-3.0.0' --kitVersion 'three' --version '3.0.2' - nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/hu.v3s1r500/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/hu.v3s1r500/design.csv" --genome 'GRCh38-3.0.0' --kitVersion 'three' --version '3.1.0'
- pytest -m count302 - pytest -m count310
artifacts: artifacts:
name: "$CI_JOB_NAME" name: "$CI_JOB_NAME"
when: always when: always
...@@ -60,9 +60,8 @@ simple_2: ...@@ -60,9 +60,8 @@ simple_2:
- develop - develop
- master - master
- tags - tags
script: script: - nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/mu.v3s1r500/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/mu.v3s1r500/design.csv" --genome 'mm10-3.0.0' --kitVersion 'three' --version '3.1.0'
- nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/mu.v3s1r500/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/mu.v3s1r500/design.csv" --genome 'mm10-3.0.0' --kitVersion 'three' --version '3.0.1' - pytest -m count310
- pytest -m count301
artifacts: artifacts:
name: "$CI_JOB_NAME" name: "$CI_JOB_NAME"
when: always when: always
...@@ -82,8 +81,8 @@ detailed_1: ...@@ -82,8 +81,8 @@ detailed_1:
except: except:
- tags - tags
script: script:
- nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/hu.v3s2r10k/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/hu.v3s2r10k/design.csv" --genome 'GRCh38-3.0.0' --kitVersion 'auto' --version '3.0.2' - nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/hu.v3s2r10k/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/hu.v3s2r10k/design.csv" --genome 'GRCh38-3.0.0' --kitVersion 'auto' --version '3.1.0'
- pytest -m count302 - pytest -m count310
artifacts: artifacts:
name: "$CI_JOB_NAME" name: "$CI_JOB_NAME"
when: always when: always
...@@ -95,6 +94,7 @@ detailed_1: ...@@ -95,6 +94,7 @@ detailed_1:
when: when:
- always - always
detailed_2: detailed_2:
stage: detailed stage: detailed
only: only:
...@@ -103,7 +103,7 @@ detailed_2: ...@@ -103,7 +103,7 @@ detailed_2:
except: except:
- tags - tags
script: script:
- nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/mu.v3s2r10k/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/mu.v3s2r10k/design.csv" --genome 'mm10-3.0.0' --kitVersion 'three' --version '3.0.2' - nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/hu.v3s2r10k/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/hu.v3s2r10k/design.csv" --genome 'GRCh38-3.0.0' --kitVersion 'auto' --version '3.0.2'
- pytest -m count302 - pytest -m count302
artifacts: artifacts:
name: "$CI_JOB_NAME" name: "$CI_JOB_NAME"
...@@ -117,6 +117,27 @@ detailed_2: ...@@ -117,6 +117,27 @@ detailed_2:
- always - always
detailed_3: detailed_3:
stage: detailed
only:
- develop
- master
except:
- tags
script:
- nextflow run workflow/main.nf --fastq "$CI_PROJECT_DIR/test_data/mu.v3s2r10k/*.fastq.gz" --designFile "$CI_PROJECT_DIR/test_data/mu.v3s2r10k/design.csv" --genome 'mm10-3.0.0' --kitVersion 'three' --version '3.0.1'
- pytest -m count301
artifacts:
name: "$CI_JOB_NAME"
when: always
paths:
- .nextflow.log
expire_in: 2 days
retry:
max: 1
when:
- always
detailed_4:
stage: detailed stage: detailed
only: only:
- develop - develop
......
# v1.2.0 (in development) # v1.2.0 (in development)
**User Facing** **User Facing**
* Add Cellranger Version 3.1.0
**Background** **Background**
......
...@@ -46,8 +46,9 @@ To Run: ...@@ -46,8 +46,9 @@ To Run:
* *'hg19-1.2.0'* = Human GRCh37 (hg19) release 84 * *'hg19-1.2.0'* = Human GRCh37 (hg19) release 84
* *'mm10-3.0.0'* = Mouse GRCm38 (mm10) release 93 * *'mm10-3.0.0'* = Mouse GRCm38 (mm10) release 93
* *'mm10-3.0.0'* = Mouse GRCm38 (mm10) release 84 * *'mm10-3.0.0'* = Mouse GRCm38 (mm10) release 84
* *'hg19_and_mm10-3.0.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm19) release 93 * *'GRCh38_and_mm10-3.1.0'* = Human GRCh38 + Mouse GRCm38 (mm10) release 93
* *'hg19_and_mm10-1.2.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm19) release 84 * *'hg19_and_mm10-3.0.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm10) release 93
* *'hg19_and_mm10-1.2.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm10) release 84
* *'ercc92-1.2.0'* = ERCC.92 Spike-In * *'ercc92-1.2.0'* = ERCC.92 Spike-In
* if --genome is used then --genomeLocationFull is not necessary * if --genome is used then --genomeLocationFull is not necessary
* eg: **--genome 'GRCh38-3.0.0'** * eg: **--genome 'GRCh38-3.0.0'**
...@@ -83,16 +84,17 @@ To Run: ...@@ -83,16 +84,17 @@ To Run:
* cellranger version * cellranger version
* --version (cellranger version) 2.1.1 can only read --kitVersion of two (2) * --version (cellranger version) 2.1.1 can only read --kitVersion of two (2)
* options: * options:
* *'3.1.0'*
* *'3.0.2'* * *'3.0.2'*
* *'3.0.1'* * *'3.0.1'*
* *'2.1.1'* * *'2.1.1'*
* eg: **--version '3.0.2'** * eg: **--version '3.1.0'**
* **--outDir** * **--outDir**
* optional output directory for run * optional output directory for run
* eg: **--outDir 'test'** * eg: **--outDir 'test'**
* FULL EXAMPLE: * FULL EXAMPLE:
``` ```
nextflow run workflow/main.nf --fastq '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_count/hu.v3s2r100k/*.fastq.gz' --designFile '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_count/hu.v3s2r100k/design.csv' --genome 'GRCh38-3.0.0' --kitVersion 'three' --version '3.0.2' --outDir 'test' nextflow run workflow/main.nf --fastq '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_count/hu.v3s2r100k/*.fastq.gz' --designFile '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_count/hu.v3s2r100k/design.csv' --genome 'GRCh38-3.0.0' --kitVersion 'three' --version '3.1.0' --outDir 'test'
``` ```
* Design example: * Design example:
......
...@@ -43,6 +43,7 @@ workflow_modules: ...@@ -43,6 +43,7 @@ workflow_modules:
- 'cellranger/2.1.1' - 'cellranger/2.1.1'
- 'cellranger/3.0.1' - 'cellranger/3.0.1'
- 'cellranger/3.0.2' - 'cellranger/3.0.2'
- 'cellranger/3.1.0'
- 'bcl2fastq/2.17.1.14' - 'bcl2fastq/2.17.1.14'
- 'multiqc/1.7' - 'multiqc/1.7'
...@@ -104,8 +105,9 @@ workflow_parameters: ...@@ -104,8 +105,9 @@ workflow_parameters:
- ['hg19-1.2.0', 'Human GRCh37 (hg19) release 84'] - ['hg19-1.2.0', 'Human GRCh37 (hg19) release 84']
- ['mm10-3.0.0', 'Mouse GRCm38 (mm10) release 93'] - ['mm10-3.0.0', 'Mouse GRCm38 (mm10) release 93']
- ['mm10-1.2.0', 'Mouse GRCm38 (mm10) release 84'] - ['mm10-1.2.0', 'Mouse GRCm38 (mm10) release 84']
- ['hg19_and_mm10-3.0.0', 'Human GRCh37 (hg19) + Mouse GRCm38 (mm19) release 93'] - ['GRCh38_and_mm10-3.1.0', 'Human GRCh38 + Mouse GRCm38 (mm10) release 93']
- ['hg19_and_mm10-1.2.0', 'Human GRCh37 (hg19) + Mouse GRCm38 (mm19) release 84'] - ['hg19_and_mm10-3.0.0', 'Human GRCh37 (hg19) + Mouse GRCm38 (mm10) release 93']
- ['hg19_and_mm10-1.2.0', 'Human GRCh37 (hg19) + Mouse GRCm38 (mm10) release 84']
- ['ercc92-1.2.0', 'ERCC.92 Spike-In'] - ['ercc92-1.2.0', 'ERCC.92 Spike-In']
required: true required: true
description: | description: |
...@@ -142,8 +144,9 @@ workflow_parameters: ...@@ -142,8 +144,9 @@ workflow_parameters:
- id: version - id: version
type: select type: select
default: '3.0.2' default: '3.1.0'
choices: choices:
- ['3.1.0', '3.1.0']
- ['3.0.2', '3.0.2'] - ['3.0.2', '3.0.2']
- ['3.0.1', '3.0.1'] - ['3.0.1', '3.0.1']
- ['2.1.1', '2.1.1'] - ['2.1.1', '2.1.1']
......
...@@ -36,8 +36,9 @@ To Run: ...@@ -36,8 +36,9 @@ To Run:
* *'hg19-1.2.0'* = Human GRCh37 (hg19) release 84 * *'hg19-1.2.0'* = Human GRCh37 (hg19) release 84
* *'mm10-3.0.0'* = Human GRCm38 (mm10) release 93 * *'mm10-3.0.0'* = Human GRCm38 (mm10) release 93
* *'mm10-3.0.0'* = Human GRCm38 (mm10) release 84 * *'mm10-3.0.0'* = Human GRCm38 (mm10) release 84
* *'hg19_and_mm10-3.0.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm19) release 93 * *'GRCh38-and-mm10-3.1.0'* = Human GRCh38 + Mouse GRCm38 (mm10) release 93
* *'hg19_and_mm10-1.2.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm19) release 84 * *'hg19_and_mm10-3.0.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm10) release 93
* *'hg19_and_mm10-1.2.0'* = Human GRCh37 (hg19) + Mouse GRCm38 (mm10) release 84
* *'ercc92-1.2.0'* = ERCC.92 Spike-In * *'ercc92-1.2.0'* = ERCC.92 Spike-In
* **expect cells** * **expect cells**
* Expected number of recovered cells. * Expected number of recovered cells.
......
...@@ -18,6 +18,10 @@ process { ...@@ -18,6 +18,10 @@ process {
module = ['cellranger/3.0.2'] module = ['cellranger/3.0.2']
queue = '128GB,256GB,256GBv1,384GB' queue = '128GB,256GB,256GBv1,384GB'
} }
withLabel: count310 {
module = ['cellranger/3.1.0']
queue = '128GB,256GB,256GBv1,384GB'
}
withLabel: versions { withLabel: versions {
module = ['python/3.6.1-2-anaconda','pandoc/2.7','multiqc/1.7'] module = ['python/3.6.1-2-anaconda','pandoc/2.7','multiqc/1.7']
executor = 'local' executor = 'local'
...@@ -49,6 +53,9 @@ params { ...@@ -49,6 +53,9 @@ params {
'mm10-1.2.0' { 'mm10-1.2.0' {
loc = '/project/apps_database/cellranger/refdata-cellranger-' loc = '/project/apps_database/cellranger/refdata-cellranger-'
} }
'GRCh38_and_mm10-3.1.0' {
loc = '/project/apps_database/cellranger/refdata-cellranger-'
}
'hg19_and_mm10-3.0.0' { 'hg19_and_mm10-3.0.0' {
loc = '/project/apps_database/cellranger/refdata-cellranger-' loc = '/project/apps_database/cellranger/refdata-cellranger-'
} }
......
...@@ -11,7 +11,7 @@ params.genome = 'GRCh38-3.0.0' ...@@ -11,7 +11,7 @@ params.genome = 'GRCh38-3.0.0'
params.expectCells = 10000 params.expectCells = 10000
params.forceCells = 0 params.forceCells = 0
params.kitVersion = 'three' params.kitVersion = 'three'
params.version = '3.0.2' params.version = '3.1.0'
params.astrocyte = false params.astrocyte = false
params.outDir = "${baseDir}/output" params.outDir = "${baseDir}/output"
params.multiqcConf = "${baseDir}/conf/multiqc_config.yaml" params.multiqcConf = "${baseDir}/conf/multiqc_config.yaml"
...@@ -100,20 +100,25 @@ samples.into { ...@@ -100,20 +100,25 @@ samples.into {
samples211 samples211
samples301 samples301
samples302 samples302
samples310
} }
refLocation.into { refLocation.into {
refLocation211 refLocation211
refLocation301 refLocation301
refLocation302 refLocation302
refLocation310
} }
expectCells211 = expectCells expectCells211 = expectCells
expectCells301 = expectCells expectCells301 = expectCells
expectCells302 = expectCells expectCells302 = expectCells
expectCells310 = expectCells
forceCells211 = forceCells forceCells211 = forceCells
forceCells301 = forceCells forceCells301 = forceCells
forceCells302 = forceCells forceCells302 = forceCells
forceCells310 = forceCells
chemistryParam301 = chemistryParam chemistryParam301 = chemistryParam
chemistryParam302 = chemistryParam chemistryParam302 = chemistryParam
chemistryParam310 = chemistryParam
process count211 { process count211 {
...@@ -247,6 +252,50 @@ process count302 { ...@@ -247,6 +252,50 @@ process count302 {
} }
process count310 {
queue '128GB,256GB,256GBv1,384GB'
tag "${sample}"
publishDir "${outDir}/${task.process}", mode: 'copy'
module 'cellranger/3.1.0'
input:
set sample, file("${sample}_S?_L001_R1_001.fastq.gz"), file("${sample}_S?_L001_R2_001.fastq.gz") from samples310
file ref from refLocation310.first()
expectCells310
forceCells310
chemistryParam310
output:
file("**/outs/**") into outPaths310
file("*_metrics_summary.tsv") into metricsSummary310
when:
version == '3.1.0'
script:
if (forceCells310 == 0) {
"""
hostname
ulimit -a
bash ${baseDir}/scripts/filename_check.sh -r ${ref}
cellranger count --id=${sample} --transcriptome=./${ref} --fastqs=. --sample=${sample} --expect-cells=${expectCells310} --chemistry=${chemistryParam310}
sed -E 's/("([^"]*)")?,/\\2\t/g' ${sample}/outs/metrics_summary.csv | tr -d "," | sed "s/^/${sample}\t/" > ${sample}_metrics_summary.tsv
"""
}
else {
"""
hostname
ulimit -a
bash ${baseDir}/scripts/filename_check.sh -r ${ref}
cellranger count --id=${sample} --transcriptome=./${ref} --fastqs=. --sample=${sample} --force-cells=${forceCells310} --chemistry=${chemistryParam310}
sed -E 's/("([^"]*)")?,/\\2\t/g' ${sample}/outs/metrics_summary.csv | tr -d "," | sed "s/^/${sample}\t/" > ${sample}_metrics_summary.tsv
"""
}
}
process versions { process versions {
tag "${name}" tag "${name}"
......
...@@ -19,3 +19,7 @@ def test_count301_design(): ...@@ -19,3 +19,7 @@ def test_count301_design():
@pytest.mark.count302 @pytest.mark.count302
def test_count302_design(): def test_count302_design():
assert os.path.exists(os.path.join(test_output_path, 'design.checked.csv')) assert os.path.exists(os.path.join(test_output_path, 'design.checked.csv'))
@pytest.mark.count310
def test_count310_design():
assert os.path.exists(os.path.join(test_output_path, 'design.checked.csv'))
...@@ -23,3 +23,8 @@ def test_count301_count(): ...@@ -23,3 +23,8 @@ def test_count301_count():
def test_count302_count(): def test_count302_count():
assert os.path.exists(os.path.join(test_output_path, 'count302', 'sample1_metrics_summary.tsv')) assert os.path.exists(os.path.join(test_output_path, 'count302', 'sample1_metrics_summary.tsv'))
assert os.path.exists(os.path.join(test_output_path, 'count302', 'sample1', 'outs')) assert os.path.exists(os.path.join(test_output_path, 'count302', 'sample1', 'outs'))
@pytest.mark.count310
def test_count310_count():
assert os.path.exists(os.path.join(test_output_path, 'count310', 'sample1_metrics_summary.tsv'))
assert os.path.exists(os.path.join(test_output_path, 'count310', 'sample1', 'outs'))
...@@ -19,3 +19,7 @@ def test_count301_multiqc(): ...@@ -19,3 +19,7 @@ def test_count301_multiqc():
@pytest.mark.count302 @pytest.mark.count302
def test_count302_multiqc(): def test_count302_multiqc():
assert os.path.exists(os.path.join(test_output_path, 'multiqc_report.html')) assert os.path.exists(os.path.join(test_output_path, 'multiqc_report.html'))
@pytest.mark.count310
def test_count310_multiqc():
assert os.path.exists(os.path.join(test_output_path, 'multiqc_report.html'))
...@@ -22,3 +22,8 @@ def test_count301_versions(): ...@@ -22,3 +22,8 @@ def test_count301_versions():
def test_count302_versions(): def test_count302_versions():
assert os.path.exists(os.path.join(test_output_path, 'versions_mqc.yaml')) assert os.path.exists(os.path.join(test_output_path, 'versions_mqc.yaml'))
assert os.path.exists(os.path.join(test_output_path, 'references_mqc.yaml')) assert os.path.exists(os.path.join(test_output_path, 'references_mqc.yaml'))
@pytest.mark.count310
def test_count310_versions():
assert os.path.exists(os.path.join(test_output_path, 'versions_mqc.yaml'))
assert os.path.exists(os.path.join(test_output_path, 'references_mqc.yaml'))
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment