Skip to content
Snippets Groups Projects
Commit aec59cd7 authored by Gervaise Henry's avatar Gervaise Henry 🤠
Browse files

Merge branch 'Buzz_Lightyear' into 'develop'

Buzz lightyear

See merge request !75
parents 49f1f62c 7a3d4636
1 merge request!75Buzz lightyear
Pipeline #8392 passed with stages
in 12 minutes and 34 seconds
......@@ -3,15 +3,18 @@ before_script:
- module load python/3.6.1-2-anaconda
- pip install --user pytest-pythonpath==0.7.1 pytest-cov==2.5.1
- module load nextflow/20.01.0
- module load singularity/3.0.2
- mkdir -p test_data/simple1
- mkdir -p test_data/simple2
- ln -sfn /project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple1/* test_data/simple1/
- ln -sfn /project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple2/* test_data/simple2/
- module load singularity/3.5.3
- mkdir -p test_data/cellranger1bcl
- mkdir -p test_data/cellranger2bcl
- mkdir -p test_data/spaceranger1bcl
- ln -sfn /project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/cellranger1bcl/* test_data/cellranger1bcl/
- ln -sfn /project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/cellranger2bcl/* test_data/cellranger2bcl/
- ln -sfn /project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/spaceranger1bcl/* test_data/spaceranger1bcl/
stages:
- astrocyte
- simple
- cellranger
- spaceranger
astrocyte_check:
stage: astrocyte
......@@ -24,11 +27,11 @@ astrocyte_check:
when:
- always
simple_1FC:
stage: simple
cellranger1bcl:
stage: cellranger
script:
- nextflow run workflow/main.nf -profile biohpc,cluster --bcl "test_data/simple1/*.tar.gz" --designFile "test_data/simple1/cellranger-tiny-bcl-simple-1_2_0.csv" --ci true
##- pytest -m simple1
- nextflow run workflow/main.nf -profile biohpc,cluster --ranger "cellranger" --bcl "test_data/cellranger1bcl/*.tar.gz" --designFile "test_data/cellranger1bcl/cellranger-tiny-bcl-simple-1_2_0.csv" --ci true
##- pytest -m cellranger1bcl
artifacts:
name: "$CI_JOB_NAME"
when: always
......@@ -41,11 +44,28 @@ simple_1FC:
when:
- always
simple_2FC:
stage: simple
cellranger2bcl:
stage: cellranger
script:
- nextflow run workflow/main.nf -profile biohpc,cluster --bcl "test_data/simple2/*.tar.gz" --designFile "test_data/simple2/cellranger-tiny-bcl-simple-1_2_0.csv" --ci true
##- pytest -m simple2
- nextflow run workflow/main.nf -profile biohpc,cluster --ranger "cellranger" --bcl "test_data/cellranger2bcl/*.tar.gz" --designFile "test_data/cellranger2bcl/cellranger-tiny-bcl-simple-1_2_0.csv" --ci true
##- pytest -m cellranger2bcl
artifacts:
name: "$CI_JOB_NAME"
when: always
paths:
- .nextflow.log
- workflow/output/multiqc/run/multiqc_report.html
expire_in: 2 days
retry:
max: 0
when:
- always
spaceranger1bcl:
stage: spaceranger
script:
- nextflow run workflow/main.nf -profile biohpc,cluster --ranger "spaceranger" --bcl "test_data/spaceranger1bcl/*.tar.gz" --designFile "test_data/spaceranger1bcl/spaceranger-tiny-bcl-simple-1.0.0.csv" --ci true
##- pytest -m spaceranger1bcl
artifacts:
name: "$CI_JOB_NAME"
when: always
......
# v3.0.0
**UserFacing**
*
* Add flag to select cellranger vs spaceranger
* Adjust versions to take into account multiple 10x-Ranger softwares
* Remove countDesign process
* Spaceranger V1.2.0 update
**Background**
*
* Update scripts to reflect spaceranger or cellranger input
* Update CI to include simple3 and add simple3 tests for later pytest use (commented out for all simple CI)
* Add simple3 to test data folder
* redo channels to include multple rangers
* Rename simple1 and 2 to cellranger1 and 2 and simple3 to spaceranger1
* Redo Versioning for rangers to ouput correctly
*Known Bugs*
* cellranger mkfastq will not accept spaces in path for run param even if quoted, issue raised on 10XGenomics/cellranger github issue [#31](https://github.com/10XGenomics/cellranger/issues/31)
......
......@@ -4,13 +4,13 @@
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2652611.svg)](https://doi.org/10.5281/zenodo.2652611)
10x Genomics scRNA-Seq (cellranger) mkfastq Pipeline
10x Genomics scRNA-Seq (cellranger/spaceranger) mkfastq Pipeline
==================================================
Introduction
------------
This pipeline is a wrapper for the cellranger mkfastq tool from 10x Genomics (which uses Illumina's bcl2fastq). It takes demultiplexes samples from 10x Genomics Single Cell Gene Expression libraries into fastqs.
This pipeline is a wrapper for the cellranger or spaceranger mkfastq tool from 10x Genomics (which uses Illumina's bcl2fastq). It takes demultiplexes samples from 10x Genomics Single Cell Gene Expression libraries into fastqs.
FastQC is run on the resulting fastq and those reports and bcl2fastq reports are collated with the MultiQC tool.
......@@ -42,15 +42,19 @@ To Run:
* Available parameters:
* **-profile**
* what environments to run on, available: `biohpc`, `local`, `cluster`, `aws`, `ondemand`, `spot`
* eg: **-profile biohpc,cluster** to run on BioHPC in cluster mode
* eg: **-profile aws,ondemand** to run on AWS on a on-demand queue
* eg: `-profile biohpc,cluster` to run on BioHPC in cluster mode
* eg: `-profile aws,ondemand` to run on AWS on a on-demand queue
* **--name**
* run name, puts outputs in a directory with this name
* eg: **--name 'test'**
* eg: `--name 'test'`
* **--ranger**
* select the 10x ranger being run.
* eg: `--ranger 'cellranger'` to run cellranger mkfastq
* eg: `--ranger 'spaceranger'` to run spaceranger mkfastq
* **--bcl**
* base call files (tarballed [*.tar] +/- gunzipping [*.tar.gz] from a sequencing of 10x single-cell expereiment, supports pigr parallelization)
* there can be multiple basecall files, but they all will be demultiplexed by the same design file
* eg: ```--bcl '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple1/cellranger-tiny-bcl-1_2_0.tar.gz'```
* eg: `--bcl '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple1/cellranger-tiny-bcl-1_2_0.tar.gz'`
* **--designFile**
* path to design file (csv format) location
* column 1 = "Lane" (number of lanes to demultiplex, **\*** for all lanes)
......@@ -60,16 +64,16 @@ To Run:
* [Current sample barcode IDs](https://s3-us-west-2.amazonaws.com/10x.files/supp/cell-exp/chromium-shared-sample-indexes-plate.csv)
* can have repeated "Sample" if there are multiple fastq R1/R2 pairs for the samples
* can be downloaded [HERE](https://git.biohpc.swmed.edu/BICF/Astrocyte/cellranger_mkfastq/blob/master/docs/design.csv)
* eg: ```--designFile '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple/cellranger-tiny-bcl-simple-1_2_0.csv'```
* eg: `--designFile '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple/cellranger-tiny-bcl-simple-1_2_0.csv'`
* **--mask**
* add a base mask if the sequencing strategy doesn't match the requirements of 10x Genomics
* eg: **--mask '--use-bases-mask=Y\*,I8n\*,n\*,Y\*'**
* eg: `--mask '--ignore-dual-index --use-bases-mask=Y\*,I8n\*,n\*,Y\*'`
* **--outDir**
* optional output directory for run
* eg: ```--outDir 'test'```
* eg: `--outDir 'test'`
* FULL EXAMPLE:
```
nextflow run workflow/main.nf -profile biohpc,cluster --name 'test' --bcl '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple1/cellranger-tiny-bcl-1_2_0.tar.gz' --designFile '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple1/cellranger-tiny-bcl-simple-1_2_0.csv' --outDir 'test'
nextflow run workflow/main.nf -profile biohpc,cluster --name 'test' --ranger 'cellranger' --bcl '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple1/cellranger-tiny-bcl-1_2_0.tar.gz' --designFile '/project/shared/bicf_workflow_ref/workflow_testdata/cellranger/cellranger_mkfastq/simple1/cellranger-tiny-bcl-simple-1_2_0.csv' --outDir 'test'
```
* Design example:
......
......@@ -17,7 +17,7 @@ title: 'BICF CellRanger mkfastq Workflow'
# A summary of the workflow package in plain text
description: |
This is a workflow package for the BICF/Strand Lab CellRanger mkfastq workflow system.
It implements 10x CellRanger mkfastq analysis workflow application.
It implements 10x CellRanger/SpaceRanger mkfastq analysis workflow application.
# -----------------------------------------------------------------------------
# DOCUMENTATION
......@@ -39,7 +39,7 @@ documentation_files:
# A list of cluster environment modules that this workflow requires to run.
# Specify versioned module names to ensure reproducability.
workflow_modules:
- 'singularity/3.0.2'
- 'singularity/3.5.3'
# A list of parameters used by the workflow, defining how to present them,
# options etc in the web interface. For each parameter:
......@@ -99,6 +99,16 @@ workflow_parameters:
description: |
Ensure configuraton for astrocyte.
- id: ranger
type: select
choices:
- [ 'CellRanger', 'cellranger' ]
- [ 'SpaceRanger', 'spaceranger' ]
required: true
default: 'CellRanger'
description: |
CellRanger or SpaceRanger 10x data.
# -----------------------------------------------------------------------------
# SHINY APP CONFIGURATION
......
10x Genomics scRNA-Seq (cellranger) mkfastq Pipeline
10x Genomics scRNA-Seq mkfastq Pipeline
====================================================
Introduction
------------
This pipeline is a wrapper for the cellranger mkfastq tool from 10x Genomics (which uses Illumina's bcl2fastq). It takes bcl's and demultiplexes samples from 10x Genomics Single Cell Gene Expression libraries into fastqs.
This pipeline is a wrapper for the various ranger mkfastq tools from 10x Genomics (which uses Illumina's bcl2fastq). It takes bcl's and demultiplexes samples from 10x Genomics Single Cell Gene Expression libraries into fastqs.
FastQC is run on the resulting fastq and those reports and bcl2fastq reports are collated with the MultiQC tool.
......
......@@ -12,6 +12,9 @@
4. **cellranger**:
* 10x Genomics cellranger mkfastq [https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/mkfastq](https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/mkfastq)
6. **spaceranger**:
* 10x Genomics spaceranger mkfastq [https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/using/mkfastq](https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/using/mkfastq)
5. **bcl2fastq**:
* Ilumina's bcl2fastq [https://support.illumina.com/sequencing/sequencing_software/bcl2fastq-conversion-software.html](https://support.illumina.com/sequencing/sequencing_software/bcl2fastq-conversion-software.html)
......@@ -19,4 +22,4 @@
* fastqc [https://www.bioinformatics.babraham.ac.uk/projects/fastqc/](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)
7. **MultiQc**:
* Ewels P., Magnusson M., Lundin S. and Käller M. 2016. MultiQC: Summarize analysis results for multiple tools and samples in a single report. Bioinformatics 32(19): 3047–3048. doi:[10.1093/bioinformatics/btw354](https://dx.doi.org/10.1093/bioinformatics/btw354)
\ No newline at end of file
* Ewels P., Magnusson M., Lundin S. and Käller M. 2016. MultiQC: Summarize analysis results for multiple tools and samples in a single report. Bioinformatics 32(19): 3047–3048. doi:[10.1093/bioinformatics/btw354](https://dx.doi.org/10.1093/bioinformatics/btw354)
......@@ -16,7 +16,11 @@ process {
withName:checkDesignFile {
cpus = 4
}
withName:mkfastq {
withName:cellranger_mkfastq {
cpus = 6
memory = '2 GB'
}
withName:spaceranger_mkfastq {
cpus = 6
memory = '2 GB'
}
......
......@@ -12,11 +12,11 @@ process {
withName:untarBCL {
queue = 'super'
}
withName:mkfastq {
withName:cellranger_mkfastq {
queue = '128GB,256GB,256GBv1,384GB'
}
withName:countDesign {
executor = 'local'
withName:spaceranger_mkfastq {
queue = '128GB,256GB,256GBv1,384GB'
}
withName:fastqc {
queue = 'super'
......
......@@ -5,12 +5,12 @@ custom_logo_title: 'Bioinformatics Core Facility'
report_header_info:
- Contact E-mail: 'bicf@utsouthwestern.edu'
- Application Type: 'cellranger_mkfastq'
- Application Type: '10x-ranger_mkfastq'
- Department: 'Bioinformatic Core Facility, Department of Bioinformatics'
# Title to use for the report.
title: BICF CellRanger MKfastq Analysis Report
title: BICF 10x-Ranger MKfastq Analysis Report
report_comment: >
This report has been generated by the <a href="https://git.biohpc.swmed.edu/BICF/Astrocyte/cellranger_mkfastq"
......
......@@ -18,6 +18,7 @@ main.nf
// Define input variables
params.name = "run"
params.ranger = "cellranger"
params.bcl = "${baseDir}/../test_data/simple1/*.tar.gz"
params.designFile = "${baseDir}/../test_data/single1/cellranger-tiny-bcl-simple-1_2_0.csv"
params.mask = ""
......@@ -34,6 +35,7 @@ bclCount = Channel
// Define regular variables
pipelineVersion = "3.0.0_indev"
name = params.name
ranger = params.ranger
designLocation = Channel
.fromPath(params.designFile)
.ifEmpty { exit 1, "design file not found: ${params.designFile}" }
......@@ -43,13 +45,13 @@ outDir = params.outDir
// Define script files
check_designScript = Channel.fromPath("$baseDir/scripts/check_design.py")
untarBCLScript = Channel.fromPath("$baseDir/scripts/untarBCL.sh")
countDesignScript = Channel.fromPath("$baseDir/scripts/countDesign.sh")
fastqcScript = Channel.fromPath("$baseDir/scripts/fastqc.sh")
versionsScript = Channel.fromPath("$baseDir/scripts/generate_versions.py")
referencesScript = Channel.fromPath("$baseDir/scripts/generate_references.py")
versions_pythonScript = Channel.fromPath("$baseDir/scripts/versions_python.sh")
//versions_pigzScript = Channel.fromPath("$baseDir/scripts/versions_pigz.sh")
versions_cellrangerScript = Channel.fromPath("$baseDir/scripts/versions_cellranger.sh")
versions_spacerangerScript = Channel.fromPath("$baseDir/scripts/versions_spaceranger.sh")
versions_bcl2fastqScript = Channel.fromPath("$baseDir/scripts/versions_bcl2fastq.sh")
versions_fastqcScript = Channel.fromPath("$baseDir/scripts/versions_fastqc.sh")
......@@ -74,6 +76,7 @@ process trackStart {
"sessionId": "${workflow.sessionId}", \
"pipeline": "cellranger_mkfastq", \
"pipelineVersion": "${pipelineVersion}", \
"10x-ranger": ${params.ranger}, \
"start": "${workflow.start}", \
"astrocyte": ${params.astrocyte}, \
"status": "started", \
......@@ -90,6 +93,7 @@ log.info """\
BICF cellranger_mkfastq Pipeline
================================
Run name : ${params.name}
Ranger : ${params.ranger}
bcl : ${params.bcl}
Design File : ${params.designFile}
Output Directory: ${params.outDir}
......@@ -163,7 +167,12 @@ process untarBCL {
}
process mkfastq {
versions_bcl2fastqScript.into { versions_bcl2fastqScriptCell; versions_bcl2fastqScriptSpace }
bclPaths.into { bclPathsCell; bclPathsSpace }
designPaths.into { designPathsCell; designPathsSpace }
process cellranger_mkfastq {
tag "${bcl.simpleName}"
publishDir "${outDir}/${task.process}", mode: 'copy', pattern: "{*/outs/**/*.fastq.gz}"
queue '128GB,256GB,256GBv1,384GB'
......@@ -171,17 +180,20 @@ process mkfastq {
input:
file versions_cellrangerScript
file versions_bcl2fastqScript
each file(bcl) from bclPaths.collect()
file design from designPaths
file versions_bcl2fastqScriptCell
each file(bcl) from bclPathsCell.collect()
file design from designPathsCell
output:
file("fq/${bcl.simpleName}/*.fastq.gz") into fastqPaths
val "${bcl.simpleName}" into bclName
file("fq/${bcl.simpleName}/*.fastq.gz") into fastqPathsCell
val "${bcl.simpleName}" into bclNameCell
file("**/outs/**/*.fastq.gz") into cellrangerCount mode flatten
file("**/outs/fastq_path/Stats/*") into bqcPaths
file("version_cellranger.txt") into version_cellranger
file("version_bcl2fastq.txt") into version_bcl2fastq
file("**/outs/fastq_path/Stats/*") into bqcPathsCell
file("version_Cellranger.txt") into version_cellranger
file("version_bcl2fastq.txt") into version_bcl2fastqCell
when:
ranger == "cellranger"
script:
"""
......@@ -192,35 +204,76 @@ process mkfastq {
mkdir fq
mkdir "fq/${bcl.simpleName}"
find . -name "*.fastq.gz" -exec cp {} fq/${bcl.simpleName}/ \\;
bash versions_cellranger.sh > version_cellranger.txt
bash versions_cellranger.sh > version_Cellranger.txt
bash versions_bcl2fastq.sh > version_bcl2fastq.txt
"""
}
if (bclCount.value == 1) {
process countDesign {
tag "${name}"
publishDir "${outDir}/${task.process}/${name}", mode: 'copy'
process spaceranger_mkfastq {
tag "${bcl.simpleName}"
publishDir "${outDir}/${task.process}", mode: 'copy', pattern: "{*/outs/**/*.fastq.gz}"
queue '128GB,256GB,256GBv1,384GB'
module 'spaceranger/1.2.0:bcl2fastq/2.19.1'
input:
file countDesignScript
file fastqs from cellrangerCount.collect()
file design from designCount
input:
file versions_spacerangerScript
file versions_bcl2fastqScriptSpace
each file(bcl) from bclPathsSpace.collect()
file design from designPathsSpace
output:
file("fq/${bcl.simpleName}/*.fastq.gz") into fastqPathsSpace
val "${bcl.simpleName}" into bclNameSpace
file("**/outs/**/*.fastq.gz") into spacerangerCount mode flatten
file("**/outs/fastq_path/Stats/*") into bqcPathsSpace
file("version_Spaceranger.txt") into version_spaceranger
file("version_bcl2fastq.txt") into version_bcl2fastqSpace
output:
file("Cellranger_Count_Design.csv") into CountDesign
when:
ranger == "spaceranger"
script:
"""
hostname
ulimit -a
bash countDesign.sh
"""
}
script:
"""
hostname
ulimit -u 16384
ulimit -a
spaceranger mkfastq --id=mkfastq_${bcl.simpleName} --run=${bcl} --csv=${design} ${mask}
mkdir fq
mkdir "fq/${bcl.simpleName}"
find . -name "*.fastq.gz" -exec cp {} fq/${bcl.simpleName}/ \\;
bash versions_spaceranger.sh > version_Spaceranger.txt
bash versions_bcl2fastq.sh > version_bcl2fastq.txt
"""
}
Channel
.empty()
.mix(fastqPathsCell,fastqPathsSpace)
.set { fastqPaths }
Channel
.empty()
.mix(bclNameCell,bclNameSpace)
.set { bclName }
Channel
.empty()
.mix(cellrangerCount,spacerangerCount)
.set { rangerCount }
Channel
.empty()
.mix(bqcPathsCell,bqcPathsSpace)
.set { bqcPaths }
Channel
.empty()
.mix(version_cellranger,version_spaceranger)
.set { version_ranger }
Channel
.empty()
.mix(version_bcl2fastqCell,version_bcl2fastqSpace)
.set { version_bcl2fastq }
process fastqc {
tag "${bcl}"
module 'fastqc/0.11.5:parallel'
......@@ -249,7 +302,7 @@ process fastqc {
process versions {
tag "${name}"
module 'python/3.6.1-2-anaconda:cellranger/3.1.0:bcl2fastq/2.19.1:fastqc/0.11.5:pandoc/2.7'
module 'python/3.6.1-2-anaconda:pandoc/2.7'
input:
file versionsScript
......@@ -258,7 +311,7 @@ process versions {
file version_nextflow
file version_python
//file version_pigz
file version_cellranger
file version_ranger
file version_bcl2fastq
file version_fastqc
file references
......
......@@ -25,12 +25,12 @@ logger.addHandler(logging.NullHandler())
logger.propagate = False
logger.setLevel(logging.INFO)
SOFTWARE_REGEX = {
'Pipeline': ['version_pipeline.txt', r"(\S+)"],
'Nextflow': ['version_nextflow.txt', r"(\S+)"],
'python': ['version_python.txt', r"(\S+)"],
#'pigz': ['version_pigz.txt', r"(\S+)"],
'cellranger': ['version_cellranger.txt', r"(\S+)"],
'bcl2fastq': ['version_bcl2fastq.txt', r"(\S+)"],
'fastqc': ['version_fastqc.txt', r"(\S+)"],
}
......@@ -56,6 +56,18 @@ def get_args():
return args
def rangerType(files):
'''Determine Type of Ranger being used'''
for fname in files:
ranger = re.findall("version_(.*)ranger.txt", fname)
if not ranger: continue
ranger_type = ranger[0]+"ranger"
SOFTWARE_REGEX[ranger_type] = [fname, r"(\S+)"]
return ranger_type
def check_files(files):
'''Check if version files are found.'''
......@@ -77,12 +89,14 @@ def main():
out_filename = output + '_mqc.yaml'
ranger_type = rangerType(files)
results = OrderedDict()
results['Pipeline'] = '<span style="color:#999999;\">N/A</span>'
results['Nextflow'] = '<span style="color:#999999;\">N/A</span>'
results['python'] = '<span style="color:#999999;\">N/A</span>'
#results['pigz'] = '<span style="color:#999999;\">N/A</span>'
results['cellranger'] = '<span style="color:#999999;\">N/A</span>'
results[ranger_type] = '<span style="color:#999999;\">N/A</span>'
results['bcl2fastq'] = '<span style="color:#999999;\">N/A</span>'
results['fastqc'] = '<span style="color:#999999;\">N/A</span>'
......
......@@ -6,4 +6,4 @@
#* --------------------------------------------------------------------------
#*
cellranger mkfastq --version | grep 'cellranger mkfastq ' | sed 's/.*(\(.*\))/\1/'
\ No newline at end of file
cellranger mkfastq --version | grep 'cellranger mkfastq ' | sed 's/.*-\(.*\))/\1/'
#!/bin/bash
#countDesign.sh
#versions_spaceranger.sh
#*
#* --------------------------------------------------------------------------
#* Licensed under MIT (https://git.biohpc.swmed.edu/BICF/Astrocyte/cellranger_mkfastq/blob/develop/LICENSE)
#* --------------------------------------------------------------------------
#*
fastqs=($(ls *.fastq.gz))
design=$(ls *.csv)
sample=$(cat ${design} | tail -n +2 | cut -d ',' -f2)
echo "Sample,fastq_R1,fastq_R2" > Cellranger_Count_Design.csv;
for i in ${sample};
do
for j in $(seq 1 ${#fastqs[@]});
do
if [[ ${fastqs[${j}-1]} == *_I* ]]; then
continue
elif [[ ${fastqs[${j}-1]} == *${i}* && ${fastqs[${j}]} == *${i}* ]]; then
echo "${i},${fastqs[${j}-1]},${fastqs[${j}]}" >> Cellranger_Count_Design.csv
fi
done
done
spaceranger mkfastq --version | grep 'spaceranger mkfastq ' | sed 's/.*-\(.*\))/\1/'
......@@ -12,13 +12,17 @@ from io import StringIO
import os
test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
'/../output/mkfastq/'
'/../output/'
@pytest.mark.simple1
def test_simple1_mkfastq():
assert os.path.exists(os.path.join(test_output_path, 'cellranger-tiny-bcl-1_2_0', 'outs'))
@pytest.mark.cellranger1bcl
def test_cellranger1bcl_mkfastq():
assert os.path.exists(os.path.join(test_output_path, 'mkfastq', 'cellranger-tiny-bcl-1_2_0', 'outs'))
@pytest.mark.simple2
def test_simple2_mkfastq():
assert os.path.exists(os.path.join(test_output_path, 'cellranger-tiny-bcl-1_2_0-1', 'outs'))
assert os.path.exists(os.path.join(test_output_path, 'cellranger-tiny-bcl-1_2_0-2', 'outs'))
\ No newline at end of file
@pytest.mark.cellranger2bcl
def test_cellranger2bcl_mkfastq():
assert os.path.exists(os.path.join(test_output_path, 'mkfastq', 'cellranger-tiny-bcl-1_2_0-1', 'outs'))
assert os.path.exists(os.path.join(test_output_path, 'mkfastq', 'cellranger-tiny-bcl-1_2_0-2', 'outs'))
@pytest.mark.spaceranger1bcl
def test_spaceranger1bcl_mkfastq():
assert os.path.exists(os.path.join(test_output_path, 'spaceranger_mkfastq', 'mkfastq_spaceranger-tiny-bcl-1', 'outs'))
......@@ -14,10 +14,14 @@ import os
test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
'/../output/multiqc/run/'
@pytest.mark.simple1
def test_simple1_multiqc():
@pytest.mark.cellranger1bcl
def test_cellranger1bcl_multiqc():
assert os.path.exists(os.path.join(test_output_path, 'multiqc_report.html'))
@pytest.mark.simple2
def test_simple2_multiqc():
assert os.path.exists(os.path.join(test_output_path, 'multiqc_report.html'))
\ No newline at end of file
@pytest.mark.cellranger2bcl
def test_cellranger2bcl_multiqc():
assert os.path.exists(os.path.join(test_output_path, 'multiqc_report.html'))
@pytest.mark.spaceranger1bcl
def test_spaceranger1bcl_multiqc():
assert os.path.exists(os.path.join(test_output_path, 'multiqc_report.html'))
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