Skip to content

Integrate forked CurveCurator GPU API into drevalpy.curation#422

Draft
nictru wants to merge 15 commits into
developmentfrom
curvecurator-gpu
Draft

Integrate forked CurveCurator GPU API into drevalpy.curation#422
nictru wants to merge 15 commits into
developmentfrom
curvecurator-gpu

Conversation

@nictru

@nictru nictru commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace subprocess/CLI CurveCurator execution with the in-process curve_curator_gpu API, including GPU device routing and OOM fallback.
  • Add drevalpy.curation as the public workflow (splitcurvecuratorcombine) with stepwise CLI commands and nf-core viability hooks.
  • Pass prepared input tables directly via the fork's DataFrame-first run_pipeline_api, and remove legacy runner/shim modules.

Test plan

  • poetry run pytest tests/curation/_curvecurator tests/cli/test_curation.py tests/cli/test_fit_curves_legacy.py -q
  • poetry run pytest tests/test_dataset.py::test_curvecurator_measures -q
  • Full test suite: 204 passed, 4 skipped

closes #405

nictru added 9 commits May 31, 2026 22:00
Replace the external CurveCurator split workflow with in-process fitting via the forked Python API, including data-aware device selection and a direct fit-curves command.
Pin CurveCurator to the GitHub source so installs do not depend on a sibling checkout.
Move split/fit/combine logic out of datasets and cli_fit_curves into a
shared package, add `drevalpy curation` for pipelines, and keep
`drevalpy-fit-curves` as a legacy alias to the unified workflow.
Pass prepared input tables directly to run_pipeline_api instead of
writing temporary TSV files, and pin curve-curator to the fork commit
with the new data= contract. Consolidate CurveCurator tests under
tests/curation/_curvecurator and add coverage for in-memory table
pass-through and synthetic workflow paths.
Delete unused runner/device modules and cli_preprocess_custom, move
viability preprocess/postprocess into curation._curvecurator.nfcore,
and simplify the in-memory runner around the DataFrame-first fork API.
Resolve pipeline.py context typing for Typer 0.26 and regenerate
poetry.lock after integrating the development branch.
Use str path_data in nfcore tests and replace append-or-return
lambda with an explicit split_to_disk stub.
@nictru nictru marked this pull request as draft June 6, 2026 13:26
nictru added 6 commits June 6, 2026 15:36
Use _click.Context like pipeline.py so typeguard accepts the callback signature on Windows CI.
Lazy-import fit_curves in loader so importing curation does not loop back through datasets during module init.
Make split and curate DataFrame-first, keep serialization in io.py, and have the curation CLI and nf-core hooks read inputs, call in-memory functions, and write outputs.
Replace append-or-return lambdas with explicit fake helpers so mypy accepts the mocked callables.
Drop viability-preprocess/postprocess commands and nfcore hooks; drugresponseeval will adopt drevalpy curation directly.
Custom dataset loading now uses drevalpy.curation in loader.py instead of a thin compatibility wrapper.
@JudithBernett JudithBernett linked an issue Jun 8, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow using GPU-accelarated CurveCurator through the package

1 participant