From 1027efa37240917661e153bea5b447094d5f511c Mon Sep 17 00:00:00 2001 From: dweemx Date: Tue, 14 Apr 2020 17:56:56 +0200 Subject: [PATCH 01/16] Improve robustness of detectCellRangerVersionData closure in utils Former-commit-id: d6ae2dcc0f9762c5494973673dd422b233fbd6b2 --- src/utils/processes/utils.nf | 59 +++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/src/utils/processes/utils.nf b/src/utils/processes/utils.nf index 2019b7e5..0d592377 100644 --- a/src/utils/processes/utils.nf +++ b/src/utils/processes/utils.nf @@ -15,18 +15,59 @@ def clean(params) { def detectCellRangerVersionData = { cellRangerV2Data, cellRangerV3Data -> if(cellRangerV2Data.isDirectory() || cellRangerV3Data.isDirectory()) { if(cellRangerV2Data.exists()) { + // Sanity checks + if(new File(Paths.get(cellRangerV2Data.toString(), "genes.tsv.gz").toString()).exists()) + throw new Exception("Found genes.tsv.gz but expecting genes.tsv. The gene file should be uncompressed.") + if(new File(Paths.get(cellRangerV2Data.toString(), "genes.tsv").toString()).exists()) + return [ + version: 2, + path: cellRangerV2Data + ] + // Extract genome folder if a single one exists genomes = cellRangerV2Data.list() if(genomes.size() > 1 || genomes.size() == 0) throw new Exception("None or multiple genomes detected for the output generated by CellRanger v2. Selecting custom genome is currently not implemented.") - return file(Paths.get(cellRangerV2Data.toString(), genomes[0])) - } else if(cellRangerV3Data.exists()) - return cellRangerV3Data - throw new Exception("Cannot detect the version of the data format of CellRanger.") + genomeFilePath = Paths.get(cellRangerV2Data.toString(), genomes[0]) + // Sanity checks + if(!new File(genomeFilePath).isDirectory()) + throw new Exception("Expecting a genome directory from the output generated by CellRanger v2.") + if(new File(Paths.get(genomeFilePath.toString(), "genes.tsv.gz").toString()).exists()) + throw new Exception("Found compressed gene file (genes.tsv.gz) but expecting uncompressed gene file (genes.tsv). Use gunzip for instance to uncompress it.") + if(new File(Paths.get(genomeFilePath.toString(), "barcodes.tsv.gz").toString()).exists()) + throw new Exception("Found compressed gene file (barcodes.tsv.gz) but expecting uncompressed gene file (barcodes.tsv). Use gunzip for instance to uncompress it.") + if(new File(Paths.get(genomeFilePath.toString(), "matrix.mtx.gz").toString()).exists()) + throw new Exception("Found compressed gene file (matrix.mtx.gz) but expecting uncompressed gene file (matrix.mtx.gz). Use gunzip for instance to uncompress it.") + if(!new File(Paths.get(genomeFilePath.toString(), "genes.tsv")).exists()) + throw new Exception("Expecting a gene file genes.tsv file but none are found.") + if(!new File(Paths.get(genomeFilePath.toString(), "barcodes.tsv")).exists()) + throw new Exception("Expecting a barcode file barcodes.tsv file but none are found.") + if(!new File(Paths.get(genomeFilePath.toString(), "matrix.mtx")).exists()) + throw new Exception("Expecting a matrix file matrix.mtx file but none are found.") + return [ + version: 2, + path: file(genomeFilePath) + ] + } else if(cellRangerV3Data.exists()) { + if(!new File(Paths.get(cellRangerV3Data.toString(), "features.tsv")).exists() && !new File(Paths.get(cellRangerV3Data.toString(), "features.tsv.gz")).exists()) + throw new Exception("Expecting either a features.tsv or features.tsv.gz file but none are found.") + return { + version: 3 + path: cellRangerV3Data + } + } else { + throw new Exception("Cannot detect the version of the data format of CellRanger.") + } } else { if(cellRangerV2Data.exists()) { - return cellRangerV2Data + return [ + version: 2, + path: cellRangerV2Data + ] } else if(cellRangerV3Data.exists()) { - return cellRangerV3Data + return [ + version: 3, + path: cellRangerV3Data + ] } else { throw new Exception("Cannot detect the version of the data format of CellRanger.") } @@ -73,7 +114,8 @@ process SC__FILE_CONVERTER { // Check if output was generated with CellRanger v2 or v3 cellranger_outs_v2_mex = file("${f.toRealPath()}/${processParams.useFilteredMatrix ? "filtered" : "raw"}_gene_bc_matrices/") cellranger_outs_v3_mex = file("${f.toRealPath()}/${processParams.useFilteredMatrix ? "filtered" : "raw"}_feature_bc_matrix/") - f = detectCellRangerVersionData(cellranger_outs_v2_mex, cellranger_outs_v3_mex) + cellRangerData = detectCellRangerVersionData(cellranger_outs_v2_mex, cellranger_outs_v3_mex) + f = cellRangerData.path inputDataType = "10x_cellranger_mex" break; case "10x_cellranger_h5": @@ -83,7 +125,8 @@ process SC__FILE_CONVERTER { // Check if output was generated with CellRanger v2 or v3 cellranger_outs_v2_h5 = file("${f.toRealPath()}/${processParams.useFilteredMatrix ? "filtered" : "raw"}_gene_bc_matrices.h5") cellranger_outs_v3_h5 = file("${f.toRealPath()}/${processParams.useFilteredMatrix ? "filtered" : "raw"}_feature_bc_matrix.h5") - f = detectCellRangerVersionData(cellranger_outs_v2_h5, cellranger_outs_v3_h5) + cellRangerData = detectCellRangerVersionData(cellranger_outs_v2_h5, cellranger_outs_v3_h5) + f = cellRangerData.path inputDataType = "10x_cellranger_h5" case "10x_atac_cellranger_mex_outs": // Nothing to be done here From 6d2c9258a86ca82a789b5f2097215f01e66b0e0a Mon Sep 17 00:00:00 2001 From: Chris Flerin Date: Wed, 15 Apr 2020 08:56:00 +0200 Subject: [PATCH 02/16] Add Read the Docs config file - Exclude submodule pulls from build Former-commit-id: 522e981fb4caa117498d653c64de5cc89ca2307a --- .readthedocs.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .readthedocs.yml diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 00000000..69a76ccd --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,10 @@ +version: 2 + +sphinx: + configuration: docs/conf.py + +formats: all + +submodules: + exclude: all + From fcaf0518ac55a2b3954c17ad22b6bd7dd092607e Mon Sep 17 00:00:00 2001 From: dweemx Date: Wed, 15 Apr 2020 16:35:52 +0200 Subject: [PATCH 03/16] Fix syntax bugs in utils.nf Former-commit-id: d9985a1b7f47fc84c928e1c98e787f1e0e29b094 --- src/utils/processes/utils.nf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/utils/processes/utils.nf b/src/utils/processes/utils.nf index 0d592377..9dde77d9 100644 --- a/src/utils/processes/utils.nf +++ b/src/utils/processes/utils.nf @@ -29,7 +29,7 @@ def detectCellRangerVersionData = { cellRangerV2Data, cellRangerV3Data -> throw new Exception("None or multiple genomes detected for the output generated by CellRanger v2. Selecting custom genome is currently not implemented.") genomeFilePath = Paths.get(cellRangerV2Data.toString(), genomes[0]) // Sanity checks - if(!new File(genomeFilePath).isDirectory()) + if(!new File(genomeFilePath.toString()).isDirectory()) throw new Exception("Expecting a genome directory from the output generated by CellRanger v2.") if(new File(Paths.get(genomeFilePath.toString(), "genes.tsv.gz").toString()).exists()) throw new Exception("Found compressed gene file (genes.tsv.gz) but expecting uncompressed gene file (genes.tsv). Use gunzip for instance to uncompress it.") @@ -37,23 +37,23 @@ def detectCellRangerVersionData = { cellRangerV2Data, cellRangerV3Data -> throw new Exception("Found compressed gene file (barcodes.tsv.gz) but expecting uncompressed gene file (barcodes.tsv). Use gunzip for instance to uncompress it.") if(new File(Paths.get(genomeFilePath.toString(), "matrix.mtx.gz").toString()).exists()) throw new Exception("Found compressed gene file (matrix.mtx.gz) but expecting uncompressed gene file (matrix.mtx.gz). Use gunzip for instance to uncompress it.") - if(!new File(Paths.get(genomeFilePath.toString(), "genes.tsv")).exists()) + if(!new File(Paths.get(genomeFilePath.toString(), "genes.tsv").toString()).exists()) throw new Exception("Expecting a gene file genes.tsv file but none are found.") - if(!new File(Paths.get(genomeFilePath.toString(), "barcodes.tsv")).exists()) + if(!new File(Paths.get(genomeFilePath.toString(), "barcodes.tsv").toString()).exists()) throw new Exception("Expecting a barcode file barcodes.tsv file but none are found.") - if(!new File(Paths.get(genomeFilePath.toString(), "matrix.mtx")).exists()) + if(!new File(Paths.get(genomeFilePath.toString(), "matrix.mtx").toString()).exists()) throw new Exception("Expecting a matrix file matrix.mtx file but none are found.") return [ version: 2, path: file(genomeFilePath) ] } else if(cellRangerV3Data.exists()) { - if(!new File(Paths.get(cellRangerV3Data.toString(), "features.tsv")).exists() && !new File(Paths.get(cellRangerV3Data.toString(), "features.tsv.gz")).exists()) + if(!new File(Paths.get(cellRangerV3Data.toString(), "features.tsv").toString()).exists() && !new File(Paths.get(cellRangerV3Data.toString(), "features.tsv.gz").toString()).exists()) throw new Exception("Expecting either a features.tsv or features.tsv.gz file but none are found.") - return { - version: 3 + return [ + version: 3, path: cellRangerV3Data - } + ] } else { throw new Exception("Cannot detect the version of the data format of CellRanger.") } From 6545a451d121ec1317ee7d4d416d626c60b86ab9 Mon Sep 17 00:00:00 2001 From: dweemx Date: Thu, 16 Apr 2020 18:02:42 +0200 Subject: [PATCH 04/16] Allow min strategy to be used for single_sample pipeline Former-commit-id: d394ac6292a7693902ac386ab721423888d6594c --- nextflow.config | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nextflow.config b/nextflow.config index cba364d2..0356ea5d 100644 --- a/nextflow.config +++ b/nextflow.config @@ -115,8 +115,12 @@ profiles { includeConfig 'src/scenic/conf/multi_runs.config' } single_sample { + if(min && min.enabled) { + includeConfig 'src/scanpy/conf/min.config' + } else { includeConfig 'src/scanpy/scanpy.config' } + } multi_sample { includeConfig 'src/scanpy/scanpy.config' } From e37f2d6f075b1fbcb4bb986c685869abbeeafa02 Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 11:01:39 +0200 Subject: [PATCH 05/16] Add support for loom #202 Former-commit-id: b0a006a63de60d0e80f3277671d1f5f0576a923b --- nextflow.config | 7 +++++-- src/channels/channels.nf | 10 ++++++++++ src/channels/conf/loom.config | 13 +++++++++++++ src/utils/bin/sc_file_converter.py | 22 ++++++++++++++++++++++ src/utils/processes/utils.nf | 4 ++++ 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 src/channels/conf/loom.config diff --git a/nextflow.config b/nextflow.config index 0356ea5d..cfec7d38 100644 --- a/nextflow.config +++ b/nextflow.config @@ -118,8 +118,8 @@ profiles { if(min && min.enabled) { includeConfig 'src/scanpy/conf/min.config' } else { - includeConfig 'src/scanpy/scanpy.config' - } + includeConfig 'src/scanpy/scanpy.config' + } } multi_sample { includeConfig 'src/scanpy/scanpy.config' @@ -215,6 +215,9 @@ profiles { h5ad { includeConfig 'src/channels/conf/h5ad.config' } + loom { + includeConfig 'src/channels/conf/loom.config' + } tsv { includeConfig 'src/channels/conf/tsv.config' } diff --git a/src/channels/channels.nf b/src/channels/channels.nf index cd53c3c9..db004da7 100644 --- a/src/channels/channels.nf +++ b/src/channels/channels.nf @@ -85,6 +85,16 @@ workflow getDataChannel { } ).view() } + if(params.data.containsKey("loom")) { + data = data.concat( + getFileChannel( + params.data.loom.file_paths, + params.data.loom.suffix + ).map { + it -> tuple(it[0], it[1], "loom", "h5ad") + } + ).view() + } if(params.data.containsKey("tsv")) { data = data.concat( getFileChannel( diff --git a/src/channels/conf/loom.config b/src/channels/conf/loom.config new file mode 100644 index 00000000..55040e03 --- /dev/null +++ b/src/channels/conf/loom.config @@ -0,0 +1,13 @@ +params { + data { + loom { + file_paths = '' + suffix = '.loom' + } + } + sc { + file_converter { + iff = 'loom' + } + } +} diff --git a/src/utils/bin/sc_file_converter.py b/src/utils/bin/sc_file_converter.py index 2d5ca0cb..b7e631cc 100755 --- a/src/utils/bin/sc_file_converter.py +++ b/src/utils/bin/sc_file_converter.py @@ -225,6 +225,28 @@ def add_sample_id(adata, args): # Sort var index adata = adata[:, np.sort(adata.var.index)] adata.write_h5ad(filename="{}.h5ad".format(FILE_PATH_OUT_BASENAME)) +elif INPUT_FORMAT == 'loom' and OUTPUT_FORMAT == 'h5ad': + adata = sc.read_loom( + FILE_PATH_IN, + sparse=False + ) + adata = add_sample_id( + adata=adata, + args=args + ) + # If is tag_cell_with_sample_id is given, add the sample ID as suffix + if args.tag_cell_with_sample_id: + adata.obs.index = map(lambda x: re.sub('-[0-9]+', f"-{args.sample_id}", x), adata.obs.index) + adata.var.index = adata.var.index.astype(str) + # Check if var index is unique + if len(np.unique(adata.var.index)) < len(adata.var.index) and not args.make_var_index_unique: + raise Exception("VSN ERROR: AnnData var index is not unique. This can be fixed by making it unique. To do so update the following param 'makeVarIndexUnique = true' (under params.sc.sc_file_converter) in your config.") + if len(np.unique(adata.var.index)) < len(adata.var.index) and args.make_var_index_unique: + adata.var_names_make_unique() + print("Making AnnData var index unique...") + # Sort var index + adata = adata[:, np.sort(adata.var.index)] + adata.write_h5ad(filename="{}.h5ad".format(FILE_PATH_OUT_BASENAME)) else: raise Exception( "File format conversion {0} --> {1} hasn't been implemented yet.".format(INPUT_FORMAT, OUTPUT_FORMAT)) diff --git a/src/utils/processes/utils.nf b/src/utils/processes/utils.nf index 9dde77d9..d5789588 100644 --- a/src/utils/processes/utils.nf +++ b/src/utils/processes/utils.nf @@ -143,6 +143,10 @@ process SC__FILE_CONVERTER { // Nothing to be done here break; + case "loom": + // Nothing to be done here + break; + case "seurat_rds": // Nothing to be done here break; From 34c1a9c5cbb021586f41d98e43ea0e7bef7145ac Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 11:02:15 +0200 Subject: [PATCH 06/16] Update scanpy tool Former-commit-id: 24fbf9fdd96cd45a772b26152a006171c0fb1d6b --- src/scanpy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scanpy b/src/scanpy index 6092226a..1258d61f 160000 --- a/src/scanpy +++ b/src/scanpy @@ -1 +1 @@ -Subproject commit 6092226ad260fa9fd0055aa231481d79306b8ca3 +Subproject commit 1258d61f99befbff3f73dfa9c89e4d942b951540 From 4e0640667df80197deb73242572411014a778474 Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 11:42:45 +0200 Subject: [PATCH 07/16] Fix bug getMEXChannel should use extractSampleFromMEX instead of extractSampleFromH5 Former-commit-id: b7f9125c712fc3ee943bbee2650c358ff751aaa2 --- src/channels/tenx.nf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/channels/tenx.nf b/src/channels/tenx.nf index 0d3b5cfe..dc54436f 100644 --- a/src/channels/tenx.nf +++ b/src/channels/tenx.nf @@ -84,9 +84,8 @@ workflow getMEXChannel { } channel = Channel .fromPath(glob, type: 'dir', checkIfExists: true) - .view() .map { - filePath -> tuple(extractSampleFromH5( "${filePath}" ), file("${filePath}")) + filePath -> tuple(extractSampleFromMEX( "${filePath}" ), file("${filePath}")) } emit: From 785784d61de3a3cb17c7d7b960575cf1ef891a5f Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 12:16:48 +0200 Subject: [PATCH 08/16] Add docs for Loom support #202 Former-commit-id: dc0ca46a8eb15276ebc078414ca116bba0714bab --- docs/pipelines.rst | 22 ++++++++++++++++++++++ src/scanpy | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/pipelines.rst b/docs/pipelines.rst index f225afd0..31fa0afd 100644 --- a/docs/pipelines.rst +++ b/docs/pipelines.rst @@ -380,6 +380,28 @@ In the generated .config file, make sure the ``file_paths`` parameter is set wit ---- +Loom +---- +Use the following profile when generating the config file:: + + -profile loom + + +In the generated .config file, make sure the ``file_paths`` parameter is set with the paths to the ``.loom`` files:: + + [...] + data { + loom { + file_paths = "data/1k_pbmc_v*_chemistry_SUFFIX.SC__FILE_CONVERTER.loom" + suffix = "_SUFFIX.SC__FILE_CONVERTER.loom" + } + } + [...] + +- The ``suffix`` parameter is used to infer the sample name from the file paths (it is removed from the input file path to derive a sample name). + +---- + Seurat Rds ---------- diff --git a/src/scanpy b/src/scanpy index 1258d61f..22f83e00 160000 --- a/src/scanpy +++ b/src/scanpy @@ -1 +1 @@ -Subproject commit 1258d61f99befbff3f73dfa9c89e4d942b951540 +Subproject commit 22f83e00dd1b93c41f03e89a04bc9f2175555cf5 From e1cc6a0bfea791acc61c2ca7301f454e319dd170 Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 12:17:43 +0200 Subject: [PATCH 09/16] Only convert to dense if sparse matrix Former-commit-id: 905387bdb1dbbe3f23476fed1f73c198fd7775bb --- src/utils/bin/h5ad_to_filtered_loom.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/bin/h5ad_to_filtered_loom.py b/src/utils/bin/h5ad_to_filtered_loom.py index d3d0ffb9..f0a61594 100755 --- a/src/utils/bin/h5ad_to_filtered_loom.py +++ b/src/utils/bin/h5ad_to_filtered_loom.py @@ -40,9 +40,11 @@ "nUMI": np.array(np.sum(adata.X.transpose(), axis=0)).flatten(), } +matrix = (adata.X).T + lp.create( filename=f"{FILE_PATH_OUT_BASENAME}.loom", - layers=(adata.X).T.toarray(), + layers=matrix if type(matrix) == np.ndarray else matrix.toarray(), row_attrs=row_attrs, col_attrs=col_attrs, ) From 1f4199e0ff26c57aadf600697e3cc9ee16d49658 Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 12:22:41 +0200 Subject: [PATCH 10/16] Switch back to using HTTPS instead of SSH for submodules #203 Former-commit-id: 6dc930b37c6b413c47b8dcfbe70b435620aa20c2 --- .gitmodules | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.gitmodules b/.gitmodules index fbd6bbc1..4d4ba51b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,49 +1,49 @@ [submodule "src/cellranger"] path = src/cellranger - url = git@github.com:vib-singlecell-nf/cellranger.git + url = https://github.com/vib-singlecell-nf/cellranger.git [submodule "src/dropletutils"] path = src/dropletutils - url = git@github.com:vib-singlecell-nf/dropletutils.git + url = https://github.com/vib-singlecell-nf/dropletutils.git [submodule "src/dropseqtools"] path = src/dropseqtools - url = git@github.com:vib-singlecell-nf/dropseqtools.git + url = https://github.com/vib-singlecell-nf/dropseqtools.git [submodule "src/edirect"] path = src/edirect - url = git@github.com:vib-singlecell-nf/edirect.git + url = https://github.com/vib-singlecell-nf/edirect.git [submodule "src/fastp"] path = src/fastp - url = git@github.com:vib-singlecell-nf/fastp.git + url = https://github.com/vib-singlecell-nf/fastp.git [submodule "src/picard"] path = src/picard - url = git@github.com:vib-singlecell-nf/picard.git + url = https://github.com/vib-singlecell-nf/picard.git [submodule "src/scanpy"] path = src/scanpy - url = git@github.com:vib-singlecell-nf/scanpy.git + url = https://github.com/vib-singlecell-nf/scanpy.git [submodule "src/scenic"] path = src/scenic - url = git@github.com:vib-singlecell-nf/scenic.git + url = https://github.com/vib-singlecell-nf/scenic.git [submodule "src/sratoolkit"] path = src/sratoolkit - url = git@github.com:vib-singlecell-nf/sratoolkit.git + url = https://github.com/vib-singlecell-nf/sratoolkit.git [submodule "src/star"] path = src/star - url = git@github.com:vib-singlecell-nf/star.git + url = https://github.com/vib-singlecell-nf/star.git [submodule "src/flybaser"] path = src/flybaser - url = git@github.com:vib-singlecell-nf/flybaser.git + url = https://github.com/vib-singlecell-nf/flybaser.git [submodule "src/pcacv"] path = src/pcacv - url = git@github.com:vib-singlecell-nf/pcacv.git + url = https://github.com/vib-singlecell-nf/pcacv.git [submodule "src/harmony"] path = src/harmony - url = git@github.com:vib-singlecell-nf/harmony.git + url = https://github.com/vib-singlecell-nf/harmony.git [submodule "src/cellranger-atac"] path = src/cellranger-atac - url = git@github.com:vib-singlecell-nf/cellranger-atac.git + url = https://github.com/vib-singlecell-nf/cellranger-atac.git [submodule "src/popscle"] path = src/popscle - url = git@github.com:vib-singlecell-nf/popscle.git + url = https://github.com/vib-singlecell-nf/popscle.git [submodule "src/scrublet"] path = src/scrublet - url = git@github.com:vib-singlecell-nf/scrublet.git + url = https://github.com/vib-singlecell-nf/scrublet.git branch = develop From 6817475a7ecae0a193f1ccdf0bf0264277a19313 Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 15:03:24 +0200 Subject: [PATCH 11/16] Add -z option since now sample_data datasets are gzip compressed Former-commit-id: 69bd103344640d5bd972f6354d6f9d66fa26c091 --- .github/workflows/bbknn.yml | 2 +- .github/workflows/bbknn_scenic.yml | 2 +- .github/workflows/harmony.yml | 2 +- .github/workflows/mnncorrect.yml | 2 +- .github/workflows/single_sample.yml | 2 +- .github/workflows/single_sample_scenic.yml | 2 +- .github/workflows/single_sample_scenic_multiruns.yml | 2 +- .github/workflows/single_sample_scrublet.yml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/bbknn.yml b/.github/workflows/bbknn.yml index 9497ffa5..27cb1900 100644 --- a/.github/workflows/bbknn.yml +++ b/.github/workflows/bbknn.yml @@ -26,7 +26,7 @@ jobs: run: | mkdir testdata wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data_tiny.tar.gz - tar xvf sample_data_tiny.tar.gz + tar xzvf sample_data_tiny.tar.gz cp -r sample_data testdata/sample1 mv sample_data testdata/sample2 - name: Run single_sample test diff --git a/.github/workflows/bbknn_scenic.yml b/.github/workflows/bbknn_scenic.yml index 47384c7d..91bb8a41 100644 --- a/.github/workflows/bbknn_scenic.yml +++ b/.github/workflows/bbknn_scenic.yml @@ -26,7 +26,7 @@ jobs: run: | mkdir testdata wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data_small.tar.gz - tar xvf sample_data_small.tar.gz + tar xzvf sample_data_small.tar.gz cp -r sample_data testdata/sample1 mv sample_data testdata/sample2 - name: Run bbknn_scenic test diff --git a/.github/workflows/harmony.yml b/.github/workflows/harmony.yml index 4ee68426..5abbbb5f 100644 --- a/.github/workflows/harmony.yml +++ b/.github/workflows/harmony.yml @@ -26,7 +26,7 @@ jobs: run: | mkdir testdata wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data_tiny.tar.gz - tar xvf sample_data_tiny.tar.gz + tar xzvf sample_data_tiny.tar.gz cp -r sample_data testdata/sample1 mv sample_data testdata/sample2 - name: Run single_sample test diff --git a/.github/workflows/mnncorrect.yml b/.github/workflows/mnncorrect.yml index 23fba61d..8b43d811 100644 --- a/.github/workflows/mnncorrect.yml +++ b/.github/workflows/mnncorrect.yml @@ -26,7 +26,7 @@ jobs: run: | mkdir testdata wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data.tar.gz - tar xvf sample_data.tar.gz + tar xzvf sample_data.tar.gz cp -r sample_data testdata/sample1 mv sample_data testdata/sample2 - name: Run single_sample test diff --git a/.github/workflows/single_sample.yml b/.github/workflows/single_sample.yml index 37fc5c56..a257b145 100644 --- a/.github/workflows/single_sample.yml +++ b/.github/workflows/single_sample.yml @@ -25,7 +25,7 @@ jobs: - name: Get sample data run: | wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data_tiny.tar.gz - tar xvf sample_data_tiny.tar.gz + tar xzvf sample_data_tiny.tar.gz - name: Run single_sample test run: | nextflow run ${GITHUB_WORKSPACE} -profile single_sample,test__single_sample,docker -entry single_sample -ansi-log false diff --git a/.github/workflows/single_sample_scenic.yml b/.github/workflows/single_sample_scenic.yml index e2f65b37..a3db4980 100644 --- a/.github/workflows/single_sample_scenic.yml +++ b/.github/workflows/single_sample_scenic.yml @@ -25,7 +25,7 @@ jobs: - name: Get sample data run: | wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data_small.tar.gz - tar xvf sample_data_small.tar.gz + tar xzvf sample_data_small.tar.gz - name: Run single_sample_scenic test run: | nextflow run ${GITHUB_WORKSPACE} -profile single_sample_scenic,test__single_sample_scenic,docker -entry single_sample_scenic -ansi-log false diff --git a/.github/workflows/single_sample_scenic_multiruns.yml b/.github/workflows/single_sample_scenic_multiruns.yml index 20b9be71..b137707f 100644 --- a/.github/workflows/single_sample_scenic_multiruns.yml +++ b/.github/workflows/single_sample_scenic_multiruns.yml @@ -25,7 +25,7 @@ jobs: - name: Get sample data run: | wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data_small.tar.gz - tar xvf sample_data_small.tar.gz + tar xzvf sample_data_small.tar.gz - name: Run single_sample_scenic test run: | nextflow run ${GITHUB_WORKSPACE} -profile single_sample_scenic,scenic_multiruns,test__single_sample_scenic_multiruns,docker -entry single_sample_scenic -ansi-log false diff --git a/.github/workflows/single_sample_scrublet.yml b/.github/workflows/single_sample_scrublet.yml index b7fa274d..837ba063 100644 --- a/.github/workflows/single_sample_scrublet.yml +++ b/.github/workflows/single_sample_scrublet.yml @@ -25,7 +25,7 @@ jobs: - name: Get sample data run: | wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/sample_data.tar.gz - tar xvf sample_data.tar.gz + tar xzvf sample_data.tar.gz - name: Run single_sample_scrublet test run: | nextflow run ${GITHUB_WORKSPACE} -profile single_sample_scrublet,test__single_sample_scrublet,docker -entry single_sample_scrublet -ansi-log false From 32f40ad75ec30a45724fead777727a7811908b53 Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 15:10:18 +0200 Subject: [PATCH 12/16] Add hg19 profile Currently this only used by scenic tool Former-commit-id: 38c117f01a28af51ac2e966a15f4cfa1da0e34fa --- conf/genomes/hg19.config | 8 ++++++++ nextflow.config | 5 +++++ 2 files changed, 13 insertions(+) create mode 100644 conf/genomes/hg19.config diff --git a/conf/genomes/hg19.config b/conf/genomes/hg19.config new file mode 100644 index 00000000..6fba31d3 --- /dev/null +++ b/conf/genomes/hg19.config @@ -0,0 +1,8 @@ +params { + global { + species = 'human' + genome { + assembly = 'hg19' + } + } +} diff --git a/nextflow.config b/nextflow.config index cfec7d38..ff5ffb22 100644 --- a/nextflow.config +++ b/nextflow.config @@ -245,6 +245,11 @@ profiles { includeConfig 'conf/genomes/hg38.config' } + hg19 { + includeConfig 'src/scenic/conf/min/tfs/human-v0.0.1.config' + includeConfig 'conf/genomes/hg19.config' + } + // feature profiles: pcacv { From bec397c0625359bb16b83f14f405e710ea53e48a Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 15:26:05 +0200 Subject: [PATCH 13/16] Update scenic tool Add support for hg19 Former-commit-id: 08cba346dc7b7b2347d412a5798b5867ab185015 --- src/scenic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scenic b/src/scenic index 964bf37f..8c4fcc05 160000 --- a/src/scenic +++ b/src/scenic @@ -1 +1 @@ -Subproject commit 964bf37fea93061da497d41ee6a179bb314e2663 +Subproject commit 8c4fcc057b335f938fc3651cfe11a450f19df48a From 00104990a6f35f0851784d352dfb528d46ce0d85 Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 15:52:42 +0200 Subject: [PATCH 14/16] Add support for mm10 (only motifs) in scenic Add mm10 profile Update scenic tool Former-commit-id: eb918ca0c70f16a30194ffc6aa49ec7fb4a53a49 --- conf/genomes/mm10.config | 8 ++++++++ nextflow.config | 5 +++++ src/scenic | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 conf/genomes/mm10.config diff --git a/conf/genomes/mm10.config b/conf/genomes/mm10.config new file mode 100644 index 00000000..8d7967d7 --- /dev/null +++ b/conf/genomes/mm10.config @@ -0,0 +1,8 @@ +params { + global { + species = 'mouse' + genome { + assembly = 'mm10' + } + } +} diff --git a/nextflow.config b/nextflow.config index ff5ffb22..a715e6ee 100644 --- a/nextflow.config +++ b/nextflow.config @@ -250,6 +250,11 @@ profiles { includeConfig 'conf/genomes/hg19.config' } + mm10 { + includeConfig 'src/scenic/conf/min/tfs/mouse-v0.0.1.config' + includeConfig 'conf/genomes/mm10.config' + } + // feature profiles: pcacv { diff --git a/src/scenic b/src/scenic index 8c4fcc05..ce98b891 160000 --- a/src/scenic +++ b/src/scenic @@ -1 +1 @@ -Subproject commit 8c4fcc057b335f938fc3651cfe11a450f19df48a +Subproject commit ce98b8911c7345cefe6fb746a35e4529e14e5ac8 From d437cb5eef3bb65cfa578ea27a9b76c65a03d0ea Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 16:54:48 +0200 Subject: [PATCH 15/16] Udate scenic tool. Update sanity checks to allow the use of hg19 and mm10 genome assemblies Former-commit-id: 7682636ceb407288ebc4b60689dabd4e5eefcca1 --- src/scenic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scenic b/src/scenic index ce98b891..1f7b1f18 160000 --- a/src/scenic +++ b/src/scenic @@ -1 +1 @@ -Subproject commit ce98b8911c7345cefe6fb746a35e4529e14e5ac8 +Subproject commit 1f7b1f1869b23098ecfbce232c4cdc17841d32bb From 2cc3d752031c60c6f0df2887f7bc26b7851131bc Mon Sep 17 00:00:00 2001 From: dweemx Date: Fri, 17 Apr 2020 19:05:19 +0200 Subject: [PATCH 16/16] Bump version from 0.17.0 to 0.18.0 Former-commit-id: c912376436d2ead8db55af140f40d84b2ab96677 --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index a715e6ee..f6705696 100644 --- a/nextflow.config +++ b/nextflow.config @@ -3,7 +3,7 @@ manifest { name = 'vib-singlecell-nf/vsn-pipelines' description = 'A repository of pipelines for single-cell data in Nextflow DSL2' homePage = 'https://github.com/vib-singlecell-nf/vsn-pipelines' - version = '0.17.0' + version = '0.18.0' mainScript = 'main.nf' defaultBranch = 'master' nextflowVersion = '!19.12.0-edge' // with ! prefix, stop execution if current version does not match required version.