-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run QC for WTS alongside WGS #597
Conversation
Updates by file: * Added abstract workflow type DRAGEN_WGTS_QC. * Added labmetadata rule method must_be_wgts * Handle WTS data and add enable_rna option. True for WTS data, false for WGS data * Set batcher runstep parameter to DRAGEN_WGTS_QC abstract workflow type * Replace must_be_wgs labmetadata rule with must_be_wgts * Update warning to use DRAGEN_WGTS_QC abstract workflow type
Now dragen wts happens after QC is complete. Instead of performing dragen_wts after bclconvert, we first run dragen_wgts_qc (which now includes dragen_wts samples).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good most of it, Alexis. Just that need to attend comment on Orchestrator on triggering cue.
\## workflow.py Added in dragen_wts_qc and dragen_wgts_qc into from_value class method \## dragen_wgs_qc.py Moved labmetadata improt to below try / except statement. \## orchestrator.py Split out WGS_QC and WTS_QC notification handling.
Dragen WTS now runs after dragen wts qc. Use similar logic to t/n runs (that work off a metadata list) rather than a batcher (as used in the qc runs). Updates by file \## orchestration/dragen_wts_step \### Perform function * Updated perform function to check if all dragen_wts_qc workflows have finished for a given sequencing run * Invoke prepare_dragen_wts_jobs with a metadata list instead of a batcher object. \### prepare dragen wts jobs function Use similar (but simpler) logic to preparing of tn workflows Collect fastq list rows by the library id input (grouped by library-id / subject-id). And create the job dict with just the subject id, library id and fastq list rows object Rather than use a labmetadatarule we use a query set (see metadata_srv changes for more info). \## orchestration/tumor_normal_step * Move handle rerun function to liborca * Also fixed return in docstring \## tools/liborca * Collected handle rerun function from tumor normal step \## services/metadata_srv * Created queryset for collecting wts metdata by the wts qc runs \## pipeline/lambdas/dragen_wts * Handle new job input * Remove all references to sequence_run and batch_run * Assume subject Id is in the event dict
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, few more minor comments to attend.
…c-pipeline Resolved merge conflicts from arriba mem update
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey Alexis;
Could you please change PR to ready for review from draft, if you are ready..? This looks good so far from my side, minor comments to attend.
If that's all good I'll fix up the tests (assuming I've broken a few with these changes)
Do you still have bandwidth to follow up tests..?
If so, few pointers as follows...
- Each python module file that has made changes; should have their test file counterpart in
tests
package. - First, you run each test file for unit test cases and fix where it broke, accordingly.
- Optionally, run integration test cases there, if applicable and/or see fit.
- Finally, run smoke test
make test
on the whole suite and, it must pass.
Here are starter, based on file changes in PR.
- Test domain logic code changes
python manage.py test data_processors.pipeline.domain.tests.test_workflow
- Test front controller (Lambda) entrypoints changes
python manage.py test data_processors.pipeline.lambdas.tests.test_dragen_wgs_qc
python manage.py test data_processors.pipeline.lambdas.tests.test_dragen_wts
python manage.py test data_processors.pipeline.lambdas.tests.test_orchestrator
- Test orchestration step module middleware changes
python manage.py test data_processors.pipeline.orchestration.tests.test_dragen_wgs_qc_step
python manage.py test data_processors.pipeline.orchestration.tests.test_dragen_wts_step
python manage.py test data_processors.pipeline.orchestration.tests.test_tumor_normal_step
- Test service layer module changes
python manage.py test data_processors.pipeline.services.tests.test_metadata_srv
Thanks Victor, I'll work on this tomorrow if you don't mind? |
Of course, go for it, please..! |
data_portal/tests/factories: * Made new WtsQC and WgtsQC factories * lambdas/test/test_dragen_wgs_qc.py * Use TestConstant for library id since we need matches on labmetadata types * lambdas/test/test_dragen_wts.oy * Include subject id in event. * Remove seq run id and seq name, not immediately downstream of bclconvert * lambdas/tests/test_orchestrator.py * Exclude DRAGEN_WTS_STEP from tests post bclconvert run * lambdas/dragen_wgs_qc.py * Check labmetadata getter returns not none, otherwise raise value error * lambdas/dragen_wts.py * Use link_library_runs_with_x_seq_workflow over library_runs_with_workflow * lambdas/orchestartor.py * Set DRAGEN_WGTS_QC_STEP, DRAGEN_WGS_QC_STEP and DRAGEN_WTS_QC_STEP in the same 'skip-list' context * orchestration/tests/test_dragen_wts_step.py * Overhaul of test_dragen_wts_step since it is now invoked post qc
Getting close!
|
@victorskl would you mind having a look at these? I couldn't figure out the changes needed to get the test perform working and I think the orchestration logic might not be handing the DRAGEN_WGTS_QC step? |
Ok, I will pull and check in tick. |
Hi Alexis; pls see #607 for
TL;DR - it just need mock WTS tumor Lab meta info <> LibraryRun <> Workflow has to link up / match them up well for test condition. |
I will check for somalier step, next.. |
Ah this one is easy
Just roll back changes here data-portal-apis/data_processors/pipeline/orchestration/tests/test_somalier_extract_step.py Line 67 in 55642c0
... to
Explain
|
See #597 (comment) for more info
Woo!
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Go for it, Alexis..!
cba7478
data_processors.pipeline.domain.workflow.py
data_processors.pipeline.lambdas.dragen_wgs_qc.py
data_processors.pipeline.orchestartion.dragen_wgs_qc_step.py
5eb62f3
Now dragen wts happens after QC is complete.
Instead of performing dragen_wts after bclconvert, we first run dragen_wgts_qc (which now includes dragen_wts samples).