Skip to content

Commit

Permalink
add nf-test for cellranger multi
Browse files Browse the repository at this point in the history
  • Loading branch information
fmalmeida committed Mar 20, 2024
1 parent ceafcdf commit 31ff8f4
Show file tree
Hide file tree
Showing 4 changed files with 161 additions and 13 deletions.
18 changes: 9 additions & 9 deletions assets/cellrangermulti_samplesheet.csv
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
sample,fastq_1,fastq_2,feature_type,protocol,expected_cells
PBMC_10K,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5gex/subsampled_sc5p_v2_hs_PBMC_10k_5gex_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5gex/subsampled_sc5p_v2_hs_PBMC_10k_5gex_S1_L001_R2_001.fastq.gz,gex,SC5P-PE,1000
PBMC_10K,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/bcell/subsampled_sc5p_v2_hs_PBMC_10k_b_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/bcell/subsampled_sc5p_v2_hs_PBMC_10k_b_S1_L001_R2_001.fastq.gz,vdj,SC5P-PE,1000
PBMC_10K,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5fb/subsampled_sc5p_v2_hs_PBMC_10k_5fb_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5fb/subsampled_sc5p_v2_hs_PBMC_10k_5fb_S1_L001_R2_001.fastq.gz,ab,SC5P-PE,1000
PBMC_10K_CMO,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_1/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_gex_S2_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_1/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_gex_S2_L001_R2_001.fastq.gz,gex,SC3Pv3,1000
PBMC_10K_CMO,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/cmo/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_multiplexing_capture_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/cmo/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_multiplexing_capture_S1_L001_R2_001.fastq.gz,cmo,SC3Pv3,1000
PBMC_10K_CMV,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/gex_1/subsampled_5k_human_antiCMV_T_TBNK_connect_GEX_1_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/gex_1/subsampled_5k_human_antiCMV_T_TBNK_connect_GEX_1_S1_L001_R2_001.fastq.gz,gex,SC5P-R2,1000
PBMC_10K_CMV,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/ab/subsampled_5k_human_antiCMV_T_TBNK_connect_AB_S2_L004_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/ab/subsampled_5k_human_antiCMV_T_TBNK_connect_AB_S2_L004_R2_001.fastq.gz,ab,SC5P-R2,1000
PBMC_10K_CMV,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/vdj/subsampled_5k_human_antiCMV_T_TBNK_connect_VDJ_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/vdj/subsampled_5k_human_antiCMV_T_TBNK_connect_VDJ_S1_L001_R2_001.fastq.gz,vdj,SC5P-R2,1000
sample,fastq_1,fastq_2,feature_type,expected_cells
PBMC_10K,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5gex/subsampled_sc5p_v2_hs_PBMC_10k_5gex_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5gex/subsampled_sc5p_v2_hs_PBMC_10k_5gex_S1_L001_R2_001.fastq.gz,gex,1000
PBMC_10K,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/bcell/subsampled_sc5p_v2_hs_PBMC_10k_b_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/bcell/subsampled_sc5p_v2_hs_PBMC_10k_b_S1_L001_R2_001.fastq.gz,vdj,1000
PBMC_10K,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5fb/subsampled_sc5p_v2_hs_PBMC_10k_5fb_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5fb/subsampled_sc5p_v2_hs_PBMC_10k_5fb_S1_L001_R2_001.fastq.gz,ab,1000
PBMC_10K_CMO,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_1/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_gex_S2_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_1/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_gex_S2_L001_R2_001.fastq.gz,gex,1000
PBMC_10K_CMO,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/cmo/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_multiplexing_capture_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/cmo/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_multiplexing_capture_S1_L001_R2_001.fastq.gz,cmo,1000
PBMC_10K_CMV,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/gex_1/subsampled_5k_human_antiCMV_T_TBNK_connect_GEX_1_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/gex_1/subsampled_5k_human_antiCMV_T_TBNK_connect_GEX_1_S1_L001_R2_001.fastq.gz,gex,1000
PBMC_10K_CMV,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/ab/subsampled_5k_human_antiCMV_T_TBNK_connect_AB_S2_L004_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/ab/subsampled_5k_human_antiCMV_T_TBNK_connect_AB_S2_L004_R2_001.fastq.gz,ab,1000
PBMC_10K_CMV,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/vdj/subsampled_5k_human_antiCMV_T_TBNK_connect_VDJ_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/vdj/subsampled_5k_human_antiCMV_T_TBNK_connect_VDJ_S1_L001_R2_001.fastq.gz,vdj,1000
4 changes: 0 additions & 4 deletions assets/schema_input.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@
"type": "string",
"enum": ["gex", "vdj", "ab", "beam", "crispr", "cmo"],
"meta": ["feature_type"]
},
"protocol": {
"type": "string",
"meta": ["protocol"]
}
},
"required": ["sample", "fastq_1", "fastq_2"]
Expand Down
98 changes: 98 additions & 0 deletions tests/main_pipeline_cellrangermulti.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
nextflow_pipeline {

name "Test Workflow main.nf"
script "main.nf"

test("test-dataset_cellrangermulti_aligner") {

when {
// the rest is taken from shared config
params {
aligner = 'cellrangermulti'
outdir = "${outputDir}/results_cellrangermulti"
input = "${projectDir}/assets/cellrangermulti_samplesheet.csv"
cmo_barcode_csv = 'https://github.com/nf-core/scrnaseq/raw/247-support-for-10x-ffpe-scrna/assets/cmo_barcodes.csv'
fasta = 'https://ftp.ensembl.org/pub/release-110/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.chromosome.2.fa.gz'
gtf = 'https://ftp.ensembl.org/pub/release-110/gtf/homo_sapiens/Homo_sapiens.GRCh38.110.gtf.gz'
aligner = 'cellrangermulti'
protocol = 'auto'

// Limit resources so that this can run on GitHub Actions -- for some reason it had not been taken from shared config
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
}
}

then {

assertAll(

//
// General assertions
//

// Did it finish successfully?
{assert workflow.success},

// How many tasks were executed?
{assert workflow.trace.tasks().size() == 27},

// How many results were produced?
{assert path("${outputDir}/results_cellrangermulti").list().size() == 4},
{assert path("${outputDir}/results_cellrangermulti/cellrangermulti").list().size() == 5},
{assert path("${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions").list().size() == 6},
{assert path("${outputDir}/results_cellrangermulti/cellrangermulti/count").list().size() == 4},
{assert path("${outputDir}/results_cellrangermulti/fastqc").list().size() == 32},
{assert path("${outputDir}/results_cellrangermulti/multiqc").list().size() == 3},

//
// Check if files were produced
//
{assert new File( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMO/PBMC_10K_CMO_raw_matrix.h5ad" ).exists()},
{assert new File( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMV/PBMC_10K_CMV_raw_matrix.h5ad" ).exists()},
{assert new File( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K/PBMC_10K_raw_matrix.h5ad" ).exists()},
{assert new File( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMO/PBMC_10K_CMO_filtered_matrix.h5ad" ).exists()},
{assert new File( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMV/PBMC_10K_CMV_filtered_matrix.h5ad" ).exists()},
{assert new File( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K/PBMC_10K_filtered_matrix.h5ad" ).exists()},

//
// Check if files are the same
//
{assert snapshot(
workflow,
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMO/outs/per_sample_outs/PBMC_10K_CMO/count/sample_filtered_feature_bc_matrix/barcodes.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMO/outs/per_sample_outs/PBMC_10K_CMO/count/sample_filtered_feature_bc_matrix/features.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMO/outs/per_sample_outs/PBMC_10K_CMO/count/sample_filtered_feature_bc_matrix/matrix.mtx.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMV/outs/per_sample_outs/PBMC_10K_CMV/count/sample_filtered_feature_bc_matrix/barcodes.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMV/outs/per_sample_outs/PBMC_10K_CMV/count/sample_filtered_feature_bc_matrix/features.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMV/outs/per_sample_outs/PBMC_10K_CMV/count/sample_filtered_feature_bc_matrix/matrix.mtx.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K/outs/per_sample_outs/PBMC_10K/count/sample_filtered_feature_bc_matrix/barcodes.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K/outs/per_sample_outs/PBMC_10K/count/sample_filtered_feature_bc_matrix/features.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K/outs/per_sample_outs/PBMC_10K/count/sample_filtered_feature_bc_matrix/matrix.mtx.gz" ),

path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMO/outs/multi/count/raw_feature_bc_matrix/barcodes.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMO/outs/multi/count/raw_feature_bc_matrix/features.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMO/outs/multi/count/raw_feature_bc_matrix/matrix.mtx.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMV/outs/multi/count/raw_feature_bc_matrix/barcodes.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMV/outs/multi/count/raw_feature_bc_matrix/features.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K_CMV/outs/multi/count/raw_feature_bc_matrix/matrix.mtx.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K/outs/multi/count/raw_feature_bc_matrix/barcodes.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K/outs/multi/count/raw_feature_bc_matrix/features.tsv.gz" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/count/PBMC_10K/outs/multi/count/raw_feature_bc_matrix/matrix.mtx.gz" ),

path( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMO/PBMC_10K_CMO_raw_matrix.rds" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMV/PBMC_10K_CMV_raw_matrix.rds" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K/PBMC_10K_raw_matrix.rds" ),

path( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMO/PBMC_10K_CMO_filtered_matrix.rds" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K_CMV/PBMC_10K_CMV_filtered_matrix.rds" ),
path( "${outputDir}/results_cellrangermulti/cellrangermulti/mtx_conversions/PBMC_10K/PBMC_10K_filtered_matrix.rds" )
).match()}

) // end of assertAll()

}
}

}
54 changes: 54 additions & 0 deletions tests/main_pipeline_cellrangermulti.test.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"test-dataset_cellrangermulti_aligner": {
"content": [
{
"stderr": [

],
"errorReport": "",
"exitStatus": 0,
"failed": false,
"stdout": [

],
"errorMessage": "",
"trace": {
"tasksFailed": 0,
"tasksCount": 27,
"tasksSucceeded": 27
},
"name": "workflow",
"success": true
},
"barcodes.tsv.gz:md5,9a272c14cfbfe6670fc8814cef9d1181",
"features.tsv.gz:md5,5b2aef51e60667d6f9ccbb3a7d30839b",
"matrix.mtx.gz:md5,e65fa3c0cbd373bcbbf234f739a58072",
"barcodes.tsv.gz:md5,6b00a878bf2047eac5ef5c7c68ad941c",
"features.tsv.gz:md5,5b2aef51e60667d6f9ccbb3a7d30839b",
"matrix.mtx.gz:md5,2a223c40cfe05fb87366ab3b31dd9332",
"barcodes.tsv.gz:md5,0b06eaaf4c4717de7a5ca25b45ce54b4",
"features.tsv.gz:md5,5b2aef51e60667d6f9ccbb3a7d30839b",
"matrix.mtx.gz:md5,55a54e9c1c92ee07db1a27e5207f200f",
"barcodes.tsv.gz:md5,0abf0bbfb5ed8e78e86f00a16d12e9da",
"features.tsv.gz:md5,5b2aef51e60667d6f9ccbb3a7d30839b",
"matrix.mtx.gz:md5,e3e4a53a95bf6c5b56701abc733675ff",
"barcodes.tsv.gz:md5,d014e325977ea1c79aa1524f9981d842",
"features.tsv.gz:md5,5b2aef51e60667d6f9ccbb3a7d30839b",
"matrix.mtx.gz:md5,857430b9e56ef34bb68e3a1c49238f86",
"barcodes.tsv.gz:md5,bd852b88b665974d475061cef7e45326",
"features.tsv.gz:md5,5b2aef51e60667d6f9ccbb3a7d30839b",
"matrix.mtx.gz:md5,01399e373a1b0ab32a1d43e8d9188805",
"PBMC_10K_CMO_raw_matrix.rds:md5,a32e7e27da46acce3bf0746f13a6bf79",
"PBMC_10K_CMV_raw_matrix.rds:md5,46650e78b00a0a1c27e17c7c7380bcad",
"PBMC_10K_raw_matrix.rds:md5,ff33e21707d3af018a0e086ef1629062",
"PBMC_10K_CMO_filtered_matrix.rds:md5,bbd9df3c7d57ad4aa1474ef9c47915af",
"PBMC_10K_CMV_filtered_matrix.rds:md5,04aebe08d8dde95376d79c5696cab23b",
"PBMC_10K_filtered_matrix.rds:md5,64dcf7bdccc4a571d960d817f2e17b7b"
],
"meta": {
"nf-test": "0.8.4",
"nextflow": "23.10.1"
},
"timestamp": "2024-03-20T13:08:43.931681467"
}
}

0 comments on commit 31ff8f4

Please sign in to comment.