scrnaseq
scrnaseq copied to clipboard
addition of emptyDrops draftdownstream modules
This is a draft for adding emptyDrops functionality to the pipeline, using a python ported implementation of the R package: https://github.com/nh3/emptydrops
New additions include: empty_drops.nf empty_drops_filter.nf filter_by_emptydrops.py
The two things that definitely still need work are in empty_drops_filter.nf is to check the inputs to be sure it's the data directory path, and to add an output directory path
PR checklist
- [ ] This comment contains a description of changes (with reason).
- [ ] If you've fixed a bug or added code that should be tested, add tests!
- [ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
- [ ] If necessary, also make a PR on the nf-core/scrnaseq branch on the nf-core/test-datasets repository.
- [ ] Make sure your code lints (
nf-core lint
). - [ ] Ensure the test suite passes (
nextflow run . -profile test,docker --outdir <OUTDIR>
). - [ ] Usage Documentation in
docs/usage.md
is updated. - [ ] Output Documentation in
docs/output.md
is updated. - [ ]
CHANGELOG.md
is updated. - [ ]
README.md
is updated (including new tool citations and authors/contributors).
@fmalmeida Here is the draft we disscussed!
nf-core lint
overall result: Passed :white_check_mark:
Posted for pipeline commit ae8fb07
+| ✅ 158 tests passed |+
:white_check_mark: Tests passed:
-
files_exist - File found:
.gitattributes
-
files_exist - File found:
.gitignore
-
files_exist - File found:
.nf-core.yml
-
files_exist - File found:
.editorconfig
-
files_exist - File found:
.prettierignore
-
files_exist - File found:
.prettierrc.yml
-
files_exist - File found:
CHANGELOG.md
-
files_exist - File found:
CITATIONS.md
-
files_exist - File found:
CODE_OF_CONDUCT.md
-
files_exist - File found:
CODE_OF_CONDUCT.md
-
files_exist - File found:
LICENSE
orLICENSE.md
orLICENCE
orLICENCE.md
-
files_exist - File found:
nextflow_schema.json
-
files_exist - File found:
nextflow.config
-
files_exist - File found:
README.md
-
files_exist - File found:
.github/.dockstore.yml
-
files_exist - File found:
.github/CONTRIBUTING.md
-
files_exist - File found:
.github/ISSUE_TEMPLATE/bug_report.yml
-
files_exist - File found:
.github/ISSUE_TEMPLATE/config.yml
-
files_exist - File found:
.github/ISSUE_TEMPLATE/feature_request.yml
-
files_exist - File found:
.github/PULL_REQUEST_TEMPLATE.md
-
files_exist - File found:
.github/workflows/branch.yml
-
files_exist - File found:
.github/workflows/ci.yml
-
files_exist - File found:
.github/workflows/linting_comment.yml
-
files_exist - File found:
.github/workflows/linting.yml
-
files_exist - File found:
assets/email_template.html
-
files_exist - File found:
assets/email_template.txt
-
files_exist - File found:
assets/sendmail_template.txt
-
files_exist - File found:
assets/nf-core-scrnaseq_logo_light.png
-
files_exist - File found:
conf/modules.config
-
files_exist - File found:
conf/test.config
-
files_exist - File found:
conf/test_full.config
-
files_exist - File found:
docs/images/nf-core-scrnaseq_logo_light.png
-
files_exist - File found:
docs/images/nf-core-scrnaseq_logo_dark.png
-
files_exist - File found:
docs/output.md
-
files_exist - File found:
docs/README.md
-
files_exist - File found:
docs/README.md
-
files_exist - File found:
docs/usage.md
-
files_exist - File found:
lib/nfcore_external_java_deps.jar
-
files_exist - File found:
lib/NfcoreSchema.groovy
-
files_exist - File found:
lib/NfcoreTemplate.groovy
-
files_exist - File found:
lib/Utils.groovy
-
files_exist - File found:
lib/WorkflowMain.groovy
-
files_exist - File found:
main.nf
-
files_exist - File found:
assets/multiqc_config.yml
-
files_exist - File found:
conf/base.config
-
files_exist - File found:
conf/igenomes.config
-
files_exist - File found:
.github/workflows/awstest.yml
-
files_exist - File found:
.github/workflows/awsfulltest.yml
-
files_exist - File found:
lib/WorkflowScrnaseq.groovy
-
files_exist - File found:
modules.json
-
files_exist - File found:
pyproject.toml
-
files_exist - File not found check:
Singularity
-
files_exist - File not found check:
parameters.settings.json
-
files_exist - File not found check:
.nf-core.yaml
-
files_exist - File not found check:
bin/markdown_to_html.r
-
files_exist - File not found check:
conf/aws.config
-
files_exist - File not found check:
.github/workflows/push_dockerhub.yml
-
files_exist - File not found check:
.github/ISSUE_TEMPLATE/bug_report.md
-
files_exist - File not found check:
.github/ISSUE_TEMPLATE/feature_request.md
-
files_exist - File not found check:
docs/images/nf-core-scrnaseq_logo.png
-
files_exist - File not found check:
.markdownlint.yml
-
files_exist - File not found check:
.yamllint.yml
-
files_exist - File not found check:
lib/Checks.groovy
-
files_exist - File not found check:
lib/Completion.groovy
-
files_exist - File not found check:
lib/Workflow.groovy
-
files_exist - File not found check:
.travis.yml
-
nextflow_config - Config variable found:
manifest.name
-
nextflow_config - Config variable found:
manifest.nextflowVersion
-
nextflow_config - Config variable found:
manifest.description
-
nextflow_config - Config variable found:
manifest.version
-
nextflow_config - Config variable found:
manifest.homePage
-
nextflow_config - Config variable found:
timeline.enabled
-
nextflow_config - Config variable found:
trace.enabled
-
nextflow_config - Config variable found:
report.enabled
-
nextflow_config - Config variable found:
dag.enabled
-
nextflow_config - Config variable found:
process.cpus
-
nextflow_config - Config variable found:
process.memory
-
nextflow_config - Config variable found:
process.time
-
nextflow_config - Config variable found:
params.outdir
-
nextflow_config - Config variable found:
params.input
-
nextflow_config - Config variable found:
params.show_hidden_params
-
nextflow_config - Config variable found:
params.schema_ignore_params
-
nextflow_config - Config variable found:
manifest.mainScript
-
nextflow_config - Config variable found:
timeline.file
-
nextflow_config - Config variable found:
trace.file
-
nextflow_config - Config variable found:
report.file
-
nextflow_config - Config variable found:
dag.file
-
nextflow_config - Config variable (correctly) not found:
params.version
-
nextflow_config - Config variable (correctly) not found:
params.nf_required_version
-
nextflow_config - Config variable (correctly) not found:
params.container
-
nextflow_config - Config variable (correctly) not found:
params.singleEnd
-
nextflow_config - Config variable (correctly) not found:
params.igenomesIgnore
-
nextflow_config - Config variable (correctly) not found:
params.name
-
nextflow_config - Config
timeline.enabled
had correct value:true
-
nextflow_config - Config
report.enabled
had correct value:true
-
nextflow_config - Config
trace.enabled
had correct value:true
-
nextflow_config - Config
dag.enabled
had correct value:true
-
nextflow_config - Config
manifest.name
began withnf-core/
-
nextflow_config - Config variable
manifest.homePage
began with https://github.com/nf-core/ -
nextflow_config - Config
dag.file
ended with.html
-
nextflow_config - Config variable
manifest.nextflowVersion
started with >= or !>= -
nextflow_config - Config
manifest.version
ends indev
:'2.1.1dev'
-
nextflow_config - Config
params.custom_config_version
is set tomaster
-
nextflow_config - Config
params.custom_config_base
is set tohttps://raw.githubusercontent.com/nf-core/configs/master
- nextflow_config - Lines for loading custom profiles found
-
files_unchanged -
.gitattributes
matches the template -
files_unchanged -
.prettierrc.yml
matches the template -
files_unchanged -
CODE_OF_CONDUCT.md
matches the template -
files_unchanged -
LICENSE
matches the template -
files_unchanged -
.github/.dockstore.yml
matches the template -
files_unchanged -
.github/CONTRIBUTING.md
matches the template -
files_unchanged -
.github/ISSUE_TEMPLATE/bug_report.yml
matches the template -
files_unchanged -
.github/ISSUE_TEMPLATE/config.yml
matches the template -
files_unchanged -
.github/ISSUE_TEMPLATE/feature_request.yml
matches the template -
files_unchanged -
.github/PULL_REQUEST_TEMPLATE.md
matches the template -
files_unchanged -
.github/workflows/branch.yml
matches the template -
files_unchanged -
.github/workflows/linting_comment.yml
matches the template -
files_unchanged -
.github/workflows/linting.yml
matches the template -
files_unchanged -
assets/email_template.html
matches the template -
files_unchanged -
assets/email_template.txt
matches the template -
files_unchanged -
assets/sendmail_template.txt
matches the template -
files_unchanged -
assets/nf-core-scrnaseq_logo_light.png
matches the template -
files_unchanged -
docs/images/nf-core-scrnaseq_logo_light.png
matches the template -
files_unchanged -
docs/images/nf-core-scrnaseq_logo_dark.png
matches the template -
files_unchanged -
docs/README.md
matches the template -
files_unchanged -
lib/nfcore_external_java_deps.jar
matches the template -
files_unchanged -
lib/NfcoreSchema.groovy
matches the template -
files_unchanged -
lib/NfcoreTemplate.groovy
matches the template -
files_unchanged -
.gitignore
matches the template -
files_unchanged -
.prettierignore
matches the template -
files_unchanged -
pyproject.toml
matches the template - actions_ci - '.github/workflows/ci.yml' is triggered on expected events
- actions_ci - '.github/workflows/ci.yml' checks minimum NF version
- actions_awstest - '.github/workflows/awstest.yml' is triggered correctly
-
actions_awsfulltest -
.github/workflows/awsfulltest.yml
is triggered correctly -
actions_awsfulltest -
.github/workflows/awsfulltest.yml
does not use-profile test
-
readme - README Nextflow minimum version badge matched config. Badge:
21.10.3
, Config:21.10.3
-
readme - README Nextflow minimum version in Quick Start section matched config. README:
21.10.3
, Config:21.10.3
- pipeline_todos - No TODO strings found
- pipeline_name_conventions - Name adheres to nf-core convention
- template_strings - Did not find any Jinja template strings (122 files)
- schema_lint - Schema lint passed
- schema_lint - Schema title + description lint passed
- schema_lint - Input mimetype lint passed: 'text/csv'
- schema_params - Schema matched params returned from nextflow config
- actions_schema_validation - Workflow validation passed: awsfulltest.yml
- actions_schema_validation - Workflow validation passed: ci.yml
- actions_schema_validation - Workflow validation passed: linting.yml
- actions_schema_validation - Workflow validation passed: linting_comment.yml
- actions_schema_validation - Workflow validation passed: fix-linting.yml
- actions_schema_validation - Workflow validation passed: branch.yml
- actions_schema_validation - Workflow validation passed: awstest.yml
- merge_markers - No merge markers found in pipeline files
-
modules_json - Only installed modules found in
modules.json
- multiqc_config - 'assets/multiqc_config.yml' follows the ordering scheme of the minimally required plugins.
- multiqc_config - 'assets/multiqc_config.yml' contains a matching 'report_comment'.
- multiqc_config - 'assets/multiqc_config.yml' contains 'export_plots: true'.
- modules_structure - modules directory structure is correct 'modules/nf-core/TOOL/SUBTOOL'
Run details
- nf-core/tools version 2.6
- Run at
2022-11-09 14:54:47
Hi @rlinchangco, I am planning to help you on this one. Can you add me as a contributor to your fork so I can commit to it and help on the PR?
General question, what's the plan for the implementation?
EMPTYDROPS_FILTER
should come right before matrices conversion and concatenation?
Shall it be always on? Or have a params.filter_emptydrops
parameter for it?
@nf-core-bot fix linting
The script expects a parameter called --version
which is defined like this:
parser.add_argument(
"-v",
"--version",
dest="version",
default=3,
help="Version for features file, defines expected file name (1=kallisto,<v3 cellranger,3=star,>=v3 cellranger).",
)
I could actually not understand what it expects. It would not work for salmon/alevin?
Guess to make it easier to use values already defined on parameters and meta.maps, instead of having a different definition, may this option ask for the aligner
name directly? Or the actual protocol?
Hi all- FYI there is an 'dropletutils-scripts' package in ~~Bioconductor~~Bioconda that will provide a container to do this already.
The scripts themselves are here: https://github.com/ebi-gene-expression-group/dropletutils-scripts
Here's Nextflow process that uses it (admittedly DSL1). Just thought I'd point this out- might be a shortcut to a module.
Edit: just corrected the above (I meant Bioconda, not Bioconductor, so there's already a Biocontainer)
Hi @rlinchangco, I saw the modules and re-adapted how it is called in NF. However, I saw the script and the dependencies seem to be complex in a way that multiple conda envs are required, thus we need a mulled container (I already opened a PR for that).
However, we would still lack the https://pypi.org/project/biomart/ package that you are using but does not seen to be available in conda. If that's the case, unfortunately we cannot add the module.
You think the scripts Jonathan mentioned in the previous comment would be of help here?
I will open a new PR using another package 'dropletutils-scripts' since this worked well in another private copy. I will add this in the following weeks.
Do we need this for 10x? I thought cellranger kind of already uses the same algorithm internally?
As per the issue that raised the PR, it is more so that the other aligners also have a result with that.
ok, fair enough
this is the one https://github.com/nf-core/scrnaseq/issues/81
😄 🎯