[RFC] Adding rpy2 (and R and deseq2) as test-only dependency.ies to have more flexible end2end tests
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 761
- Forks
- 90
- Avg merge
- 25m
- Merged PRs (30d)
- 10
Description
Is your feature request related to a problem? Please describe.
As of now comparison between pydeseq2 and deseq2 necessitates to run deseq2 in R/r2py then save results in csvs in repository to later compare pydeseq2 back to it. This prevents flexibly testing different use-cases using parametrized tests varying i.e. design factors or read-counts values.
For instance to test PR #181 one would have wanted to do something around the lines of:
import pytest
import rpy2
@pytest.mark.parametrize("design_factors, continuous_factors", [(["a", "a:b"], "a"), ("~ a + b + a:b", "c"), (["a:b:c", b"], None, (["a:b:c", b"],["a","b","c"])
def test_matching_deseq2(design_factors, continuous_factors):
# Run deseq2 and pydeseq2 on the current design_factors, continuous_factors pair
assert pydeseq2_result == deseq2_result
Describe the solution you'd like
Adding rpy2 as a test-only dependency + installing R/deseq2 in the CI/tests should allow to run tests more flexibly and should keep regular install of pydeseq2 as lightweight as before.
What do you think @BorisMuzellec @mandreux-owkin @maikia ?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing CSV-based comparison tests and the CI configuration, then find where test-only dependencies are declared. The requested change is done when CI can install R, DESeq2, and rpy2 for parametrized PyDESeq2 comparisons while regular PyDESeq2 installation remains lightweight.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, r
- Domain
- bioinformatics, ci-cd, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100