Skip to content

Commit ec8b1b2

Browse files
committed
Another one
1 parent 92868de commit ec8b1b2

File tree

1 file changed

+6
-50
lines changed

1 file changed

+6
-50
lines changed

v03_pipeline/lib/tasks/write_remapped_and_subsetted_callset.py

Lines changed: 6 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import hail as hl
22
import luigi
3+
import luigi.util
34

45
from v03_pipeline.lib.logger import get_logger
56
from v03_pipeline.lib.misc.family_loading_failures import (
@@ -14,8 +15,8 @@
1415
)
1516
from v03_pipeline.lib.misc.pedigree import parse_pedigree_ht_to_families
1617
from v03_pipeline.lib.misc.sample_ids import remap_sample_ids, subset_samples
17-
from v03_pipeline.lib.model import SampleType
1818
from v03_pipeline.lib.paths import remapped_and_subsetted_callset_path
19+
from v03_pipeline.lib.tasks.base.base_loading_run_params import BaseLoadingRunParams
1920
from v03_pipeline.lib.tasks.base.base_write import BaseWriteTask
2021
from v03_pipeline.lib.tasks.files import GCSorLocalTarget, RawFileTask
2122
from v03_pipeline.lib.tasks.write_imported_callset import WriteImportedCallsetTask
@@ -27,30 +28,8 @@
2728
logger = get_logger(__name__)
2829

2930

31+
@luigi.util.inherits(BaseLoadingRunParams)
3032
class WriteRemappedAndSubsettedCallsetTask(BaseWriteTask):
31-
sample_type = luigi.EnumParameter(enum=SampleType)
32-
callset_path = luigi.Parameter()
33-
project_guid = luigi.Parameter()
34-
project_remap_path = luigi.Parameter()
35-
project_pedigree_path = luigi.Parameter()
36-
imputed_sex_path = luigi.Parameter(default=None)
37-
ignore_missing_samples_when_remapping = luigi.BoolParameter(
38-
default=False,
39-
parsing=luigi.BoolParameter.EXPLICIT_PARSING,
40-
)
41-
validate = luigi.BoolParameter(
42-
default=True,
43-
parsing=luigi.BoolParameter.EXPLICIT_PARSING,
44-
)
45-
force = luigi.BoolParameter(
46-
default=False,
47-
parsing=luigi.BoolParameter.EXPLICIT_PARSING,
48-
)
49-
check_sex_and_relatedness = luigi.BoolParameter(
50-
default=False,
51-
parsing=luigi.BoolParameter.EXPLICIT_PARSING,
52-
)
53-
5433
def complete(self) -> luigi.Target:
5534
return not self.force and super().complete()
5635

@@ -66,20 +45,7 @@ def output(self) -> luigi.Target:
6645

6746
def requires(self) -> list[luigi.Task]:
6847
requirements = [
69-
WriteImportedCallsetTask(
70-
reference_genome=self.reference_genome,
71-
dataset_type=self.dataset_type,
72-
sample_type=self.sample_type,
73-
callset_path=self.callset_path,
74-
imputed_sex_path=self.imputed_sex_path,
75-
# NB: filters_path is explicitly passed as None here
76-
# to avoid carrying it throughout the rest of the pipeline.
77-
# Only the primary import task itself should be aware of it.
78-
filters_path=None,
79-
validate=self.validate,
80-
force=False,
81-
check_sex_and_relatedness=self.check_sex_and_relatedness,
82-
),
48+
self.clone(WriteImportedCallsetTask, force=False),
8349
RawFileTask(self.project_pedigree_path),
8450
]
8551
if (
@@ -88,18 +54,8 @@ def requires(self) -> list[luigi.Task]:
8854
):
8955
requirements = [
9056
*requirements,
91-
WriteRelatednessCheckTableTask(
92-
self.reference_genome,
93-
self.dataset_type,
94-
self.sample_type,
95-
self.callset_path,
96-
),
97-
WriteSexCheckTableTask(
98-
self.reference_genome,
99-
self.dataset_type,
100-
self.callset_path,
101-
self.imputed_sex_path,
102-
),
57+
self.clone(WriteRelatednessCheckTableTask),
58+
self.close(WriteSexCheckTableTask),
10359
]
10460
return requirements
10561

0 commit comments

Comments
 (0)