forked from nf-core/scnanoseq
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathro-crate-metadata.json
More file actions
322 lines (322 loc) · 25.3 KB
/
Copy pathro-crate-metadata.json
File metadata and controls
322 lines (322 loc) · 25.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
{
"@context": "https://w3id.org/ro/crate/1.1/context",
"@graph": [
{
"@id": "./",
"@type": "Dataset",
"creativeWorkStatus": "Stable",
"datePublished": "2026-03-03T20:25:53+00:00",
"description": "<h1>\n <picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/images/nf-core-scnanoseq_logo_dark.png\">\n <img alt=\"nf-core/scnanoseq\" src=\"docs/images/nf-core-scnanoseq_logo_light.png\">\n </picture>\n</h1>\n\n[](https://github.com/nf-core/scnanoseq/actions/workflows/ci.yml)\n[](https://github.com/nf-core/scnanoseq/actions/workflows/linting.yml)[](https://nf-co.re/scnanoseq/results)[](https://doi.org/10.5281/zenodo.13899279)\n[](https://www.nf-test.com)\n\n[](https://www.nextflow.io/)\n[](https://docs.conda.io/en/latest/)\n[](https://www.docker.com/)\n[](https://sylabs.io/docs/)\n[](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/scnanoseq)\n\n[](https://nfcore.slack.com/channels/scnanoseq)[](https://twitter.com/nf_core)[](https://mstdn.science/@nf_core)[](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/scnanoseq** is a bioinformatics best-practice analysis pipeline for 10X Genomics single-cell/nuclei RNA-seq data derived from Oxford Nanopore Q20+ chemistry ([R10.4 flow cells (>Q20)](https://nanoporetech.com/about-us/news/oxford-nanopore-announces-technology-updates-nanopore-community-meeting)). Due to the expectation of >Q20 quality, the input data for the pipeline does not depend on Illumina paired data. **Please note `scnanoseq` can also process Oxford data with older chemistry, but we encourage usage of the Q20+ chemistry when possible**.\n\nThe pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker/Singularity containers making installation trivial and results highly reproducible. The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. Where possible, these processes have been submitted to and installed from [nf-core/modules](https://github.com/nf-core/modules) in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community!\n\nOn release, automated continuous integration tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources. The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/scnanoseq/results).\n\n## Pipeline summary\n\n\n\n1. Raw read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/), [`NanoPlot`](https://github.com/wdecoster/NanoPlot), [`NanoComp`](https://github.com/wdecoster/nanocomp) and [`ToulligQC`](https://github.com/GenomiqueENS/toulligQC))\n2. Unzip and split FASTQ ([`pigz`](https://github.com/madler/pigz))\n 1. Optional: Split FASTQ for faster processing ([`split`](https://linux.die.net/man/1/split))\n3. Trim and filter reads ([`Nanofilt`](https://github.com/wdecoster/nanofilt))\n4. Post trim QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/), [`NanoPlot`](https://github.com/wdecoster/NanoPlot), [`NanoComp`](https://github.com/wdecoster/nanocomp) and [`ToulligQC`](https://github.com/GenomiqueENS/toulligQC))\n5. Barcode detection using a custom whitelist or 10X whitelist. ([`BLAZE`](https://github.com/shimlab/BLAZE))\n6. Extract barcodes. Consists of the following steps:\n 1. Parse FASTQ files into R1 reads containing barcode and UMI and R2 reads containing sequencing without barcode and UMI (custom script `./bin/pre_extract_barcodes.py`)\n 2. Re-zip FASTQs ([`pigz`](https://github.com/madler/pigz))\n7. Barcode correction (custom script `./bin/correct_barcodes.py`)\n8. Post-extraction QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/), [`NanoPlot`](https://github.com/wdecoster/NanoPlot), [`NanoComp`](https://github.com/wdecoster/nanocomp) and [`ToulligQC`](https://github.com/GenomiqueENS/toulligQC))\n9. Alignment to the genome, transcriptome, or both ([`minimap2`](https://github.com/lh3/minimap2))\n10. Post-alignment filtering of mapped reads and gathering mapping QC ([`SAMtools`](http://www.htslib.org/doc/samtools.html))\n11. Post-alignment QC in unfiltered BAM files ([`NanoComp`](https://github.com/wdecoster/nanocomp), [`RSeQC`](https://rseqc.sourceforge.net/))\n12. Barcode (BC) tagging with read quality, BC quality, UMI quality (custom script `./bin/tag_barcodes.py`)\n13. Read deduplication ([`UMI-tools`](https://github.com/CGATOxford/UMI-tools) OR [`Picard MarkDuplicates`](https://broadinstitute.github.io/picard/))\n14. Gene and transcript level matrices generation with [`IsoQuant`](https://github.com/ablab/IsoQuant) and/or transcript level matrices with [`oarfish`](https://github.com/COMBINE-lab/oarfish)\n15. Preliminary matrix QC ([`Seurat`](https://github.com/satijalab/seurat))\n16. Compile QC for raw reads, trimmed reads, pre and post-extracted reads, mapping metrics and preliminary single-cell/nuclei QC ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\n```csv title=\"samplesheet.csv\"\nsample,fastq,cell_count\nCONTROL_REP1,AEG588A1_S1.fastq.gz,5000\nCONTROL_REP1,AEG588A1_S2.fastq.gz,5000\nCONTROL_REP2,AEG588A2_S1.fastq.gz,5000\nCONTROL_REP3,AEG588A3_S1.fastq.gz,5000\nCONTROL_REP4,AEG588A4_S1.fastq.gz,5000\nCONTROL_REP4,AEG588A4_S2.fastq.gz,5000\nCONTROL_REP4,AEG588A4_S3.fastq.gz,5000\n```\n\nEach row represents a single-end fastq file. Rows with the same sample identifier are considered technical replicates and will be automatically merged. `cell_count` refers to the expected number of cells you expect.\n\n```bash\nnextflow run nf-core/scnanoseq \\\n -profile <docker/singularity/.../institute> \\\n --input samplesheet.csv \\\n --outdir <OUTDIR>\n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/scnanoseq/usage) and the [parameter documentation](https://nf-co.re/scnanoseq/parameters).\n\n## Pipeline output\n\nThis pipeline produces feature-barcode matrices as the main output. These feature-barcode matrices are able to be ingested directly by most packages used for downstream analyses such as `Seurat`. Additionally, the pipeline produces a number of quality control metrics to ensure that the samples processed meet expected metrics for single-cell/nuclei data.\n\nThe pipeline provides two tools to produce the aforementioned feature-barcode matrices, `IsoQuant` and `oarfish`, and the user is given the ability to choose whether to run both or just one. `IsoQuant` will require a genome fasta to be used as input to the pipeline, and will produce both gene and transcript level matrices. `oarfish` will require a transcriptome fasta to be used as input to the pipeline and will produce only transcript level matrices.\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/scnanoseq/results) tab on the nf-core website pipeline page.\nFor more details about the full set of output files and reports, please refer to the\n[output documentation](https://nf-co.re/scnanoseq/output).\n\n## Troubleshooting\n\nIf you experience any issues, please make sure to reach out on the [#scnanoseq slack channel](https://nfcore.slack.com/archives/C03TUE2K6NS) or [open an issue on our GitHub repository](https://github.com/nf-core/scnanoseq/issues/new/choose). However, some resolutions for common issues will be noted below:\n\n- Due to the nature of the data this pipeline analyzes, some tools may experience increased runtimes. For some of the custom tools made for this pipeline (`preextract_fastq.py` and `correct_barcodes.py`), we have leveraged the splitting done via the `split_amount` parameter to decrease their overall runtimes. The `split_amount` parameter will split the input FASTQs into a number of FASTQ files, each containing a number of lines based on the value used for this parameter. As a result, it is important not to set this parameter to be too low as doing so would cause the creation of a large number of files the pipeline will be processed. While this value can be highly dependent on the data, a good starting point for an analysis would be to set this value to `500000`. If you find that `PREEXTRACT_FASTQ` and `CORRECT_BARCODES` are still taking long amounts of time to run, it would be worth reducing this parameter to `200000` or `100000`, but keeping the value on the order of hundred of thousands or tens of thousands should help with keeping the total number of processes minimal. An example of setting this parameter to be equal to 500000 is shown below:\n\n```yml title=\"params.yml\"\nsplit_amount: 500000\n```\n\n- We have seen a recurrent node failure on slurm clusters that does seem to be related to submission of Nextflow jobs. This issue is not related to this pipeline per se, but rather to Nextflow itself. We are currently working on a resolution. But we have two methods that appear to help overcome should this issue arise:\n 1. Provide a custom config that increases the memory request for the job that failed. This may take a couple attempts to find the correct requests, but we have noted that there does appear to be a memory issue occasionally with these errors.\n 2. Request an interactive session with a decent amount of time and memory and CPUs in order to run the pipeline on the single node. Note that this will take time as there will be minimal parallelization, but this does seem to resolve the issue.\n- We note that umitools dedup can take a large amount of time in order to perform deduplication. One approach we have implemented to assist with speed is to split input files based on chromosome. However for the transcriptome aligned bams, there is some additional work required that involves grouping transcripts into appropriate chromosomes. In order to accomplish this, the pipeline needs to parse the transcript id from the transcriptome FASTA file. The transcript id is often nested in the sequence identifier with additional data and the data is delimited. We have included the delimiters used by reference files obtained from GENCODE, NCBI, and Ensembl. However in case you wish to explicitly control this or if the reference file source uses a different delimiter, you are able to manually set it via the `--fasta_delimiter` parameter.\n- We acknowledge that analyzing PromethION data is a common use case for this pipeline. Currently, the pipeline has been developed with defaults to analyze GridION and average sized PromethION data. For cases, where jobs have fail due for larger PromethION datasets, the defaults can be overwritten by a custom configuation file (provided by the `-c` Nextflow option) where resources can be increased (substantially in some cases). Below are some of the overrides we have used, and while these amounts may not work on every dataset, these will hopefully at least note which processes will need to have their resources increased:\n\n```groovy title=\"custom.config\"\n\nprocess\n{\n withName: '.*:.*FASTQC.*'\n {\n cpus = 20\n }\n}\n\nprocess\n{\n withName: '.*:BLAZE'\n {\n cpus = 30\n }\n}\n\nprocess\n{\n withName: '.*:TAG_BARCODES'\n {\n memory = '60.GB'\n }\n}\n\nprocess\n{\n withName: '.*:SAMTOOLS_SORT'\n {\n cpus = 20\n }\n}\n\nprocess\n{\n withName: '.*:MINIMAP2_ALIGN'\n {\n cpus = 20\n }\n}\n\nprocess\n{\n withName: '.*:ISOQUANT'\n {\n cpus = 30\n memory = '85.GB'\n }\n}\n```\n\nWe further note that while we encourage the use of `split_amount` as discussed above for larger datasets, the pipeline can be executed without enabling this parameter. When doing this, please consider increasing the time limit to `CORRECT_BARCODES` as it can take hours instead of minutes when `split_amount` is disabled:\n\n```groovy title=\"custom.config\"\n//NOTE: with split_amount disabled, consider increasing the time limit to CORRECT_BARCODES\nprocess\n{\n withName: '.*:CORRECT_BARCODES'\n {\n time = '15.h'\n }\n}\n```\n\n## Credits\n\nnf-core/scnanoseq was originally written by [Austyn Trull](https://github.com/atrull314), and [Dr. Lara Ianov](https://github.com/lianov).\n\nWe would also like to thank the following people and groups for their support, including financial support:\n\n- Dr. Elizabeth Worthey\n- University of Alabama at Birmingham Biological Data Science Core (U-BDS), RRID:SCR_021766, <https://github.com/U-BDS>\n- Civitan International Research Center\n- Support from: 3P30CA013148-48S8\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#scnanoseq` channel](https://nfcore.slack.com/channels/scnanoseq) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\nIf you use `nf-core/scnanoseq` for your analysis, please cite the article as follows:\n\n> **scnanoseq: an nf-core pipeline for Oxford Nanopore single-cell RNA-sequencing**\n>\n> Austyn Trull, Elizabeth A. Worthey, Lara Ianov\n>\n> Bioinformatics, Volume 41, Issue 9, September 2025, btaf487, <https://doi.org/10.1093/bioinformatics/btaf487>\n\nThe specific pipleine version can be cited using the following doi: [10.5281/zenodo.13899279](https://doi.org/10.5281/zenodo.13899279)\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x)\n\n> **Empowering bioinformatics communities with Nextflow and nf-core.**\n>\n> Langer, B.E., Amaral, A., Baudement, MO. et al.\n>\n> _Genome Biol_ 2025 July 29. doi [10.1186/s13059-025-03673-9](https://doi.org/10.1186/s13059-025-03673-9)\n",
"hasPart": [
{
"@id": "main.nf"
},
{
"@id": "assets/scnanoseq_tube_map.png"
},
{
"@id": "assets/"
},
{
"@id": "bin/"
},
{
"@id": "conf/"
},
{
"@id": "docs/"
},
{
"@id": "docs/images/"
},
{
"@id": "modules/"
},
{
"@id": "modules/local/"
},
{
"@id": "modules/nf-core/"
},
{
"@id": "workflows/"
},
{
"@id": "subworkflows/"
},
{
"@id": "nextflow.config"
},
{
"@id": "README.md"
},
{
"@id": "nextflow_schema.json"
},
{
"@id": "CHANGELOG.md"
},
{
"@id": "LICENSE"
},
{
"@id": "CODE_OF_CONDUCT.md"
},
{
"@id": "CITATIONS.md"
},
{
"@id": "modules.json"
},
{
"@id": "docs/usage.md"
},
{
"@id": "docs/output.md"
},
{
"@id": ".nf-core.yml"
},
{
"@id": ".pre-commit-config.yaml"
},
{
"@id": ".prettierignore"
}
],
"isBasedOn": "https://github.com/nf-core/scnanoseq",
"license": "MIT",
"mainEntity": {
"@id": "main.nf"
},
"name": "nf-core/scnanoseq"
},
{
"@id": "ro-crate-metadata.json",
"@type": "CreativeWork",
"about": {
"@id": "./"
},
"conformsTo": [
{
"@id": "https://w3id.org/ro/crate/1.1"
},
{
"@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0"
}
]
},
{
"@id": "main.nf",
"@type": [
"File",
"SoftwareSourceCode",
"ComputationalWorkflow"
],
"creator": [
{
"@id": "https://orcid.org/0000-0002-9262-4202"
},
{
"@id": "https://orcid.org/0000-0002-1859-2118"
}
],
"dateCreated": "",
"dateModified": "2026-03-03T14:25:53Z",
"dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/",
"image": {
"@id": "assets/scnanoseq_tube_map.png"
},
"keywords": [
"nf-core",
"nextflow",
"10xgenomics",
"long-read-sequencing",
"nanopore",
"rna-seq",
"scrna-seq",
"single-cell"
],
"license": [
"MIT"
],
"maintainer": [
{
"@id": "https://orcid.org/0000-0002-9262-4202"
},
{
"@id": "https://orcid.org/0000-0002-1859-2118"
}
],
"name": [
"nf-core/scnanoseq"
],
"programmingLanguage": {
"@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow"
},
"sdPublisher": {
"@id": "https://nf-co.re/"
},
"url": [
"https://github.com/nf-core/scnanoseq",
"https://nf-co.re/scnanoseq/1.2.2/"
],
"version": [
"1.2.2"
]
},
{
"@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow",
"@type": "ComputerLanguage",
"identifier": {
"@id": "https://www.nextflow.io/"
},
"name": "Nextflow",
"url": {
"@id": "https://www.nextflow.io/"
},
"version": "!>=24.04.2"
},
{
"@id": "assets/scnanoseq_tube_map.png",
"@type": [
"File",
"ImageObject"
],
"name": "Workflow diagram"
},
{
"@id": "assets/",
"@type": "Dataset",
"description": "Additional files"
},
{
"@id": "bin/",
"@type": "Dataset",
"description": "Scripts that must be callable from a pipeline process"
},
{
"@id": "conf/",
"@type": "Dataset",
"description": "Configuration files"
},
{
"@id": "docs/",
"@type": "Dataset",
"description": "Markdown files for documenting the pipeline"
},
{
"@id": "docs/images/",
"@type": "Dataset",
"description": "Images for the documentation files"
},
{
"@id": "modules/",
"@type": "Dataset",
"description": "Modules used by the pipeline"
},
{
"@id": "modules/local/",
"@type": "Dataset",
"description": "Pipeline-specific modules"
},
{
"@id": "modules/nf-core/",
"@type": "Dataset",
"description": "nf-core modules"
},
{
"@id": "workflows/",
"@type": "Dataset",
"description": "Main pipeline workflows to be executed in main.nf"
},
{
"@id": "subworkflows/",
"@type": "Dataset",
"description": "Smaller subworkflows"
},
{
"@id": "nextflow.config",
"@type": "File",
"description": "Main Nextflow configuration file"
},
{
"@id": "README.md",
"@type": "File",
"description": "Basic pipeline usage information"
},
{
"@id": "nextflow_schema.json",
"@type": "File",
"description": "JSON schema for pipeline parameter specification"
},
{
"@id": "CHANGELOG.md",
"@type": "File",
"description": "Information on changes made to the pipeline"
},
{
"@id": "LICENSE",
"@type": "File",
"description": "The license - should be MIT"
},
{
"@id": "CODE_OF_CONDUCT.md",
"@type": "File",
"description": "The nf-core code of conduct"
},
{
"@id": "CITATIONS.md",
"@type": "File",
"description": "Citations needed when using the pipeline"
},
{
"@id": "modules.json",
"@type": "File",
"description": "Version information for modules from nf-core/modules"
},
{
"@id": "docs/usage.md",
"@type": "File",
"description": "Usage documentation"
},
{
"@id": "docs/output.md",
"@type": "File",
"description": "Output documentation"
},
{
"@id": ".nf-core.yml",
"@type": "File",
"description": "nf-core configuration file, configuring template features and linting rules"
},
{
"@id": ".pre-commit-config.yaml",
"@type": "File",
"description": "Configuration file for pre-commit hooks"
},
{
"@id": ".prettierignore",
"@type": "File",
"description": "Ignore file for prettier"
},
{
"@id": "https://nf-co.re/",
"@type": "Organization",
"name": "nf-core",
"url": "https://nf-co.re/"
},
{
"@id": "https://orcid.org/0000-0002-9262-4202",
"@type": "Person",
"email": "atrull@uab.edu",
"name": "Austyn Trull"
},
{
"@id": "https://orcid.org/0000-0002-1859-2118",
"@type": "Person",
"email": "lianov@uab.edu",
"name": "Lara Ianov"
}
]
}